@next-bricks/vs 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.json CHANGED
@@ -79,11 +79,119 @@
79
79
  },
80
80
  {
81
81
  "name": "completers",
82
+ "annotation": {
83
+ "type": "array",
84
+ "elementType": {
85
+ "type": "reference",
86
+ "typeName": {
87
+ "type": "qualifiedName",
88
+ "left": {
89
+ "type": "qualifiedName",
90
+ "left": {
91
+ "type": "identifier",
92
+ "name": "monaco"
93
+ },
94
+ "right": {
95
+ "type": "identifier",
96
+ "name": "languages"
97
+ }
98
+ },
99
+ "right": {
100
+ "type": "identifier",
101
+ "name": "CompletionItem"
102
+ }
103
+ }
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "name": "advancedCompleters",
82
109
  "annotation": {
83
110
  "type": "reference",
84
111
  "typeName": {
85
112
  "type": "identifier",
86
- "name": "Completers"
113
+ "name": "Record"
114
+ },
115
+ "typeParameters": {
116
+ "type": "typeParameterInstantiation",
117
+ "params": [
118
+ {
119
+ "type": "keyword",
120
+ "value": "string"
121
+ },
122
+ {
123
+ "type": "typeLiteral",
124
+ "members": [
125
+ {
126
+ "type": "propertySignature",
127
+ "key": {
128
+ "type": "identifier",
129
+ "name": "triggerCharacter"
130
+ },
131
+ "annotation": {
132
+ "type": "keyword",
133
+ "value": "string"
134
+ },
135
+ "computed": false
136
+ },
137
+ {
138
+ "type": "propertySignature",
139
+ "key": {
140
+ "type": "identifier",
141
+ "name": "completers"
142
+ },
143
+ "annotation": {
144
+ "type": "array",
145
+ "elementType": {
146
+ "type": "reference",
147
+ "typeName": {
148
+ "type": "qualifiedName",
149
+ "left": {
150
+ "type": "qualifiedName",
151
+ "left": {
152
+ "type": "identifier",
153
+ "name": "monaco"
154
+ },
155
+ "right": {
156
+ "type": "identifier",
157
+ "name": "languages"
158
+ }
159
+ },
160
+ "right": {
161
+ "type": "identifier",
162
+ "name": "CompletionItem"
163
+ }
164
+ }
165
+ }
166
+ },
167
+ "computed": false
168
+ }
169
+ ]
170
+ }
171
+ ]
172
+ }
173
+ }
174
+ },
175
+ {
176
+ "name": "markers",
177
+ "annotation": {
178
+ "type": "array",
179
+ "elementType": {
180
+ "type": "reference",
181
+ "typeName": {
182
+ "type": "identifier",
183
+ "name": "Marker"
184
+ }
185
+ }
186
+ }
187
+ },
188
+ {
189
+ "name": "links",
190
+ "annotation": {
191
+ "type": "array",
192
+ "elementType": {
193
+ "type": "keyword",
194
+ "value": "string"
87
195
  }
88
196
  }
89
197
  },
@@ -131,7 +239,7 @@
131
239
  }
132
240
  },
