@telepath-computer/television 0.1.2 → 0.1.3
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/dist/browser/assets/index-Ctq-tqkf.js +443 -0
- package/dist/browser/assets/index-W7D1rDld.css +1 -0
- package/dist/browser/index.html +2 -2
- package/dist/cli.cjs +7 -1
- package/dist/electron.cjs +7 -1
- package/package.json +1 -1
- package/dist/browser/assets/index-BmwVdck9.css +0 -1
- package/dist/browser/assets/index-DZhAP0Dt.js +0 -430
|
@@ -1,430 +0,0 @@
|
|
|
1
|
-
var ci=Object.defineProperty;var Tr=r=>{throw TypeError(r)};var hi=(r,t,e)=>t in r?ci(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var h=(r,t,e)=>hi(r,typeof t!="symbol"?t+"":t,e),At=(r,t,e)=>t.has(r)||Tr("Cannot "+e);var d=(r,t,e)=>(At(r,t,"read from private field"),e?e.call(r):t.get(r)),_=(r,t,e)=>t.has(r)?Tr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),T=(r,t,e,s)=>(At(r,t,"write to private field"),s?s.call(r,e):t.set(r,e),e),k=(r,t,e)=>(At(r,t,"access private method"),e);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function e(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function s(i){if(i.ep)return;i.ep=!0;const n=e(i);fetch(i.href,n)}})();const Pr=new WeakMap;function ui(r){return(typeof r=="object"||typeof r=="function")&&r!==null&&"then"in r&&typeof r.then=="function"}function ue(r){return typeof r=="string"?r:typeof r=="symbol"?r.description??r.toString():r.name||"(anonymous class)"}function Lr(){return new Error("register(Key, factory) requires a factory function. Wrap existing instances as () => instance.")}function di(){return new Error("register(Key, factory) does not accept async factories. Await setup before registering.")}class pi{constructor(){h(this,"entries",new Map);h(this,"constructionStack",[])}register(t,e){if(e===void 0){if(typeof t!="function")throw Lr();this.validateClassRegistration(t),this.storeFactory(t,()=>this.instantiateClass(t));return}if(typeof e!="function")throw Lr();if(e.constructor.name==="AsyncFunction")throw di();this.storeFactory(t,e)}has(t){var e;return((e=this.entries.get(t))==null?void 0:e.factory)!==void 0}resolve(t){return this.resolveAny(t)}storeFactory(t,e){const s=this.getOrCreateEntry(t);s.factory=e,s.instance=void 0,s.error=void 0}validateClassRegistration(t){const e=Pr.get(t);if(e){if(t.length!==e.length)throw new Error(`${ue(t)} cannot be registered with register(Class). @injectable(...) declared ${e.length} dependencies but constructor arity is ${t.length}. Use register(Key, () => value) instead.`);return}if(t.length!==0)throw new Error(`${ue(t)} cannot be registered with register(Class). Undecorated classes must have zero required constructor parameters. Use register(Key, () => value) instead.`)}instantiateClass(t){const e=Pr.get(t);if(!e)return new t;const s=e.map(i=>this.resolveAny(i));return new t(...s)}resolveAny(t){return this.getOrCreateEntry(t).proxy}getOrCreateEntry(t){let e=this.entries.get(t);return e||(e={key:t},e.proxy=this.createProxy(e),this.entries.set(t,e),e)}createProxy(t){return new Proxy({},{get:(e,s)=>{if(s==="then")return;const i=this.getInstance(t),n=Reflect.get(i,s,i);return typeof n=="function"?n.bind(i):n},set:(e,s,i)=>{const n=this.getInstance(t);return Reflect.set(n,s,i,n)},has:(e,s)=>{const i=this.getInstance(t);return s in i}})}getInstance(t){if(t.instance)return t.instance;if(t.error)throw t.error;if(!t.factory)throw new Error(`${ue(t.key)} was resolved but never registered`);const e=this.constructionStack.indexOf(t.key);if(e!==-1){const s=[...this.constructionStack.slice(e),t.key].map(i=>ue(i)).join(" -> ");throw new Error(`Circular dependency detected: ${s}`)}this.constructionStack.push(t.key);try{const s=t.factory();if(ui(s))throw new Error(`Factory for ${ue(t.key)} returned a Promise. Await setup before registering.`);if(typeof s!="object"||s===null)throw new Error(`Factory for ${ue(t.key)} returned a non-object value. Wrap primitives in an object.`);return t.instance=s,s}catch(s){throw t.error=s,s}finally{this.constructionStack.pop()}}}const I=new pi;function fi(r){return{all:r=r||new Map,on:function(t,e){var s=r.get(t);s?s.push(e):r.set(t,[e])},off:function(t,e){var s=r.get(t);s&&(e?s.splice(s.indexOf(e)>>>0,1):r.set(t,[]))},emit:function(t,e){var s=r.get(t);s&&s.slice().map(function(i){i(e)}),(s=r.get("*"))&&s.slice().map(function(i){i(t,e)})}}}let ar=class{constructor(){h(this,"emitter",fi());h(this,"on",(t,e)=>(this.emitter.on(t,e),{dispose:()=>this.emitter.off(t,e)}));h(this,"once",(t,e)=>{const s=i=>{e(i),this.emitter.off(t,s)};return this.emitter.on(t,s),{dispose:()=>this.emitter.off(t,s)}});h(this,"off",this.emitter.off)}emit(t,...[e]){this.emitter.emit(t,e)}};const us="0123456789ABCDEFGHJKMNPQRSTVWXYZ",at=32,gi=16,ds=10,Ir=0xffffffffffff;var ee;(function(r){r.Base32IncorrectEncoding="B32_ENC_INVALID",r.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",r.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",r.EncodeTimeNegative="ENC_TIME_NEG",r.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",r.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",r.PRNGDetectFailure="PRNG_DETECT",r.ULIDInvalid="ULID_INVALID",r.Unexpected="UNEXPECTED",r.UUIDInvalid="UUID_INVALID"})(ee||(ee={}));class Ae extends Error{constructor(t,e){super(`${e} (${t})`),this.name="ULIDError",this.code=t}}function ki(r){const t=Math.floor(r()*at)%at;return us.charAt(t)}function mi(r){const t=bi(),e=t&&(t.crypto||t.msCrypto)||null;if(typeof(e==null?void 0:e.getRandomValues)=="function")return()=>{const s=new Uint8Array(1);return e.getRandomValues(s),s[0]/256};if(typeof(e==null?void 0:e.randomBytes)=="function")return()=>e.randomBytes(1).readUInt8()/256;throw new Ae(ee.PRNGDetectFailure,"Failed to find a reliable PRNG")}function bi(){return yi()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function wi(r,t){let e="";for(;r>0;r--)e=ki(t)+e;return e}function vi(r,t=ds){if(isNaN(r))throw new Ae(ee.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>Ir)throw new Ae(ee.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${Ir}: ${r}`);if(r<0)throw new Ae(ee.EncodeTimeNegative,`Time must be positive: ${r}`);if(Number.isInteger(r)===!1)throw new Ae(ee.EncodeTimeValueMalformed,`Time must be an integer: ${r}`);let e,s="";for(let i=t;i>0;i--)e=r%at,s=us.charAt(e)+s,r=(r-e)/at;return s}function yi(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function Wr(r,t){const e=mi(),s=Date.now();return vi(s,ds)+wi(gi,e)}const we=2,ce=6,Si=1,xi=2,_i=3,Ai=[Si,we],$i=[xi,_i,ce];function ve(r){const t=Math.round(r);return Ai.includes(t)?t:we}function ps(r){const t=Math.round(r);return $i.includes(t)?t:ce}function Pt(r){return{type:"artifact",artifactID:r,cols:we,rows:ce}}function or(r){return{type:"artifact",artifactID:r.artifactID,cols:ve(r.cols??we),rows:ps(r.rows??ce)}}function de(r){const t=Array.isArray(r.layout)?r.layout.map(e=>or(e)):[];return{id:r.id,name:r.name,layout:t}}function $t(r){return r.layout.map(t=>t.artifactID)}class Ei extends ar{constructor(e){var i;super();h(this,"artifacts",new Map);h(this,"activeWorkspaceID",null);h(this,"scrollPosition",0);h(this,"activeWorkspaceData",null);h(this,"clientStore");h(this,"servers");h(this,"pendingCreateRollbacks",new Map);h(this,"pendingRemoveRollbacks",new Map);h(this,"pendingReorderRollbacks",new Map);h(this,"pendingWorkspaceCreates",new Map);h(this,"pendingWorkspaceDeletes",new Map);this.clientStore=e.clientStore,this.servers=e.servers;const s=this.clientStore.get();this.activeWorkspaceID=(s==null?void 0:s.lastWorkspaceID)??null,this.activeWorkspaceID&&(this.scrollPosition=((i=s==null?void 0:s.workspaces[this.activeWorkspaceID])==null?void 0:i.scrollPosition)??0)}get workspaces(){return[...this.servers.values()].flatMap(e=>[...e.workspaces.values()])}get activeWorkspace(){return this.activeWorkspaceData}get activeWorkspaceServerURL(){var e;return this.activeWorkspaceID?((e=this.findWorkspace(this.activeWorkspaceID))==null?void 0:e.serverURL)??null:null}get activeArtifacts(){return(this.activeWorkspaceData?$t(this.activeWorkspaceData):[]).map(e=>this.artifacts.get(e)).filter(e=>e!==void 0)}setActiveWorkspace(e){this.selectWorkspace(e)}setScrollPosition(e){const s=Math.max(0,e);this.scrollPosition!==s&&(this.scrollPosition=s,this.persistWorkspaceViewState(),this.emit("change"))}createArtifact(e){var o;const s=this.activeWorkspaceData;if(!s)return;const i=this.snapshotArtifactState(),n={id:Wr(),type:"markdown",title:e.title,content:e.content};s.layout.some(l=>l.artifactID===n.id)||s.layout.push(Pt(n.id)),this.artifacts.set(n.id,n),this.scrollPosition=Math.max(s.layout.length-1,0),this.persistWorkspaceViewState(),this.emit("change");const a=((o=this.findWorkspace(s.id))==null?void 0:o.server)??null;this.pendingCreateRollbacks.set(n.id,i),this.sendServerMessage(a,{type:"create-artifact",id:n.id,title:e.title,content:e.content,workspaceID:s.id})||(this.pendingCreateRollbacks.delete(n.id),this.restoreArtifactState(i),this.emit("change"))}removeArtifact(e){var a;const s=this.activeWorkspaceData;if(!s||!this.artifacts.has(e))return;const i=this.snapshotArtifactState();this.removeArtifactLocally(e),this.emit("change");const n=((a=this.findWorkspace(s.id))==null?void 0:a.server)??null;this.pendingRemoveRollbacks.set(e,i),this.sendServerMessage(n,{type:"remove-artifact",artifactID:e,workspaceID:s.id})||(this.pendingRemoveRollbacks.delete(e),this.restoreArtifactState(i),this.emit("change"))}reorderLayout(e){var c;const s=this.activeWorkspaceData;if(!s)return;const i=$t(s);if(e.length!==i.length||e.every((u,f)=>u===i[f]))return;const n=new Map(s.layout.map(u=>[u.artifactID,structuredClone(u)]));if(new Set(e).size!==e.length)return;const a=e.map(u=>n.get(u)).filter(u=>u!==void 0);if(a.length!==e.length)return;const o=this.snapshotArtifactState();s.layout=a,this.emit("change");const l=((c=this.findWorkspace(s.id))==null?void 0:c.server)??null;this.pendingReorderRollbacks.set(s.id,o),this.sendServerMessage(l,{type:"update-workspace",workspaceID:s.id,fields:{layout:s.layout.map(u=>structuredClone(u))}})||(this.pendingReorderRollbacks.delete(s.id),this.restoreArtifactState(o),this.emit("change"))}handleServerEvent(e,s){var i;switch(s.type){case"workspace-list":this.syncActiveWorkspaceSelection(e,s.type==="workspace-list");break;case"workspace-updated":this.syncActiveWorkspaceSelection(e,!1),Array.isArray(s.fields.layout)&&this.pendingReorderRollbacks.delete(s.workspaceID);break;case"workspace-removed":{this.syncActiveWorkspaceSelection(e,!1);const n=this.pendingWorkspaceDeletes.get(s.workspaceID);n&&(this.pendingWorkspaceDeletes.delete(s.workspaceID),n.resolve());break}case"workspace-created":if(this.pendingWorkspaceCreates.has(s.workspace.id)){const n=this.pendingWorkspaceCreates.get(s.workspace.id);this.pendingWorkspaceCreates.delete(s.workspace.id),this.selectWorkspace(s.workspace.id),n==null||n.resolve();return}this.syncActiveWorkspaceSelection(e,!1);break;case"workspace":this.applyWorkspaceSnapshot(s.workspace,s.artifacts);break;case"artifact-created":this.pendingCreateRollbacks.delete(s.artifact.id),this.applyArtifactCreated(s);break;case"artifact-updated":this.applyArtifactUpdated(s);break;case"artifact-removed":if(this.pendingRemoveRollbacks.delete(s.artifactID),((i=this.activeWorkspaceData)==null?void 0:i.id)!==s.workspaceID)return;this.removeArtifactLocally(s.artifactID)&&this.emit("change");break;case"error":this.handleServerError(s);break}}createWorkspace(e,s){const i=this.servers.get(e)??null,n=Wr(),a=Mr();return this.pendingWorkspaceCreates.set(n,a),this.sendServerMessage(i,{type:"create-workspace",id:n,name:s})||(this.pendingWorkspaceCreates.delete(n),a.reject(new Error(`Server unavailable: ${e}`))),a.promise}deleteWorkspace(){var a;const e=this.activeWorkspaceData;if(!e)return Promise.reject(new Error("No active workspace"));const s=this.pendingWorkspaceDeletes.get(e.id);if(s)return s.promise;const i=((a=this.findWorkspace(e.id))==null?void 0:a.server)??null,n=Mr();return this.pendingWorkspaceDeletes.set(e.id,n),this.sendServerMessage(i,{type:"delete-workspace",workspaceID:e.id})||(this.pendingWorkspaceDeletes.delete(e.id),n.reject(new Error(`Server unavailable: ${e.id}`))),n.promise}renameWorkspace(e){var n;const s=this.activeWorkspaceData;if(!s)return;const i=((n=this.findWorkspace(s.id))==null?void 0:n.server)??null;s.name=e,this.emit("change"),this.sendServerMessage(i,{type:"update-workspace",workspaceID:s.id,fields:{name:e}})}syncActiveWorkspaceSelection(e,s){const i=this.activeWorkspaceID?this.findWorkspace(this.activeWorkspaceID):null;if(!i){const n=this.pickNextWorkspace();if(!n){const a=this.activeWorkspaceID!==null||this.activeWorkspaceData!==null||this.artifacts.size>0;this.activeWorkspaceID=null,this.activeWorkspaceData=null,this.artifacts.clear(),this.scrollPosition=0,a&&this.emit("change");return}this.selectWorkspace(n.workspace.id);return}!this.activeWorkspaceData||this.activeWorkspaceData.id!==i.workspace.id?this.activeWorkspaceData=structuredClone(de(i.workspace)):(this.activeWorkspaceData.name=i.workspace.name,this.activeWorkspaceData.layout=i.workspace.layout.map(n=>structuredClone(n))),s&&i.serverURL===e&&this.requestWorkspace(i.serverURL,i.workspace.id)}selectWorkspace(e){const s=this.findWorkspace(e);s&&(this.activeWorkspaceID=e,this.activeWorkspaceData=structuredClone(de(s.workspace)),this.artifacts.clear(),this.restoreWorkspaceViewState(),this.persistActiveWorkspace(),this.requestWorkspace(s.serverURL,e),this.emit("change"))}requestWorkspace(e,s){const i=this.servers.get(e);this.sendServerMessage(i??null,{type:"get-workspace",workspaceID:s})}applyWorkspaceSnapshot(e,s){if(e.id===this.activeWorkspaceID){this.activeWorkspaceData=structuredClone(de(e)),this.artifacts.clear();for(const i of s)this.artifacts.set(i.id,structuredClone(i));this.restoreWorkspaceViewState(),this.emit("change")}}applyArtifactCreated(e){var s;((s=this.activeWorkspaceData)==null?void 0:s.id)===e.workspaceID&&(this.activeWorkspaceData.layout.some(i=>i.artifactID===e.artifact.id)||this.activeWorkspaceData.layout.push(Pt(e.artifact.id)),this.artifacts.set(e.artifact.id,e.artifact),this.emit("change"))}applyArtifactUpdated(e){const s=this.artifacts.get(e.artifactID);s&&(Object.assign(s,e.fields),this.emit("change"))}removeArtifactLocally(e){if(!this.activeWorkspaceData)return!1;const s=this.artifacts.delete(e),i=this.activeWorkspaceData.layout.length;return this.activeWorkspaceData.layout=this.activeWorkspaceData.layout.filter(n=>n.artifactID!==e),!(!s&&i===this.activeWorkspaceData.layout.length)}snapshotArtifactState(){return{activeWorkspaceData:this.activeWorkspaceData?structuredClone(this.activeWorkspaceData):null,scrollPosition:this.scrollPosition,artifacts:new Map([...this.artifacts.entries()].map(([e,s])=>[e,structuredClone(s)]))}}restoreArtifactState(e){this.activeWorkspaceData=e.activeWorkspaceData?structuredClone(e.activeWorkspaceData):null,this.scrollPosition=e.scrollPosition,this.artifacts.clear();for(const[s,i]of e.artifacts.entries())this.artifacts.set(s,structuredClone(i));this.persistWorkspaceViewState()}handleServerError(e){const s=e.request;if(s){if(s.type==="create-artifact"){const i=this.pendingCreateRollbacks.get(s.id);if(!i)return;this.pendingCreateRollbacks.delete(s.id),this.restoreArtifactState(i),this.emit("change");return}if(s.type==="create-workspace"){const i=this.pendingWorkspaceCreates.get(s.id);if(!i)return;this.pendingWorkspaceCreates.delete(s.id),i.reject(new Error(e.message));return}if(s.type==="delete-workspace"){const i=this.pendingWorkspaceDeletes.get(s.workspaceID);if(!i)return;this.pendingWorkspaceDeletes.delete(s.workspaceID),i.reject(new Error(e.message));return}if(s.type==="update-workspace"&&Array.isArray(s.fields.layout)){const i=this.pendingReorderRollbacks.get(s.workspaceID);if(!i)return;this.pendingReorderRollbacks.delete(s.workspaceID),this.restoreArtifactState(i),this.emit("change");return}if(s.type==="remove-artifact"){const i=this.pendingRemoveRollbacks.get(s.artifactID);if(!i)return;this.pendingRemoveRollbacks.delete(s.artifactID),this.restoreArtifactState(i),this.emit("change")}}}restoreWorkspaceViewState(){var i,n;if(!this.activeWorkspaceID){this.scrollPosition=0;return}const e=((n=(i=this.clientStore.get())==null?void 0:i.workspaces[this.activeWorkspaceID])==null?void 0:n.scrollPosition)??0,s=this.activeWorkspaceData?$t(this.activeWorkspaceData):[];this.scrollPosition=Math.max(0,Math.min(e,Math.max(s.length-1,0))),this.persistWorkspaceViewState()}persistActiveWorkspace(){this.clientStore.update(e=>{e.lastWorkspaceID=this.activeWorkspaceID})}persistWorkspaceViewState(){this.activeWorkspaceID&&this.clientStore.update(e=>{var s,i;(s=e.workspaces)[i=this.activeWorkspaceID]??(s[i]={scrollPosition:0}),e.workspaces[this.activeWorkspaceID].scrollPosition=this.scrollPosition})}findWorkspace(e){for(const[s,i]of this.servers){const n=i.workspaces.get(e);if(n)return{serverURL:s,server:i,workspace:n}}return null}pickNextWorkspace(){var s;const e=(s=this.clientStore.get())==null?void 0:s.lastWorkspaceID;if(e){const i=this.findWorkspace(e);if(i)return i}for(const[i,n]of this.servers){const a=n.workspaces.values().next().value;if(a)return{serverURL:i,server:n,workspace:a}}return null}sendServerMessage(e,s){return!(e!=null&&e.socket)||e.socket.readyState!==1?!1:(e.socket.send(JSON.stringify(s)),!0)}}function Mr(){let r,t;return{promise:new Promise((s,i)=>{r=s,t=i}),resolve:r,reject:t}}var fs=Symbol.for("immer-nothing"),zr=Symbol.for("immer-draftable"),P=Symbol.for("immer-state");function O(r,...t){throw new Error(`[Immer] minified error nr: ${r}. Full error at: https://bit.ly/3cXEKWf`)}var Te=Object.getPrototypeOf;function ge(r){return!!r&&!!r[P]}function ie(r){var t;return r?gs(r)||Array.isArray(r)||!!r[zr]||!!((t=r.constructor)!=null&&t[zr])||je(r)||bt(r):!1}var Ri=Object.prototype.constructor.toString(),Or=new WeakMap;function gs(r){if(!r||typeof r!="object")return!1;const t=Object.getPrototypeOf(r);if(t===null||t===Object.prototype)return!0;const e=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(e===Object)return!0;if(typeof e!="function")return!1;let s=Or.get(e);return s===void 0&&(s=Function.toString.call(e),Or.set(e,s)),s===Ri}function ot(r,t,e=!0){mt(r)===0?(e?Reflect.ownKeys(r):Object.keys(r)).forEach(i=>{t(i,r[i],r)}):r.forEach((s,i)=>t(i,s,r))}function mt(r){const t=r[P];return t?t.type_:Array.isArray(r)?1:je(r)?2:bt(r)?3:0}function Lt(r,t){return mt(r)===2?r.has(t):Object.prototype.hasOwnProperty.call(r,t)}function ks(r,t,e){const s=mt(r);s===2?r.set(t,e):s===3?r.add(e):r[t]=e}function Di(r,t){return r===t?r!==0||1/r===1/t:r!==r&&t!==t}function je(r){return r instanceof Map}function bt(r){return r instanceof Set}function j(r){return r.copy_||r.base_}function It(r,t){if(je(r))return new Map(r);if(bt(r))return new Set(r);if(Array.isArray(r))return Array.prototype.slice.call(r);const e=gs(r);if(t===!0||t==="class_only"&&!e){const s=Object.getOwnPropertyDescriptors(r);delete s[P];let i=Reflect.ownKeys(s);for(let n=0;n<i.length;n++){const a=i[n],o=s[a];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(s[a]={configurable:!0,writable:!0,enumerable:o.enumerable,value:r[a]})}return Object.create(Te(r),s)}else{const s=Te(r);if(s!==null&&e)return{...r};const i=Object.create(s);return Object.assign(i,r)}}function lr(r,t=!1){return wt(r)||ge(r)||!ie(r)||(mt(r)>1&&Object.defineProperties(r,{set:Qe,add:Qe,clear:Qe,delete:Qe}),Object.freeze(r),t&&Object.values(r).forEach(e=>lr(e,!0))),r}function Ci(){O(2)}var Qe={value:Ci};function wt(r){return r===null||typeof r!="object"?!0:Object.isFrozen(r)}var Ti={};function ne(r){const t=Ti[r];return t||O(0,r),t}var Pe;function ms(){return Pe}function Pi(r,t){return{drafts_:[],parent_:r,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Nr(r,t){t&&(ne("Patches"),r.patches_=[],r.inversePatches_=[],r.patchListener_=t)}function Wt(r){Mt(r),r.drafts_.forEach(Li),r.drafts_=null}function Mt(r){r===Pe&&(Pe=r.parent_)}function Hr(r){return Pe=Pi(Pe,r)}function Li(r){const t=r[P];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Fr(r,t){t.unfinalizedDrafts_=t.drafts_.length;const e=t.drafts_[0];return r!==void 0&&r!==e?(e[P].modified_&&(Wt(t),O(4)),ie(r)&&(r=lt(t,r),t.parent_||ct(t,r)),t.patches_&&ne("Patches").generateReplacementPatches_(e[P].base_,r,t.patches_,t.inversePatches_)):r=lt(t,e,[]),Wt(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),r!==fs?r:void 0}function lt(r,t,e){if(wt(t))return t;const s=r.immer_.shouldUseStrictIteration(),i=t[P];if(!i)return ot(t,(n,a)=>Ur(r,i,t,n,a,e),s),t;if(i.scope_!==r)return t;if(!i.modified_)return ct(r,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const n=i.copy_;let a=n,o=!1;i.type_===3&&(a=new Set(n),n.clear(),o=!0),ot(a,(l,c)=>Ur(r,i,n,l,c,e,o),s),ct(r,n,!1),e&&r.patches_&&ne("Patches").generatePatches_(i,e,r.patches_,r.inversePatches_)}return i.copy_}function Ur(r,t,e,s,i,n,a){if(i==null||typeof i!="object"&&!a)return;const o=wt(i);if(!(o&&!a)){if(ge(i)){const l=n&&t&&t.type_!==3&&!Lt(t.assigned_,s)?n.concat(s):void 0,c=lt(r,i,l);if(ks(e,s,c),ge(c))r.canAutoFreeze_=!1;else return}else a&&e.add(i);if(ie(i)&&!o){if(!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||t&&t.base_&&t.base_[s]===i&&o)return;lt(r,i),(!t||!t.scope_.parent_)&&typeof s!="symbol"&&(je(e)?e.has(s):Object.prototype.propertyIsEnumerable.call(e,s))&&ct(r,i)}}}function ct(r,t,e=!1){!r.parent_&&r.immer_.autoFreeze_&&r.canAutoFreeze_&&lr(t,e)}function Ii(r,t){const e=Array.isArray(r),s={type_:e?1:0,scope_:t?t.scope_:ms(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:r,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=s,n=cr;e&&(i=[s],n=Le);const{revoke:a,proxy:o}=Proxy.revocable(i,n);return s.draft_=o,s.revoke_=a,o}var cr={get(r,t){if(t===P)return r;const e=j(r);if(!Lt(e,t))return Wi(r,e,t);const s=e[t];return r.finalized_||!ie(s)?s:s===Et(r.base_,t)?(Rt(r),r.copy_[t]=Ot(s,r)):s},has(r,t){return t in j(r)},ownKeys(r){return Reflect.ownKeys(j(r))},set(r,t,e){const s=bs(j(r),t);if(s!=null&&s.set)return s.set.call(r.draft_,e),!0;if(!r.modified_){const i=Et(j(r),t),n=i==null?void 0:i[P];if(n&&n.base_===e)return r.copy_[t]=e,r.assigned_[t]=!1,!0;if(Di(e,i)&&(e!==void 0||Lt(r.base_,t)))return!0;Rt(r),zt(r)}return r.copy_[t]===e&&(e!==void 0||t in r.copy_)||Number.isNaN(e)&&Number.isNaN(r.copy_[t])||(r.copy_[t]=e,r.assigned_[t]=!0),!0},deleteProperty(r,t){return Et(r.base_,t)!==void 0||t in r.base_?(r.assigned_[t]=!1,Rt(r),zt(r)):delete r.assigned_[t],r.copy_&&delete r.copy_[t],!0},getOwnPropertyDescriptor(r,t){const e=j(r),s=Reflect.getOwnPropertyDescriptor(e,t);return s&&{writable:!0,configurable:r.type_!==1||t!=="length",enumerable:s.enumerable,value:e[t]}},defineProperty(){O(11)},getPrototypeOf(r){return Te(r.base_)},setPrototypeOf(){O(12)}},Le={};ot(cr,(r,t)=>{Le[r]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});Le.deleteProperty=function(r,t){return Le.set.call(this,r,t,void 0)};Le.set=function(r,t,e){return cr.set.call(this,r[0],t,e,r[0])};function Et(r,t){const e=r[P];return(e?j(e):r)[t]}function Wi(r,t,e){var i;const s=bs(t,e);return s?"value"in s?s.value:(i=s.get)==null?void 0:i.call(r.draft_):void 0}function bs(r,t){if(!(t in r))return;let e=Te(r);for(;e;){const s=Object.getOwnPropertyDescriptor(e,t);if(s)return s;e=Te(e)}}function zt(r){r.modified_||(r.modified_=!0,r.parent_&&zt(r.parent_))}function Rt(r){r.copy_||(r.copy_=It(r.base_,r.scope_.immer_.useStrictShallowCopy_))}var Mi=class{constructor(r){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,e,s)=>{if(typeof t=="function"&&typeof e!="function"){const n=e;e=t;const a=this;return function(l=n,...c){return a.produce(l,u=>e.call(this,u,...c))}}typeof e!="function"&&O(6),s!==void 0&&typeof s!="function"&&O(7);let i;if(ie(t)){const n=Hr(this),a=Ot(t,void 0);let o=!0;try{i=e(a),o=!1}finally{o?Wt(n):Mt(n)}return Nr(n,s),Fr(i,n)}else if(!t||typeof t!="object"){if(i=e(t),i===void 0&&(i=t),i===fs&&(i=void 0),this.autoFreeze_&&lr(i,!0),s){const n=[],a=[];ne("Patches").generateReplacementPatches_(t,i,n,a),s(n,a)}return i}else O(1,t)},this.produceWithPatches=(t,e)=>{if(typeof t=="function")return(a,...o)=>this.produceWithPatches(a,l=>t(l,...o));let s,i;return[this.produce(t,e,(a,o)=>{s=a,i=o}),s,i]},typeof(r==null?void 0:r.autoFreeze)=="boolean"&&this.setAutoFreeze(r.autoFreeze),typeof(r==null?void 0:r.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(r.useStrictShallowCopy),typeof(r==null?void 0:r.useStrictIteration)=="boolean"&&this.setUseStrictIteration(r.useStrictIteration)}createDraft(r){ie(r)||O(8),ge(r)&&(r=zi(r));const t=Hr(this),e=Ot(r,void 0);return e[P].isManual_=!0,Mt(t),e}finishDraft(r,t){const e=r&&r[P];(!e||!e.isManual_)&&O(9);const{scope_:s}=e;return Nr(s,t),Fr(void 0,s)}setAutoFreeze(r){this.autoFreeze_=r}setUseStrictShallowCopy(r){this.useStrictShallowCopy_=r}setUseStrictIteration(r){this.useStrictIteration_=r}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(r,t){let e;for(e=t.length-1;e>=0;e--){const i=t[e];if(i.path.length===0&&i.op==="replace"){r=i.value;break}}e>-1&&(t=t.slice(e+1));const s=ne("Patches").applyPatches_;return ge(r)?s(r,t):this.produce(r,i=>s(i,t))}};function Ot(r,t){const e=je(r)?ne("MapSet").proxyMap_(r,t):bt(r)?ne("MapSet").proxySet_(r,t):Ii(r,t);return(t?t.scope_:ms()).drafts_.push(e),e}function zi(r){return ge(r)||O(10,r),ws(r)}function ws(r){if(!ie(r)||wt(r))return r;const t=r[P];let e,s=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,e=It(r,t.scope_.immer_.useStrictShallowCopy_),s=t.scope_.immer_.shouldUseStrictIteration()}else e=It(r,!0);return ot(e,(i,n)=>{ks(e,i,ws(n))},s),t&&(t.finalized_=!1),e}var Oi=new Mi,Ni=Oi.produce,Hi=Object.defineProperty,Fi=(r,t,e)=>t in r?Hi(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Je=(r,t,e)=>Fi(r,typeof t!="symbol"?t+"":t,e);function Ui(r){return{all:r=r||new Map,on:function(t,e){var s=r.get(t);s?s.push(e):r.set(t,[e])},off:function(t,e){var s=r.get(t);s&&(e?s.splice(s.indexOf(e)>>>0,1):r.set(t,[]))},emit:function(t,e){var s=r.get(t);s&&s.slice().map(function(i){i(e)}),(s=r.get("*"))&&s.slice().map(function(i){i(t,e)})}}}var qi=class{constructor(){Je(this,"emitter",Ui()),Je(this,"on",(r,t)=>(this.emitter.on(r,t),{dispose:()=>this.emitter.off(r,t)})),Je(this,"once",(r,t)=>{const e=s=>{t(s),this.emitter.off(r,e)};return this.emitter.on(r,e),{dispose:()=>this.emitter.off(r,e)}}),Je(this,"off",this.emitter.off)}emit(r,...[t]){this.emitter.emit(r,t)}},Bi="store-",Xi=class extends qi{emitChange(r){this.emit("change",{state:r})}},Gi=class{constructor(r,t,e){this.emitter=new Xi,this.id=r,this.initValue=t,this.key=`${Bi}${r}`,this.storage=(e==null?void 0:e.storage)==="session"?sessionStorage:localStorage,this.get()===void 0&&this.storage.setItem(this.key,JSON.stringify(t))}get(){const r=this.storage.getItem(this.key);return r===null?void 0:JSON.parse(r)}update(r){const t=this.get()??{},e=Ni(t,r);this.storage.setItem(this.key,JSON.stringify(e)),this.emitter.emitChange(e)}reset(){this.storage.setItem(this.key,JSON.stringify(this.initValue)),this.emitter.emitChange(this.initValue)}on(r,t){return this.emitter.on(r,({state:e})=>t(e))}subscribe(r){const t=this.on("change",r),e=this.get();return e!==void 0&&r(e),t}};const Vi="Local";function q(r){return new URL(r).origin}function ji(r){return{servers:[{url:q(r),name:Vi}],lastWorkspaceID:null,workspaces:{}}}function Zi(r,t){return new Gi(r,ji(t))}const Yi=4401,qr=1e3,Ki=3e4,Qi=2;class vs extends ar{constructor(e){super();h(this,"url");h(this,"name");h(this,"token");h(this,"servers");h(this,"createSocket");h(this,"reconnectDelay",qr);h(this,"reconnectTimer",null);h(this,"closed",!1);this.url=q(e.url),this.name=e.name,this.token=e.token??null,this.servers=e.servers,this.createSocket=e.createSocket??(s=>new WebSocket(s))}connect(){var i;this.closed=!1,this.clearReconnectTimer();const e=this.createSocket(Ji(this.url,this.token)),s={url:this.url,name:this.name,socket:e,workspaces:((i=this.servers.get(this.url))==null?void 0:i.workspaces)??new Map};this.servers.set(this.url,s),this.reconnectDelay=qr,this.emit("change"),e.addEventListener("message",n=>{const a=rn(tn(n));this.applyServerMessage(s,a),this.emit("serverEvent",{serverURL:s.url,event:a}),this.emit("change")}),e.addEventListener("close",n=>{if(this.servers.get(s.url)!==s||(s.socket=null,this.emit("change"),this.closed))return;if(en(n)===Yi){this.closed=!0,this.emit("auth-failed");return}const a=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},a),this.reconnectDelay=Math.min(a*Qi,Ki)})}disconnect(){var s;this.closed=!0,this.clearReconnectTimer();const e=this.servers.get(this.url);e&&(this.servers.delete(this.url),(s=e.socket)==null||s.close(),this.emit("change"))}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}applyServerMessage(e,s){switch(s.type){case"workspace-list":e.workspaces=new Map(s.workspaces.map(i=>[i.id,structuredClone(i)]));break;case"workspace-created":e.workspaces.set(s.workspace.id,structuredClone(s.workspace));break;case"workspace-updated":{const i=e.workspaces.get(s.workspaceID);i&&(typeof s.fields.name=="string"&&(i.name=s.fields.name),Array.isArray(s.fields.layout)&&(i.layout=s.fields.layout.map(n=>or(n))));break}case"workspace-removed":e.workspaces.delete(s.workspaceID);break;case"artifact-created":{const i=e.workspaces.get(s.workspaceID);i&&!i.layout.some(n=>n.artifactID===s.artifact.id)&&i.layout.push(Pt(s.artifact.id));break}case"artifact-removed":{const i=e.workspaces.get(s.workspaceID);i&&(i.layout=i.layout.filter(n=>n.artifactID!==s.artifactID));break}}}}function Ji(r,t){const e=new URL(r);return e.protocol=e.protocol==="https:"?"wss:":"ws:",e.pathname="/ws",e.search="",t&&e.searchParams.set("token",t),e.hash="",e.toString()}function en(r){return typeof r=="object"&&r!==null&&"code"in r&&typeof r.code=="number"?r.code:null}function tn(r){const t=typeof r=="string"?r:typeof r=="object"&&r!==null&&"data"in r&&typeof r.data=="string"?r.data:"";return JSON.parse(t)}function rn(r){switch(r.type){case"workspace-list":return{...r,workspaces:r.workspaces.map(t=>de(t))};case"workspace-created":return{...r,workspace:de(r.workspace)};case"workspace":return{...r,workspace:de(r.workspace)};case"workspace-updated":return{...r,fields:{...r.fields,...Array.isArray(r.fields.layout)?{layout:r.fields.layout.map(t=>or(t))}:{}}};default:return r}}class sn extends ar{constructor(e){super();h(this,"localServerURL");h(this,"clientStore");h(this,"servers");h(this,"workspaceService");h(this,"createSocket");h(this,"connections",new Map);this.clientStore=e.clientStore,this.servers=e.servers,this.workspaceService=e.workspaceService,this.localServerURL=e.localServerURL?q(e.localServerURL):null,this.createSocket=e.createSocket??(s=>new WebSocket(s))}get serverRecords(){return[...this.servers.values()]}connectConfiguredServers(){const e=this.clientStore.get();for(const s of(e==null?void 0:e.servers)??[])this.connectServer(s)}addServer(e,s){const i=q(e),n=this.connections.get(i);n&&(n.disconnect(),this.connections.delete(i)),this.connectServer({url:i,name:s}),this.clientStore.update(a=>{a.servers=a.servers.filter(o=>q(o.url)!==i),a.servers.push({url:i,name:s})}),this.emit("change")}removeServer(e){var n;const s=q(e);this.localServerURL&&s===this.localServerURL||!this.servers.get(s)||((n=this.connections.get(s))==null||n.disconnect(),this.connections.delete(s),this.clientStore.update(a=>{a.servers=a.servers.filter(o=>q(o.url)!==s)}),this.emit("change"))}connectServer(e){const s=q(e.url),i=new vs({url:s,name:e.name,servers:this.servers,createSocket:this.createSocket});this.connections.set(s,i),i.on("serverEvent",({serverURL:n,event:a})=>{this.workspaceService.handleServerEvent(n,a),this.emit("change")}),i.on("change",()=>this.emit("change")),i.connect()}}const nn="serverURL",an="token",on="mode",ln="electron";function cn(r=window.location.search,t=window.location.origin){const s=new URLSearchParams(r).get(nn);return s?new URL(s).origin:new URL(t).origin}function hn(r=window.location.search){return new URLSearchParams(r).get(an)}function un(r=window.location.search){return new URLSearchParams(r).get(on)===ln}/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2017 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/const Ce=globalThis,Br=r=>r,ht=Ce.trustedTypes,Xr=ht?ht.createPolicy("lit-html",{createHTML:r=>r}):void 0,ys="$lit$",B=`lit$${Math.random().toFixed(9).slice(2)}$`,Ss="?"+B,dn=`<${Ss}>`,ae=document,Ie=()=>ae.createComment(""),We=r=>r===null||typeof r!="object"&&typeof r!="function",hr=Array.isArray,pn=r=>hr(r)||typeof(r==null?void 0:r[Symbol.iterator])=="function",Dt=`[
|
|
6
|
-
\f\r]`,Se=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Gr=/-->/g,Vr=/>/g,V=RegExp(`>|${Dt}(?:([^\\s"'>=/]+)(${Dt}*=${Dt}*(?:[^
|
|
7
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),jr=/'/g,Zr=/"/g,xs=/^(?:script|style|textarea|title)$/i,fn=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),b=fn(1),ke=Symbol.for("lit-noChange"),E=Symbol.for("lit-nothing"),Yr=new WeakMap,te=ae.createTreeWalker(ae,129);function _s(r,t){if(!hr(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return Xr!==void 0?Xr.createHTML(t):t}const gn=(r,t)=>{const e=r.length-1,s=[];let i,n=t===2?"<svg>":t===3?"<math>":"",a=Se;for(let o=0;o<e;o++){const l=r[o];let c,u,f=-1,g=0;for(;g<l.length&&(a.lastIndex=g,u=a.exec(l),u!==null);)g=a.lastIndex,a===Se?u[1]==="!--"?a=Gr:u[1]!==void 0?a=Vr:u[2]!==void 0?(xs.test(u[2])&&(i=RegExp("</"+u[2],"g")),a=V):u[3]!==void 0&&(a=V):a===V?u[0]===">"?(a=i??Se,f=-1):u[1]===void 0?f=-2:(f=a.lastIndex-u[2].length,c=u[1],a=u[3]===void 0?V:u[3]==='"'?Zr:jr):a===Zr||a===jr?a=V:a===Gr||a===Vr?a=Se:(a=V,i=void 0);const p=a===V&&r[o+1].startsWith("/>")?" ":"";n+=a===Se?l+dn:f>=0?(s.push(c),l.slice(0,f)+ys+l.slice(f)+B+p):l+B+(f===-2?o:p)}return[_s(r,n+(r[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]};class Me{constructor({strings:t,_$litType$:e},s){let i;this.parts=[];let n=0,a=0;const o=t.length-1,l=this.parts,[c,u]=gn(t,e);if(this.el=Me.createElement(c,s),te.currentNode=this.el.content,e===2||e===3){const f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(i=te.nextNode())!==null&&l.length<o;){if(i.nodeType===1){if(i.hasAttributes())for(const f of i.getAttributeNames())if(f.endsWith(ys)){const g=u[a++],p=i.getAttribute(f).split(B),y=/([.?@])?(.*)/.exec(g);l.push({type:1,index:n,name:y[2],strings:p,ctor:y[1]==="."?mn:y[1]==="?"?bn:y[1]==="@"?wn:vt}),i.removeAttribute(f)}else f.startsWith(B)&&(l.push({type:6,index:n}),i.removeAttribute(f));if(xs.test(i.tagName)){const f=i.textContent.split(B),g=f.length-1;if(g>0){i.textContent=ht?ht.emptyScript:"";for(let p=0;p<g;p++)i.append(f[p],Ie()),te.nextNode(),l.push({type:2,index:++n});i.append(f[g],Ie())}}}else if(i.nodeType===8)if(i.data===Ss)l.push({type:2,index:n});else{let f=-1;for(;(f=i.data.indexOf(B,f+1))!==-1;)l.push({type:7,index:n}),f+=B.length-1}n++}}static createElement(t,e){const s=ae.createElement("template");return s.innerHTML=t,s}}function me(r,t,e=r,s){var a,o;if(t===ke)return t;let i=s!==void 0?(a=e._$Co)==null?void 0:a[s]:e._$Cl;const n=We(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==n&&((o=i==null?void 0:i._$AO)==null||o.call(i,!1),n===void 0?i=void 0:(i=new n(r),i._$AT(r,e,s)),s!==void 0?(e._$Co??(e._$Co=[]))[s]=i:e._$Cl=i),i!==void 0&&(t=me(r,i._$AS(r,t.values),i,s)),t}class kn{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:s}=this._$AD,i=((t==null?void 0:t.creationScope)??ae).importNode(e,!0);te.currentNode=i;let n=te.nextNode(),a=0,o=0,l=s[0];for(;l!==void 0;){if(a===l.index){let c;l.type===2?c=new ur(n,n.nextSibling,this,t):l.type===1?c=new l.ctor(n,l.name,l.strings,this,t):l.type===6&&(c=new vn(n,this,t)),this._$AV.push(c),l=s[++o]}a!==(l==null?void 0:l.index)&&(n=te.nextNode(),a++)}return te.currentNode=ae,i}p(t){let e=0;for(const s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}let ur=class As{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,e,s,i){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=me(this,t,e),We(t)?t===E||t==null||t===""?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==ke&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):pn(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&We(this._$AH)?this._$AA.nextSibling.data=t:this.T(ae.createTextNode(t)),this._$AH=t}$(t){var n;const{values:e,_$litType$:s}=t,i=typeof s=="number"?this._$AC(t):(s.el===void 0&&(s.el=Me.createElement(_s(s.h,s.h[0]),this.options)),s);if(((n=this._$AH)==null?void 0:n._$AD)===i)this._$AH.p(e);else{const a=new kn(i,this),o=a.u(this.options);a.p(e),this.T(o),this._$AH=a}}_$AC(t){let e=Yr.get(t.strings);return e===void 0&&Yr.set(t.strings,e=new Me(t)),e}k(t){hr(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,i=0;for(const n of t)i===e.length?e.push(s=new As(this.O(Ie()),this.O(Ie()),this,this.options)):s=e[i],s._$AI(n),i++;i<e.length&&(this._$AR(s&&s._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){var s;for((s=this._$AP)==null?void 0:s.call(this,!1,!0,e);t!==this._$AB;){const i=Br(t).nextSibling;Br(t).remove(),t=i}}setConnected(t){var e;this._$AM===void 0&&(this._$Cv=t,(e=this._$AP)==null||e.call(this,t))}};class vt{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,i,n){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=n,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,e=this,s,i){const n=this.strings;let a=!1;if(n===void 0)t=me(this,t,e,0),a=!We(t)||t!==this._$AH&&t!==ke,a&&(this._$AH=t);else{const o=t;let l,c;for(t=n[0],l=0;l<n.length-1;l++)c=me(this,o[s+l],e,l),c===ke&&(c=this._$AH[l]),a||(a=!We(c)||c!==this._$AH[l]),c===E?t=E:t!==E&&(t+=(c??"")+n[l+1]),this._$AH[l]=c}a&&!i&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class mn extends vt{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}let bn=class extends vt{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}},wn=class extends vt{constructor(t,e,s,i,n){super(t,e,s,i,n),this.type=5}_$AI(t,e=this){if((t=me(this,t,e,0)??E)===ke)return;const s=this._$AH,i=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==E&&(s===E||i);i&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e;typeof this._$AH=="function"?this._$AH.call(((e=this.options)==null?void 0:e.host)??this.element,t):this._$AH.handleEvent(t)}},vn=class{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){me(this,t)}};const Ct=Ce.litHtmlPolyfillSupport;Ct==null||Ct(Me,ur),(Ce.litHtmlVersions??(Ce.litHtmlVersions=[])).push("3.3.2");const R=(r,t,e)=>{const s=t;let i=s._$litPart$;return i===void 0&&(s._$litPart$=i=new ur(t.insertBefore(Ie(),null),null,void 0,{})),i._$AI(r),i};/**
|
|
8
|
-
* @license
|
|
9
|
-
* Copyright 2017 Google LLC
|
|
10
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
-
*/const yn={CHILD:2},$s=r=>(...t)=>({_$litDirective$:r,values:t});class Sn{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}/**
|
|
12
|
-
* @license
|
|
13
|
-
* Copyright 2017 Google LLC
|
|
14
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
15
|
-
*/class ut extends Sn{constructor(t){if(super(t),this.it=E,t.type!==yn.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===E||t==null)return this._t=void 0,this.it=t;if(t===ke)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}}ut.directiveName="unsafeHTML",ut.resultType=1;const xn=$s(ut);/**
|
|
16
|
-
* @license
|
|
17
|
-
* Copyright 2017 Google LLC
|
|
18
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
19
|
-
*/class Nt extends ut{}Nt.directiveName="unsafeSVG",Nt.resultType=2;const _n=$s(Nt),An={size:16,color:"currentColor",weight:"regular"};function $n(r){return typeof r=="string"?{regular:r}:r}function dr(r,t="0 0 256 256"){const e=$n(r);return s=>{const{size:i,color:n,weight:a}={...An,...s},o=e[a]??e.regular;return b`<svg
|
|
20
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
21
|
-
data-ui-icon=""
|
|
22
|
-
width="${i}"
|
|
23
|
-
height="${i}"
|
|
24
|
-
viewBox="${t}"
|
|
25
|
-
fill="${n}"
|
|
26
|
-
>${_n(o)}</svg>`}}const En=new Map,Tt=new Set;var pe,rt;const _r=class _r extends HTMLElement{constructor(){super(...arguments);_(this,pe)}connectedCallback(){k(this,pe,rt).call(this)}disconnectedCallback(){Tt.delete(this)}attributeChangedCallback(){k(this,pe,rt).call(this)}refresh(){k(this,pe,rt).call(this)}get name(){return this.getAttribute("name")}get size(){const e=this.getAttribute("size");if(e===null)return;const s=Number(e);return Number.isFinite(s)?s:void 0}get weight(){const e=this.getAttribute("weight");return e==="bold"||e==="regular"?e:void 0}};pe=new WeakSet,rt=function(){const e=this.name?En.get(this.name):null;if(!e){this.name&&Tt.add(this),R(null,this);return}Tt.delete(this),R(e({size:this.size,weight:this.weight}),this)},_r.observedAttributes=["name","size","weight"];let Ht=_r;customElements.get("icon-element")||customElements.define("icon-element",Ht);const Es=dr('<path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/>'),Ft=dr('<path d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"/>'),Rn=dr('<path d="M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"/>');class Rs extends Event{constructor(t){super("dropdown-item-select",{bubbles:!0,composed:!0}),this.value=t}}class Ds extends Event{constructor(t){super("select",{bubbles:!0,composed:!0}),this.value=t}}var L,W,X,fe,x,ze,m,Cs,$e,Ts,Ps,qt,Bt,st,Z,se,Oe,Ne,He,gt,Ls,Is,Xt,Ee,Gt,F;const Ar=class Ar extends HTMLElement{constructor(){super();_(this,m);_(this,L,!1);_(this,W,null);_(this,X,null);_(this,fe);_(this,x,null);_(this,ze,new MutationObserver(e=>k(this,m,Ls).call(this,e)));_(this,se,()=>{k(this,m,st).call(this,!d(this,L))});_(this,Oe,e=>{e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),d(this,se).call(this))});_(this,Ne,e=>{d(this,L)&&(e.composedPath().includes(this)||k(this,m,st).call(this,!1))});_(this,He,e=>{e instanceof Rs&&(e.stopPropagation(),T(this,L,!1),k(this,m,$e).call(this,e.value),k(this,m,F).call(this),this.dispatchEvent(new Ds(e.value)))});_(this,gt,()=>{k(this,m,Xt).call(this)});T(this,fe,this.attachShadow({mode:"open"}))}connectedCallback(){this.addEventListener("dropdown-item-select",d(this,He)),document.addEventListener("click",d(this,Ne),!0),k(this,m,Cs).call(this),d(this,ze).observe(this,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["selected","value","slot"]}),k(this,m,F).call(this)}disconnectedCallback(){this.removeEventListener("dropdown-item-select",d(this,He)),document.removeEventListener("click",d(this,Ne),!0),d(this,ze).disconnect(),k(this,m,Gt).call(this)}attributeChangedCallback(){k(this,m,F).call(this)}get title(){return this.getAttribute("title")??""}get value(){return d(this,W)}set value(e){e===null?(k(this,m,Z).call(this,null,null),k(this,m,Ts).call(this)):k(this,m,$e).call(this,e),k(this,m,F).call(this)}close(){k(this,m,st).call(this,!1)}};L=new WeakMap,W=new WeakMap,X=new WeakMap,fe=new WeakMap,x=new WeakMap,ze=new WeakMap,m=new WeakSet,Cs=function(){var s;const e=this.querySelector("dropdown-item[selected]");e&&k(this,m,Z).call(this,e.value,((s=e.textContent)==null?void 0:s.trim())??null)},$e=function(e){var s;for(const i of d(this,m,qt))i.value===e?(k(this,m,Z).call(this,e,((s=i.textContent)==null?void 0:s.trim())??null),i.hasAttribute("selected")||i.setAttribute("selected","")):i.hasAttribute("selected")&&i.removeAttribute("selected")},Ts=function(){const e=this.querySelectorAll("dropdown-item[selected]");for(const s of e)s.removeAttribute("selected")},Ps=function(e){for(const s of d(this,m,qt))if(s.value===e)return s;return null},qt=function(){return this.querySelectorAll("dropdown-item")},Bt=function(){return d(this,X)??this.title},st=function(e){d(this,L)!==e&&(T(this,L,e),k(this,m,F).call(this))},Z=function(e,s){T(this,W,e),T(this,X,s)},se=new WeakMap,Oe=new WeakMap,Ne=new WeakMap,He=new WeakMap,gt=new WeakMap,Ls=function(e){e.every(i=>i.target instanceof Element?i.target.closest('[slot="trigger"]')!==null:!1)||k(this,m,Is).call(this)},Is=function(){var s,i;const e=this.querySelector("dropdown-item[selected]");if(e){const n=e.value,a=((s=e.textContent)==null?void 0:s.trim())??null,o=d(this,W)!==n||d(this,X)!==a;k(this,m,Z).call(this,n,a),k(this,m,$e).call(this,n),o?k(this,m,F).call(this):k(this,m,Ee).call(this);return}if(d(this,W)!==null){const n=k(this,m,Ps).call(this,d(this,W));if(n){const a=((i=n.textContent)==null?void 0:i.trim())??null,o=d(this,X)!==a;k(this,m,Z).call(this,d(this,W),a),k(this,m,$e).call(this,d(this,W)),o?k(this,m,F).call(this):k(this,m,Ee).call(this);return}}if(d(this,W)!==null||d(this,X)!==null){k(this,m,Z).call(this,null,null),k(this,m,F).call(this);return}k(this,m,Ee).call(this)},Xt=function(){const e=d(this,fe).querySelector('slot[name="trigger"]'),s=e instanceof HTMLSlotElement?e.assignedElements({flatten:!0})[0]??null:null;d(this,x)!==s&&(k(this,m,Gt).call(this),T(this,x,s),d(this,x)&&(d(this,x).addEventListener("click",d(this,se)),d(this,x)instanceof HTMLButtonElement?d(this,x).hasAttribute("type")||(d(this,x).type="button"):(d(this,x).hasAttribute("role")||d(this,x).setAttribute("role","button"),d(this,x).hasAttribute("tabindex")||(d(this,x).tabIndex=0),d(this,x).addEventListener("keydown",d(this,Oe))))),k(this,m,Ee).call(this)},Ee=function(){d(this,x)&&(d(this,x).setAttribute("data-dropdown-trigger",""),d(this,x).setAttribute("aria-haspopup","listbox"),d(this,x).setAttribute("aria-expanded",d(this,L)?"true":"false"),R(b`
|
|
27
|
-
<span class="trigger-label" data-dropdown-trigger-label>${d(this,m,Bt)}</span>
|
|
28
|
-
<span class="trigger-icon" data-dropdown-trigger-icon aria-hidden="true">
|
|
29
|
-
${Ft({size:14})}
|
|
30
|
-
</span>
|
|
31
|
-
`,d(this,x)))},Gt=function(){d(this,x)&&(d(this,x).removeEventListener("click",d(this,se)),d(this,x).removeEventListener("keydown",d(this,Oe)),d(this,x).removeAttribute("data-dropdown-trigger"),d(this,x).removeAttribute("aria-haspopup"),d(this,x).removeAttribute("aria-expanded"),T(this,x,null))},F=function(){this.toggleAttribute("open",d(this,L)),R(b`
|
|
32
|
-
<slot name="trigger" @slotchange=${d(this,gt)}>
|
|
33
|
-
<button
|
|
34
|
-
class="fallback-trigger"
|
|
35
|
-
part="trigger"
|
|
36
|
-
type="button"
|
|
37
|
-
aria-haspopup="listbox"
|
|
38
|
-
aria-expanded=${d(this,L)?"true":"false"}
|
|
39
|
-
@click=${d(this,se)}
|
|
40
|
-
>
|
|
41
|
-
<span class="trigger-label" part="trigger-label">${d(this,m,Bt)}</span>
|
|
42
|
-
<span class="trigger-icon" part="trigger-icon" aria-hidden="true">
|
|
43
|
-
${Ft({size:14})}
|
|
44
|
-
</span>
|
|
45
|
-
</button>
|
|
46
|
-
</slot>
|
|
47
|
-
${d(this,L)?b`
|
|
48
|
-
<div class="panel" part="panel" role="listbox">
|
|
49
|
-
<slot></slot>
|
|
50
|
-
</div>
|
|
51
|
-
`:null}
|
|
52
|
-
`,d(this,fe)),queueMicrotask(()=>k(this,m,Xt).call(this))},Ar.observedAttributes=["title"];let Ut=Ar;class Dn extends HTMLElement{}class Cn extends HTMLElement{}class Tn extends HTMLElement{}var le,jt,Ws,Fe,Ue;const $r=class $r extends HTMLElement{constructor(){super(...arguments);_(this,le);_(this,Fe,()=>{this.action||k(this,le,Ws).call(this)});_(this,Ue,e=>{e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),this.click())})}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","option"),this.hasAttribute("tabindex")||(this.tabIndex=0),this.addEventListener("click",d(this,Fe)),this.addEventListener("keydown",d(this,Ue)),k(this,le,jt).call(this)}disconnectedCallback(){this.removeEventListener("click",d(this,Fe)),this.removeEventListener("keydown",d(this,Ue))}attributeChangedCallback(){k(this,le,jt).call(this)}get value(){return this.getAttribute("value")??""}get selected(){return this.hasAttribute("selected")}get action(){return this.hasAttribute("action")}};le=new WeakSet,jt=function(){if(this.action){this.setAttribute("role","button"),this.removeAttribute("aria-selected");return}this.setAttribute("role","option"),this.setAttribute("aria-selected",this.selected?"true":"false")},Ws=function(){this.dispatchEvent(new Rs(this.value))},Fe=new WeakMap,Ue=new WeakMap,$r.observedAttributes=["action","selected","value"];let Vt=$r;customElements.get("dropdown-menu")||customElements.define("dropdown-menu",Ut);customElements.get("dropdown-group")||customElements.define("dropdown-group",Dn);customElements.get("dropdown-label")||customElements.define("dropdown-label",Cn);customElements.get("dropdown-divider")||customElements.define("dropdown-divider",Tn);customElements.get("dropdown-item")||customElements.define("dropdown-item",Vt);class Pn extends Event{constructor(){super("close",{bubbles:!0,composed:!0})}}var qe,G,Yt,kt,Be,Kt;const Er=class Er extends HTMLElement{constructor(){super();_(this,G);_(this,qe);_(this,kt,e=>{e.target===e.currentTarget&&k(this,G,Yt).call(this)});_(this,Be,e=>{this.open&&e.key==="Escape"&&k(this,G,Yt).call(this)});T(this,qe,this.attachShadow({mode:"open"}))}connectedCallback(){document.addEventListener("keydown",d(this,Be)),k(this,G,Kt).call(this)}disconnectedCallback(){document.removeEventListener("keydown",d(this,Be))}attributeChangedCallback(){k(this,G,Kt).call(this)}get open(){return this.hasAttribute("open")}};qe=new WeakMap,G=new WeakSet,Yt=function(){this.dispatchEvent(new Pn)},kt=new WeakMap,Be=new WeakMap,Kt=function(){R(b`
|
|
53
|
-
${this.open?b`
|
|
54
|
-
<div class="backdrop" part="backdrop" @click=${d(this,kt)}>
|
|
55
|
-
<slot></slot>
|
|
56
|
-
</div>
|
|
57
|
-
`:null}
|
|
58
|
-
`,d(this,qe))},Er.observedAttributes=["open"];let Zt=Er;customElements.get("modal-overlay")||customElements.define("modal-overlay",Zt);class Ms extends Event{constructor(){super("close",{bubbles:!0,composed:!0})}}class Ln extends HTMLElement{}var Xe,C,Ge,A,it,nt,zs,Os,Re,Ns,Ve,Jt;const Rr=class Rr extends HTMLElement{constructor(){super();_(this,A);_(this,Xe);_(this,C,[]);_(this,Ge,new MutationObserver(()=>k(this,A,Ns).call(this)));_(this,Ve,e=>{const s=e.target;if(!(s instanceof Element))return;const i=s.closest("[data-navigate]");if(i){this.navigate(i.dataset.navigate??"");return}s.closest("[data-back]")&&this.back()});T(this,Xe,this.attachShadow({mode:"open"}))}connectedCallback(){this.addEventListener("click",d(this,Ve)),d(this,Ge).observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["id","title"]}),k(this,A,Re).call(this)}disconnectedCallback(){this.removeEventListener("click",d(this,Ve)),d(this,Ge).disconnect(),T(this,C,[])}attributeChangedCallback(){k(this,A,Jt).call(this)}get closable(){return this.hasAttribute("closable")}navigate(e){var n;const s=((n=d(this,A,it))==null?void 0:n.id)??null;e===s||!k(this,A,nt).call(this,e)||(d(this,C).push(e),k(this,A,Re).call(this))}back(){d(this,C).length<=1||(d(this,C).pop(),k(this,A,Re).call(this))}};Xe=new WeakMap,C=new WeakMap,Ge=new WeakMap,A=new WeakSet,it=function(){const e=d(this,C)[d(this,C).length-1]??null;return e?k(this,A,nt).call(this,e):null},nt=function(e){const s=this.querySelectorAll("panel-page");for(const i of s)if(i.id===e)return i;return null},zs=function(){if(T(this,C,d(this,C).filter(s=>k(this,A,nt).call(this,s)!==null)),d(this,C).length>0)return;const e=this.querySelector("panel-page");e!=null&&e.id&&T(this,C,[e.id])},Os=function(){k(this,A,zs).call(this);const e=d(this,A,it),s=this.querySelectorAll("panel-page");for(const i of s)i.hidden=i!==e},Re=function(){k(this,A,Os).call(this),k(this,A,Jt).call(this)},Ns=function(){k(this,A,Re).call(this)},Ve=new WeakMap,Jt=function(){const e=d(this,A,it);R(b`
|
|
59
|
-
<section class="panel" part="panel">
|
|
60
|
-
<header class="title-bar" part="header">
|
|
61
|
-
<div class="title-group" part="title-group">
|
|
62
|
-
${d(this,C).length>1?b`
|
|
63
|
-
<button
|
|
64
|
-
type="button"
|
|
65
|
-
class="title-button"
|
|
66
|
-
part="button back-button"
|
|
67
|
-
aria-label="Back"
|
|
68
|
-
@click=${()=>this.back()}
|
|
69
|
-
>
|
|
70
|
-
<span class="back-icon" part="icon back-icon">
|
|
71
|
-
${Ft({size:14})}
|
|
72
|
-
</span>
|
|
73
|
-
</button>
|
|
74
|
-
`:null}
|
|
75
|
-
<h2 class="title" part="title">${(e==null?void 0:e.getAttribute("title"))??""}</h2>
|
|
76
|
-
</div>
|
|
77
|
-
${this.closable?b`
|
|
78
|
-
<button
|
|
79
|
-
type="button"
|
|
80
|
-
class="title-button"
|
|
81
|
-
part="button close-button"
|
|
82
|
-
aria-label="Close"
|
|
83
|
-
@click=${()=>this.dispatchEvent(new Ms)}
|
|
84
|
-
>
|
|
85
|
-
<span class="close-icon" part="icon close-icon">${Es({size:14})}</span>
|
|
86
|
-
</button>
|
|
87
|
-
`:null}
|
|
88
|
-
</header>
|
|
89
|
-
<slot></slot>
|
|
90
|
-
</section>
|
|
91
|
-
`,d(this,Xe))},Rr.observedAttributes=["closable"];let Qt=Rr;customElements.get("panel-view")||customElements.define("panel-view",Qt);customElements.get("panel-page")||customElements.define("panel-page",Ln);class Ze{constructor(){this.disposables=[]}add(t){return this.disposables.push(t),t}dispose(){for(const t of this.disposables)t.dispose();this.disposables=[]}}function pr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var he=pr();function Hs(r){he=r}var J={exec:()=>null};function v(r,t=""){let e=typeof r=="string"?r:r.source,s={replace:(i,n)=>{let a=typeof n=="string"?n:n.source;return a=a.replace(D.caret,"$1"),e=e.replace(i,a),s},getRegex:()=>new RegExp(e,t)};return s}var In=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),D={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:r=>new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}#`),htmlBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}>`)},Wn=/^(?:[ \t]*(?:\n|$))+/,Mn=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,zn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Ye=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,On=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,fr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Fs=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Us=v(Fs).replace(/bull/g,fr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Nn=v(Fs).replace(/bull/g,fr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),gr=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Hn=/^[^\n]+/,kr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Fn=v(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",kr).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Un=v(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,fr).getRegex(),yt="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",mr=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,qn=v("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",mr).replace("tag",yt).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),qs=v(gr).replace("hr",Ye).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",yt).getRegex(),Bn=v(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",qs).getRegex(),br={blockquote:Bn,code:Mn,def:Fn,fences:zn,heading:On,hr:Ye,html:qn,lheading:Us,list:Un,newline:Wn,paragraph:qs,table:J,text:Hn},Kr=v("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Ye).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",yt).getRegex(),Xn={...br,lheading:Nn,table:Kr,paragraph:v(gr).replace("hr",Ye).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Kr).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",yt).getRegex()},Gn={...br,html:v(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",mr).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:J,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:v(gr).replace("hr",Ye).replace("heading",` *#{1,6} *[^
|
|
92
|
-
]`).replace("lheading",Us).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Vn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,jn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Bs=/^( {2,}|\\)\n(?!\s*$)/,Zn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,St=/[\p{P}\p{S}]/u,wr=/[\s\p{P}\p{S}]/u,Xs=/[^\s\p{P}\p{S}]/u,Yn=v(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,wr).getRegex(),Gs=/(?!~)[\p{P}\p{S}]/u,Kn=/(?!~)[\s\p{P}\p{S}]/u,Qn=/(?:[^\s\p{P}\p{S}]|~)/u,Vs=/(?![*_])[\p{P}\p{S}]/u,Jn=/(?![*_])[\s\p{P}\p{S}]/u,ea=/(?:[^\s\p{P}\p{S}]|[*_])/u,ta=v(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",In?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),js=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,ra=v(js,"u").replace(/punct/g,St).getRegex(),sa=v(js,"u").replace(/punct/g,Gs).getRegex(),Zs="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",ia=v(Zs,"gu").replace(/notPunctSpace/g,Xs).replace(/punctSpace/g,wr).replace(/punct/g,St).getRegex(),na=v(Zs,"gu").replace(/notPunctSpace/g,Qn).replace(/punctSpace/g,Kn).replace(/punct/g,Gs).getRegex(),aa=v("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Xs).replace(/punctSpace/g,wr).replace(/punct/g,St).getRegex(),oa=v(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Vs).getRegex(),la="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ca=v(la,"gu").replace(/notPunctSpace/g,ea).replace(/punctSpace/g,Jn).replace(/punct/g,Vs).getRegex(),ha=v(/\\(punct)/,"gu").replace(/punct/g,St).getRegex(),ua=v(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),da=v(mr).replace("(?:-->|$)","-->").getRegex(),pa=v("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",da).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),dt=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,fa=v(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",dt).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ys=v(/^!?\[(label)\]\[(ref)\]/).replace("label",dt).replace("ref",kr).getRegex(),Ks=v(/^!?\[(ref)\](?:\[\])?/).replace("ref",kr).getRegex(),ga=v("reflink|nolink(?!\\()","g").replace("reflink",Ys).replace("nolink",Ks).getRegex(),Qr=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,vr={_backpedal:J,anyPunctuation:ha,autolink:ua,blockSkip:ta,br:Bs,code:jn,del:J,delLDelim:J,delRDelim:J,emStrongLDelim:ra,emStrongRDelimAst:ia,emStrongRDelimUnd:aa,escape:Vn,link:fa,nolink:Ks,punctuation:Yn,reflink:Ys,reflinkSearch:ga,tag:pa,text:Zn,url:J},ka={...vr,link:v(/^!?\[(label)\]\((.*?)\)/).replace("label",dt).getRegex(),reflink:v(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",dt).getRegex()},er={...vr,emStrongRDelimAst:na,emStrongLDelim:sa,delLDelim:oa,delRDelim:ca,url:v(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Qr).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:v(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Qr).getRegex()},ma={...er,br:v(Bs).replace("{2,}","*").getRegex(),text:v(er.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},et={normal:br,gfm:Xn,pedantic:Gn},xe={normal:vr,gfm:er,breaks:ma,pedantic:ka},ba={"&":"&","<":"<",">":">",'"':""","'":"'"},Jr=r=>ba[r];function H(r,t){if(t){if(D.escapeTest.test(r))return r.replace(D.escapeReplace,Jr)}else if(D.escapeTestNoEncode.test(r))return r.replace(D.escapeReplaceNoEncode,Jr);return r}function es(r){try{r=encodeURI(r).replace(D.percentDecode,"%")}catch{return null}return r}function ts(r,t){var n;let e=r.replace(D.findPipe,(a,o,l)=>{let c=!1,u=o;for(;--u>=0&&l[u]==="\\";)c=!c;return c?"|":" |"}),s=e.split(D.splitPipe),i=0;if(s[0].trim()||s.shift(),s.length>0&&!((n=s.at(-1))!=null&&n.trim())&&s.pop(),t)if(s.length>t)s.splice(t);else for(;s.length<t;)s.push("");for(;i<s.length;i++)s[i]=s[i].trim().replace(D.slashPipe,"|");return s}function _e(r,t,e){let s=r.length;if(s===0)return"";let i=0;for(;i<s&&r.charAt(s-i-1)===t;)i++;return r.slice(0,s-i)}function wa(r,t){if(r.indexOf(t[1])===-1)return-1;let e=0;for(let s=0;s<r.length;s++)if(r[s]==="\\")s++;else if(r[s]===t[0])e++;else if(r[s]===t[1]&&(e--,e<0))return s;return e>0?-2:-1}function va(r,t=0){let e=t,s="";for(let i of r)if(i===" "){let n=4-e%4;s+=" ".repeat(n),e+=n}else s+=i,e++;return s}function rs(r,t,e,s,i){let n=t.href,a=t.title||null,o=r[1].replace(i.other.outputLinkReplace,"$1");s.state.inLink=!0;let l={type:r[0].charAt(0)==="!"?"image":"link",raw:e,href:n,title:a,text:o,tokens:s.inlineTokens(o)};return s.state.inLink=!1,l}function ya(r,t,e){let s=r.match(e.other.indentCodeCompensation);if(s===null)return t;let i=s[1];return t.split(`
|
|
93
|
-
`).map(n=>{let a=n.match(e.other.beginningSpace);if(a===null)return n;let[o]=a;return o.length>=i.length?n.slice(i.length):n}).join(`
|
|
94
|
-
`)}var pt=class{constructor(r){h(this,"options");h(this,"rules");h(this,"lexer");this.options=r||he}space(r){let t=this.rules.block.newline.exec(r);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(r){let t=this.rules.block.code.exec(r);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:_e(e,`
|
|
95
|
-
`)}}}fences(r){let t=this.rules.block.fences.exec(r);if(t){let e=t[0],s=ya(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(r){let t=this.rules.block.heading.exec(r);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let s=_e(e,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(e=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(r){let t=this.rules.block.hr.exec(r);if(t)return{type:"hr",raw:_e(t[0],`
|
|
96
|
-
`)}}blockquote(r){let t=this.rules.block.blockquote.exec(r);if(t){let e=_e(t[0],`
|
|
97
|
-
`).split(`
|
|
98
|
-
`),s="",i="",n=[];for(;e.length>0;){let a=!1,o=[],l;for(l=0;l<e.length;l++)if(this.rules.other.blockquoteStart.test(e[l]))o.push(e[l]),a=!0;else if(!a)o.push(e[l]);else break;e=e.slice(l);let c=o.join(`
|
|
99
|
-
`),u=c.replace(this.rules.other.blockquoteSetextReplace,`
|
|
100
|
-
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
|
|
101
|
-
${c}`:c,i=i?`${i}
|
|
102
|
-
${u}`:u;let f=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,n,!0),this.lexer.state.top=f,e.length===0)break;let g=n.at(-1);if((g==null?void 0:g.type)==="code")break;if((g==null?void 0:g.type)==="blockquote"){let p=g,y=p.raw+`
|
|
103
|
-
`+e.join(`
|
|
104
|
-
`),w=this.blockquote(y);n[n.length-1]=w,s=s.substring(0,s.length-p.raw.length)+w.raw,i=i.substring(0,i.length-p.text.length)+w.text;break}else if((g==null?void 0:g.type)==="list"){let p=g,y=p.raw+`
|
|
105
|
-
`+e.join(`
|
|
106
|
-
`),w=this.list(y);n[n.length-1]=w,s=s.substring(0,s.length-g.raw.length)+w.raw,i=i.substring(0,i.length-p.raw.length)+w.raw,e=y.substring(n.at(-1).raw.length).split(`
|
|
107
|
-
`);continue}}return{type:"blockquote",raw:s,tokens:n,text:i}}}list(r){var e,s;let t=this.rules.block.list.exec(r);if(t){let i=t[1].trim(),n=i.length>1,a={type:"list",raw:"",ordered:n,start:n?+i.slice(0,-1):"",loose:!1,items:[]};i=n?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=n?i:"[*+-]");let o=this.rules.other.listItemRegex(i),l=!1;for(;r;){let u=!1,f="",g="";if(!(t=o.exec(r))||this.rules.block.hr.test(r))break;f=t[0],r=r.substring(f.length);let p=va(t[2].split(`
|
|
108
|
-
`,1)[0],t[1].length),y=r.split(`
|
|
109
|
-
`,1)[0],w=!p.trim(),$=0;if(this.options.pedantic?($=2,g=p.trimStart()):w?$=t[1].length+1:($=p.search(this.rules.other.nonSpaceChar),$=$>4?1:$,g=p.slice($),$+=t[1].length),w&&this.rules.other.blankLine.test(y)&&(f+=y+`
|
|
110
|
-
`,r=r.substring(y.length+1),u=!0),!u){let U=this.rules.other.nextBulletRegex($),Ke=this.rules.other.hrRegex($),Dr=this.rules.other.fencesBeginRegex($),Cr=this.rules.other.headingBeginRegex($),oi=this.rules.other.htmlBeginRegex($),li=this.rules.other.blockquoteBeginRegex($);for(;r;){let _t=r.split(`
|
|
111
|
-
`,1)[0],ye;if(y=_t,this.options.pedantic?(y=y.replace(this.rules.other.listReplaceNesting," "),ye=y):ye=y.replace(this.rules.other.tabCharGlobal," "),Dr.test(y)||Cr.test(y)||oi.test(y)||li.test(y)||U.test(y)||Ke.test(y))break;if(ye.search(this.rules.other.nonSpaceChar)>=$||!y.trim())g+=`
|
|
112
|
-
`+ye.slice($);else{if(w||p.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||Dr.test(p)||Cr.test(p)||Ke.test(p))break;g+=`
|
|
113
|
-
`+y}w=!y.trim(),f+=_t+`
|
|
114
|
-
`,r=r.substring(_t.length+1),p=ye.slice($)}}a.loose||(l?a.loose=!0:this.rules.other.doubleBlankLine.test(f)&&(l=!0)),a.items.push({type:"list_item",raw:f,task:!!this.options.gfm&&this.rules.other.listIsTask.test(g),loose:!1,text:g,tokens:[]}),a.raw+=f}let c=a.items.at(-1);if(c)c.raw=c.raw.trimEnd(),c.text=c.text.trimEnd();else return;a.raw=a.raw.trimEnd();for(let u of a.items){if(this.lexer.state.top=!1,u.tokens=this.lexer.blockTokens(u.text,[]),u.task){if(u.text=u.text.replace(this.rules.other.listReplaceTask,""),((e=u.tokens[0])==null?void 0:e.type)==="text"||((s=u.tokens[0])==null?void 0:s.type)==="paragraph"){u.tokens[0].raw=u.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),u.tokens[0].text=u.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let g=this.lexer.inlineQueue.length-1;g>=0;g--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[g].src)){this.lexer.inlineQueue[g].src=this.lexer.inlineQueue[g].src.replace(this.rules.other.listReplaceTask,"");break}}let f=this.rules.other.listTaskCheckbox.exec(u.raw);if(f){let g={type:"checkbox",raw:f[0]+" ",checked:f[0]!=="[ ]"};u.checked=g.checked,a.loose?u.tokens[0]&&["paragraph","text"].includes(u.tokens[0].type)&&"tokens"in u.tokens[0]&&u.tokens[0].tokens?(u.tokens[0].raw=g.raw+u.tokens[0].raw,u.tokens[0].text=g.raw+u.tokens[0].text,u.tokens[0].tokens.unshift(g)):u.tokens.unshift({type:"paragraph",raw:g.raw,text:g.raw,tokens:[g]}):u.tokens.unshift(g)}}if(!a.loose){let f=u.tokens.filter(p=>p.type==="space"),g=f.length>0&&f.some(p=>this.rules.other.anyLine.test(p.raw));a.loose=g}}if(a.loose)for(let u of a.items){u.loose=!0;for(let f of u.tokens)f.type==="text"&&(f.type="paragraph")}return a}}html(r){let t=this.rules.block.html.exec(r);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(r){let t=this.rules.block.def.exec(r);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:s,title:i}}}table(r){var a;let t=this.rules.block.table.exec(r);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let e=ts(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=(a=t[3])!=null&&a.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
115
|
-
`):[],n={type:"table",raw:t[0],header:[],align:[],rows:[]};if(e.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?n.align.push("right"):this.rules.other.tableAlignCenter.test(o)?n.align.push("center"):this.rules.other.tableAlignLeft.test(o)?n.align.push("left"):n.align.push(null);for(let o=0;o<e.length;o++)n.header.push({text:e[o],tokens:this.lexer.inline(e[o]),header:!0,align:n.align[o]});for(let o of i)n.rows.push(ts(o,n.header.length).map((l,c)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:n.align[c]})));return n}}lheading(r){let t=this.rules.block.lheading.exec(r);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(r){let t=this.rules.block.paragraph.exec(r);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
116
|
-
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(r){let t=this.rules.block.text.exec(r);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(r){let t=this.rules.inline.escape.exec(r);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(r){let t=this.rules.inline.tag.exec(r);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(r){let t=this.rules.inline.link.exec(r);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let n=_e(e.slice(0,-1),"\\");if((e.length-n.length)%2===0)return}else{let n=wa(t[2],"()");if(n===-2)return;if(n>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+n;t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let s=t[2],i="";if(this.options.pedantic){let n=this.rules.other.pedanticHrefTitle.exec(s);n&&(s=n[1],i=n[3])}else i=t[3]?t[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?s=s.slice(1):s=s.slice(1,-1)),rs(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(r,t){let e;if((e=this.rules.inline.reflink.exec(r))||(e=this.rules.inline.nolink.exec(r))){let s=(e[2]||e[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[s.toLowerCase()];if(!i){let n=e[0].charAt(0);return{type:"text",raw:n,text:n}}return rs(e,i,e[0],this.lexer,this.rules)}}emStrong(r,t,e=""){let s=this.rules.inline.emStrongLDelim.exec(r);if(!(!s||s[3]&&e.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[2])||!e||this.rules.inline.punctuation.exec(e))){let i=[...s[0]].length-1,n,a,o=i,l=0,c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*r.length+i);(s=c.exec(t))!=null;){if(n=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!n)continue;if(a=[...n].length,s[3]||s[4]){o+=a;continue}else if((s[5]||s[6])&&i%3&&!((i+a)%3)){l+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+l);let u=[...s[0]][0].length,f=r.slice(0,i+s.index+u+a);if(Math.min(i,a)%2){let p=f.slice(1,-1);return{type:"em",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}let g=f.slice(2,-2);return{type:"strong",raw:f,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(r){let t=this.rules.inline.code.exec(r);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(e),i=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return s&&i&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(r){let t=this.rules.inline.br.exec(r);if(t)return{type:"br",raw:t[0]}}del(r,t,e=""){let s=this.rules.inline.delLDelim.exec(r);if(s&&(!s[1]||!e||this.rules.inline.punctuation.exec(e))){let i=[...s[0]].length-1,n,a,o=i,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*r.length+i);(s=l.exec(t))!=null;){if(n=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!n||(a=[...n].length,a!==i))continue;if(s[3]||s[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let c=[...s[0]][0].length,u=r.slice(0,i+s.index+c+a),f=u.slice(i,-i);return{type:"del",raw:u,text:f,tokens:this.lexer.inlineTokens(f)}}}}autolink(r){let t=this.rules.inline.autolink.exec(r);if(t){let e,s;return t[2]==="@"?(e=t[1],s="mailto:"+e):(e=t[1],s=e),{type:"link",raw:t[0],text:e,href:s,tokens:[{type:"text",raw:e,text:e}]}}}url(r){var e;let t;if(t=this.rules.inline.url.exec(r)){let s,i;if(t[2]==="@")s=t[0],i="mailto:"+s;else{let n;do n=t[0],t[0]=((e=this.rules.inline._backpedal.exec(t[0]))==null?void 0:e[0])??"";while(n!==t[0]);s=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:s,href:i,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(r){let t=this.rules.inline.text.exec(r);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},M=class tr{constructor(t){h(this,"tokens");h(this,"options");h(this,"state");h(this,"inlineQueue");h(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=t||he,this.options.tokenizer=this.options.tokenizer||new pt,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:D,block:et.normal,inline:xe.normal};this.options.pedantic?(e.block=et.pedantic,e.inline=xe.pedantic):this.options.gfm&&(e.block=et.gfm,this.options.breaks?e.inline=xe.breaks:e.inline=xe.gfm),this.tokenizer.rules=e}static get rules(){return{block:et,inline:xe}}static lex(t,e){return new tr(e).lex(t)}static lexInline(t,e){return new tr(e).inlineTokens(t)}lex(t){t=t.replace(D.carriageReturn,`
|
|
117
|
-
`),this.blockTokens(t,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let s=this.inlineQueue[e];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,e=[],s=!1){var i,n,a;for(this.options.pedantic&&(t=t.replace(D.tabCharGlobal," ").replace(D.spaceLine,""));t;){let o;if((n=(i=this.options.extensions)==null?void 0:i.block)!=null&&n.some(c=>(o=c.call({lexer:this},t,e))?(t=t.substring(o.raw.length),e.push(o),!0):!1))continue;if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length);let c=e.at(-1);o.raw.length===1&&c!==void 0?c.raw+=`
|
|
118
|
-
`:e.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length);let c=e.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(`
|
|
119
|
-
`)?"":`
|
|
120
|
-
`)+o.raw,c.text+=`
|
|
121
|
-
`+o.text,this.inlineQueue.at(-1).src=c.text):e.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length);let c=e.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(`
|
|
122
|
-
`)?"":`
|
|
123
|
-
`)+o.raw,c.text+=`
|
|
124
|
-
`+o.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},e.push(o));continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),e.push(o);continue}let l=t;if((a=this.options.extensions)!=null&&a.startBlock){let c=1/0,u=t.slice(1),f;this.options.extensions.startBlock.forEach(g=>{f=g.call({lexer:this},u),typeof f=="number"&&f>=0&&(c=Math.min(c,f))}),c<1/0&&c>=0&&(l=t.substring(0,c+1))}if(this.state.top&&(o=this.tokenizer.paragraph(l))){let c=e.at(-1);s&&(c==null?void 0:c.type)==="paragraph"?(c.raw+=(c.raw.endsWith(`
|
|
125
|
-
`)?"":`
|
|
126
|
-
`)+o.raw,c.text+=`
|
|
127
|
-
`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):e.push(o),s=l.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length);let c=e.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(`
|
|
128
|
-
`)?"":`
|
|
129
|
-
`)+o.raw,c.text+=`
|
|
130
|
-
`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):e.push(o);continue}if(t){let c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){var l,c,u,f,g;let s=t,i=null;if(this.tokens.links){let p=Object.keys(this.tokens.links);if(p.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)p.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,i.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let n;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)n=i[2]?i[2].length:0,s=s.slice(0,i.index+n)+"["+"a".repeat(i[0].length-n-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);s=((c=(l=this.options.hooks)==null?void 0:l.emStrongMask)==null?void 0:c.call({lexer:this},s))??s;let a=!1,o="";for(;t;){a||(o=""),a=!1;let p;if((f=(u=this.options.extensions)==null?void 0:u.inline)!=null&&f.some(w=>(p=w.call({lexer:this},t,e))?(t=t.substring(p.raw.length),e.push(p),!0):!1))continue;if(p=this.tokenizer.escape(t)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.tag(t)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.link(t)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(p.raw.length);let w=e.at(-1);p.type==="text"&&(w==null?void 0:w.type)==="text"?(w.raw+=p.raw,w.text+=p.text):e.push(p);continue}if(p=this.tokenizer.emStrong(t,s,o)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.codespan(t)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.br(t)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.del(t,s,o)){t=t.substring(p.raw.length),e.push(p);continue}if(p=this.tokenizer.autolink(t)){t=t.substring(p.raw.length),e.push(p);continue}if(!this.state.inLink&&(p=this.tokenizer.url(t))){t=t.substring(p.raw.length),e.push(p);continue}let y=t;if((g=this.options.extensions)!=null&&g.startInline){let w=1/0,$=t.slice(1),U;this.options.extensions.startInline.forEach(Ke=>{U=Ke.call({lexer:this},$),typeof U=="number"&&U>=0&&(w=Math.min(w,U))}),w<1/0&&w>=0&&(y=t.substring(0,w+1))}if(p=this.tokenizer.inlineText(y)){t=t.substring(p.raw.length),p.raw.slice(-1)!=="_"&&(o=p.raw.slice(-1)),a=!0;let w=e.at(-1);(w==null?void 0:w.type)==="text"?(w.raw+=p.raw,w.text+=p.text):e.push(p);continue}if(t){let w="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(w);break}else throw new Error(w)}}return e}},ft=class{constructor(r){h(this,"options");h(this,"parser");this.options=r||he}space(r){return""}code({text:r,lang:t,escaped:e}){var n;let s=(n=(t||"").match(D.notSpaceStart))==null?void 0:n[0],i=r.replace(D.endingNewline,"")+`
|
|
131
|
-
`;return s?'<pre><code class="language-'+H(s)+'">'+(e?i:H(i,!0))+`</code></pre>
|
|
132
|
-
`:"<pre><code>"+(e?i:H(i,!0))+`</code></pre>
|
|
133
|
-
`}blockquote({tokens:r}){return`<blockquote>
|
|
134
|
-
${this.parser.parse(r)}</blockquote>
|
|
135
|
-
`}html({text:r}){return r}def(r){return""}heading({tokens:r,depth:t}){return`<h${t}>${this.parser.parseInline(r)}</h${t}>
|
|
136
|
-
`}hr(r){return`<hr>
|
|
137
|
-
`}list(r){let t=r.ordered,e=r.start,s="";for(let a=0;a<r.items.length;a++){let o=r.items[a];s+=this.listitem(o)}let i=t?"ol":"ul",n=t&&e!==1?' start="'+e+'"':"";return"<"+i+n+`>
|
|
138
|
-
`+s+"</"+i+`>
|
|
139
|
-
`}listitem(r){return`<li>${this.parser.parse(r.tokens)}</li>
|
|
140
|
-
`}checkbox({checked:r}){return"<input "+(r?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:r}){return`<p>${this.parser.parseInline(r)}</p>
|
|
141
|
-
`}table(r){let t="",e="";for(let i=0;i<r.header.length;i++)e+=this.tablecell(r.header[i]);t+=this.tablerow({text:e});let s="";for(let i=0;i<r.rows.length;i++){let n=r.rows[i];e="";for(let a=0;a<n.length;a++)e+=this.tablecell(n[a]);s+=this.tablerow({text:e})}return s&&(s=`<tbody>${s}</tbody>`),`<table>
|
|
142
|
-
<thead>
|
|
143
|
-
`+t+`</thead>
|
|
144
|
-
`+s+`</table>
|
|
145
|
-
`}tablerow({text:r}){return`<tr>
|
|
146
|
-
${r}</tr>
|
|
147
|
-
`}tablecell(r){let t=this.parser.parseInline(r.tokens),e=r.header?"th":"td";return(r.align?`<${e} align="${r.align}">`:`<${e}>`)+t+`</${e}>
|
|
148
|
-
`}strong({tokens:r}){return`<strong>${this.parser.parseInline(r)}</strong>`}em({tokens:r}){return`<em>${this.parser.parseInline(r)}</em>`}codespan({text:r}){return`<code>${H(r,!0)}</code>`}br(r){return"<br>"}del({tokens:r}){return`<del>${this.parser.parseInline(r)}</del>`}link({href:r,title:t,tokens:e}){let s=this.parser.parseInline(e),i=es(r);if(i===null)return s;r=i;let n='<a href="'+r+'"';return t&&(n+=' title="'+H(t)+'"'),n+=">"+s+"</a>",n}image({href:r,title:t,text:e,tokens:s}){s&&(e=this.parser.parseInline(s,this.parser.textRenderer));let i=es(r);if(i===null)return H(e);r=i;let n=`<img src="${r}" alt="${H(e)}"`;return t&&(n+=` title="${H(t)}"`),n+=">",n}text(r){return"tokens"in r&&r.tokens?this.parser.parseInline(r.tokens):"escaped"in r&&r.escaped?r.text:H(r.text)}},yr=class{strong({text:r}){return r}em({text:r}){return r}codespan({text:r}){return r}del({text:r}){return r}html({text:r}){return r}text({text:r}){return r}link({text:r}){return""+r}image({text:r}){return""+r}br(){return""}checkbox({raw:r}){return r}},z=class rr{constructor(t){h(this,"options");h(this,"renderer");h(this,"textRenderer");this.options=t||he,this.options.renderer=this.options.renderer||new ft,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new yr}static parse(t,e){return new rr(e).parse(t)}static parseInline(t,e){return new rr(e).parseInline(t)}parse(t){var s,i;let e="";for(let n=0;n<t.length;n++){let a=t[n];if((i=(s=this.options.extensions)==null?void 0:s.renderers)!=null&&i[a.type]){let l=a,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){e+=c||"";continue}}let o=a;switch(o.type){case"space":{e+=this.renderer.space(o);break}case"hr":{e+=this.renderer.hr(o);break}case"heading":{e+=this.renderer.heading(o);break}case"code":{e+=this.renderer.code(o);break}case"table":{e+=this.renderer.table(o);break}case"blockquote":{e+=this.renderer.blockquote(o);break}case"list":{e+=this.renderer.list(o);break}case"checkbox":{e+=this.renderer.checkbox(o);break}case"html":{e+=this.renderer.html(o);break}case"def":{e+=this.renderer.def(o);break}case"paragraph":{e+=this.renderer.paragraph(o);break}case"text":{e+=this.renderer.text(o);break}default:{let l='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return e}parseInline(t,e=this.renderer){var i,n;let s="";for(let a=0;a<t.length;a++){let o=t[a];if((n=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&n[o.type]){let c=this.options.extensions.renderers[o.type].call({parser:this},o);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){s+=c||"";continue}}let l=o;switch(l.type){case"escape":{s+=e.text(l);break}case"html":{s+=e.html(l);break}case"link":{s+=e.link(l);break}case"image":{s+=e.image(l);break}case"checkbox":{s+=e.checkbox(l);break}case"strong":{s+=e.strong(l);break}case"em":{s+=e.em(l);break}case"codespan":{s+=e.codespan(l);break}case"br":{s+=e.br(l);break}case"del":{s+=e.del(l);break}case"text":{s+=e.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return s}},tt,De=(tt=class{constructor(r){h(this,"options");h(this,"block");this.options=r||he}preprocess(r){return r}postprocess(r){return r}processAllTokens(r){return r}emStrongMask(r){return r}provideLexer(){return this.block?M.lex:M.lexInline}provideParser(){return this.block?z.parse:z.parseInline}},h(tt,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),h(tt,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),tt),Sa=class{constructor(...r){h(this,"defaults",pr());h(this,"options",this.setOptions);h(this,"parse",this.parseMarkdown(!0));h(this,"parseInline",this.parseMarkdown(!1));h(this,"Parser",z);h(this,"Renderer",ft);h(this,"TextRenderer",yr);h(this,"Lexer",M);h(this,"Tokenizer",pt);h(this,"Hooks",De);this.use(...r)}walkTokens(r,t){var s,i;let e=[];for(let n of r)switch(e=e.concat(t.call(this,n)),n.type){case"table":{let a=n;for(let o of a.header)e=e.concat(this.walkTokens(o.tokens,t));for(let o of a.rows)for(let l of o)e=e.concat(this.walkTokens(l.tokens,t));break}case"list":{let a=n;e=e.concat(this.walkTokens(a.items,t));break}default:{let a=n;(i=(s=this.defaults.extensions)==null?void 0:s.childTokens)!=null&&i[a.type]?this.defaults.extensions.childTokens[a.type].forEach(o=>{let l=a[o].flat(1/0);e=e.concat(this.walkTokens(l,t))}):a.tokens&&(e=e.concat(this.walkTokens(a.tokens,t)))}}return e}use(...r){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return r.forEach(e=>{let s={...e};if(s.async=this.defaults.async||s.async||!1,e.extensions&&(e.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let n=t.renderers[i.name];n?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=n.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let n=t[i.level];n?n.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),s.extensions=t),e.renderer){let i=this.defaults.renderer||new ft(this.defaults);for(let n in e.renderer){if(!(n in i))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let a=n,o=e.renderer[a],l=i[a];i[a]=(...c)=>{let u=o.apply(i,c);return u===!1&&(u=l.apply(i,c)),u||""}}s.renderer=i}if(e.tokenizer){let i=this.defaults.tokenizer||new pt(this.defaults);for(let n in e.tokenizer){if(!(n in i))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let a=n,o=e.tokenizer[a],l=i[a];i[a]=(...c)=>{let u=o.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}s.tokenizer=i}if(e.hooks){let i=this.defaults.hooks||new De;for(let n in e.hooks){if(!(n in i))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let a=n,o=e.hooks[a],l=i[a];De.passThroughHooks.has(n)?i[a]=c=>{if(this.defaults.async&&De.passThroughHooksRespectAsync.has(n))return(async()=>{let f=await o.call(i,c);return l.call(i,f)})();let u=o.call(i,c);return l.call(i,u)}:i[a]=(...c)=>{if(this.defaults.async)return(async()=>{let f=await o.apply(i,c);return f===!1&&(f=await l.apply(i,c)),f})();let u=o.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}s.hooks=i}if(e.walkTokens){let i=this.defaults.walkTokens,n=e.walkTokens;s.walkTokens=function(a){let o=[];return o.push(n.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...s}}),this}setOptions(r){return this.defaults={...this.defaults,...r},this}lexer(r,t){return M.lex(r,t??this.defaults)}parser(r,t){return z.parse(r,t??this.defaults)}parseMarkdown(r){return(t,e)=>{let s={...e},i={...this.defaults,...s},n=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&s.async===!1)return n(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return n(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return n(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=r),i.async)return(async()=>{let a=i.hooks?await i.hooks.preprocess(t):t,o=await(i.hooks?await i.hooks.provideLexer():r?M.lex:M.lexInline)(a,i),l=i.hooks?await i.hooks.processAllTokens(o):o;i.walkTokens&&await Promise.all(this.walkTokens(l,i.walkTokens));let c=await(i.hooks?await i.hooks.provideParser():r?z.parse:z.parseInline)(l,i);return i.hooks?await i.hooks.postprocess(c):c})().catch(n);try{i.hooks&&(t=i.hooks.preprocess(t));let a=(i.hooks?i.hooks.provideLexer():r?M.lex:M.lexInline)(t,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let o=(i.hooks?i.hooks.provideParser():r?z.parse:z.parseInline)(a,i);return i.hooks&&(o=i.hooks.postprocess(o)),o}catch(a){return n(a)}}}onError(r,t){return e=>{if(e.message+=`
|
|
149
|
-
Please report this to https://github.com/markedjs/marked.`,r){let s="<p>An error occurred:</p><pre>"+H(e.message+"",!0)+"</pre>";return t?Promise.resolve(s):s}if(t)return Promise.reject(e);throw e}}},oe=new Sa;function S(r,t){return oe.parse(r,t)}S.options=S.setOptions=function(r){return oe.setOptions(r),S.defaults=oe.defaults,Hs(S.defaults),S};S.getDefaults=pr;S.defaults=he;S.use=function(...r){return oe.use(...r),S.defaults=oe.defaults,Hs(S.defaults),S};S.walkTokens=function(r,t){return oe.walkTokens(r,t)};S.parseInline=oe.parseInline;S.Parser=z;S.parser=z.parse;S.Renderer=ft;S.TextRenderer=yr;S.Lexer=M;S.lexer=M.lex;S.Tokenizer=pt;S.Hooks=De;S.parse=S;S.options;S.setOptions;S.use;S.walkTokens;S.parseInline;z.parse;M.lex;class Qs extends Event{constructor(e){super("close-artifact",{bubbles:!0,composed:!0});h(this,"id");this.id=e}}function xa(r){return S.parse(r,{async:!1})}class _a extends HTMLElement{constructor(){super(...arguments);h(this,"_artifact",null)}set artifact(e){this._artifact=e,this.render()}get artifact(){return this._artifact}handleClose(){this._artifact&&this.dispatchEvent(new Qs(this._artifact.id))}template(){const e=this._artifact;return b`
|
|
150
|
-
<header class="artifact-title-bar" drag-handle>
|
|
151
|
-
<span class="artifact-title">${e.title}</span>
|
|
152
|
-
<button
|
|
153
|
-
class="artifact-close-btn"
|
|
154
|
-
@click=${()=>this.handleClose()}
|
|
155
|
-
aria-label="Close"
|
|
156
|
-
>${Es({size:14})}</button>
|
|
157
|
-
</header>
|
|
158
|
-
<div class="artifact-content">
|
|
159
|
-
${this.renderContent(e)}
|
|
160
|
-
</div>
|
|
161
|
-
`}renderContent(e){switch(e.type){case"markdown":return b`<div class="markdown-body">${xn(xa(e.content))}</div>`;default:return b`<pre>${e.content}</pre>`}}render(){this._artifact&&R(this.template(),this)}}customElements.define("artifact-view",_a);const ss=1/3;function Aa(r,t,e,s,i){if(e.length===0)return{index:0};for(let n=0;n<e.length;n+=1){const a=e[n],o=a.right-a.left,l=n<i?a.right-o*ss:a.left+o*ss;if(r<l)return{index:n}}return{index:e.length}}const Y=600,K=800,be=16,$a=800,is=.85,Ea=200,Ra=500,Da=5,ns=50,Ca=2,Ta=120,Pa=80,La=60,N=1e-4,Ia=1e3;function re(r,t,e,s){const i=ve(r),n=ps(t),a=e<$a,o=a?e*is:Y,l=a?s*is:K;return{cols:i,rows:n,width:o*(i/we),height:l*(n/ce)}}function Wa(r,t,e){const s=[],i=[];for(const n of r){const a=re(n.cols,n.rows,t,e);s.push(a.width),i.push(a.height)}return{widths:s,heights:i}}function Js(r,t){return re(1,ce,r,t).width}function as(r,t){const e=Js(r,t);return Math.max(1,Math.floor((r+be)/(e+be)))}function Sr(r){return r.reduce((t,e)=>t+ve(e.cols),0)}function ei(r,t){return Math.max(0,Sr(r)-t)}function xt(r){const t=[0];let e=0;for(const s of r)e+=ve(s.cols),t.push(e);return t}function os(r,t){return t.some(e=>Math.abs(e-r)<N)}function ls(r,t){const e=xt(r);for(const s of e)if(s>t+N)return s;return e[e.length-1]??0}function Ma(r,t){const e=xt(r);let s=e[0]??0;for(const i of e){if(i<=t+N){s=i;continue}break}return s}function za(r,t){const e=xt(r);let s=e[0]??0;for(const i of e){if(i<t-N){s=i;continue}break}return s}function cs(r,t,e,s,i="start"){if(r.length===0)return 0;const n=Sr(r),a=Math.min(Math.max(0,t),n);let o=0,l=0;for(let c=0;c<r.length;c+=1){const u=r[c],f=ve(u.cols),g=re(f,u.rows,e,s).width,p=o+f,y=a<p-N,w=c===r.length-1&&a<=p+N;if(y||w){const U=Math.min(f,Math.max(0,a-o))/f;return l+U*g}if(Math.abs(a-p)<=N)return i==="start"?l+g+be:l+g;o+=f,l+=g,c<r.length-1&&(l+=be)}return l}function Oa(r,t,e,s,i){const n=ei(r,i),a=Math.min(Math.max(0,t),n),o=Sr(r),l=cs(r,a,e,s,"start"),c=Math.min(a+i,o),u=cs(r,c,e,s,"end"),f=Math.max(0,u-l);return(e-f)/Ca-l}class Na extends Event{constructor(e){super("scroll",{bubbles:!0,composed:!0});h(this,"scrollPosition");this.scrollPosition=e}}class Ha extends Event{constructor(e){super("card-order-changed",{bubbles:!0,composed:!0});h(this,"ids");this.ids=e}}const hs="[drag-handle]";class Fa extends HTMLElement{constructor(){super(...arguments);h(this,"_cards",[]);h(this,"_dragHandleSelector",hs);h(this,"_scrollPosition",0);h(this,"_trackEl",null);h(this,"resizeObserver",null);h(this,"renderPending",!1);h(this,"animateNextRender",!0);h(this,"awaitingFreshWheelGesture",!1);h(this,"lastWheelEventAt",Number.NEGATIVE_INFINITY);h(this,"lastWheelDeltaX",0);h(this,"dragStatus","idle");h(this,"dragPointerID",null);h(this,"dragCardID",null);h(this,"dragCardIndex",-1);h(this,"dragStartX",0);h(this,"dragStartY",0);h(this,"dragPointerX",0);h(this,"dragPointerY",0);h(this,"dragOffsetX",0);h(this,"dragOffsetY",0);h(this,"dragPlaceholderIndex",0);h(this,"dragHoldTimer",null);h(this,"capturedDragTarget",null);h(this,"autoScrollFrame",null);h(this,"autoScrollDirection",0);h(this,"autoScrollLastFrameAt",null);h(this,"handlePointerMove",e=>{if(e.pointerId===this.dragPointerID){if(this.dragPointerX=e.clientX,this.dragPointerY=e.clientY,this.dragStatus==="pending"){this.getDragDistance()>Da&&this.startDragging();return}this.dragStatus==="dragging"&&(e.preventDefault(),this.updateDropTargetFromDOM(),this.updateAutoScrollDirection(),this.scheduleRender())}});h(this,"handlePointerUp",e=>{if(e.pointerId===this.dragPointerID){if(this.dragStatus==="dragging"){e.preventDefault(),this.finishDragging();return}this.resetDragState()}});h(this,"handlePointerCancel",e=>{e.pointerId===this.dragPointerID&&this.cancelDragging()});h(this,"stepAutoScroll",e=>{if(this.dragStatus!=="dragging"||this.autoScrollDirection===0){this.stopAutoScroll();return}const s=this.autoScrollLastFrameAt??e,i=e-s;this.autoScrollLastFrameAt=e;const n=La*i*this.autoScrollDirection/Ia/this.getColumnStep(),a=this.clampScrollPosition(this._scrollPosition+n);Math.abs(a-this._scrollPosition)>=N&&(this._scrollPosition=a,this.emitScrollPositionChanged(this._scrollPosition),this.animateNextRender=!1,this.scheduleRender(),queueMicrotask(()=>this.updateDropTargetFromDOM())),this.autoScrollFrame=requestAnimationFrame(this.stepAutoScroll)});h(this,"handleKeyDown",e=>{if(e.key==="Escape"&&this.dragStatus!=="idle"){e.preventDefault(),this.cancelDragging();return}(e.key==="ArrowRight"||e.key==="ArrowLeft")&&(this.awaitingFreshWheelGesture=!0,this.lastWheelEventAt=Date.now()),e.key==="ArrowRight"?(e.preventDefault(),this.shiftWindow(1)):e.key==="ArrowLeft"&&(e.preventDefault(),this.shiftWindow(-1))});h(this,"handleWindowKeyDown",e=>{document.activeElement!==this&&(e.defaultPrevented||e.key!=="ArrowLeft"&&e.key!=="ArrowRight"&&e.key!=="Escape"||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLElement&&e.target.isContentEditable||this.matches(":hover")&&(this.focus({preventScroll:!0}),this.handleKeyDown(e)))});h(this,"handleWheel",e=>{document.activeElement!==this&&this.focus({preventScroll:!0});const s=e.shiftKey&&e.deltaY!==0?e.deltaY:e.deltaX;if(s===0)return;e.preventDefault();const i=Date.now(),n=i-this.lastWheelEventAt,a=this.lastWheelDeltaX,o=Math.sign(a),l=Math.sign(s),c=o!==0&&l!==0&&o!==l,u=o!==0&&Math.abs(s)>=Math.abs(a)+Pa;if(this.lastWheelEventAt=i,this.lastWheelDeltaX=s,this.awaitingFreshWheelGesture){if(n<Ta&&!c&&!u)return;this.awaitingFreshWheelGesture=!1}this._scrollPosition=this.clampScrollPosition(this._scrollPosition+s/this.getColumnStep()),this.emitScrollPositionChanged(this._scrollPosition),this.animateNextRender=!1,this.scheduleRender()})}set cards(e){this._cards=e.filter(s=>s.type==="content"),this._scrollPosition=this.clampScrollPosition(this._scrollPosition),this.scheduleRender()}get cards(){return this._cards}set dragHandleSelector(e){this._dragHandleSelector=e.trim()||hs,this.scheduleRender()}get dragHandleSelector(){return this._dragHandleSelector}set scrollPosition(e){const s=this.clampScrollPosition(e);Math.abs(s-this._scrollPosition)<N||(this._scrollPosition=s,this.animateNextRender=!1,this.scheduleRender())}get scrollPosition(){return this._scrollPosition}connectedCallback(){this.hasAttribute("tabindex")||(this.tabIndex=0),this.focus(),this.addEventListener("keydown",this.handleKeyDown),this.addEventListener("wheel",this.handleWheel,{passive:!1}),this.addEventListener("pointermove",this.handlePointerMove),this.addEventListener("pointerup",this.handlePointerUp),this.addEventListener("pointercancel",this.handlePointerCancel),window.addEventListener("keydown",this.handleWindowKeyDown),typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>this.renderView()),this.resizeObserver.observe(this)),this.renderView()}disconnectedCallback(){var e;this.removeEventListener("keydown",this.handleKeyDown),this.removeEventListener("wheel",this.handleWheel),this.removeEventListener("pointermove",this.handlePointerMove),this.removeEventListener("pointerup",this.handlePointerUp),this.removeEventListener("pointercancel",this.handlePointerCancel),window.removeEventListener("keydown",this.handleWindowKeyDown),(e=this.resizeObserver)==null||e.disconnect(),this.resizeObserver=null,this._trackEl=null,this.clearDragHoldTimer(),this.stopAutoScroll()}scheduleRender(){this.renderPending||(this.renderPending=!0,queueMicrotask(()=>{this.renderPending=!1,this.renderView()}))}contentCards(){return this._cards.filter(e=>e.type==="content")}getCardSizes(){const e=this.clientWidth>0?this.clientWidth:Y,s=this.clientHeight>0?this.clientHeight:K;return Wa(this.contentCards().map(i=>({cols:i.cols,rows:i.rows})),e,s)}getColumnStep(){const e=this.clientWidth>0?this.clientWidth:Y,s=this.clientHeight>0?this.clientHeight:K;return Js(e,s)+be}clampScrollPosition(e){const s=this.clientWidth>0?this.clientWidth:Y,i=this.clientHeight>0?this.clientHeight:K,n=as(s,i),a=ei(this.contentCards(),n);return Math.min(a,Math.max(0,e))}emitScrollPositionChanged(e){this.dispatchEvent(new Na(e))}emitCardOrderChanged(e){this.dispatchEvent(new Ha(e))}shiftWindow(e){const s=this.contentCards();if(s.length===0)return;const i=xt(s);let n=this._scrollPosition;e===1?(os(n,i)||(n=ls(s,n)),n=ls(s,n+N)):os(n,i)?n=za(s,n):n=Ma(s,n),n=this.clampScrollPosition(n),!(Math.abs(n-this._scrollPosition)<N)&&(this._scrollPosition=n,this.emitScrollPositionChanged(this._scrollPosition),this.animateNextRender=!0,this.scheduleRender())}getRestoreScrollPositionForCard(e){const s=this.contentCards();if(s.length===0||e<0)return this._scrollPosition;let i=0;for(let n=0;n<e&&n<s.length;n+=1)i+=ve(s[n].cols);return this.clampScrollPosition(i)}pointerTargetMatchesDragHandle(e){if(!(e instanceof Element))return!1;const s=e.getRootNode();if(!(s instanceof ShadowRoot)&&!(s instanceof Document))return!1;try{return e.closest(this._dragHandleSelector)!==null}catch{return!1}}handleCardPointerDown(e,s){if(e.pointerType==="touch")return;const i=e.target;if(!(i instanceof Element)||i.closest(".artifact-close-btn")||!this.pointerTargetMatchesDragHandle(i))return;const n=e.currentTarget;if(!(n instanceof HTMLElement))return;const a=this.contentCards().findIndex(l=>l.id===s);if(a===-1)return;const o=n.getBoundingClientRect();this.clearDragHoldTimer(),this.stopAutoScroll(),this.dragStatus="pending",this.dragPointerID=e.pointerId,this.dragCardID=s,this.dragCardIndex=a,this.dragStartX=e.clientX,this.dragStartY=e.clientY,this.dragPointerX=e.clientX,this.dragPointerY=e.clientY,this.dragOffsetX=e.clientX-o.left,this.dragOffsetY=e.clientY-o.top,this.dragPlaceholderIndex=a,this.capturedDragTarget=n,n.setPointerCapture(e.pointerId),this.dragHoldTimer=setTimeout(()=>{this.startDragging()},Ra)}getDragDistance(){return Math.hypot(this.dragPointerX-this.dragStartX,this.dragPointerY-this.dragStartY)}startDragging(){this.dragStatus!=="pending"||this.dragCardID===null||(this.clearDragHoldTimer(),this.dragStatus="dragging",this.updateAutoScrollDirection(),this.scheduleRender())}finishDragging(){if(this.dragStatus!=="dragging"||this.dragCardID===null){this.resetDragState();return}const e=this.contentCards(),s=[...e],[i]=s.splice(this.dragCardIndex,1);i&&s.splice(this.dragPlaceholderIndex,0,i);const n=s.map(o=>o.id),a=n.some((o,l)=>{var c;return o!==((c=e[l])==null?void 0:c.id)});this.resetDragState(),a&&this.emitCardOrderChanged(n),this.scheduleRender()}cancelDragging(){this.resetDragState(),this.scheduleRender()}resetDragState(){this.clearDragHoldTimer(),this.stopAutoScroll(),this.capturedDragTarget&&this.dragPointerID!==null&&this.capturedDragTarget.hasPointerCapture(this.dragPointerID)&&this.capturedDragTarget.releasePointerCapture(this.dragPointerID),this.dragStatus="idle",this.dragPointerID=null,this.dragCardID=null,this.dragCardIndex=-1,this.dragPlaceholderIndex=0,this.capturedDragTarget=null}clearDragHoldTimer(){this.dragHoldTimer!==null&&(clearTimeout(this.dragHoldTimer),this.dragHoldTimer=null)}updateDropTargetFromDOM(){if(this.dragStatus!=="dragging"||this.dragCardID===null)return;const e=this.contentCards().find(n=>n.id===this.dragCardID);e&&re(e.cols,e.rows,this.clientWidth||Y,this.clientHeight||K);const s=[...this.querySelectorAll(".track .card-slot[data-layout-card-id]")].filter(n=>n instanceof HTMLElement&&n.getAttribute("data-layout-card-id")!==this.dragCardID).map(n=>{const a=n.getBoundingClientRect();return{left:a.left,right:a.right,top:a.top,bottom:a.bottom}}),{index:i}=Aa(this.dragPointerX,this.dragPointerY,s,{},this.dragPlaceholderIndex);i!==this.dragPlaceholderIndex&&(this.dragPlaceholderIndex=i,this.scheduleRender())}updateAutoScrollDirection(){if(this.dragStatus!=="dragging"){this.stopAutoScroll();return}let e=0;if(this.dragPointerX<=ns?e=-1:window.innerWidth-this.dragPointerX<=ns&&(e=1),e===0){this.stopAutoScroll();return}this.autoScrollFrame!==null&&this.autoScrollDirection===e||(this.stopAutoScroll(),this.autoScrollDirection=e,this.autoScrollLastFrameAt=null,this.autoScrollFrame=requestAnimationFrame(this.stepAutoScroll))}stopAutoScroll(){this.autoScrollFrame!==null&&(cancelAnimationFrame(this.autoScrollFrame),this.autoScrollFrame=null),this.autoScrollDirection=0,this.autoScrollLastFrameAt=null}getRenderableCards(){const e=this.contentCards();if(this.dragStatus!=="dragging"||this.dragCardID===null)return e.map(l=>({type:"content",card:l}));const s=e.find(l=>l.id===this.dragCardID),i=(s==null?void 0:s.cols)??we,n=(s==null?void 0:s.rows)??ce,o=e.filter(l=>l.id!==this.dragCardID).map(l=>({type:"content",card:l}));return o.splice(this.dragPlaceholderIndex,0,{type:"placeholder",cols:i,rows:n}),o}getDraggedCard(){return this.dragCardID===null?null:this.contentCards().find(e=>e.id===this.dragCardID)??null}calculateTranslateX(){const e=this.contentCards(),s=this.clientWidth>0?this.clientWidth:Y,i=this.clientHeight>0?this.clientHeight:K,n=as(s,i);return Oa(e,this._scrollPosition,s,i,n)}template(){const e=this.clientWidth>0?this.clientWidth:Y,s=this.clientHeight>0?this.clientHeight:K,i=this.getRenderableCards(),n=this.getDraggedCard();return b`
|
|
162
|
-
<div class="track" style="gap: ${be}px;">
|
|
163
|
-
${i.map(a=>{if(a.type==="placeholder"){const c=re(a.cols,a.rows,e,s);return b`
|
|
164
|
-
<div
|
|
165
|
-
class="card-slot placeholder"
|
|
166
|
-
style="--layout-cols: ${c.cols}; --layout-rows: ${c.rows};"
|
|
167
|
-
></div>
|
|
168
|
-
`}const{card:o}=a,l=re(o.cols,o.rows,e,s);return b`
|
|
169
|
-
<div
|
|
170
|
-
class="card-slot"
|
|
171
|
-
data-layout-card-id=${o.id}
|
|
172
|
-
style="--layout-cols: ${l.cols}; --layout-rows: ${l.rows};"
|
|
173
|
-
@pointerdown=${c=>this.handleCardPointerDown(c,o.id)}
|
|
174
|
-
>
|
|
175
|
-
${o.render()}
|
|
176
|
-
</div>
|
|
177
|
-
`})}
|
|
178
|
-
</div>
|
|
179
|
-
${this.dragStatus==="dragging"&&n?(()=>{const a=re(n.cols,n.rows,e,s);return b`
|
|
180
|
-
<div
|
|
181
|
-
class="card-slot dragging"
|
|
182
|
-
data-layout-card-id=${n.id}
|
|
183
|
-
style="
|
|
184
|
-
--layout-cols: ${a.cols};
|
|
185
|
-
--layout-rows: ${a.rows};
|
|
186
|
-
left: ${this.dragPointerX-this.dragOffsetX}px;
|
|
187
|
-
top: ${this.dragPointerY-this.dragOffsetY}px;
|
|
188
|
-
"
|
|
189
|
-
>
|
|
190
|
-
${n.render()}
|
|
191
|
-
</div>
|
|
192
|
-
`})():null}
|
|
193
|
-
`}updateTrackPosition(e){if(!this._trackEl)return;this._trackEl.style.transition=e?`transform ${Ea}ms ease`:"none";const s=this.calculateTranslateX();this._trackEl.style.transform=`translateX(${s}px)`}renderView(){const e=this.animateNextRender;this.animateNextRender=!0,this._scrollPosition=this.clampScrollPosition(this._scrollPosition),R(this.template(),this),this._trackEl||(this._trackEl=this.querySelector(".track")),this.updateTrackPosition(e)}}customElements.define("layout-stream",Fa);class Ua extends HTMLElement{constructor(){super(...arguments);h(this,"workspaceService",I.resolve("WorkspaceService"));h(this,"subscriptions",new Ze);h(this,"handleCloseArtifact",e=>{e instanceof Qs&&this.workspaceService.removeArtifact(e.id)});h(this,"handleScrollPositionChanged",e=>{const s=e;typeof s.scrollPosition=="number"&&Number.isFinite(s.scrollPosition)&&this.workspaceService.setScrollPosition(s.scrollPosition)});h(this,"handleCardOrderChanged",e=>{const s=e;Array.isArray(s.ids)&&s.ids.length>0&&this.workspaceService.reorderLayout(s.ids)})}connectedCallback(){this.render(),this.subscriptions.add(this.workspaceService.on("change",()=>this.render()))}disconnectedCallback(){this.subscriptions.dispose()}buildLayoutCards(){const e=this.workspaceService.activeWorkspace;if(!e)return[];const s=new Map(this.workspaceService.activeArtifacts.map(i=>[i.id,i]));return e.layout.map(i=>{const n=s.get(i.artifactID);return n?{id:i.artifactID,cols:i.cols,rows:i.rows,type:"content",render:()=>b`<artifact-view .artifact=${n}></artifact-view>`}:null}).filter(i=>i!==null)}render(){const e=this.buildLayoutCards();if(e.length===0){R(b`<p data-testid="empty-workspace">No artifacts yet.</p>`,this);return}R(b`
|
|
194
|
-
<layout-stream
|
|
195
|
-
.cards=${e}
|
|
196
|
-
.scrollPosition=${this.workspaceService.scrollPosition}
|
|
197
|
-
@scroll=${this.handleScrollPositionChanged}
|
|
198
|
-
@card-order-changed=${this.handleCardOrderChanged}
|
|
199
|
-
@close-artifact=${this.handleCloseArtifact}
|
|
200
|
-
></layout-stream>
|
|
201
|
-
`,this)}}customElements.define("workspace-view",Ua);class qa extends Event{constructor(){super("edit-workspace",{bubbles:!0,composed:!0})}}class ti extends Event{constructor(e){super("create-workspace",{bubbles:!0,composed:!0});h(this,"serverURL");this.serverURL=e}}class Ba extends Event{constructor(){super("delete-workspace",{bubbles:!0,composed:!0})}}class Xa extends HTMLElement{constructor(){super(...arguments);h(this,"workspaceService",I.resolve("WorkspaceService"));h(this,"serverManager",I.has("ServerManager")?I.resolve("ServerManager"):null);h(this,"subscriptions",new Ze)}connectedCallback(){this.render(),this.subscriptions.add(this.workspaceService.on("change",()=>this.render())),this.serverManager&&this.subscriptions.add(this.serverManager.on("change",()=>this.render()))}disconnectedCallback(){this.subscriptions.dispose()}handleSelect(e){e instanceof Ds&&this.workspaceService.setActiveWorkspace(e.value)}closeDropdown(){var e;(e=this.querySelector("dropdown-menu"))==null||e.close()}handleEditWorkspace(){this.workspaceService.activeWorkspace&&(this.closeDropdown(),this.dispatchEvent(new qa))}handleCreateWorkspace(e){this.closeDropdown(),this.dispatchEvent(new ti(e))}handleDeleteWorkspace(){this.workspaceService.activeWorkspace&&(this.closeDropdown(),this.dispatchEvent(new Ba))}render(){var a;const e=((a=this.workspaceService.activeWorkspace)==null?void 0:a.name)??"No workspaces",s=this.serverManager?this.serverManager.serverRecords.map(o=>({...o,sortedWorkspaces:[...o.workspaces.values()].sort((l,c)=>l.name.localeCompare(c.name,void 0,{sensitivity:"base"}))})):[],i=this.serverManager?[]:[...this.workspaceService.workspaces??[]].sort((o,l)=>o.name.localeCompare(l.name,void 0,{sensitivity:"base"})),n=this.workspaceService.activeWorkspaceServerURL;R(b`
|
|
202
|
-
<dropdown-menu
|
|
203
|
-
title=${e}
|
|
204
|
-
@select=${o=>this.handleSelect(o)}
|
|
205
|
-
>
|
|
206
|
-
<button
|
|
207
|
-
slot="trigger"
|
|
208
|
-
trigger
|
|
209
|
-
type="button"
|
|
210
|
-
aria-label="Choose workspace"
|
|
211
|
-
></button>
|
|
212
|
-
${this.serverManager?s.map(o=>b`
|
|
213
|
-
<dropdown-group>
|
|
214
|
-
<dropdown-label>${o.name}</dropdown-label>
|
|
215
|
-
${o.sortedWorkspaces.map(l=>this.renderWorkspaceItem(l))}
|
|
216
|
-
<dropdown-item action @click=${()=>this.handleCreateWorkspace(o.url)}>
|
|
217
|
-
+ New workspace
|
|
218
|
-
</dropdown-item>
|
|
219
|
-
</dropdown-group>
|
|
220
|
-
`):b`
|
|
221
|
-
<dropdown-group>
|
|
222
|
-
${i.map(o=>this.renderWorkspaceItem(o))}
|
|
223
|
-
${n?b`
|
|
224
|
-
<dropdown-item action @click=${()=>this.handleCreateWorkspace(n)}>
|
|
225
|
-
+ New workspace
|
|
226
|
-
</dropdown-item>
|
|
227
|
-
`:null}
|
|
228
|
-
</dropdown-group>
|
|
229
|
-
`}
|
|
230
|
-
${this.workspaceService.activeWorkspace?b`
|
|
231
|
-
<dropdown-divider></dropdown-divider>
|
|
232
|
-
<dropdown-group>
|
|
233
|
-
<dropdown-item action @click=${()=>this.handleEditWorkspace()}>
|
|
234
|
-
Edit workspace...
|
|
235
|
-
</dropdown-item>
|
|
236
|
-
<dropdown-item action danger @click=${()=>this.handleDeleteWorkspace()}>
|
|
237
|
-
Delete workspace...
|
|
238
|
-
</dropdown-item>
|
|
239
|
-
</dropdown-group>
|
|
240
|
-
`:null}
|
|
241
|
-
</dropdown-menu>
|
|
242
|
-
`,this)}renderWorkspaceItem(e){var i;const s=e.id===this.workspaceService.activeWorkspaceID?((i=this.workspaceService.activeWorkspace)==null?void 0:i.name)??e.name:e.name;return b`
|
|
243
|
-
<dropdown-item
|
|
244
|
-
value=${e.id}
|
|
245
|
-
?selected=${e.id===this.workspaceService.activeWorkspaceID}
|
|
246
|
-
>
|
|
247
|
-
${s}
|
|
248
|
-
</dropdown-item>
|
|
249
|
-
`}}customElements.define("workspace-picker",Xa);class ri extends HTMLElement{constructor(){super(...arguments);h(this,"workspaceService",I.resolve("WorkspaceService"));h(this,"subscriptions",new Ze);h(this,"_mode","edit");h(this,"_targetServerURL");h(this,"createPending",!1)}get open(){return this.hasAttribute("open")}set mode(e){this._mode=e,this.render()}get mode(){return this._mode}set targetServerURL(e){this._targetServerURL=e,this.render()}get targetServerURL(){return this._targetServerURL}attributeChangedCallback(e){e==="open"&&(this.open||(this.createPending=!1),this.render())}connectedCallback(){this.render(),this.subscriptions.add(this.workspaceService.on("change",()=>this.render()))}disconnectedCallback(){this.subscriptions.dispose()}emitClose(){this.dispatchEvent(new Event("close",{bubbles:!0}))}async handleSubmit(e){e.preventDefault();const s=e.currentTarget,i=new FormData(s),n=String(i.get("name")??"").trim();if(n){if(this._mode==="edit"){this.workspaceService.renameWorkspace(n),this.emitClose();return}if(this._targetServerURL){this.createPending=!0,this.render();try{await this.workspaceService.createWorkspace(this._targetServerURL,n),this.emitClose()}catch{this.createPending=!1,this.render()}}}}render(){var n;const e=this._mode==="edit"?"Edit workspace":"New workspace",s=this._mode==="edit"?"Save":this.createPending?"Creating...":"Create",i=this._mode==="edit"?((n=this.workspaceService.activeWorkspace)==null?void 0:n.name)??"":"";R(b`
|
|
250
|
-
<modal-overlay ?open=${this.open}>
|
|
251
|
-
<section class="workspace-modal">
|
|
252
|
-
<form class="workspace-form" @submit=${a=>void this.handleSubmit(a)}>
|
|
253
|
-
<h2 class="workspace-modal-title">${e}</h2>
|
|
254
|
-
<label class="settings-field">
|
|
255
|
-
<span>Name</span>
|
|
256
|
-
<input type="text" name="name" .value=${i} required />
|
|
257
|
-
</label>
|
|
258
|
-
<div class="workspace-form-actions">
|
|
259
|
-
<button type="submit" class="settings-submit-button" ?disabled=${this.createPending}>
|
|
260
|
-
${s}
|
|
261
|
-
</button>
|
|
262
|
-
<button type="button" class="settings-cancel-button" @click=${()=>this.emitClose()}>
|
|
263
|
-
Cancel
|
|
264
|
-
</button>
|
|
265
|
-
</div>
|
|
266
|
-
</form>
|
|
267
|
-
</section>
|
|
268
|
-
</modal-overlay>
|
|
269
|
-
`,this)}}h(ri,"observedAttributes",["open"]);customElements.define("workspace-form-modal",ri);class si extends HTMLElement{constructor(){super(...arguments);h(this,"workspaceService",I.resolve("WorkspaceService"));h(this,"serverManager",I.has("ServerManager")?I.resolve("ServerManager"):null);h(this,"subscriptions",new Ze);h(this,"deletePending",!1);h(this,"deleteError",null)}get open(){return this.hasAttribute("open")}attributeChangedCallback(e,s,i){e==="open"&&(i!==null&&s===null&&(this.deletePending=!1,this.deleteError=null),this.render())}connectedCallback(){this.render(),this.subscriptions.add(this.workspaceService.on("change",()=>this.render())),this.serverManager&&this.subscriptions.add(this.serverManager.on("change",()=>this.render()))}disconnectedCallback(){this.subscriptions.dispose()}emitClose(){this.dispatchEvent(new Event("close",{bubbles:!0}))}async handleDeleteWorkspace(){this.deletePending=!0,this.deleteError=null,this.render();try{await this.workspaceService.deleteWorkspace(),this.emitClose()}catch(e){this.deletePending=!1,this.deleteError=e instanceof Error?e.message:String(e),this.render()}}render(){var s;const e=this.workspaceService.activeWorkspaceServerURL!==null&&this.serverManager!==null&&this.workspaceService.activeWorkspaceServerURL!==this.serverManager.localServerURL;R(b`
|
|
270
|
-
<modal-overlay ?open=${this.open}>
|
|
271
|
-
<section class="workspace-modal workspace-delete-modal">
|
|
272
|
-
<div class="workspace-form">
|
|
273
|
-
<h2 class="workspace-modal-title">Delete workspace</h2>
|
|
274
|
-
<p class="workspace-delete-copy">
|
|
275
|
-
Delete <strong>${((s=this.workspaceService.activeWorkspace)==null?void 0:s.name)??""}</strong>?
|
|
276
|
-
</p>
|
|
277
|
-
${e?b`<p class="workspace-delete-warning">This will delete it for everyone.</p>`:null}
|
|
278
|
-
${this.deleteError?b`<p class="workspace-delete-error">${this.deleteError}</p>`:null}
|
|
279
|
-
<div class="workspace-form-actions">
|
|
280
|
-
<button
|
|
281
|
-
type="button"
|
|
282
|
-
class="settings-server-remove-button"
|
|
283
|
-
?disabled=${this.deletePending}
|
|
284
|
-
@click=${()=>void this.handleDeleteWorkspace()}
|
|
285
|
-
>
|
|
286
|
-
${this.deletePending?"Deleting...":"Delete"}
|
|
287
|
-
</button>
|
|
288
|
-
<button
|
|
289
|
-
type="button"
|
|
290
|
-
class="settings-cancel-button"
|
|
291
|
-
?disabled=${this.deletePending}
|
|
292
|
-
@click=${()=>this.emitClose()}
|
|
293
|
-
>
|
|
294
|
-
Cancel
|
|
295
|
-
</button>
|
|
296
|
-
</div>
|
|
297
|
-
</div>
|
|
298
|
-
</section>
|
|
299
|
-
</modal-overlay>
|
|
300
|
-
`,this)}}h(si,"observedAttributes",["open"]);customElements.define("workspace-delete-modal",si);class ii extends HTMLElement{constructor(){super(...arguments);h(this,"serverManager",I.has("ServerManager")?I.resolve("ServerManager"):null);h(this,"subscriptions",new Ze);h(this,"addServerFormOpen",!1)}get open(){return this.hasAttribute("open")}attributeChangedCallback(e){e==="open"&&(this.open||(this.addServerFormOpen=!1),this.render())}connectedCallback(){this.render(),this.serverManager&&this.subscriptions.add(this.serverManager.on("change",()=>this.render()))}disconnectedCallback(){this.subscriptions.dispose()}emitClose(){this.dispatchEvent(new Event("close",{bubbles:!0}))}openAddServerForm(){this.addServerFormOpen=!0,this.render()}closeAddServerForm(){this.addServerFormOpen&&(this.addServerFormOpen=!1,this.render())}handleAddServer(e){if(!this.serverManager)return;e.preventDefault();const s=e.currentTarget,i=new FormData(s),n=String(i.get("name")??"").trim(),a=String(i.get("url")??"").trim();!n||!a||(this.serverManager.addServer(a,n),this.addServerFormOpen=!1,s.reset(),this.render())}render(){var i;const e=((i=this.serverManager)==null?void 0:i.serverRecords)??[],s=this.serverManager!==null;R(b`
|
|
301
|
-
<modal-overlay ?open=${this.open}>
|
|
302
|
-
<section class="settings-panel">
|
|
303
|
-
<panel-view closable @close=${n=>n instanceof Ms&&this.emitClose()}>
|
|
304
|
-
<panel-page id="main" title="Settings">
|
|
305
|
-
<div class="settings-section">
|
|
306
|
-
${s?b`
|
|
307
|
-
<h3 class="settings-section-title">Servers</h3>
|
|
308
|
-
<div class="settings-server-list">
|
|
309
|
-
${e.map(n=>{var a;return b`
|
|
310
|
-
<div class="settings-card settings-server">
|
|
311
|
-
<div class="settings-server-details">
|
|
312
|
-
<div class="settings-server-name">${n.name}</div>
|
|
313
|
-
<div class="settings-server-url">${n.url}</div>
|
|
314
|
-
</div>
|
|
315
|
-
${n.url!==((a=this.serverManager)==null?void 0:a.localServerURL)?b`
|
|
316
|
-
<button
|
|
317
|
-
type="button"
|
|
318
|
-
class="settings-server-remove-button"
|
|
319
|
-
aria-label=${`Remove ${n.name}`}
|
|
320
|
-
@click=${()=>{var o;return(o=this.serverManager)==null?void 0:o.removeServer(n.url)}}
|
|
321
|
-
>
|
|
322
|
-
Remove
|
|
323
|
-
</button>
|
|
324
|
-
`:null}
|
|
325
|
-
</div>
|
|
326
|
-
`})}
|
|
327
|
-
</div>
|
|
328
|
-
${this.addServerFormOpen?b`
|
|
329
|
-
<form class="settings-card settings-add-server-form" @submit=${n=>this.handleAddServer(n)}>
|
|
330
|
-
<label class="settings-field">
|
|
331
|
-
<span>Name</span>
|
|
332
|
-
<input type="text" name="name" required />
|
|
333
|
-
</label>
|
|
334
|
-
<label class="settings-field">
|
|
335
|
-
<span>URL</span>
|
|
336
|
-
<input type="url" name="url" required />
|
|
337
|
-
</label>
|
|
338
|
-
<div class="settings-form-actions">
|
|
339
|
-
<button type="submit" class="settings-submit-button">Connect</button>
|
|
340
|
-
<button
|
|
341
|
-
type="button"
|
|
342
|
-
class="settings-cancel-button"
|
|
343
|
-
data-action="cancel-connect-form"
|
|
344
|
-
@click=${()=>this.closeAddServerForm()}
|
|
345
|
-
>
|
|
346
|
-
Cancel
|
|
347
|
-
</button>
|
|
348
|
-
</div>
|
|
349
|
-
</form>
|
|
350
|
-
`:b`
|
|
351
|
-
<button
|
|
352
|
-
type="button"
|
|
353
|
-
class="settings-submit-button settings-connect-button"
|
|
354
|
-
data-action="show-connect-form"
|
|
355
|
-
@click=${()=>this.openAddServerForm()}
|
|
356
|
-
>
|
|
357
|
-
+ Connect to server
|
|
358
|
-
</button>
|
|
359
|
-
`}
|
|
360
|
-
`:b`<p class="settings-copy">No additional settings yet.</p>`}
|
|
361
|
-
</div>
|
|
362
|
-
</panel-page>
|
|
363
|
-
</panel-view>
|
|
364
|
-
</section>
|
|
365
|
-
</modal-overlay>
|
|
366
|
-
`,this)}}h(ii,"observedAttributes",["open"]);customElements.define("settings-modal",ii);class ni extends Event{constructor(e){super("auth-submit",{bubbles:!0,composed:!0});h(this,"token");this.token=e}}class Ga extends HTMLElement{constructor(){super(...arguments);h(this,"_invalid",!1);h(this,"_tokenValue","")}set invalid(e){this._invalid=e,this.render()}get invalid(){return this._invalid}set tokenValue(e){this._tokenValue=e,this.render()}get tokenValue(){return this._tokenValue}connectedCallback(){this.render()}handleInput(e){const s=e.currentTarget;this._tokenValue=s.value}handleSubmit(e){e.preventDefault();const s=this._tokenValue.trim();s&&this.dispatchEvent(new ni(s))}render(){R(b`
|
|
367
|
-
<modal-overlay open>
|
|
368
|
-
<section class="auth-modal">
|
|
369
|
-
<form class="auth-form" @submit=${e=>this.handleSubmit(e)}>
|
|
370
|
-
<h2 class="auth-modal-title">Enter access token</h2>
|
|
371
|
-
<p class="auth-modal-copy">This Television server requires a token.</p>
|
|
372
|
-
<label class="settings-field">
|
|
373
|
-
<span>Token</span>
|
|
374
|
-
<input
|
|
375
|
-
class=${this.invalid?"auth-token-input-invalid":""}
|
|
376
|
-
type="password"
|
|
377
|
-
name="token"
|
|
378
|
-
.value=${this.tokenValue}
|
|
379
|
-
@input=${e=>this.handleInput(e)}
|
|
380
|
-
required
|
|
381
|
-
/>
|
|
382
|
-
</label>
|
|
383
|
-
<button type="submit" class="settings-submit-button">Connect</button>
|
|
384
|
-
</form>
|
|
385
|
-
</section>
|
|
386
|
-
</modal-overlay>
|
|
387
|
-
`,this)}}customElements.get("auth-modal")||customElements.define("auth-modal",Ga);class Va extends HTMLElement{constructor(){super(...arguments);h(this,"modals",{workspaceForm:{open:!1,mode:"edit"},deleteWorkspace:{open:!1},settings:{open:!1}});h(this,"_authRequired",!1);h(this,"_authInvalid",!1);h(this,"_authToken","");h(this,"_authError",null)}set authRequired(e){this._authRequired=e,this.render()}get authRequired(){return this._authRequired}set authInvalid(e){this._authInvalid=e,this.render()}get authInvalid(){return this._authInvalid}set authToken(e){this._authToken=e,this.render()}get authToken(){return this._authToken}set authError(e){this._authError=e,this.render()}get authError(){return this._authError}connectedCallback(){this.render()}render(){if(this.authRequired){R(b`
|
|
388
|
-
<main class="auth-gate">
|
|
389
|
-
<auth-modal
|
|
390
|
-
.invalid=${this.authInvalid}
|
|
391
|
-
.tokenValue=${this.authToken}
|
|
392
|
-
></auth-modal>
|
|
393
|
-
</main>
|
|
394
|
-
`,this);return}const e=b`
|
|
395
|
-
<header>
|
|
396
|
-
<nav>
|
|
397
|
-
<workspace-picker
|
|
398
|
-
@edit-workspace=${()=>{this.modals.workspaceForm={open:!0,mode:"edit"},this.render()}}
|
|
399
|
-
@create-workspace=${s=>{s instanceof ti&&(this.modals.workspaceForm={open:!0,mode:"create",targetServerURL:s.serverURL},this.render())}}
|
|
400
|
-
@delete-workspace=${()=>{this.modals.deleteWorkspace={open:!0},this.render()}}
|
|
401
|
-
></workspace-picker>
|
|
402
|
-
</nav>
|
|
403
|
-
<button
|
|
404
|
-
type="button"
|
|
405
|
-
variant="toolbar"
|
|
406
|
-
size="sm"
|
|
407
|
-
aria-label="Settings"
|
|
408
|
-
@click=${()=>{this.modals.settings={open:!this.modals.settings.open},this.render()}}
|
|
409
|
-
>
|
|
410
|
-
${Rn({size:16,weight:"bold"})}
|
|
411
|
-
</button>
|
|
412
|
-
</header>
|
|
413
|
-
<main>
|
|
414
|
-
${this.authError?b`<p data-testid="auth-error">${this.authError}</p>`:b`<workspace-view></workspace-view>`}
|
|
415
|
-
</main>
|
|
416
|
-
<workspace-form-modal
|
|
417
|
-
?open=${this.modals.workspaceForm.open}
|
|
418
|
-
.mode=${this.modals.workspaceForm.mode}
|
|
419
|
-
.targetServerURL=${this.modals.workspaceForm.targetServerURL}
|
|
420
|
-
@close=${()=>{this.modals.workspaceForm={open:!1,mode:"edit"},this.render()}}
|
|
421
|
-
></workspace-form-modal>
|
|
422
|
-
<workspace-delete-modal
|
|
423
|
-
?open=${this.modals.deleteWorkspace.open}
|
|
424
|
-
@close=${()=>{this.modals.deleteWorkspace={open:!1},this.render()}}
|
|
425
|
-
></workspace-delete-modal>
|
|
426
|
-
<settings-modal
|
|
427
|
-
?open=${this.modals.settings.open}
|
|
428
|
-
@close=${()=>{this.modals.settings={open:!1},this.render()}}
|
|
429
|
-
></settings-modal>
|
|
430
|
-
`;R(e,this)}}customElements.define("television-app",Va);const xr=un(),sr=cn(),ja=hn(),ai=Zi(xr?"television-electron":"television-browser",sr),ir=new Map,nr=new Ei({clientStore:ai,servers:ir}),Q=document.createElement("television-app");I.register("WorkspaceService",()=>nr);if(xr){const r=new sn({clientStore:ai,servers:ir,workspaceService:nr,localServerURL:sr});I.register("ServerManager",()=>r),r.connectConfiguredServers()}else{let r=null;const t=(i,n,a)=>{Q.authRequired=i,Q.authInvalid=n,Q.authToken=a},e=i=>{const n=new URL(window.location.href);n.searchParams.set("token",i),window.history.replaceState({},"",`${n.pathname}${n.search}${n.hash}`)},s=i=>{r==null||r.disconnect();const n=new vs({url:sr,name:"Server",token:i,servers:ir});r=n,n.on("serverEvent",({serverURL:a,event:o})=>{r===n&&(Q.authError=null,t(!1,!1,i??""),nr.handleServerEvent(a,o))}),n.on("auth-failed",()=>{r===n&&t(!0,i!==null,i??"")}),n.connect()};Q.addEventListener("auth-submit",i=>{var a;const n=i instanceof ni?i.token:i instanceof CustomEvent&&typeof((a=i.detail)==null?void 0:a.token)=="string"?i.detail.token:null;n&&(Q.authError=null,t(!0,!1,n),e(n),s(n))}),s(ja)}xr&&document.body.classList.add("electron");document.body.appendChild(Q);
|