@next-bricks/vs 1.7.3 → 1.8.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.
Files changed (35) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/2425.1a6b769b.js.map +1 -1
  3. package/dist/chunks/7242.9f3329e3.js +2 -0
  4. package/dist/chunks/7242.9f3329e3.js.map +1 -0
  5. package/dist/chunks/763.1c87081e.js +2 -0
  6. package/dist/chunks/763.1c87081e.js.map +1 -0
  7. package/dist/chunks/code-editor.020148cd.js +2 -0
  8. package/dist/chunks/code-editor.020148cd.js.map +1 -0
  9. package/dist/chunks/main.407cdc32.js +2 -0
  10. package/dist/chunks/{main.9f52966b.js.map → main.407cdc32.js.map} +1 -1
  11. package/dist/examples.json +1 -1
  12. package/dist/index.2a03883e.js +2 -0
  13. package/dist/{index.879bda1f.js.map → index.2a03883e.js.map} +1 -1
  14. package/dist/manifest.json +7 -1
  15. package/dist/types.json +113 -59
  16. package/dist-types/code-editor/index.d.ts +9 -9
  17. package/dist-types/code-editor/interfaces.d.ts +23 -0
  18. package/dist-types/code-editor/utils/addExtraLibs.d.ts +5 -0
  19. package/dist-types/code-editor/utils/addExtraLibs.spec.d.ts +1 -0
  20. package/dist-types/code-editor/utils/brickNextYaml.d.ts +2 -4
  21. package/dist-types/code-editor/utils/constants.d.ts +1 -0
  22. package/dist-types/code-editor/utils/embeddedModelState.d.ts +19 -0
  23. package/dist-types/code-editor/utils/embeddedModelState.spec.d.ts +1 -0
  24. package/dist-types/code-editor/utils/jsSuggestInBrickYaml.d.ts +9 -0
  25. package/dist-types/code-editor/utils/jsSuggestInBrickYaml.spec.d.ts +1 -0
  26. package/docs/code-editor.md +36 -24
  27. package/package.json +2 -2
  28. package/dist/chunks/2842.2b185312.js +0 -2
  29. package/dist/chunks/2842.2b185312.js.map +0 -1
  30. package/dist/chunks/7242.456a25c4.js +0 -2
  31. package/dist/chunks/7242.456a25c4.js.map +0 -1
  32. package/dist/chunks/code-editor.5fc870d8.js +0 -2
  33. package/dist/chunks/code-editor.5fc870d8.js.map +0 -1
  34. package/dist/chunks/main.9f52966b.js +0 -2
  35. package/dist/index.879bda1f.js +0 -2
@@ -0,0 +1,19 @@
1
+ interface Range {
2
+ startLineNumber: number;
3
+ startColumn: number;
4
+ endLineNumber: number;
5
+ endColumn: number;
6
+ }
7
+ export interface EmbeddedState {
8
+ content?: string;
9
+ offset?: number;
10
+ range?: Range;
11
+ }
12
+ export declare class EmbeddedModelContext {
13
+ #private;
14
+ static getInstance(id: string): EmbeddedModelContext;
15
+ constructor(id: string);
16
+ updateState(state: EmbeddedState): void;
17
+ getState(): EmbeddedState;
18
+ }
19
+ export {};
@@ -0,0 +1,9 @@
1
+ import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
2
+ interface BlockContext {
3
+ offset?: number;
4
+ }
5
+ export declare function getEmbeddedJavascriptUri(value: monaco.editor.IModel | monaco.Uri): monaco.Uri;
6
+ export declare function provideJsSuggestItems(model: monaco.editor.ITextModel, position: monaco.Position, embeddedContext: BlockContext): Promise<any>;
7
+ export declare function getMicroAppDeclare(): string;
8
+ export declare function getBrickYamlBuiltInDeclare(): string;
9
+ export {};
@@ -183,10 +183,6 @@ children:
183
183
  - CTX
184
184
  - FN
185
185
  markers:
186
- - token: CTX
187
- params:
188
- - a
189
- - b
190
186
  - token: PATH
191
187
  message: “这是 PATH”
192
188
  level: hit
@@ -218,21 +214,26 @@ children:
218
214
  completers:
219
215
  - label: a
220
216
  - label: b
221
- CTX:
222
- triggerCharacter: "."
223
- completers:
224
- - label: pageTitle
225
- - label: name
226
- FN:
227
- triggerCharacter: "."
228
- completers:
229
- - label: getPageDetail
230
- - label: getInstance
231
- PATH:
232
- triggerCharacter: "."
233
- completers:
234
- - label: instanceId
235
- - label: name
217
+ extraLibs:
218
+ - filePath: base.d.ts
219
+ content: |
220
+ declare namespace CTX {
221
+ const pageTitle: string;
222
+ const name: string;
223
+ const a;
224
+ const b;
225
+ };
226
+ declare namespace FN {
227
+ function getPageDetail();
228
+ function getInstance();
229
+ };
230
+ declare namespace PATH {
231
+ const instanceId: string;
232
+ const name: string;
233
+ };
234
+ declare namespace QUERY {
235
+ const activeId: string;
236
+ }
236
237
  - brick: vs.code-editor
237
238
  events:
238
239
  highlight.click:
@@ -247,11 +248,6 @@ children:
247
248
  links:
248
249
  - CTX
249
250
  - FN