133
241
  {
134
- "name": "highlight.click",
242
+ "name": "token.click",
135
243
  "detail": {
136
244
  "annotation": {
137
245
  "type": "keyword",
@@ -143,102 +251,107 @@
143
251
  "methods": [],
144
252
  "types": [
145
253
  {
146
- "type": "typeAlias",
147
- "name": "Completers",
148
- "annotation": {
149
- "type": "reference",
150
- "typeName": {
151
- "type": "identifier",
152
- "name": "Record"
254
+ "type": "interface",
255
+ "name": "Marker",
256
+ "body": [
257
+ {
258
+ "type": "propertySignature",
259
+ "key": {
260
+ "type": "identifier",
261
+ "name": "token"
262
+ },
263
+ "annotation": {
264
+ "type": "keyword",
265
+ "value": "string"
266
+ },
267
+ "computed": false
153
268
  },
154
- "typeParameters": {
155
- "type": "typeParameterInstantiation",
156
- "params": [
157
- {
269
+ {
270
+ "type": "propertySignature",
271
+ "key": {
272
+ "type": "identifier",
273
+ "name": "level"
274
+ },
275
+ "annotation": {
276
+ "type": "typeOperator",
277
+ "operator": "keyof",
278
+ "annotation": {
279
+ "type": "typeQuery",
280
+ "exprName": {
281
+ "type": "identifier",
282
+ "name": "Level"
283
+ }
284
+ }
285
+ },
286
+ "computed": false
287
+ },
288
+ {
289
+ "type": "propertySignature",
290
+ "key": {
291
+ "type": "identifier",
292
+ "name": "message"
293
+ },
294
+ "annotation": {
295
+ "type": "keyword",
296
+ "value": "string"
297
+ },
298
+ "computed": false
299
+ },
300
+ {
301
+ "type": "propertySignature",
302
+ "key": {
303
+ "type": "identifier",
304
+ "name": "code"
305
+ },
306
+ "annotation": {
307
+ "type": "typeLiteral",
308
+ "members": [
309
+ {
310
+ "type": "propertySignature",
311
+ "key": {
312
+ "type": "identifier",
313
+ "name": "value"
314
+ },
315
+ "annotation": {
316
+ "type": "keyword",
317
+ "value": "string"
318
+ },
319
+ "computed": false
320
+ },
321
+ {
322
+ "type": "propertySignature",
323
+ "key": {
324
+ "type": "identifier",
325
+ "name": "target"
326
+ },
327
+ "annotation": {
328
+ "type": "keyword",
329
+ "value": "string"
330
+ },
331
+ "computed": false
332
+ }
333
+ ]
334
+ },
335
+ "optional": true,
336
+ "computed": false
337
+ },
338
+ {
339
+ "type": "propertySignature",
340
+ "key": {
341
+ "type": "identifier",
342
+ "name": "params"
343
+ },
344
+ "annotation": {
345
+ "type": "array",
346
+ "elementType": {
158
347
  "type": "keyword",
159
348
  "value": "string"
160
- },
161
- {
162
- "type": "union",
163
- "types": [
164
- {
165
- "type": "array",
166
- "elementType": {
167
- "type": "reference",
168
- "typeName": {
169
- "type": "qualifiedName",
170
- "left": {
171
- "type": "qualifiedName",
172
- "left": {
173
- "type": "identifier",
174
- "name": "monaco"
175
- },
176
- "right": {
177
- "type": "identifier",
178
- "name": "languages"
179
- }
180
- },
181
- "right": {
182
- "type": "identifier",
183
- "name": "CompletionItem"
184
- }
185
- }
186
- }
187
- },
188
- {
189
- "type": "typeLiteral",
190
- "members": [
191
- {
192
- "type": "propertySignature",
193
- "key": {
194
- "type": "identifier",
195
- "name": "triggerCharacter"
196
- },
197
- "annotation": {
198
- "type": "keyword",
199
- "value": "string"
200
- },
201
- "computed": false
202
- },
203
- {
204
- "type": "propertySignature",
205
- "key": {
206
- "type": "identifier",
207
- "name": "list"
208
- },
209
- "annotation": {
210
- "type": "array",
211
- "elementType": {
212
- "type": "reference",
213
- "typeName": {
214
- "type": "qualifiedName",
215
- "left": {
216
- "type": "qualifiedName",
217
- "left": {
218
- "type": "identifier",
219
- "name": "monaco"
220
- },
221
- "right": {
222
- "type": "identifier",
223
- "name": "languages"
224
- }
225
- },
226
- "right": {
227
- "type": "identifier",
228
- "name": "CompletionItem"
229
- }
230
- }
231
- }
232
- },
233
- "computed": false
234
- }
235
- ]
236
- }
237
- ]
238
349
  }
239
- ]
350
+ },
351
+ "optional": true,
352
+ "computed": false
240
353
  }
241
- }
354
+ ]
242
355
  }
243
356
  ]
244
357
  }
@@ -3,10 +3,7 @@ import { FormItemElementBase } from "@next-shared/form";
3
3
  import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
4
4
  import "@next-core/theme";
5
5
  import "./index.css";
6
- export type Completers = Record<string, monaco.languages.CompletionItem[] | {
7
- triggerCharacter: string;
8
- list: monaco.languages.CompletionItem[];
9
- }>;
6
+ import { Level } from "./utils/constants.js";
10
7
  export interface CodeEditorProps {
11
8
  name?: string;
12
9
  label?: string;
@@ -19,7 +16,23 @@ export interface CodeEditorProps {
19
16
  minLines?: number;
20
17
  maxLines?: number;
21
18
  height?: string | number;
22
- completers?: Completers;
19
+ completers?: monaco.languages.CompletionItem[];
20
+ advancedCompleters?: Record<string, {
21
+ triggerCharacter: string;
22
+ completers: monaco.languages.CompletionItem[];
23
+ }>;
24
+ markers?: Marker[];
25
+ links?: string[];
26
+ }
27
+ export interface Marker {
28
+ token: string;
29
+ level: keyof typeof Level;
30
+ message: string;
31
+ code?: {
32
+ value: string;
33
+ target: string;
34
+ };
35
+ params?: string[];
23
36
  }
24
37
  /**
25
38
  * 构件 code-editor
@@ -47,7 +60,13 @@ export declare class CodeEditor extends FormItemElementBase implements CodeEdito
47
60
  * @default 3
48
61
  */
49
62
  accessor minLines: number | undefined;
50
- accessor completers: Completers | undefined;
63
+ accessor completers: monaco.languages.CompletionItem[] | undefined;
64
+ accessor advancedCompleters: Record<string, {
65
+ triggerCharacter: string;
66
+ completers: monaco.languages.CompletionItem[];
67
+ }> | undefined;
68
+ accessor markers: Marker[] | undefined;
69
+ accessor links: string[] | undefined;
51
70
  /**
52
71
  * @default Infinity
53
72
  */
@@ -56,7 +75,7 @@ export declare class CodeEditor extends FormItemElementBase implements CodeEdito
56
75
  connectedCallback(): void;
57
76
  render(): JSX.Element;
58
77
  }
59
- export declare function CodeEditorComponent({ value: _value, language: _language, theme: _theme, minLines: _minLines, maxLines: _maxLines, height: _height, automaticLayout, completers, onChange, onHighlightClick, }: CodeEditorProps & {
78
+ export declare function CodeEditorComponent({ value: _value, language: _language, theme: _theme, minLines: _minLines, maxLines: _maxLines, height: _height, automaticLayout, completers, advancedCompleters, markers, links, onChange, onHighlightClick, }: CodeEditorProps & {
60
79
  onChange(value: string, isFlush: boolean): void;
61
80
  onHighlightClick(word: string): void;
62
81
  }): JSX.Element;
@@ -0,0 +1,17 @@
1
+ import type { State } from "js-yaml";
2
+ export interface Token {
3
+ startLineNumber: number;
4
+ endLineNumber: number;
5
+ startColumn: number;
6
+ endColumn: number;
7
+ source: string;
8
+ isString?: boolean;
9
+ }
10
+ declare class BrickNextYamlSourceMap {
11
+ #private;
12
+ constructor();
13
+ private handleState;
14
+ listen(): (event: "open" | "close", state: State) => void;
15
+ getTokens: () => Token[];
16
+ }
17
+ export default BrickNextYamlSourceMap;
@@ -1,5 +1,6 @@
1
1
  import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
2
- import { Completers } from "../index.jsx";
3
2
  export declare const isInEvaluateBody: (model: monaco.editor.ITextModel, position: monaco.Position) => boolean;
4
- export declare const brickNextYAMLProvideCompletionItems: (completers?: Completers) => (model: monaco.editor.ITextModel, position: monaco.Position, context: monaco.languages.CompletionContext, _token: monaco.CancellationToken) => monaco.languages.ProviderResult<monaco.languages.CompletionList>;
5
- export declare const setDecoractions: (editor: monaco.editor.IStandaloneCodeEditor, decorationsCollection: monaco.editor.IEditorDecorationsCollection, completers?: Completers) => void;
3
+ export declare const brickNextYAMLProvideCompletionItems: (completers?: monaco.languages.CompletionItem[], advancedCompleters?: Record<string, {
4
+ triggerCharacter: string;
5
+ completers: monaco.languages.CompletionItem[];
6
+ }> | undefined) => (model: monaco.editor.ITextModel, position: monaco.Position, context: monaco.languages.CompletionContext, _token: monaco.CancellationToken) => monaco.languages.ProviderResult<monaco.languages.CompletionList>;
@@ -1,2 +1,8 @@
1
1
  export declare const EVALUATE_KEYWORD: string[];
2
2
  export declare const brickNextKeywords: string[];
3
+ export declare const Level: {
4
+ hit: number;
5
+ info: number;
6
+ warn: number;
7
+ error: number;
8
+ };
@@ -78,40 +78,159 @@ children:
78
78
  properties:
79
79
  language: brick_next_yaml
80
80
  value: |
81
- # Enhanced yaml for Brick Next with completers
82
- brick: button
83
- properties:
84
- buttonName: test
85
- textContent: '<% CTX.error ? "CTX.error": "Hello" %>'
86
- a: CTX.test
87
- b: <% CTX.b %>
88
- c: <% STATE.e %>
89
- d: <% PATH.instanceId %>
90
- e:
91
- action: console.log
92
- args:
93
- - <% FN.getPageDetail(APP.id, CTX.pageTitle) %>
94
- - <% `${ CTX.name }` %>
81
+ basicUsige:
82
+ keyword:
83
+ Expression:
84
+ expression1: <% CTX.work %>
85
+ expression2: <% `${CTX.work}` %>
86
+ expression3:
87
+ test1: |
88
+ <%
89
+ CTX.a ? CTX.b : CTX.c
90
+ %>
91
+ test2: |-
92
+ <%
93
+ CTX.a ? CTX.b : CTX.c
94
+ %>
95
+ test3: >
96
+ <%
97
+ CTX.a ? CTX.b : CTX.c
98
+ %>
99
+ test4: >-
100
+ <%
101
+ CTX.a ? CTX.b : CTX.c
102
+ %>
103
+ expression4: "<% CTX.a ? CTX.b : CTX.c %>"
104
+ expression7: <% CTX.list.map(item => FN.getDetail(item, CTX.name)) %>
105
+ expression8: <% CTX.list.map(FN.getDetail) %>
106
+ expression9: |
107
+ <%
108
+ [
109
+ CTX.work,
110
+ CTX.work.a,
111
+ ACTX,
112
+ CTXA,
113
+ ACTX.noWork,
114
+ CTXA.noWork,
115
+ a.CTX.noWork,
116
+ ]
117
+ %>
118
+ expression10: |
119
+ <%
120
+ "TPL is warn",
121
+ TPL.id
122
+ %>
123
+ expression11: |
124
+ <%
125
+ FN.getDetail(CTX.abc, CTX.efg) %>
126
+ expression12:
127
+ test1:
128
+ test2: <% CTX.name %>
129
+ test3: |
130
+ <%
131
+ CTX.name
132
+ %>
133
+ expression13: <%= CTX.b + CTX.c %>
134
+ expression14: |
135
+ <%=
136
+ APP.id + CTX.name
137
+ %>
138
+ expression15:
139
+ test1: |
140
+ <%
141
+ CTX.name %>
142
+ test2: |
143
+ <% CTX.name
144
+ %>
145
+ test3: |
146
+ <% "track context", CTX.name
147
+ %>
148
+ test4: |
149
+ <%
150
+ "track context", CTX.name
151
+ %>
152
+ test5: |
153
+ <%
154
+ "track context",
155
+ CTX.name
156
+ %>
157
+ test6: |
158
+ <% "track context",
159
+ CTX.name
160
+ %>
161
+ test7: |
162
+ <% "track context", CTX.name
163
+ exporession16:
164
+ - <% CTX.a %>
165
+ - CTX.b
166
+ - <% CTX.c %>
167
+ - <% "CTX.d" %>
168
+ markers:
169
+ hit:
170
+ PATH: <% PATH.instanceId %>
171
+ info:
172
+ QUERY: <% QUERY.info %>
173
+ warn:
174
+ ANCHOR: <% ANCHOR.id %>
175
+ error:
176
+ STATE: <% STATE.name %>
177
+ stringAndNoWork:
178
+ string1: CTX.noWork
179
+ string2: FN.getTest
180
+ string3: <% "FN.getTest(CTX.test)" %>
95
181
  automaticLayout: fit-content
182
+ links:
183
+ - CTX
184
+ - FN
185
+ markers:
186
+ - token: CTX
187
+ params:
188
+ - a
189
+ - b
190
+ - token: PATH
191
+ message: “这是 PATH”
192
+ level: hit
193
+ - token: QUERY
194
+ message: “这是 QUERY”
195
+ level: info
196
+ - token: ANCHOR
197
+ message: “这是 ANCHOR“
198
+ level: warn
199
+ - token: STATE
200
+ message: "这里不能写 STATE"
201
+ level: error
202
+ code:
203
+ value: "详情地址"
204
+ target: https://brick-next.js.org/docs/concepts/context
205
+ - token: TPL
206
+ level: warn
207
+ message: 不允许写入TPL
96
208
  completers:
97
- custom:
98
- - label: buttonName
99
- detail: string
100
- - label: buttonType
101
- detail: "primary|default|link|danger"
102
- - label: buttonSize
103
- insertText: size
209
+ - label: buttonName
210
+ detail: string
211
+ - label: buttonType
212
+ detail: "primary|default|link|danger"
213
+ - label: buttonSize
214
+ insertText: size
215
+ advancedCompleters:
104
216
  target:
105
217
  triggerCharacter: ":"
106
- list:
218
+ completers:
107
219
  - label: a
108
220
  - label: b
109
221
  CTX:
110
- - label: pageTitle
111
- - label: name
222
+ triggerCharacter: "."
223
+ completers:
224
+ - label: pageTitle
225
+ - label: name
112
226
  FN:
113
- - label: getPageDetail
114
- - label: getInstance
227
+ triggerCharacter: "."
228
+ completers:
229
+ - label: getPageDetail
230
+ - label: getInstance
115
231
  PATH:
116
- - label: instanceId
232
+ triggerCharacter: "."
233
+ completers:
234
+ - label: instanceId
235
+ - label: name
117
236
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-bricks/vs",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-bricks/tree/master/bricks/vs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,5 +38,5 @@
38
38
  "@next-core/test-next": "^1.0.7",
39
39
  "resize-observer-polyfill": "^1.5.1"
40
40
  },
41
- "gitHead": "cf94974ff1cac5d54b1502d8687191302c3808a7"
41
+ "gitHead": "f1d29ebf93aac3b9e3a9ffbed716a15e0476b876"
42
42
  }
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[9918],{89918:(e,t,n)=>{n.r(t);var r,i,a=n(53395),s=n(40381),l=n(70687),u=n(25303),o=n(48657),c=n.n(o),h=n(75476),g=n(29049),m=n(16989),{method:d}=(0,h.createDecorators)();r=d();var v=new WeakMap,f=new WeakMap,p=new WeakMap,b=new WeakMap,Z=new WeakMap,w=new WeakMap;class C extends g.ReactNextElement{constructor(){super(...arguments),(0,a.Z)(this,w,{get:L,set:N}),(0,a.Z)(this,b,{get:E,set:M}),(0,a.Z)(this,f,{get:k,set:y}),(0,a.Z)(this,v,{writable:!0,value:!1}),(0,a.Z)(this,p,{writable:!0,value:"normal"}),(0,a.Z)(this,Z,{writable:!0,value:!1}),i(this)}get isFormItemElement(){return!0}set validateState(e){(0,s.Z)(this,b,e),this._render()}get validateState(){return(0,l.Z)(this,b)}set notRender(e){this.hidden=e,(0,s.Z)(this,f,e),this._render()}get notRender(){return(0,l.Z)(this,f)}get $bindFormItem(){return(0,l.Z)(this,w)}set $bindFormItem(e){(0,s.Z)(this,w,e),this._render()}getFormElement(){for(var e=this;(e=e.parentNode)&&e&&!e.isFormElement;);return e}}function k(){return(0,l.Z)(this,v)}function y(e){(0,s.Z)(this,v,e)}function E(){return(0,l.Z)(this,p)}function M(e){(0,s.Z)(this,p,e)}function L(){return(0,l.Z)(this,Z)}function N(e){(0,s.Z)(this,Z,e)}[i]=(0,u.Z)(C,[[r,2,"getFormElement"]],[]).e;var S,T,x,R,I,W,A,P,_,K,z,F,O,V,B,H,q,D,U,X,Y,$,G,j,Q,J,ee,te,ne,re,ie,ae,se,le,ue,oe,ce,he,ge,me=n(46475),de=n(73701),ve=n(47637),fe=n(64167),pe=n(27680),be=(n(65254),n(78035)),Ze=18,we=12,Ce=12,ke=n(33028),ye=n(36023),Ee=["CTX","STATE","DATA","EVENT","FLAGS","APP","ANCHOR","HASH","INSTALLED_APPS","ITEM","LOCAL_STORYAGE","MEDIA","MISC","PARAMS","PATH","PROCESSORS","QUERY","QUERY_ARRAY","SESSION_STORAGE","TPL","SYS","BASE_URL","IMG","FN","I18N","I18N_TEXT","PERMISSIONS","THEME"],Me=["target","targetRef","properties","events","method","callback","success","error","action","useProvider","useChildren","useBrick","args","if","then"],Le=(e,t,n)=>{for(var r=[],i=[],a="",s=n,l=t.startColumn;s>0;){var u=e.getValueInRange({startLineNumber:s,endLineNumber:s,startColumn:0,endColumn:1/0}).match(/^([\s|-]*)(\w+)(?=:)/);if(u){var[o,c,h]=u;c.length===t.startColumn-1&&r.unshift(h),c.length<l-1&&(!a&&(a=h),l=c.length,i.unshift(h))}s--}return{curLevelKeys:r,keyList:i,parentKey:a}},Ne=(e,t)=>{var 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){var{parentKey:a}=Le(e,r.range,null==r?void 0:r.range.startLineNumber),{parentKey:s}=Le(e,i.range,null==i?void 0:i.range.startLineNumber),{keyList:l}=Le(e,n,t.lineNumber);if(a===s&&l.includes(a))return!0}return!1},Se=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.getModel();if(r){t.clear();var i=[];["CTX","STATE","FN"].forEach((function(e){var t;if(n[e]){var a=null===(t=r.findMatches)||void 0===t?void 0:t.call(r,"(?<=^|\\s)".concat(e,"\\.\\w+"),!1,!0,!1,null,!1);a&&a.length&&a.forEach((function(e){Ne(r,new me.Position(e.range.startLineNumber,e.range.startColumn))&&i.push({range:e.range,options:{inlineClassName:"highlight"}})}))}})),null==t||t.set(i)}},Te=n(46062),xe=n.n(Te),Re=n(44036),Ie=n.n(Re),We=n(96793),Ae=n.n(We),Pe=n(17892),_e=n.n(Pe),Ke=n(11173),ze=n.n(Ke),Fe=n(42464),Oe=n.n(Fe),Ve=n(76126),Be={};Be.styleTagTransform=Oe(),Be.setAttributes=_e(),Be.insert=Ae().bind(null,"head"),Be.domAPI=Ie(),Be.insertStyleElement=ze(),xe()(Ve.Z,Be),Ve.Z&&Ve.Z.locals&&Ve.Z.locals,(0,de.z2)(me),(0,ve.z2)(me),(0,fe.z2)(me,"brick_next_yaml"),(0,pe.z2)(me);var He,{defineElement:qe,property:De,event:Ue}=(0,h.createDecorators)(),Xe=(0,g.wrapBrick)("eo-form-item");T=qe("vs.code-editor",{shadowOptions:!1}),x=De(),I=De(),A=De({attribute:!1}),_=De(),z=De(),O=De({type:Boolean}),B=De({type:Boolean}),q=De(),U=De({type:Number}),Y=De({attribute:!1}),G=De({type:Number}),Q=De({attribute:!1}),ee=Ue({type:"code.change"}),ie=Ue({type:"user.input"}),ue=Ue({type:"highlight.click"});var Ye=new WeakMap,$e=new WeakMap,Ge=new WeakMap,je=new WeakMap,Qe=new WeakMap,Je=new WeakMap,et=new WeakMap,tt=new WeakMap,nt=new WeakMap,rt=new WeakMap,it=new WeakMap,at=new WeakMap,st=new WeakMap,lt=new WeakMap,ut=new WeakMap,ot=new WeakMap,ct=new WeakMap,ht=new WeakMap,gt=new WeakMap,mt=new WeakMap;function dt(e){re(this,e)}function vt(){return ne(this)}function ft(e){le(this,e)}function pt(){return se(this)}function bt(e){he(this,e)}function Zt(){return ce(this)}function wt(e){var{value:t,language:n,theme:r,minLines:i,maxLines:a,height:s,automaticLayout:l,completers:u,onChange:h,onHighlightClick:g}=e,d=null!=t?t:"",v=null!=n?n:"plaintext",f=null!=r?r:"auto",p=null!=i?i:3,b=null!=a?a:1/0,Z=null!=s?s:500,w=(0,o.useRef)(null),C=(0,o.useRef)(),k=(0,o.useRef)(),y=(0,o.useRef)({width:300,height:Ct(d,p,b)}),[E,M]=(0,o.useState)(),L=(0,o.useRef)(l),N=(0,m.useCurrentTheme)();return(0,o.useEffect)((()=>{me.editor.setTheme("auto"===f?"dark"===N||"dark-v2"===N?"vs-dark":"vs":f)}),[N,f]),(0,o.useEffect)((()=>{if(k.current){var e=k.current.getModel();me.editor.setModelLanguage(e,v),(0,be.isEqual)(e.getValue(),d)||e.setValue(d)}}),[d,v]),(0,o.useEffect)((()=>{if("brick_next_yaml"===v){var e=(e=>(t,n,r,i)=>{var a,s=t.getWordUntilPosition(n),{word:l,token:u}=((e,t)=>{var n,r=e.getWordUntilPosition(t),i=e.getValueInRange({startLineNumber:t.lineNumber,endLineNumber:t.lineNumber,startColumn:t.column-r.word.length-1,endColumn:t.column-r.word.length}),a=e.getWordAtPosition((0,ke.Z)((0,ke.Z)({},t),{},{column:t.column-(null==r||null===(n=r.word)||void 0===n?void 0:n.length)-1}));return{word:null==a?void 0:a.word,token:i}})(t,n),o=t.getValueInRange({startLineNumber:n.lineNumber,endLineNumber:n.lineNumber,startColumn:0,endColumn:1/0}),c={startLineNumber:n.lineNumber,endLineNumber:n.lineNumber,startColumn:s.startColumn,endColumn:s.endColumn},h=1===s.startColumn,{curLevelKeys:g}=Le(t,s,t.getLineCount());if("<"===r.triggerCharacter)return"<"!==t.getValueInRange({startLineNumber:n.lineNumber,endLineNumber:n.lineNumber,startColumn:n.column-2,endColumn:n.column+2}).trim()?{suggestions:[]}:{suggestions:[{label:"<% %>",detail:"Evalute Body",kind:me.languages.CompletionItemKind.Value,insertText:"% ${0} %>",insertTextRules:me.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:c},{label:"<%= %>",detail:"Track Evalute Body",kind:me.languages.CompletionItemKind.Value,insertText:"%= ${0} %>",insertTextRules:me.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:c}]};if(h)return{suggestions:(null!==(a=null==e?void 0:e.custom)&&void 0!==a?a:[]).filter((e=>!g.includes(e.label))).map((e=>(0,ke.Z)((0,ke.Z)({},e),{},{label:e.label,insertText:e.insertText||e.label,kind:me.languages.CompletionItemKind.Keyword,range:c})))};if(":"===r.triggerCharacter||"."===r.triggerCharacter&&l&&!["CTX","STATE","FN"].includes(l)){var m,d;if("action"===l&&":"===r.triggerCharacter)return{suggestions:null===(m=null!==(d=(0,be.get)(ye,"definitions.BuiltinBrickEventHandler.properties.action.enum"))&&void 0!==d?d:[])||void 0===m?void 0:m.map((e=>({label:" ".concat(e),detail:"event action",kind:me.languages.CompletionItemKind.Keyword,insertText:" ".concat(e),range:c})))};var v,f,p=null==e?void 0:e[l],b="";if(p&&!Array.isArray(p)?(v=p.list,b=p.triggerCharacter):v=p,b?r.triggerCharacter===b&&v:v)return{suggestions:(null!==(f=v)&&void 0!==f?f:[]).map((e=>{var t=":"===b?" ".concat(e.label):e.label;return(0,ke.Z)((0,ke.Z)({},e),{},{label:t,kind:me.languages.CompletionItemKind.Value,insertText:e.insertText||t,range:c})}))}}if(Ne(t,n)){var Z,w;if(l&&["CTX","STATE"].includes(l))return{suggestions:(null!==(Z=null==e?void 0:e[l])&&void 0!==Z?Z:[]).map((e=>({label:e.label,insertText:e.label,kind:me.languages.CompletionItemKind.Value,range:c})))};if("FN"===l&&"."===r.triggerCharacter)return{suggestions:(null!==(w=null==e?void 0:e.FN)&&void 0!==w?w:[]).map((e=>({label:e.label,insertText:e.label,kind:me.languages.CompletionItemKind.Value,range:c})))};if("APP"===l&&"."===r.triggerCharacter){var C=(0,be.get)(ye,"definitions.MicroApp.properties"),k=[];for(var[y,E]of Object.entries(C))k.push({label:y,kind:me.languages.CompletionItemKind.Value,documentation:E.description,detail:E.enum?E.enum.join("|"):E.type,insertText:y,range:c});return{suggestions:k}}return[".",":"].includes(u)?{suggestions:[]}:{suggestions:Ee.map((e=>({label:e,insertText:e,kind:me.languages.CompletionItemKind.Keyword,range:c})))}}return/^[\s|-]*\w$/.test(o)?{suggestions:Me.map((e=>({label:e,insertText:e,kind:me.languages.CompletionItemKind.Keyword,range:c}))).filter((e=>!g.includes(e.label)))}:{suggestions:[]}})(u),t=me.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[u,v]),(0,o.useEffect)((()=>{if("brick_next_yaml"===v&&k.current&&C.current){var e=k.current;Se(e,C.current,u)}}),[u,v,d]),(0,o.useLayoutEffect)((()=>{var e;if("fit-content"===L.current&&w.current){y.current.width=w.current.getBoundingClientRect().width,null===(e=k.current)||void 0===e||e.layout(y.current);var t=new ResizeObserver((e=>{for(var t of e)if(t.target===w.current){var n,r=t.contentBoxSize?t.contentBoxSize[0].inlineSize:t.contentRect.width;r!==y.current.width&&(y.current.width=r,null===(n=k.current)||void 0===n||n.layout(y.current));break}}));return t.observe(w.current),()=>{t.disconnect()}}}),[]),(0,o.useLayoutEffect)((()=>{if("fit-container"===L.current){var e=function(e){for(var t=e;t;){var n="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,n)return t}}(w.current);if(e){var t=new ResizeObserver((()=>{M(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}}}),[]),(0,o.useEffect)((()=>{"fit-container"!==L.current&&"fit-content"!==L.current&&M(Z)}),[Z]),(0,o.useEffect)((()=>{if(!k.current&&w.current){var e=me.editor.createModel(d,v);k.current=me.editor.create(w.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==L.current,fontSize:12,lineHeight:Ze,scrollbar:{horizontalScrollbarSize:we,verticalScrollbarSize:we,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:Ce,bottom:"fit-content"==L.current?void 0:Ce},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,suggest:{insertMode:"insert",preview:!0},quickSuggestions:{strings:!0,other:!0,comments:!0}}),C.current=k.current.createDecorationsCollection(),"brick_next_yaml"===v&&Se(k.current,C.current,u)}}),[d,v,u]),(0,o.useEffect)((()=>{var e=k.current;if("brick_next_yaml"===v&&e){var t=e.getModel(),n=e.onMouseDown((function(e){var n,r,i=C.current;(null!==(n=null==i||null===(r=i.getRanges)||void 0===r?void 0:r.call(i))&&void 0!==n?n:[]).forEach((n=>{var r=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[r]&&n.containsPosition(e.target.position)&&g(t.getValueInRange(n))}))})),r=e.onMouseMove((function(e){var t=C.current;t&&t.getRanges().forEach((n=>{var r=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[r]&&n.containsPosition(e.target.position)){var i=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(i)}else if(!e.event[r]){var a=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(a)}}))}));return()=>{null==r||r.dispose(),null==n||n.dispose()}}}),[v,g]),(0,o.useEffect)((()=>{var e=k.current;if(e&&w.current&&"fit-content"===L.current){var t=e.onDidContentSizeChange((t=>{if(t.contentHeightChanged){var n=kt(t.contentHeight,p,b);n!==y.current.height&&(y.current.height=n,e.layout(y.current))}})),n=kt(e.getContentHeight(),p,b);return n!==y.current.height&&(y.current.height=n,e.layout(y.current)),()=>{t.dispose()}}}),[b,p]),(0,o.useEffect)((()=>{if(k.current){var e=k.current.getModel(),t=e.onDidChangeContent((t=>{h(e.getValue(),t.isFlush)}));return()=>{t.dispose()}}}),[h]),(0,o.useEffect)((()=>()=>{var e,t,n;null===(e=k.current)||void 0===e||null===(t=e.getModel())||void 0===t||t.dispose(),null===(n=k.current)||void 0===n||n.dispose()}),[]),c().createElement("div",{ref:w,style:{height:E}})}function Ct(e,t,n){return yt(Math.min(n,Math.max(t,e.split("\n").length)))}function kt(e,t,n){var r=e;return(e-Ce)%Ze==0&&(r=e+we),Math.min(yt(n),Math.max(r,yt(t)))}function yt(e){return e*Ze+we+Ce}({e:[R,W,P,K,F,V,H,D,X,$,j,J,te,ne,re,ae,se,le,oe,ce,he,ge],c:[He,S]}=(0,u.Z)(class extends C{constructor(){super(...arguments),(0,a.Z)(this,gt,{get:Zt,set:bt}),(0,a.Z)(this,ot,{get:pt,set:ft}),(0,a.Z)(this,lt,{get:vt,set:dt}),(0,a.Z)(this,Ye,{writable:!0,value:(ge(this),R(this))}),(0,a.Z)(this,$e,{writable:!0,value:W(this)}),(0,a.Z)(this,Ge,{writable:!0,value:P(this)}),(0,a.Z)(this,je,{writable:!0,value:K(this)}),(0,a.Z)(this,Qe,{writable:!0,value:F(this)}),(0,a.Z)(this,Je,{writable:!0,value:V(this)}),(0,a.Z)(this,et,{writable:!0,value:H(this)}),(0,a.Z)(this,tt,{writable:!0,value:D(this)}),(0,a.Z)(this,nt,{writable:!0,value:X(this)}),(0,a.Z)(this,rt,{writable:!0,value:$(this)}),(0,a.Z)(this,it,{writable:!0,value:j(this)}),(0,a.Z)(this,at,{writable:!0,value:J(this)}),(0,a.Z)(this,st,{writable:!0,value:te(this)}),(0,a.Z)(this,ut,{writable:!0,value:ae(this)}),(0,a.Z)(this,ct,{writable:!0,value:(e,t)=>{var n;null===(n=this.getFormElement())||void 0===n||n.formStore.onChange(this.name,e),this.value=e,(0,l.Z)(this,lt).emit(e),t||(0,l.Z)(this,ot).emit(e)}}),(0,a.Z)(this,ht,{writable:!0,value:oe(this)}),(0,a.Z)(this,mt,{writable:!0,value:e=>{(0,l.Z)(this,gt).emit(e)}})}get name(){return(0,l.Z)(this,Ye)}set name(e){(0,s.Z)(this,Ye,e)}get label(){return(0,l.Z)(this,$e)}set label(e){(0,s.Z)(this,$e,e)}get value(){return(0,l.Z)(this,Ge)}set value(e){(0,s.Z)(this,Ge,e)}get language(){return(0,l.Z)(this,je)}set language(e){(0,s.Z)(this,je,e)}get theme(){return(0,l.Z)(this,Qe)}set theme(e){(0,s.Z)(this,Qe,e)}get required(){return(0,l.Z)(this,Je)}set required(e){(0,s.Z)(this,Je,e)}get readOnly(){return(0,l.Z)(this,et)}set readOnly(e){(0,s.Z)(this,et,e)}get automaticLayout(){return(0,l.Z)(this,tt)}set automaticLayout(e){(0,s.Z)(this,tt,e)}get minLines(){return(0,l.Z)(this,nt)}set minLines(e){(0,s.Z)(this,nt,e)}get completers(){return(0,l.Z)(this,rt)}set completers(e){(0,s.Z)(this,rt,e)}get maxLines(){return(0,l.Z)(this,it)}set maxLines(e){(0,s.Z)(this,it,e)}get height(){return(0,l.Z)(this,at)}set height(e){(0,s.Z)(this,at,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return c().createElement(Xe,{curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required},c().createElement(wt,{value:this.value,language:this.language,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,onChange:(0,l.Z)(this,ct),onHighlightClick:(0,l.Z)(this,mt)}))}},[[x,1,"name"],[I,1,"label"],[A,1,"value"],[_,1,"language"],[z,1,"theme"],[O,1,"required"],[B,1,"readOnly"],[q,1,"automaticLayout"],[U,1,"minLines"],[Y,1,"completers"],[G,1,"maxLines"],[Q,1,"height"],[ee,1,"codeChange",function(){return(0,l.Z)(this,st)},function(e){(0,s.Z)(this,st,e)}],[ie,1,"userInput",function(){return(0,l.Z)(this,ut)},function(e){(0,s.Z)(this,ut,e)}],[ue,1,"highlighClickEvent",function(){return(0,l.Z)(this,ht)},function(e){(0,s.Z)(this,ht,e)}]],[T])),S()},76126:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(39601),i=n.n(r),a=n(82609),s=n.n(a)()(i());s.push([e.id,".highlight{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.pointer{cursor:pointer}",""]);const l=s}}]);
2
- //# sourceMappingURL=9918.4c039a22.js.map