@next-bricks/vs 1.11.6 → 1.12.0

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/bricks.json CHANGED
@@ -15,5 +15,5 @@
15
15
  "basic.show-notification"
16
16
  ]
17
17
  },
18
- "filePath": "bricks/vs/dist/index.b95b2a4e.js"
18
+ "filePath": "bricks/vs/dist/index.709a1be4.js"
19
19
  }
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[5191],{7137:(e,n,t)=>{t.d(n,{Vu:()=>s,fE:()=>i,lP:()=>o,yU:()=>r});const r=12,i=18,o=12,s=12},8182:(e,n,t)=>{t.d(n,{I:()=>o,K:()=>r,NS:()=>i});let r=function(e){return e.COPY="COPY",e.COPY_SUCCESS="COPY_SUCCESS",e.COPY_FAILED="COPY_FAILED",e.EXPAND="EXPAND",e.COLLAPSE="COLLAPSE",e}({});const i="bricks/vs/code-editor",o={en:{COPY:"Copy",COPY_SUCCESS:"Copied!",COPY_FAILED:"Copy failed!",EXPAND:"Expand",COLLAPSE:"Collapse"},zh:{COPY:"复制",COPY_SUCCESS:"已复制!",COPY_FAILED:"复制失败!",EXPAND:"展开",COLLAPSE:"收起"}}},9287:(e,n,t)=>{t.d(n,{m:()=>o});var r=t(3683);const i=new Map;function o(e,n){return e.flatMap((e=>{const t=r.Uri.file(`libs/${e.filePath}`).toString(),o=i.get(t);o&&o.forEach((e=>e.dispose()));const s=[n.languageDefaults].map((n=>r.languages.typescript[n].addExtraLib(e.content,t)));return i.set(t,s),s}))}},4929:(e,n,t)=>{t.d(n,{v:()=>g});var r=t(3683),i=t(7176),o=t(739),s=t(6123),a=t.n(s),l=t(4804),c=t(4102),u=t(1968);const d=(e,n,t)=>{const r=[],i=[];let o="",s=t,a=n.startColumn;for(;s>0;){const t=e.getValueInRange({startLineNumber:s,endLineNumber:s,startColumn:0,endColumn:1/0}).match(/^([\s|-]*)(\w+)(?=:)/);if(t){const[,e,s]=t;e.length===n.startColumn-1&&r.unshift(s),e.length<a-1&&(!o&&(o=s),a=e.length,i.unshift(s))}s--}return{curLevelKeys:r,keyList:i,parentKey:o}},g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0;return async(g,p,m)=>{if(t&&t!==(0,l.B)())return{suggestions:[]};const h=s.showDSKey?["CTX.DS","DS"]:[],b=g.getWordUntilPosition(p),{word:A,token:C}=((e,n,t)=>{var r;const i=e.getWordUntilPosition(n),o=e.getValueInRange({startLineNumber:n.lineNumber,endLineNumber:n.lineNumber,startColumn:n.column-i.word.length-1,endColumn:n.column-i.word.length}),s=e.getWordAtPosition({...n,column:n.column-(null==i||null===(r=i.word)||void 0===r?void 0:r.length)-1});let a=null==s?void 0:s.word;if(t.showDSKey&&"DS"===(null==s?void 0:s.word)){const t=e.getWordAtPosition({...n,column:s.startColumn-1});a=`${null==t?void 0:t.word}.${s.word}`}return{word:a,token:o}})(g,p,s),f=g.getValueInRange({startLineNumber:p.lineNumber,endLineNumber:p.lineNumber,startColumn:0,endColumn:1/0}),v={startLineNumber:p.lineNumber,endLineNumber:p.lineNumber,startColumn:b.startColumn,endColumn:b.endColumn},S=1===b.startColumn,{curLevelKeys:w}=d(g,b,g.getLineCount());if("<"===m.triggerCharacter)return"<"!==g.getValueInRange({startLineNumber:p.lineNumber,endLineNumber:p.lineNumber,startColumn:p.column-2,endColumn:p.column+2}).trim()?{suggestions:[]}:{suggestions:[{label:"<% %>",detail:"Evalute Body",kind:r.languages.CompletionItemKind.Value,insertText:"% ${0} %>",insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:v},{label:"<%= %>",detail:"Track Evalute Body",kind:r.languages.CompletionItemKind.Value,insertText:"%= ${0} %>",insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:v}]};if(S)return{suggestions:(e??[]).filter((e=>!w.includes(e.label))).map((e=>({...e,label:e.label,insertText:e.insertText||e.label,kind:r.languages.CompletionItemKind.Keyword,range:v})))};if(":"===m.triggerCharacter||"."===m.triggerCharacter&&A&&!["CTX","STATE","FN"].concat(h).includes(A)){var k;if("action"===A&&":"===m.triggerCharacter)return{suggestions:null===(k=a()(i,"definitions.BuiltinBrickEventHandler.properties.action.enum")??[])||void 0===k?void 0:k.map((e=>({label:` ${e}`,detail:"event action",kind:r.languages.CompletionItemKind.Keyword,insertText:` ${e}`,range:v})))};const e=null==n?void 0:n[A];let t,o="";if(e&&!Array.isArray(e)?(t=e.completers,o=e.triggerCharacter):t=e,o?m.triggerCharacter===o&&t:t)return{suggestions:(t??[]).map((e=>{const n=":"===o?` ${e.label}`:e.label;return{...e,label:n,kind:r.languages.CompletionItemKind.Value,insertText:e.insertText||n,range:v}}))}}if(((e,n)=>{const t=e.getWordUntilPosition(n),r=e.findPreviousMatch("<%",n,!1,!1,null,!1),i=e.findNextMatch("%>",n,!1,!1,null,!1);if((null==r?void 0:r.range.startLineNumber)&&(null==i?void 0:i.range.startLineNumber)&&r.range.startLineNumber<=n.lineNumber&&i.range.endLineNumber>=n.lineNumber){const{parentKey:o}=d(e,r.range,null==r?void 0:r.range.startLineNumber),{parentKey:s}=d(e,i.range,null==i?void 0:i.range.startLineNumber),{keyList:a}=d(e,t,n.lineNumber);if(o===s&&a.includes(o)||""===o&&""===s)return!0}return!1})(g,p)){const e=u.b.getInstance(t);return{suggestions:await(0,c.DW)(g,p,e.getState())}}return/^[\s|-]*\w$/.test(f)?{suggestions:o.xN.map((e=>({label:e,insertText:e,kind:r.languages.CompletionItemKind.Keyword,range:v}))).filter((e=>!w.includes(e.label)))}:{suggestions:[]}}}},739:(e,n,t)=>{t.d(n,{X2:()=>i,xN:()=>r});const r=["target","targetRef","properties","events","method","callback","success","error","action","useProvider","useChildren","useBrick","args","if","then"],i='\n declare const DATA: any;\n declare const EVENT: CustomEvent<any>;\n declare const FLAGS: Record<string, boolean>;\n declare const ANCHOR: string | null;\n declare const HASH: string;\n declare namespace INSTALLED_APPS {\n function has(appId: string):boolean\n }\n declare const ITEM: any;\n declare const INDEX: number;\n declare const SIZE: number;\n declare namespace LOCAL_STORAGE {\n function getItem(name: string): string;\n }\n declare namespace SESSION_STORAGE {\n function getItem(name: string): string\n }\n declare const MEDIA: {\n breakpoint?: "xLarge" | "large" | "medium" | "small" | "xSmall";\n };\n declare const MISC: Record<string, any>;\n declare const PARAMS: URLSearchParams;\n declare const PROCESSORS: Record<string, Record<string, Function>>;\n declare const QUERY_ARRAY: Record<string, string[]>;\n declare const TPL: Record<string, any>;\n declare const PIPES: Record<string, Function>;\n declare const _: Record<string, any>;\n declare namespace SYS {\n const username:string;\n const userInstanceId:string;\n const org:number;\n const isAdmin: boolean;\n const accessRule:string;\n const csrfToken:string;\n const accessToken:string;\n const userShowValue:string[];\n }\n declare const BASE_URL: string;\n declare namespace IMG {\n function get(src: string): string;\n }\n declare function I18N(key: string, options?: string | Record<string, unknown>): string;\n declare function I18N_TEXT(data: {[language: string]: string}):string;\n declare namespace PERMISSIONS {\n function check(...action: string[]):boolean;\n }\n declare namespace THEME {\n function getTheme(): "light" | "dark" | "dark-v2";\n }\n'},4804:(e,n,t)=>{let r;function i(e){r=e}function o(){return r}t.d(n,{B:()=>o,J:()=>i})},1968:(e,n,t)=>{t.d(n,{b:()=>c});var r=t(918),i=t(829),o=t(6121),s=t(2559),a=new WeakMap,l=new WeakMap;class c{static getInstance(e){return(0,s.A)(c,this,u)._[e]||((0,s.A)(c,this,u)._[e]=new c(e)),(0,s.A)(c,this,u)._[e]}constructor(e){(0,r.A)(this,a,void 0),(0,r.A)(this,l,{}),(0,o.A)(a,this,e)}updateState(e){(0,o.A)(l,this,e)}getState(){return(0,i.A)(l,this)}}var u={_:{}}},4102:(e,n,t)=>{t.d(n,{AR:()=>a,DW:()=>l,Eh:()=>u});var r=t(7176),i=t(2445),o=t(3683),s=t(739);function a(e){return"uri"in e&&(e=e.uri),o.Uri.parse(e.toString()+".ts")}async function l(e,n,t){const r=await o.languages.typescript.getJavaScriptWorker(),i=await r(e.uri),s=o.editor.getModel(a(e)),l=e.getOffsetAt(n)-((null==t?void 0:t.offset)??0),c=await i.getCompletionsAtPosition(s.uri.toString(),l),u=e.getWordUntilPosition(n),d=new o.Range(n.lineNumber,u.startColumn,n.lineNumber,u.endColumn);return((null==c?void 0:c.entries)??[]).map((t=>{let r=d;if(t.replacementSpan){const n=e.getPositionAt(t.replacementSpan.start),i=e.getPositionAt(t.replacementSpan.start+t.replacementSpan.length);r=new o.Range(n.lineNumber,n.column,i.lineNumber,i.column)}return{uri:s.uri,position:n,offset:l,range:r,label:t.name,insertText:t.name,sortText:t.sortText,kind:o.languages.CompletionItemKind.Property}}))}function c(){const e=(0,i.get)(r,"definitions.MicroApp.properties"),n=[];for(const[t,r]of Object.entries(e))n.push(`const ${t}: ${r.type??"any"}`);return`\n declare namespace APP {\n ${n.join("\n")}\n }\n `}function u(){return[c(),s.X2].join("\n")}},3271:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(6758),i=t.n(r),o=t(935),s=t.n(o)()(i());s.push([e.id,".highlight{box-shadow:rgb(74 170 189) 0px 1px 0px 0px}.pointer{cursor:pointer}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);background:var(--color-border-divider-line);border:1px solid var(--color-border-divider-line)}.code-editor-wrapper.error .overflow-guard{outline:1px solid var(--antd-error-color)}.code-editor-wrapper.expanded.error .overflow-guard{border:1px solid var(--antd-error-color)}.code-editor-wrapper{position:relative}.code-editor-wrapper.expanded{position:fixed;z-index:1000;top:0;left:0;right:0;bottom:0;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.code-editor-wrapper.expanded .toolbar{right:40px;top:40px}.code-editor-wrapper:hover .toolbar{display:flex}.toolbar{display:none;position:absolute;top:15px;right:20px;line-height:12px;font-size:12px;text-align:center;gap:10px;box-shadow:none;transition:none;border-radius:50%;border:none}.copy-icon,\n.expand-icon{opacity:0.5;cursor:pointer;font-size:16px}.copy-icon:hover,\n.expand-icon:hover{opacity:1}",""]);const a=s},3569:(e,n,t)=>{var r=t(2591),i=t.n(r),o=t(1740),s=t.n(o),a=t(8128),l=t.n(a),c=t(855),u=t.n(c),d=t(3051),g=t.n(d),p=t(3656),m=t.n(p),h=t(3271),b={};b.styleTagTransform=m(),b.setAttributes=u(),b.insert=l().bind(null,"head"),b.domAPI=s(),b.insertStyleElement=g(),i()(h.A,b),h.A&&h.A.locals&&h.A.locals},2738:(e,n,t)=>{t.d(n,{h:()=>o});var r=t(2445);let i;class o{static#e={};static getInstance(e){return this.#e[e]||(i||(i=new Worker(new URL(t.p+t.u(2425),t.b))),this.#e[e]=new o(e)),this.#e[e]}#n;#t;#r=new Map;constructor(e){this.#t=i,this.#n=e}postMessage(e){this.#t.postMessage({...e,id:this.#n})}addEventListener(e,n){const t=(0,r.uniqueId)();return this.#t.addEventListener(e,((...e)=>{const{id:t}=e[0].data;t===this.#n&&n(...e)})),this.#r.set(t,{name:e,fn:n}),t}removeEventListener(e){const n=this.#r.get(e);n&&(this.#t.removeEventListener(n.name,n.fn),this.#r.delete(e))}}},426:(e,n,t)=>{t.d(n,{N:()=>T});var r,i=t(4635),o=t(918),s=t(5536),a=t(9492),l=t(6121),c=t(829),u=t(2740),d=t(4782),g=t(1389);let p,m,h,b,A,C,f,v,S;const{method:w,property:k}=(0,d.createDecorators)();var x=new WeakMap,E=new WeakSet,N=new WeakMap,I=new WeakMap,L=new WeakMap,P=new WeakMap,y=new WeakMap,R=new WeakMap;class T extends g.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,E),(0,o.A)(this,x,(p(this),!1)),(0,o.A)(this,N,"normal"),(0,o.A)(this,I,!1),(0,o.A)(this,L,m(this)),(0,o.A)(this,P,(h(this),b(this))),(0,o.A)(this,y,(A(this),C(this))),(0,o.A)(this,R,(f(this),v(this))),S(this)}get isFormItemElement(){return!0}set validateState(e){(0,a.A)(E,D,this,e),this._render()}get validateState(){return(0,s.A)(E,this,M)}set notRender(e){this.hidden=e,(0,a.A)(E,O,this,e),this._render()}get notRender(){return(0,s.A)(E,this,_)}get $bindFormItem(){return(0,s.A)(E,this,W)}set $bindFormItem(e){(0,a.A)(E,K,this,e),this._render()}get helpBrick(){return(0,c.A)(L,this)}set helpBrick(e){(0,l.A)(L,this,e)}get labelBrick(){return(0,c.A)(P,this)}set labelBrick(e){(0,l.A)(P,this,e)}get labelCol(){return(0,c.A)(y,this)}set labelCol(e){(0,l.A)(y,this,e)}get wrapperCol(){return(0,c.A)(R,this)}set wrapperCol(e){(0,l.A)(R,this,e)}setNotRender(e){this.notRender=e}getFormElement(){let e=this;for(;(e=e.parentNode)&&e&&!e.isFormElement;);return e}}function _(e){return(0,c.A)(x,e)}function O(e,n){(0,l.A)(x,e,n)}function M(e){return(0,c.A)(N,e)}function D(e,n){(0,l.A)(N,e,n)}function W(e){return(0,c.A)(I,e)}function K(e,n){(0,l.A)(I,e,n)}r=T,[m,h,b,A,C,f,v,S,p]=(0,u.A)(r,[],[[k({attribute:!1}),1,"helpBrick"],[k({attribute:!1}),1,"labelBrick"],[k({attribute:!1}),1,"labelCol"],[k({attribute:!1}),1,"wrapperCol"],[w(),2,"setNotRender"],[w(),2,"getFormElement"]],0,void 0,g.ReactNextElement).e}}]);
2
- //# sourceMappingURL=5191.60ce3fcc.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[5191],{7137:(e,n,t)=>{t.d(n,{Vu:()=>s,fE:()=>i,lP:()=>o,yU:()=>r});const r=12,i=18,o=12,s=12},8182:(e,n,t)=>{t.d(n,{I:()=>o,K:()=>r,NS:()=>i});let r=function(e){return e.COPY="COPY",e.COPY_SUCCESS="COPY_SUCCESS",e.COPY_FAILED="COPY_FAILED",e.EXPAND="EXPAND",e.COLLAPSE="COLLAPSE",e}({});const i="bricks/vs/code-editor",o={en:{COPY:"Copy",COPY_SUCCESS:"Copied!",COPY_FAILED:"Copy failed!",EXPAND:"Expand",COLLAPSE:"Collapse"},zh:{COPY:"复制",COPY_SUCCESS:"已复制!",COPY_FAILED:"复制失败!",EXPAND:"展开",COLLAPSE:"收起"}}},9287:(e,n,t)=>{t.d(n,{m:()=>o});var r=t(3683);const i=new Map;function o(e,n){return e.flatMap((e=>{const t=r.Uri.file(`libs/${e.filePath}`).toString(),o=i.get(t);o&&o.forEach((e=>e.dispose()));const s=[n.languageDefaults].map((n=>r.languages.typescript[n].addExtraLib(e.content,t)));return i.set(t,s),s}))}},4929:(e,n,t)=>{t.d(n,{v:()=>g});var r=t(3683),i=t(7176),o=t(739),s=t(6123),a=t.n(s),l=t(4804),c=t(4102),u=t(1968);const d=(e,n,t)=>{const r=[],i=[];let o="",s=t,a=n.startColumn;for(;s>0;){const t=e.getValueInRange({startLineNumber:s,endLineNumber:s,startColumn:0,endColumn:1/0}).match(/^([\s|-]*)(\w+)(?=:)/);if(t){const[,e,s]=t;e.length===n.startColumn-1&&r.unshift(s),e.length<a-1&&(!o&&(o=s),a=e.length,i.unshift(s))}s--}return{curLevelKeys:r,keyList:i,parentKey:o}},g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0;return async(g,p,m)=>{if(t&&t!==(0,l.B)())return{suggestions:[]};const h=s.showDSKey?["CTX.DS","DS"]:[],b=g.getWordUntilPosition(p),{word:A,token:C}=((e,n,t)=>{var r;const i=e.getWordUntilPosition(n),o=e.getValueInRange({startLineNumber:n.lineNumber,endLineNumber:n.lineNumber,startColumn:n.column-i.word.length-1,endColumn:n.column-i.word.length}),s=e.getWordAtPosition({...n,column:n.column-(null==i||null===(r=i.word)||void 0===r?void 0:r.length)-1});let a=null==s?void 0:s.word;if(t.showDSKey&&"DS"===(null==s?void 0:s.word)){const t=e.getWordAtPosition({...n,column:s.startColumn-1});a=`${null==t?void 0:t.word}.${s.word}`}return{word:a,token:o}})(g,p,s),f=g.getValueInRange({startLineNumber:p.lineNumber,endLineNumber:p.lineNumber,startColumn:0,endColumn:1/0}),v={startLineNumber:p.lineNumber,endLineNumber:p.lineNumber,startColumn:b.startColumn,endColumn:b.endColumn},S=1===b.startColumn,{curLevelKeys:w}=d(g,b,g.getLineCount());if("<"===m.triggerCharacter)return"<"!==g.getValueInRange({startLineNumber:p.lineNumber,endLineNumber:p.lineNumber,startColumn:p.column-2,endColumn:p.column+2}).trim()?{suggestions:[]}:{suggestions:[{label:"<% %>",detail:"Evalute Body",kind:r.languages.CompletionItemKind.Value,insertText:"% ${0} %>",insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:v},{label:"<%= %>",detail:"Track Evalute Body",kind:r.languages.CompletionItemKind.Value,insertText:"%= ${0} %>",insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:v}]};if(S)return{suggestions:(e??[]).filter((e=>!w.includes(e.label))).map((e=>({...e,label:e.label,insertText:e.insertText||e.label,kind:r.languages.CompletionItemKind.Keyword,range:v})))};if(":"===m.triggerCharacter||"."===m.triggerCharacter&&A&&!["CTX","STATE","FN"].concat(h).includes(A)){var k;if("action"===A&&":"===m.triggerCharacter)return{suggestions:null===(k=a()(i,"definitions.BuiltinBrickEventHandler.properties.action.enum")??[])||void 0===k?void 0:k.map((e=>({label:` ${e}`,detail:"event action",kind:r.languages.CompletionItemKind.Keyword,insertText:` ${e}`,range:v})))};const e=null==n?void 0:n[A];let t,o="";if(e&&!Array.isArray(e)?(t=e.completers,o=e.triggerCharacter):t=e,o?m.triggerCharacter===o&&t:t)return{suggestions:(t??[]).map((e=>{const n=":"===o?` ${e.label}`:e.label;return{...e,label:n,kind:r.languages.CompletionItemKind.Value,insertText:e.insertText||n,range:v}}))}}if(((e,n)=>{const t=e.getWordUntilPosition(n),r=e.findPreviousMatch("<%",n,!1,!1,null,!1),i=e.findNextMatch("%>",n,!1,!1,null,!1);if((null==r?void 0:r.range.startLineNumber)&&(null==i?void 0:i.range.startLineNumber)&&r.range.startLineNumber<=n.lineNumber&&i.range.endLineNumber>=n.lineNumber){const{parentKey:o}=d(e,r.range,null==r?void 0:r.range.startLineNumber),{parentKey:s}=d(e,i.range,null==i?void 0:i.range.startLineNumber),{keyList:a}=d(e,t,n.lineNumber);if(o===s&&a.includes(o)||""===o&&""===s)return!0}return!1})(g,p)){const e=u.b.getInstance(t);return{suggestions:await(0,c.DW)(g,p,e.getState())}}return/^[\s|-]*\w$/.test(f)?{suggestions:o.xN.map((e=>({label:e,insertText:e,kind:r.languages.CompletionItemKind.Keyword,range:v}))).filter((e=>!w.includes(e.label)))}:{suggestions:[]}}}},739:(e,n,t)=>{t.d(n,{X2:()=>i,xN:()=>r});const r=["target","targetRef","properties","events","method","callback","success","error","action","useProvider","useChildren","useBrick","args","if","then"],i='\n declare const DATA: any;\n declare const EVENT: CustomEvent<any>;\n declare const FLAGS: Record<string, boolean>;\n declare const ANCHOR: string | null;\n declare const HASH: string;\n declare namespace INSTALLED_APPS {\n function has(appId: string):boolean\n }\n declare const ITEM: any;\n declare const INDEX: number;\n declare const SIZE: number;\n declare namespace LOCAL_STORAGE {\n function getItem(name: string): string;\n }\n declare namespace SESSION_STORAGE {\n function getItem(name: string): string\n }\n declare const MEDIA: {\n breakpoint?: "xLarge" | "large" | "medium" | "small" | "xSmall";\n };\n declare const MISC: Record<string, any>;\n declare const PARAMS: URLSearchParams;\n declare const PROCESSORS: Record<string, Record<string, Function>>;\n declare const QUERY_ARRAY: Record<string, string[]>;\n declare const TPL: Record<string, any>;\n declare const PIPES: Record<string, Function>;\n declare const _: Record<string, any>;\n declare namespace SYS {\n const username:string;\n const userInstanceId:string;\n const org:number;\n const isAdmin: boolean;\n const accessRule:string;\n const csrfToken:string;\n const accessToken:string;\n const userShowValue:string[];\n }\n declare const BASE_URL: string;\n declare namespace IMG {\n function get(src: string): string;\n }\n declare function I18N(key: string, options?: string | Record<string, unknown>): string;\n declare function I18N_TEXT(data: {[language: string]: string}):string;\n declare namespace PERMISSIONS {\n function check(...action: string[]):boolean;\n }\n declare namespace THEME {\n function getTheme(): "light" | "dark" | "dark-v2";\n }\n'},4804:(e,n,t)=>{let r;function i(e){r=e}function o(){return r}t.d(n,{B:()=>o,J:()=>i})},1968:(e,n,t)=>{t.d(n,{b:()=>c});var r=t(918),i=t(829),o=t(6121),s=t(2559),a=new WeakMap,l=new WeakMap;class c{static getInstance(e){return(0,s.A)(c,this,u)._[e]||((0,s.A)(c,this,u)._[e]=new c(e)),(0,s.A)(c,this,u)._[e]}constructor(e){(0,r.A)(this,a,void 0),(0,r.A)(this,l,{}),(0,o.A)(a,this,e)}updateState(e){(0,o.A)(l,this,e)}getState(){return(0,i.A)(l,this)}}var u={_:{}}},4102:(e,n,t)=>{t.d(n,{AR:()=>a,DW:()=>l,Eh:()=>u});var r=t(7176),i=t(2445),o=t(3683),s=t(739);function a(e){return"uri"in e&&(e=e.uri),o.Uri.parse(e.toString()+".ts")}async function l(e,n,t){const r=await o.languages.typescript.getJavaScriptWorker(),i=await r(e.uri),s=o.editor.getModel(a(e)),l=e.getOffsetAt(n)-((null==t?void 0:t.offset)??0),c=await i.getCompletionsAtPosition(s.uri.toString(),l),u=e.getWordUntilPosition(n),d=new o.Range(n.lineNumber,u.startColumn,n.lineNumber,u.endColumn);return((null==c?void 0:c.entries)??[]).map((t=>{let r=d;if(t.replacementSpan){const n=e.getPositionAt(t.replacementSpan.start),i=e.getPositionAt(t.replacementSpan.start+t.replacementSpan.length);r=new o.Range(n.lineNumber,n.column,i.lineNumber,i.column)}return{uri:s.uri,position:n,offset:l,range:r,label:t.name,insertText:t.name,sortText:t.sortText,kind:o.languages.CompletionItemKind.Property}}))}function c(){const e=(0,i.get)(r,"definitions.MicroApp.properties"),n=[];for(const[t,r]of Object.entries(e))n.push(`const ${t}: ${r.type??"any"}`);return`\n declare namespace APP {\n ${n.join("\n")}\n }\n `}function u(){return[c(),s.X2].join("\n")}},3271:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(6758),i=t.n(r),o=t(935),s=t.n(o)()(i());s.push([e.id,".highlight{box-shadow:rgb(74 170 189) 0px 1px 0px 0px}.monaco-placeholder{position:absolute;white-space:pre-wrap;top:6px;left:50px;font-size:16px;color:rgba(var(--theme-gray-color-rgb-channel),0.4);pointer-events:none;-webkit-user-select:none;user-select:none}.pointer{cursor:pointer}.monaco-editor{outline-width:0}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);border:1px solid var(--color-border-divider-line)}.code-editor-wrapper.error .overflow-guard{border-color:var(--antd-error-color)}.code-editor-wrapper{position:relative}.code-editor-wrapper.expanded{position:fixed;z-index:1000;top:0;left:0;right:0;bottom:0;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.code-editor-wrapper.expanded .toolbar{right:40px;top:40px}.code-editor-wrapper:hover .toolbar{display:flex}.toolbar{display:none;position:absolute;top:15px;right:20px;line-height:12px;font-size:12px;text-align:center;gap:10px;box-shadow:none;transition:none;border-radius:50%;border:none}.copy-icon,\n.expand-icon{opacity:0.5;cursor:pointer;font-size:16px}.copy-icon:hover,\n.expand-icon:hover{opacity:1}",""]);const a=s},3569:(e,n,t)=>{var r=t(2591),i=t.n(r),o=t(1740),s=t.n(o),a=t(8128),l=t.n(a),c=t(855),u=t.n(c),d=t(3051),g=t.n(d),p=t(3656),m=t.n(p),h=t(3271),b={};b.styleTagTransform=m(),b.setAttributes=u(),b.insert=l().bind(null,"head"),b.domAPI=s(),b.insertStyleElement=g(),i()(h.A,b),h.A&&h.A.locals&&h.A.locals},2738:(e,n,t)=>{t.d(n,{h:()=>o});var r=t(2445);let i;class o{static#e={};static getInstance(e){return this.#e[e]||(i||(i=new Worker(new URL(t.p+t.u(2425),t.b))),this.#e[e]=new o(e)),this.#e[e]}#n;#t;#r=new Map;constructor(e){this.#t=i,this.#n=e}postMessage(e){this.#t.postMessage({...e,id:this.#n})}addEventListener(e,n){const t=(0,r.uniqueId)();return this.#t.addEventListener(e,((...e)=>{const{id:t}=e[0].data;t===this.#n&&n(...e)})),this.#r.set(t,{name:e,fn:n}),t}removeEventListener(e){const n=this.#r.get(e);n&&(this.#t.removeEventListener(n.name,n.fn),this.#r.delete(e))}}},426:(e,n,t)=>{t.d(n,{N:()=>T});var r,i=t(4635),o=t(918),s=t(5536),a=t(9492),l=t(6121),c=t(829),u=t(2740),d=t(4782),g=t(1389);let p,m,h,b,A,C,f,v,S;const{method:w,property:k}=(0,d.createDecorators)();var x=new WeakMap,E=new WeakSet,N=new WeakMap,I=new WeakMap,L=new WeakMap,P=new WeakMap,y=new WeakMap,R=new WeakMap;class T extends g.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,E),(0,o.A)(this,x,(p(this),!1)),(0,o.A)(this,N,"normal"),(0,o.A)(this,I,!1),(0,o.A)(this,L,m(this)),(0,o.A)(this,P,(h(this),b(this))),(0,o.A)(this,y,(A(this),C(this))),(0,o.A)(this,R,(f(this),v(this))),S(this)}get isFormItemElement(){return!0}set validateState(e){(0,a.A)(E,D,this,e),this._render()}get validateState(){return(0,s.A)(E,this,M)}set notRender(e){this.hidden=e,(0,a.A)(E,O,this,e),this._render()}get notRender(){return(0,s.A)(E,this,_)}get $bindFormItem(){return(0,s.A)(E,this,W)}set $bindFormItem(e){(0,a.A)(E,K,this,e),this._render()}get helpBrick(){return(0,c.A)(L,this)}set helpBrick(e){(0,l.A)(L,this,e)}get labelBrick(){return(0,c.A)(P,this)}set labelBrick(e){(0,l.A)(P,this,e)}get labelCol(){return(0,c.A)(y,this)}set labelCol(e){(0,l.A)(y,this,e)}get wrapperCol(){return(0,c.A)(R,this)}set wrapperCol(e){(0,l.A)(R,this,e)}setNotRender(e){this.notRender=e}getFormElement(){let e=this;for(;(e=e.parentNode)&&e&&!e.isFormElement;);return e}}function _(e){return(0,c.A)(x,e)}function O(e,n){(0,l.A)(x,e,n)}function M(e){return(0,c.A)(N,e)}function D(e,n){(0,l.A)(N,e,n)}function W(e){return(0,c.A)(I,e)}function K(e,n){(0,l.A)(I,e,n)}r=T,[m,h,b,A,C,f,v,S,p]=(0,u.A)(r,[],[[k({attribute:!1}),1,"helpBrick"],[k({attribute:!1}),1,"labelBrick"],[k({attribute:!1}),1,"labelCol"],[k({attribute:!1}),1,"wrapperCol"],[w(),2,"setNotRender"],[w(),2,"getFormElement"]],0,void 0,g.ReactNextElement).e}}]);
2
+ //# sourceMappingURL=5191.c24d2fc0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/5191.60ce3fcc.js","mappings":"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","sources":["webpack:///./src/code-editor/constants.ts","webpack:///./src/code-editor/i18n.ts","webpack:///./src/code-editor/utils/addExtraLibs.ts","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/utils/editorId.ts","webpack:///./src/code-editor/utils/embeddedModelState.ts","webpack:///./src/code-editor/utils/jsSuggestInBrickYaml.ts","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/index.css?aefa","webpack:///./src/code-editor/workers/index.mjs","webpack:///../../src/FormItemElement.tsx"],"sourcesContent":["export const EDITOR_FONT_SIZE = 12;\nexport const EDITOR_LINE_HEIGHT = 18;\nexport const EDITOR_SCROLLBAR_SIZE = 12;\nexport const EDITOR_PADDING_VERTICAL = 12;\n","export enum K {\n COPY = \"COPY\",\n COPY_SUCCESS = \"COPY_SUCCESS\",\n COPY_FAILED = \"COPY_FAILED\",\n EXPAND = \"EXPAND\",\n COLLAPSE = \"COLLAPSE\",\n}\n\nconst en: Locale = {\n COPY: \"Copy\",\n COPY_SUCCESS: \"Copied!\",\n COPY_FAILED: \"Copy failed!\",\n EXPAND: \"Expand\",\n COLLAPSE: \"Collapse\",\n};\n\nconst zh: Locale = {\n COPY: \"复制\",\n COPY_SUCCESS: \"已复制!\",\n COPY_FAILED: \"复制失败!\",\n EXPAND: \"展开\",\n COLLAPSE: \"收起\",\n};\n\nexport const NS = \"bricks/vs/code-editor\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { ExtraLib } from \"../interfaces.js\";\n\nconst extraLibsMap = new Map<string, monaco.IDisposable[]>();\n\nexport function addExtraLibs(\n libs: ExtraLib[],\n options: {\n languageDefaults?: string;\n }\n): monaco.IDisposable[] {\n return libs.flatMap((lib) => {\n const uri = monaco.Uri.file(`libs/${lib.filePath}`);\n const uriString = uri.toString();\n const previousLibs = extraLibsMap.get(uriString);\n if (previousLibs) {\n previousLibs.forEach((lib) => lib.dispose());\n }\n // Add libs for both js and ts.\n const disposables = (\n [options.languageDefaults] as Array<\n \"javascriptDefaults\" | \"typescriptDefaults\"\n >\n ).map((key) =>\n monaco.languages.typescript[key].addExtraLib(lib.content, uriString)\n );\n\n extraLibsMap.set(uriString, disposables);\n return disposables;\n });\n}\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { brickNextKeywords } from \"./constants.js\";\nimport get from \"lodash/get.js\";\nimport { getEditorId } from \"./editorId.js\";\nimport { TokenConfig } from \"../index.jsx\";\nimport { AdvancedCompleterMap } from \"../interfaces.js\";\nimport { provideJsSuggestItems } from \"../utils/jsSuggestInBrickYaml.js\";\nimport { EmbeddedModelContext } from \"../utils/embeddedModelState.js\";\n\nconst findKeys = (\n model: monaco.editor.ITextModel,\n range: monaco.Range | monaco.editor.IWordAtPosition,\n line: number\n) => {\n const curLevelKeys: string[] = [];\n const keyList: string[] = [];\n let parentKey = \"\";\n let i = line;\n let startColumn = range.startColumn;\n while (i > 0) {\n const prefixLineWord = model.getValueInRange({\n startLineNumber: i,\n endLineNumber: i,\n startColumn: 0,\n endColumn: Infinity,\n });\n const matchWord = prefixLineWord.match(/^([\\s|-]*)(\\w+)(?=:)/);\n if (matchWord) {\n const [, wordSpace, key] = matchWord;\n if (wordSpace.length === range.startColumn - 1) {\n curLevelKeys.unshift(key);\n }\n if (wordSpace.length < startColumn - 1) {\n !parentKey && (parentKey = key);\n startColumn = wordSpace.length;\n keyList.unshift(key);\n }\n }\n i--;\n }\n return {\n curLevelKeys,\n keyList,\n parentKey,\n };\n};\n\nconst getPrefixWord = (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n tokenConfig: TokenConfig\n): {\n word: string | undefined;\n token: string;\n} => {\n const word = model.getWordUntilPosition(position);\n const prefixToken = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - word.word.length - 1,\n endColumn: position.column - word.word.length,\n });\n const prefixWord = model.getWordAtPosition({\n ...position,\n column: position.column - word?.word?.length - 1,\n });\n let matchWord = prefixWord?.word;\n if (tokenConfig.showDSKey && prefixWord?.word === \"DS\") {\n const prefix = model.getWordAtPosition({\n ...position,\n column: prefixWord.startColumn - 1,\n });\n\n matchWord = `${prefix?.word}.${prefixWord.word}`;\n }\n return {\n word: matchWord,\n token: prefixToken,\n };\n};\n\nexport const isInEvaluateBody = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): boolean => {\n const word = model.getWordUntilPosition(position);\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%\",\n position,\n false,\n false,\n null,\n false\n );\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n const isInEvaluateBody =\n prefixEvaluateOperator?.range.startLineNumber &&\n suffixEvaluateOperator?.range.startLineNumber &&\n prefixEvaluateOperator.range.startLineNumber <= position.lineNumber &&\n suffixEvaluateOperator.range.endLineNumber >= position.lineNumber;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixEvaluateOperator.range,\n prefixEvaluateOperator?.range.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixEvaluateOperator.range,\n suffixEvaluateOperator?.range.startLineNumber\n );\n const { keyList } = findKeys(model, word, position.lineNumber);\n if (\n // value is object\n (prefixParentKey === suffixParentKey &&\n keyList.includes(prefixParentKey)) ||\n // value is string\n (prefixParentKey === \"\" && suffixParentKey === \"\")\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const brickNextYAMLProviderCompletionItems = (\n completers: monaco.languages.CompletionItem[] = [],\n advancedCompleters: AdvancedCompleterMap = {},\n id: string,\n tokenConfig: TokenConfig\n) => {\n return async (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): Promise<\n monaco.languages.ProviderResult<monaco.languages.CompletionList>\n > => {\n if (id && id !== getEditorId())\n return {\n suggestions: [],\n };\n const DSToken = tokenConfig.showDSKey ? [\"CTX.DS\", \"DS\"] : [];\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: _prefixToken } = getPrefixWord(\n model,\n position,\n tokenConfig\n );\n const curLineWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: 0,\n endColumn: Infinity,\n });\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const isFirstLevelProperty = word.startColumn === 1;\n const { curLevelKeys } = findKeys(model, word, model.getLineCount());\n\n if (context.triggerCharacter === \"<\") {\n const fullWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endColumn: position.column + 2,\n });\n if (fullWord.trim() !== \"<\") {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n {\n label: \"<%= %>\",\n detail: \"Track Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"%= ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n ],\n };\n }\n\n if (isFirstLevelProperty) {\n return {\n suggestions: (completers ?? [])\n .filter((item) => !curLevelKeys.includes(item.label as string))\n .map((item) => ({\n ...item,\n label: item.label,\n insertText: item.insertText || (item.label as string),\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (\n context.triggerCharacter === \":\" ||\n (context.triggerCharacter === \".\" &&\n prefixWord &&\n ![\"CTX\", \"STATE\", \"FN\"].concat(DSToken).includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n const actions = get(\n storyboardJsonSchema,\n \"definitions.BuiltinBrickEventHandler.properties.action.enum\"\n );\n return {\n suggestions: ((actions as unknown as string[]) ?? [])?.map(\n (item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })\n ),\n };\n }\n const matchCompletion = advancedCompleters?.[prefixWord as string];\n let matchTriggerCharacter = \"\";\n let list: monaco.languages.CompletionItem[] | undefined;\n if (matchCompletion && !Array.isArray(matchCompletion)) {\n list = matchCompletion.completers;\n matchTriggerCharacter = matchCompletion.triggerCharacter;\n } else {\n list = matchCompletion;\n }\n if (\n matchTriggerCharacter\n ? context.triggerCharacter === matchTriggerCharacter && list\n : list\n ) {\n return {\n suggestions: (list ?? []).map((item) => {\n const label =\n matchTriggerCharacter === \":\"\n ? ` ${item.label}`\n : (item.label as string);\n return {\n ...item,\n label: label,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: item.insertText || label,\n range,\n };\n }),\n };\n }\n }\n\n if (isInEvaluateBody(model, position)) {\n const embeddedContext = EmbeddedModelContext.getInstance(id);\n\n const suggestions = await provideJsSuggestItems(\n model,\n position,\n embeddedContext.getState()\n );\n\n return {\n suggestions,\n };\n }\n\n if (/^[\\s|-]*\\w$/.test(curLineWord)) {\n return {\n suggestions: brickNextKeywords\n .map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n }))\n .filter((item) => !curLevelKeys.includes(item.label as string)),\n };\n }\n\n return {\n suggestions: [],\n };\n };\n};\n","export const EVALUATE_KEYWORD = [\n \"CTX\",\n \"STATE\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"APP\",\n \"ANCHOR\",\n \"HASH\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"INDEX\",\n \"SIZE\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH\",\n \"PROCESSORS\",\n \"QUERY\",\n \"QUERY_ARRAY\",\n \"SESSION_STORAGE\",\n \"TPL\",\n \"SYS\",\n \"BASE_URL\",\n \"IMG\",\n \"FN\",\n \"I18N\",\n \"I18N_TEXT\",\n \"PERMISSIONS\",\n \"THEME\",\n];\n\nexport const brickNextKeywords = [\n \"target\",\n \"targetRef\",\n \"properties\",\n \"events\",\n \"method\",\n \"callback\",\n \"success\",\n \"error\",\n \"action\",\n \"useProvider\",\n \"useChildren\",\n \"useBrick\",\n \"args\",\n \"if\",\n \"then\",\n];\n\nexport const Level = {\n hit: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n\nexport const builtInKeywordDeclare = `\n declare const DATA: any;\n declare const EVENT: CustomEvent<any>;\n declare const FLAGS: Record<string, boolean>;\n declare const ANCHOR: string | null;\n declare const HASH: string;\n declare namespace INSTALLED_APPS {\n function has(appId: string):boolean\n }\n declare const ITEM: any;\n declare const INDEX: number;\n declare const SIZE: number;\n declare namespace LOCAL_STORAGE {\n function getItem(name: string): string;\n }\n declare namespace SESSION_STORAGE {\n function getItem(name: string): string\n }\n declare const MEDIA: {\n breakpoint?: \"xLarge\" | \"large\" | \"medium\" | \"small\" | \"xSmall\";\n };\n declare const MISC: Record<string, any>;\n declare const PARAMS: URLSearchParams;\n declare const PROCESSORS: Record<string, Record<string, Function>>;\n declare const QUERY_ARRAY: Record<string, string[]>;\n declare const TPL: Record<string, any>;\n declare const PIPES: Record<string, Function>;\n declare const _: Record<string, any>;\n declare namespace SYS {\n const username:string;\n const userInstanceId:string;\n const org:number;\n const isAdmin: boolean;\n const accessRule:string;\n const csrfToken:string;\n const accessToken:string;\n const userShowValue:string[];\n }\n declare const BASE_URL: string;\n declare namespace IMG {\n function get(src: string): string;\n }\n declare function I18N(key: string, options?: string | Record<string, unknown>): string;\n declare function I18N_TEXT(data: {[language: string]: string}):string;\n declare namespace PERMISSIONS {\n function check(...action: string[]):boolean;\n }\n declare namespace THEME {\n function getTheme(): \"light\" | \"dark\" | \"dark-v2\";\n }\n`;\n","let editorId: string;\n\nexport function setEditorId(id: string) {\n editorId = id;\n}\n\nexport function getEditorId() {\n return editorId;\n}\n","interface Range {\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n}\n\nexport interface EmbeddedState {\n content?: string;\n offset?: number;\n range?: Range;\n}\n\nexport class EmbeddedModelContext {\n static #instance: Record<string, EmbeddedModelContext> = {};\n #id: string;\n #state: EmbeddedState = {};\n\n static getInstance(id: string) {\n if (!this.#instance[id]) {\n this.#instance[id] = new EmbeddedModelContext(id);\n }\n return this.#instance[id];\n }\n\n constructor(id: string) {\n this.#id = id;\n }\n\n updateState(state: EmbeddedState) {\n this.#state = state;\n }\n\n getState(): EmbeddedState {\n return this.#state;\n }\n}\n","import storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { get } from \"lodash\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { builtInKeywordDeclare } from \"./constants.js\";\n\ninterface BlockContext {\n offset?: number;\n}\n\nexport function getEmbeddedJavascriptUri(\n value: monaco.editor.IModel | monaco.Uri\n) {\n if (\"uri\" in value) {\n value = value.uri;\n }\n return monaco.Uri.parse(value.toString() + \".ts\");\n}\n\n// istanbul ignore next\nexport async function provideJsSuggestItems(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n embeddedContext: BlockContext\n) {\n const workerGetter = await monaco.languages.typescript.getJavaScriptWorker();\n const worker = await workerGetter(model.uri);\n const javascriptModel = monaco.editor.getModel(\n getEmbeddedJavascriptUri(model)\n );\n\n const endOffset = model.getOffsetAt(position);\n const starOffset = embeddedContext?.offset ?? 0;\n\n const offset = endOffset - starOffset;\n\n const info = await worker.getCompletionsAtPosition(\n javascriptModel!.uri.toString(),\n offset!\n );\n\n const wordInfo = model.getWordUntilPosition(position);\n\n const wordRange = new monaco.Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn\n );\n\n const suggestions = (info?.entries ?? []).map((entry: any) => {\n let range = wordRange;\n\n if (entry.replacementSpan) {\n const p1 = model.getPositionAt(entry.replacementSpan.start);\n const p2 = model.getPositionAt(\n entry.replacementSpan.start + entry.replacementSpan.length\n );\n range = new monaco.Range(\n p1.lineNumber,\n p1.column,\n p2.lineNumber,\n p2.column\n );\n }\n\n return {\n uri: javascriptModel!.uri,\n position: position,\n offset: offset,\n range: range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: monaco.languages.CompletionItemKind.Property,\n };\n });\n\n return suggestions;\n}\n\nexport function getMicroAppDeclare() {\n const appProperties = get(\n storyboardJsonSchema,\n \"definitions.MicroApp.properties\"\n ) as unknown as Record<string, { type: string }>;\n\n const fields = [];\n for (const [k, v] of Object.entries(appProperties)) {\n fields.push(`const ${k}: ${v.type ?? \"any\"}`);\n }\n\n return `\n declare namespace APP {\n ${fields.join(\"\\n\")}\n }\n `;\n}\n\nexport function getBrickYamlBuiltInDeclare() {\n return [getMicroAppDeclare(), builtInKeywordDeclare].join(\"\\n\");\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.highlight{box-shadow:rgb(74 170 189) 0px 1px 0px 0px}.pointer{cursor:pointer}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);background:var(--color-border-divider-line);border:1px solid var(--color-border-divider-line)}.code-editor-wrapper.error .overflow-guard{outline:1px solid var(--antd-error-color)}.code-editor-wrapper.expanded.error .overflow-guard{border:1px solid var(--antd-error-color)}.code-editor-wrapper{position:relative}.code-editor-wrapper.expanded{position:fixed;z-index:1000;top:0;left:0;right:0;bottom:0;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.code-editor-wrapper.expanded .toolbar{right:40px;top:40px}.code-editor-wrapper:hover .toolbar{display:flex}.toolbar{display:none;position:absolute;top:15px;right:20px;line-height:12px;font-size:12px;text-align:center;gap:10px;box-shadow:none;transition:none;border-radius:50%;border:none}.copy-icon,\n.expand-icon{opacity:0.5;cursor:pointer;font-size:16px}.copy-icon:hover,\n.expand-icon:hover{opacity:1}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { uniqueId } from \"lodash\";\n\nlet parseWorker;\n\nfunction init() {\n if (!parseWorker) {\n parseWorker = new Worker(new URL(\"./parseYaml.worker.ts\", import.meta.url));\n }\n}\n\nexport class VSWorkers {\n static #instance = {};\n\n static getInstance(id) {\n if (!this.#instance[id]) {\n init();\n this.#instance[id] = new VSWorkers(id);\n }\n return this.#instance[id];\n }\n\n #id;\n #worker;\n\n #listenerCache = new Map();\n\n constructor(id) {\n this.#worker = parseWorker;\n this.#id = id;\n }\n\n postMessage(message) {\n this.#worker.postMessage({\n ...message,\n id: this.#id,\n });\n }\n\n addEventListener(name, listener) {\n const uid = uniqueId();\n this.#worker.addEventListener(name, (...args) => {\n const { id } = args[0].data;\n if (id === this.#id) listener(...args);\n });\n this.#listenerCache.set(uid, {\n name,\n fn: listener,\n });\n return uid;\n }\n\n removeEventListener(uid) {\n const listener = this.#listenerCache.get(uid);\n if (listener) {\n this.#worker.removeEventListener(listener.name, listener.fn);\n this.#listenerCache.delete(uid);\n }\n }\n}\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n"],"names":["EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL","K","NS","locales","en","COPY","COPY_SUCCESS","COPY_FAILED","EXPAND","COLLAPSE","zh","extraLibsMap","Map","addExtraLibs","libs","options","flatMap","lib","uriString","monaco","file","filePath","toString","previousLibs","get","forEach","dispose","disposables","languageDefaults","map","key","typescript","addExtraLib","content","set","findKeys","model","range","line","curLevelKeys","keyList","parentKey","i","startColumn","matchWord","getValueInRange","startLineNumber","endLineNumber","endColumn","Infinity","match","wordSpace","length","unshift","brickNextYAMLProviderCompletionItems","completers","arguments","undefined","advancedCompleters","id","tokenConfig","async","position","context","getEditorId","suggestions","DSToken","showDSKey","word","getWordUntilPosition","prefixWord","token","_prefixToken","getPrefixWord","_word$word","prefixToken","lineNumber","column","getWordAtPosition","prefix","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","trim","label","detail","kind","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","filter","item","includes","Keyword","concat","_ref","storyboardJsonSchema","matchCompletion","list","matchTriggerCharacter","Array","isArray","isInEvaluateBody","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixParentKey","suffixParentKey","embeddedContext","EmbeddedModelContext","getInstance","provideJsSuggestItems","getState","test","brickNextKeywords","builtInKeywordDeclare","editorId","setEditorId","_assertClassBrand","this","_instance","_","constructor","_classPrivateFieldInitSpec","_id","_state","_classPrivateFieldSet","updateState","state","_classPrivateFieldGet","getEmbeddedJavascriptUri","value","uri","parse","workerGetter","getJavaScriptWorker","worker","javascriptModel","getModel","offset","getOffsetAt","info","getCompletionsAtPosition","wordInfo","wordRange","entries","entry","replacementSpan","p1","getPositionAt","start","p2","name","sortText","Property","getMicroAppDeclare","appProperties","fields","k","v","Object","push","type","join","getBrickYamlBuiltInDeclare","___CSS_LOADER_EXPORT___","module","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","parseWorker","VSWorkers","static","Worker","URL","postMessage","message","addEventListener","listener","uid","uniqueId","args","data","fn","removeEventListener","delete","method","property","createDecorators","_A","WeakMap","_FormItemElementBase_brand","WeakSet","_B","_C","_D","_E","_F","_G","FormItemElementBase","ReactNextElement","_classPrivateMethodInitSpec","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_classPrivateSetter","_set_validate","_render","_classPrivateGetter","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","_applyDecs","attribute","e"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/5191.c24d2fc0.js","mappings":"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","sources":["webpack:///./src/code-editor/constants.ts","webpack:///./src/code-editor/i18n.ts","webpack:///./src/code-editor/utils/addExtraLibs.ts","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/utils/editorId.ts","webpack:///./src/code-editor/utils/embeddedModelState.ts","webpack:///./src/code-editor/utils/jsSuggestInBrickYaml.ts","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/index.css?aefa","webpack:///./src/code-editor/workers/index.mjs","webpack:///../../src/FormItemElement.tsx"],"sourcesContent":["export const EDITOR_FONT_SIZE = 12;\nexport const EDITOR_LINE_HEIGHT = 18;\nexport const EDITOR_SCROLLBAR_SIZE = 12;\nexport const EDITOR_PADDING_VERTICAL = 12;\n","export enum K {\n COPY = \"COPY\",\n COPY_SUCCESS = \"COPY_SUCCESS\",\n COPY_FAILED = \"COPY_FAILED\",\n EXPAND = \"EXPAND\",\n COLLAPSE = \"COLLAPSE\",\n}\n\nconst en: Locale = {\n COPY: \"Copy\",\n COPY_SUCCESS: \"Copied!\",\n COPY_FAILED: \"Copy failed!\",\n EXPAND: \"Expand\",\n COLLAPSE: \"Collapse\",\n};\n\nconst zh: Locale = {\n COPY: \"复制\",\n COPY_SUCCESS: \"已复制!\",\n COPY_FAILED: \"复制失败!\",\n EXPAND: \"展开\",\n COLLAPSE: \"收起\",\n};\n\nexport const NS = \"bricks/vs/code-editor\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { ExtraLib } from \"../interfaces.js\";\n\nconst extraLibsMap = new Map<string, monaco.IDisposable[]>();\n\nexport function addExtraLibs(\n libs: ExtraLib[],\n options: {\n languageDefaults?: string;\n }\n): monaco.IDisposable[] {\n return libs.flatMap((lib) => {\n const uri = monaco.Uri.file(`libs/${lib.filePath}`);\n const uriString = uri.toString();\n const previousLibs = extraLibsMap.get(uriString);\n if (previousLibs) {\n previousLibs.forEach((lib) => lib.dispose());\n }\n // Add libs for both js and ts.\n const disposables = (\n [options.languageDefaults] as Array<\n \"javascriptDefaults\" | \"typescriptDefaults\"\n >\n ).map((key) =>\n monaco.languages.typescript[key].addExtraLib(lib.content, uriString)\n );\n\n extraLibsMap.set(uriString, disposables);\n return disposables;\n });\n}\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { brickNextKeywords } from \"./constants.js\";\nimport get from \"lodash/get.js\";\nimport { getEditorId } from \"./editorId.js\";\nimport { TokenConfig } from \"../index.jsx\";\nimport { AdvancedCompleterMap } from \"../interfaces.js\";\nimport { provideJsSuggestItems } from \"../utils/jsSuggestInBrickYaml.js\";\nimport { EmbeddedModelContext } from \"../utils/embeddedModelState.js\";\n\nconst findKeys = (\n model: monaco.editor.ITextModel,\n range: monaco.Range | monaco.editor.IWordAtPosition,\n line: number\n) => {\n const curLevelKeys: string[] = [];\n const keyList: string[] = [];\n let parentKey = \"\";\n let i = line;\n let startColumn = range.startColumn;\n while (i > 0) {\n const prefixLineWord = model.getValueInRange({\n startLineNumber: i,\n endLineNumber: i,\n startColumn: 0,\n endColumn: Infinity,\n });\n const matchWord = prefixLineWord.match(/^([\\s|-]*)(\\w+)(?=:)/);\n if (matchWord) {\n const [, wordSpace, key] = matchWord;\n if (wordSpace.length === range.startColumn - 1) {\n curLevelKeys.unshift(key);\n }\n if (wordSpace.length < startColumn - 1) {\n !parentKey && (parentKey = key);\n startColumn = wordSpace.length;\n keyList.unshift(key);\n }\n }\n i--;\n }\n return {\n curLevelKeys,\n keyList,\n parentKey,\n };\n};\n\nconst getPrefixWord = (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n tokenConfig: TokenConfig\n): {\n word: string | undefined;\n token: string;\n} => {\n const word = model.getWordUntilPosition(position);\n const prefixToken = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - word.word.length - 1,\n endColumn: position.column - word.word.length,\n });\n const prefixWord = model.getWordAtPosition({\n ...position,\n column: position.column - word?.word?.length - 1,\n });\n let matchWord = prefixWord?.word;\n if (tokenConfig.showDSKey && prefixWord?.word === \"DS\") {\n const prefix = model.getWordAtPosition({\n ...position,\n column: prefixWord.startColumn - 1,\n });\n\n matchWord = `${prefix?.word}.${prefixWord.word}`;\n }\n return {\n word: matchWord,\n token: prefixToken,\n };\n};\n\nexport const isInEvaluateBody = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): boolean => {\n const word = model.getWordUntilPosition(position);\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%\",\n position,\n false,\n false,\n null,\n false\n );\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n const isInEvaluateBody =\n prefixEvaluateOperator?.range.startLineNumber &&\n suffixEvaluateOperator?.range.startLineNumber &&\n prefixEvaluateOperator.range.startLineNumber <= position.lineNumber &&\n suffixEvaluateOperator.range.endLineNumber >= position.lineNumber;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixEvaluateOperator.range,\n prefixEvaluateOperator?.range.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixEvaluateOperator.range,\n suffixEvaluateOperator?.range.startLineNumber\n );\n const { keyList } = findKeys(model, word, position.lineNumber);\n if (\n // value is object\n (prefixParentKey === suffixParentKey &&\n keyList.includes(prefixParentKey)) ||\n // value is string\n (prefixParentKey === \"\" && suffixParentKey === \"\")\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const brickNextYAMLProviderCompletionItems = (\n completers: monaco.languages.CompletionItem[] = [],\n advancedCompleters: AdvancedCompleterMap = {},\n id: string,\n tokenConfig: TokenConfig\n) => {\n return async (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): Promise<\n monaco.languages.ProviderResult<monaco.languages.CompletionList>\n > => {\n if (id && id !== getEditorId())\n return {\n suggestions: [],\n };\n const DSToken = tokenConfig.showDSKey ? [\"CTX.DS\", \"DS\"] : [];\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: _prefixToken } = getPrefixWord(\n model,\n position,\n tokenConfig\n );\n const curLineWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: 0,\n endColumn: Infinity,\n });\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const isFirstLevelProperty = word.startColumn === 1;\n const { curLevelKeys } = findKeys(model, word, model.getLineCount());\n\n if (context.triggerCharacter === \"<\") {\n const fullWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endColumn: position.column + 2,\n });\n if (fullWord.trim() !== \"<\") {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n {\n label: \"<%= %>\",\n detail: \"Track Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"%= ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n ],\n };\n }\n\n if (isFirstLevelProperty) {\n return {\n suggestions: (completers ?? [])\n .filter((item) => !curLevelKeys.includes(item.label as string))\n .map((item) => ({\n ...item,\n label: item.label,\n insertText: item.insertText || (item.label as string),\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (\n context.triggerCharacter === \":\" ||\n (context.triggerCharacter === \".\" &&\n prefixWord &&\n ![\"CTX\", \"STATE\", \"FN\"].concat(DSToken).includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n const actions = get(\n storyboardJsonSchema,\n \"definitions.BuiltinBrickEventHandler.properties.action.enum\"\n );\n return {\n suggestions: ((actions as unknown as string[]) ?? [])?.map(\n (item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })\n ),\n };\n }\n const matchCompletion = advancedCompleters?.[prefixWord as string];\n let matchTriggerCharacter = \"\";\n let list: monaco.languages.CompletionItem[] | undefined;\n if (matchCompletion && !Array.isArray(matchCompletion)) {\n list = matchCompletion.completers;\n matchTriggerCharacter = matchCompletion.triggerCharacter;\n } else {\n list = matchCompletion;\n }\n if (\n matchTriggerCharacter\n ? context.triggerCharacter === matchTriggerCharacter && list\n : list\n ) {\n return {\n suggestions: (list ?? []).map((item) => {\n const label =\n matchTriggerCharacter === \":\"\n ? ` ${item.label}`\n : (item.label as string);\n return {\n ...item,\n label: label,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: item.insertText || label,\n range,\n };\n }),\n };\n }\n }\n\n if (isInEvaluateBody(model, position)) {\n const embeddedContext = EmbeddedModelContext.getInstance(id);\n\n const suggestions = await provideJsSuggestItems(\n model,\n position,\n embeddedContext.getState()\n );\n\n return {\n suggestions,\n };\n }\n\n if (/^[\\s|-]*\\w$/.test(curLineWord)) {\n return {\n suggestions: brickNextKeywords\n .map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n }))\n .filter((item) => !curLevelKeys.includes(item.label as string)),\n };\n }\n\n return {\n suggestions: [],\n };\n };\n};\n","export const EVALUATE_KEYWORD = [\n \"CTX\",\n \"STATE\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"APP\",\n \"ANCHOR\",\n \"HASH\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"INDEX\",\n \"SIZE\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH\",\n \"PROCESSORS\",\n \"QUERY\",\n \"QUERY_ARRAY\",\n \"SESSION_STORAGE\",\n \"TPL\",\n \"SYS\",\n \"BASE_URL\",\n \"IMG\",\n \"FN\",\n \"I18N\",\n \"I18N_TEXT\",\n \"PERMISSIONS\",\n \"THEME\",\n];\n\nexport const brickNextKeywords = [\n \"target\",\n \"targetRef\",\n \"properties\",\n \"events\",\n \"method\",\n \"callback\",\n \"success\",\n \"error\",\n \"action\",\n \"useProvider\",\n \"useChildren\",\n \"useBrick\",\n \"args\",\n \"if\",\n \"then\",\n];\n\nexport const Level = {\n hit: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n\nexport const builtInKeywordDeclare = `\n declare const DATA: any;\n declare const EVENT: CustomEvent<any>;\n declare const FLAGS: Record<string, boolean>;\n declare const ANCHOR: string | null;\n declare const HASH: string;\n declare namespace INSTALLED_APPS {\n function has(appId: string):boolean\n }\n declare const ITEM: any;\n declare const INDEX: number;\n declare const SIZE: number;\n declare namespace LOCAL_STORAGE {\n function getItem(name: string): string;\n }\n declare namespace SESSION_STORAGE {\n function getItem(name: string): string\n }\n declare const MEDIA: {\n breakpoint?: \"xLarge\" | \"large\" | \"medium\" | \"small\" | \"xSmall\";\n };\n declare const MISC: Record<string, any>;\n declare const PARAMS: URLSearchParams;\n declare const PROCESSORS: Record<string, Record<string, Function>>;\n declare const QUERY_ARRAY: Record<string, string[]>;\n declare const TPL: Record<string, any>;\n declare const PIPES: Record<string, Function>;\n declare const _: Record<string, any>;\n declare namespace SYS {\n const username:string;\n const userInstanceId:string;\n const org:number;\n const isAdmin: boolean;\n const accessRule:string;\n const csrfToken:string;\n const accessToken:string;\n const userShowValue:string[];\n }\n declare const BASE_URL: string;\n declare namespace IMG {\n function get(src: string): string;\n }\n declare function I18N(key: string, options?: string | Record<string, unknown>): string;\n declare function I18N_TEXT(data: {[language: string]: string}):string;\n declare namespace PERMISSIONS {\n function check(...action: string[]):boolean;\n }\n declare namespace THEME {\n function getTheme(): \"light\" | \"dark\" | \"dark-v2\";\n }\n`;\n","let editorId: string;\n\nexport function setEditorId(id: string) {\n editorId = id;\n}\n\nexport function getEditorId() {\n return editorId;\n}\n","interface Range {\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n}\n\nexport interface EmbeddedState {\n content?: string;\n offset?: number;\n range?: Range;\n}\n\nexport class EmbeddedModelContext {\n static #instance: Record<string, EmbeddedModelContext> = {};\n #id: string;\n #state: EmbeddedState = {};\n\n static getInstance(id: string) {\n if (!this.#instance[id]) {\n this.#instance[id] = new EmbeddedModelContext(id);\n }\n return this.#instance[id];\n }\n\n constructor(id: string) {\n this.#id = id;\n }\n\n updateState(state: EmbeddedState) {\n this.#state = state;\n }\n\n getState(): EmbeddedState {\n return this.#state;\n }\n}\n","import storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { get } from \"lodash\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { builtInKeywordDeclare } from \"./constants.js\";\n\ninterface BlockContext {\n offset?: number;\n}\n\nexport function getEmbeddedJavascriptUri(\n value: monaco.editor.IModel | monaco.Uri\n) {\n if (\"uri\" in value) {\n value = value.uri;\n }\n return monaco.Uri.parse(value.toString() + \".ts\");\n}\n\n// istanbul ignore next\nexport async function provideJsSuggestItems(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n embeddedContext: BlockContext\n) {\n const workerGetter = await monaco.languages.typescript.getJavaScriptWorker();\n const worker = await workerGetter(model.uri);\n const javascriptModel = monaco.editor.getModel(\n getEmbeddedJavascriptUri(model)\n );\n\n const endOffset = model.getOffsetAt(position);\n const starOffset = embeddedContext?.offset ?? 0;\n\n const offset = endOffset - starOffset;\n\n const info = await worker.getCompletionsAtPosition(\n javascriptModel!.uri.toString(),\n offset!\n );\n\n const wordInfo = model.getWordUntilPosition(position);\n\n const wordRange = new monaco.Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn\n );\n\n const suggestions = (info?.entries ?? []).map((entry: any) => {\n let range = wordRange;\n\n if (entry.replacementSpan) {\n const p1 = model.getPositionAt(entry.replacementSpan.start);\n const p2 = model.getPositionAt(\n entry.replacementSpan.start + entry.replacementSpan.length\n );\n range = new monaco.Range(\n p1.lineNumber,\n p1.column,\n p2.lineNumber,\n p2.column\n );\n }\n\n return {\n uri: javascriptModel!.uri,\n position: position,\n offset: offset,\n range: range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: monaco.languages.CompletionItemKind.Property,\n };\n });\n\n return suggestions;\n}\n\nexport function getMicroAppDeclare() {\n const appProperties = get(\n storyboardJsonSchema,\n \"definitions.MicroApp.properties\"\n ) as unknown as Record<string, { type: string }>;\n\n const fields = [];\n for (const [k, v] of Object.entries(appProperties)) {\n fields.push(`const ${k}: ${v.type ?? \"any\"}`);\n }\n\n return `\n declare namespace APP {\n ${fields.join(\"\\n\")}\n }\n `;\n}\n\nexport function getBrickYamlBuiltInDeclare() {\n return [getMicroAppDeclare(), builtInKeywordDeclare].join(\"\\n\");\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.highlight{box-shadow:rgb(74 170 189) 0px 1px 0px 0px}.monaco-placeholder{position:absolute;white-space:pre-wrap;top:6px;left:50px;font-size:16px;color:rgba(var(--theme-gray-color-rgb-channel),0.4);pointer-events:none;-webkit-user-select:none;user-select:none}.pointer{cursor:pointer}.monaco-editor{outline-width:0}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);border:1px solid var(--color-border-divider-line)}.code-editor-wrapper.error .overflow-guard{border-color:var(--antd-error-color)}.code-editor-wrapper{position:relative}.code-editor-wrapper.expanded{position:fixed;z-index:1000;top:0;left:0;right:0;bottom:0;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.code-editor-wrapper.expanded .toolbar{right:40px;top:40px}.code-editor-wrapper:hover .toolbar{display:flex}.toolbar{display:none;position:absolute;top:15px;right:20px;line-height:12px;font-size:12px;text-align:center;gap:10px;box-shadow:none;transition:none;border-radius:50%;border:none}.copy-icon,\n.expand-icon{opacity:0.5;cursor:pointer;font-size:16px}.copy-icon:hover,\n.expand-icon:hover{opacity:1}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { uniqueId } from \"lodash\";\n\nlet parseWorker;\n\nfunction init() {\n if (!parseWorker) {\n parseWorker = new Worker(new URL(\"./parseYaml.worker.ts\", import.meta.url));\n }\n}\n\nexport class VSWorkers {\n static #instance = {};\n\n static getInstance(id) {\n if (!this.#instance[id]) {\n init();\n this.#instance[id] = new VSWorkers(id);\n }\n return this.#instance[id];\n }\n\n #id;\n #worker;\n\n #listenerCache = new Map();\n\n constructor(id) {\n this.#worker = parseWorker;\n this.#id = id;\n }\n\n postMessage(message) {\n this.#worker.postMessage({\n ...message,\n id: this.#id,\n });\n }\n\n addEventListener(name, listener) {\n const uid = uniqueId();\n this.#worker.addEventListener(name, (...args) => {\n const { id } = args[0].data;\n if (id === this.#id) listener(...args);\n });\n this.#listenerCache.set(uid, {\n name,\n fn: listener,\n });\n return uid;\n }\n\n removeEventListener(uid) {\n const listener = this.#listenerCache.get(uid);\n if (listener) {\n this.#worker.removeEventListener(listener.name, listener.fn);\n this.#listenerCache.delete(uid);\n }\n }\n}\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n"],"names":["EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL","K","NS","locales","en","COPY","COPY_SUCCESS","COPY_FAILED","EXPAND","COLLAPSE","zh","extraLibsMap","Map","addExtraLibs","libs","options","flatMap","lib","uriString","monaco","file","filePath","toString","previousLibs","get","forEach","dispose","disposables","languageDefaults","map","key","typescript","addExtraLib","content","set","findKeys","model","range","line","curLevelKeys","keyList","parentKey","i","startColumn","matchWord","getValueInRange","startLineNumber","endLineNumber","endColumn","Infinity","match","wordSpace","length","unshift","brickNextYAMLProviderCompletionItems","completers","arguments","undefined","advancedCompleters","id","tokenConfig","async","position","context","getEditorId","suggestions","DSToken","showDSKey","word","getWordUntilPosition","prefixWord","token","_prefixToken","getPrefixWord","_word$word","prefixToken","lineNumber","column","getWordAtPosition","prefix","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","trim","label","detail","kind","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","filter","item","includes","Keyword","concat","_ref","storyboardJsonSchema","matchCompletion","list","matchTriggerCharacter","Array","isArray","isInEvaluateBody","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixParentKey","suffixParentKey","embeddedContext","EmbeddedModelContext","getInstance","provideJsSuggestItems","getState","test","brickNextKeywords","builtInKeywordDeclare","editorId","setEditorId","_assertClassBrand","this","_instance","_","constructor","_classPrivateFieldInitSpec","_id","_state","_classPrivateFieldSet","updateState","state","_classPrivateFieldGet","getEmbeddedJavascriptUri","value","uri","parse","workerGetter","getJavaScriptWorker","worker","javascriptModel","getModel","offset","getOffsetAt","info","getCompletionsAtPosition","wordInfo","wordRange","entries","entry","replacementSpan","p1","getPositionAt","start","p2","name","sortText","Property","getMicroAppDeclare","appProperties","fields","k","v","Object","push","type","join","getBrickYamlBuiltInDeclare","___CSS_LOADER_EXPORT___","module","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","parseWorker","VSWorkers","static","Worker","URL","postMessage","message","addEventListener","listener","uid","uniqueId","args","data","fn","removeEventListener","delete","method","property","createDecorators","_A","WeakMap","_FormItemElementBase_brand","WeakSet","_B","_C","_D","_E","_F","_G","FormItemElementBase","ReactNextElement","_classPrivateMethodInitSpec","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_classPrivateSetter","_set_validate","_render","_classPrivateGetter","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","_applyDecs","attribute","e"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[7242],{7242:(e,t,n)=>{n.r(t);var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(4782),m=n(3518),p=n(1389),k=n(2518),f=n(426),A=n(3683),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(1732),C=n.n(M),E=(n(9772),n(2445)),x=n(7137),L=n(4929),S=n(2738),N=n(4804),B=n(4102),W=n(9287),_=n(5502),P=n(8182),R=n(3373),z=n.n(R),I=(n(3569),n(1968));let O,V,D,F,K,T,Y,q,H,U,j,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Ne,Be,We,_e,Pe,Re,ze,Ie,Oe,Ve,De,Fe,Ke,Te,Ye;(0,_.initializeReactI18n)(P.NS,P.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A);const{defineElement:qe,property:He,event:Ue}=(0,g.createDecorators)(),je=(0,p.wrapBrick)("eo-form-item"),Je=(0,p.wrapBrick)("eo-tooltip"),Xe=(0,p.wrapBrick)("eo-icon"),$e=(0,m.unwrapProvider)("basic.copy-to-clipboard"),Ge=(0,m.unwrapProvider)("basic.show-notification");let Qe;var Ze=new WeakMap,et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakSet,Et=new WeakMap,xt=new WeakMap,Lt=new WeakMap,St=new WeakMap,Nt=new WeakMap,Bt=new WeakMap;class Wt extends f.N{constructor(){super(...arguments),(0,s.A)(this,Ct),(0,r.A)(this,Ze,V(this)),(0,r.A)(this,et,(D(this),F(this))),(0,r.A)(this,tt,(K(this),T(this))),(0,r.A)(this,nt,(Y(this),q(this))),(0,r.A)(this,it,(H(this),U(this))),(0,r.A)(this,st,(j(this),J(this))),(0,r.A)(this,rt,(X(this),$(this))),(0,r.A)(this,at,(G(this),Q(this))),(0,r.A)(this,ot,(Z(this),ee(this))),(0,r.A)(this,lt,(te(this),ne(this))),(0,r.A)(this,ct,(ie(this),se(this))),(0,r.A)(this,ut,(re(this),ae(this))),(0,r.A)(this,ht,(oe(this),le(this))),(0,r.A)(this,dt,(ce(this),ue(this))),(0,r.A)(this,gt,(he(this),de(this))),(0,r.A)(this,mt,(ge(this),me(this))),(0,r.A)(this,pt,(pe(this),ke(this))),(0,r.A)(this,kt,(fe(this),Ae(this))),(0,r.A)(this,ft,(ve(this),ye(this))),(0,r.A)(this,At,(we(this),be(this))),(0,r.A)(this,vt,(Me(this),Ce(this))),(0,r.A)(this,yt,(Ee(this),xe(this))),(0,r.A)(this,wt,(Le(this),Se(this))),(0,r.A)(this,bt,(Ne(this),Be(this))),(0,r.A)(this,Mt,(We(this),_e(this))),(0,r.A)(this,Et,(ze(this),Ie(this))),(0,r.A)(this,xt,(De(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Ct,this,Pe).emit(e)})),(0,r.A)(this,Lt,(e=>{(0,o.A)(Ct,this,Oe).emit(e)})),(0,r.A)(this,St,Fe(this)),(0,r.A)(this,Nt,(Ye(this),e=>{(0,o.A)(Ct,this,Ke).emit(e)})),(0,r.A)(this,Bt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(Ze,this)}set name(e){(0,l.A)(Ze,this,e)}get label(){return(0,c.A)(et,this)}set label(e){(0,l.A)(et,this,e)}get value(){return(0,c.A)(tt,this)}set value(e){(0,l.A)(tt,this,e)}get language(){return(0,c.A)(nt,this)}set language(e){(0,l.A)(nt,this,e)}get theme(){return(0,c.A)(it,this)}set theme(e){(0,l.A)(it,this,e)}get required(){return(0,c.A)(st,this)}set required(e){(0,l.A)(st,this,e)}get readOnly(){return(0,c.A)(rt,this)}set readOnly(e){(0,l.A)(rt,this,e)}get automaticLayout(){return(0,c.A)(at,this)}set automaticLayout(e){(0,l.A)(at,this,e)}get minLines(){return(0,c.A)(ot,this)}set minLines(e){(0,l.A)(ot,this,e)}get completers(){return(0,c.A)(lt,this)}set completers(e){(0,l.A)(lt,this,e)}get advancedCompleters(){return(0,c.A)(ct,this)}set advancedCompleters(e){(0,l.A)(ct,this,e)}get markers(){return(0,c.A)(ut,this)}set markers(e){(0,l.A)(ut,this,e)}get links(){return(0,c.A)(ht,this)}set links(e){(0,l.A)(ht,this,e)}get maxLines(){return(0,c.A)(dt,this)}set maxLines(e){(0,l.A)(dt,this,e)}get height(){return(0,c.A)(gt,this)}set height(e){(0,l.A)(gt,this,e)}get message(){return(0,c.A)(mt,this)}set message(e){(0,l.A)(mt,this,e)}get placeholder(){return(0,c.A)(pt,this)}set placeholder(e){(0,l.A)(pt,this,e)}get showExpandButton(){return(0,c.A)(kt,this)}set showExpandButton(e){(0,l.A)(kt,this,e)}get lineNumbers(){return(0,c.A)(ft,this)}set lineNumbers(e){(0,l.A)(ft,this,e)}get tokenConfig(){return(0,c.A)(At,this)}set tokenConfig(e){(0,l.A)(At,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(vt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(vt,this,e)}get showCopyButton(){return(0,c.A)(yt,this)}set showCopyButton(e){(0,l.A)(yt,this,e)}get glyphMargin(){return(0,c.A)(wt,this)}set glyphMargin(e){(0,l.A)(wt,this,e)}get extraLibs(){return(0,c.A)(bt,this)}set extraLibs(e){(0,l.A)(bt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(je,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Bt,this)},d().createElement(_t,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(xt,this),onUserInput:(0,c.A)(Lt,this),onTokenClick:(0,c.A)(Nt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function _t(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f={showDSKey:!1},showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:R,onUserInput:O,onTokenClick:V,customValidationInBrickNextYaml:D}=e;const F=t??"",K=n??"plaintext",T=i??"auto",Y=s??3,q=r??1/0,H=a??500,[U,j]=(0,h.useState)(!1),J=(0,h.useMemo)((()=>(0,E.uniqueId)("worker")),[]),{t:X}=(0,_.useTranslation)(P.NS),$=(0,h.useRef)(null),G=(0,h.useRef)(),Q=(0,h.useRef)(),Z=(0,h.useRef)({width:300,height:Pt(F,Y,q)}),[ee,te]=(0,h.useState)(),ne=(0,h.useRef)(o),ie=(0,k.useCurrentTheme)();(0,h.useEffect)((()=>{if("brick_next_yaml"!==K)return;const e=S.h.getInstance(J),t=e.addEventListener("message",(e=>{const{token:t,data:n}=e.data,i=Q.current.getModel();if(i)switch(t){case"parse_yaml":{var s;const{value:e,tokens:t,markers:r}=n;null===(s=G.current)||void 0===s||s.set(t.map((e=>({range:new A.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),A.editor.setModelMarkers(i,"brick_next_yaml",r),O(e);break}case"parse_yaml_error":var r;A.editor.setModelMarkers(i,"brick_next_yaml",[]),null==G||null===(r=G.current)||void 0===r||r.set([]),O(void 0)}}));return()=>{e.removeEventListener(t)}}),[]),(0,h.useEffect)((()=>{const e="auto"===T?"dark"===ie||"dark-v2"===ie?"vs-dark":"vs":T,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),A.editor.setTheme("custom-theme")}),[ie,T]),(0,h.useEffect)((()=>{if(Q.current){const e=Q.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,c,J,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K]);const se=(0,h.useCallback)((()=>{if("brick_next_yaml"!==K||!Q.current)return;const e=S.h.getInstance(J),t=Q.current.getModel();e.postMessage({token:"parse_yaml",data:{value:null==t?void 0:t.getValue(),links:m,markers:u},options:f})}),[K,f,m,u,J]),re=(0,h.useMemo)((()=>(0,E.debounce)(se,300)),[se]);(0,h.useEffect)((()=>{const e=Q.current;if(e){const t=e.getModel();null!=t&&t.getValue&&F!==t.getValue()&&(t.setValue(F),re())}}),[F,re]),(0,h.useEffect)((()=>{re()}),[]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ne.current||!$.current)return;Z.current.width=$.current.getBoundingClientRect().width,null===(e=Q.current)||void 0===e||e.layout(Z.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===$.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==Z.current.width||U)&&(Z.current.width=e,null===(t=Q.current)||void 0===t||t.layout({width:e,height:U?i:Z.current.height}));break}}));return t.observe($.current),()=>{t.disconnect()}}),[U]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ne.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}($.current);if(!e)return;const t=new ResizeObserver((()=>{te(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ne.current&&"fit-content"!==ne.current&&te(H)}),[H]),(0,h.useEffect)((()=>{Q.current&&Q.current.updateOptions({readOnly:g})}),[g]),(0,h.useEffect)((()=>{if(Q.current||!$.current)return;const e=A.editor.createModel(F,K);if("brick_next_yaml"===K){const t=(0,B.AR)(e.uri);A.editor.createModel(F,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,B.Eh)(),e.uri.toString()+"d.ts")}Q.current=A.editor.create($.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ne.current,fontSize:x.yU,lineHeight:x.fE,scrollbar:{horizontalScrollbarSize:x.lP,verticalScrollbarSize:x.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:x.Vu,bottom:"fit-content"==ne.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0}),G.current=Q.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=p??[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=Q.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=G.current;((null==i||null===(n=i.getRanges)||void 0===n?void 0:n.call(i))??[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&V(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=G.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,V,ie,T]),(0,h.useEffect)((()=>{const e=Q.current;if(!e||!$.current||"fit-content"!==ne.current)return;const t=e.onDidContentSizeChange((t=>{if(!U&&t.contentHeightChanged){const n=Rt(t.contentHeight,Y,q);n!==Z.current.height&&(Z.current.height=n,e.layout(Z.current))}})),n=Rt(e.getContentHeight(),Y,q);return n!==Z.current.height&&(Z.current.height=n,e.layout(Z.current)),()=>{t.dispose()}}),[q,Y,U]);const ae=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,B.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(I.b.getInstance(J).updateState({content:i,range:n,offset:r}),!D)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{const n=r+(t.start??0),i=e.getPositionAt(n);return{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[J]);(0,h.useEffect)((()=>{if(!Q.current)return;const e=Q.current.getModel(),t=e.onDidChangeContent((async()=>{(0,N.J)(J),["brick_next_yaml"].includes(K)&&(ae(e,Q.current.getPosition()),re()),R(e.getValue())}));return()=>{t.dispose()}}),[re,R,J,K,ae]),(0,h.useEffect)((()=>{if(U){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),j(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[U]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=Q.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=Q.current)||void 0===t||t.dispose()}),[]);const oe=(0,h.useCallback)((()=>{if(Q.current){const e=Q.current.getModel();$e(e.getValue()).then((()=>Ge({type:"success",message:X(P.K.COPY_SUCCESS)}))).catch((()=>Ge({type:"error",message:X(P.K.COPY_FAILED)})))}}),[X]),le=(0,h.useCallback)((()=>{j(!U)}),[U]);return d().createElement("div",{className:z()("code-editor-wrapper",{expanded:U,error:"error"===C})},d().createElement("div",{ref:$,style:{height:U?"100%":ee,overflow:U?"scroll":""}}),!F&&d().createElement("div",{className:"monaco-placeholder"},M),d().createElement("div",{className:"toolbar"},y&&d().createElement(Je,{content:X(P.K.COPY)},d().createElement(Xe,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:oe})),v&&d().createElement(Je,{content:X(U?P.K.COLLAPSE:P.K.EXPAND)},d().createElement(Xe,{className:"expand-icon",icon:U?"compress":"expand",lib:"antd",theme:"outlined",onClick:le}))))}function Pt(e,t,n){return zt(Math.min(n,Math.max(t,e.split("\n").length)))}function Rt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(zt(n),Math.max(i,zt(t)))}function zt(e){return e*x.fE+x.lP+x.Vu}i=Wt,({e:[V,D,F,K,T,Y,q,H,U,j,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Ne,Be,We,_e,Pe,Re,ze,Ie,Oe,Ve,De,Fe,Ke,Te,Ye],c:[Qe,O]}=(0,u.A)(i,[qe("vs.code-editor",{shadowOptions:!1})],[[He(),1,"name"],[He(),1,"label"],[He(),1,"value"],[He(),1,"language"],[He(),1,"theme"],[He({type:Boolean}),1,"required"],[He({type:Boolean}),1,"readOnly"],[He(),1,"automaticLayout"],[He({type:Number}),1,"minLines"],[He({attribute:!1}),1,"completers"],[He({attribute:!1}),1,"advancedCompleters"],[He({attribute:!1}),1,"markers"],[He({attribute:!1}),1,"links"],[He({type:Number}),1,"maxLines"],[He({attribute:!1}),1,"height"],[He(),1,"message"],[He(),1,"placeholder"],[He({type:Boolean}),1,"showExpandButton"],[He(),1,"lineNumbers"],[He({attribute:!1}),1,"tokenConfig"],[He({type:Boolean}),1,"customValidationInBrickNextYaml"],[He({type:Boolean}),1,"showCopyButton"],[He({type:Boolean}),1,"glyphMargin"],[He({attribute:!1}),1,"extraLibs"],[Ue({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Mt,e),(e,t)=>(0,l.A)(Mt,e,t)],[Ue({type:"user.input"}),1,"userInput",e=>(0,c.A)(Et,e),(e,t)=>(0,l.A)(Et,e,t)],[Ue({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(St,e),(e,t)=>(0,l.A)(St,e,t)]],0,(e=>Bt.has((0,a.A)(e))),f.N)),O()}}]);
2
+ //# sourceMappingURL=7242.0de4950c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/7242.0de4950c.js","mappings":"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","sources":["webpack:///./src/code-editor/index.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport \"@next-core/theme\";\nimport { uniqueId, debounce } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { AdvancedCompleterMap, ExtraLib } from \"./interfaces.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport { Level } from \"./utils/constants.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { VSWorkers } from \"./workers/index.mjs\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport {\n getEmbeddedJavascriptUri,\n getBrickYamlBuiltInDeclare,\n} from \"./utils/jsSuggestInBrickYaml.js\";\nimport { addExtraLibs } from \"./utils/addExtraLibs.js\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport type { copyToClipboard as _copyToClipboard } from \"@next-bricks/basic/data-providers/copy-to-clipboard\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\nimport { EmbeddedModelContext } from \"./utils/embeddedModelState.js\";\n\ninitializeReactI18n(NS, locales);\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst copyToClipboard = unwrapProvider<typeof _copyToClipboard>(\n \"basic.copy-to-clipboard\"\n);\nconst showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n placeholder?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n tokenConfig?: TokenConfig;\n advancedCompleters?: AdvancedCompleterMap;\n extraLibs?: ExtraLib[];\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n lineNumbers?: monaco.editor.LineNumbersType;\n glyphMargin?: boolean;\n validateState?: string;\n customValidationInBrickNextYaml?: boolean;\n}\n\nexport interface Marker {\n token: string;\n level?: keyof typeof Level;\n message?: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\nexport type TokenConfig = {\n showDSKey: boolean;\n};\n\n/**\n * 构件代码编辑器\n * @category form-input-advanced\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters: AdvancedCompleterMap | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 行数配置\n */\n @property()\n accessor lineNumbers: monaco.editor.LineNumbersType | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 在 brick_next_yaml 中是否开启语义相关校验\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor customValidationInBrickNextYaml: boolean | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n /**\n * 显示字形边距\n * @default false\n */\n @property({ type: Boolean })\n accessor glyphMargin: boolean | undefined;\n\n /**\n * @description 额外声明的 lib 库\n */\n @property({\n attribute: false,\n })\n accessor extraLibs: ExtraLib[] | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<any>;\n\n #handleChange = (value: string) => {\n this.value = value;\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n };\n\n #handleUserInput = (value: any) => {\n this.#userInput.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClickEvent!: EventEmitter<string>;\n\n #handleTokenClick = (word: string) => {\n this.#tokenClickEvent.emit(word);\n };\n\n #handleValidator = (value: string) => {\n if (this.language === \"brick_next_yaml\" || this.language === \"yaml\") {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n notRender={this.notRender}\n validator={this.#handleValidator}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n extraLibs={this.extraLibs}\n markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n lineNumbers={this.lineNumbers}\n glyphMargin={this.glyphMargin}\n placeholder={this.placeholder}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onUserInput={this.#handleUserInput}\n onTokenClick={this.#handleTokenClick}\n customValidationInBrickNextYaml={this.customValidationInBrickNextYaml}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n extraLibs,\n tokenConfig = {\n showDSKey: false,\n },\n showExpandButton,\n showCopyButton = true,\n lineNumbers = \"on\",\n glyphMargin = false,\n placeholder,\n validateState,\n onChange,\n onUserInput,\n onTokenClick,\n customValidationInBrickNextYaml,\n}: CodeEditorProps & {\n onChange(value: string): void;\n onUserInput: (value: any) => void;\n onTokenClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n const [expanded, setExpanded] = useState(false);\n const workerId = useMemo(() => uniqueId(\"worker\"), []);\n\n const { t } = useTranslation(NS);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data } = message.data;\n const model = editorRef.current!.getModel();\n if (!model) return;\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onUserInput(value);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n onUserInput(undefined);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n const computedTheme =\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme;\n const lineHeightBackground = computedTheme.includes(\"dark\")\n ? \"#FFFFFF0F\"\n : \"#0000000A\";\n monaco.editor.defineTheme(\"custom-theme\", {\n base: computedTheme as \"vs-dark\" | \"vs\",\n inherit: true,\n rules: [],\n colors: {\n \"editor.lineHighlightBackground\": `${lineHeightBackground}`,\n },\n });\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\"custom-theme\");\n }, [systemTheme, theme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n }\n }, [language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProviderCompletionItems(\n completers,\n advancedCompleters,\n workerId,\n tokenConfig\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n } as monaco.languages.CompletionItemProvider\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(() => {\n if (language !== \"brick_next_yaml\" || !editorRef.current) return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const currentModel = editorRef.current.getModel();\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: currentModel?.getValue(),\n links,\n markers,\n },\n options: tokenConfig,\n });\n }, [language, tokenConfig, links, markers, workerId]);\n\n const debounceParse = useMemo(() => debounce(parseYaml, 300), [parseYaml]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (editor) {\n const currentModel = editor.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n debounceParse();\n }\n }\n }, [value, debounceParse]);\n\n useEffect(() => {\n debounceParse();\n }, []);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0].inlineSize\n : entry.contentRect.width;\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0].blockSize\n : entry.contentRect.height;\n if (newWidth !== size.current.width || expanded) {\n size.current.width = newWidth;\n editorRef.current?.layout({\n width: newWidth,\n height: expanded ? newHeight : size.current.height,\n });\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [expanded]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n if (language === \"brick_next_yaml\") {\n // 注册嵌套的 model, language 为 js\n const uri = getEmbeddedJavascriptUri(model.uri);\n monaco.editor.createModel(value, \"javascript\", uri);\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n getBrickYamlBuiltInDeclare(),\n model.uri.toString() + \"d.ts\"\n );\n }\n\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n fixedOverflowWidgets: true,\n lineNumbers: lineNumbers,\n lineNumbersMinChars: 3,\n glyphMargin: glyphMargin,\n folding: lineNumbers !== \"off\",\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n renderLineHighlightOnlyWhenFocus: true,\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const libs: ExtraLib[] = extraLibs ?? [];\n\n const languageDefaults =\n language === \"typescript\" ? \"typescriptDefaults\" : \"javascriptDefaults\";\n const disposables = addExtraLibs(libs, {\n languageDefaults,\n });\n return () => {\n for (const item of disposables) {\n item.dispose();\n }\n };\n }, [extraLibs, language]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onTokenClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (expanded) return;\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines, expanded]);\n\n // istanbul ignore next\n const embeddedModelProcessor = useCallback(\n async (model: monaco.editor.IModel, position: monaco.Position) => {\n monaco.editor.setModelMarkers(model, \"semantic_validate\", []);\n\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%[~=]?\",\n position,\n true,\n false,\n null,\n false\n );\n\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixEvaluateRange = prefixEvaluateOperator?.range;\n const suffixEvaluateRange = suffixEvaluateOperator?.range;\n\n if (prefixEvaluateRange && suffixEvaluateRange) {\n const range = new monaco.Range(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn,\n suffixEvaluateRange.startLineNumber,\n suffixEvaluateRange.startColumn\n );\n\n const content = model.getValueInRange(range);\n if (range.containsPosition(position!) && !/<% | %>/.test(content)) {\n const newUri = getEmbeddedJavascriptUri(model.uri);\n const embeddedModel = monaco.editor.getModel(newUri);\n\n embeddedModel!.setValue(content);\n const offset = model.getOffsetAt(\n new monaco.Position(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn\n )\n );\n\n const embeddedContext = EmbeddedModelContext.getInstance(workerId);\n\n embeddedContext.updateState({ content, range, offset });\n\n if (!customValidationInBrickNextYaml) return;\n\n const getWorker =\n await monaco.languages.typescript.getJavaScriptWorker();\n\n const worker = await getWorker(newUri);\n\n const diagnostics = await worker.getSemanticDiagnostics(\n newUri.toString()\n );\n\n const semanticMarkers = diagnostics.map((item) => {\n const finalOffset = offset + (item.start ?? 0);\n const currentPosition = model.getPositionAt(finalOffset);\n\n return {\n startLineNumber: currentPosition.lineNumber,\n startColumn: currentPosition.column,\n endLineNumber: currentPosition.lineNumber,\n endColumn: currentPosition.column + item.length!,\n message: item.messageText as string,\n severity: monaco.MarkerSeverity.Warning,\n };\n });\n\n monaco.editor.setModelMarkers(\n model,\n \"semantic_validate\",\n semanticMarkers\n );\n }\n }\n },\n [workerId]\n );\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(async () => {\n setEditorId(workerId);\n\n if ([\"brick_next_yaml\"].includes(language)) {\n embeddedModelProcessor(currentModel, editorRef.current!.getPosition()!);\n debounceParse();\n }\n onChange(currentModel.getValue());\n });\n return () => {\n listener.dispose();\n };\n }, [debounceParse, onChange, workerId, language, embeddedModelProcessor]);\n\n useEffect(() => {\n if (expanded) {\n const fn = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n window.removeEventListener(\"keydown\", fn);\n setExpanded(false);\n }\n };\n window.addEventListener(\"keydown\", fn);\n return () => {\n window.removeEventListener(\"keydown\", fn);\n };\n }\n }, [expanded]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n const handleCopyIconClick = useCallback(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n copyToClipboard(currentModel.getValue())\n .then(() =>\n showNotification({ type: \"success\", message: t(K.COPY_SUCCESS) })\n )\n .catch(() =>\n showNotification({ type: \"error\", message: t(K.COPY_FAILED) })\n );\n }\n }, [t]);\n\n const handleExpandedClick = useCallback(() => {\n setExpanded(!expanded);\n }, [expanded]);\n\n return (\n <div\n className={classNames(\"code-editor-wrapper\", {\n expanded,\n error: validateState === \"error\",\n })}\n >\n <div\n ref={containerRef}\n style={{\n height: expanded ? \"100%\" : actualHeight,\n overflow: expanded ? \"scroll\" : \"\",\n }}\n />\n {!value && <div className=\"monaco-placeholder\">{placeholder}</div>}\n <div className=\"toolbar\">\n {showCopyButton && (\n <WrappedTooltip content={t(K.COPY) as string}>\n <WrappedIcon\n className=\"copy-icon\"\n icon=\"copy\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleCopyIconClick}\n />\n </WrappedTooltip>\n )}\n {showExpandButton && (\n <WrappedTooltip\n content={(expanded ? t(K.COLLAPSE) : t(K.EXPAND)) as string}\n >\n <WrappedIcon\n className=\"expand-icon\"\n icon={expanded ? \"compress\" : \"expand\"}\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleExpandedClick}\n />\n </WrappedTooltip>\n )}\n </div>\n </div>\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n"],"names":["initializeReactI18n","NS","locales","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","_CodeEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_CodeEditor_brand","WeakSet","_Z","_handleChange","_handleUserInput","_a","_handleTokenClick","_handleValidator","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_language","_init_extra_language","_init_theme","_init_extra_theme","_init_required","_init_extra_required","_init_readOnly","_init_extra_readOnly","_init_automaticLayout","_init_extra_automaticLayout","_init_minLines","_init_extra_minLines","_init_completers","_init_extra_completers","_init_advancedCompleters","_init_extra_advancedCompleters","_init_markers","_init_extra_markers","_init_links","_init_extra_links","_init_maxLines","_init_extra_maxLines","_init_height","_init_extra_height","_init_message","_init_extra_message","_init_placeholder","_init_extra_placeholder","_init_showExpandButton","_init_extra_showExpandButton","_init_lineNumbers","_init_extra_lineNumbers","_init_tokenConfig","_init_extra_tokenConfig","_init_customValidationInBrickNextYaml","_init_extra_customValidationInBrickNextYaml","_init_showCopyButton","_init_extra_showCopyButton","_init_glyphMargin","_init_extra_glyphMargin","_init_extraLibs","_init_extra_extraLibs","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","language","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","placeholder","showExpandButton","lineNumbers","tokenConfig","customValidationInBrickNextYaml","showCopyButton","glyphMargin","extraLibs","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","onUserInput","onTokenClick","_ref","_value","_language","_theme","_minLines","_maxLines","_height","showDSKey","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","model","current","getModel","_decorationsCollectio","tokens","set","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","_decorationsCollectio2","undefined","removeEventListener","computedTheme","lineHeightBackground","includes","defineTheme","base","inherit","rules","colors","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","postMessage","getValue","debounceParse","debounce","editor","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","newWidth","contentBoxSize","inlineSize","contentRect","newHeight","blockSize","_editorRef$current2","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","uri","getEmbeddedJavascriptUri","typescript","javascriptDefaults","addExtraLib","getBrickYamlBuiltInDeclare","toString","create","minimap","enabled","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","EDITOR_FONT_SIZE","lineHeight","EDITOR_LINE_HEIGHT","scrollbar","horizontalScrollbarSize","EDITOR_SCROLLBAR_SIZE","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","EDITOR_PADDING_VERTICAL","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","fixedOverflowWidgets","lineNumbersMinChars","folding","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","createDecorationsCollection","libs","languageDefaults","disposables","addExtraLibs","item","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","embeddedModelProcessor","async","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixEvaluateRange","suffixEvaluateRange","content","newUri","offset","getOffsetAt","EmbeddedModelContext","updateState","getWorker","getJavaScriptWorker","worker","semanticMarkers","getSemanticDiagnostics","finalOffset","start","currentPosition","getPositionAt","lineNumber","column","length","messageText","severity","Warning","onDidChangeContent","setEditorId","getPosition","fn","key","window","_editorRef$current3","_editorRef$current4","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","className","classNames","error","ref","overflow","COPY","icon","lib","onClick","COLLAPSE","EXPAND","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","_set_codeChange","_set_userInput","_set_tokenClickEvent","c","_initClass","_applyDecs","shadowOptions","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[3722],{2580:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Qe,CodeEditorComponent:()=>_t});var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(4782),m=n(3518),p=n(1389),k=n(2518),f=n(426),A=n(3683),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(1732),C=n.n(M),E=(n(9772),n(2445)),x=n(7137),L=n(4929),S=n(2738),N=n(4804),B=n(4102),W=n(9287),_=n(5502),P=n(8182),R=n(3373),z=n.n(R),I=(n(3569),n(1968));let O,V,D,F,K,T,Y,q,H,U,j,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Ne,Be,We,_e,Pe,Re,ze,Ie,Oe,Ve,De,Fe,Ke,Te,Ye;(0,_.initializeReactI18n)(P.NS,P.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A);const{defineElement:qe,property:He,event:Ue}=(0,g.createDecorators)(),je=(0,p.wrapBrick)("eo-form-item"),Je=(0,p.wrapBrick)("eo-tooltip"),Xe=(0,p.wrapBrick)("eo-icon"),$e=(0,m.unwrapProvider)("basic.copy-to-clipboard"),Ge=(0,m.unwrapProvider)("basic.show-notification");let Qe;var Ze=new WeakMap,et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakSet,Et=new WeakMap,xt=new WeakMap,Lt=new WeakMap,St=new WeakMap,Nt=new WeakMap,Bt=new WeakMap;class Wt extends f.N{constructor(){super(...arguments),(0,s.A)(this,Ct),(0,r.A)(this,Ze,V(this)),(0,r.A)(this,et,(D(this),F(this))),(0,r.A)(this,tt,(K(this),T(this))),(0,r.A)(this,nt,(Y(this),q(this))),(0,r.A)(this,it,(H(this),U(this))),(0,r.A)(this,st,(j(this),J(this))),(0,r.A)(this,rt,(X(this),$(this))),(0,r.A)(this,at,(G(this),Q(this))),(0,r.A)(this,ot,(Z(this),ee(this))),(0,r.A)(this,lt,(te(this),ne(this))),(0,r.A)(this,ct,(ie(this),se(this))),(0,r.A)(this,ut,(re(this),ae(this))),(0,r.A)(this,ht,(oe(this),le(this))),(0,r.A)(this,dt,(ce(this),ue(this))),(0,r.A)(this,gt,(he(this),de(this))),(0,r.A)(this,mt,(ge(this),me(this))),(0,r.A)(this,pt,(pe(this),ke(this))),(0,r.A)(this,kt,(fe(this),Ae(this))),(0,r.A)(this,ft,(ve(this),ye(this))),(0,r.A)(this,At,(we(this),be(this))),(0,r.A)(this,vt,(Me(this),Ce(this))),(0,r.A)(this,yt,(Ee(this),xe(this))),(0,r.A)(this,wt,(Le(this),Se(this))),(0,r.A)(this,bt,(Ne(this),Be(this))),(0,r.A)(this,Mt,(We(this),_e(this))),(0,r.A)(this,Et,(ze(this),Ie(this))),(0,r.A)(this,xt,(De(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Ct,this,Pe).emit(e)})),(0,r.A)(this,Lt,(e=>{(0,o.A)(Ct,this,Oe).emit(e)})),(0,r.A)(this,St,Fe(this)),(0,r.A)(this,Nt,(Ye(this),e=>{(0,o.A)(Ct,this,Ke).emit(e)})),(0,r.A)(this,Bt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(Ze,this)}set name(e){(0,l.A)(Ze,this,e)}get label(){return(0,c.A)(et,this)}set label(e){(0,l.A)(et,this,e)}get value(){return(0,c.A)(tt,this)}set value(e){(0,l.A)(tt,this,e)}get language(){return(0,c.A)(nt,this)}set language(e){(0,l.A)(nt,this,e)}get theme(){return(0,c.A)(it,this)}set theme(e){(0,l.A)(it,this,e)}get required(){return(0,c.A)(st,this)}set required(e){(0,l.A)(st,this,e)}get readOnly(){return(0,c.A)(rt,this)}set readOnly(e){(0,l.A)(rt,this,e)}get automaticLayout(){return(0,c.A)(at,this)}set automaticLayout(e){(0,l.A)(at,this,e)}get minLines(){return(0,c.A)(ot,this)}set minLines(e){(0,l.A)(ot,this,e)}get completers(){return(0,c.A)(lt,this)}set completers(e){(0,l.A)(lt,this,e)}get advancedCompleters(){return(0,c.A)(ct,this)}set advancedCompleters(e){(0,l.A)(ct,this,e)}get markers(){return(0,c.A)(ut,this)}set markers(e){(0,l.A)(ut,this,e)}get links(){return(0,c.A)(ht,this)}set links(e){(0,l.A)(ht,this,e)}get maxLines(){return(0,c.A)(dt,this)}set maxLines(e){(0,l.A)(dt,this,e)}get height(){return(0,c.A)(gt,this)}set height(e){(0,l.A)(gt,this,e)}get message(){return(0,c.A)(mt,this)}set message(e){(0,l.A)(mt,this,e)}get placeholder(){return(0,c.A)(pt,this)}set placeholder(e){(0,l.A)(pt,this,e)}get showExpandButton(){return(0,c.A)(kt,this)}set showExpandButton(e){(0,l.A)(kt,this,e)}get lineNumbers(){return(0,c.A)(ft,this)}set lineNumbers(e){(0,l.A)(ft,this,e)}get tokenConfig(){return(0,c.A)(At,this)}set tokenConfig(e){(0,l.A)(At,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(vt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(vt,this,e)}get showCopyButton(){return(0,c.A)(yt,this)}set showCopyButton(e){(0,l.A)(yt,this,e)}get glyphMargin(){return(0,c.A)(wt,this)}set glyphMargin(e){(0,l.A)(wt,this,e)}get extraLibs(){return(0,c.A)(bt,this)}set extraLibs(e){(0,l.A)(bt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(je,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Bt,this)},d().createElement(_t,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(xt,this),onUserInput:(0,c.A)(Lt,this),onTokenClick:(0,c.A)(Nt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function _t(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f={showDSKey:!1},showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:R,onUserInput:O,onTokenClick:V,customValidationInBrickNextYaml:D}=e;const F=t??"",K=n??"plaintext",T=i??"auto",Y=s??3,q=r??1/0,H=a??500,[U,j]=(0,h.useState)(!1),J=(0,h.useMemo)((()=>(0,E.uniqueId)("worker")),[]),{t:X}=(0,_.useTranslation)(P.NS),$=(0,h.useRef)(null),G=(0,h.useRef)(),Q=(0,h.useRef)(),Z=(0,h.useRef)({width:300,height:Pt(F,Y,q)}),[ee,te]=(0,h.useState)(),ne=(0,h.useRef)(o),ie=(0,k.useCurrentTheme)();(0,h.useEffect)((()=>{if("brick_next_yaml"!==K)return;const e=S.h.getInstance(J),t=e.addEventListener("message",(e=>{const{token:t,data:n}=e.data,i=Q.current.getModel();if(i)switch(t){case"parse_yaml":{var s;const{value:e,tokens:t,markers:r}=n;null===(s=G.current)||void 0===s||s.set(t.map((e=>({range:new A.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),A.editor.setModelMarkers(i,"brick_next_yaml",r),O(e);break}case"parse_yaml_error":var r;A.editor.setModelMarkers(i,"brick_next_yaml",[]),null==G||null===(r=G.current)||void 0===r||r.set([]),O(void 0)}}));return()=>{e.removeEventListener(t)}}),[]),(0,h.useEffect)((()=>{const e="auto"===T?"dark"===ie||"dark-v2"===ie?"vs-dark":"vs":T,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),A.editor.setTheme("custom-theme")}),[ie,T]),(0,h.useEffect)((()=>{if(Q.current){const e=Q.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,c,J,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K]);const se=(0,h.useCallback)((()=>{if("brick_next_yaml"!==K||!Q.current)return;const e=S.h.getInstance(J),t=Q.current.getModel();e.postMessage({token:"parse_yaml",data:{value:null==t?void 0:t.getValue(),links:m,markers:u},options:f})}),[K,f,m,u,J]),re=(0,h.useMemo)((()=>(0,E.debounce)(se,300)),[se]);(0,h.useEffect)((()=>{const e=Q.current;if(e){const t=e.getModel();null!=t&&t.getValue&&F!==t.getValue()&&(t.setValue(F),re())}}),[F,re]),(0,h.useEffect)((()=>{re()}),[]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ne.current||!$.current)return;Z.current.width=$.current.getBoundingClientRect().width,null===(e=Q.current)||void 0===e||e.layout(Z.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===$.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==Z.current.width||U)&&(Z.current.width=e,null===(t=Q.current)||void 0===t||t.layout({width:e,height:U?i:Z.current.height}));break}}));return t.observe($.current),()=>{t.disconnect()}}),[U]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ne.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}($.current);if(!e)return;const t=new ResizeObserver((()=>{te(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ne.current&&"fit-content"!==ne.current&&te(H)}),[H]),(0,h.useEffect)((()=>{Q.current&&Q.current.updateOptions({readOnly:g})}),[g]),(0,h.useEffect)((()=>{if(Q.current||!$.current)return;const e=A.editor.createModel(F,K);if("brick_next_yaml"===K){const t=(0,B.AR)(e.uri);A.editor.createModel(F,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,B.Eh)(),e.uri.toString()+"d.ts")}Q.current=A.editor.create($.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ne.current,fontSize:x.yU,lineHeight:x.fE,scrollbar:{horizontalScrollbarSize:x.lP,verticalScrollbarSize:x.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:x.Vu,bottom:"fit-content"==ne.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0}),G.current=Q.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=p??[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=Q.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=G.current;((null==i||null===(n=i.getRanges)||void 0===n?void 0:n.call(i))??[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&V(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=G.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,V,ie,T]),(0,h.useEffect)((()=>{const e=Q.current;if(!e||!$.current||"fit-content"!==ne.current)return;const t=e.onDidContentSizeChange((t=>{if(!U&&t.contentHeightChanged){const n=Rt(t.contentHeight,Y,q);n!==Z.current.height&&(Z.current.height=n,e.layout(Z.current))}})),n=Rt(e.getContentHeight(),Y,q);return n!==Z.current.height&&(Z.current.height=n,e.layout(Z.current)),()=>{t.dispose()}}),[q,Y,U]);const ae=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,B.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(I.b.getInstance(J).updateState({content:i,range:n,offset:r}),!D)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{const n=r+(t.start??0),i=e.getPositionAt(n);return{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[J]);(0,h.useEffect)((()=>{if(!Q.current)return;const e=Q.current.getModel(),t=e.onDidChangeContent((async()=>{(0,N.J)(J),["brick_next_yaml"].includes(K)&&(ae(e,Q.current.getPosition()),re()),R(e.getValue())}));return()=>{t.dispose()}}),[re,R,J,K,ae]),(0,h.useEffect)((()=>{if(U){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),j(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[U]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=Q.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=Q.current)||void 0===t||t.dispose()}),[]);const oe=(0,h.useCallback)((()=>{if(Q.current){const e=Q.current.getModel();$e(e.getValue()).then((()=>Ge({type:"success",message:X(P.K.COPY_SUCCESS)}))).catch((()=>Ge({type:"error",message:X(P.K.COPY_FAILED)})))}}),[X]),le=(0,h.useCallback)((()=>{j(!U)}),[U]);return d().createElement("div",{className:z()("code-editor-wrapper",{expanded:U,error:"error"===C})},d().createElement("div",{ref:$,style:{height:U?"100%":ee,overflow:U?"scroll":""}}),!F&&d().createElement("div",{className:"monaco-placeholder"},M),d().createElement("div",{className:"toolbar"},y&&d().createElement(Je,{content:X(P.K.COPY)},d().createElement(Xe,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:oe})),v&&d().createElement(Je,{content:X(U?P.K.COLLAPSE:P.K.EXPAND)},d().createElement(Xe,{className:"expand-icon",icon:U?"compress":"expand",lib:"antd",theme:"outlined",onClick:le}))))}function Pt(e,t,n){return zt(Math.min(n,Math.max(t,e.split("\n").length)))}function Rt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(zt(n),Math.max(i,zt(t)))}function zt(e){return e*x.fE+x.lP+x.Vu}i=Wt,({e:[V,D,F,K,T,Y,q,H,U,j,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Ne,Be,We,_e,Pe,Re,ze,Ie,Oe,Ve,De,Fe,Ke,Te,Ye],c:[Qe,O]}=(0,u.A)(i,[qe("vs.code-editor",{shadowOptions:!1})],[[He(),1,"name"],[He(),1,"label"],[He(),1,"value"],[He(),1,"language"],[He(),1,"theme"],[He({type:Boolean}),1,"required"],[He({type:Boolean}),1,"readOnly"],[He(),1,"automaticLayout"],[He({type:Number}),1,"minLines"],[He({attribute:!1}),1,"completers"],[He({attribute:!1}),1,"advancedCompleters"],[He({attribute:!1}),1,"markers"],[He({attribute:!1}),1,"links"],[He({type:Number}),1,"maxLines"],[He({attribute:!1}),1,"height"],[He(),1,"message"],[He(),1,"placeholder"],[He({type:Boolean}),1,"showExpandButton"],[He(),1,"lineNumbers"],[He({attribute:!1}),1,"tokenConfig"],[He({type:Boolean}),1,"customValidationInBrickNextYaml"],[He({type:Boolean}),1,"showCopyButton"],[He({type:Boolean}),1,"glyphMargin"],[He({attribute:!1}),1,"extraLibs"],[Ue({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Mt,e),(e,t)=>(0,l.A)(Mt,e,t)],[Ue({type:"user.input"}),1,"userInput",e=>(0,c.A)(Et,e),(e,t)=>(0,l.A)(Et,e,t)],[Ue({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(St,e),(e,t)=>(0,l.A)(St,e,t)]],0,(e=>Bt.has((0,a.A)(e))),f.N)),O()}}]);
2
+ //# sourceMappingURL=code-editor.51c303d8.js.map