250
- markers:
251
- - token: CTX
252
- params:
253
- - a
254
- - b
255
251
  ```
256
252
 
257
253
  ### Show CTX.DS
@@ -304,5 +300,21 @@ children:
304
300
  params:
305
301
  - a
306
302
  - b
303
+ extraLibs:
304
+ - filePath: common.d.ts
305
+ content: |
306
+ declare namespace CTX {
307
+ const a;
308
+ namespace DS {
309
+ const a;
310
+ const b;
311
+ };
312
+ };
313
+ declare namespace PATH {
314
+ const instanceId: string;
315
+ };
316
+ declare namespace QUERY {
317
+ const index: number;
318
+ };
307
319
  - brick: eo-submit-buttons
308
320
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-bricks/vs",
3
- "version": "1.7.3",
3
+ "version": "1.8.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-bricks/tree/master/bricks/vs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,5 +44,5 @@
44
44
  "@next-bricks/form": "*",
45
45
  "@next-bricks/icons": "*"
46
46
  },
47
- "gitHead": "51797daa2bd879c8710f45956a4d01c8bade7177"
47
+ "gitHead": "2e96bd7f2afd0a5d3732f8ac689dee9028d73e60"
48
48
  }
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[2842],{97137:(e,t,n)=>{n.d(t,{Vu:()=>s,fE:()=>i,lP:()=>o,yU:()=>r});const r=12,i=18,o=12,s=12},8182:(e,t,n)=>{n.d(t,{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:"收起"}}},89956:(e,t,n)=>{n.d(t,{v:()=>g});var r=n(78573),i=n(77176);const o=["CTX","STATE","DATA","EVENT","FLAGS","APP","ANCHOR","HASH","INSTALLED_APPS","ITEM","LOCAL_STORAGE","MEDIA","MISC","PARAMS","PATH","PROCESSORS","QUERY","QUERY_ARRAY","SESSION_STORAGE","TPL","SYS","BASE_URL","IMG","FN","I18N","I18N_TEXT","PERMISSIONS","THEME"],s=["target","targetRef","properties","events","method","callback","success","error","action","useProvider","useChildren","useBrick","args","if","then"];var a=n(46123),l=n.n(a),u=n(44804);const d=(e,t,n)=>{const r=[],i=[];let o="",s=n,a=t.startColumn;for(;s>0;){const n=e.getValueInRange({startLineNumber:s,endLineNumber:s,startColumn:0,endColumn:1/0}).match(/^([\s|-]*)(\w+)(?=:)/);if(n){const[,e,s]=n;e.length===t.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]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0;return(g,c,p)=>{if(n&&n!==(0,u.B)())return{suggestions:[]};const m=a.showDSKey?["CTX.DS","DS"]:[],h=g.getWordUntilPosition(c),{word:b,token:C}=((e,t,n)=>{var r;const i=e.getWordUntilPosition(t),o=e.getValueInRange({startLineNumber:t.lineNumber,endLineNumber:t.lineNumber,startColumn:t.column-i.word.length-1,endColumn:t.column-i.word.length}),s=e.getWordAtPosition({...t,column:t.column-(null==i||null===(r=i.word)||void 0===r?void 0:r.length)-1});let a=null==s?void 0:s.word;if(n.showDSKey&&"DS"===(null==s?void 0:s.word)){const n=e.getWordAtPosition({...t,column:s.startColumn-1});a=`${null==n?void 0:n.word}.${s.word}`}return{word:a,token:o}})(g,c,a),A=g.getValueInRange({startLineNumber:c.lineNumber,endLineNumber:c.lineNumber,startColumn:0,endColumn:1/0}),v={startLineNumber:c.lineNumber,endLineNumber:c.lineNumber,startColumn:h.startColumn,endColumn:h.endColumn},f=1===h.startColumn,{curLevelKeys:w}=d(g,h,g.getLineCount());if("<"===p.triggerCharacter)return"<"!==g.getValueInRange({startLineNumber:c.lineNumber,endLineNumber:c.lineNumber,startColumn:c.column-2,endColumn:c.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(f)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(":"===p.triggerCharacter||"."===p.triggerCharacter&&b&&!["CTX","STATE","FN"].concat(m).includes(b)){var E;if("action"===b&&":"===p.triggerCharacter)return{suggestions:null===(E=l()(i,"definitions.BuiltinBrickEventHandler.properties.action.enum")??[])||void 0===E?void 0:E.map((e=>({label:` ${e}`,detail:"event action",kind:r.languages.CompletionItemKind.Keyword,insertText:` ${e}`,range:v})))};const e=null==t?void 0:t[b];let n,o="";if(e&&!Array.isArray(e)?(n=e.completers,o=e.triggerCharacter):n=e,o?p.triggerCharacter===o&&n:n)return{suggestions:(n??[]).map((e=>{const t=":"===o?` ${e.label}`:e.label;return{...e,label:t,kind:r.languages.CompletionItemKind.Value,insertText:e.insertText||t,range:v}}))}}if(((e,t)=>{const n=e.getWordUntilPosition(t),r=e.findPreviousMatch("<%",t,!1,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1);if((null==r?void 0:r.range.startLineNumber)&&(null==i?void 0:i.range.startLineNumber)&&r.range.startLineNumber<=t.lineNumber&&i.range.endLineNumber>=t.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,n,t.lineNumber);if(o===s&&a.includes(o)||""===o&&""===s)return!0}return!1})(g,c)){var S,N;if(b&&["CTX","STATE"].concat(m).includes(b)&&t)return{suggestions:((null===(S=t[b])||void 0===S?void 0:S.completers)??[]).map((e=>({label:e.label,insertText:e.label,kind:r.languages.CompletionItemKind.Value,range:v})))};if("FN"===b&&"."===p.triggerCharacter&&t)return{suggestions:((null===(N=t.FN)||void 0===N?void 0:N.completers)??[]).map((e=>({label:e.label,insertText:e.label,kind:r.languages.CompletionItemKind.Value,range:v})))};if("APP"===b&&"."===p.triggerCharacter){const e=l()(i,"definitions.MicroApp.properties"),t=[];for(const[n,i]of Object.entries(e))t.push({label:n,kind:r.languages.CompletionItemKind.Value,documentation:i.description,detail:i.enum?i.enum.join("|"):i.type,insertText:n,range:v});return{suggestions:t}}return[".",":"].includes(C)?{suggestions:[]}:{suggestions:o.map((e=>({label:e,insertText:e,kind:r.languages.CompletionItemKind.Keyword,range:v})))}}return/^[\s|-]*\w$/.test(A)?{suggestions:s.map((e=>({label:e,insertText:e,kind:r.languages.CompletionItemKind.Keyword,range:v}))).filter((e=>!w.includes(e.label)))}:{suggestions:[]}}}},44804:(e,t,n)=>{let r;function i(e){r=e}function o(){return r}n.d(t,{B:()=>o,J:()=>i})},43271:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(36758),i=n.n(r),o=n(40935),s=n.n(o)()(i());s.push([e.id,".highlight{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.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},73569:(e,t,n)=>{var r=n(72591),i=n.n(r),o=n(1740),s=n.n(o),a=n(88128),l=n.n(a),u=n(30855),d=n.n(u),g=n(93051),c=n.n(g),p=n(73656),m=n.n(p),h=n(43271),b={};b.styleTagTransform=m(),b.setAttributes=d(),b.insert=l().bind(null,"head"),b.domAPI=s(),b.insertStyleElement=c(),i()(h.A,b),h.A&&h.A.locals&&h.A.locals},62738:(e,t,n)=>{n.d(t,{h:()=>o});var r=n(72445);let i;class o{static#e={};static getInstance(e){return this.#e[e]||(i||(i=new Worker(new URL(n.p+n.u(2425),n.b))),this.#e[e]=new o(e)),this.#e[e]}#t;#n;#r=new Map;constructor(e){this.#n=i,this.#t=e}postMessage(e){this.#n.postMessage({...e,id:this.#t})}addEventListener(e,t){const n=(0,r.uniqueId)();return this.#n.addEventListener(e,((...e)=>{const{id:n}=e[0].data;n===this.#t&&t(...e)})),this.#r.set(n,{name:e,fn:t}),n}removeEventListener(e){const t=this.#r.get(e);t&&(this.#n.removeEventListener(t.name,t.fn),this.#r.delete(e))}}},30426:(e,t,n)=>{n.d(t,{N:()=>R});var r,i=n(74635),o=n(70918),s=n(5536),a=n(99492),l=n(86121),u=n(70829),d=n(62740),g=n(55351),c=n(43340);let p,m,h,b,C,A,v,f,w;const{method:E,property:S}=(0,g.createDecorators)();var N=new WeakMap,k=new WeakSet,x=new WeakMap,L=new WeakMap,T=new WeakMap,I=new WeakMap,P=new WeakMap,y=new WeakMap;class R extends c.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,k),(0,o.A)(this,N,(p(this),!1)),(0,o.A)(this,x,"normal"),(0,o.A)(this,L,!1),(0,o.A)(this,T,m(this)),(0,o.A)(this,I,(h(this),b(this))),(0,o.A)(this,P,(C(this),A(this))),(0,o.A)(this,y,(v(this),f(this))),w(this)}get isFormItemElement(){return!0}set validateState(e){(0,a.A)(k,M,this,e),this._render()}get validateState(){return(0,s.A)(k,this,K)}set notRender(e){this.hidden=e,(0,a.A)(k,_,this,e),this._render()}get notRender(){return(0,s.A)(k,this,O)}get $bindFormItem(){return(0,s.A)(k,this,D)}set $bindFormItem(e){(0,a.A)(k,Y,this,e),this._render()}get helpBrick(){return(0,u.A)(T,this)}set helpBrick(e){(0,l.A)(T,this,e)}get labelBrick(){return(0,u.A)(I,this)}set labelBrick(e){(0,l.A)(I,this,e)}get labelCol(){return(0,u.A)(P,this)}set labelCol(e){(0,l.A)(P,this,e)}get wrapperCol(){return(0,u.A)(y,this)}set wrapperCol(e){(0,l.A)(y,this,e)}setNotRender(e){this.notRender=e}getFormElement(){let e=this;for(;(e=e.parentNode)&&e&&!e.isFormElement;);return e}}function O(e){return(0,u.A)(N,e)}function _(e,t){(0,l.A)(N,e,t)}function K(e){return(0,u.A)(x,e)}function M(e,t){(0,l.A)(x,e,t)}function D(e){return(0,u.A)(L,e)}function Y(e,t){(0,l.A)(L,e,t)}r=R,[m,h,b,C,A,v,f,w,p]=(0,d.A)(r,[],[[S({attribute:!1}),1,"helpBrick"],[S({attribute:!1}),1,"labelBrick"],[S({attribute:!1}),1,"labelCol"],[S({attribute:!1}),1,"wrapperCol"],[E(),2,"setNotRender"],[E(),2,"getFormElement"]],0,void 0,c.ReactNextElement).e}}]);
2
- //# sourceMappingURL=2842.2b185312.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/2842.2b185312.js","mappings":"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","sources":["webpack:///./src/code-editor/constants.ts","webpack:///./src/code-editor/i18n.ts","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/editorId.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","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 \"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","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { EVALUATE_KEYWORD, brickNextKeywords } from \"./constants.js\";\nimport get from \"lodash/get.js\";\nimport { getEditorId } from \"./editorId.js\";\nimport { TokenConfig } from \"../index.jsx\";\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: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n > = {},\n id: string,\n tokenConfig: TokenConfig\n) => {\n return (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> => {\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 if (\n prefixWord &&\n [\"CTX\", \"STATE\"].concat(DSToken).includes(prefixWord) &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[prefixWord]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (\n prefixWord === \"FN\" &&\n context.triggerCharacter === \".\" &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[\"FN\"]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (prefixWord === \"APP\" && context.triggerCharacter === \".\") {\n const appProperties = get(\n storyboardJsonSchema,\n \"definitions.MicroApp.properties\"\n );\n const suggestions = [];\n for (const [k, v] of Object.entries(\n appProperties as unknown as Record<\n string,\n {\n description: string;\n type: string;\n enum: string[];\n }\n >\n )) {\n suggestions.push({\n label: k,\n kind: monaco.languages.CompletionItemKind.Value,\n documentation: v.description,\n detail: v.enum ? v.enum.join(\"|\") : v.type,\n insertText: k,\n range,\n });\n }\n return {\n suggestions,\n };\n }\n\n if ([\".\", \":\"].includes(prefixToken)) {\n return {\n suggestions: [],\n };\n }\n\n return {\n suggestions: EVALUATE_KEYWORD.map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\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","let editorId: string;\n\nexport function setEditorId(id: string) {\n editorId = id;\n}\n\nexport function getEditorId() {\n return editorId;\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{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.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","EVALUATE_KEYWORD","brickNextKeywords","findKeys","model","range","line","curLevelKeys","keyList","parentKey","i","startColumn","matchWord","getValueInRange","startLineNumber","endLineNumber","endColumn","Infinity","match","wordspace","key","length","unshift","brickNextYAMLProviderCompletionItems","completers","arguments","undefined","advancedCompleters","id","tokenConfig","position","context","getEditorId","suggestions","DSToken","showDSKey","word","getWordUntilPosition","prefixWord","token","prefixToken","getPrefixWord","_word$word","lineNumber","column","getWordAtPosition","prefix","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","trim","label","detail","kind","monaco","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","filter","item","includes","map","Keyword","concat","_ref","get","storyboardJsonSchema","matchCompletion","list","matchTriggerCharacter","Array","isArray","isInEvaluateBody","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixParentKey","suffixParentKey","_advancedCompleters$p","_advancedCompleters$F","appProperties","k","v","Object","entries","push","documentation","description","enum","join","type","test","editorId","setEditorId","___CSS_LOADER_EXPORT___","module","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","parseWorker","VSWorkers","static","getInstance","this","Worker","URL","Map","constructor","postMessage","message","addEventListener","name","listener","uid","uniqueId","args","data","set","fn","removeEventListener","delete","method","property","createDecorators","_A","WeakMap","_FormItemElementBase_brand","WeakSet","_B","_C","_D","_E","_F","_G","FormItemElementBase","ReactNextElement","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","value","_classPrivateSetter","_set_validate","_render","_classPrivateGetter","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","_classPrivateFieldGet","_classPrivateFieldSet","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","_applyDecs","attribute","e"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[7242],{77242:(e,t,n)=>{n.r(t);var i,s=n(74635),r=n(70918),a=n(26902),o=n(5536),c=n(86121),u=n(70829),h=n(62740),l=n(18769),d=n.n(l),m=n(55351),g=n(53486),p=n(43340),k=n(33763),f=n(30426),v=n(78573),A=n(36197),w=n(23909),y=n(92257),b=n(93135),C=n(91732),E=n.n(C),M=(n(19583),n(72445)),x=n(97137),L=n(89956),S=n(62738),B=n(44804),W=n(85502),_=n(8182),z=n(53373),R=n.n(z);let P,N,O,F,V,I,K,q,D,T,H,Y,U,J,X,$,j,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,ce,ue,he,le,de,me,ge,pe,ke,fe,ve,Ae,we,ye,be,Ce,Ee,Me,xe,Le,Se,Be,We;n(73569),(0,W.initializeReactI18n)(_.NS,_.I),(0,A.kz)(v),(0,w.kz)(v),(0,y.kz)(v,"brick_next_yaml"),(0,b.kz)(v);const{defineElement:_e,property:ze,event:Re}=(0,m.createDecorators)(),Pe=(0,p.wrapBrick)("eo-form-item"),Ne=(0,p.wrapBrick)("eo-tooltip"),Oe=(0,p.wrapBrick)("eo-icon"),Fe=(0,g.unwrapProvider)("basic.copy-to-clipboard"),Ve=(0,g.unwrapProvider)("basic.show-notification");let Ie;var Ke=new WeakMap,qe=new WeakMap,De=new WeakMap,Te=new WeakMap,He=new WeakMap,Ye=new WeakMap,Ue=new WeakMap,Je=new WeakMap,Xe=new WeakMap,$e=new WeakMap,je=new WeakMap,Ge=new WeakMap,Qe=new WeakMap,Ze=new WeakMap,et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakSet,ot=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,lt=new WeakMap;class dt extends f.N{constructor(){var e;super(...arguments),e=this,(0,s.A)(this,at),(0,r.A)(this,Ke,N(this)),(0,r.A)(this,qe,(O(this),F(this))),(0,r.A)(this,De,(V(this),I(this))),(0,r.A)(this,Te,(K(this),q(this))),(0,r.A)(this,He,(D(this),T(this))),(0,r.A)(this,Ye,(H(this),Y(this))),(0,r.A)(this,Ue,(U(this),J(this))),(0,r.A)(this,Je,(X(this),$(this))),(0,r.A)(this,Xe,(j(this),G(this))),(0,r.A)(this,$e,(Q(this),Z(this))),(0,r.A)(this,je,(ee(this),te(this))),(0,r.A)(this,Ge,(ne(this),ie(this))),(0,r.A)(this,Qe,(se(this),re(this))),(0,r.A)(this,Ze,(ae(this),oe(this))),(0,r.A)(this,et,(ce(this),ue(this))),(0,r.A)(this,tt,(he(this),le(this))),(0,r.A)(this,nt,(de(this),me(this))),(0,r.A)(this,it,(ge(this),pe(this))),(0,r.A)(this,st,(ke(this),fe(this))),(0,r.A)(this,rt,(ve(this),Ae(this))),(0,r.A)(this,ot,(be(this),Ce(this))),(0,r.A)(this,ct,(xe(this),function(t,n,i){var s;let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.value=t,!r&&(null===(s=e.getFormElement())||void 0===s||s.formStore.onChange(e.name,t)),(0,o.A)(at,e,we).emit(t),i||(0,o.A)(at,e,Ee).emit(n)})),(0,r.A)(this,ut,Le(this)),(0,r.A)(this,ht,(We(this),e=>{(0,o.A)(at,this,Se).emit(e)})),(0,r.A)(this,lt,(e=>{try{E().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,u.A)(Ke,this)}set name(e){(0,c.A)(Ke,this,e)}get label(){return(0,u.A)(qe,this)}set label(e){(0,c.A)(qe,this,e)}get value(){return(0,u.A)(De,this)}set value(e){(0,c.A)(De,this,e)}get language(){return(0,u.A)(Te,this)}set language(e){(0,c.A)(Te,this,e)}get theme(){return(0,u.A)(He,this)}set theme(e){(0,c.A)(He,this,e)}get required(){return(0,u.A)(Ye,this)}set required(e){(0,c.A)(Ye,this,e)}get readOnly(){return(0,u.A)(Ue,this)}set readOnly(e){(0,c.A)(Ue,this,e)}get automaticLayout(){return(0,u.A)(Je,this)}set automaticLayout(e){(0,c.A)(Je,this,e)}get minLines(){return(0,u.A)(Xe,this)}set minLines(e){(0,c.A)(Xe,this,e)}get completers(){return(0,u.A)($e,this)}set completers(e){(0,c.A)($e,this,e)}get advancedCompleters(){return(0,u.A)(je,this)}set advancedCompleters(e){(0,c.A)(je,this,e)}get markers(){return(0,u.A)(Ge,this)}set markers(e){(0,c.A)(Ge,this,e)}get links(){return(0,u.A)(Qe,this)}set links(e){(0,c.A)(Qe,this,e)}get maxLines(){return(0,u.A)(Ze,this)}set maxLines(e){(0,c.A)(Ze,this,e)}get height(){return(0,u.A)(et,this)}set height(e){(0,c.A)(et,this,e)}get message(){return(0,u.A)(tt,this)}set message(e){(0,c.A)(tt,this,e)}get showExpandButton(){return(0,u.A)(nt,this)}set showExpandButton(e){(0,c.A)(nt,this,e)}get tokenConfig(){return(0,u.A)(it,this)}set tokenConfig(e){(0,c.A)(it,this,e)}get showCopyButton(){return(0,u.A)(st,this)}set showCopyButton(e){(0,c.A)(st,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(Pe,{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,u.A)(lt,this)},d().createElement(mt,{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,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,u.A)(ct,this),onTokenClick:(0,u.A)(ht,this)}))}}function mt(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:c,advancedCompleters:u,markers:h,readOnly:m,links:g,tokenConfig:p={showDSKey:!1},showExpandButton:f,showCopyButton:A=!0,validateState:w,onChange:y,onTokenClick:b}=e;const C=t??"",E=n??"plaintext",z=i??"auto",P=s??3,N=r??1/0,O=a??500,[F,V]=(0,l.useState)(!1),I=(0,l.useMemo)((()=>(0,M.uniqueId)("worker")),[]),{t:K}=(0,W.useTranslation)(_.NS),q=(0,l.useRef)(null),D=(0,l.useRef)(),T=(0,l.useRef)(),H=(0,l.useRef)({width:300,height:gt(C,P,N)}),[Y,U]=(0,l.useState)(),J=(0,l.useRef)(o),X=(0,k.useCurrentTheme)();(0,l.useEffect)((()=>{if("brick_next_yaml"!==E)return;const e=S.h.getInstance(I),t=e.addEventListener("message",(e=>{const{token:t,data:n,init:i=!1}=e.data,s=T.current.getModel();if(!s)return;const r=s.getValue();switch(t){case"parse_yaml":{var a;const{value:e,tokens:t,markers:o}=n;null===(a=D.current)||void 0===a||a.set(t.map((e=>({range:new v.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),v.editor.setModelMarkers(s,"brick_next_yaml",o),y(r,e,!1,i);break}case"parse_yaml_error":var o;v.editor.setModelMarkers(s,"brick_next_yaml",[]),null==D||null===(o=D.current)||void 0===o||o.set([]),y(r,void 0,!1,i)}}));return()=>{e.removeEventListener(t)}}),[]),(0,l.useEffect)((()=>{const e="auto"===z?"dark"===X||"dark-v2"===X?"vs-dark":"vs":z,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";v.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),v.editor.setTheme("custom-theme")}),[X,z]),(0,l.useEffect)((()=>{if(T.current){const e=T.current.getModel();v.editor.setModelLanguage(e,E)}}),[E]),(0,l.useEffect)((()=>{if("brick_next_yaml"===E){const e=(0,L.v)(c,u,I,p),t=v.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[c,u,E]);const $=(0,l.useCallback)((e=>{let{init:t=!1}=e;"brick_next_yaml"===E&&T.current&&S.h.getInstance(I).postMessage({token:"parse_yaml",data:{value:C,links:g,markers:h},options:p,init:t})}),[E,C,p,g,h,I]),j=(0,l.useMemo)((()=>(0,M.debounce)($,300)),[$]);(0,l.useEffect)((()=>{if(T.current){const e=T.current.getModel();null!=e&&e.getValue&&C!==e.getValue()&&(e.setValue(C),j({init:!0}))}}),[C,j]),(0,l.useLayoutEffect)((()=>{var e;if("fit-content"!==J.current||!q.current)return;H.current.width=q.current.getBoundingClientRect().width,null===(e=T.current)||void 0===e||e.layout(H.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===q.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!==H.current.width||F)&&(H.current.width=e,null===(t=T.current)||void 0===t||t.layout({width:e,height:F?i:H.current.height}));break}}));return t.observe(q.current),()=>{t.disconnect()}}),[F]),(0,l.useLayoutEffect)((()=>{if("fit-container"!==J.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}}(q.current);if(!e)return;const t=new ResizeObserver((()=>{U(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,l.useEffect)((()=>{"fit-container"!==J.current&&"fit-content"!==J.current&&U(O)}),[O]),(0,l.useEffect)((()=>{T.current&&T.current.updateOptions({readOnly:m})}),[m]),(0,l.useEffect)((()=>{if(T.current||!q.current)return;const e=v.editor.createModel(C,E);T.current=v.editor.create(q.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==J.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"==J.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbersMinChars:3,suggest:{insertMode:"insert",preview:!0},readOnly:m,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0}),D.current=T.current.createDecorationsCollection()}),[C,E,m]),(0,l.useEffect)((()=>{const e=T.current;if("brick_next_yaml"===E&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=D.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)&&b(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=D.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 j({init:!0}),()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[E,b,X,z,j]),(0,l.useEffect)((()=>{const e=T.current;if(!e||!q.current||"fit-content"!==J.current)return;const t=e.onDidContentSizeChange((t=>{if(!F&&t.contentHeightChanged){const n=pt(t.contentHeight,P,N);n!==H.current.height&&(H.current.height=n,e.layout(H.current))}})),n=pt(e.getContentHeight(),P,N);return n!==H.current.height&&(H.current.height=n,e.layout(H.current)),()=>{t.dispose()}}),[N,P,F]),(0,l.useEffect)((()=>{if(!T.current)return;const e=T.current.getModel(),t=e.onDidChangeContent((()=>{(0,B.J)(I),["brick_next_yaml"].includes(E)?j({init:!1}):y(e.getValue(),void 0,!1,!1)}));return()=>{t.dispose()}}),[j,y,I,E]),(0,l.useEffect)((()=>{if(F){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),V(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[F]),(0,l.useEffect)((()=>()=>{var e,t;null===(e=T.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=T.current)||void 0===t||t.dispose()}),[]);const G=(0,l.useCallback)((()=>{if(T.current){const e=T.current.getModel();Fe(e.getValue()).then((()=>Ve({type:"success",message:K(_.K.COPY_SUCCESS)}))).catch((()=>Ve({type:"error",message:K(_.K.COPY_FAILED)})))}}),[K]),Q=(0,l.useCallback)((()=>{V(!F)}),[F]);return d().createElement("div",{className:R()("code-editor-wrapper",{expanded:F,error:"error"===w})},d().createElement("div",{ref:q,style:{height:F?"100%":Y,overflow:F?"scroll":""}}),d().createElement("div",{className:"toolbar"},A&&d().createElement(Ne,{content:K(_.K.COPY)},d().createElement(Oe,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:G})),f&&d().createElement(Ne,{content:K(F?_.K.COLLAPSE:_.K.EXPAND)},d().createElement(Oe,{className:"expand-icon",icon:F?"compress":"expand",lib:"antd",theme:"outlined",onClick:Q}))))}function gt(e,t,n){return kt(Math.min(n,Math.max(t,e.split("\n").length)))}function pt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(kt(n),Math.max(i,kt(t)))}function kt(e){return e*x.fE+x.lP+x.Vu}i=dt,({e:[N,O,F,V,I,K,q,D,T,H,Y,U,J,X,$,j,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,ce,ue,he,le,de,me,ge,pe,ke,fe,ve,Ae,we,ye,be,Ce,Ee,Me,xe,Le,Se,Be,We],c:[Ie,P]}=(0,h.A)(i,[_e("vs.code-editor",{shadowOptions:!1})],[[ze(),1,"name"],[ze(),1,"label"],[ze(),1,"value"],[ze(),1,"language"],[ze(),1,"theme"],[ze({type:Boolean}),1,"required"],[ze({type:Boolean}),1,"readOnly"],[ze(),1,"automaticLayout"],[ze({type:Number}),1,"minLines"],[ze({attribute:!1}),1,"completers"],[ze({attribute:!1}),1,"advancedCompleters"],[ze({attribute:!1}),1,"markers"],[ze({attribute:!1}),1,"links"],[ze({type:Number}),1,"maxLines"],[ze({attribute:!1}),1,"height"],[ze(),1,"message"],[ze({type:Boolean}),1,"showExpandButton"],[ze({attribute:!1}),1,"tokenConfig"],[ze({type:Boolean}),1,"showCopyButton"],[Re({type:"code.change"}),1,"codeChange",e=>(0,u.A)(rt,e),(e,t)=>(0,c.A)(rt,e,t)],[Re({type:"user.input"}),1,"userInput",e=>(0,u.A)(ot,e),(e,t)=>(0,c.A)(ot,e,t)],[Re({type:"token.click"}),1,"tokenClickEvent",e=>(0,u.A)(ut,e),(e,t)=>(0,c.A)(ut,e,t)]],0,(e=>lt.has((0,a.A)(e))),f.N)),P()}}]);
2
- //# sourceMappingURL=7242.456a25c4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/7242.456a25c4.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 { 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 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\";\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 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?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n validateState?: string;\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:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\n | 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 /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean = false\n ) => {\n this.value = value;\n !isInit && this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\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 #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\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.#handleValidtor}\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 markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onTokenClick={this.#handleTokenClick}\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 tokenConfig = {\n showDSKey: false,\n },\n showExpandButton,\n showCopyButton = true,\n validateState,\n onChange,\n onTokenClick,\n}: CodeEditorProps & {\n onChange(\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean\n ): 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, init = false } = message.data;\n const model = editorRef.current!.getModel();\n if (!model) return;\n const originValue = model.getValue();\n\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 onChange(originValue, value, false, init);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n onChange(originValue, undefined, false, init);\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 }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(\n ({ init = false }: { init?: boolean }) => {\n if (language !== \"brick_next_yaml\" || !editorRef.current) return;\n const workerInstance = VSWorkers.getInstance(workerId);\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value,\n links,\n markers,\n },\n options: tokenConfig,\n init,\n });\n },\n [language, value, tokenConfig, links, markers, workerId]\n );\n\n const debounceParse = useMemo(() => debounce(parseYaml, 300), [parseYaml]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n debounceParse({\n init: true,\n });\n }\n }\n }, [value, debounceParse]);\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 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 lineNumbersMinChars: 3,\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 }, [value, language, readOnly]);\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 debounceParse({\n init: true,\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme, debounceParse]);\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 useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(() => {\n setEditorId(workerId);\n if ([\"brick_next_yaml\"].includes(language)) {\n debounceParse({\n init: false,\n });\n } else {\n onChange(currentModel.getValue(), undefined, false, false);\n }\n });\n return () => {\n listener.dispose();\n };\n }, [debounceParse, onChange, workerId, language]);\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 <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","_CodeEditor_brand","WeakSet","_U","_handleChange","_V","_handleTokenClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","_this","arguments","this","_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_showExpandButton","_init_extra_showExpandButton","_init_tokenConfig","_init_extra_tokenConfig","_init_showCopyButton","_init_extra_showCopyButton","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","parseValue","isFlush","_this$getFormElement","isInit","length","undefined","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","showExpandButton","tokenConfig","showCopyButton","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","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","init","model","current","getModel","originValue","getValue","_decorationsCollectio","tokens","set","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","_decorationsCollectio2","removeEventListener","computedTheme","lineHeightBackground","includes","defineTheme","base","inherit","rules","colors","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","_ref2","postMessage","debounceParse","debounce","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","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","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","item","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","setEditorId","fn","key","window","_editorRef$current3","_editorRef$current4","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","className","classNames","error","ref","overflow","content","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":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[3722],{32580:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Ie,CodeEditorComponent:()=>mt});var i,r=n(74635),s=n(70918),a=n(26902),o=n(5536),c=n(86121),u=n(70829),h=n(62740),l=n(18769),d=n.n(l),m=n(55351),g=n(53486),p=n(43340),k=n(33763),f=n(30426),v=n(78573),A=n(36197),w=n(23909),y=n(92257),C=n(93135),b=n(91732),E=n.n(b),M=(n(19583),n(72445)),x=n(97137),L=n(89956),S=n(62738),B=n(44804),W=n(85502),_=n(8182),z=n(53373),R=n.n(z);let P,N,O,F,V,I,K,q,D,T,H,Y,U,J,X,$,j,G,Q,Z,ee,te,ne,ie,re,se,ae,oe,ce,ue,he,le,de,me,ge,pe,ke,fe,ve,Ae,we,ye,Ce,be,Ee,Me,xe,Le,Se,Be,We;n(73569),(0,W.initializeReactI18n)(_.NS,_.I),(0,A.kz)(v),(0,w.kz)(v),(0,y.kz)(v,"brick_next_yaml"),(0,C.kz)(v);const{defineElement:_e,property:ze,event:Re}=(0,m.createDecorators)(),Pe=(0,p.wrapBrick)("eo-form-item"),Ne=(0,p.wrapBrick)("eo-tooltip"),Oe=(0,p.wrapBrick)("eo-icon"),Fe=(0,g.unwrapProvider)("basic.copy-to-clipboard"),Ve=(0,g.unwrapProvider)("basic.show-notification");let Ie;var Ke=new WeakMap,qe=new WeakMap,De=new WeakMap,Te=new WeakMap,He=new WeakMap,Ye=new WeakMap,Ue=new WeakMap,Je=new WeakMap,Xe=new WeakMap,$e=new WeakMap,je=new WeakMap,Ge=new WeakMap,Qe=new WeakMap,Ze=new WeakMap,et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,rt=new WeakMap,st=new WeakMap,at=new WeakSet,ot=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,lt=new WeakMap;class dt extends f.N{constructor(){var e;super(...arguments),e=this,(0,r.A)(this,at),(0,s.A)(this,Ke,N(this)),(0,s.A)(this,qe,(O(this),F(this))),(0,s.A)(this,De,(V(this),I(this))),(0,s.A)(this,Te,(K(this),q(this))),(0,s.A)(this,He,(D(this),T(this))),(0,s.A)(this,Ye,(H(this),Y(this))),(0,s.A)(this,Ue,(U(this),J(this))),(0,s.A)(this,Je,(X(this),$(this))),(0,s.A)(this,Xe,(j(this),G(this))),(0,s.A)(this,$e,(Q(this),Z(this))),(0,s.A)(this,je,(ee(this),te(this))),(0,s.A)(this,Ge,(ne(this),ie(this))),(0,s.A)(this,Qe,(re(this),se(this))),(0,s.A)(this,Ze,(ae(this),oe(this))),(0,s.A)(this,et,(ce(this),ue(this))),(0,s.A)(this,tt,(he(this),le(this))),(0,s.A)(this,nt,(de(this),me(this))),(0,s.A)(this,it,(ge(this),pe(this))),(0,s.A)(this,rt,(ke(this),fe(this))),(0,s.A)(this,st,(ve(this),Ae(this))),(0,s.A)(this,ot,(Ce(this),be(this))),(0,s.A)(this,ct,(xe(this),function(t,n,i){var r;let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.value=t,!s&&(null===(r=e.getFormElement())||void 0===r||r.formStore.onChange(e.name,t)),(0,o.A)(at,e,we).emit(t),i||(0,o.A)(at,e,Ee).emit(n)})),(0,s.A)(this,ut,Le(this)),(0,s.A)(this,ht,(We(this),e=>{(0,o.A)(at,this,Se).emit(e)})),(0,s.A)(this,lt,(e=>{try{E().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,u.A)(Ke,this)}set name(e){(0,c.A)(Ke,this,e)}get label(){return(0,u.A)(qe,this)}set label(e){(0,c.A)(qe,this,e)}get value(){return(0,u.A)(De,this)}set value(e){(0,c.A)(De,this,e)}get language(){return(0,u.A)(Te,this)}set language(e){(0,c.A)(Te,this,e)}get theme(){return(0,u.A)(He,this)}set theme(e){(0,c.A)(He,this,e)}get required(){return(0,u.A)(Ye,this)}set required(e){(0,c.A)(Ye,this,e)}get readOnly(){return(0,u.A)(Ue,this)}set readOnly(e){(0,c.A)(Ue,this,e)}get automaticLayout(){return(0,u.A)(Je,this)}set automaticLayout(e){(0,c.A)(Je,this,e)}get minLines(){return(0,u.A)(Xe,this)}set minLines(e){(0,c.A)(Xe,this,e)}get completers(){return(0,u.A)($e,this)}set completers(e){(0,c.A)($e,this,e)}get advancedCompleters(){return(0,u.A)(je,this)}set advancedCompleters(e){(0,c.A)(je,this,e)}get markers(){return(0,u.A)(Ge,this)}set markers(e){(0,c.A)(Ge,this,e)}get links(){return(0,u.A)(Qe,this)}set links(e){(0,c.A)(Qe,this,e)}get maxLines(){return(0,u.A)(Ze,this)}set maxLines(e){(0,c.A)(Ze,this,e)}get height(){return(0,u.A)(et,this)}set height(e){(0,c.A)(et,this,e)}get message(){return(0,u.A)(tt,this)}set message(e){(0,c.A)(tt,this,e)}get showExpandButton(){return(0,u.A)(nt,this)}set showExpandButton(e){(0,c.A)(nt,this,e)}get tokenConfig(){return(0,u.A)(it,this)}set tokenConfig(e){(0,c.A)(it,this,e)}get showCopyButton(){return(0,u.A)(rt,this)}set showCopyButton(e){(0,c.A)(rt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(Pe,{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,u.A)(lt,this)},d().createElement(mt,{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,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,u.A)(ct,this),onTokenClick:(0,u.A)(ht,this)}))}}function mt(e){let{value:t,language:n,theme:i,minLines:r,maxLines:s,height:a,automaticLayout:o,completers:c,advancedCompleters:u,markers:h,readOnly:m,links:g,tokenConfig:p={showDSKey:!1},showExpandButton:f,showCopyButton:A=!0,validateState:w,onChange:y,onTokenClick:C}=e;const b=t??"",E=n??"plaintext",z=i??"auto",P=r??3,N=s??1/0,O=a??500,[F,V]=(0,l.useState)(!1),I=(0,l.useMemo)((()=>(0,M.uniqueId)("worker")),[]),{t:K}=(0,W.useTranslation)(_.NS),q=(0,l.useRef)(null),D=(0,l.useRef)(),T=(0,l.useRef)(),H=(0,l.useRef)({width:300,height:gt(b,P,N)}),[Y,U]=(0,l.useState)(),J=(0,l.useRef)(o),X=(0,k.useCurrentTheme)();(0,l.useEffect)((()=>{if("brick_next_yaml"!==E)return;const e=S.h.getInstance(I),t=e.addEventListener("message",(e=>{const{token:t,data:n,init:i=!1}=e.data,r=T.current.getModel();if(!r)return;const s=r.getValue();switch(t){case"parse_yaml":{var a;const{value:e,tokens:t,markers:o}=n;null===(a=D.current)||void 0===a||a.set(t.map((e=>({range:new v.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),v.editor.setModelMarkers(r,"brick_next_yaml",o),y(s,e,!1,i);break}case"parse_yaml_error":var o;v.editor.setModelMarkers(r,"brick_next_yaml",[]),null==D||null===(o=D.current)||void 0===o||o.set([]),y(s,void 0,!1,i)}}));return()=>{e.removeEventListener(t)}}),[]),(0,l.useEffect)((()=>{const e="auto"===z?"dark"===X||"dark-v2"===X?"vs-dark":"vs":z,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";v.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),v.editor.setTheme("custom-theme")}),[X,z]),(0,l.useEffect)((()=>{if(T.current){const e=T.current.getModel();v.editor.setModelLanguage(e,E)}}),[E]),(0,l.useEffect)((()=>{if("brick_next_yaml"===E){const e=(0,L.v)(c,u,I,p),t=v.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[c,u,E]);const $=(0,l.useCallback)((e=>{let{init:t=!1}=e;"brick_next_yaml"===E&&T.current&&S.h.getInstance(I).postMessage({token:"parse_yaml",data:{value:b,links:g,markers:h},options:p,init:t})}),[E,b,p,g,h,I]),j=(0,l.useMemo)((()=>(0,M.debounce)($,300)),[$]);(0,l.useEffect)((()=>{if(T.current){const e=T.current.getModel();null!=e&&e.getValue&&b!==e.getValue()&&(e.setValue(b),j({init:!0}))}}),[b,j]),(0,l.useLayoutEffect)((()=>{var e;if("fit-content"!==J.current||!q.current)return;H.current.width=q.current.getBoundingClientRect().width,null===(e=T.current)||void 0===e||e.layout(H.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===q.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!==H.current.width||F)&&(H.current.width=e,null===(t=T.current)||void 0===t||t.layout({width:e,height:F?i:H.current.height}));break}}));return t.observe(q.current),()=>{t.disconnect()}}),[F]),(0,l.useLayoutEffect)((()=>{if("fit-container"!==J.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}}(q.current);if(!e)return;const t=new ResizeObserver((()=>{U(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,l.useEffect)((()=>{"fit-container"!==J.current&&"fit-content"!==J.current&&U(O)}),[O]),(0,l.useEffect)((()=>{T.current&&T.current.updateOptions({readOnly:m})}),[m]),(0,l.useEffect)((()=>{if(T.current||!q.current)return;const e=v.editor.createModel(b,E);T.current=v.editor.create(q.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==J.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"==J.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbersMinChars:3,suggest:{insertMode:"insert",preview:!0},readOnly:m,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0}),D.current=T.current.createDecorationsCollection()}),[b,E,m]),(0,l.useEffect)((()=>{const e=T.current;if("brick_next_yaml"===E&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=D.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)&&C(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=D.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 j({init:!0}),()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[E,C,X,z,j]),(0,l.useEffect)((()=>{const e=T.current;if(!e||!q.current||"fit-content"!==J.current)return;const t=e.onDidContentSizeChange((t=>{if(!F&&t.contentHeightChanged){const n=pt(t.contentHeight,P,N);n!==H.current.height&&(H.current.height=n,e.layout(H.current))}})),n=pt(e.getContentHeight(),P,N);return n!==H.current.height&&(H.current.height=n,e.layout(H.current)),()=>{t.dispose()}}),[N,P,F]),(0,l.useEffect)((()=>{if(!T.current)return;const e=T.current.getModel(),t=e.onDidChangeContent((()=>{(0,B.J)(I),["brick_next_yaml"].includes(E)?j({init:!1}):y(e.getValue(),void 0,!1,!1)}));return()=>{t.dispose()}}),[j,y,I,E]),(0,l.useEffect)((()=>{if(F){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),V(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[F]),(0,l.useEffect)((()=>()=>{var e,t;null===(e=T.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=T.current)||void 0===t||t.dispose()}),[]);const G=(0,l.useCallback)((()=>{if(T.current){const e=T.current.getModel();Fe(e.getValue()).then((()=>Ve({type:"success",message:K(_.K.COPY_SUCCESS)}))).catch((()=>Ve({type:"error",message:K(_.K.COPY_FAILED)})))}}),[K]),Q=(0,l.useCallback)((()=>{V(!F)}),[F]);return d().createElement("div",{className:R()("code-editor-wrapper",{expanded:F,error:"error"===w})},d().createElement("div",{ref:q,style:{height:F?"100%":Y,overflow:F?"scroll":""}}),d().createElement("div",{className:"toolbar"},A&&d().createElement(Ne,{content:K(_.K.COPY)},d().createElement(Oe,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:G})),f&&d().createElement(Ne,{content:K(F?_.K.COLLAPSE:_.K.EXPAND)},d().createElement(Oe,{className:"expand-icon",icon:F?"compress":"expand",lib:"antd",theme:"outlined",onClick:Q}))))}function gt(e,t,n){return kt(Math.min(n,Math.max(t,e.split("\n").length)))}function pt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(kt(n),Math.max(i,kt(t)))}function kt(e){return e*x.fE+x.lP+x.Vu}i=dt,({e:[N,O,F,V,I,K,q,D,T,H,Y,U,J,X,$,j,G,Q,Z,ee,te,ne,ie,re,se,ae,oe,ce,ue,he,le,de,me,ge,pe,ke,fe,ve,Ae,we,ye,Ce,be,Ee,Me,xe,Le,Se,Be,We],c:[Ie,P]}=(0,h.A)(i,[_e("vs.code-editor",{shadowOptions:!1})],[[ze(),1,"name"],[ze(),1,"label"],[ze(),1,"value"],[ze(),1,"language"],[ze(),1,"theme"],[ze({type:Boolean}),1,"required"],[ze({type:Boolean}),1,"readOnly"],[ze(),1,"automaticLayout"],[ze({type:Number}),1,"minLines"],[ze({attribute:!1}),1,"completers"],[ze({attribute:!1}),1,"advancedCompleters"],[ze({attribute:!1}),1,"markers"],[ze({attribute:!1}),1,"links"],[ze({type:Number}),1,"maxLines"],[ze({attribute:!1}),1,"height"],[ze(),1,"message"],[ze({type:Boolean}),1,"showExpandButton"],[ze({attribute:!1}),1,"tokenConfig"],[ze({type:Boolean}),1,"showCopyButton"],[Re({type:"code.change"}),1,"codeChange",e=>(0,u.A)(st,e),(e,t)=>(0,c.A)(st,e,t)],[Re({type:"user.input"}),1,"userInput",e=>(0,u.A)(ot,e),(e,t)=>(0,c.A)(ot,e,t)],[Re({type:"token.click"}),1,"tokenClickEvent",e=>(0,u.A)(ut,e),(e,t)=>(0,c.A)(ut,e,t)]],0,(e=>lt.has((0,a.A)(e))),f.N)),P()}}]);
2
- //# sourceMappingURL=code-editor.5fc870d8.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/code-editor.5fc870d8.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 { 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 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\";\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 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?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n validateState?: string;\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:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\n | 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 /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean = false\n ) => {\n this.value = value;\n !isInit && this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\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 #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\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.#handleValidtor}\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 markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onTokenClick={this.#handleTokenClick}\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 tokenConfig = {\n showDSKey: false,\n },\n showExpandButton,\n showCopyButton = true,\n validateState,\n onChange,\n onTokenClick,\n}: CodeEditorProps & {\n onChange(\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean\n ): 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, init = false } = message.data;\n const model = editorRef.current!.getModel();\n if (!model) return;\n const originValue = model.getValue();\n\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 onChange(originValue, value, false, init);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n onChange(originValue, undefined, false, init);\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 }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(\n ({ init = false }: { init?: boolean }) => {\n if (language !== \"brick_next_yaml\" || !editorRef.current) return;\n const workerInstance = VSWorkers.getInstance(workerId);\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value,\n links,\n markers,\n },\n options: tokenConfig,\n init,\n });\n },\n [language, value, tokenConfig, links, markers, workerId]\n );\n\n const debounceParse = useMemo(() => debounce(parseYaml, 300), [parseYaml]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n debounceParse({\n init: true,\n });\n }\n }\n }, [value, debounceParse]);\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 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 lineNumbersMinChars: 3,\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 }, [value, language, readOnly]);\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 debounceParse({\n init: true,\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme, debounceParse]);\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 useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(() => {\n setEditorId(workerId);\n if ([\"brick_next_yaml\"].includes(language)) {\n debounceParse({\n init: false,\n });\n } else {\n onChange(currentModel.getValue(), undefined, false, false);\n }\n });\n return () => {\n listener.dispose();\n };\n }, [debounceParse, onChange, workerId, language]);\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 <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","_CodeEditor_brand","WeakSet","_U","_handleChange","_V","_handleTokenClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","_this","arguments","this","_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_showExpandButton","_init_extra_showExpandButton","_init_tokenConfig","_init_extra_tokenConfig","_init_showCopyButton","_init_extra_showCopyButton","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","parseValue","isFlush","_this$getFormElement","isInit","length","undefined","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","showExpandButton","tokenConfig","showCopyButton","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","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","init","model","current","getModel","originValue","getValue","_decorationsCollectio","tokens","set","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","_decorationsCollectio2","removeEventListener","computedTheme","lineHeightBackground","includes","defineTheme","base","inherit","rules","colors","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","_ref2","postMessage","debounceParse","debounce","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","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","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","item","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","setEditorId","fn","key","window","_editorRef$current3","_editorRef$current4","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","className","classNames","error","ref","overflow","content","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":""}