fundus 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/build/client/_app/immutable/assets/{2.wavcNhPC.css → 2.ohi-TClG.css} +1 -1
- package/build/client/_app/immutable/assets/2.ohi-TClG.css.br +0 -0
- package/build/client/_app/immutable/assets/2.ohi-TClG.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.JwgtcTEd.css +1 -0
- package/build/client/_app/immutable/assets/3.JwgtcTEd.css.br +0 -0
- package/build/client/_app/immutable/assets/3.JwgtcTEd.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css +1 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.gz +0 -0
- package/build/client/_app/immutable/chunks/DOpBpjxS.js +108 -0
- package/build/client/_app/immutable/chunks/DOpBpjxS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DOpBpjxS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DQ8SXFaX.js → DVEQFclp.js} +1 -1
- package/build/client/_app/immutable/chunks/DVEQFclp.js.br +1 -0
- package/build/client/_app/immutable/chunks/DVEQFclp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CvY6YsFE.js → DiFoWL2c.js} +1 -1
- package/build/client/_app/immutable/chunks/DiFoWL2c.js.br +0 -0
- package/build/client/_app/immutable/chunks/DiFoWL2c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BiIto6ft.js → DkADHpZF.js} +1 -1
- package/build/client/_app/immutable/chunks/DkADHpZF.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkADHpZF.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.ubN0v9bN.js → app.CKgtYXQb.js} +2 -2
- package/build/client/_app/immutable/entry/app.CKgtYXQb.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CKgtYXQb.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CYZu5qE1.js +1 -0
- package/build/client/_app/immutable/entry/start.CYZu5qE1.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CYZu5qE1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.Dr5ijCIl.js → 0.I_1SApYQ.js} +1 -1
- package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.DiIGIRAb.js → 1.v6eUTnWq.js} +1 -1
- package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js +3 -0
- package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.C-DO70Bs.js +1 -0
- package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CALOuSyz.js +2 -0
- package/build/client/_app/immutable/nodes/4.CALOuSyz.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CALOuSyz.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +7 -7
- package/build/index.js +7 -7
- package/build/server/chunks/chunks/{context.js-Bw4WWLhG.js → context.js-BUZqFfWG.js} +19 -33
- package/build/server/chunks/chunks/context.js-BUZqFfWG.js.map +1 -0
- package/build/server/chunks/chunks/{core.js-DDntpb72.js → core.js-xfrkaQpS.js} +97 -48
- package/build/server/chunks/chunks/core.js-xfrkaQpS.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-CLTzaOxn.js → exports.js-C0rwMMtk.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-CLTzaOxn.js.map → exports.js-C0rwMMtk.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-Dxoa-jtP.js → http.js-DvopzwKh.js} +2 -2
- package/build/server/chunks/chunks/{http.js-Dxoa-jtP.js.map → http.js-DvopzwKh.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-BDBSzJId.js → internal.js-DGo2jPcg.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-BDBSzJId.js.map → internal.js-DGo2jPcg.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{library-store.js-BP8cL-qD.js → library-store.js-ZLudCJlT.js} +135 -64
- package/build/server/chunks/chunks/library-store.js-ZLudCJlT.js.map +1 -0
- package/build/server/chunks/chunks/{shared.js-BWXgl1Xf.js → shared.js-B1gC9MiJ.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-BWXgl1Xf.js.map → shared.js-B1gC9MiJ.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-9oI5Oz0w.js → utils.js-DnEJ3UjO.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-9oI5Oz0w.js.map → utils.js-DnEJ3UjO.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-WknZVW_S.js → _server.ts.js-Cq5gXVQT.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-WknZVW_S.js.map → _server.ts.js-Cq5gXVQT.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BrZ__-HZ.js → _server.ts.js-RXbedi8q.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BrZ__-HZ.js.map → _server.ts.js-RXbedi8q.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-PqADGPXc.js → _server.ts.js-D7Qae9vU.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-PqADGPXc.js.map → _server.ts.js-D7Qae9vU.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-OqoE5PN-.js → _server.ts.js-DtO20kgB.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-OqoE5PN-.js.map → _server.ts.js-DtO20kgB.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CJ08e1ho.js → _server.ts.js-BUebPbd5.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CJ08e1ho.js.map → _server.ts.js-BUebPbd5.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DdF3eK2I.js → _server.ts.js-BjT2qPMT.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DdF3eK2I.js.map → _server.ts.js-BjT2qPMT.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-Cxt6jsJ5.js → _server.ts.js-DYRLsoT7.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-Cxt6jsJ5.js.map → _server.ts.js-DYRLsoT7.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BWVM2Ntl.js → _server.ts.js-BbN2fGNN.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BWVM2Ntl.js.map → _server.ts.js-BbN2fGNN.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Z2bM-qHM.js → _server.ts.js-b_MKZ41b.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Z2bM-qHM.js.map → _server.ts.js-b_MKZ41b.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-BX9H2Z34.js → _server.ts.js-evEfMpvn.js} +6 -6
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-BX9H2Z34.js.map → _server.ts.js-evEfMpvn.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BWHDZ8mz.js → _server.ts.js-C04XE_1w.js} +5 -5
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BWHDZ8mz.js.map → _server.ts.js-C04XE_1w.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CR_7mndO.js → _server.ts.js-DB8TdoEv.js} +6 -6
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CR_7mndO.js.map → _server.ts.js-DB8TdoEv.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Cw1PDBvb.js → _server.ts.js-BrpaijZO.js} +6 -6
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Cw1PDBvb.js.map → _server.ts.js-BrpaijZO.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-BHoE0yBi.js → hooks.server.js-BJJwZW_I.js} +5 -5
- package/build/server/chunks/entries/{hooks.server.js-BHoE0yBi.js.map → hooks.server.js-BJJwZW_I.js.map} +1 -1
- package/build/server/chunks/{handler-10cx4zHn.js → handler-DnbS2t1B.js} +5 -5
- package/build/server/chunks/{handler-10cx4zHn.js.map → handler-DnbS2t1B.js.map} +1 -1
- package/build/server/chunks/{index.js-DvPfiC00.js → index.js-g77q3Boj.js} +5 -5
- package/build/server/chunks/{index.js-DvPfiC00.js.map → index.js-g77q3Boj.js.map} +1 -1
- package/build/server/chunks/{manifest.js-DoPjUnzD.js → manifest.js-qmEXbstS.js} +20 -20
- package/build/server/chunks/{manifest.js-DoPjUnzD.js.map → manifest.js-qmEXbstS.js.map} +1 -1
- package/build/server/chunks/nodes/0.js-Bk6IZ-vD.js +11 -0
- package/build/server/chunks/nodes/{0.js-Di3qgAtW.js.map → 0.js-Bk6IZ-vD.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-H-qwo4GJ.js +7 -0
- package/build/server/chunks/nodes/{1.js-BlWSFIA8.js.map → 1.js-H-qwo4GJ.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-DRpXVLwp.js +7 -0
- package/build/server/chunks/nodes/{2.js-CO9nSPUN.js.map → 2.js-DRpXVLwp.js.map} +1 -1
- package/build/server/chunks/nodes/3.js-CDEzNFeU.js +7 -0
- package/build/server/chunks/nodes/3.js-CDEzNFeU.js.map +1 -0
- package/build/server/chunks/nodes/{4.js-B3IuagJW.js → 4.js-BKL7LSSm.js} +2 -2
- package/build/server/chunks/nodes/4.js-BKL7LSSm.js.map +1 -0
- package/dist/cli.js +9 -6
- package/dist/core/ingest.d.ts +7 -1
- package/dist/core/ingest.js +3 -19
- package/dist/core/plugins/registry.d.ts +16 -0
- package/dist/core/plugins/registry.js +52 -0
- package/dist/runtime/kind-handlers.d.ts +0 -6
- package/dist/runtime/kind-handlers.js +16 -7
- package/dist/server/config-loader.d.ts +3 -2
- package/dist/server/config-loader.js +24 -48
- package/dist/server/index.d.ts +1 -0
- package/dist/server/plugins/audio.d.ts +2 -1
- package/dist/server/plugins/audio.js +15 -1
- package/dist/server/plugins/chroma-key-video.js +2 -0
- package/dist/server/plugins/config.d.ts +13 -0
- package/dist/server/plugins/config.js +32 -0
- package/dist/server/plugins/contract.d.ts +17 -3
- package/dist/server/plugins/image.d.ts +2 -1
- package/dist/server/plugins/image.js +14 -1
- package/dist/server/plugins/slice.d.ts +2 -1
- package/dist/server/plugins/slice.js +14 -1
- package/dist/server/plugins/video.d.ts +2 -1
- package/dist/server/plugins/video.js +26 -1
- package/dist/server/plugins.d.ts +6 -6
- package/dist/server/plugins.js +3 -1
- package/dist/server/start.d.ts +13 -1
- package/dist/server/start.js +51 -4
- package/package.json +3 -1
- package/build/client/_app/immutable/assets/2.wavcNhPC.css.br +0 -0
- package/build/client/_app/immutable/assets/2.wavcNhPC.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.Cjh_fXPY.css +0 -1
- package/build/client/_app/immutable/assets/3.Cjh_fXPY.css.br +0 -0
- package/build/client/_app/immutable/assets/3.Cjh_fXPY.css.gz +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.zyZtpKzC.css +0 -1
- package/build/client/_app/immutable/assets/LibraryContextMenu.zyZtpKzC.css.br +0 -0
- package/build/client/_app/immutable/assets/LibraryContextMenu.zyZtpKzC.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BiIto6ft.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiIto6ft.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CvY6YsFE.js.br +0 -0
- package/build/client/_app/immutable/chunks/CvY6YsFE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DL0_39Ys.js +0 -5
- package/build/client/_app/immutable/chunks/DL0_39Ys.js.br +0 -0
- package/build/client/_app/immutable/chunks/DL0_39Ys.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQ8SXFaX.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQ8SXFaX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjdrdRzT.js +0 -1
- package/build/client/_app/immutable/chunks/DjdrdRzT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DjdrdRzT.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.ubN0v9bN.js.br +0 -0
- package/build/client/_app/immutable/entry/app.ubN0v9bN.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BW8dBDh6.js +0 -1
- package/build/client/_app/immutable/entry/start.BW8dBDh6.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BW8dBDh6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Dr5ijCIl.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Dr5ijCIl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DiIGIRAb.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.DiIGIRAb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B8KYmQcV.js +0 -3
- package/build/client/_app/immutable/nodes/2.B8KYmQcV.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B8KYmQcV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.B1jc7arT.js +0 -104
- package/build/client/_app/immutable/nodes/3.B1jc7arT.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.B1jc7arT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.BPK9n1mH.js +0 -2
- package/build/client/_app/immutable/nodes/4.BPK9n1mH.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BPK9n1mH.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-Bw4WWLhG.js.map +0 -1
- package/build/server/chunks/chunks/core.js-DDntpb72.js.map +0 -1
- package/build/server/chunks/chunks/library-store.js-BP8cL-qD.js.map +0 -1
- package/build/server/chunks/nodes/0.js-Di3qgAtW.js +0 -11
- package/build/server/chunks/nodes/1.js-BlWSFIA8.js +0 -7
- package/build/server/chunks/nodes/2.js-CO9nSPUN.js +0 -7
- package/build/server/chunks/nodes/3.js-C2D6xpEO.js +0 -7
- package/build/server/chunks/nodes/3.js-C2D6xpEO.js.map +0 -1
- package/build/server/chunks/nodes/4.js-B3IuagJW.js.map +0 -1
|
Binary file
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,D as r,E as i,G as a,I as o,J as s,K as c,M as l,N as u,O as d,P as f,S as p,T as m,U as h,W as g,X as _,Y as v,a as y,c as b,et as x,f as S,g as ee,h as C,i as te,it as w,j as T,l as E,o as ne,q as re,rt as ie,s as ae,u as oe,w as D,z as O}from"../chunks/CNRz3sSw.js";import{c as se,t as ce}from"../chunks/CvY6YsFE.js";import"../chunks/xihTtKlq.js";import{a as le,c as ue,l as de,t as k,u as fe}from"../chunks/CO4RBJfa.js";import{a as pe,d as me,f as he,i as ge,l as _e,n as ve,o as ye,p as be,r as xe,s as Se,t as Ce,u as we}from"../chunks/DL0_39Ys.js";import{m as Te,n as Ee,t as De}from"../chunks/BiIto6ft.js";function A(e){return Array.isArray?Array.isArray(e):je(e)===`[object Array]`}function Oe(e){if(typeof e==`string`)return e;if(typeof e==`bigint`)return e.toString();let t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function ke(e){return e==null?``:Oe(e)}function j(e){return typeof e==`string`}function M(e){return typeof e==`number`}function N(e){return e===!0||e===!1||Ae(e)&&je(e)==`[object Boolean]`}function P(e){return typeof e==`object`}function Ae(e){return P(e)&&e!==null}function F(e){return e!=null}function I(e){return!e.trim().length}function je(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var L=`Incorrect 'index' type`,R=`Invalid doc index: must be a non-negative integer within the bounds of the docs array`,z=e=>`Invalid value for key ${e}`,B=e=>`Pattern length exceeds max of ${e}.`,Me=e=>`Missing ${e} property in key`,V=e=>`Property 'weight' in key '${e}' must be a positive integer`,H=`Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.`,U=Object.prototype.hasOwnProperty,W=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=G(e);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function G(e){let t=null,n=null,r=null,i=1,a=null;if(j(e)||A(e))r=e,t=Ne(e),n=Pe(e);else{if(!U.call(e,`name`))throw Error(Me(`name`));let o=e.name;if(r=o,U.call(e,`weight`)&&e.weight!==void 0&&(i=e.weight,i<=0))throw Error(V(Pe(o)));t=Ne(o),n=Pe(o),a=e.getFn??null}return{path:t,id:n,weight:i,src:r,getFn:a}}function Ne(e){return A(e)?e:e.split(`.`)}function Pe(e){return A(e)?e.join(`.`):e}function Fe(e,t){let n=[],r=!1,i=(e,t,a,o)=>{if(F(e))if(!t[a])n.push(o===void 0?e:{v:e,i:o});else{let s=e[t[a]];if(!F(s))return;if(a===t.length-1&&(j(s)||M(s)||N(s)||typeof s==`bigint`))n.push(o===void 0?ke(s):{v:ke(s),i:o});else if(A(s)){r=!0;for(let e=0,n=s.length;e<n;e+=1)i(s[e],t,a+1,e)}else t.length&&i(s,t,a+1,o)}};return i(e,j(t)?t.split(`.`):t,0),r?n:n[0]}var Ie={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},Le={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},Re={location:0,threshold:.6,distance:100},K={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:`any`,getFn:Fe,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},q=Object.freeze({...Le,...Ie,...Re,...K});function ze(e=1,t=3){let n=new Map,r=10**t;return{get(t){let i=1,a=!1;for(let e=0;e<t.length;e++)t.charCodeAt(e)===32?a||=(i++,!0):a=!1;if(n.has(i))return n.get(i);let o=Math.round(r/i**(.5*e))/r;return n.set(i,o),o},clear(){n.clear()}}}var J=class{constructor({getFn:e=q.getFn,fieldNormWeight:t=q.fieldNormWeight}={}){this.norm=ze(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;let e=this.docs.length;this.records=Array(e);let t=0;if(j(this.docs[0]))for(let n=0;n<e;n++){let e=this._createStringRecord(this.docs[n],n);e&&(this.records[t++]=e)}else for(let n=0;n<e;n++)this.records[t++]=this._createObjectRecord(this.docs[n],n);this.records.length=t,this.norm.clear()}add(e,t){if(!Number.isInteger(t)||t<0)throw Error(R);if(j(e)){let n=this._createStringRecord(e,t);return n&&this.records.push(n),n}let n=this._createObjectRecord(e,t);return this.records.push(n),n}removeAt(e){if(!Number.isInteger(e)||e<0)throw Error(R);for(let t=0,n=this.records.length;t<n;t+=1)if(this.records[t].i===e){this.records.splice(t,1);break}for(let t=0,n=this.records.length;t<n;t+=1)this.records[t].i>e&&--this.records[t].i}removeAll(e){let t=new Set;for(let n of e)Number.isInteger(n)&&n>=0&&t.add(n);if(t.size===0)return;this.records=this.records.filter(e=>!t.has(e.i));let n=Array.from(t).sort((e,t)=>e-t);for(let e of this.records){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e.i?t=i+1:r=i}e.i-=t}}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_createStringRecord(e,t){return!F(e)||I(e)?null:{v:e,i:t,n:this.norm.get(e)}}_createObjectRecord(e,t){let n={i:t,$:{}};for(let t=0,r=this.keys.length;t<r;t++){let r=this.keys[t],i=r.getFn?r.getFn(e):this.getFn(e,r.path);if(F(i)){if(A(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(F(n)){if(j(n)){if(!I(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(F(n.v)){let t=j(n.v)?n.v:ke(n.v);if(!I(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[t]=e}else if(j(i)&&!I(i)){let e={v:i,n:this.norm.get(i)};n.$[t]=e}}}return n}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function Be(e,t,{getFn:n=q.getFn,fieldNormWeight:r=q.fieldNormWeight}={}){let i=new J({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(G)),i.setSources(t),i.create(),i}function Ve(e,{getFn:t=q.getFn,fieldNormWeight:n=q.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new J({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function Y(e=[],t=q.minMatchCharLength){let n=[],r=-1,i=-1,a=0;for(let o=e.length;a<o;a+=1){let o=e[a];o&&r===-1?r=a:!o&&r!==-1&&(i=a-1,i-r+1>=t&&n.push([r,i]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}function He(e,t,n,{location:r=q.location,distance:i=q.distance,threshold:a=q.threshold,findAllMatches:o=q.findAllMatches,minMatchCharLength:s=q.minMatchCharLength,includeMatches:c=q.includeMatches,ignoreLocation:l=q.ignoreLocation}={}){if(t.length>32)throw Error(B(32));let u=t.length,d=e.length,f=Math.max(0,Math.min(r,d)),p=a,m=f,h=(e,t)=>{let n=e/u;if(l)return n;let r=Math.abs(f-t);return i?n+r/i:r?1:n},g=s>1||c,_=g?Array(d):[],v;for(;(v=e.indexOf(t,m))>-1;){let e=h(0,v);if(p=Math.min(e,p),m=v+u,g){let e=0;for(;e<u;)_[v+e]=1,e+=1}}m=-1;let y=[],b=1,x=0,S=u+d,ee=1<<u-1;for(let t=0;t<u;t+=1){let r=0,i=S;for(;r<i;)h(t,f+i)<=p?r=i:S=i,i=Math.floor((S-r)/2+r);S=i;let a=Math.max(1,f-i+1),s=o?d:Math.min(f+i,d)+u,c=Array(s+2);c[s+1]=(1<<t)-1;for(let r=s;r>=a;--r){let i=r-1,o=n[e[i]];if(c[r]=(c[r+1]<<1|1)&o,t&&(c[r]|=(y[r+1]|y[r])<<1|1|y[r+1]),c[r]&ee&&(b=h(t,i),b<=p)){if(p=b,m=i,x=t,m<=f)break;a=Math.max(1,2*f-m)}}if(h(t+1,f)>p)break;y=c}if(g&&m>=0){let t=Math.min(d-1,m+u-1+x);for(let r=m;r<=t;r+=1)n[e[r]]&&(_[r]=1)}let C={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=Y(_,s);e.length?c&&(C.indices=e):C.isMatch=!1}return C}function Ue(e){let t={};for(let n=0,r=e.length;n<r;n+=1){let i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}function We(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let n=1,r=e.length;n<r;n+=1){let r=t[t.length-1],i=e[n];i[0]<=r[1]+1?r[1]=Math.max(r[1],i[1]):t.push(i)}return t}var Ge={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},Ke=RegExp(`[`+Object.keys(Ge).join(``)+`]`,`g`),X=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFD`).replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,``).replace(Ke,e=>Ge[e]):e=>e,qe=class{constructor(e,{location:t=q.location,threshold:n=q.threshold,distance:r=q.distance,includeMatches:i=q.includeMatches,findAllMatches:a=q.findAllMatches,minMatchCharLength:o=q.minMatchCharLength,isCaseSensitive:s=q.isCaseSensitive,ignoreDiacritics:c=q.ignoreDiacritics,ignoreLocation:l=q.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:i,findAllMatches:a,minMatchCharLength:o,isCaseSensitive:s,ignoreDiacritics:c,ignoreLocation:l},e=s?e:e.toLowerCase(),e=c?X(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:Ue(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0,t=d%32,n=d-t;for(;e<n;)u(this.pattern.substr(e,32),e),e+=32;if(t){let e=d-32;u(this.pattern.substr(e),e)}}else u(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r}=this.options;if(e=t?e:e.toLowerCase(),e=n?X(e):e,this.pattern===e){let t={isMatch:!0,score:0};return r&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,ignoreLocation:l}=this.options,u=[],d=0,f=!1;this.chunks.forEach(({pattern:t,alphabet:n,startIndex:p})=>{let{isMatch:m,score:h,indices:g}=He(e,t,n,{location:i+p,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,includeMatches:r,ignoreLocation:l});m&&(f=!0),d+=h,m&&g&&u.push(...g)});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&r&&(p.indices=We(u)),p}},Je=new Set([`fuzzy`,`include`]);function Ye(e){return e.startsWith(`inverse`)}var Z=[{type:`exact`,multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:`exact`,search(t){let n=t===e;return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`include`,multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:`include`,search(t){let n=0,r,i=[],a=e.length;for(;(r=t.indexOf(e,n))>-1;)n=r+a,i.push([r,n-1]);let o=!!i.length;return{isMatch:o,score:+!o,indices:i}}})},{type:`prefix-exact`,multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:`prefix-exact`,search(t){let n=t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`inverse-prefix-exact`,multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:`inverse-prefix-exact`,search(t){let n=!t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`inverse-suffix-exact`,multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:`inverse-suffix-exact`,search(t){let n=!t.endsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`suffix-exact`,multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:`suffix-exact`,search(t){let n=t.endsWith(e);return{isMatch:n,score:+!n,indices:[t.length-e.length,t.length-1]}}})},{type:`inverse-exact`,multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:`inverse-exact`,search(t){let n=t.indexOf(e)===-1;return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`fuzzy`,multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{let n=new qe(e,{location:t.location??q.location,threshold:t.threshold??q.threshold,distance:t.distance??q.distance,includeMatches:t.includeMatches??q.includeMatches,findAllMatches:t.findAllMatches??q.findAllMatches,minMatchCharLength:t.minMatchCharLength??q.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??q.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??q.ignoreDiacritics,ignoreLocation:t.ignoreLocation??q.ignoreLocation});return{type:`fuzzy`,search(e){return n.searchIn(e)}}}}],Xe=Z.length,Ze=`\0`,Qe=`|`;function $e(e){let t=[],n=e.length,r=0;for(;r<n;){for(;r<n&&e[r]===` `;)r++;if(r>=n)break;let i=r;for(;i<n&&e[i]!==` `&&e[i]!==`"`;)i++;if(i<n&&e[i]===`"`){for(i++;i<n;){if(e[i]===`"`){let t=i+1;if(t>=n||e[t]===` `){i++;break}if(e[t]===`$`&&(t+1>=n||e[t+1]===` `)){i+=2;break}}i++}t.push(e.substring(r,i)),r=i}else{for(;i<n&&e[i]!==` `;)i++;t.push(e.substring(r,i)),r=i}}return t}function et(e,t){let n=e.match(t);return n?n[1]:null}function tt(e,t={}){return e.replace(/\\\|/g,Ze).split(Qe).map(e=>{let n=$e(e.replace(/\u0000/g,`|`).trim()).filter(e=>e&&!!e.trim()),r=[];for(let e=0,i=n.length;e<i;e+=1){let i=n[e],a=!1,o=-1;for(;!a&&++o<Xe;){let e=Z[o],n=et(i,e.multiRegex);n&&(r.push(e.create(n,t)),a=!0)}if(!a)for(o=-1;++o<Xe;){let e=Z[o],n=et(i,e.singleRegex);if(n){r.push(e.create(n,t));break}}}return r})}var nt=class{constructor(e,{isCaseSensitive:t=q.isCaseSensitive,ignoreDiacritics:n=q.ignoreDiacritics,includeMatches:r=q.includeMatches,minMatchCharLength:i=q.minMatchCharLength,ignoreLocation:a=q.ignoreLocation,findAllMatches:o=q.findAllMatches,location:s=q.location,threshold:c=q.threshold,distance:l=q.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r,minMatchCharLength:i,findAllMatches:o,ignoreLocation:a,location:s,threshold:c,distance:l},e=t?e:e.toLowerCase(),e=n?X(e):e,this.pattern=e,this.query=tt(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:n,isCaseSensitive:r,ignoreDiacritics:i}=this.options;e=r?e:e.toLowerCase(),e=i?X(e):e;let a=0,o=[],s=0,c=!1;for(let r=0,i=t.length;r<i;r+=1){let i=t[r];o.length=0,a=0,c=!1;for(let t=0,r=i.length;t<r;t+=1){let r=i[t],{isMatch:l,indices:u,score:d}=r.search(e);if(l)a+=1,s+=d,Ye(r.type)&&(c=!0),n&&(Je.has(r.type)?o.push(...u):o.push(u));else{s=0,a=0,o.length=0,c=!1;break}}if(a){let e={isMatch:!0,score:s/a};return c&&(e.hasInverse=!0),n&&(e.indices=We(o)),e}}return{isMatch:!1,score:1}}},rt=[];function it(...e){rt.push(...e)}function at(e,t){for(let n=0,r=rt.length;n<r;n+=1){let r=rt[n];if(r.condition(e,t))return new r(e,t)}return new qe(e,t)}var Q={AND:`$and`,OR:`$or`},ot={PATH:`$path`,PATTERN:`$val`},st=e=>!!(e[Q.AND]||e[Q.OR]),ct=e=>!!e[ot.PATH],lt=e=>!A(e)&&P(e)&&!st(e),ut=e=>({[Q.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function dt(e,t,{auto:n=!0}={}){let r=e=>{if(j(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=at(e,t)),r}let i=Object.keys(e),a=ct(e);if(!a&&i.length>1&&!st(e))return r(ut(e));if(lt(e)){let r=a?e[ot.PATH]:i[0],o=a?e[ot.PATTERN]:e[r];if(!j(o))throw Error(z(r));let s={keyId:Pe(r),pattern:o};return n&&(s.searcher=at(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];A(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return st(e)||(e=ut(e)),r(e)}function ft(e,{ignoreFieldNorm:t=q.ignoreFieldNorm}){let n=1;return e.forEach(({key:e,norm:r,score:i})=>{let a=e?e.weight:null;n*=(i===0&&a?2**-52:i)**+((a||1)*(t?1:r))}),n}function pt(e,{ignoreFieldNorm:t=q.ignoreFieldNorm}){e.forEach(e=>{e.score=ft(e.matches,{ignoreFieldNorm:t})})}var mt=class{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let n=e-1>>1;if(t[e].score<=t[n].score)break;let r=t[e];t[e]=t[n],t[n]=r,e=n}}_sinkDown(e){let t=this.heap,n=t.length,r=e;do{e=r;let i=2*e+1,a=2*e+2;if(i<n&&t[i].score>t[r].score&&(r=i),a<n&&t[a].score>t[r].score&&(r=a),r!==e){let n=t[e];t[e]=t[r],t[r]=n}}while(r!==e)}};function ht(e){let t=[];return e.matches.forEach(e=>{if(!F(e.indices)||!e.indices.length)return;let n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.id),e.idx>-1&&(n.refIndex=e.idx),t.push(n)}),t}function gt(e,t,{includeMatches:n=q.includeMatches,includeScore:r=q.includeScore}={}){return e.map(e=>{let{idx:i}=e,a={item:t[i],refIndex:i};return n&&(a.matches=ht(e)),r&&(a.score=e.score),a})}var _t=/[\p{L}\p{M}\p{N}_]+/gu,vt=new WeakSet;function yt(e){vt.has(e)||(vt.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function bt(e){if(typeof e==`function`){let t=!1;return n=>{let r=e(n);if(!t&&(t=!0,!Array.isArray(r)||r.some(e=>typeof e!=`string`)))throw Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(r)?`array containing non-strings`:typeof r}.`);return r}}return e instanceof RegExp?(e.global||yt(e),t=>t.match(e)||[]):e=>e.match(_t)||[]}function xt({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){let r=bt(n);return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=X(n)),r(n)}}}var St=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=xt({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});let n=this.analyzer.tokenize(e),{df:r,fieldCount:i}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(let e of n){this.termSearchers.push(new qe(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));let n=r.get(e)||0,a=Math.log(1+(i-n+.5)/(n+.5));this.idfWeights.push(a)}this.combineAll=t.tokenMatch===`all`,this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],n=0,r=0,i=0,a=0,o=this.combineAll&&!this.useMask?new Set:null;for(let s=0;s<this.termSearchers.length;s++){let c=this.termSearchers[s].searchIn(e),l=this.idfWeights[s];r+=l,c.isMatch&&(i++,n+=l*(1-c.score),c.indices&&t.push(...c.indices),this.combineAll&&(this.useMask?a|=1<<s:o.add(s)))}if(i===0)return{isMatch:!1,score:1};let s=r>0?1-n/r:0,c={isMatch:!0,score:Math.max(.001,s)};return this.options.includeMatches&&t.length&&(c.indices=We(t)),this.combineAll&&(this.useMask?c.matchedMask=a:c.matchedTerms=o,c.termCount=this.numTerms),c}};function Ct(e,t,n,r){let i=r.tokenize(t);if(!i.length)return;e.fieldCount++,e.docFieldCount.set(n,(e.docFieldCount.get(n)||0)+1);let a=new Set(i),o=e.docTermFieldHits.get(n);o||(o=new Map,e.docTermFieldHits.set(n,o));for(let t of a)o.set(t,(o.get(t)||0)+1),e.df.set(t,(e.df.get(t)||0)+1)}function wt(e,t,n,r){let{i,v:a,$:o}=t;if(a!==void 0){Ct(e,a,i,r);return}if(o)for(let t=0;t<n;t++){let n=o[t];if(n)if(Array.isArray(n))for(let t of n)Ct(e,t.v,i,r);else Ct(e,n.v,i,r)}}function Tt(e,t,n){let r={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(let i of e)wt(r,i,t,n);return r}function Et(e,t,n,r){wt(e,t,n,r)}function Dt(e,t){let n=e.docFieldCount.get(t);if(n===void 0)return;e.fieldCount-=n,e.docFieldCount.delete(t);let r=e.docTermFieldHits.get(t);if(r){for(let[t,n]of r){let r=(e.df.get(t)||0)-n;r<=0?e.df.delete(t):e.df.set(t,r)}e.docTermFieldHits.delete(t)}}function Ot(e,t){if(t.length===0)return;let n=Array.from(new Set(t)).sort((e,t)=>e-t);for(let t of n)Dt(e,t);let r=e=>{let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e?t=i+1:r=i}return e-t},i=n[0],a=new Map;for(let[t,n]of e.docFieldCount)a.set(t>i?r(t):t,n);e.docFieldCount=a;let o=new Map;for(let[t,n]of e.docTermFieldHits)o.set(t>i?r(t):t,n);e.docTermFieldHits=o}var $=class{constructor(e,t,n){this.options={...q,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new W(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=at(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof J))throw Error(L);if(this._myIndex=t||Be(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=xt({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=Tt(this._myIndex.records,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}add(e){if(!F(e))return;this._docs.push(e);let t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){let e=xt({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Et(this._invertedIndex,t,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}remove(e=()=>!1){let t=[],n=[];for(let r=0,i=this._docs.length;r<i;r+=1)e(this._docs[r],r)&&(t.push(this._docs[r]),n.push(r));if(n.length){this._invertedIndex&&Ot(this._invertedIndex,n);let e=new Set(n);this._docs=this._docs.filter((t,n)=>!e.has(n)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw Error(R);this._invertedIndex&&Ot(this._invertedIndex,[e]);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}search(e,t){let{limit:n=-1}=t||{},{includeMatches:r,includeScore:i,shouldSort:a,sortFn:o,ignoreFieldNorm:s}=this.options;if(j(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return M(n)&&n>-1&&(e=e.slice(0,n)),e}let c=M(n)&&n>0&&j(e),l;if(c){let t=new mt(n);j(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=j(e)?j(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),pt(l,{ignoreFieldNorm:s}),a&&l.sort(o),M(n)&&n>-1&&(l=l.slice(0,n));return gt(l,this._docs,{includeMatches:r,includeScore:i})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{records:a}=this._myIndex,o=t?null:[];return a.forEach(({v:e,i:a,n:s})=>{if(!F(e))return;let c=r.searchIn(e);if(c.isMatch){let r={score:c.score,value:e,norm:s,indices:c.indices};i&&(r.matchedMask=c.matchedMask,r.matchedTerms=c.matchedTerms,r.termCount=c.termCount);let l=[r];if(!i||this._coversAllTokens(l)){let r={item:e,idx:a,matches:l};t?(r.score=ft(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}}),o}_searchLogical(e){let t=dt(e,this.options),n=(e,t,r)=>{if(!(`children`in e)){let{keyId:n,searcher:i}=e,a;return n===null?(a=[],this._myIndex.keys.forEach((e,n)=>{a.push(...this._findMatches({key:e,value:t[n],searcher:i}))})):a=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:i}),a&&a.length?[{idx:r,item:t,matches:a}]:[]}let{children:i,operator:a}=e,o=[];for(let e=0,s=i.length;e<s;e+=1){let s=i[e],c=n(s,t,r);if(c.length)o.push(...c);else if(a===Q.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(F(e)){let o=n(t,e,r);o.length&&(i.has(r)||(i.set(r,{idx:r,item:e,matches:[]}),a.push(i.get(r))),o.forEach(({matches:e})=>{i.get(r).matches.push(...e)}))}}),a}_searchObjectList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{keys:a,records:o}=this._myIndex,s=t?null:[];return o.forEach(({$:e,i:o})=>{if(!F(e))return;let c=[],l=!1,u=!1;if(a.forEach((t,n)=>{let i=this._findMatches({key:t,value:e[n],searcher:r});i.length?(c.push(...i),i[0].hasInverse&&(u=!0)):l=!0}),!(u&&l)&&c.length&&(!i||this._coversAllTokens(c))){let r={idx:o,item:e,matches:c};t?(r.score=ft(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):s.push(r)}}),s}_findMatches({key:e,value:t,searcher:n}){if(!F(t))return[];let r=[];if(A(t))t.forEach(({v:t,i,n:a})=>{if(!F(t))return;let o=n.searchIn(t);if(o.isMatch){let n={score:o.score,key:e,value:t,idx:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(n.matchedMask=o.matchedMask,n.matchedTerms=o.matchedTerms,n.termCount=o.termCount),r.push(n)}});else{let{v:i,n:a}=t,o=n.searchIn(i);if(o.isMatch){let t={score:o.score,key:e,value:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(t.matchedMask=o.matchedMask,t.matchedTerms=o.matchedTerms,t.termCount=o.termCount),r.push(t)}}return r}_coversAllTokens(e){let t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let n=0;for(let t=0;t<e.length;t++)n|=e[t].matchedMask||0;return n===2**t-1}let n=new Set;for(let t=0;t<e.length;t++){let r=e[t].matchedTerms;if(r)for(let e of r)n.add(e)}return n.size===t}};$.version=`7.4.2`,$.createIndex=Be,$.parseIndex=Ve,$.config=q,$.match=function(e,t,n){if(n&&n.useTokenSearch)throw Error(H);return at(e,{...q,...n}).searchIn(t)},$.parseQuery=dt,it(nt),it(St),$.use=function(...e){e.forEach(e=>it(e))};var kt=$,At=d(`<button role="menuitem" class="svelte-109nkvw">Rename…</button>`),jt=d(`<div class="context-menu svelte-109nkvw" role="menu" aria-label="Asset actions" tabindex="-1"><!> <button class="danger svelte-109nkvw" role="menuitem"> </button></div>`);function Mt(t,n){x(n,!0);let r=_(()=>Math.max(8,Math.min(n.x,window.innerWidth-176))),a=_(()=>n.onRename?2:1),o=_(()=>Math.max(8,Math.min(n.y,window.innerHeight-(f(a)*32+8))));function s(e){e(),n.onClose()}var d=jt();u(`click`,h,function(...e){n.onClose?.apply(this,e)}),u(`blur`,h,function(...e){n.onClose?.apply(this,e)}),u(`keydown`,h,e=>e.key===`Escape`&&n.onClose()),u(`resize`,h,function(...e){n.onClose?.apply(this,e)}),u(`scroll`,h,function(...e){n.onClose?.apply(this,e)});let p;var v=g(d),y=e=>{var t=At();l(`click`,t,()=>s(n.onRename)),i(e,t)};D(v,e=>{n.onRename&&e(y)});var b=c(v,2),S=g(b,!0);w(b),w(d),O(()=>{p=C(d,``,p,{left:`${f(r)}px`,top:`${f(o)}px`}),m(S,n.assetCount===1?`Delete Asset`:`Delete ${n.assetCount} Assets`)}),l(`contextmenu`,d,e=>e.preventDefault()),l(`click`,b,()=>s(n.onDelete)),i(t,d),e()}T([`contextmenu`,`click`]);var Nt=d(`<span class="emoji svelte-1b4m5oj"> </span>`),Pt=d(`<span><!> <span class="name svelte-1b4m5oj"> </span></span>`);function Ft(t,n){x(n,!0);let r=te(n,`variant`,3,`chip`),a=te(n,`passive`,3,!1),o=te(n,`via`,19,()=>[]),s=_(()=>k.manifestAppearance(n.name)),l=_(()=>f(s).color??`var(--accent)`),u=_(()=>a()?`${n.name} — passive member${o().length>0?`, via ${o().join(`, `)}`:``}`:n.name);var d=Pt();let p;var h=g(d),v=e=>{var t=Nt(),n=g(t,!0);w(t),O(()=>m(n,f(s).emoji)),i(e,t)};D(h,e=>{f(s).emoji&&e(v)});var y=c(h,2),b=g(y,!0);w(y),w(d),O(()=>{p=ee(d,1,`manifest-label ${r()??``}`,`svelte-1b4m5oj`,p,{passive:a()}),C(d,`--manifest-color: ${f(l)??``}`),E(d,`title`,f(u)),m(b,n.name)}),i(t,d),e()}var It=d(`<span class="selection-summary svelte-1uha8ag"> </span> <button class="control">Select all shown</button> <button class="control">Clear</button>`,1),Lt=d(`<button class="control">Select All</button>`),Rt=d(`<option> </option>`),zt=d(`<div class="empty svelte-1uha8ag">Loading library…</div>`),Bt=d(`<div class="empty svelte-1uha8ag"> </div>`),Vt=d(`<button draggable="true"><span class="folder-card-icon svelte-1uha8ag"><!></span> <span class="folder-card-details svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="svelte-1uha8ag"> </span></span> <span class="folder-card-arrow svelte-1uha8ag">›</span></button>`),Ht=d(`<section class="section folder-section svelte-1uha8ag"><!> <div class="folder-grid svelte-1uha8ag"></div></section>`),Ut=d(`<span class="section-emoji svelte-1uha8ag"> </span>`),Wt=d(`<!> `,1),Gt=d(`<video playsinline="" preload="metadata" class="svelte-1uha8ag"></video>`,2),Kt=d(`<img loading="lazy" class="svelte-1uha8ag"/>`),qt=d(`<span class="badge warning svelte-1uha8ag">⚠</span>`),Jt=d(`<a draggable="true"><input class="asset-select svelte-1uha8ag" type="checkbox"/> <div class="thumbnail checkerboard svelte-1uha8ag"><!></div> <div class="meta svelte-1uha8ag"><span class="id svelte-1uha8ag"> </span> <span class="type-badge svelte-1uha8ag"> </span></div> <div class="badges svelte-1uha8ag"><!> <!> <!></div></a>`),Yt=d(`<section class="section svelte-1uha8ag"><!> <div class="grid svelte-1uha8ag"></div></section>`),Xt=d(`<!> <!>`,1),Zt=d(`<div class="drop-hint svelte-1uha8ag"> </div>`),Qt=d(`<p class="dialog-warning svelte-1uha8ag"> </p>`),$t=d(`<p class="dialog-warning svelte-1uha8ag">An asset with this ID already exists.</p>`),en=d(`<label class="dialog-row svelte-1uha8ag"><span class="svelte-1uha8ag">ID</span> <input class="control svelte-1uha8ag" spellcheck="false"/></label> <!> <!> <!> <!>`,1),tn=d(`<p class="dialog-text svelte-1uha8ag"> </p> <!> <!>`,1),nn=d(`<div class="library-view svelte-1uha8ag"><!> <div role="application" aria-label="Asset library — drop a file anywhere to import it"><div class="selection-bar svelte-1uha8ag"><!> <button class="control import svelte-1uha8ag">Import file</button> <input type="file" hidden=""/></div> <div class="filter-bar svelte-1uha8ag"><select class="control" aria-label="Sort"><option>Sort alphabetically</option><option>Sort by type</option><option>Sort by manifest</option></select> <select class="control" aria-label="Filter by type"><option>All types</option><!></select> <select class="control" aria-label="Filter by manifest"><option>All manifests</option><!></select> <div class="control search svelte-1uha8ag"><svg class="search-icon svelte-1uha8ag" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5"></circle><path d="m10.5 10.5 3 3"></path></svg> <input class="search-input svelte-1uha8ag" type="search" placeholder="Search assets and folders…" aria-label="Search assets and folders" spellcheck="false"/> <kbd class="svelte-1uha8ag"> </kbd></div> <label class="toggle svelte-1uha8ag"><input type="checkbox"/> Warnings only</label></div> <!> <!></div></div> <!> <!> <!> <!> <!>`,1);function rn(d,C){x(C,!0);let te=`fundus.gallery.sort`,T=`fundus.gallery.folder`;function A(){try{let e=localStorage.getItem(te);if(e===`type`||e===`manifest`||e===`alphabetical`)return e}catch{}return`alphabetical`}let Oe=v(re(A()));function ke(){try{let e=localStorage.getItem(T);return e===null||e===`__all__`?null:e}catch{return null}}let j=v(re(ke())),M=v(`all`),N=v(`all`),P=v(``),Ae=v(!1),F=v(!1),I=v(null),je=v(``),L=v(null),R=v(null),z=v(null),B=v(``),Me=v(void 0),V=v(re([])),H=v(null),U=v(null),W=v(!1),G=v(null),Ne=v(null),Pe=0,Fe=v(null),Ie=0,Le=v(null),Re=0,K=v(re([])),q=v(null),ze=v(void 0),J=v(void 0),Be=Ee().join(`,`),Ve=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘K`:`Ctrl K`;n(()=>{try{localStorage.setItem(te,f(Oe))}catch{}}),n(()=>{try{localStorage.setItem(T,f(j)??`__all__`)}catch{}});let Y=_(()=>k.state?.assets??[]),He=_(()=>f(z)!==null&&f(B)!==f(z)?Te(f(B)):null),Ue=_(()=>f(z)!==null&&f(Y).some(e=>e.id!==f(z)&&e.id===f(B))),We=_(()=>f(z)!==null&&f(B)!==f(z)&&f(He)===null&&!f(Ue)&&!f(W)),Ge=_(()=>f(z)===null?[]:(f(Y).find(e=>e.id===f(z))?.references.incoming??[]).map(e=>`${e.assetId}.${e.field} → ${f(z)}`)),Ke=_(()=>new Set(f(V))),X=_(()=>f(V).flatMap(e=>(f(Y).find(t=>t.id===e)?.references.incoming??[]).filter(e=>!f(Ke).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e}`))),qe=_(()=>k.state?.library.folders??[]),Je=_(()=>k.manifestNames),Ye=_(()=>[...new Set(f(Y).map(e=>e.type))].sort()),Z=_(()=>f(P).trim()),Xe=_(()=>new kt(f(Y),{keys:[{name:`id`,weight:.5},{name:`raw`,weight:.2},{name:`folder`,weight:.1},{name:`manifests`,weight:.08},{name:`passiveManifests.manifest`,weight:.07},{name:`type`,weight:.05}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),Ze=_(()=>f(Z)===``?null:new Set(f(Xe).search(f(Z)).map(({item:e})=>e.id))),Qe=_(()=>f(qe).map(e=>({path:e,name:we(e)}))),$e=_(()=>new kt(f(Qe),{keys:[{name:`name`,weight:.7},{name:`path`,weight:.3}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),et=_(()=>f(Z)===``?null:new Set(f($e).search(f(Z)).map(({item:e})=>e.path))),tt=_(()=>f(j)===null?[]:f(qe).filter(e=>be(e)===f(j)).sort((e,t)=>e.localeCompare(t))),nt=_(()=>f(et)===null?f(tt):f(tt).filter(e=>f(et).has(e)));n(()=>{k.state&&f(j)!==null&&f(j)!==``&&!f(qe).includes(f(j))&&s(j,null)});let rt=_(()=>f(Y).filter(e=>!(f(j)!==null&&e.folder!==f(j)||f(Ze)!==null&&!f(Ze).has(e.id)||f(M)!==`all`&&e.type!==f(M)||f(N)!==`all`&&!e.manifests.includes(f(N))&&!e.passiveManifests.some(e=>e.manifest===f(N))||f(Ae)&&e.warnings.length===0))),it=(e,t)=>e.id.localeCompare(t.id),at=_(()=>{let e=[...f(rt)].sort(it);if(f(Oe)===`alphabetical`)return[{key:`all`,heading:null,assets:e}];if(f(Oe)===`type`)return[...new Set(e.map(e=>e.type))].sort().map(t=>({key:t,heading:t,assets:e.filter(e=>e.type===t)}));let t=[];for(let n of f(Je)){let r=e.filter(e=>e.manifests.includes(n)||e.passiveManifests.some(e=>e.manifest===n));r.length>0&&t.push({key:n,heading:n,emoji:k.manifestAppearance(n).emoji,assets:r})}let n=e.filter(e=>e.manifests.length===0&&e.passiveManifests.length===0);return n.length>0&&t.push({key:`__no-manifest__`,heading:`No manifest`,assets:n}),t}),Q=_(()=>[...new Set(f(at).flatMap(e=>e.assets.map(e=>e.id)))]);n(()=>{let e=new Set(f(Y).map(e=>e.id)),t=f(K).filter(t=>e.has(t));t.length!==f(K).length&&s(K,t,!0)});function ot(e){s(j,e,!0),s(K,[],!0),s(q,null)}function st(e,t){if(t&&f(q)!==null){let t=f(Q).indexOf(f(q)),n=f(Q).indexOf(e);if(t!==-1&&n!==-1){let r=Math.min(t,n),i=Math.max(t,n);s(K,[...new Set([...f(K),...f(Q).slice(r,i+1)])],!0),s(q,e,!0);return}}s(K,f(K).includes(e)?f(K).filter(t=>t!==e):[...f(K),e],!0),s(q,e,!0)}function ct(){s(K,[...f(Q)],!0),s(q,f(Q).at(-1)??null,!0)}function lt(e,t){if(!e.dataTransfer||t.length<2)return;let n=[...document.querySelectorAll(`.card[data-asset-id]`)],r=t.map(e=>n.find(t=>t.dataset.assetId===e)).filter(e=>e!==void 0);if(r.length<2)return;let i=document.createElement(`div`),a=44/(r.length-1),o=Math.min(r[0].offsetWidth,180),s=r[0].offsetHeight;Object.assign(i.style,{position:`fixed`,left:`-10000px`,top:`-10000px`,width:`${o+44}px`,height:`${s+44}px`,pointerEvents:`none`});for(let[e,t]of r.entries()){let n=t.cloneNode(!0);n.querySelector(`.asset-select`)?.remove(),n.removeAttribute(`href`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,{position:`absolute`,left:`${e*a}px`,top:`${e*a}px`,width:`${o}px`,height:`${s}px`,boxSizing:`border-box`,opacity:`1`}),i.append(n)}let c=document.createElement(`span`);c.textContent=String(t.length),Object.assign(c.style,{position:`absolute`,right:`0`,top:`0`,minWidth:`28px`,height:`28px`,padding:`0 7px`,boxSizing:`border-box`,borderRadius:`14px`,background:`var(--accent)`,color:`var(--text)`,font:`600 13px/28px system-ui, sans-serif`,textAlign:`center`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.35)`}),i.append(c),document.body.append(i),e.dataTransfer.setDragImage(i,24,24),requestAnimationFrame(()=>i.remove())}function ut(e){e.preventDefault(),s(F,!1);let t=e.dataTransfer?.files?.[0];t&&(s(je,f(j)??``,!0),s(I,t,!0))}function dt(e){s(je,e,!0),f(ze)?.click()}function ft(e){Pe+=1,s(Ne,{id:Pe,parent:e},!0)}function pt(e){Ie+=1,s(Fe,{id:Ie,path:e},!0)}function mt(e){Re+=1,s(Le,{id:Re,path:e},!0)}function ht(e){e.preventDefault(),s(R,null),s(L,{x:e.clientX,y:e.clientY,parent:f(j)??``,renamePath:null},!0)}function gt(e,t){e.preventDefault(),e.stopPropagation(),s(R,null),s(L,{x:e.clientX,y:e.clientY,parent:t,renamePath:t},!0)}function _t(e,t){e.preventDefault(),e.stopPropagation(),s(L,null);let n=f(K).includes(t)?[...f(K)]:[t];f(K).includes(t)||(s(K,[t],!0),s(q,t,!0)),s(R,{x:e.clientX,y:e.clientY,assetIds:n},!0)}function vt(e){s(z,e,!0),s(B,e,!0),s(G,null),o().then(()=>{f(Me)?.focus(),f(Me)?.select()})}function yt(e){s(V,[...new Set(e)],!0),s(G,null)}function bt(){f(W)||(s(z,null),s(V,[],!0),s(G,null))}async function xt(){if(!f(We)||f(z)===null)return;let e=f(z),t=f(B);s(W,!0),s(G,null);try{await k.mutate(()=>fe(e,{renameTo:t})),s(K,f(K).map(n=>n===e?t:n),!0),s(q,f(q)===e?t:f(q),!0),s(z,null)}catch(e){s(G,e instanceof Error?e.message:String(e),!0)}finally{s(W,!1)}}async function St(){if(f(V).length===0)return;let e=[...f(V)];s(W,!0),s(G,null);try{await k.mutate(()=>le(e));let t=new Set(e);s(K,f(K).filter(e=>!t.has(e)),!0),f(q)!==null&&t.has(f(q))&&s(q,null),s(V,[],!0)}catch(e){s(G,e instanceof Error?e.message:String(e),!0)}finally{s(W,!1)}}function Ct(e){return f(Y).filter(t=>t.folder===e).length}function wt(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&s(I,n,!0)}async function Tt(e){s(I,null),await ce(se(`/asset/[id]`,{id:e}))}async function Et(e,t){let n=e.filter(e=>k.assetById(e)?.folder!==t);if(n.length!==0)try{await k.mutate(()=>ue(n,t)),s(K,[],!0),s(q,null)}catch{}}function Dt(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=ge(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,f(H),t);!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),s(U,t,!0))}function Ot(e,t){e.preventDefault(),s(U,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&Et(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`);r&&pe(r,t)&&$(r,t)}async function $(e,t){let n=he(t,we(e));try{await k.mutate(()=>de(e,t)),f(j)!==null&&me(f(j),e)&&ot(`${n}${f(j).slice(e.length)}`)}catch{}finally{s(H,null),s(U,null)}}function At(e){e&&e.play().catch(()=>{})}function jt(e){e&&(e.pause(),e.currentTime=0)}function Nt(e){e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey||e.key.toLowerCase()!==`k`||document.querySelector(`[role="dialog"]`)!==null||(e.preventDefault(),f(J)?.focus(),f(J)?.select())}var Pt=nn();u(`keydown`,h,Nt),u(`dragenter`,h,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),s(F,!0))}),u(`dragover`,h,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),s(F,!0))}),u(`drop`,h,ut);var rn=a(Pt),an=g(rn);ve(an,{get selectedFolder(){return f(j)},get createRequest(){return f(Ne)},get renameRequest(){return f(Fe)},get deleteRequest(){return f(Le)},onSelect:ot,onMoveAssets:(e,t)=>void Et(e,t),get sharedDraggedFolder(){return f(H)},onFolderDragStart:e=>s(H,e,!0),onFolderDragEnd:()=>s(H,null),onContextMenu:(e,t,n,r)=>{s(R,null),s(L,{x:e,y:t,parent:n,renamePath:r},!0)}});var on=c(an,2);let sn;var cn=g(on),ln=g(cn),un=e=>{var t=It(),n=a(t),r=g(n);w(n);var o=c(n,2),u=c(o,2);O(()=>m(r,`${f(K).length??``} selected`)),l(`click`,o,ct),l(`click`,u,()=>{s(K,[],!0),s(q,null)}),i(e,t)},dn=e=>{var t=Lt();O(()=>t.disabled=f(Q).length===0),l(`click`,t,ct),i(e,t)};D(ln,e=>{f(K).length>0?e(un):e(dn,-1)});var fn=c(ln,2),pn=c(fn,2);y(pn,e=>s(ze,e),()=>f(ze)),w(cn);var mn=c(cn,2),hn=g(mn),gn=g(hn);gn.value=gn.__value=`alphabetical`;var _n=c(gn);_n.value=_n.__value=`type`;var vn=c(_n);vn.value=vn.__value=`manifest`,w(hn);var yn=c(hn,2),bn=g(yn);bn.value=bn.__value=`all`,p(c(bn),16,()=>f(Ye),e=>e,(e,t)=>{var n=Rt(),r=g(n,!0);w(n);var a={};O(()=>{m(r,t),a!==(a=t)&&(n.value=(n.__value=t)??``)}),i(e,n)}),w(yn);var xn=c(yn,2),Sn=g(xn);Sn.value=Sn.__value=`all`,p(c(Sn),16,()=>f(Je),e=>e,(e,t)=>{let n=_(()=>k.manifestAppearance(t).emoji);var r=Rt(),a=g(r,!0);w(r);var o={};O(()=>{m(a,f(n)?`${f(n)} ${t}`:t),o!==(o=t)&&(r.value=(r.__value=t)??``)}),i(e,r)}),w(xn);var Cn=c(xn,2),wn=c(g(Cn),2);b(wn),y(wn,e=>s(J,e),()=>f(J));var Tn=c(wn,2),En=g(Tn,!0);w(Tn),w(Cn);var Dn=c(Cn,2),On=g(Dn);b(On),ie(),w(Dn),w(mn);var kn=c(mn,2),An=e=>{i(e,zt())},jn=e=>{var t=Bt(),n=g(t,!0);w(t),O(()=>m(n,f(Y).length===0?`No assets yet — drop an image anywhere to import it.`:`Nothing matches the current filters.`)),i(e,t)},Mn=e=>{var n=Xt(),o=a(n),d=e=>{var n=Ht(),r=g(n);ye(r,{children:(e,n)=>{ie(),i(e,t(`Folders`))},$$slots:{default:!0}});var a=c(r,2);p(a,20,()=>f(nt),e=>e,(e,t)=>{var n=Vt();let r;var a=g(n);xe(g(a),{size:18}),w(a);var o=c(a,2),d=g(o),p=g(d,!0);w(d);var h=c(d,2),_=g(h);w(h),w(o),ie(2),w(n),O((e,i)=>{r=ee(n,1,`folder-card svelte-1uha8ag`,null,r,{"drop-target":f(U)===t,"dragging-folder":f(H)===t}),m(p,e),m(_,`${i??``} assets`)},[()=>we(t),()=>Ct(t)]),l(`click`,n,()=>ot(t)),l(`contextmenu`,n,e=>gt(e,t)),u(`dragstart`,n,e=>{s(H,t,!0),e.dataTransfer?.setData(`application/x-fundus-folder`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),u(`dragend`,n,()=>{s(H,null),s(U,null)}),u(`dragover`,n,e=>Dt(e,t)),u(`dragleave`,n,()=>s(U,null)),u(`drop`,n,e=>Ot(e,t)),i(e,n)}),w(a),w(n),i(e,n)};D(o,e=>{f(nt).length>0&&e(d)});var h=c(o,2),v=e=>{var t=r();p(a(t),17,()=>f(at),e=>e.key,(e,t)=>{var n=Yt(),r=g(n),o=e=>{ye(e,{children:(e,n)=>{var r=Wt(),o=a(r),s=e=>{var n=Ut(),r=g(n,!0);w(n),O(()=>m(r,f(t).emoji)),i(e,n)};D(o,e=>{f(t).emoji&&e(s)});var l=c(o,1,!0);O(()=>m(l,f(t).heading)),i(e,r)},$$slots:{default:!0}})};D(r,e=>{f(t).heading&&e(o)});var s=c(r,2);p(s,21,()=>f(t).assets,e=>e.id,(e,t)=>{var n=Jt();let r;var a=g(n);b(a);var o=c(a,2),s=g(o),d=e=>{var n=Gt();n.muted=!0,O(()=>E(n,`src`,f(t).proxy?.url??f(t).rawUrl)),u(`pointerenter`,n,e=>At(e.currentTarget)),u(`pointerleave`,n,e=>jt(e.currentTarget)),i(e,n)},h=e=>{{let n=_(()=>f(t).proxy?.url??f(t).rawUrl);Se(e,{get src(){return f(n)}})}},v=e=>{var n=Kt();O(()=>{E(n,`src`,f(t).proxy?.url??f(t).rawUrl),E(n,`alt`,f(t).id)}),i(e,n)};D(s,e=>{f(t).type===`video`||f(t).type===`chroma-key-video`?e(d):f(t).type===`audio`?e(h,1):e(v,-1)}),w(o);var y=c(o,2),x=g(y),S=g(x,!0);w(x);var C=c(x,2),te=g(C,!0);w(C),w(y);var T=c(y,2),ne=g(T);p(ne,16,()=>f(t).manifests,e=>e,(e,t)=>{Ft(e,{get name(){return t}})});var re=c(ne,2);p(re,17,()=>f(t).passiveManifests,e=>e.manifest,(e,t)=>{Ft(e,{get name(){return f(t).manifest},passive:!0,get via(){return f(t).via}})}),p(c(re,2),16,()=>f(t).warnings,e=>e,(e,t)=>{var n=qt();O(()=>E(n,`title`,t)),i(e,n)}),w(T),w(n),O((e,i,o)=>{r=ee(n,1,`card svelte-1uha8ag`,null,r,e),E(n,`data-asset-id`,f(t).id),E(n,`href`,i),oe(a,o),E(a,`aria-label`,`Select ${f(t).id}`),m(S,f(t).id),m(te,f(t).type)},[()=>({selected:f(K).includes(f(t).id)}),()=>se(`/asset/[id]`,{id:f(t).id}),()=>f(K).includes(f(t).id)]),l(`contextmenu`,n,e=>_t(e,f(t).id)),l(`click`,n,e=>{(f(K).length>0||e.metaKey||e.ctrlKey||e.shiftKey)&&(e.preventDefault(),st(f(t).id,e.shiftKey))}),u(`dragstart`,n,e=>{let n=f(K).includes(f(t).id)?f(K):[f(t).id];e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify(n)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),lt(e,n)}),u(`focus`,n,e=>At(e.currentTarget.querySelector(`video`))),u(`blur`,n,e=>jt(e.currentTarget.querySelector(`video`))),l(`click`,a,e=>{e.stopPropagation(),st(f(t).id,e.shiftKey)}),i(e,n)}),w(s),w(n),i(e,n)}),i(e,t)};D(h,e=>{f(rt).length>0&&e(v)}),i(e,n)};D(kn,e=>{k.state?f(rt).length===0&&f(nt).length===0?e(jn,1):e(Mn,-1):e(An)});var Nn=c(kn,2),Pn=e=>{var t=Zt(),n=g(t);w(t),O(()=>m(n,`Drop to import into ${(f(j)||`Root`)??``}`)),i(e,t)};D(Nn,e=>{f(F)&&e(Pn)}),w(on),w(rn);var Fn=c(rn,2),In=e=>{{let t=_(()=>f(L).renamePath===null?void 0:()=>pt(f(L)?.renamePath??``)),n=_(()=>f(L).renamePath===null?void 0:()=>mt(f(L)?.renamePath??``));Ce(e,{get x(){return f(L).x},get y(){return f(L).y},onNewDirectory:()=>ft(f(L)?.parent??``),get onRenameDirectory(){return f(t)},onImportFile:()=>dt(f(L)?.parent??``),get onDeleteDirectory(){return f(n)},onClose:()=>s(L,null)})}};D(Fn,e=>{f(L)&&e(In)});var Ln=c(Fn,2),Rn=e=>{{let t=_(()=>f(R).assetIds.length===1?()=>vt(f(R)?.assetIds[0]??``):void 0);Mt(e,{get x(){return f(R).x},get y(){return f(R).y},get assetCount(){return f(R).assetIds.length},get onRename(){return f(t)},onDelete:()=>yt(f(R)?.assetIds??[]),onClose:()=>s(R,null)})}};D(Ln,e=>{f(R)&&e(Rn)});var zn=c(Ln,2),Bn=e=>{{let t=_(()=>f(W)?`Renaming…`:`Rename`),n=_(()=>!f(We));De(e,{title:`Rename asset`,get confirmLabel(){return f(t)},get confirmDisabled(){return f(n)},get busy(){return f(W)},onConfirm:()=>void xt(),onCancel:bt,children:(e,t)=>{var n=en(),r=a(n),o=c(g(r),2);b(o),y(o,e=>s(Me,e),()=>f(Me)),w(r);var u=c(r,2),d=e=>{var t=Qt(),n=g(t,!0);w(t),O(()=>m(n,f(He))),i(e,t)};D(u,e=>{f(He)&&e(d)});var p=c(u,2),h=e=>{i(e,$t())};D(p,e=>{f(Ue)&&e(h)});var _=c(p,2),v=e=>{var t=Qt(),n=g(t);w(t),O(e=>m(n,`Renaming leaves ${f(Ge).length??``} reference(s) pointing to the old ID:
|
|
2
|
-
${e??``}`),[()=>f(Ge).join(`, `)]),i(e,t)};D(_,e=>{f(Ge).length>0&&e(v)});var x=c(_,2),S=e=>{var t=Qt(),n=g(t,!0);w(t),O(()=>m(n,f(G))),i(e,t)};D(x,e=>{f(G)&&e(S)}),O(()=>o.disabled=f(W)),l(`keydown`,o,e=>e.key===`Enter`&&void xt()),ae(o,()=>f(B),e=>s(B,e)),i(e,n)},$$slots:{default:!0}})}};D(zn,e=>{f(z)!==null&&e(Bn)});var Vn=c(zn,2),Hn=e=>{{let t=_(()=>f(V).length===1?`Delete asset`:`Delete ${f(V).length} assets`),n=_(()=>f(W)?`Deleting…`:f(V).length===1?`Delete asset`:`Delete ${f(V).length} assets`);De(e,{get title(){return f(t)},get confirmLabel(){return f(n)},danger:!0,get busy(){return f(W)},onConfirm:()=>void St(),onCancel:bt,children:(e,t)=>{var n=tn(),r=a(n),o=g(r);w(r);var s=c(r,2),l=e=>{var t=Qt(),n=g(t);w(t),O(e=>m(n,`This leaves ${f(X).length??``} external reference(s) dangling:
|
|
3
|
-
${e??``}`),[()=>f(X).join(`, `)]),i(e,t)};D(s,e=>{f(X).length>0&&e(l)});var u=c(s,2),d=e=>{var t=Qt(),n=g(t,!0);w(t),O(()=>m(n,f(G))),i(e,t)};D(u,e=>{f(G)&&e(d)}),O(e=>m(o,`Delete ${e??``}? Their raw files and proxies are removed.`),[()=>f(V).join(`, `)]),i(e,n)},$$slots:{default:!0}})}};D(Vn,e=>{f(V).length>0&&e(Hn)});var Un=c(Vn,2),Wn=e=>{_e(e,{get file(){return f(I)},get folder(){return f(je)},onDone:e=>void Tt(e),onCancel:()=>s(I,null)})};D(Un,e=>{f(I)&&e(Wn)}),O(()=>{sn=ee(on,1,`page svelte-1uha8ag`,null,sn,{dragging:f(F)}),E(pn,`accept`,Be),m(En,Ve)}),l(`contextmenu`,on,ht),u(`dragleave`,on,e=>{e.relatedTarget===null&&s(F,!1)}),l(`click`,fn,()=>dt(f(j)??``)),l(`change`,pn,wt),S(hn,()=>f(Oe),e=>s(Oe,e)),S(yn,()=>f(M),e=>s(M,e)),S(xn,()=>f(N),e=>s(N,e)),l(`keydown`,wn,e=>{e.key===`Escape`&&(e.stopPropagation(),f(P)===``?e.currentTarget.blur():s(P,``))}),ae(wn,()=>f(P),e=>s(P,e)),ne(On,()=>f(Ae),e=>s(Ae,e)),i(d,Pt),e()}T([`contextmenu`,`click`,`change`,`keydown`]);export{rn as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,C as r,D as i,E as a,G as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,S as m,T as h,U as g,W as _,X as v,Y as y,_ as b,a as x,b as S,c as C,d as w,et as T,g as E,h as D,i as O,it as k,j as A,k as j,l as M,m as N,n as P,nt as F,p as I,q as L,rt as R,u as z,w as B,x as ee,y as V,z as H}from"../chunks/CNRz3sSw.js";import{c as U,t as te}from"../chunks/CvY6YsFE.js";import"../chunks/xihTtKlq.js";import{t as ne}from"../chunks/DQ8SXFaX.js";import{c as re,i as ie,t as W,u as ae}from"../chunks/CO4RBJfa.js";import{c as oe,l as se,n as ce,o as G,s as K,t as le}from"../chunks/DL0_39Ys.js";import{a as q,c as ue,d as de,f as fe,l as pe,m as me,n as he,o as ge,p as _e,s as ve,u as ye}from"../chunks/BiIto6ft.js";import{n as be,r as J,t as xe}from"../chunks/DjdrdRzT.js";var Se=new Set([`image`,`slice`]),Ce=new Set([`video`,`chroma-key-video`,`audio`]);function we(e,t){return Se.has(e)?t[e]?.decode??!0:!1}async function Te(e){let t=await fetch(e);if(!t.ok)throw Error(`Preloading "${e}" failed: ${t.status} ${t.statusText}.`);return t}function Ee(e){return{async preload(t,n){if(await(await Te(t)).arrayBuffer(),we(e,n)&&typeof globalThis.Image==`function`){let e=new globalThis.Image;e.src=t,await e.decode()}return{}}}}var De={async preload(e){let t=await(await Te(e)).blob();return typeof URL.createObjectURL==`function`?{objectUrl:URL.createObjectURL(t)}:{}},release(e){e.objectUrl!==void 0&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(e.objectUrl)}};new Map([[`image`,Ee(`image`)],[`slice`,Ee(`slice`)],...[...Ce].map(e=>[e,De])]);var Oe=new Map;function ke(e){return Oe.get(e)?.resources?.objectUrl??e}var Ae=f(`<img/>`);function je(t,n){T(n,!0);let r=O(n,`alt`,3,``),i=O(n,`class`,3,``);var o=Ae();H(()=>{M(o,`src`,n.src.src),M(o,`width`,n.src.width),M(o,`height`,n.src.height),M(o,`alt`,r()),E(o,1,b(i()))}),a(t,o),e()}function Me(e,t,n){return Math.max(t,Math.min(n,e))}function Ne(e){let{mode:t,insets:n}=e.slicing,r=pe(t);return{top:r.vertical?n.top:0,bottom:r.vertical?n.bottom:0,left:r.horizontal?n.left:0,right:r.horizontal?n.right:0}}function Pe(e){let t=e.slicing.overdraw;if(!t)return ge();let n=e.sourceWidth,r=e.sourceHeight,i=Me(t.left,0,Math.max(0,n-1)),a=Me(t.right,0,Math.max(0,n-i-1)),o=Me(t.top,0,Math.max(0,r-1));return{top:o,right:a,bottom:Me(t.bottom,0,Math.max(0,r-o-1)),left:i}}function Fe(e){let t=Pe(e);return{width:Math.max(1,e.sourceWidth-t.left-t.right),height:Math.max(1,e.sourceHeight-t.top-t.bottom)}}function Ie(e,t,n){let r=Pe(e);if(r.top===0&&r.right===0&&r.bottom===0&&r.left===0)return r;let i=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,a=Fe(e),o,s;return e.slicing.mode===`three-horizontal`?o=s=n/a.height:e.slicing.mode===`three-vertical`?o=s=t/a.width:e.slicing.mode===`one`?(o=t/a.width,s=n/a.height):o=s=1/i,{top:Math.round(r.top*s),right:Math.round(r.right*o),bottom:Math.round(r.bottom*s),left:Math.round(r.left*o)}}function Le(e,t,n,r){let i=Ie(e,t,n),a=t+i.left+i.right,o=n+i.top+i.bottom;return{cssLeft:-i.left+0,cssTop:-i.top+0,cssWidth:a,cssHeight:o,backingWidth:Math.round(a*r),backingHeight:Math.round(o*r),originX:i.left*r,originY:i.top*r}}function Re(e){let t=0,n=[0];for(let r of e)t+=r,n.push(Math.round(t));return n}function Y(e,t,n){if(t<=0||n<=0)return[];let r=Ie(e,t,n),i=t+r.left+r.right,a=n+r.top+r.bottom,o=e.sourceWidth,s=e.sourceHeight,c=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,l=e.slicing.mode,u=Ne(e),d=Me(u.left,0,o),f=Me(u.right,0,Math.max(0,o-d)),p=Me(u.top,0,s),m=Me(u.bottom,0,Math.max(0,s-p)),h=Math.max(0,o-d-f),g=Math.max(0,s-p-m),_,v;if(l===`three-horizontal`){let e=a/s;_=d*e,v=f*e}else _=d/c,v=f/c;let y=Math.max(0,i-_-v),b,x;if(l===`three-vertical`){let e=i/o;b=p*e,x=m*e}else b=p/c,x=m/c;let S=Math.max(0,a-b-x),C=[d,h,f],w=[p,g,m],T=[0,d,d+h],E=[0,p,p+g],D=Re([_,y,v]),O=Re([b,S,x]),k=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++){let n=C[t],i=w[e];if(n<=0||i<=0)continue;let a=D[t],o=D[t+1]-a,s=O[e],c=O[e+1]-s;o<=0||c<=0||k.push({key:`${e}-${t}`,sx:T[t],sy:E[e],sw:n,sh:i,dx:a-r.left,dy:s-r.top,dw:o,dh:c})}return k}function ze(e,t){let n=new ResizeObserver(n=>{let r=n[0]?.borderBoxSize?.[0];t(Math.round(r?.inlineSize??e.offsetWidth),Math.round(r?.blockSize??e.offsetHeight))});return n.observe(e),()=>n.disconnect()}var Be=f(`<div class="fundus-slice__cell svelte-1820t2z"><img alt="" draggable="false" class="svelte-1820t2z"/></div>`),Ve=f(`<div></div>`);function He(t,r){T(r,!0);let i=O(r,`alt`,3,``),o=O(r,`class`,3,``),c=y(void 0),l=y(0),u=y(0);n(()=>{let e=p(c);if(e)return ze(e,(e,t)=>{s(l,e,!0),s(u,t,!0)})});let d=v(()=>Y(r.src,p(l),p(u))),f=v(()=>{let e=Pe(r.src);return e.top>0||e.right>0||e.bottom>0||e.left>0});var h=Ve();let g;m(h,21,()=>p(d),e=>e.key,(e,t)=>{var n=Be();let i;var o=_(n);let s;k(n),H(()=>{i=D(n,``,i,{left:`${p(t).dx??``}px`,top:`${p(t).dy??``}px`,width:`${p(t).dw??``}px`,height:`${p(t).dh??``}px`}),M(o,`src`,r.src.src),s=D(o,``,s,{width:`${r.src.sourceWidth/p(t).sw*100}%`,height:`${r.src.sourceHeight/p(t).sh*100}%`,left:`${-p(t).sx/p(t).sw*100}%`,top:`${-p(t).sy/p(t).sh*100}%`})}),a(e,n)}),k(h),x(h,e=>s(c,e),()=>p(c)),H(()=>{g=E(h,1,`fundus-slice ${o()??``}`,`svelte-1820t2z`,g,{"fundus-slice--overdraw":p(f)}),M(h,`role`,i()?`img`:void 0),M(h,`aria-label`,i()||void 0)}),a(t,h),e()}var X=f(`<div><canvas class="svelte-xdsbrz"></canvas></div>`);function Ue(t,r){T(r,!0);let i=O(r,`alt`,3,``),o=O(r,`class`,3,``),c=y(void 0),l=y(void 0),u=y(void 0),f=y(0),m=y(0),h=y(1),b=y(0);n(()=>{let e=r.src.src,t=new Image,n=!1;return t.onload=()=>{n||s(u,t,!0)},t.src=e,()=>{n=!0,t.onload=null}}),n(()=>{let e=p(h),t=window.matchMedia(`(resolution: ${e}dppx)`),n=()=>{s(h,window.devicePixelRatio||1,!0)};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}),n(()=>{let e=p(c);if(e)return ze(e,(e,t)=>{s(f,e,!0),s(m,t,!0)})});let S=v(()=>Le(r.src,p(f),p(m),p(h)));n(()=>{p(u),r.src,p(S),p(b),C()});function C(){let e=p(l),t=p(u);if(!e||!t)return;if(p(f)===0||p(m)===0){e.width=0,e.height=0;return}e.width=p(S).backingWidth,e.height=p(S).backingHeight;let n=e.getContext(`2d`);if(n){n.setTransform(p(h),0,0,p(h),p(S).originX,p(S).originY),n.clearRect(p(S).cssLeft,p(S).cssTop,p(S).cssWidth,p(S).cssHeight);for(let e of Y(r.src,p(f),p(m)))n.drawImage(t,e.sx,e.sy,e.sw,e.sh,e.dx,e.dy,e.dw,e.dh)}}var w=X();d(`resize`,g,()=>s(b,p(b)+1));var A=_(w);let j;x(A,e=>s(l,e),()=>p(l)),k(w),x(w,e=>s(c,e),()=>p(c)),H(()=>{E(w,1,`fundus-slice-canvas ${o()??``}`,`svelte-xdsbrz`),M(w,`role`,i()?`img`:void 0),M(w,`aria-label`,i()||void 0),j=D(A,``,j,{left:`${p(S).cssLeft??``}px`,top:`${p(S).cssTop??``}px`,width:`${p(S).cssWidth??``}px`,height:`${p(S).cssHeight??``}px`})}),a(t,w),e()}function We(e,t){let n=O(t,`backend`,3,`dom`),r=O(t,`alt`,3,``),s=O(t,`class`,3,``);var c=i(),l=o(c),u=e=>{Ue(e,{get src(){return t.src},get alt(){return r()},get class(){return s()}})},d=e=>{He(e,{get src(){return t.src},get alt(){return r()},get class(){return s()}})};B(l,e=>{n()===`canvas`?e(u):e(d,-1)}),a(e,c)}var Ge=f(`<video playsinline="" preload="auto"></video>`,2);function Ke(t,r){T(r,!0);let i=O(r,`loop`,3,!1),o=O(r,`playing`,3,!0),s=O(r,`muted`,3,!0),c=O(r,`controls`,3,!1),l=O(r,`videoElement`,15),u=O(r,`class`,3,``),d=v(()=>ke(r.src.src));n(()=>{let e=l();e&&(o()?e.play().catch(()=>{}):e.pause())});var f=Ge();x(f,e=>l(e),()=>l()),H(()=>{M(f,`src`,p(d)),M(f,`width`,r.src.width),M(f,`height`,r.src.height),f.loop=i(),f.muted=s(),f.controls=c(),E(f,1,b(u()))}),a(t,f),e()}var Z=`#version 300 es
|
|
2
|
-
in vec2 a_pos;
|
|
3
|
-
out vec2 v_uv;
|
|
4
|
-
void main() {
|
|
5
|
-
// Fullscreen clip-space triangle pair; v flipped so the video isn't mirrored on Y
|
|
6
|
-
// (GL texture rows are bottom-up, and flipping here beats a per-frame UNPACK flip).
|
|
7
|
-
v_uv = vec2(a_pos.x * 0.5 + 0.5, 0.5 - a_pos.y * 0.5);
|
|
8
|
-
gl_Position = vec4(a_pos, 0.0, 1.0);
|
|
9
|
-
}`,qe=`#version 300 es
|
|
10
|
-
precision highp float;
|
|
11
|
-
|
|
12
|
-
in vec2 v_uv;
|
|
13
|
-
out vec4 fragColor;
|
|
14
|
-
|
|
15
|
-
uniform sampler2D u_texture;
|
|
16
|
-
uniform sampler2D u_mask;
|
|
17
|
-
uniform vec2 u_texelSize;
|
|
18
|
-
uniform vec3 u_keyColor;
|
|
19
|
-
uniform vec4 u_tintColor;
|
|
20
|
-
uniform float u_colorCutoff;
|
|
21
|
-
uniform float u_colorFeathering;
|
|
22
|
-
uniform float u_maskFeathering;
|
|
23
|
-
uniform float u_sharpening;
|
|
24
|
-
uniform float u_despill;
|
|
25
|
-
uniform float u_despillLuminanceAdd;
|
|
26
|
-
|
|
27
|
-
float rgb2y(vec3 c) {
|
|
28
|
-
return 0.299 * c.r + 0.587 * c.g + 0.114 * c.b;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
float rgb2cb(vec3 c) {
|
|
32
|
-
return 0.5 - 0.168736 * c.r - 0.331264 * c.g + 0.5 * c.b;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
float rgb2cr(vec3 c) {
|
|
36
|
-
return 0.5 + 0.5 * c.r - 0.418688 * c.g - 0.081312 * c.b;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
float colorclose(float Cb_p, float Cr_p, float Cb_key, float Cr_key, float tola, float tolb) {
|
|
40
|
-
float temp = (Cb_key - Cb_p) * (Cb_key - Cb_p) + (Cr_key - Cr_p) * (Cr_key - Cr_p);
|
|
41
|
-
float tola2 = tola * tola;
|
|
42
|
-
float tolb2 = tolb * tolb;
|
|
43
|
-
if (temp < tola2) return 0.0;
|
|
44
|
-
if (temp < tolb2) return (temp - tola2) / (tolb2 - tola2);
|
|
45
|
-
return 1.0;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
float maskedTex2D(sampler2D tex, vec2 uv) {
|
|
49
|
-
vec4 color = texture(tex, uv);
|
|
50
|
-
|
|
51
|
-
float key_cb = rgb2cb(u_keyColor);
|
|
52
|
-
float key_cr = rgb2cr(u_keyColor);
|
|
53
|
-
float pix_cb = rgb2cb(color.rgb);
|
|
54
|
-
float pix_cr = rgb2cr(color.rgb);
|
|
55
|
-
|
|
56
|
-
return colorclose(pix_cb, pix_cr, key_cb, key_cr, u_colorCutoff, u_colorFeathering);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
void main() {
|
|
60
|
-
vec2 pixelWidth = vec2(u_texelSize.x, 0.0);
|
|
61
|
-
vec2 pixelHeight = vec2(0.0, u_texelSize.y);
|
|
62
|
-
|
|
63
|
-
// Unmodified MainTex
|
|
64
|
-
vec4 color = texture(u_texture, v_uv);
|
|
65
|
-
|
|
66
|
-
// Unfeathered mask
|
|
67
|
-
float mask = maskedTex2D(u_texture, v_uv);
|
|
68
|
-
|
|
69
|
-
// Feathering & smoothing
|
|
70
|
-
float c = mask;
|
|
71
|
-
float r = maskedTex2D(u_texture, v_uv + pixelWidth);
|
|
72
|
-
float l = maskedTex2D(u_texture, v_uv - pixelWidth);
|
|
73
|
-
float d = maskedTex2D(u_texture, v_uv + pixelHeight);
|
|
74
|
-
float u = maskedTex2D(u_texture, v_uv - pixelHeight);
|
|
75
|
-
float rd = maskedTex2D(u_texture, v_uv + pixelWidth + pixelHeight) * 0.707;
|
|
76
|
-
float dl = maskedTex2D(u_texture, v_uv - pixelWidth + pixelHeight) * 0.707;
|
|
77
|
-
float lu = maskedTex2D(u_texture, v_uv - pixelHeight - pixelWidth) * 0.707;
|
|
78
|
-
float ur = maskedTex2D(u_texture, v_uv + pixelWidth - pixelHeight) * 0.707;
|
|
79
|
-
float blurContribution = (r + l + d + u + rd + dl + lu + ur + c) * 0.12774655;
|
|
80
|
-
float smoothedMask = smoothstep(u_sharpening, 1.0, mix(c, blurContribution, u_maskFeathering));
|
|
81
|
-
vec4 result = color * smoothedMask;
|
|
82
|
-
|
|
83
|
-
// Despill
|
|
84
|
-
float v = (2.0 * result.b + result.r) / 4.0;
|
|
85
|
-
if (result.g > v) result.g = mix(result.g, v, u_despill);
|
|
86
|
-
vec4 dif = color - result;
|
|
87
|
-
float desaturatedDif = rgb2y(dif.xyz);
|
|
88
|
-
result += mix(0.0, desaturatedDif, u_despillLuminanceAdd);
|
|
89
|
-
|
|
90
|
-
// Fundus mask pass: a grayscale shape mask multiplies
|
|
91
|
-
// the keyed alpha.
|
|
92
|
-
float shapeMask = texture(u_mask, v_uv).r;
|
|
93
|
-
vec4 keyed = vec4(result.xyz, smoothedMask * shapeMask) * u_tintColor;
|
|
94
|
-
|
|
95
|
-
// Premultiplied output: keyed matches the upstream SrcAlpha/OneMinusSrcAlpha
|
|
96
|
-
// blending; multiplying rgb by alpha is that blend's exact premultiplied
|
|
97
|
-
// equivalent. Straight-alpha output (premultipliedAlpha: false) is NOT an option:
|
|
98
|
-
// iOS WKWebView composites the WebGL canvas as premultiplied regardless of the
|
|
99
|
-
// flag, and the despill luminance-add above leaves fully-transparent background
|
|
100
|
-
// pixels with nonzero rgb (the upstream blend ignores rgb
|
|
101
|
-
// at alpha 0) which then composite additively — a visible bright veil over the
|
|
102
|
-
// whole canvas rect on iOS.
|
|
103
|
-
fragColor = vec4(keyed.rgb * keyed.a, keyed.a);
|
|
104
|
-
}`;function Je(e){let t=(t,n)=>{let r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw e.deleteShader(r),Error(`Chroma-key shader compilation failed: ${t}.`)}return r},n=e.createProgram();if(e.attachShader(n,t(e.VERTEX_SHADER,Z)),e.attachShader(n,t(e.FRAGMENT_SHADER,qe)),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS)){let t=e.getProgramInfoLog(n);throw e.deleteProgram(n),Error(`Chroma-key program linking failed: ${t}.`)}return n}var Ye=class e{#e;#t;#n;#r;#i;#a;#o;#s=null;#c=!1;static create(t){let n=t.getContext(`webgl2`,{premultipliedAlpha:!0,alpha:!0,depth:!1,stencil:!1,antialias:!1});if(!n)return null;try{return new e(n,t)}catch{return null}}constructor(e,t){this.#e=e,this.#t=t,t.addEventListener(`webglcontextlost`,this.#l),t.addEventListener(`webglcontextrestored`,this.#u),this.#d()}#l=e=>{e.preventDefault(),this.#c=!0};#u=()=>{try{this.#d(),this.#c=!1}catch{this.#c=!0}};#d(){let e=this.#e;this.#n=Je(e),e.useProgram(this.#n);let t=t=>e.getUniformLocation(this.#n,t);this.#a={texelSize:t(`u_texelSize`),keyColor:t(`u_keyColor`),tintColor:t(`u_tintColor`),colorCutoff:t(`u_colorCutoff`),colorFeathering:t(`u_colorFeathering`),maskFeathering:t(`u_maskFeathering`),sharpening:t(`u_sharpening`),despill:t(`u_despill`),despillLuminanceAdd:t(`u_despillLuminanceAdd`)},e.uniform1i(e.getUniformLocation(this.#n,`u_texture`),0),e.uniform1i(e.getUniformLocation(this.#n,`u_mask`),1),e.uniform4f(this.#a.tintColor,1,1,1,1),this.#r=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.#r),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW);let n=e.getAttribLocation(this.#n,`a_pos`);e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0),this.#i=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#o=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#f(),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.clearColor(0,0,0,0)}setMask(e){this.#s=e,this.#c||this.#f()}#f(){let e=this.#e;e.bindTexture(e.TEXTURE_2D,this.#o),this.#s?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.#s):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([255,255,255,255]))}draw(e,t){if(this.#c||e.videoWidth===0)return;let n=this.#e;(this.#t.width!==e.videoWidth||this.#t.height!==e.videoHeight)&&(this.#t.width=e.videoWidth,this.#t.height=e.videoHeight,n.viewport(0,0,e.videoWidth,e.videoHeight)),n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.#o),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.#i),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),n.useProgram(this.#n),n.uniform2f(this.#a.texelSize,1/e.videoWidth,1/e.videoHeight),n.uniform3fv(this.#a.keyColor,t.keyColor),n.uniform1f(this.#a.colorCutoff,t.colorCutoff),n.uniform1f(this.#a.colorFeathering,t.colorFeathering),n.uniform1f(this.#a.maskFeathering,t.maskFeathering),n.uniform1f(this.#a.sharpening,t.sharpening),n.uniform1f(this.#a.despill,t.despill),n.uniform1f(this.#a.despillLuminanceAdd,t.despillLuminanceAdd),n.clear(n.COLOR_BUFFER_BIT),n.drawArrays(n.TRIANGLE_STRIP,0,4)}dispose(){this.#t.removeEventListener(`webglcontextlost`,this.#l),this.#t.removeEventListener(`webglcontextrestored`,this.#u);let e=this.#e;e.deleteBuffer(this.#r),e.deleteTexture(this.#i),e.deleteTexture(this.#o),e.deleteProgram(this.#n),e.getExtension(`WEBGL_lose_context`)?.loseContext()}},Xe=f(`<img alt="" class="svelte-r30mxh"/>`),Q=f(`<canvas class="svelte-r30mxh"></canvas> <video playsinline="" preload="auto" class="svelte-r30mxh"></video>`,3),Ze=f(`<div><!></div>`);function Qe(t,r){T(r,!0);let l=O(r,`loop`,3,!0),u=O(r,`playing`,3,!0),d=O(r,`videoElement`,15),f=O(r,`class`,3,``),m=y(void 0),h=y(!1),g=null,v=0,b=!1;function C(){let e=d();g&&e&&e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&g.draw(e,r.src.chromaKey)}function w(){C(),b&&D()}function D(){let e=d();v=e.requestVideoFrameCallback?e.requestVideoFrameCallback(w):requestAnimationFrame(w)}function A(){b||(b=!0,D())}function j(){if(!b)return;b=!1;let e=d();e?.cancelVideoFrameCallback?e.cancelVideoFrameCallback(v):cancelAnimationFrame(v)}function N(){!u()||p(h)||d()?.play().catch(()=>{})}function F(){d()?.pause()}P(()=>{if(g=Ye.create(p(m)),!g){s(h,!0);return}let e=g,t=r.src.mask?.src;if(t){let n=new Image;n.src=t,n.decode().then(()=>{g===e&&e.setMask(n)}).catch(()=>{console.warn(`Failed to load chroma-key mask "${t}".`)})}return()=>{j(),e.dispose(),g=null}}),n(()=>{let e=d();if(!e)return;function t(){A()}function n(){j(),C()}function r(){b||C()}return e.addEventListener(`play`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`seeked`,r),()=>{e.removeEventListener(`play`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`seeked`,r)}}),n(()=>{p(h)||(u()?N():F())}),n(()=>{let e=r.src.chromaKey;e.keyColor,e.colorCutoff,e.colorFeathering,e.maskFeathering,e.sharpening,e.despill,e.despillLuminanceAdd,b||C()});var I=Ze(),L=_(I),R=e=>{var t=i(),n=o(t),s=e=>{var t=i();S(o(t),()=>r.fallback),a(e,t)},c=e=>{var t=Xe();H(()=>M(t,`src`,r.src.fallback.src)),a(e,t)};B(n,e=>{r.fallback?e(s):r.src.fallback&&e(c,1)}),a(e,t)},z=e=>{var t=Q(),n=o(t);x(n,e=>s(m,e),()=>p(m));var i=c(n,2);i.muted=!0,x(i,e=>d(e),()=>d()),H(e=>{M(i,`src`,e),i.loop=l()},[()=>ke(r.src.src)]),a(e,t)};B(L,e=>{p(h)?e(R):e(z,-1)}),k(I),H(()=>E(I,1,`fundus-chroma-key-video ${f()??``}`,`svelte-r30mxh`)),a(t,I),e()}var $e={"arrow-up":`<path d="M12 19V5"/><path d="M6 11l6-6 6 6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="M13 6l6 6-6 6"/>`,"arrow-down":`<path d="M12 5v14"/><path d="M6 13l6 6 6-6"/>`,"arrow-left":`<path d="M19 12H5"/><path d="M11 6l-6 6 6 6"/>`,width:`<path d="M3 12h18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>`,ratio:`<rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/>`,preset:`<path d="M4 7h10"/><circle cx="17" cy="7" r="2"/><path d="M20 17H10"/><circle cx="7" cy="17" r="2"/>`,cutoff:`<circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor" stroke="none"/>`,"color-feather":`<circle cx="12" cy="12" r="8" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,"mask-feather":`<rect x="4" y="4" width="16" height="16" rx="3" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,sharpen:`<path d="M4 18l8-12 8 12"/><path d="M4 18h16"/>`,despill:`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z"/>`,"despill-lum":`<path d="M12 3s5.5 5.5 5.5 10a5.5 5.5 0 0 1-11 0c0-4.5 5.5-10 5.5-10z"/><path d="M12 10v5M9.5 12.5h5"/>`},et=j(`<svg class="icon svelte-jamecx" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg>`);function $(e,t){var n=et();ee(n,()=>$e[t.name],!0),k(n),a(e,n)}function tt(e){if(e.scrubbedValue===null)return{};let t=e.startValue??e.min??0;return e.scrubbedValue===t?{rollbackTo:e.startValue}:{commit:e.scrubbedValue}}function nt(e,t){return t.coarse?e*10:t.fine?e*.1:e}function rt(e){if(!Number.isFinite(e))return 0;let t=0,n=Math.abs(e);for(;t<10&&Math.abs(Math.round(n)-n)>1e-9;)n*=10,t+=1;return t}function it(e,t){let n=10**t;return Math.round(e*n)/n}function at(e){let t=nt(e.step,e.modifiers),n=it(e.startValue+e.deltaX*t,rt(t));return e.min!==void 0&&(n=Math.max(e.min,n)),e.max!==void 0&&(n=Math.min(e.max,n)),n}function ot(e,t){t.buttons!==0&&!e.hasPointerCapture(t.pointerId)&&e.setPointerCapture(t.pointerId)}function st(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}var ct=f(`<span class="scrub-surface svelte-nhap92" title="Drag to change — Shift: ×10, Alt: ×0.1" role="presentation" aria-hidden="true"></span>`),lt=f(`<span><input class="input svelte-nhap92" type="number"/> <!></span>`);function ut(t,r){T(r,!0);let i=O(r,`step`,3,1),o=O(r,`placeholder`,3,``),l=O(r,`allowNull`,3,!1),f=O(r,`align`,3,`left`),m=y(null),h=y(!1),b=y(null),S=v(()=>p(m)?.activated?p(m).currentValue:r.value);function D(e){return{coarse:e.shiftKey,fine:e.altKey}}function A(e){e.preventDefault(),ot(e.currentTarget,e),s(m,{pointerId:e.pointerId,startX:e.clientX,startValue:r.value,currentValue:null,activated:!1},!0)}function j(e){if(!p(m)||e.pointerId!==p(m).pointerId)return;let t=e.clientX-p(m).startX;if(!p(m).activated){if(Math.abs(t)<3)return;p(m).activated=!0,document.body.style.cursor=`ew-resize`}let n=at({startValue:p(m).startValue??r.min??0,deltaX:t,step:i(),modifiers:D(e),min:r.min,max:r.max});n!==p(m).currentValue&&(p(m).currentValue=n,r.onChange?.(n))}function N(e){if(!p(m)||e.pointerId!==p(m).pointerId)return;st(e.currentTarget,e.pointerId);let t=p(m).activated,n=p(m).startValue,i=p(m).currentValue;if(s(m,null),document.body.style.cursor=``,!t){I();return}let a=tt({startValue:n,scrubbedValue:i,min:r.min});a.commit===void 0?`rollbackTo`in a&&r.onChange?.(a.rollbackTo??null):r.onCommit(a.commit)}function P(){if(!p(m))return;let e=p(m).startValue,t=p(m).activated;s(m,null),document.body.style.cursor=``,t&&r.onChange?.(e)}function F(e){p(m)&&e.key===`Escape`&&(e.preventDefault(),P())}n(()=>()=>{p(m)&&(document.body.style.cursor=``)});function I(){s(h,!0),queueMicrotask(()=>{p(b)?.focus(),p(b)?.select()})}function L(e){let t=e.currentTarget.valueAsNumber;Number.isFinite(t)?r.onCommit(t):r.onCommit(l()?null:r.min??0)}function R(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=p(S)===null?``:String(p(S)),e.currentTarget.blur())}var z=lt();d(`keydown`,g,F);let ee;var V=_(z);C(V),x(V,e=>s(b,e),()=>p(b));var U=c(V,2),te=e=>{var t=ct();u(`pointerdown`,t,A),u(`pointermove`,t,j),u(`pointerup`,t,N),d(`pointercancel`,t,P),a(e,t)};B(U,e=>{p(h)||e(te)}),k(z),H(()=>{ee=E(z,1,`scrub-number svelte-nhap92`,null,ee,{right:f()===`right`}),M(V,`aria-label`,r.ariaLabel),M(V,`min`,r.min),M(V,`max`,r.max),M(V,`step`,i()),M(V,`placeholder`,o()),w(V,p(S)??``)}),d(`focus`,V,()=>s(h,!0)),d(`blur`,V,()=>s(h,!1)),u(`change`,V,L),u(`keydown`,V,R),a(t,z),e()}A([`change`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var dt=f(`<span class="caption svelte-368zap"> </span>`),ft=f(`<span class="fill svelte-368zap"></span>`),pt=f(`<div class="number-field svelte-368zap"><!> <div class="number-input control svelte-368zap"><!> <span class="icon-slot svelte-368zap"><!></span> <!></div></div>`);function mt(e,n){let r=O(n,`step`,3,1),s=O(n,`placeholder`,3,``),l=O(n,`rangeFill`,3,!0),u=v(()=>!l()||n.min===void 0||n.max===void 0||n.value===null||n.max<=n.min?null:Math.max(0,Math.min(100,(n.value-n.min)/(n.max-n.min)*100)));var d=pt(),f=_(d),m=e=>{var t=dt(),r=_(t,!0);k(t),H(()=>h(r,n.caption)),a(e,t)};B(f,e=>{n.caption&&e(m)});var g=c(f,2),y=_(g),b=e=>{var t=ft();H(()=>D(t,`width: ${p(u)??``}%`)),a(e,t)};B(y,e=>{p(u)!==null&&e(b)});var x=c(y,2),C=_(x),w=e=>{var t=i();S(o(t),()=>n.icon),a(e,t)},T=e=>{var r=t();H(()=>h(r,n.label)),a(e,r)};B(C,e=>{n.icon?e(w):e(T,-1)}),k(x),ut(c(x,2),{get value(){return n.value},get min(){return n.min},get max(){return n.max},get step(){return r()},get placeholder(){return s()},allowNull:!0,get ariaLabel(){return n.label},get onChange(){return n.onChange},get onCommit(){return n.onCommit}}),k(g),k(d),H(()=>M(x,`title`,n.label)),a(e,d)}var ht=f(`<span class="caption svelte-bczi6w"> </span>`),gt=f(`<option> </option>`),_t=f(`<div class="select-field svelte-bczi6w"><!> <div class="select-input control svelte-bczi6w"><span class="icon-slot svelte-bczi6w"><!></span> <select class="svelte-bczi6w"></select></div></div>`);function vt(n,r){T(r,!0);var s=_t(),l=_(s),d=e=>{var t=ht(),n=_(t,!0);k(t),H(()=>h(n,r.caption)),a(e,t)};B(l,e=>{r.caption&&e(d)});var f=c(l,2),p=_(f),g=_(p),v=e=>{var t=i();S(o(t),()=>r.icon),a(e,t)},y=e=>{var n=t();H(e=>h(n,e),[()=>r.label.slice(0,1)]),a(e,n)};B(g,e=>{r.icon?e(v):e(y,-1)}),k(p);var b=c(p,2);m(b,20,()=>r.options,e=>e,(e,t)=>{var n=gt(),r=_(n,!0);k(n);var i={};H(()=>{h(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),a(e,n)}),k(b);var x;I(b),k(f),k(s),H(()=>{M(p,`title`,r.label),M(b,`aria-label`,r.label),x!==(x=r.value)&&(b.value=(b.__value=r.value)??``,N(b,r.value))}),u(`change`,b,e=>r.onChange(e.currentTarget.value)),a(n,s),e()}A([`change`]);var yt=f(`<p class="info svelte-m9vwwu"><!> <!> <br/> <span class="file svelte-m9vwwu"> </span></p>`),bt=f(`<p class="hint svelte-m9vwwu">No proxy yet — add the asset to a manifest to process it.</p>`),xt=f(`<section class="svelte-m9vwwu"><!> <!></section>`);function St(n,r){T(r,!0);let i=O(r,`showDimensions`,3,!1),o=O(r,`showDuration`,3,!1);var s=xt(),l=_(s);G(l,{children:(e,n)=>{R(),a(e,t(`Output`))},$$slots:{default:!0}});var u=c(l,2),d=e=>{var n=yt(),s=_(n),l=e=>{var n=t();H(()=>h(n,`${r.proxy.width??``} × ${r.proxy.height??``} px ·`)),a(e,n)};B(s,e=>{i()&&r.proxy.width!==void 0&&r.proxy.height!==void 0&&e(l)});var u=c(s,2),d=e=>{var n=t();H(e=>h(n,`${e??``} ·`),[()=>be(r.proxy.durationMs)]),a(e,n)};B(u,e=>{o()&&r.proxy.durationMs!==void 0&&e(d)});var f=c(u),p=c(f,3),m=_(p,!0);k(p),k(n),H(e=>{h(f,` ${e??``} `),h(m,r.proxy.fileName)},[()=>xe(r.proxy.fileSize)]),a(e,n)},f=e=>{a(e,bt())};B(u,e=>{r.proxy?e(d):e(f,-1)}),k(s),a(n,s),e()}var Ct=f(`<section class="svelte-1by8n8t"><!> <div class="field svelte-1by8n8t"><!></div> <div class="field svelte-1by8n8t"><!></div></section> <!>`,1);function wt(n,r){T(r,!0);let i=v(()=>ye.validateParameters(r.parameters));function s(e){r.onParametersCommit(e)}function l(e){s({...p(i),preset:e})}function u(e){let{targetWidth:t,...n}=p(i);return e===null||!Number.isFinite(e)||e<=0?n:{...n,targetWidth:Math.round(e)}}function d(e,t){let n=u(e);t?s(n):r.onParametersChange(n)}var f=Ct(),m=o(f),h=_(m);G(h,{children:(e,n)=>{R(),a(e,t(`Image`))},$$slots:{default:!0}});var g=c(h,2);vt(_(g),{label:`Preset`,caption:`Preset`,get value(){return p(i).preset},get options(){return r.presetNames},onChange:l,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),k(g);var y=c(g,2),b=_(y);{let e=e=>{$(e,{name:`width`})},t=v(()=>p(i).targetWidth??null);mt(b,{label:`Target width`,caption:`Target width`,min:1,placeholder:`source`,get value(){return p(t)},onChange:e=>d(e,!1),onCommit:e=>d(e,!0),icon:e,$$slots:{icon:!0}})}k(y),k(m),St(c(m,2),{get proxy(){return r.asset.proxy},showDimensions:!0}),a(n,f),e()}var Tt=f(`<button> </button>`),Et=f(`<section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section>`),Dt=f(`<section class="svelte-1yd7n22"><!> <!></section>`),Ot=f(`<section class="svelte-1yd7n22"><!> <div class="modes svelte-1yd7n22"></div></section> <!> <section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section> <!> <section class="svelte-1yd7n22"><!> <div class="field"><!></div></section> <!>`,1);function kt(n,r){T(r,!0);let s=v(()=>q.validateParameters(r.parameters)),l=v(()=>p(s).overdraw??ge()),d=[{value:`nine`,label:`9-slice`},{value:`three-horizontal`,label:`3-slice horizontal`},{value:`three-vertical`,label:`3-slice vertical`},{value:`one`,label:`No slicing`}],f=[{key:`top`,label:`Top`,icon:`arrow-up`,axis:`y`},{key:`right`,label:`Right`,icon:`arrow-right`,axis:`x`},{key:`bottom`,label:`Bottom`,icon:`arrow-down`,axis:`y`},{key:`left`,label:`Left`,icon:`arrow-left`,axis:`x`}];function g(e,t){let n=pe(t);return e===`x`?n.horizontal:n.vertical}let y=v(()=>r.asset.proxy?.width??2**53-1),b=v(()=>r.asset.proxy?.height??2**53-1);function x(e){r.onParametersCommit(e)}function S(e){x({...p(s),mode:e})}function C(e){return ve(p(s).insets,e,p(y),p(b))}function w(e,t,n){let i=Math.max(0,Math.min(C(e),Math.round(t??0))),a={...p(s),insets:{...p(s).insets,[e]:i}};n?x(a):r.onParametersChange(a)}function D(e){return ue(p(l),e,p(y),p(b))}function O(e,t,n){let i=Math.max(0,Math.min(D(e),Math.round(t??0))),a={...p(s),overdraw:{...p(l),[e]:i}};n?x(a):r.onParametersChange(a)}function A(e,t){let n={...p(s),pixelRatio:Math.max(1,Math.round(e??1))};t?x(n):r.onParametersChange(n)}function j(e){x({...p(s),preset:e})}var M=Ot(),N=o(M),P=_(N);G(P,{children:(e,n)=>{R(),a(e,t(`Mode`))},$$slots:{default:!0}});var F=c(P,2);m(F,21,()=>d,e=>e.value,(e,t)=>{var n=Tt();let r;var i=_(n,!0);k(n),H(()=>{r=E(n,1,`svelte-1yd7n22`,null,r,{on:p(s).mode===p(t).value}),h(i,p(t).label)}),u(`click`,n,()=>S(p(t).value)),a(e,n)}),k(F),k(N);var I=c(N,2),L=e=>{var n=Et(),r=_(n);G(r,{children:(e,n)=>{R(),a(e,t(`Insets (px)`))},$$slots:{default:!0}});var l=c(r,2);m(l,21,()=>f,e=>e.key,(e,t)=>{var n=i(),r=o(n),c=e=>{{let n=e=>{$(e,{get name(){return p(t).icon}})},r=v(()=>C(p(t).key));mt(e,{get label(){return p(t).label},min:0,get max(){return p(r)},rangeFill:!1,get value(){return p(s).insets[p(t).key]},onChange:e=>w(p(t).key,e,!1),onCommit:e=>w(p(t).key,e,!0),icon:n,$$slots:{icon:!0}})}},l=v(()=>g(p(t).axis,p(s).mode));B(r,e=>{p(l)&&e(c)}),a(e,n)}),k(l),k(n),a(e,n)};B(I,e=>{p(s).mode!==`one`&&e(L)});var z=c(I,2),ee=_(z);G(ee,{children:(e,n)=>{R(),a(e,t(`Overdraw (px)`))},$$slots:{default:!0}});var V=c(ee,2);m(V,21,()=>f,e=>e.key,(e,t)=>{{let n=e=>{$(e,{get name(){return p(t).icon}})},r=v(()=>D(p(t).key));mt(e,{get label(){return p(t).label},min:0,get max(){return p(r)},rangeFill:!1,get value(){return p(l)[p(t).key]},onChange:e=>O(p(t).key,e,!1),onCommit:e=>O(p(t).key,e,!0),icon:n,$$slots:{icon:!0}})}}),k(V),k(z);var U=c(z,2),te=e=>{var n=Dt(),r=_(n);G(r,{children:(e,n)=>{R(),a(e,t(`Pixel ratio`))},$$slots:{default:!0}}),mt(c(r,2),{label:`Factor`,min:1,get value(){return p(s).pixelRatio},onChange:e=>A(e,!1),onCommit:e=>A(e,!0),icon:e=>{$(e,{name:`ratio`})},$$slots:{icon:!0}}),k(n),a(e,n)};B(U,e=>{p(s).mode===`nine`&&e(te)});var ne=c(U,2),re=_(ne);G(re,{children:(e,n)=>{R(),a(e,t(`Output`))},$$slots:{default:!0}});var ie=c(re,2);vt(_(ie),{label:`Preset`,caption:`Preset`,get value(){return p(s).preset},get options(){return r.presetNames},onChange:j,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),k(ie),k(ne),St(c(ne,2),{get proxy(){return r.asset.proxy},showDimensions:!0}),a(n,M),e()}A([`click`]);var At=f(`<section class="svelte-ij1927"><!> <div class="field svelte-ij1927"><!></div> <div class="field svelte-ij1927"><!></div></section> <!>`,1);function jt(n,r){T(r,!0);let i=v(()=>fe.validateParameters(r.parameters));function s(e){r.onParametersCommit(e)}function l(e){s({...p(i),preset:e})}function u(e,t){let n=J(p(i),e);t?s(n):r.onParametersChange(n)}var d=At(),f=o(d),m=_(f);G(m,{children:(e,n)=>{R(),a(e,t(`Video`))},$$slots:{default:!0}});var h=c(m,2);vt(_(h),{label:`Preset`,caption:`Preset`,get value(){return p(i).preset},get options(){return r.presetNames},onChange:l,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),k(h);var g=c(h,2),y=_(g);{let e=e=>{$(e,{name:`width`})},t=v(()=>p(i).maxWidth??null);mt(y,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return p(t)},onChange:e=>u(e,!1),onCommit:e=>u(e,!0),icon:e,$$slots:{icon:!0}})}k(g),k(f),St(c(f,2),{get proxy(){return r.asset.proxy},showDimensions:!0,showDuration:!0}),a(n,d),e()}var Mt=f(`<span class="caption svelte-56kutb"> </span>`),Nt=f(`<img class="preview svelte-56kutb" alt=""/>`),Pt=f(`<span class="missing-preview svelte-56kutb" title="References an unknown asset">!</span>`),Ft=f(`<span class="id svelte-56kutb"> </span>`),It=f(`<span class="id dangling svelte-56kutb" title="References an unknown asset"> </span>`),Lt=f(`<span class="placeholder svelte-56kutb"> </span>`),Rt=f(`<button class="clear svelte-56kutb">×</button>`),zt=f(`<p class="hint svelte-56kutb"> </p>`),Bt=f(`<button><img class="thumbnail svelte-56kutb" alt=""/> <span class="id svelte-56kutb"> </span></button>`),Vt=f(`<div class="dropdown svelte-56kutb"><!></div>`),Ht=f(`<div class="picker svelte-56kutb"><!> <div class="reference-input control svelte-56kutb"><button><span class="preview-slot svelte-56kutb"><!></span> <!></button> <!> <!></div></div>`);function Ut(t,n){T(n,!0);let r=y(!1),l=v(()=>(W.state?.assets??[]).filter(e=>n.expectedTypes.includes(e.type)&&e.id!==n.excludeAssetId)),d=v(()=>n.value?W.assetById(n.value.$asset):null);function f(e){s(r,!1),n.onChange({$asset:e})}function g(){s(r,!1),n.onChange(void 0)}var b=Ht(),x=_(b),S=e=>{var t=Mt(),r=_(t,!0);k(t),H(()=>h(r,n.caption)),a(e,t)};B(x,e=>{n.caption&&e(S)});var C=c(x,2),w=_(C);let D;var O=_(w),A=_(O),j=e=>{var t=Nt();H(()=>M(t,`src`,p(d).rawUrl)),a(e,t)},N=e=>{a(e,Pt())};B(A,e=>{n.value&&p(d)?e(j):n.value&&e(N,1)}),k(O);var P=c(O,2),F=e=>{var t=i(),r=o(t),s=e=>{var t=Ft(),n=_(t,!0);k(t),H(()=>h(n,p(d).id)),a(e,t)},c=e=>{var t=It(),r=_(t,!0);k(t),H(()=>h(r,n.value.$asset)),a(e,t)};B(r,e=>{p(d)?e(s):e(c,-1)}),a(e,t)},I=e=>{var t=Lt(),r=_(t);k(t),H(e=>h(r,`Select ${e??``}...`),[()=>n.expectedTypes.join(`/`)]),a(e,t)};B(P,e=>{n.value?e(F):e(I,-1)}),k(w);var L=c(w,2),R=e=>{var t=Rt();H(()=>M(t,`title`,`Clear ${n.label??``}`)),u(`click`,t,g),a(e,t)};B(L,e=>{n.value&&e(R)});var z=c(L,2),ee=e=>{var t=Vt(),r=_(t),s=e=>{var t=zt(),r=_(t);k(t),H(e=>h(r,`No ${e??``} assets in the library.`),[()=>n.expectedTypes.join(`/`)]),a(e,t)},d=e=>{var t=i();m(o(t),17,()=>p(l),e=>e.id,(e,t)=>{var r=Bt();let i;var o=_(r),s=c(o,2),l=_(s,!0);k(s),k(r),H(()=>{i=E(r,1,`option svelte-56kutb`,null,i,{selected:n.value?.$asset===p(t).id}),M(o,`src`,p(t).rawUrl),h(l,p(t).id)}),u(`click`,r,()=>f(p(t).id)),a(e,r)}),a(e,t)};B(r,e=>{p(l).length===0?e(s):e(d,-1)}),k(t),a(e,t)};B(z,e=>{p(r)&&e(ee)}),k(C),k(b),H(()=>{D=E(w,1,`current svelte-56kutb`,null,D,{empty:!n.value}),M(w,`title`,n.value?`Change ${n.label}`:`Select ${n.label}`)}),u(`click`,w,()=>s(r,!p(r))),a(t,b),e()}A([`click`]);var Wt=f(`<span class="caption svelte-gjs979"> </span>`),Gt=f(`<div class="color-field svelte-gjs979"><!> <div class="color-input control svelte-gjs979"><span class="swatch-slot svelte-gjs979"><input class="swatch svelte-gjs979" type="color" title="Open color picker"/></span> <input class="hex-input svelte-gjs979" type="text" maxlength="7" spellcheck="false"/></div></div>`);function Kt(t,n){T(n,!0);let r=y(null),i=/^#[0-9a-f]{6}$/i;function o(e){let t=e.startsWith(`#`)?e:`#${e}`;return i.test(t)?t.toUpperCase():null}function l(e){let t=e.currentTarget.value.toUpperCase();s(r,t,!0),n.onChange?.(t)}function f(e){let t=e.currentTarget.value.toUpperCase();s(r,t,!0),n.onCommit(t)}function m(e){s(r,e.currentTarget.value,!0);let t=o(p(r));t&&n.onChange?.(t)}function g(){let e=o(p(r)??n.value);e&&n.onCommit(e),s(r,null)}function v(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(s(r,null),e.currentTarget.value=n.value,e.currentTarget.blur())}var b=Gt(),x=_(b),S=e=>{var t=Wt(),r=_(t,!0);k(t),H(()=>h(r,n.caption)),a(e,t)};B(x,e=>{n.caption&&e(S)});var E=c(x,2),D=_(E),O=_(D);C(O),k(D);var A=c(D,2);C(A),k(E),k(b),H(()=>{w(O,n.value),M(O,`aria-label`,`${n.label} color picker`),w(A,p(r)??n.value),M(A,`aria-label`,`${n.label} hex value`)}),u(`input`,O,l),u(`change`,O,f),d(`focus`,A,()=>s(r,n.value,!0)),u(`input`,A,m),d(`blur`,A,g),u(`keydown`,A,v),a(t,b),e()}A([`input`,`change`,`keydown`]);var qt=f(`<div class="field svelte-rsjkek"><!></div>`),Jt=f(`<section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <div class="field svelte-rsjkek"><!></div></section> <section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <!></section> <section class="svelte-rsjkek"><!> <!> <!></section> <!>`,1);function Yt(n,r){T(r,!0);let i=v(()=>de.validateParameters(r.parameters));function s(e){r.onParametersCommit(e)}function l(e){s({...p(i),preset:e})}function u(e,t){let n=J(p(i),e);t?s(n):r.onParametersChange(n)}function d(e){return{...p(i),chromaKey:e}}let f=[{key:`colorCutoff`,label:`Color cutoff`,icon:`cutoff`,min:0,max:.6,step:.005},{key:`colorFeathering`,label:`Color feathering`,icon:`color-feather`,min:0,max:.8,step:.005},{key:`maskFeathering`,label:`Mask feathering`,icon:`mask-feather`,min:0,max:1,step:.01},{key:`sharpening`,label:`Sharpening`,icon:`sharpen`,min:0,max:1,step:.01},{key:`despill`,label:`Despill`,icon:`despill`,min:0,max:1,step:.01},{key:`despillLuminanceAdd`,label:`Despill lum. add`,icon:`despill-lum`,min:0,max:1,step:.01}];function h(e,t,n){let a=d({...p(i).chromaKey,[e]:t});n?s(a):r.onParametersChange(a)}function g(e){return Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,`0`)}function y(e){return`#${g(e[0])}${g(e[1])}${g(e[2])}`}function b(e){let t=parseInt(e.slice(1),16);return[(t>>16&255)/255,(t>>8&255)/255,(t&255)/255]}function x(e,t){let n=d({...p(i).chromaKey,keyColor:b(e)});t?s(n):r.onParametersChange(n)}function S(e,t){let{[e]:n,...r}=p(i);s(t?{...r,[e]:t}:r)}var C=Jt(),w=o(C),E=_(w);G(E,{children:(e,n)=>{R(),a(e,t(`Video`))},$$slots:{default:!0}});var D=c(E,2);vt(_(D),{label:`Preset`,caption:`Preset`,get value(){return p(i).preset},get options(){return r.presetNames},onChange:l,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),k(D);var O=c(D,2),A=_(O);{let e=e=>{$(e,{name:`width`})},t=v(()=>p(i).maxWidth??null);mt(A,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return p(t)},onChange:e=>u(e,!1),onCommit:e=>u(e,!0),icon:e,$$slots:{icon:!0}})}k(O),k(w);var j=c(w,2),M=_(j);G(M,{children:(e,n)=>{R(),a(e,t(`Chroma key`))},$$slots:{default:!0}});var N=c(M,2),P=_(N);{let e=v(()=>y(p(i).chromaKey.keyColor));Kt(P,{label:`Key color`,caption:`Key color`,get value(){return p(e)},onChange:e=>x(e,!1),onCommit:e=>x(e,!0)})}k(N),m(c(N,2),17,()=>f,e=>e.key,(e,t)=>{var n=qt();mt(_(n),{get label(){return p(t).label},get caption(){return p(t).label},get min(){return p(t).min},get max(){return p(t).max},get step(){return p(t).step},get value(){return p(i).chromaKey[p(t).key]},onChange:e=>h(p(t).key,e??p(t).min,!1),onCommit:e=>h(p(t).key,e??p(t).min,!0),icon:e=>{$(e,{get name(){return p(t).icon}})},$$slots:{icon:!0}}),k(n),a(e,n)}),k(j);var F=c(j,2),I=_(F);G(I,{children:(e,n)=>{R(),a(e,t(`References`))},$$slots:{default:!0}});var L=c(I,2);Ut(L,{label:`Mask`,caption:`Mask`,get value(){return p(i).mask},expectedTypes:[`image`],get excludeAssetId(){return r.asset.id},onChange:e=>S(`mask`,e)}),Ut(c(L,2),{label:`Fallback`,caption:`Fallback`,get value(){return p(i).fallback},expectedTypes:[`image`],get excludeAssetId(){return r.asset.id},onChange:e=>S(`fallback`,e)}),k(F),St(c(F,2),{get proxy(){return r.asset.proxy},showDimensions:!0,showDuration:!0}),a(n,C),e()}var Xt=f(`<section class="svelte-3jblpy"><!> <div class="field svelte-3jblpy"><!></div></section> <!>`,1);function Zt(n,r){T(r,!0);let i=v(()=>_e.validateParameters(r.parameters));function s(e){let t={...p(i),preset:e};r.onParametersCommit(t)}var l=Xt(),u=o(l),d=_(u);G(d,{children:(e,n)=>{R(),a(e,t(`Audio`))},$$slots:{default:!0}});var f=c(d,2);vt(_(f),{label:`Preset`,caption:`Preset`,get value(){return p(i).preset},get options(){return r.presetNames},onChange:s,icon:e=>{$(e,{name:`preset`})},$$slots:{icon:!0}}),k(f),k(u),St(c(u,2),{get proxy(){return r.asset.proxy},showDuration:!0}),a(n,l),e()}var Qt={[ye.type]:wt,[q.type]:kt,[fe.type]:jt,[de.type]:Yt,[_e.type]:Zt},$t=f(`<div></div>`),en=f(`<div class="overdraw-band svelte-1jfrg6d"></div>`),tn=f(`<div role="slider" aria-label="Left slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),nn=f(`<div role="slider" aria-label="Top slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),rn=f(`<div class="canvas svelte-1jfrg6d"><div class="toolbar svelte-1jfrg6d"><button title="Zoom out" class="svelte-1jfrg6d">−</button> <span class="zoom svelte-1jfrg6d"> </span> <button title="Zoom in" class="svelte-1jfrg6d">+</button> <button title="100%">1:1</button> <button>Fit</button> <span class="dims svelte-1jfrg6d"> </span></div> <div role="application" aria-label="Slice canvas — drag to pan, pinch/⌘+scroll to zoom"><div class="image-wrap svelte-1jfrg6d"><img alt="" draggable="false" class="svelte-1jfrg6d"/> <!> <!> <!> <!> <!> <div role="slider" aria-label="Left overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Top overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <!> <!></div></div></div>`);function an(t,r){T(r,!0);let i=y(void 0),l=y(void 0),f=y(null),m=v(()=>pe(r.mode)),g=v(()=>p(m).horizontal),b=v(()=>p(m).vertical);function S(e,t){return p(f)?.target===e&&p(f).side===t}let C=y(`fit`),w=y(1),O=y(0),A=y(0),j=y(0),N=y(0),P=y(!1),F=new Map,I=null;function L(e){return Math.max(.05,Math.min(8,e))}n(()=>{let e=p(i);if(!e)return;let t=new ResizeObserver(()=>{s(j,e.clientWidth,!0),s(N,e.clientHeight,!0)});return t.observe(e),()=>t.disconnect()}),n(()=>{if(p(C)===`free`||r.width===0||r.height===0||p(j)===0||p(N)===0)return;let e=L(Math.min((p(j)-32)/r.width,(p(N)-32)/r.height));R(p(C)===`one`?1:e)});function R(e){s(w,e,!0),s(O,(p(j)-r.width*e)/2),s(A,(p(N)-r.height*e)/2)}function z(e,t){if(!p(i))return{x:e,y:t};let n=p(i).getBoundingClientRect();return{x:e-n.left-p(i).clientLeft,y:t-n.top-p(i).clientTop}}function ee(e,t,n){let r=L(e);s(O,t-(t-p(O))*(r/p(w))),s(A,n-(n-p(A))*(r/p(w))),s(w,r,!0),s(C,`free`)}function V(e,t,n){return Math.max(t,Math.min(n,Math.round(e)))}function U(){s(C,`fit`)}function te(){s(C,`one`)}function ne(e){ee(p(w)*e,p(j)/2,p(N)/2)}function re(){let[e,t]=[...F.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),midX:(e.x+t.x)/2,midY:(e.y+t.y)/2}}function ie(e){try{p(i)&&ot(p(i),e)}catch{}F.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.size===2?I=re():F.size===1&&s(P,!0)}function W(e){let t=F.get(e.pointerId);if(t)if(F.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.size>=2&&I){let e=re(),t=z(I.midX,I.midY);ee(p(w)*(e.distance/I.distance),t.x,t.y),s(O,p(O)+(e.midX-I.midX)),s(A,p(A)+(e.midY-I.midY)),I=e}else F.size===1&&(s(O,p(O)+(e.clientX-t.x)),s(A,p(A)+(e.clientY-t.y)),s(C,`free`))}function ae(e){F.delete(e.pointerId),F.size<2&&(I=null),F.size===0&&s(P,!1)}function oe(e){if(e.preventDefault(),e.ctrlKey||e.metaKey){let t=z(e.clientX,e.clientY);ee(p(w)*Math.exp(-e.deltaY*.01),t.x,t.y)}else s(O,p(O)-e.deltaX),s(A,p(A)-e.deltaY),s(C,`free`)}function se(e,t,n){n.preventDefault(),n.stopPropagation(),s(f,{target:e,side:t},!0),ot(n.currentTarget,n)}function ce(e){if(!p(f)||!p(l))return;let t=p(l).getBoundingClientRect(),n=(e.clientX-t.left)/p(w),i=(e.clientY-t.top)/p(w),{target:a,side:o}=p(f),s={...a===`inset`?r.insets:r.overdraw};o===`left`?s.left=V(n,0,K(a,`left`)):o===`right`?s.right=V(r.width-n,0,K(a,`right`)):o===`top`?s.top=V(i,0,K(a,`top`)):o===`bottom`&&(s.bottom=V(r.height-i,0,K(a,`bottom`))),a===`inset`?r.onChange(s):r.onOverdrawChange(s)}function G(e){let t=p(f)!==null;p(f)&&st(e.currentTarget,e.pointerId),s(f,null),t&&r.onCommit()}function K(e,t){let n=e===`inset`?r.insets:r.overdraw;return e===`inset`?ve(n,t,r.width,r.height):ue(n,t,r.width,r.height)}function le(e,t,n){let i=e===`inset`?r.insets:r.overdraw,a={...i};a[t]=V(i[t]+n,0,K(e,t)),a[t]!==i[t]&&(e===`inset`?r.onChange(a):r.onOverdrawChange(a),r.onCommit())}function q(e,t,n,r){let i=r.shiftKey?10:1,a=n===`x`?`ArrowRight`:`ArrowUp`,o=n===`x`?`ArrowLeft`:`ArrowDown`;if(r.key===a)le(e,t,i);else if(r.key===o)le(e,t,-i);else return;r.preventDefault()}var de=rn(),fe=_(de),me=_(fe),he=c(me,2),ge=_(he);k(he);var _e=c(he,2),ye=c(_e,2);let be;var J=c(ye,2);let xe;var Se=c(J,2),Ce=_(Se);k(Se),k(fe);var we=c(fe,2);let Te;var Ee=_(we);let De;var Oe=_(Ee),ke=c(Oe,2),Ae=e=>{var t=$t();let n,i;H(()=>{n=E(t,1,`center-rect svelte-1jfrg6d`,null,n,{"side-edges":!p(g),"cap-edges":!p(b)}),i=D(t,``,i,{left:`${(p(g)?r.insets.left:0)*p(w)}px`,top:`${(p(b)?r.insets.top:0)*p(w)}px`,right:`${(p(g)?r.insets.right:0)*p(w)}px`,bottom:`${(p(b)?r.insets.bottom:0)*p(w)}px`})}),a(e,t)};B(ke,e=>{(p(g)||p(b))&&e(Ae)});var je=c(ke,2),Me=e=>{var t=en();let n;H(()=>n=D(t,``,n,{left:`0`,top:`0`,bottom:`0`,width:`${r.overdraw.left*p(w)}px`})),a(e,t)};B(je,e=>{r.overdraw.left>0&&e(Me)});var Ne=c(je,2),Pe=e=>{var t=en();let n;H(()=>n=D(t,``,n,{right:`0`,top:`0`,bottom:`0`,width:`${r.overdraw.right*p(w)}px`})),a(e,t)};B(Ne,e=>{r.overdraw.right>0&&e(Pe)});var Fe=c(Ne,2),Ie=e=>{var t=en();let n;H(()=>n=D(t,``,n,{top:`0`,left:`${r.overdraw.left*p(w)}px`,right:`${r.overdraw.right*p(w)}px`,height:`${r.overdraw.top*p(w)}px`})),a(e,t)};B(Fe,e=>{r.overdraw.top>0&&e(Ie)});var Le=c(Fe,2),Re=e=>{var t=en();let n;H(()=>n=D(t,``,n,{bottom:`0`,left:`${r.overdraw.left*p(w)}px`,right:`${r.overdraw.right*p(w)}px`,height:`${r.overdraw.bottom*p(w)}px`})),a(e,t)};B(Le,e=>{r.overdraw.bottom>0&&e(Re)});var Y=c(Le,2);let ze;M(Y,`aria-valuemin`,0);let Be;var Ve=_(Y),He=_(Ve,!0);k(Ve),k(Y);var X=c(Y,2);let Ue;M(X,`aria-valuemin`,0);let We;var Ge=_(X),Ke=_(Ge,!0);k(Ge),k(X);var Z=c(X,2);let qe;M(Z,`aria-valuemin`,0);let Je;var Ye=_(Z),Xe=_(Ye,!0);k(Ye),k(Z);var Q=c(Z,2);let Ze;M(Q,`aria-valuemin`,0);let Qe;var $e=_(Q),et=_($e,!0);k($e),k(Q);var $=c(Q,2),tt=e=>{var t=tn(),n=o(t);let i;M(n,`aria-valuemin`,0);let s;var l=_(n),f=_(l,!0);k(l),k(n);var m=c(n,2);let g;M(m,`aria-valuemin`,0);let v;var y=_(m),b=_(y,!0);k(y),k(m),H((e,t,a,o)=>{i=E(n,1,`line v svelte-1jfrg6d`,null,i,e),M(n,`aria-valuenow`,r.insets.left),M(n,`aria-valuemax`,t),s=D(n,``,s,{left:`${r.insets.left*p(w)}px`}),h(f,r.insets.left),g=E(m,1,`line v svelte-1jfrg6d`,null,g,a),M(m,`aria-valuenow`,r.insets.right),M(m,`aria-valuemax`,o),v=D(m,``,v,{left:`${(r.width-r.insets.right)*p(w)}px`}),h(b,r.insets.right)},[()=>({active:S(`inset`,`left`)}),()=>K(`inset`,`left`),()=>({active:S(`inset`,`right`)}),()=>K(`inset`,`right`)]),u(`pointerdown`,n,e=>se(`inset`,`left`,e)),u(`pointermove`,n,ce),u(`pointerup`,n,G),d(`pointercancel`,n,G),u(`keydown`,n,e=>q(`inset`,`left`,`x`,e)),u(`pointerdown`,m,e=>se(`inset`,`right`,e)),u(`pointermove`,m,ce),u(`pointerup`,m,G),d(`pointercancel`,m,G),u(`keydown`,m,e=>q(`inset`,`right`,`x`,e)),a(e,t)};B($,e=>{p(g)&&e(tt)});var nt=c($,2),rt=e=>{var t=nn(),n=o(t);let i;M(n,`aria-valuemin`,0);let s;var l=_(n),f=_(l,!0);k(l),k(n);var m=c(n,2);let g;M(m,`aria-valuemin`,0);let v;var y=_(m),b=_(y,!0);k(y),k(m),H((e,t,a,o)=>{i=E(n,1,`line h svelte-1jfrg6d`,null,i,e),M(n,`aria-valuenow`,r.insets.top),M(n,`aria-valuemax`,t),s=D(n,``,s,{top:`${r.insets.top*p(w)}px`}),h(f,r.insets.top),g=E(m,1,`line h svelte-1jfrg6d`,null,g,a),M(m,`aria-valuenow`,r.insets.bottom),M(m,`aria-valuemax`,o),v=D(m,``,v,{top:`${(r.height-r.insets.bottom)*p(w)}px`}),h(b,r.insets.bottom)},[()=>({active:S(`inset`,`top`)}),()=>K(`inset`,`top`),()=>({active:S(`inset`,`bottom`)}),()=>K(`inset`,`bottom`)]),u(`pointerdown`,n,e=>se(`inset`,`top`,e)),u(`pointermove`,n,ce),u(`pointerup`,n,G),d(`pointercancel`,n,G),u(`keydown`,n,e=>q(`inset`,`top`,`y`,e)),u(`pointerdown`,m,e=>se(`inset`,`bottom`,e)),u(`pointermove`,m,ce),u(`pointerup`,m,G),d(`pointercancel`,m,G),u(`keydown`,m,e=>q(`inset`,`bottom`,`y`,e)),a(e,t)};B(nt,e=>{p(b)&&e(rt)}),k(Ee),x(Ee,e=>s(l,e),()=>p(l)),k(we),x(we,e=>s(i,e),()=>p(i)),k(de),H((e,t,n,i,a,o,s,c,l)=>{h(ge,`${e??``}%`),be=E(ye,1,`svelte-1jfrg6d`,null,be,{active:p(C)===`one`}),xe=E(J,1,`svelte-1jfrg6d`,null,xe,{active:p(C)===`fit`}),h(Ce,`${r.width??``} × ${r.height??``} px`),Te=E(we,1,`viewport checkerboard svelte-1jfrg6d`,null,Te,{panning:p(P)}),De=D(Ee,``,De,{width:`${r.width*p(w)}px`,height:`${r.height*p(w)}px`,transform:`translate(${p(O)??``}px, ${p(A)??``}px)`}),M(Oe,`src`,r.src),ze=E(Y,1,`line v overdraw-line svelte-1jfrg6d`,null,ze,t),M(Y,`aria-valuenow`,r.overdraw.left),M(Y,`aria-valuemax`,n),Be=D(Y,``,Be,{left:`${r.overdraw.left*p(w)}px`}),h(He,r.overdraw.left),Ue=E(X,1,`line v overdraw-line svelte-1jfrg6d`,null,Ue,i),M(X,`aria-valuenow`,r.overdraw.right),M(X,`aria-valuemax`,a),We=D(X,``,We,{left:`${(r.width-r.overdraw.right)*p(w)}px`}),h(Ke,r.overdraw.right),qe=E(Z,1,`line h overdraw-line svelte-1jfrg6d`,null,qe,o),M(Z,`aria-valuenow`,r.overdraw.top),M(Z,`aria-valuemax`,s),Je=D(Z,``,Je,{top:`${r.overdraw.top*p(w)}px`}),h(Xe,r.overdraw.top),Ze=E(Q,1,`line h overdraw-line svelte-1jfrg6d`,null,Ze,c),M(Q,`aria-valuenow`,r.overdraw.bottom),M(Q,`aria-valuemax`,l),Qe=D(Q,``,Qe,{top:`${(r.height-r.overdraw.bottom)*p(w)}px`}),h(et,r.overdraw.bottom)},[()=>Math.round(p(w)*100),()=>({active:S(`overdraw`,`left`)}),()=>K(`overdraw`,`left`),()=>({active:S(`overdraw`,`right`)}),()=>K(`overdraw`,`right`),()=>({active:S(`overdraw`,`top`)}),()=>K(`overdraw`,`top`),()=>({active:S(`overdraw`,`bottom`)}),()=>K(`overdraw`,`bottom`)]),u(`click`,me,()=>ne(1/1.25)),u(`click`,_e,()=>ne(1.25)),u(`click`,ye,te),u(`click`,J,U),u(`pointerdown`,we,ie),u(`pointermove`,we,W),u(`pointerup`,we,ae),d(`pointercancel`,we,ae),d(`wheel`,we,oe),u(`pointerdown`,Y,e=>se(`overdraw`,`left`,e)),u(`pointermove`,Y,ce),u(`pointerup`,Y,G),d(`pointercancel`,Y,G),u(`keydown`,Y,e=>q(`overdraw`,`left`,`x`,e)),u(`pointerdown`,X,e=>se(`overdraw`,`right`,e)),u(`pointermove`,X,ce),u(`pointerup`,X,G),d(`pointercancel`,X,G),u(`keydown`,X,e=>q(`overdraw`,`right`,`x`,e)),u(`pointerdown`,Z,e=>se(`overdraw`,`top`,e)),u(`pointermove`,Z,ce),u(`pointerup`,Z,G),d(`pointercancel`,Z,G),u(`keydown`,Z,e=>q(`overdraw`,`top`,`y`,e)),u(`pointerdown`,Q,e=>se(`overdraw`,`bottom`,e)),u(`pointermove`,Q,ce),u(`pointerup`,Q,G),d(`pointercancel`,Q,G),u(`keydown`,Q,e=>q(`overdraw`,`bottom`,`y`,e)),a(t,de),e()}A([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var on=y(`dom`),sn=f(`<div class="preview-panel svelte-1mjaycs"><div class="bar svelte-1mjaycs"><span class="size svelte-1mjaycs"> </span> <div class="backends svelte-1mjaycs" role="group" aria-label="Rendering backend"><button>DOM</button> <button>Canvas</button></div> <button class="reset svelte-1mjaycs">Reset</button></div> <div class="stage checkerboard svelte-1mjaycs"><div class="box svelte-1mjaycs"><!> <div class="handle edge-right svelte-1mjaycs" role="separator" aria-label="Drag width" aria-orientation="vertical"></div> <div class="handle edge-bottom svelte-1mjaycs" role="separator" aria-label="Drag height" aria-orientation="horizontal"></div> <div class="handle corner svelte-1mjaycs" role="separator" aria-label="Drag size"></div></div></div></div>`);function cn(t,n){T(n,!0);function r(){return Math.round(Math.min(360,Math.max(80,n.entry.sourceWidth*2)))}function i(){return Math.round(r()*n.entry.sourceHeight/Math.max(1,n.entry.sourceWidth))}let o=y(L(l(()=>r()))),f=y(L(l(()=>i()))),m=y(null),g={pointerX:0,pointerY:0,width:0,height:0};function v(e,t){t.preventDefault(),s(m,e,!0),g={pointerX:t.clientX,pointerY:t.clientY,width:p(o),height:p(f)},ot(t.currentTarget,t)}function b(e){p(m)&&(p(m)!==`y`&&s(o,Math.max(16,Math.round(g.width+(e.clientX-g.pointerX))),!0),p(m)!==`x`&&s(f,Math.max(16,Math.round(g.height+(e.clientY-g.pointerY))),!0))}function x(e){p(m)&&st(e.currentTarget,e.pointerId),s(m,null)}function S(){s(o,r(),!0),s(f,i(),!0)}var C=sn(),w=_(C),O=_(w),A=_(O);k(O);var j=c(O,2),M=_(j);let N;var P=c(M,2);let F;k(j);var I=c(j,2);k(w);var R=c(w,2),z=_(R);let B;var ee=_(z);We(ee,{get src(){return n.entry},get backend(){return p(on)},class:`fill`});var V=c(ee,2),U=c(V,2),te=c(U,2);k(z),k(R),k(C),H(()=>{h(A,`${p(o)??``} × ${p(f)??``} px`),N=E(M,1,`svelte-1mjaycs`,null,N,{on:p(on)===`dom`}),F=E(P,1,`svelte-1mjaycs`,null,F,{on:p(on)===`canvas`}),B=D(z,``,B,{width:`${p(o)??``}px`,height:`${p(f)??``}px`})}),u(`click`,M,()=>s(on,`dom`)),u(`click`,P,()=>s(on,`canvas`)),u(`click`,I,S),u(`pointerdown`,V,e=>v(`x`,e)),u(`pointermove`,V,b),u(`pointerup`,V,x),d(`pointercancel`,V,x),u(`pointerdown`,U,e=>v(`y`,e)),u(`pointermove`,U,b),u(`pointerup`,U,x),d(`pointercancel`,U,x),u(`pointerdown`,te,e=>v(`both`,e)),u(`pointermove`,te,b),u(`pointerup`,te,x),d(`pointercancel`,te,x),a(t,C),e()}A([`click`,`pointerdown`,`pointermove`,`pointerup`]);var ln=f(`<span class="color-dot svelte-151zph4"></span>`),un=f(`<span class="via svelte-151zph4"> </span>`),dn=f(`<label><input type="checkbox" class="svelte-151zph4"/> <span class="marker svelte-151zph4" aria-hidden="true"><!></span> <span class="name svelte-151zph4"> </span> <!></label>`),fn=f(`<div class="manifest-selector svelte-151zph4" role="group" aria-label="Manifest assignments"></div>`);function pn(n,r){T(r,!0);function i(e){return r.passive.find(t=>t.manifest===e)}function o(e,t,n){return t?`${e}: explicitly assigned`:n?`${e}: passive member via ${n.via.join(`, `)}`:`${e}: not assigned`}var s=fn();m(s,20,()=>r.manifests,e=>e,(e,n)=>{let s=v(()=>W.manifestAppearance(n)),l=v(()=>r.selected.includes(n)),d=v(()=>i(n)),f=v(()=>p(s).color??`var(--accent)`);var m=dn();let g,y;var b=_(m);C(b);var x=c(b,2),S=_(x),w=e=>{var n=t();H(()=>h(n,p(s).emoji)),a(e,n)},T=e=>{a(e,ln())};B(S,e=>{p(s).emoji?e(w):e(T,-1)}),k(x);var O=c(x,2),A=_(O,!0);k(O);var j=c(O,2),N=e=>{var t=un(),n=_(t);k(t),H(e=>h(n,`passive · via ${e??``}`),[()=>p(d).via.join(`, `)]),a(e,t)};B(j,e=>{p(d)&&!p(l)&&e(N)}),k(m),H((e,t)=>{g=E(m,1,`manifest-option control svelte-151zph4`,null,g,{selected:p(l),passive:p(d)!==void 0&&!p(l)}),M(m,`title`,e),y=D(m,``,y,{"--manifest-color":p(f)}),z(b,p(l)),M(b,`aria-label`,t),h(A,n)},[()=>o(n,p(l),p(d)),()=>o(n,p(l),p(d))]),u(`change`,b,()=>r.onToggle(n)),a(e,m)}),k(s),a(n,s),e()}A([`change`]);var mn=f(`<div class="center empty svelte-xy8zsr">Loading…</div>`),hn=f(`<div class="center empty svelte-xy8zsr"> </div>`),gn=f(`<div class="empty error svelte-xy8zsr"> </div>`),_n=f(`<div class="empty svelte-xy8zsr">Loading image…</div>`),vn=f(`<div class="pane svelte-xy8zsr"><!></div>`),yn=f(`<div class="tabs svelte-xy8zsr"><button>Slicing</button> <button>Preview</button></div> <!>`,1),bn=f(`<div class="preview-column svelte-xy8zsr"><div class="video-frame svelte-xy8zsr"><!></div> <!></div>`),xn=f(`<p class="stage-hint svelte-xy8zsr">No proxy yet — add the asset to a manifest to process it.</p>`),Sn=f(`<div class="pane image-stage checkerboard svelte-xy8zsr"><!></div>`),Cn=f(`<div class="preview-column svelte-xy8zsr"><div class="compare-row svelte-xy8zsr"><figure class="compare svelte-xy8zsr"><figcaption class="svelte-xy8zsr">Input</figcaption> <div class="video-frame svelte-xy8zsr"><!></div></figure> <figure class="compare svelte-xy8zsr"><figcaption class="svelte-xy8zsr">Keyed</figcaption> <div class="video-frame checkerboard svelte-xy8zsr"><!></div></figure></div> <!></div>`),wn=f(`<div class="pane image-stage svelte-xy8zsr"><!></div>`),Tn=f(`<div class="preview-column svelte-xy8zsr"><div class="audio-frame svelte-xy8zsr"><!></div></div>`),En=f(`<img/>`),Dn=f(`<p class="warning svelte-xy8zsr"> </p>`),On=f(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),kn=f(`<p class="hint svelte-xy8zsr">No references.</p>`),An=f(`<a class="reference-row svelte-xy8zsr"><span class="reference-field svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-asset svelte-xy8zsr"> </span></a>`),jn=f(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),Mn=f(`<a class="reference-row svelte-xy8zsr"><span class="reference-asset svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-field svelte-xy8zsr"> </span></a>`),Nn=f(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),Pn=f(`<!> <!>`,1),Fn=f(`<p class="hint error svelte-xy8zsr"> </p>`),In=f(`<div class="center svelte-xy8zsr"><!></div> <aside class="inspector svelte-xy8zsr"><section class="head svelte-xy8zsr"><h2 class="svelte-xy8zsr"> </h2> <p class="raw svelte-xy8zsr"> <span title="Raw file"> </span></p> <!></section> <!> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <div class="rename svelte-xy8zsr"><input class="control svelte-xy8zsr" type="text" spellcheck="false"/> <button class="control">Rename</button></div> <!> <button class="control danger svelte-xy8zsr">Delete asset</button></section></aside>`,1),Ln=f(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <!> <!>`,1);function Rn(l,d){T(d,!0);let f=v(()=>ne.params.id??``),g=v(()=>W.assetById(p(f))),b=v(()=>W.manifestNames),S=v(()=>p(g)?W.state?.presetNames[p(g).type]??[]:[]),O=v(()=>p(g)?Qt[p(g).type]??null:null),A=y(null),j=v(()=>p(g)?p(A)&&p(A).assetId===p(g).id?p(A).value:F(p(g)).parameters:null);function N(e){p(g)&&s(A,{assetId:p(g).id,value:e},!0)}let P=y(null),I=y(null);n(()=>{let e=p(g)?.type===`slice`?p(g).rawUrl:null;if(s(P,null),s(I,null),!e)return;let t=!1,n=new window.Image;return n.onload=()=>{t||s(P,{width:n.naturalWidth,height:n.naturalHeight},!0)},n.onerror=()=>{t||s(I,`Could not load image dimensions.`)},n.src=e,()=>{t=!0}});let L=v(()=>{if(!p(g)||p(g).type!==`slice`||p(j)===null)return null;try{return q.validateParameters(p(j))}catch{return null}}),z=v(()=>!p(g)||!p(L)||!p(P)?null:{kind:`slice`,src:p(g).proxy?.url??p(g).rawUrl,slicing:{mode:p(L).mode,insets:p(L).insets,pixelRatio:p(L).pixelRatio,...p(L).overdraw?{overdraw:p(L).overdraw}:{}},sourceWidth:p(P).width,sourceHeight:p(P).height}),ee=v(()=>{if(!p(g)||p(g).type!==`image`||!p(g).proxy)return null;let{width:e,height:t}=p(g).proxy;return e===void 0||t===void 0?null:{kind:`image`,src:p(g).proxy.url,width:e,height:t}}),ue=v(()=>{if(!p(g)||p(g).type!==`video`||!p(g).proxy)return null;let{width:e,height:t,durationMs:n}=p(g).proxy;return e===void 0||t===void 0||n===void 0?null:{kind:`video`,src:p(g).proxy.url,width:e,height:t,durationMs:n}});function fe(e){if(!e)return;let t=W.assetById(e);if(!(!t?.proxy||t.proxy.width===void 0||t.proxy.height===void 0))return{kind:`image`,src:t.proxy.url,width:t.proxy.width,height:t.proxy.height}}let pe=v(()=>{if(!p(g)||p(g).type!==`chroma-key-video`||!p(g).proxy||p(j)===null)return null;let{width:e,height:t,durationMs:n}=p(g).proxy;if(e===void 0||t===void 0||n===void 0)return null;let r;try{r=de.validateParameters(p(j))}catch{return null}let i=fe(r.mask?.$asset),a=fe(r.fallback?.$asset);return{kind:`chroma-key-video`,src:p(g).proxy.url,width:e,height:t,durationMs:n,chromaKey:r.chromaKey,...i?{mask:i}:{},...a?{fallback:a}:{}}}),_e=v(()=>{if(!p(g)||p(g).type!==`chroma-key-video`||!p(g).proxy)return null;let{width:e,height:t,durationMs:n}=p(g).proxy;return e===void 0||t===void 0||n===void 0?null:{kind:`video`,src:p(g).proxy.url,width:e,height:t,durationMs:n}}),ve=y(void 0),ye=y(void 0);n(()=>{let e=p(ve),t=p(ye);if(!e||!t)return;function n(){Math.abs(t.currentTime-e.currentTime)>.25&&(t.currentTime=e.currentTime)}function r(){n(),t.play().catch(()=>{})}function i(){t.pause(),t.currentTime=e.currentTime}function a(){t.currentTime=e.currentTime}return e.addEventListener(`play`,r),e.addEventListener(`playing`,r),e.addEventListener(`pause`,i),e.addEventListener(`ended`,i),e.addEventListener(`seeked`,a),e.addEventListener(`timeupdate`,n),a(),e.paused||t.play().catch(()=>{}),()=>{e.removeEventListener(`play`,r),e.removeEventListener(`playing`,r),e.removeEventListener(`pause`,i),e.removeEventListener(`ended`,i),e.removeEventListener(`seeked`,a),e.removeEventListener(`timeupdate`,n)}});let be=y(`slicing`),J=y(null),xe=y(null),Se=0,Ce=y(null),we=0,Te=y(null),Ee=0,De=y(null),Oe=y(``),ke=y(void 0),Ae=he().join(`,`),Me=y(null),Ne=v(()=>p(g)&&p(Me)?.assetId===p(g).id?p(Me).value:p(g)?.id??``),Pe=v(()=>p(g)&&p(Ne)!==p(g).id?me(p(Ne)):null);async function Fe(e){if(!p(g))return;let t=p(g).id;try{await W.mutate(()=>ae(t,{parameters:e})),p(A)?.assetId===t&&s(A,null)}catch{}}async function Ie(e){if(!p(g))return;let t=p(g).manifests.includes(e)?p(g).manifests.filter(t=>t!==e):[...p(g).manifests,e];try{await W.mutate(()=>ae(p(g).id,{manifests:t}))}catch{}}async function Le(){if(!p(g)||p(Ne)===p(g).id||p(Pe))return;let e=p(g).id,t=p(Ne);try{await W.mutate(()=>ae(e,{renameTo:t})),s(Me,null),p(f)===e&&await te(U(`/asset/[id]`,{id:t}),{replaceState:!0})}catch{}}async function Re(){if(!p(g))return;let e=p(g).id;if(confirm(`Delete "${e}"? The raw file and its proxies are removed.`))try{await W.mutate(()=>ie(e)),p(f)===e&&await te(U(`/`))}catch{}}async function Y(e){try{localStorage.setItem(`fundus.gallery.folder`,e??`__all__`)}catch{}await te(U(`/`))}async function ze(e,t){let n=e.filter(e=>W.assetById(e)?.folder!==t);if(n.length!==0)try{await W.mutate(()=>re(n,t))}catch{}}function Be(e){Se+=1,s(xe,{id:Se,parent:e},!0)}function Ve(e){we+=1,s(Ce,{id:we,path:e},!0)}function He(e){Ee+=1,s(Te,{id:Ee,path:e},!0)}function X(e){s(Oe,e,!0),p(ke)?.click()}function Ue(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&s(De,n,!0)}async function We(e){s(De,null),await te(U(`/asset/[id]`,{id:e}))}var Ge=Ln(),Z=o(Ge),qe=_(Z);{let e=v(()=>p(g)?.folder??null);ce(qe,{get selectedFolder(){return p(e)},get activeAsset(){return p(g)},get createRequest(){return p(xe)},get renameRequest(){return p(Ce)},get deleteRequest(){return p(Te)},onSelect:e=>void Y(e),onMoveAssets:(e,t)=>void ze(e,t),onActiveAssetDeleted:e=>void Y(e),onContextMenu:(e,t,n,r)=>{s(J,{x:e,y:t,parent:n,renamePath:r},!0)}})}var Je=c(qe,2),Ye=e=>{a(e,mn())},Xe=e=>{var t=hn(),n=_(t);k(t),H(()=>h(n,`No asset with id "${p(f)??``}".`)),a(e,t)},Q=e=>{var n=In(),l=o(n),d=_(l),f=e=>{var t=yn(),n=o(t),i=_(n);let l;var d=c(i,2);let f;k(n);var m=c(n,2),y=e=>{var t=gn(),n=_(t,!0);k(t),H(()=>h(n,p(I))),a(e,t)},b=e=>{a(e,_n())},x=e=>{var t=vn(),n=_(t);{let e=v(()=>p(L).overdraw??ge());an(n,{get src(){return p(g).rawUrl},get width(){return p(P).width},get height(){return p(P).height},get mode(){return p(L).mode},get insets(){return p(L).insets},get overdraw(){return p(e)},onChange:e=>N({...p(L),insets:e}),onOverdrawChange:e=>N({...p(L),overdraw:e}),onCommit:()=>void Fe(p(j))})}k(t),a(e,t)},S=e=>{var t=vn();r(_(t),()=>p(g).id,e=>{cn(e,{get entry(){return p(z)}})}),k(t),a(e,t)};B(m,e=>{p(I)?e(y):!p(L)||!p(P)?e(b,1):p(be)===`slicing`?e(x,2):p(z)&&e(S,3)}),H(()=>{l=E(i,1,`svelte-xy8zsr`,null,l,{on:p(be)===`slicing`}),f=E(d,1,`svelte-xy8zsr`,null,f,{on:p(be)===`preview`})}),u(`click`,i,()=>s(be,`slicing`)),u(`click`,d,()=>s(be,`preview`)),a(e,t)},y=e=>{var t=Sn(),n=_(t),i=e=>{var t=bn(),n=_(t);let i;r(_(n),()=>p(ue).src,e=>{Ke(e,{get src(){return p(ue)},loop:!0,get videoElement(){return p(ve)},set videoElement(e){s(ve,e,!0)}})}),k(n),oe(c(n,2),{get media(){return p(ve)},showScrub:!0,showVolume:!0}),k(t),H(()=>i=D(n,``,i,{"aspect-ratio":`${p(ue).width??``} / ${p(ue).height??``}`})),a(e,t)},o=e=>{a(e,xn())};B(n,e=>{p(ue)?e(i):e(o,-1)}),k(t),a(e,t)},x=e=>{var t=wn(),n=_(t),i=e=>{var t=Cn(),n=_(t),i=_(n),o=c(_(i),2);let l;r(_(o),()=>p(_e).src,e=>{Ke(e,{get src(){return p(_e)},loop:!0,get videoElement(){return p(ye)},set videoElement(e){s(ye,e,!0)}})}),k(o),k(i);var u=c(i,2),d=c(_(u),2);let f;r(_(d),()=>`${p(pe).src}|${p(pe).mask?.src??``}`,e=>{Qe(e,{get src(){return p(pe)},get videoElement(){return p(ve)},set videoElement(e){s(ve,e,!0)}})}),k(d),k(u),k(n),oe(c(n,2),{get media(){return p(ve)},showScrub:!0,showVolume:!1}),k(t),H(()=>{l=D(o,``,l,{"aspect-ratio":`${p(_e).width??``} / ${p(_e).height??``}`}),f=D(d,``,f,{"aspect-ratio":`${p(pe).width??``} / ${p(pe).height??``}`})}),a(e,t)},o=e=>{a(e,xn())};B(n,e=>{p(pe)&&p(_e)?e(i):e(o,-1)}),k(t),a(e,t)},T=e=>{var t=Sn(),n=_(t),i=e=>{var t=Tn(),n=_(t);r(_(n),()=>p(g).proxy.url,e=>{K(e,{get src(){return p(g).proxy.url},showControls:!0})}),k(n),k(t),a(e,t)},o=e=>{a(e,xn())};B(n,e=>{p(g).proxy?e(i):e(o,-1)}),k(t),a(e,t)},A=e=>{var t=Sn(),n=_(t),r=e=>{je(e,{get src(){return p(ee)},get alt(){return p(g).id}})},i=e=>{var t=En();H(()=>{M(t,`src`,p(g).rawUrl),M(t,`alt`,p(g).id)}),a(e,t)};B(n,e=>{p(ee)?e(r):e(i,-1)}),k(t),a(e,t)};B(d,e=>{p(g).type===`slice`?e(f):p(g).type===`video`?e(y,1):p(g).type===`chroma-key-video`?e(x,2):p(g).type===`audio`?e(T,3):e(A,-1)}),k(l);var F=c(l,2),te=_(F),ne=_(te),re=_(ne,!0);k(ne);var ie=c(ne,2),W=_(ie),ae=c(W),se=_(ae,!0);k(ae),k(ie),m(c(ie,2),16,()=>p(g).warnings,e=>e,(e,t)=>{var n=Dn(),r=_(n);k(n),H(()=>h(r,`⚠ ${t??``}`)),a(e,n)}),k(te);var ce=c(te,2),le=e=>{var t=i();V(o(t),()=>p(O),(e,t)=>{t(e,{get asset(){return p(g)},get parameters(){return p(j)},onParametersChange:e=>N(e),onParametersCommit:e=>{N(e),Fe(e)},get presetNames(){return p(S)}})}),a(e,t)};B(ce,e=>{p(O)&&p(j)!==null&&e(le)});var q=c(ce,2),de=_(q);G(de,{children:(e,n)=>{R(),a(e,t(`Manifests`))},$$slots:{default:!0}});var fe=c(de,2),me=e=>{a(e,On())},he=e=>{pn(e,{get manifests(){return p(b)},get selected(){return p(g).manifests},get passive(){return p(g).passiveManifests},onToggle:e=>void Ie(e)})};B(fe,e=>{p(b).length===0?e(me):e(he,-1)}),k(q);var J=c(q,2),xe=_(J);G(xe,{children:(e,n)=>{R(),a(e,t(`References`))},$$slots:{default:!0}});var Se=c(xe,2),Ce=e=>{a(e,kn())},we=e=>{var t=Pn(),n=o(t),r=e=>{var t=jn();m(c(o(t),2),17,()=>p(g).references.outgoing,e=>`${e.field}→${e.assetId}`,(e,t)=>{var n=An(),r=_(n),i=_(r,!0);k(r);var o=c(r,4),s=_(o,!0);k(o),k(n),H(e=>{M(n,`href`,e),h(i,p(t).field),h(s,p(t).assetId)},[()=>U(`/asset/[id]`,{id:p(t).assetId})]),a(e,n)}),a(e,t)};B(n,e=>{p(g).references.outgoing.length>0&&e(r)});var i=c(n,2),s=e=>{var t=Nn();m(c(o(t),2),17,()=>p(g).references.incoming,e=>`${e.assetId}→${e.field}`,(e,t)=>{var n=Mn(),r=_(n),i=_(r,!0);k(r);var o=c(r,4),s=_(o,!0);k(o),k(n),H(e=>{M(n,`href`,e),h(i,p(t).assetId),h(s,p(t).field)},[()=>U(`/asset/[id]`,{id:p(t).assetId})]),a(e,n)}),a(e,t)};B(i,e=>{p(g).references.incoming.length>0&&e(s)}),a(e,t)};B(Se,e=>{p(g).references.outgoing.length===0&&p(g).references.incoming.length===0?e(Ce):e(we,-1)}),k(J);var Te=c(J,2),Ee=_(Te);G(Ee,{children:(e,n)=>{R(),a(e,t(`Asset`))},$$slots:{default:!0}});var De=c(Ee,2),Oe=_(De);C(Oe);var ke=c(Oe,2);k(De);var Ae=c(De,2),Y=e=>{var t=Fn(),n=_(t,!0);k(t),H(()=>h(n,p(Pe))),a(e,t)};B(Ae,e=>{p(Pe)&&e(Y)});var ze=c(Ae,2);k(Te),k(F),H(()=>{h(re,p(g).id),h(W,`${p(g).type??``} · `),h(se,p(g).raw),w(Oe,p(Ne)),ke.disabled=p(Ne)===p(g).id||p(Pe)!==null}),u(`input`,Oe,e=>s(Me,{assetId:p(g).id,value:e.currentTarget.value},!0)),u(`click`,ke,()=>void Le()),u(`click`,ze,()=>void Re()),a(e,n)};B(Je,e=>{W.loaded?p(g)?e(Q,-1):e(Xe,1):e(Ye)}),k(Z);var Ze=c(Z,2);x(Ze,e=>s(ke,e),()=>p(ke));var $e=c(Ze,2),et=e=>{{let t=v(()=>p(J).renamePath===null?void 0:()=>Ve(p(J)?.renamePath??``)),n=v(()=>p(J).renamePath===null?void 0:()=>He(p(J)?.renamePath??``));le(e,{get x(){return p(J).x},get y(){return p(J).y},onNewDirectory:()=>Be(p(J)?.parent??``),get onRenameDirectory(){return p(t)},onImportFile:()=>X(p(J)?.parent??``),get onDeleteDirectory(){return p(n)},onClose:()=>s(J,null)})}};B($e,e=>{p(J)&&e(et)});var $=c($e,2),tt=e=>{se(e,{get file(){return p(De)},get folder(){return p(Oe)},onDone:e=>void We(e),onCancel:()=>s(De,null)})};B($,e=>{p(De)&&e(tt)}),H(()=>M(Ze,`accept`,Ae)),u(`change`,Ze,Ue),a(l,Ge),e()}A([`click`,`input`,`change`]);export{Rn as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{$ as e,B as t,E as n,G as r,J as i,K as a,M as o,O as s,P as c,S as l,T as u,W as d,X as f,Y as p,a as m,b as h,c as g,et as _,g as v,h as y,i as b,it as x,j as S,l as C,rt as w,s as T,w as E,z as D}from"../chunks/CNRz3sSw.js";import{c as O}from"../chunks/CvY6YsFE.js";import"../chunks/xihTtKlq.js";import{d as k,r as A,s as j,t as M}from"../chunks/CO4RBJfa.js";import{h as N,t as P}from"../chunks/BiIto6ft.js";import{t as F}from"../chunks/DjdrdRzT.js";var I=[{name:`slate`,value:`#64748b`},{name:`red`,value:`#ef4444`},{name:`orange`,value:`#f97316`},{name:`amber`,value:`#f59e0b`},{name:`yellow`,value:`#eab308`},{name:`lime`,value:`#84cc16`},{name:`green`,value:`#22c55e`},{name:`teal`,value:`#14b8a6`},{name:`cyan`,value:`#06b6d4`},{name:`blue`,value:`#3b82f6`},{name:`indigo`,value:`#6366f1`},{name:`violet`,value:`#8b5cf6`},{name:`pink`,value:`#ec4899`}],ee=`🗂️.🏠.🎯.⭐.🔥.💎.🎨.🧩.🚀.🎵.🏆.⚡.🌟.🍀.🎁.📦.🗺️.🔑.🛒.❤️.🐙.🎲.🌈.🧪.🎪.🎭.🎬.🎤.🎧.🎸.🥁.🔔.💡.🔮.🧭.⏰.📸.🖼️.📚.✏️.🖌️.🧲.⚙️.🛠️.🔧.🧰.🔌.🔋.🌍.🌙.☀️.❄️.🌊.🍄.🌵.🌸.🍎.🍕.🍩.☕.🐳.🦄.🐝`.split(`.`),L=s(`<div role="dialog"><!></div>`),R=s(`<div class="popover-anchor svelte-1rznwff"><!> <!></div>`);function z(r,o){_(o,!0);let s=b(o,`open`,15,!1),l=b(o,`align`,3,`left`),u=p(void 0);function f(){s(!s())}t(()=>{if(!s())return;function e(e){c(u)&&!c(u).contains(e.target)&&s(!1)}function t(e){e.key===`Escape`&&s(!1)}return window.addEventListener(`pointerdown`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e,!0),window.removeEventListener(`keydown`,t)}});var g=R(),y=d(g);h(y,()=>o.trigger,()=>({toggle:f,open:s()}));var S=a(y,2),w=e=>{var t=L();let r;h(d(t),()=>o.children),x(t),D(()=>{r=v(t,1,`popover svelte-1rznwff`,null,r,{right:l()===`right`}),C(t,`aria-label`,o.label)}),n(e,t)};E(S,e=>{s()&&e(w)}),x(g),m(g,e=>i(u,e),()=>c(u)),n(r,g),e()}var B=s(`<button type="button" title="Emoji"> </button>`),V=s(`<button type="button"> </button>`),H=s(`<div class="picker emojis svelte-58t64l"><button type="button" title="No emoji" aria-label="No emoji">∅</button> <!></div>`),U=s(`<button type="button" title="Color"></button>`),W=s(`<button type="button"></button>`),te=s(`<div class="picker swatches svelte-58t64l"><button type="button" title="No color" aria-label="No color"></button> <!></div>`),ne=s(`<div class="controls svelte-58t64l"><!> <!></div>`);function re(t,r){_(r,!0);let s=f(()=>M.manifestAppearance(r.name)),m=f(()=>c(s).color??null),h=f(()=>c(s).emoji??null),g=p(!1),b=p(!1);async function S(e){i(g,!1);try{await M.mutate(()=>k(r.name,{color:e}))}catch{}}async function w(e){i(b,!1);try{await M.mutate(()=>k(r.name,{emoji:e}))}catch{}}var T=ne(),E=d(T);z(E,{get label(){return`Pick an emoji for ${r.name??``}`},get open(){return c(b)},set open(e){i(b,e,!0)},trigger:(e,t)=>{let i=()=>(t?.()).toggle,a=()=>(t?.()).open;var s=B();let l;var f=d(s,!0);x(s),D(()=>{l=v(s,1,`emoji-trigger svelte-58t64l`,null,l,{empty:!c(h),active:a()}),C(s,`aria-label`,`Emoji for ${r.name??``}`),u(f,c(h)??`☺`)}),o(`click`,s,function(...e){i()?.apply(this,e)}),n(e,s)},children:(e,t)=>{var r=H(),i=d(r);let s;l(a(i,2),16,()=>ee,e=>e,(e,t)=>{var r=V();let i;var a=d(r,!0);x(r),D(()=>{i=v(r,1,`emoji svelte-58t64l`,null,i,{selected:c(h)===t}),C(r,`title`,t),u(a,t)}),o(`click`,r,()=>void w(t)),n(e,r)}),x(r),D(()=>s=v(i,1,`emoji none svelte-58t64l`,null,s,{selected:c(h)===null})),o(`click`,i,()=>void w(null)),n(e,r)},$$slots:{trigger:!0,default:!0}}),z(a(E,2),{get label(){return`Pick a color for ${r.name??``}`},get open(){return c(g)},set open(e){i(g,e,!0)},trigger:(e,t)=>{let i=()=>(t?.()).toggle,a=()=>(t?.()).open;var s=U();let l;D(()=>{l=v(s,1,`swatch-trigger svelte-58t64l`,null,l,{empty:!c(m),active:a()}),y(s,`--swatch: ${c(m)??`transparent`??``}`),C(s,`aria-label`,`Color for ${r.name??``}`)}),o(`click`,s,function(...e){i()?.apply(this,e)}),n(e,s)},children:(e,t)=>{var r=te(),i=d(r);let s;l(a(i,2),17,()=>I,e=>e.value,(e,t)=>{var r=W();let i;D(()=>{i=v(r,1,`swatch svelte-58t64l`,null,i,{selected:c(m)===c(t).value}),y(r,`background: ${c(t).value??``}`),C(r,`title`,c(t).name),C(r,`aria-label`,c(t).name)}),o(`click`,r,()=>void S(c(t).value)),n(e,r)}),x(r),D(()=>s=v(i,1,`swatch none svelte-58t64l`,null,s,{selected:c(m)===null})),o(`click`,i,()=>void S(null)),n(e,r)},$$slots:{trigger:!0,default:!0}}),x(T),n(t,T),e()}S([`click`]);var ie=s(`<span class="hint svelte-1k9wgg5"> </span>`),ae=s(`<div class="empty svelte-1k9wgg5">No manifests yet. Assets only get processed and generated once they are in a manifest.</div>`),oe=s(`<span class="asset-type svelte-1k9wgg5"> </span>`),se=s(`<li class="passive-member svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id passive-id svelte-1k9wgg5"> </span> <!> <span class="asset-via svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li>`),ce=s(`<li class="svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id svelte-1k9wgg5"> </span> <span class="asset-type svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li> <!>`,1),le=s(`<ul class="svelte-1k9wgg5"></ul>`),ue=s(`<p class="hint svelte-1k9wgg5">Empty — an empty manifest still generates an (empty) module.</p>`),de=s(`<section class="manifest svelte-1k9wgg5"><header class="svelte-1k9wgg5"><!> <h2 class="svelte-1k9wgg5"> </h2> <span class="size svelte-1k9wgg5" title="Total delivered proxy size incl. the reference closure — the preload budget"> </span> <span class="count svelte-1k9wgg5"> </span> <button class="control">Rename</button> <button class="control danger">Delete</button></header> <!></section>`),fe=s(`<div class="list svelte-1k9wgg5"></div>`),G=s(`<p class="dialog-text warn svelte-1k9wgg5"> </p>`),pe=s(`<p class="dialog-text svelte-1k9wgg5">Delete manifest <strong> </strong> </p> <!>`,1),me=s(`<p class="dialog-text warn svelte-1k9wgg5">A manifest with this name already exists.</p>`),he=s(`<label class="dialog-row svelte-1k9wgg5"><span class="dialog-label svelte-1k9wgg5">Name</span> <input class="control svelte-1k9wgg5" type="text" spellcheck="false"/></label> <!> <p class="dialog-text svelte-1k9wgg5">The generated module is renamed with the manifest — host code importing <code> </code> must be updated by hand.</p> <!>`,1),ge=s(`<div class="page svelte-1k9wgg5"><div class="create svelte-1k9wgg5"><input class="control svelte-1k9wgg5" type="text" placeholder="newManifestName" spellcheck="false"/> <button class="control primary">Create manifest</button> <!></div> <!></div> <!> <!>`,1);function K(t,s){_(s,!0);let m=p(``),h=f(()=>M.state?.assets??[]),v=f(()=>M.manifestNames);function b(e){return c(h).filter(t=>t.manifests.includes(e))}function S(e){return M.state?.manifestMemberships[e]?.passiveMembers??[]}function I(e,t){return S(e).filter(e=>e.via.includes(t))}function ee(e){return M.state?.manifestDeliveredBytes[e]??0}let L=f(()=>c(m)?N(c(m)):null),R=f(()=>c(m)!==``&&!c(L)&&!c(v).includes(c(m)));async function z(){if(c(R))try{await M.mutate(()=>A(c(m))),i(m,``)}catch{}}let B=p(null),V=p(null),H=p(``),U=p(!1),W=p(null);function te(e){i(W,null),i(B,e,!0)}function ne(e){i(W,null),i(H,e,!0),i(V,e,!0)}function K(){i(B,null),i(V,null),i(W,null)}let q=f(()=>c(V)!==null&&c(H)!==c(V)?N(c(H)):null),J=f(()=>c(V)!==null&&c(H)!==c(V)&&c(v).includes(c(H))),_e=f(()=>c(V)!==null&&c(H)!==c(V)&&!c(q)&&!c(J));async function ve(){if(c(B)===null)return;let e=c(B);i(U,!0),i(W,null);try{await M.mutate(()=>j(e)),K()}catch(e){i(W,e instanceof Error?e.message:String(e),!0)}finally{i(U,!1)}}async function ye(){if(c(V)===null||!c(_e))return;let e=c(V),t=c(H);i(U,!0),i(W,null);try{await M.mutate(()=>k(e,{renameTo:t})),K()}catch(e){i(W,e instanceof Error?e.message:String(e),!0)}finally{i(U,!1)}}var be=ge(),Y=r(be),X=d(Y),Z=d(X);g(Z);var Q=a(Z,2),xe=a(Q,2),Se=e=>{var t=ie(),r=d(t,!0);x(t),D(()=>u(r,c(L))),n(e,t)};E(xe,e=>{c(L)&&e(Se)}),x(X);var Ce=a(X,2),we=e=>{n(e,ae())},Te=e=>{var t=fe();l(t,20,()=>c(v),e=>e,(e,t)=>{var i=de(),s=d(i),p=d(s);re(p,{get name(){return t}});var m=a(p,2),h=d(m,!0);x(m);var g=a(m,2),_=d(g,!0);x(g);var v=a(g,2),w=d(v);x(v);var T=a(v,2),k=a(T,2);x(s);var A=a(s,2),j=e=>{var i=le();l(i,21,()=>b(t),e=>e.id,(e,i)=>{var o=ce(),s=r(o),p=d(s),m=d(p),h=d(m,!0);x(m);var g=a(m,2),_=d(g,!0);x(g);var v=a(g,2),y=d(v,!0);x(v),x(p),x(s),l(a(s,2),17,()=>I(t,c(i).id),e=>e.assetId,(e,t)=>{let r=f(()=>M.assetById(c(t).assetId));var o=se(),s=d(o),l=d(s),p=d(l,!0);x(l);var m=a(l,2),h=e=>{var t=oe(),i=d(t,!0);x(t),D(()=>u(i,c(r).type)),n(e,t)};E(m,e=>{c(r)&&e(h)});var g=a(m,2),_=d(g);x(g);var v=a(g,2),y=d(v,!0);x(v),x(s),x(o),D((e,n)=>{C(s,`href`,e),u(p,c(t).assetId),u(_,`via ${c(i).id??``}`),u(y,n)},[()=>O(`/asset/[id]`,{id:c(t).assetId}),()=>c(r)?.proxy?F(c(r).proxy.fileSize):`—`]),n(e,o)}),D((e,t)=>{C(p,`href`,e),u(h,c(i).id),u(_,c(i).type),u(y,t)},[()=>O(`/asset/[id]`,{id:c(i).id}),()=>c(i).proxy?F(c(i).proxy.fileSize):`—`]),n(e,o)}),x(i),n(e,i)},N=f(()=>b(t).length>0),P=e=>{n(e,ue())};E(A,e=>{c(N)?e(j):e(P,-1)}),x(i),D((e,n,r,a)=>{y(i,`--manifest-color: ${e??``}`),u(h,t),u(_,n),u(w,`${r??``} asset(s)${a??``}`)},[()=>M.manifestAppearance(t).color??`var(--border-soft)`,()=>F(ee(t)),()=>b(t).length,()=>S(t).length>0?` + ${S(t).length} passive`:``]),o(`click`,T,()=>ne(t)),o(`click`,k,()=>te(t)),n(e,i)}),x(t),n(e,t)};E(Ce,e=>{c(v).length===0?e(we):e(Te,-1)}),x(Y);var $=a(Y,2),Ee=e=>{let t=f(()=>b(c(B)).length);{let i=f(()=>c(U)?`Deleting…`:`Delete`);P(e,{title:`Delete manifest`,get confirmLabel(){return c(i)},danger:!0,get busy(){return c(U)},onConfirm:()=>void ve(),onCancel:K,children:(e,i)=>{var o=pe(),s=r(o),l=a(d(s)),f=d(l,!0);x(l);var p=a(l);x(s);var m=a(s,2),h=e=>{var t=G(),r=d(t,!0);x(t),D(()=>u(r,c(W))),n(e,t)};E(m,e=>{c(W)&&e(h)}),D(()=>{u(f,c(B)),u(p,`? Its generated module is removed. Assets are
|
|
2
|
-
not deleted${c(t)>0?`, but ${c(t)} asset(s) lose this membership and may become unreachable`:``}.`)}),n(e,o)},$$slots:{default:!0}})}};E($,e=>{c(B)!==null&&e(Ee)});var De=a($,2),Oe=e=>{{let t=f(()=>c(U)?`Renaming…`:`Rename`),s=f(()=>!c(_e));P(e,{title:`Rename manifest`,get confirmLabel(){return c(t)},get confirmDisabled(){return c(s)},get busy(){return c(U)},onConfirm:()=>void ye(),onCancel:K,children:(e,t)=>{var s=he(),l=r(s),f=a(d(l),2);g(f),x(l);var p=a(l,2),m=e=>{var t=G(),r=d(t,!0);x(t),D(()=>u(r,c(q))),n(e,t)},h=e=>{n(e,me())};E(p,e=>{c(q)?e(m):c(J)&&e(h,1)});var _=a(p,2),v=a(d(_)),y=d(v,!0);x(v),w(),x(_);var b=a(_,2),S=e=>{var t=G(),r=d(t,!0);x(t),D(()=>u(r,c(W))),n(e,t)};E(b,e=>{c(W)&&e(S)}),D(()=>{f.disabled=c(U),u(y,c(V))}),o(`keydown`,f,e=>{e.key===`Enter`&&ye()}),T(f,()=>c(H),e=>i(H,e)),n(e,s)},$$slots:{default:!0}})}};E(De,e=>{c(V)!==null&&e(Oe)}),D(()=>Q.disabled=!c(R)),o(`keydown`,Z,e=>{e.key===`Enter`&&z()}),T(Z,()=>c(m),e=>i(m,e)),o(`click`,Q,()=>void z()),n(t,be),e()}S([`keydown`,`click`]);export{K as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js-Bw4WWLhG.js","sources":["../../../../.svelte-kit/output/server/chunks/context.js"],"sourcesContent":["import { d as rawFileNameOfPath, i as folderOfRawPath } from \"./folder-path.js\";\nimport { a as encodeRelativePathForUrl, c as serverPluginForType, d as computeLibraryMembership, f as collectAllReferences, i as readCurrentProxy, l as serverPluginsByType, o as generateManifestModules, p as compareCodeUnits, r as processAssets, s as descriptorsByType, t as LibraryStore, u as allDeliveredAssetIds } from \"./library-store.js\";\nimport { b as validateAudioPreset, f as validateImagePreset, h as validateVideoPreset, m as VIDEO_BUILT_IN_PRESETS, r as SLICE_BUILT_IN_PRESETS, u as IMAGE_BUILT_IN_PRESETS, v as AUDIO_BUILT_IN_PRESETS } from \"./core.js\";\nimport { isAbsolute, join, resolve } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { createJiti } from \"jiti\";\n//#region src/lib/server/config-loader.ts\n/**\n* Loads and resolves the host's `fundus.config.ts` through jiti, validates\n* the shape, resolves all paths to\n* absolute, and merges the built-in plugin preset defaults under the host's.\n*/\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction requiredString(config, key) {\n\tconst value = config[key];\n\tif (typeof value !== \"string\" || value.length === 0) throw new Error(`fundus.config: \"${key}\" must be a non-empty string.`);\n\treturn value;\n}\nfunction resolvePath(projectRoot, value) {\n\treturn isAbsolute(value) ? value : resolve(projectRoot, value);\n}\nfunction mergePresets(label, builtIn, pluginConfig, validatePreset) {\n\tconst merged = { ...builtIn };\n\tif (pluginConfig === void 0) return merged;\n\tif (!isRecord(pluginConfig)) throw new Error(`fundus.config: \"plugins.${label}\" must be an object.`);\n\tif (pluginConfig.presets === void 0) return merged;\n\tif (!isRecord(pluginConfig.presets)) throw new Error(`fundus.config: \"plugins.${label}.presets\" must be an object.`);\n\tfor (const [name, preset] of Object.entries(pluginConfig.presets)) merged[name] = validatePreset(name, preset);\n\treturn merged;\n}\n/** `plugins.video.ffmpegPath` / `ffprobePath`: optional system-binary overrides. */\nfunction binaryPathOverride(projectRoot, pluginConfig, key) {\n\tif (!isRecord(pluginConfig) || pluginConfig[key] === void 0) return null;\n\tconst value = pluginConfig[key];\n\tif (typeof value !== \"string\" || value.length === 0) throw new Error(`fundus.config: \"plugins.video.${key}\" must be a non-empty string.`);\n\treturn resolvePath(projectRoot, value);\n}\n/** Pure resolution step (testable without a config file on disk). */\nfunction resolveConfig(projectRoot, value) {\n\tif (!isRecord(value)) throw new Error(\"fundus.config must default-export a configuration object.\");\n\tconst proxyBasePath = requiredString(value, \"proxyBasePath\");\n\tif (!proxyBasePath.endsWith(\"/\")) throw new Error(\"fundus.config: \\\"proxyBasePath\\\" must end with \\\"/\\\".\");\n\tconst plugins = value.plugins === void 0 ? {} : value.plugins;\n\tif (!isRecord(plugins)) throw new Error(\"fundus.config: \\\"plugins\\\" must be an object.\");\n\treturn {\n\t\trawDir: resolvePath(projectRoot, requiredString(value, \"rawDir\")),\n\t\tproxyDir: resolvePath(projectRoot, requiredString(value, \"proxyDir\")),\n\t\tlibrary: resolvePath(projectRoot, requiredString(value, \"library\")),\n\t\tmanifestsDir: resolvePath(projectRoot, requiredString(value, \"manifestsDir\")),\n\t\tproxyBasePath,\n\t\tplugins: {\n\t\t\timage: { presets: mergePresets(\"image\", IMAGE_BUILT_IN_PRESETS, plugins.image, validateImagePreset) },\n\t\t\tslice: { presets: mergePresets(\"slice\", SLICE_BUILT_IN_PRESETS, plugins.slice, validateImagePreset) },\n\t\t\tvideo: {\n\t\t\t\tpresets: mergePresets(\"video\", VIDEO_BUILT_IN_PRESETS, plugins.video, validateVideoPreset),\n\t\t\t\tffmpegPath: binaryPathOverride(projectRoot, plugins.video, \"ffmpegPath\"),\n\t\t\t\tffprobePath: binaryPathOverride(projectRoot, plugins.video, \"ffprobePath\")\n\t\t\t},\n\t\t\taudio: { presets: mergePresets(\"audio\", AUDIO_BUILT_IN_PRESETS, plugins.audio, validateAudioPreset) }\n\t\t}\n\t};\n}\n/** Load `fundus.config.ts` from the host project root. */\nasync function loadConfig(projectRoot) {\n\tconst root = resolve(projectRoot);\n\tconst configPath = resolve(root, \"fundus.config.ts\");\n\tif (!existsSync(configPath)) throw new Error(`No fundus.config.ts found in ${root}.`);\n\tlet module;\n\ttry {\n\t\tmodule = await createJiti(import.meta.url, { interopDefault: false }).import(configPath);\n\t} catch (cause) {\n\t\tthrow new Error(`Cannot load fundus.config.ts: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t}\n\treturn resolveConfig(root, isRecord(module) && \"default\" in module ? module.default : module);\n}\n//#endregion\n//#region src/lib/server/operations.ts\n/**\n* The one operations layer: builds the state payload and runs\n* every mutation through the autosave chain — write library → process affected\n* assets → regenerate codegen → return fresh state. Both the REST server\n* and the CLI consume this class, so every\n* operation has exactly one implementation and there is no other save path.\n*/\n/**\n* The CLI's `--parameters` merge semantics (M7): a SHALLOW merge at the top\n* level onto the current parameters — a nested object value replaces the whole\n* current object under that key, a top-level `null` clears an optional field,\n* and an asset reference is set with the normal `{\"$asset\": \"<id>\"}` marker.\n* The merged result still passes the owning plugin's full validation.\n*/\nfunction mergeParameterPatch(currentParameters, patch) {\n\tif (typeof patch !== \"object\" || patch === null || Array.isArray(patch)) throw new Error(\"The parameter patch must be a JSON object, e.g. {\\\"preset\\\": \\\"default\\\"}.\");\n\tconst merged = typeof currentParameters === \"object\" && currentParameters !== null && !Array.isArray(currentParameters) ? { ...currentParameters } : {};\n\tfor (const [key, value] of Object.entries(patch)) if (value === null) delete merged[key];\n\telse merged[key] = value;\n\treturn merged;\n}\nvar FundusOperations = class {\n\t#config;\n\t#registry;\n\t#store;\n\tconstructor(config, registry = serverPluginsByType) {\n\t\tthis.#config = config;\n\t\tthis.#registry = registry;\n\t\tthis.#store = new LibraryStore(config, registry);\n\t}\n\tget config() {\n\t\treturn this.#config;\n\t}\n\tget store() {\n\t\treturn this.#store;\n\t}\n\t/** Read-only state snapshot (no processing). */\n\tasync state() {\n\t\treturn this.#buildState(await this.#store.read(), []);\n\t}\n\t/**\n\t* Ingest an upload: store the raw file + record, then let the owning\n\t* plugin's optional `seedIngestParameters` derive better starting\n\t* parameters from the stored raw file (slices: insets from the image\n\t* dimensions, pixel ratio from the file name — the schema default can't\n\t* know either). The CLI additionally applies a parameter patch and/or an\n\t* explicit membership set in the same operation; a failing application\n\t* rolls the whole ingest back, so a failed ingest leaves nothing behind.\n\t*/\n\tasync ingest(options) {\n\t\tlet library = await this.#store.ingest(options);\n\t\ttry {\n\t\t\tconst plugin = serverPluginForType(options.type, this.#registry);\n\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\tconst record = library.assets[options.id];\n\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\trawPath: join(this.#config.rawDir, record.raw),\n\t\t\t\t\trawFileName: rawFileNameOfPath(record.raw),\n\t\t\t\t\tparameters: plugin.descriptor.validateParameters(record.parameters),\n\t\t\t\t\tconfig: this.#config\n\t\t\t\t});\n\t\t\t\tif (seeded !== void 0) library = await this.#store.updateParameters(options.id, seeded);\n\t\t\t}\n\t\t\tif (options.parametersPatch !== void 0 || options.manifests !== void 0) library = await this.#applyAssetChanges(library, options.id, {\n\t\t\t\tparametersPatch: options.parametersPatch,\n\t\t\t\tmanifests: options.manifests\n\t\t\t});\n\t\t} catch (cause) {\n\t\t\tawait this.#store.deleteAsset(options.id);\n\t\t\tthrow cause;\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\t/** Apply a PATCH body: parameters and/or manifests and/or a rename — in that order. */\n\tasync patchAsset(id, body) {\n\t\tlet library = await this.#store.read();\n\t\tthis.#requireAsset(library, id);\n\t\tif (body.parameters !== void 0) library = await this.#store.updateParameters(id, body.parameters);\n\t\tif (body.manifests !== void 0) {\n\t\t\tif (!Array.isArray(body.manifests) || body.manifests.some((name) => typeof name !== \"string\")) throw new Error(\"\\\"manifests\\\" must be an array of manifest names.\");\n\t\t\tlibrary = await this.#store.setManifests(id, body.manifests);\n\t\t}\n\t\tif (body.renameTo !== void 0) {\n\t\t\tif (typeof body.renameTo !== \"string\") throw new Error(\"\\\"renameTo\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.renameAsset(id, body.renameTo);\n\t\t}\n\t\tif (body.folder !== void 0) {\n\t\t\tif (typeof body.folder !== \"string\") throw new Error(\"\\\"folder\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.moveAsset(body.renameTo ?? id, body.folder);\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\tasync moveAsset(id, folder) {\n\t\treturn this.#afterMutation(await this.#store.moveAsset(id, folder));\n\t}\n\t/** Move a selected asset set as one editor action and roll back on any failure. */\n\tasync moveAssets(assetIds, folder) {\n\t\tconst uniqueIds = [...new Set(assetIds)];\n\t\tif (uniqueIds.length === 0) throw new Error(\"At least one asset id is required.\");\n\t\tconst originalFolders = /* @__PURE__ */ new Map();\n\t\tconst library = await this.#store.read();\n\t\tfor (const id of uniqueIds) {\n\t\t\tthis.#requireAsset(library, id);\n\t\t\toriginalFolders.set(id, folderOfRawPath(library.assets[id].raw));\n\t\t}\n\t\tconst movedIds = [];\n\t\ttry {\n\t\t\tlet updated = library;\n\t\t\tfor (const id of uniqueIds) {\n\t\t\t\tif (originalFolders.get(id) === folder) continue;\n\t\t\t\tupdated = await this.#store.moveAsset(id, folder);\n\t\t\t\tmovedIds.push(id);\n\t\t\t}\n\t\t\treturn this.#afterMutation(updated);\n\t\t} catch (cause) {\n\t\t\tfor (const id of movedIds.reverse()) await this.#store.moveAsset(id, originalFolders.get(id) ?? \"\");\n\t\t\tthrow cause;\n\t\t}\n\t}\n\tasync createFolder(path) {\n\t\treturn this.#afterMutation(await this.#store.createFolder(path));\n\t}\n\tasync renameFolder(path, newName) {\n\t\treturn this.#afterMutation(await this.#store.renameFolder(path, newName));\n\t}\n\tasync moveFolder(path, parent) {\n\t\treturn this.#afterMutation(await this.#store.moveFolder(path, parent));\n\t}\n\tasync deleteFolder(path) {\n\t\tconst result = await this.#store.deleteFolder(path);\n\t\treturn this.#afterMutation(result.library);\n\t}\n\t/**\n\t* CLI-facing asset update (M7): shallow-merge a parameter patch and/or\n\t* replace the explicit manifest membership — validating the *result* before\n\t* anything is persisted, so a change that would leave the library invalid\n\t* (dangling or cyclic reference, unknown manifest, invalid parameters) is\n\t* rejected with nothing written. The REST `patchAsset` keeps the editor's\n\t* lenient replace semantics.\n\t*/\n\tasync setAsset(id, changes) {\n\t\tconst library = await this.#store.read();\n\t\tthis.#requireAsset(library, id);\n\t\treturn this.#afterMutation(await this.#applyAssetChanges(library, id, changes));\n\t}\n\t/**\n\t* CLI-facing rename (M7): rejects a rename that would break references —\n\t* a referrer keeps pointing at the old id, so renaming a referenced asset\n\t* introduces dangling-reference errors. Update the referrers first.\n\t*/\n\tasync renameAsset(id, newId) {\n\t\tconst library = await this.#store.read();\n\t\tthis.#requireAsset(library, id);\n\t\tif (newId !== id && !Object.hasOwn(library.assets, newId)) {\n\t\t\tconst candidate = structuredClone(library);\n\t\t\tcandidate.assets[newId] = candidate.assets[id];\n\t\t\tdelete candidate.assets[id];\n\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t}\n\t\treturn this.#afterMutation(await this.#store.renameAsset(id, newId));\n\t}\n\t/**\n\t* Delete an asset: the record, its raw file, and its proxies. With\n\t* `failOnIntroducedIssues` (the CLI), a delete that would break references\n\t* (the asset is a reference target) is rejected before anything —\n\t* including the raw file — is removed; the REST route stays lenient.\n\t*/\n\tasync deleteAsset(id, options) {\n\t\tif (options?.failOnIntroducedIssues) {\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#requireAsset(library, id);\n\t\t\tconst candidate = structuredClone(library);\n\t\t\tdelete candidate.assets[id];\n\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t}\n\t\treturn this.#afterMutation(await this.#store.deleteAsset(id));\n\t}\n\t/** Delete a selected asset set as one lenient editor mutation. */\n\tasync deleteAssets(assetIds) {\n\t\tconst uniqueIds = [...new Set(assetIds)];\n\t\tif (uniqueIds.length === 0) throw new Error(\"At least one asset id is required.\");\n\t\treturn this.#afterMutation(await this.#store.deleteAssets(uniqueIds));\n\t}\n\tasync createManifest(name) {\n\t\treturn this.#afterMutation(await this.#store.createManifest(name));\n\t}\n\tasync setManifestAppearance(name, appearance) {\n\t\treturn this.#afterMutation(await this.#store.setManifestAppearance(name, appearance));\n\t}\n\t/** Apply a PATCH body: appearance fields and/or a rename — in that order. */\n\tasync patchManifest(name, body) {\n\t\tlet library = await this.#store.setManifestAppearance(name, {\n\t\t\tcolor: body.color,\n\t\t\temoji: body.emoji\n\t\t});\n\t\tif (body.renameTo !== void 0) {\n\t\t\tif (typeof body.renameTo !== \"string\") throw new Error(\"\\\"renameTo\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.renameManifest(name, body.renameTo);\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\t/**\n\t* Rename a manifest: rewrites every asset's membership and replaces the\n\t* generated module (the old one is pruned as a stray). Host code importing\n\t* the module must be updated by hand — both the file name and the exported\n\t* const change with the manifest name.\n\t*/\n\tasync renameManifest(name, newName) {\n\t\treturn this.#afterMutation(await this.#store.renameManifest(name, newName));\n\t}\n\tasync deleteManifest(name) {\n\t\treturn this.#afterMutation(await this.#store.deleteManifest(name));\n\t}\n\t/** The autosave chain tail: process + regenerate, then report fresh state. */\n\tasync #afterMutation(library) {\n\t\tconst pipelineIssues = [];\n\t\tconst issues = await this.#store.validate(library);\n\t\tif (issues.length === 0) try {\n\t\t\tconst report = await processAssets(this.#config, library, this.#registry);\n\t\t\tawait generateManifestModules(this.#config, library, report.proxies, this.#registry);\n\t\t} catch (cause) {\n\t\t\tpipelineIssues.push({ message: `Processing failed: ${cause instanceof Error ? cause.message : String(cause)}` });\n\t\t}\n\t\treturn this.#buildState(library, pipelineIssues, issues);\n\t}\n\tasync #buildState(library, extraIssues, precomputedIssues) {\n\t\tconst issues = [...precomputedIssues ?? await this.#store.validate(library), ...extraIssues];\n\t\tconst referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));\n\t\tconst membershipByManifest = computeLibraryMembership(library, referencesByAsset);\n\t\tconst delivered = allDeliveredAssetIds(membershipByManifest);\n\t\tconst passiveManifestsByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) for (const passiveMember of membershipByManifest[manifestName].passiveMembers) {\n\t\t\tconst passiveManifests = passiveManifestsByAsset.get(passiveMember.assetId) ?? [];\n\t\t\tpassiveManifests.push({\n\t\t\t\tmanifest: manifestName,\n\t\t\t\tvia: passiveMember.via\n\t\t\t});\n\t\t\tpassiveManifestsByAsset.set(passiveMember.assetId, passiveManifests);\n\t\t}\n\t\tconst incomingByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const [referrerId, references] of Object.entries(referencesByAsset)) for (const reference of references) {\n\t\t\tconst incoming = incomingByAsset.get(reference.assetId) ?? [];\n\t\t\tincoming.push({\n\t\t\t\tfield: reference.field,\n\t\t\t\tassetId: referrerId\n\t\t\t});\n\t\t\tincomingByAsset.set(reference.assetId, incoming);\n\t\t}\n\t\tconst assets = [];\n\t\tfor (const assetId of Object.keys(library.assets).sort(compareCodeUnits)) {\n\t\t\tconst record = library.assets[assetId];\n\t\t\tconst warnings = [];\n\t\t\tfor (const issue of issues) if (issue.assetId === assetId) warnings.push(issue.message);\n\t\t\tif (record.manifests.length === 0 && !delivered.has(assetId)) warnings.push(\"In no manifest and not referenced by any delivered asset — nothing is processed or generated for it.\");\n\t\t\tlet proxy = null;\n\t\t\tif (delivered.has(assetId)) try {\n\t\t\t\tconst currentProxy = await readCurrentProxy(assetId, record, this.#config, this.#registry);\n\t\t\t\tif (currentProxy) proxy = {\n\t\t\t\t\turl: `/files/proxy/${encodeRelativePathForUrl(currentProxy.relativePath)}`,\n\t\t\t\t\tupToDate: true,\n\t\t\t\t\t...currentProxy\n\t\t\t\t};\n\t\t\t\telse warnings.push(\"Proxy is stale or missing — it will be (re)processed on the next save.\");\n\t\t\t} catch (cause) {\n\t\t\t\twarnings.push(cause instanceof Error ? cause.message : String(cause));\n\t\t\t}\n\t\t\tassets.push({\n\t\t\t\tid: assetId,\n\t\t\t\ttype: record.type,\n\t\t\t\traw: record.raw,\n\t\t\t\tfolder: folderOfRawPath(record.raw),\n\t\t\t\trawUrl: `/files/raw/${encodeRelativePathForUrl(record.raw)}`,\n\t\t\t\trawHash: record.rawHash,\n\t\t\t\tparameters: record.parameters,\n\t\t\t\tmanifests: record.manifests,\n\t\t\t\tpassiveManifests: passiveManifestsByAsset.get(assetId) ?? [],\n\t\t\t\tproxy,\n\t\t\t\twarnings,\n\t\t\t\treferences: {\n\t\t\t\t\toutgoing: referencesByAsset[assetId].map((reference) => ({\n\t\t\t\t\t\tfield: reference.field,\n\t\t\t\t\t\tassetId: reference.assetId\n\t\t\t\t\t})),\n\t\t\t\t\tincoming: incomingByAsset.get(assetId) ?? []\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst proxySizeByAssetId = new Map(assets.filter((asset) => asset.proxy).map((asset) => [asset.id, asset.proxy?.fileSize ?? 0]));\n\t\tconst manifestMemberships = {};\n\t\tconst manifestDeliveredBytes = {};\n\t\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) {\n\t\t\tconst membership = membershipByManifest[manifestName];\n\t\t\tmanifestMemberships[manifestName] = {\n\t\t\t\texplicitMemberIds: membership.explicitMemberIds,\n\t\t\t\tpassiveMembers: membership.passiveMembers\n\t\t\t};\n\t\t\tlet deliveredBytes = 0;\n\t\t\tfor (const deliveredAssetId of membership.deliveredAssetIds) deliveredBytes += proxySizeByAssetId.get(deliveredAssetId) ?? 0;\n\t\t\tmanifestDeliveredBytes[manifestName] = deliveredBytes;\n\t\t}\n\t\tconst presetNames = {};\n\t\tfor (const [type, plugin] of Object.entries(this.#registry)) presetNames[type] = Object.keys(plugin.presets(this.#config)).sort();\n\t\treturn {\n\t\t\tlibrary,\n\t\t\tassets,\n\t\t\tissues,\n\t\t\tpresetNames,\n\t\t\tmanifestMemberships,\n\t\t\tmanifestDeliveredBytes\n\t\t};\n\t}\n\t#requireAsset(library, id) {\n\t\tif (!Object.hasOwn(library.assets, id)) throw new Error(`Unknown asset \"${id}\".`);\n\t}\n\t/**\n\t* Apply a CLI asset change to the store, validating the resulting library\n\t* on an in-memory candidate first — nothing is persisted when the change\n\t* would introduce validation issues. Pre-existing issues never block an\n\t* unrelated mutation (only *introduced* issues are rejected).\n\t*/\n\tasync #applyAssetChanges(library, id, changes) {\n\t\tconst candidate = structuredClone(library);\n\t\tconst candidateRecord = candidate.assets[id];\n\t\tif (changes.parametersPatch !== void 0) candidateRecord.parameters = serverPluginForType(candidateRecord.type, this.#registry).descriptor.validateParameters(mergeParameterPatch(candidateRecord.parameters, changes.parametersPatch));\n\t\tif (changes.manifests !== void 0) candidateRecord.manifests = [...new Set(changes.manifests)].sort();\n\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\tlet updated = library;\n\t\tif (changes.parametersPatch !== void 0) updated = await this.#store.updateParameters(id, candidateRecord.parameters);\n\t\tif (changes.manifests !== void 0) updated = await this.#store.setManifests(id, changes.manifests);\n\t\treturn updated;\n\t}\n\t/** Reject a candidate library that has validation issues the current one lacks. */\n\tasync #assertNoIntroducedIssues(library, candidate) {\n\t\tconst existingIssueKeys = new Set((await this.#store.validate(library)).map((issue) => `${issue.assetId ?? \"\"}|${issue.message}`));\n\t\tconst introduced = (await this.#store.validate(candidate)).filter((issue) => !existingIssueKeys.has(`${issue.assetId ?? \"\"}|${issue.message}`));\n\t\tif (introduced.length > 0) {\n\t\t\tconst lines = introduced.map((issue) => ` - ${issue.assetId ? `[${issue.assetId}] ` : \"\"}${issue.message}`);\n\t\t\tthrow new Error(`Rejected — the change would leave the library invalid (nothing was written):\\n${lines.join(\"\\n\")}`);\n\t\t}\n\t}\n};\n//#endregion\n//#region src/lib/server/context.ts\nvar context;\nfunction initializeFundusContext() {\n\tcontext ??= createFundusContext();\n\treturn context;\n}\nfunction getFundusContext() {\n\treturn initializeFundusContext();\n}\nasync function createFundusContext() {\n\tconst projectRoot = process.env.FUNDUS_PROJECT_ROOT;\n\tif (!projectRoot || !isAbsolute(projectRoot)) throw new Error(\"FUNDUS_PROJECT_ROOT must be set to an absolute host project directory.\");\n\tconst config = await loadConfig(projectRoot);\n\treturn {\n\t\tconfig,\n\t\toperations: new FundusOperations(config)\n\t};\n}\n//#endregion\nexport { initializeFundusContext as n, getFundusContext as t };\n"],"names":[],"mappings":"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"}
|