@keyueclaw/web-sdk 0.1.99 → 0.1.100

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.
@@ -1122,7 +1122,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
1122
1122
  <line x1="12" y1="19" x2="12" y2="5" />
1123
1123
  <polyline points="5 12 12 5 19 12" />
1124
1124
  </svg>
1125
- `,$=class extends EU{constructor(...e){super(...e),this.serviceUrl=``,this.tenantId=``,this.operatorName=``,this.loading=!1,this.error=``,this.components=[],this.statusFilter=`all`,this.searchQuery=``,this.page=1,this.sortAsc=!1,this.showCreate=!1,this.createName=``,this.createDesc=``,this.createError=``,this.deleteTarget=null,this.refsTarget=null,this.toastMessage=null,this.toastKind=`error`,this.toastCountdown=null,this.toastTimer=null,this.toastCountdownTimer=null,this.detailMode=!1,this.detailLoading=!1,this.detailComponent=null,this.detailDraft=``,this.detailDraftDirty=!1,this.detailAutosaveStatus=`idle`,this.detailLastSaved=null,this.detailEditingName=!1,this.detailNameInput=``,this.detailShowHistoryDialog=!1,this.detailHistorySelectedVer=null,this.detailShowPublishDialog=!1,this.detailPublishVersionLabel=``,this.detailPublishNotes=``,this.detailPublishError=``,this.detailShowActivateDialog=!1,this.detailActivateTargetId=``,this.detailViewVersionTarget=null,this.detailViewVersionLoading=!1,this.detailRollbackTarget=null,this.detailApiRefOpen=!1,this.detailApiRefQuery=``,this.detailApiRefStartPos=0,this.detailApiRefItems=[],this.detailApiRefPath=null,this.detailApiRefLoading=!1,this.detailVarRefOpen=!1,this.detailVarRefQuery=``,this.detailVarRefStartPos=0,this.detailVarRefItems=[],this.detailVarRefLoading=!1,this._autosaveTimer=null,this._autosavePromise=null,this._detailTextarea=null,this._onDocKeyDown=e=>{e.key===`Escape`&&this._dismissTrigger()}}connectedCallback(){super.connectedCallback(),document.addEventListener(`keydown`,this._onDocKeyDown)}disconnectedCallback(){super.disconnectedCallback(),this._autosaveTimer!==null&&clearTimeout(this._autosaveTimer),document.removeEventListener(`keydown`,this._onDocKeyDown)}makeClient(){return new iA({serviceUrl:this.serviceUrl||Sj(this),settings:this.settings,password:this.password})}mapComponent(e){return{...e,statusLabel:e.status===1?`active`:`inactive`,currentVersionText:e.currentVersionLabel||(e.currentVersionNumber===null?`—`:`v${e.currentVersionNumber}`)}}async loadComponents(){if(this.tenantId){this.loading=!0,this.error=``;try{this.components=(await this.makeClient().listComponents({tenantId:this.tenantId,page:1,pageSize:200})).list.map(e=>this.mapComponent(e))}catch(e){this.error=e instanceof Error?e.message:String(e)}finally{this.loading=!1}}}startEmbeddedGatewayConnection(){this.loadComponents()}handleEmbeddedGatewayUpdates(e){e.has(`tenantId`)&&this.tenantId&&this.loadComponents(),super.handleEmbeddedGatewayUpdates(e)}get filtered(){let e=[...this.components];this.statusFilter!==`all`&&(e=e.filter(e=>e.statusLabel===this.statusFilter));let t=this.searchQuery.trim().toLowerCase();return t&&(e=e.filter(e=>e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t))),e.sort((e,t)=>{let n=e.updatedAt.localeCompare(t.updatedAt);return this.sortAsc?n:-n}),e}get paged(){let e=(this.page-1)*DU;return this.filtered.slice(e,e+DU)}get totalPages(){return Math.max(1,Math.ceil(this.filtered.length/DU))}showToast(e,t=`error`){this.toastTimer!==null&&(clearTimeout(this.toastTimer),this.toastTimer=null),this.toastCountdownTimer!==null&&(clearInterval(this.toastCountdownTimer),this.toastCountdownTimer=null),this.toastMessage=e,this.toastKind=t,this.toastCountdown=3,this.toastCountdownTimer=setInterval(()=>{this.toastCountdown!==null&&this.toastCountdown>0&&this.toastCountdown--},1e3),this.toastTimer=setTimeout(()=>{this.toastMessage=null,this.toastCountdown=null,this.toastTimer=null,this.toastCountdownTimer!==null&&(clearInterval(this.toastCountdownTimer),this.toastCountdownTimer=null)},3e3)}async doCreate(){let e=this.createName.trim();if(!e){this.createError=`请填写组件名称`;return}if(!/^[一-龥a-zA-Z0-9_]+$/.test(e)){this.createError=`名称只支持中文、英文、数字和下划线`;return}if(this.components.some(t=>t.name===e)){this.createError=`组件名称已存在`;return}if(!this.tenantId){this.createError=`租户 ID 缺失`;return}try{let t=await this.makeClient().createComponent({tenantId:this.tenantId,name:e,description:this.createDesc.trim(),operatorName:this.operatorName.trim()||void 0});this.showCreate=!1,this.createName=``,this.createDesc=``,this.createError=``,this.page=1,await this.loadComponents(),this.showToast(`组件创建成功`,`success`),this.dispatchEvent(new CustomEvent(`keyueclaw-component-detail`,{detail:{tenantId:this.tenantId,componentId:t.id},bubbles:!0,composed:!0}))}catch(e){this.createError=e instanceof Error?e.message:String(e)}}async doDelete(e){if(this.tenantId)try{await this.makeClient().deleteComponent({tenantId:this.tenantId,componentId:e.id}),this.components=this.components.filter(t=>t.id!==e.id),this.deleteTarget=null,this.showToast(`组件已删除`,`success`),this.page>this.totalPages&&(this.page=this.totalPages)}catch(e){this.error=e instanceof Error?e.message:String(e),this.showToast(e instanceof Error?e.message:String(e),`error`)}}async openReferences(e){if(this.tenantId)try{this.refsTarget={component:e,references:(await this.makeClient().getComponentReferences({tenantId:this.tenantId,componentId:e.id})).references}}catch(e){this.showToast(e instanceof Error?e.message:String(e),`error`)}}_mapVersions(e){let t=this.detailComponent?.currentVersionId;return e.map(e=>({id:e.id,version:e.versionLabel||`v${e.versionNumber}`,content:e.content??``,notes:e.changeLog,publishedBy:e.createdBy,publishedAt:e.createdAt,isCurrent:e.id===t}))}get _detailVersions(){return this.detailComponent?this._mapVersions(this.detailComponent.versions):[]}get _detailCurrentVersionText(){if(!this.detailComponent)return`—`;let e=this.detailComponent;return e.currentVersionLabel||(e.currentVersionNumber===null?`—`:`v${e.currentVersionNumber}`)}get _detailActivateDisabled(){let e=this._detailVersions;return e.length===0||(e[0]?.isCurrent??!1)}_suggestDetailNextVersion(){let e=this._detailVersions[0]?.version??``;if(!e)return`v1.0.0`;let t=e.match(/^v?(\d+)\.(\d+)\.(\d+)$/);return t?`v${t[1]}.${t[2]}.${Number(t[3])+1}`:``}async openDetail(e){if(this.tenantId){this.detailMode=!0,this.detailLoading=!0,this.detailComponent=null,this.detailDraft=``,this.detailDraftDirty=!1,this.detailAutosaveStatus=`idle`,this.detailLastSaved=null,this.detailEditingName=!1,this.detailShowHistoryDialog=!1,this.detailShowPublishDialog=!1,this.detailShowActivateDialog=!1,this.detailViewVersionTarget=null,this.detailRollbackTarget=null,this.detailApiRefOpen=!1,this.detailApiRefQuery=``,this.detailApiRefStartPos=0,this.detailApiRefItems=[],this.detailApiRefPath=null,this.detailApiRefLoading=!1,this.detailVarRefOpen=!1,this.detailVarRefQuery=``,this.detailVarRefStartPos=0,this.detailVarRefItems=[],this.detailVarRefLoading=!1;try{let t=await this.makeClient().getComponentDetail({tenantId:this.tenantId,componentId:e.id});this.detailComponent=t,this.detailDraft=t.draftContent||``}catch(e){this.showToast(e instanceof Error?e.message:String(e),`error`),this.detailMode=!1}finally{this.detailLoading=!1}}}async _refreshDetail(){if(!(!this.tenantId||!this.detailComponent))try{let e=await this.makeClient().getComponentDetail({tenantId:this.tenantId,componentId:this.detailComponent.id});this.detailComponent=e,this.detailDraft=e.draftContent||``,this.detailDraftDirty=!1}catch{}}_scheduleDetailAutosave(){this._autosaveTimer!==null&&clearTimeout(this._autosaveTimer),this.detailAutosaveStatus=`idle`,this._autosaveTimer=setTimeout(()=>{this._autosaveTimer=null,this._doDetailAutosave()},1200)}async _doDetailAutosave(){let e=this.detailComponent;if(!e)return!1;let t=(async()=>{this.detailAutosaveStatus=`saving`;try{this.tenantId&&await this.makeClient().saveComponentDraft({tenantId:this.tenantId,componentId:e.id,draftContent:this.detailDraft,name:e.name,description:e.description,usageCondition:e.usageCondition,operatorName:this.operatorName.trim()||void 0}),this.detailAutosaveStatus=`saved`;let t=new Date;return this.detailLastSaved=`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}:${t.getSeconds().toString().padStart(2,`0`)}`,!0}catch{return this.detailAutosaveStatus=`error`,!1}})();this._autosavePromise=t;try{return await t}finally{this._autosavePromise===t&&(this._autosavePromise=null)}}async _flushPendingDetailAutosave(){return this._autosaveTimer!==null&&(clearTimeout(this._autosaveTimer),this._autosaveTimer=null),this._autosavePromise?await this._autosavePromise:this.detailDraftDirty?await this._doDetailAutosave():!0}_saveDetailName(){let e=this.detailComponent;if(!e)return;let t=this.detailNameInput.trim();t&&t!==e.name&&(this.detailComponent={...e,name:t},this.detailDraftDirty=!0),this.detailEditingName=!1,this._doDetailAutosave()}_detailEditor(){return this.querySelector(`skill-code-editor`)??null}_taInsertAtCursor(e){let t=this._detailEditor();if(t){t.insertAtCursor(e);return}let n=this._detailTextarea;if(!n)return;let r=n.selectionStart,i=n.selectionEnd,a=n.value;n.value=a.slice(0,r)+e+a.slice(i),n.selectionStart=n.selectionEnd=r+e.length,this.detailDraft=n.value,this.detailDraftDirty=!0,this._scheduleDetailAutosave(),n.focus()}_taWrapSelection(e,t,n){let r=this._detailEditor();if(r){r.wrapSelection(e,t,n);return}let i=this._detailTextarea;if(!i)return;let a=i.selectionStart,o=i.selectionEnd,s=i.value,c=s.slice(a,o),l=c?e+c+t:e+n+t;i.value=s.slice(0,a)+l+s.slice(o),c?(i.selectionStart=a+e.length,i.selectionEnd=a+e.length+c.length):(i.selectionStart=a+e.length,i.selectionEnd=a+e.length+n.length),this.detailDraft=i.value,this.detailDraftDirty=!0,this._scheduleDetailAutosave(),i.focus()}_taInsertAtLineStart(e){let t=this._detailEditor();if(t){t.insertAtLineStart(e);return}let n=this._detailTextarea;if(!n)return;let r=n.selectionStart,i=n.value,a=i.lastIndexOf(`
1125
+ `,$=class extends EU{constructor(...e){super(...e),this.serviceUrl=``,this.tenantId=``,this.operatorName=``,this.loading=!1,this.error=``,this.components=[],this.statusFilter=`all`,this.searchQuery=``,this.page=1,this.sortAsc=!1,this.showCreate=!1,this.createName=``,this.createDesc=``,this.createError=``,this.deleteTarget=null,this.refsTarget=null,this.toastMessage=null,this.toastKind=`error`,this.toastCountdown=null,this.toastTimer=null,this.toastCountdownTimer=null,this.detailMode=!1,this.detailLoading=!1,this.detailComponent=null,this.detailDraft=``,this.detailDraftDirty=!1,this.detailAutosaveStatus=`idle`,this.detailLastSaved=null,this.detailEditingName=!1,this.detailNameInput=``,this.detailShowHistoryDialog=!1,this.detailHistorySelectedVer=null,this.detailShowPublishDialog=!1,this.detailPublishVersionLabel=``,this.detailPublishNotes=``,this.detailPublishError=``,this.detailShowActivateDialog=!1,this.detailActivateTargetId=``,this.detailViewVersionTarget=null,this.detailViewVersionLoading=!1,this.detailRollbackTarget=null,this.detailApiRefOpen=!1,this.detailApiRefQuery=``,this.detailApiRefStartPos=0,this.detailApiRefItems=[],this.detailApiRefPath=null,this.detailApiRefLoading=!1,this.detailVarRefOpen=!1,this.detailVarRefQuery=``,this.detailVarRefStartPos=0,this.detailVarRefItems=[],this.detailVarRefLoading=!1,this._autosaveTimer=null,this._autosavePromise=null,this._detailTextarea=null,this._onDocKeyDown=e=>{e.key===`Escape`&&this._dismissTrigger()}}connectedCallback(){super.connectedCallback(),document.addEventListener(`keydown`,this._onDocKeyDown)}shouldReconnectOnPropChange(){return!0}disconnectedCallback(){super.disconnectedCallback(),this._autosaveTimer!==null&&clearTimeout(this._autosaveTimer),document.removeEventListener(`keydown`,this._onDocKeyDown)}makeClient(){return new iA({serviceUrl:this.serviceUrl||Sj(this),settings:this.settings,password:this.password})}mapComponent(e){return{...e,statusLabel:e.status===1?`active`:`inactive`,currentVersionText:e.currentVersionLabel||(e.currentVersionNumber===null?`—`:`v${e.currentVersionNumber}`)}}async loadComponents(){if(this.tenantId){this.loading=!0,this.error=``;try{this.components=(await this.makeClient().listComponents({tenantId:this.tenantId,page:1,pageSize:200})).list.map(e=>this.mapComponent(e))}catch(e){this.error=e instanceof Error?e.message:String(e)}finally{this.loading=!1}}}startEmbeddedGatewayConnection(){this.loadComponents()}handleEmbeddedGatewayUpdates(e){e.has(`tenantId`)&&this.tenantId&&this.loadComponents(),super.handleEmbeddedGatewayUpdates(e)}get filtered(){let e=[...this.components];this.statusFilter!==`all`&&(e=e.filter(e=>e.statusLabel===this.statusFilter));let t=this.searchQuery.trim().toLowerCase();return t&&(e=e.filter(e=>e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t))),e.sort((e,t)=>{let n=e.updatedAt.localeCompare(t.updatedAt);return this.sortAsc?n:-n}),e}get paged(){let e=(this.page-1)*DU;return this.filtered.slice(e,e+DU)}get totalPages(){return Math.max(1,Math.ceil(this.filtered.length/DU))}showToast(e,t=`error`){this.toastTimer!==null&&(clearTimeout(this.toastTimer),this.toastTimer=null),this.toastCountdownTimer!==null&&(clearInterval(this.toastCountdownTimer),this.toastCountdownTimer=null),this.toastMessage=e,this.toastKind=t,this.toastCountdown=3,this.toastCountdownTimer=setInterval(()=>{this.toastCountdown!==null&&this.toastCountdown>0&&this.toastCountdown--},1e3),this.toastTimer=setTimeout(()=>{this.toastMessage=null,this.toastCountdown=null,this.toastTimer=null,this.toastCountdownTimer!==null&&(clearInterval(this.toastCountdownTimer),this.toastCountdownTimer=null)},3e3)}async doCreate(){let e=this.createName.trim();if(!e){this.createError=`请填写组件名称`;return}if(!/^[一-龥a-zA-Z0-9_]+$/.test(e)){this.createError=`名称只支持中文、英文、数字和下划线`;return}if(this.components.some(t=>t.name===e)){this.createError=`组件名称已存在`;return}if(!this.tenantId){this.createError=`租户 ID 缺失`;return}try{let t=await this.makeClient().createComponent({tenantId:this.tenantId,name:e,description:this.createDesc.trim(),operatorName:this.operatorName.trim()||void 0});this.showCreate=!1,this.createName=``,this.createDesc=``,this.createError=``,this.page=1,await this.loadComponents(),this.showToast(`组件创建成功`,`success`),this.dispatchEvent(new CustomEvent(`keyueclaw-component-detail`,{detail:{tenantId:this.tenantId,componentId:t.id},bubbles:!0,composed:!0}))}catch(e){this.createError=e instanceof Error?e.message:String(e)}}async doDelete(e){if(this.tenantId)try{await this.makeClient().deleteComponent({tenantId:this.tenantId,componentId:e.id}),this.components=this.components.filter(t=>t.id!==e.id),this.deleteTarget=null,this.showToast(`组件已删除`,`success`),this.page>this.totalPages&&(this.page=this.totalPages)}catch(e){this.error=e instanceof Error?e.message:String(e),this.showToast(e instanceof Error?e.message:String(e),`error`)}}async openReferences(e){if(this.tenantId)try{this.refsTarget={component:e,references:(await this.makeClient().getComponentReferences({tenantId:this.tenantId,componentId:e.id})).references}}catch(e){this.showToast(e instanceof Error?e.message:String(e),`error`)}}_mapVersions(e){let t=this.detailComponent?.currentVersionId;return e.map(e=>({id:e.id,version:e.versionLabel||`v${e.versionNumber}`,content:e.content??``,notes:e.changeLog,publishedBy:e.createdBy,publishedAt:e.createdAt,isCurrent:e.id===t}))}get _detailVersions(){return this.detailComponent?this._mapVersions(this.detailComponent.versions):[]}get _detailCurrentVersionText(){if(!this.detailComponent)return`—`;let e=this.detailComponent;return e.currentVersionLabel||(e.currentVersionNumber===null?`—`:`v${e.currentVersionNumber}`)}get _detailActivateDisabled(){let e=this._detailVersions;return e.length===0||(e[0]?.isCurrent??!1)}_suggestDetailNextVersion(){let e=this._detailVersions[0]?.version??``;if(!e)return`v1.0.0`;let t=e.match(/^v?(\d+)\.(\d+)\.(\d+)$/);return t?`v${t[1]}.${t[2]}.${Number(t[3])+1}`:``}async openDetail(e){if(this.tenantId){this.detailMode=!0,this.detailLoading=!0,this.detailComponent=null,this.detailDraft=``,this.detailDraftDirty=!1,this.detailAutosaveStatus=`idle`,this.detailLastSaved=null,this.detailEditingName=!1,this.detailShowHistoryDialog=!1,this.detailShowPublishDialog=!1,this.detailShowActivateDialog=!1,this.detailViewVersionTarget=null,this.detailRollbackTarget=null,this.detailApiRefOpen=!1,this.detailApiRefQuery=``,this.detailApiRefStartPos=0,this.detailApiRefItems=[],this.detailApiRefPath=null,this.detailApiRefLoading=!1,this.detailVarRefOpen=!1,this.detailVarRefQuery=``,this.detailVarRefStartPos=0,this.detailVarRefItems=[],this.detailVarRefLoading=!1;try{let t=await this.makeClient().getComponentDetail({tenantId:this.tenantId,componentId:e.id});this.detailComponent=t,this.detailDraft=t.draftContent||``}catch(e){this.showToast(e instanceof Error?e.message:String(e),`error`),this.detailMode=!1}finally{this.detailLoading=!1}}}async _refreshDetail(){if(!(!this.tenantId||!this.detailComponent))try{let e=await this.makeClient().getComponentDetail({tenantId:this.tenantId,componentId:this.detailComponent.id});this.detailComponent=e,this.detailDraft=e.draftContent||``,this.detailDraftDirty=!1}catch{}}_scheduleDetailAutosave(){this._autosaveTimer!==null&&clearTimeout(this._autosaveTimer),this.detailAutosaveStatus=`idle`,this._autosaveTimer=setTimeout(()=>{this._autosaveTimer=null,this._doDetailAutosave()},1200)}async _doDetailAutosave(){let e=this.detailComponent;if(!e)return!1;let t=(async()=>{this.detailAutosaveStatus=`saving`;try{this.tenantId&&await this.makeClient().saveComponentDraft({tenantId:this.tenantId,componentId:e.id,draftContent:this.detailDraft,name:e.name,description:e.description,usageCondition:e.usageCondition,operatorName:this.operatorName.trim()||void 0}),this.detailAutosaveStatus=`saved`;let t=new Date;return this.detailLastSaved=`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}:${t.getSeconds().toString().padStart(2,`0`)}`,!0}catch{return this.detailAutosaveStatus=`error`,!1}})();this._autosavePromise=t;try{return await t}finally{this._autosavePromise===t&&(this._autosavePromise=null)}}async _flushPendingDetailAutosave(){return this._autosaveTimer!==null&&(clearTimeout(this._autosaveTimer),this._autosaveTimer=null),this._autosavePromise?await this._autosavePromise:this.detailDraftDirty?await this._doDetailAutosave():!0}_saveDetailName(){let e=this.detailComponent;if(!e)return;let t=this.detailNameInput.trim();t&&t!==e.name&&(this.detailComponent={...e,name:t},this.detailDraftDirty=!0),this.detailEditingName=!1,this._doDetailAutosave()}_detailEditor(){return this.querySelector(`skill-code-editor`)??null}_taInsertAtCursor(e){let t=this._detailEditor();if(t){t.insertAtCursor(e);return}let n=this._detailTextarea;if(!n)return;let r=n.selectionStart,i=n.selectionEnd,a=n.value;n.value=a.slice(0,r)+e+a.slice(i),n.selectionStart=n.selectionEnd=r+e.length,this.detailDraft=n.value,this.detailDraftDirty=!0,this._scheduleDetailAutosave(),n.focus()}_taWrapSelection(e,t,n){let r=this._detailEditor();if(r){r.wrapSelection(e,t,n);return}let i=this._detailTextarea;if(!i)return;let a=i.selectionStart,o=i.selectionEnd,s=i.value,c=s.slice(a,o),l=c?e+c+t:e+n+t;i.value=s.slice(0,a)+l+s.slice(o),c?(i.selectionStart=a+e.length,i.selectionEnd=a+e.length+c.length):(i.selectionStart=a+e.length,i.selectionEnd=a+e.length+n.length),this.detailDraft=i.value,this.detailDraftDirty=!0,this._scheduleDetailAutosave(),i.focus()}_taInsertAtLineStart(e){let t=this._detailEditor();if(t){t.insertAtLineStart(e);return}let n=this._detailTextarea;if(!n)return;let r=n.selectionStart,i=n.value,a=i.lastIndexOf(`
1126
1126
  `,r-1)+1;n.value=i.slice(0,a)+e+i.slice(a),n.selectionStart=n.selectionEnd=r+e.length,this.detailDraft=n.value,this.detailDraftDirty=!0,this._scheduleDetailAutosave(),n.focus()}_detectEditorTrigger(e,t){if(t.length!==e.length+1)return null;for(let n=0;n<=e.length;n++)if(n===e.length||e[n]!==t[n]){let e=t[n];return e===`@`||e===`&`?{char:e,pos:n}:null}return null}_dismissTrigger(){this.detailApiRefOpen&&(this.detailApiRefOpen=!1,this.detailApiRefQuery=``),this.detailVarRefOpen&&(this.detailVarRefOpen=!1,this.detailVarRefQuery=``)}_isAnyTriggerOpen(){return this.detailApiRefOpen||this.detailVarRefOpen}_insertAtTriggerPos(e){let t=this._detailTextarea;if(!t)return;let n=this.detailApiRefOpen?this.detailApiRefStartPos:this.detailVarRefStartPos;this.detailApiRefOpen;let r=t.value,i=n+1;for(;i<r.length&&!/[\s\n]/.test(r[i]);)i++;t.value=r.slice(0,n)+e+r.slice(i),t.selectionStart=t.selectionEnd=n+e.length,this.detailDraft=t.value,this.detailDraftDirty=!0,this._dismissTrigger(),this._scheduleDetailAutosave(),t.focus()}_selectApiDefinition(e){let t=`[${e.name}](${this.detailApiRefPath??``}${e.id})`;this._insertAtTriggerPos(t)}_selectVarRef(e){this._insertAtTriggerPos(`{{${e.name}}}`)}async loadApiDefinitionsForEditor(){if(!(!this.tenantId||this.detailApiRefLoading)){this.detailApiRefLoading=!0;try{let e=await dA({settings:this.settings,password:this.password,serviceUrl:Sj(this),keyueSelectedTenantId:this.tenantId,keyueTenants:[]});this.detailApiRefItems=e.items,this.detailApiRefPath=e.path}catch{}finally{this.detailApiRefLoading=!1}}}async loadVarRefVariables(){this.detailVarRefLoading=!0;try{this.detailVarRefItems=(await this.makeClient().listDialogVariables({tenantId:this.tenantId,ps:200})).list??[]}catch{this.detailVarRefItems=[]}finally{this.detailVarRefLoading=!1}}async _doDetailPublish(){let e=this.detailComponent;if(!e){this.detailPublishError=`组件详情尚未加载完成`;return}let t=this.detailPublishVersionLabel.trim();if(!t){this.detailPublishError=`请填写版本号`;return}let n=this.detailPublishNotes.trim();if(!n){this.detailPublishError=`请填写发布说明`;return}if(!this.detailDraft.trim()){this.detailPublishError=`请填写组件内容后再发布`;return}if(!await this._flushPendingDetailAutosave()){this.detailPublishError=`草稿保存失败,请检查网络后重试`;return}if(this._detailVersions.some(e=>e.version===t)){this.detailPublishError=`版本号已存在,请更换版本号`;return}try{await this.makeClient().publishComponentVersion({tenantId:this.tenantId,componentId:e.id,versionLabel:t,changeLog:n,operatorName:this.operatorName.trim()||void 0}),await this._refreshDetail(),this.detailShowPublishDialog=!1,this.detailPublishVersionLabel=``,this.detailPublishNotes=``,this.detailPublishError=``,this.showToast(`版本已发布`,`success`)}catch(e){this.detailPublishError=e instanceof Error?e.message:String(e)}}async _doDetailActivate(){let e=this.detailComponent;if(!e)return;let t=this._detailVersions.find(e=>e.id===this.detailActivateTargetId);if(t)try{await this.makeClient().activateComponentVersion({tenantId:this.tenantId,componentId:e.id,versionId:t.id,operatorName:this.operatorName.trim()||void 0}),await this._refreshDetail(),this.detailShowActivateDialog=!1,this.detailActivateTargetId=``,this.showToast(`版本已生效`,`success`)}catch(e){this.showToast(e instanceof Error?e.message:String(e),`error`)}}async _doDetailRollback(e){let t=this.detailComponent;if(t)try{this.detailDraft=(await this.makeClient().rollbackComponentDraft({tenantId:this.tenantId,componentId:t.id,versionId:e.id})).draftContent,this.detailDraftDirty=!0,this.detailRollbackTarget=null,this.detailShowHistoryDialog=!1,await this._refreshDetail(),this.showToast(`已恢复至该版本`,`success`)}catch(e){this.showToast(e instanceof Error?e.message:String(e),`error`)}}async _openDetailVersionContent(e){this.detailViewVersionLoading=!0;try{let t=await this.makeClient().getComponentVersionDetail({versionId:e.id});this.detailViewVersionTarget={...e,content:t.content??``}}catch{this.detailViewVersionTarget=e}finally{this.detailViewVersionLoading=!1}}backToList(){this._autosaveTimer!==null&&(clearTimeout(this._autosaveTimer),this._autosaveTimer=null),this._detailTextarea=null,this.detailMode=!1,this.detailComponent=null,this.detailDraft=``,this.detailDraftDirty=!1,this.detailAutosaveStatus=`idle`,this.detailLastSaved=null,this.detailEditingName=!1,this.detailShowHistoryDialog=!1,this.detailShowPublishDialog=!1,this.detailShowActivateDialog=!1,this.detailViewVersionTarget=null,this.detailRollbackTarget=null,this.detailApiRefOpen=!1,this.detailApiRefQuery=``,this.detailApiRefStartPos=0,this.detailApiRefItems=[],this.detailApiRefPath=null,this.detailApiRefLoading=!1,this.detailVarRefOpen=!1,this.detailVarRefQuery=``,this.detailVarRefStartPos=0,this.detailVarRefItems=[],this.detailVarRefLoading=!1,this.loadComponents()}renderStatusBadge(e){return e===`active`?U`
1127
1127
  <span
1128
1128
  style="