@ws-ui/code-editor 0.2.9 → 0.2.10

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.
@@ -2,14 +2,18 @@ import { FC, MutableRefObject } from 'react';
2
2
  import { MonacoLanguageClient } from 'monaco-languageclient';
3
3
  import { editor as MonacoEditor, Position } from 'monaco-editor';
4
4
  import { ICodeEditorService } from 'vscode/services';
5
- import { ISemanticTokenInfo } from '../../semanticTokens';
5
+ import { ISemanticTokenInfo } from '../../utils/semanticTokens';
6
+ import { ITextMateTokenInfo } from '../../utils/textmateTokens';
6
7
 
7
8
  export type LSPContextType = {
8
9
  inited: boolean;
9
10
  clientRef: MutableRefObject<MonacoLanguageClient | undefined>;
10
11
  lastError: Event | null;
11
12
  reload: () => void;
12
- getTokenAtPosition: (editor: MonacoEditor.IStandaloneCodeEditor, model: MonacoEditor.ITextModel, position: Position) => Promise<ISemanticTokenInfo | null>;
13
+ getTokenAtPosition: (editor: MonacoEditor.IStandaloneCodeEditor, model: MonacoEditor.ITextModel, position: Position) => Promise<{
14
+ semanticTokenInfo: ISemanticTokenInfo | null;
15
+ textmateTokenInfo: ITextMateTokenInfo | null;
16
+ } | null>;
13
17
  };
14
18
  export type ICodeEditorOpenHandler = Parameters<ICodeEditorService['registerCodeEditorOpenHandler']>[0];
15
19
  export declare const LSPProvider: FC<{
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Open ended enum at runtime
3
+ */
4
+ export declare const enum LanguageId {
5
+ Null = 0,
6
+ PlainText = 1
7
+ }
8
+ /**
9
+ * A font style. Values are 2^x such that a bit mask can be used.
10
+ */
11
+ export declare const enum FontStyle {
12
+ NotSet = -1,
13
+ None = 0,
14
+ Italic = 1,
15
+ Bold = 2,
16
+ Underline = 4,
17
+ Strikethrough = 8
18
+ }
19
+ /**
20
+ * Open ended enum at runtime
21
+ */
22
+ export declare const enum ColorId {
23
+ None = 0,
24
+ DefaultForeground = 1,
25
+ DefaultBackground = 2
26
+ }
27
+ /**
28
+ * A standard token type.
29
+ */
30
+ export declare const enum StandardTokenType {
31
+ Other = 0,
32
+ Comment = 1,
33
+ String = 2,
34
+ RegEx = 3
35
+ }
36
+ /**
37
+ * Helpers to manage the "collapsed" metadata of an entire StackElement stack.
38
+ * The following assumptions have been made:
39
+ * - languageId < 256 => needs 8 bits
40
+ * - unique color count < 512 => needs 9 bits
41
+ *
42
+ * The binary format is:
43
+ * - -------------------------------------------
44
+ * 3322 2222 2222 1111 1111 1100 0000 0000
45
+ * 1098 7654 3210 9876 5432 1098 7654 3210
46
+ * - -------------------------------------------
47
+ * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
48
+ * bbbb bbbb ffff ffff fFFF FBTT LLLL LLLL
49
+ * - -------------------------------------------
50
+ * - L = LanguageId (8 bits)
51
+ * - T = StandardTokenType (2 bits)
52
+ * - B = Balanced bracket (1 bit)
53
+ * - F = FontStyle (4 bits)
54
+ * - f = foreground color (9 bits)
55
+ * - b = background color (9 bits)
56
+ *
57
+ */
58
+ export declare const enum MetadataConsts {
59
+ LANGUAGEID_MASK = 255,
60
+ TOKEN_TYPE_MASK = 768,
61
+ BALANCED_BRACKETS_MASK = 1024,
62
+ FONT_STYLE_MASK = 30720,
63
+ FOREGROUND_MASK = 16744448,
64
+ BACKGROUND_MASK = 4278190080,
65
+ ITALIC_MASK = 2048,
66
+ BOLD_MASK = 4096,
67
+ UNDERLINE_MASK = 8192,
68
+ STRIKETHROUGH_MASK = 16384,
69
+ SEMANTIC_USE_ITALIC = 1,
70
+ SEMANTIC_USE_BOLD = 2,
71
+ SEMANTIC_USE_UNDERLINE = 4,
72
+ SEMANTIC_USE_STRIKETHROUGH = 8,
73
+ SEMANTIC_USE_FOREGROUND = 16,
74
+ SEMANTIC_USE_BACKGROUND = 32,
75
+ LANGUAGEID_OFFSET = 0,
76
+ TOKEN_TYPE_OFFSET = 8,
77
+ BALANCED_BRACKETS_OFFSET = 10,
78
+ FONT_STYLE_OFFSET = 11,
79
+ FOREGROUND_OFFSET = 15,
80
+ BACKGROUND_OFFSET = 24
81
+ }
82
+ export declare class TokenMetadata {
83
+ static getLanguageId(metadata: number): LanguageId;
84
+ static getTokenType(metadata: number): StandardTokenType;
85
+ static containsBalancedBrackets(metadata: number): boolean;
86
+ static getFontStyle(metadata: number): FontStyle;
87
+ static getForeground(metadata: number): ColorId;
88
+ static getBackground(metadata: number): ColorId;
89
+ static getClassNameFromMetadata(metadata: number): string;
90
+ static getInlineStyleFromMetadata(metadata: number, colorMap: string[]): string;
91
+ static getPresentationFromMetadata(metadata: number): ITokenPresentation;
92
+ }
93
+ export interface ITokenPresentation {
94
+ foreground: ColorId;
95
+ italic: boolean;
96
+ bold: boolean;
97
+ underline: boolean;
98
+ strikethrough: boolean;
99
+ }
100
+ export interface IDecodedMetadata {
101
+ languageId: string | undefined;
102
+ tokenType: StandardTokenType;
103
+ bold: boolean | undefined;
104
+ italic: boolean | undefined;
105
+ underline: boolean | undefined;
106
+ strikethrough: boolean | undefined;
107
+ foreground: string | undefined;
108
+ background: string | undefined;
109
+ }
@@ -1,20 +1,11 @@
1
1
  import { editor as MonacoEditor, Position, Range } from 'monaco-editor';
2
2
  import { SemanticTokens, SemanticTokensLegend } from 'vscode/vscode/vs/editor/common/languages';
3
+ import { IDecodedMetadata } from './encodedTokenAttributes';
3
4
 
4
5
  type SemanticTokensResult = {
5
6
  tokens: SemanticTokens;
6
7
  legend: SemanticTokensLegend;
7
8
  };
8
- interface IDecodedMetadata {
9
- languageId: string | undefined;
10
- tokenType: StandardTokenType;
11
- bold: boolean | undefined;
12
- italic: boolean | undefined;
13
- underline: boolean | undefined;
14
- strikethrough: boolean | undefined;
15
- foreground: string | undefined;
16
- background: string | undefined;
17
- }
18
9
  export interface ISemanticTokenInfo {
19
10
  type: string;
20
11
  modifiers: string[];
@@ -22,11 +13,5 @@ export interface ISemanticTokenInfo {
22
13
  metadata?: IDecodedMetadata;
23
14
  definitions: any;
24
15
  }
25
- declare const enum StandardTokenType {
26
- Other = 0,
27
- Comment = 1,
28
- String = 2,
29
- RegEx = 3
30
- }
31
16
  export declare function getSemanticTokenAtPosition(model: MonacoEditor.ITextModel, themeService: any, semanticTokens: SemanticTokensResult, pos: Position): ISemanticTokenInfo | null;
32
17
  export {};
@@ -0,0 +1,9 @@
1
+ import { editor as MonacoEditor, Position } from 'monaco-editor';
2
+ import { IToken } from 'vscode-textmate';
3
+ import { IDecodedMetadata } from './encodedTokenAttributes';
4
+
5
+ export interface ITextMateTokenInfo {
6
+ token: IToken;
7
+ metadata: IDecodedMetadata;
8
+ }
9
+ export declare function getTextmateTokenAtPosition(model: MonacoEditor.ITextModel, themeService: any, position: Position): ITextMateTokenInfo;
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var pe=Object.defineProperty;var be=(t,n,e)=>n in t?pe(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var K=(t,n,e)=>(be(t,typeof n!="symbol"?n+"":n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react/jsx-runtime"),b=require("react"),H=require("@monaco-editor/react"),Z=require("@ws-ui/shared"),he=require("monaco-languageclient"),te=require("monaco-languageclient/vscode/services"),ie=require("@codingame/monaco-vscode-configuration-service-override"),ve=require("@codingame/monaco-vscode-languages-service-override"),ye=require("@codingame/monaco-vscode-textmate-service-override");require("@codingame/monaco-vscode-theme-defaults-default-extension");const Se=require("@codingame/monaco-vscode-editor-service-override"),xe=require("@codingame/monaco-vscode-theme-service-override"),R=require("monaco-editor"),Ne=require("monaco-languageclient/tools"),U=require("vscode-languageclient"),$=require("vscode-ws-jsonrpc"),T=require("vscode-languageserver-protocol"),Q=require("vscode/services"),q=require("vscode/monaco");require("@codingame/monaco-vscode-standalone-languages");require("@codingame/monaco-vscode-standalone-html-language-features");require("@codingame/monaco-vscode-standalone-css-language-features");require("@codingame/monaco-vscode-standalone-json-language-features");require("@codingame/monaco-vscode-standalone-typescript-language-features");require("@codingame/monaco-vscode-css-default-extension");require("@codingame/monaco-vscode-json-default-extension");require("@codingame/monaco-vscode-html-default-extension");require("@codingame/monaco-vscode-javascript-default-extension");const we=require("vscode/extensions");function Re(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,i.get?i:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const r=Re(R),Le=()=>ie(),je=()=>Se(()=>Promise.resolve(void 0)),We=()=>{const t=xe(),n=t.themeService.ctor.prototype;return n.defineTheme=()=>{},t},Fe=`{
1
+ "use strict";var Ne=Object.defineProperty;var Re=(n,e,t)=>e in n?Ne(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var F=(n,e,t)=>(Re(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react/jsx-runtime"),h=require("react"),_=require("@monaco-editor/react"),K=require("@ws-ui/shared"),we=require("monaco-languageclient"),re=require("monaco-languageclient/vscode/services"),se=require("@codingame/monaco-vscode-configuration-service-override"),Le=require("@codingame/monaco-vscode-languages-service-override"),ke=require("@codingame/monaco-vscode-textmate-service-override");require("@codingame/monaco-vscode-theme-defaults-default-extension");const je=require("@codingame/monaco-vscode-editor-service-override"),We=require("@codingame/monaco-vscode-theme-service-override"),L=require("monaco-editor"),Fe=require("monaco-languageclient/tools"),te=require("vscode-languageclient"),$=require("vscode-ws-jsonrpc"),B=require("vscode-languageserver-protocol"),ne=require("vscode/services"),H=require("vscode/monaco");require("@codingame/monaco-vscode-standalone-languages");require("@codingame/monaco-vscode-standalone-html-language-features");require("@codingame/monaco-vscode-standalone-css-language-features");require("@codingame/monaco-vscode-standalone-json-language-features");require("@codingame/monaco-vscode-standalone-typescript-language-features");require("@codingame/monaco-vscode-css-default-extension");require("@codingame/monaco-vscode-json-default-extension");require("@codingame/monaco-vscode-html-default-extension");require("@codingame/monaco-vscode-javascript-default-extension");const Ke=require("vscode/extensions");function Ze(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const s=Ze(L),Ee=()=>se(),Xe=()=>je(()=>Promise.resolve(void 0)),Be=()=>{const n=We(),e=n.themeService.ctor.prototype;return e.defineTheme=()=>{},n},Oe=`{
2
2
  "workbench.colorTheme": "Default Dark+",
3
3
  "workbench.iconTheme": "vs-seti",
4
4
  "editor.autoClosingBrackets": "languageDefined",
@@ -83,27 +83,27 @@
83
83
  }
84
84
  }
85
85
  }
86
- `,oe=()=>ie.initUserConfiguration(Fe),re=async t=>{var o;const n=t.serviceConfig??{};n.debugLogging=((o=t.logger)==null?void 0:o.isEnabled())===!0&&(n.debugLogging===!0||t.logger.isDebugEnabled()===!0),await oe(),n.userServices=n.userServices??{};const e=n.userServices.configurationService??void 0,i=n.workspaceConfig??void 0;if(e===void 0){if(i)throw new Error("You provided a workspaceConfig without using the configurationServiceOverride");const u={...Le(),...We(),...ye(),...ve(),...je()};te.mergeServices(u,n.userServices)}return i||(n.workspaceConfig={workspaceProvider:{trusted:!0,workspace:{workspaceUri:r.Uri.file("/workspace")},async open(){return!1}}}),n};class Ke extends $.WebSocketMessageReader{constructor(e,i){super(e);K(this,"onMessage");this.onMessage=i}readMessage(e){this.onMessage&&this.onMessage();const[,i]=e.split(`\r
86
+ `,ae=()=>se.initUserConfiguration(Oe),le=async n=>{var o;const e=n.serviceConfig??{};e.debugLogging=((o=n.logger)==null?void 0:o.isEnabled())===!0&&(e.debugLogging===!0||n.logger.isDebugEnabled()===!0),await ae(),e.userServices=e.userServices??{};const t=e.userServices.configurationService??void 0,i=e.workspaceConfig??void 0;if(t===void 0){if(i)throw new Error("You provided a workspaceConfig without using the configurationServiceOverride");const a={...Ee(),...Be(),...ke(),...Le(),...Xe()};re.mergeServices(a,e.userServices)}return i||(e.workspaceConfig={workspaceProvider:{trusted:!0,workspace:{workspaceUri:s.Uri.file("/workspace")},async open(){return!1}}}),e};class Te extends $.WebSocketMessageReader{constructor(t,i){super(t);F(this,"onMessage");this.onMessage=i}readMessage(t){this.onMessage&&this.onMessage();const[,i]=t.split(`\r
87
87
  \r
88
- `);if(this.state==="initial")this.events.splice(0,0,{message:i});else if(this.state==="listening"){const o=JSON.parse(i);this.callback(o)}}}class Ze extends $.WebSocketMessageWriter{constructor(e,i){super(e);K(this,"onSend");this.onSend=i}async write(e){try{const i=JSON.stringify(e);this.socket.send(i),this.onSend&&this.onSend()}catch(i){this.errorCount++,this.fireError(i,e,this.errorCount)}}}function X(t,n=!0){const e=`/PACKAGE/Project/Sources/${t}`;return n?`file://${e}`:e}function z(t,n=0){setTimeout(t,n)}function se(t,n){const e=new R.Selection(n.startLineNumber,n.startColumn,n.endLineNumber||n.startLineNumber,n.endColumn||n.startColumn);z(()=>{t.setSelection(e),t.revealRangeInCenter(e),t.focus()})}function le(t,n,e=0){e>0&&(n=e+n),z(()=>{t.setPosition({lineNumber:n,column:1}),t.revealLineInCenter(n),t.focus()})}function ke(t,n,e){const o=t.getModel();if(o&&n){const u=o.getLineCount();for(let a=1;a<=u;a++){const m=o.getLineContent(a);if(new RegExp(`(?:Function|function) ${e}`).test(m))return a}}return 0}const Ee={provideCompletionItems:async(t,n)=>{const e=t.getWordUntilPosition(n);return{suggestions:[{label:"var",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["var ${1:var_name} : ${2:var_type}"].join(`
89
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"While",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["While(${1:expression})"," ${2:body}","End while"].join(`
90
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"Case of",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["Case of"," :(${1:boolean_expression})"," ${2:body}","End case"].join(`
91
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"Else",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["Else"," "].join(`
92
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"If",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["If (${1:expression})"," ${5:body}","End if"].join(`
93
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"For",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["For(${1:counter};${2:start};${3:end}${4:;increment})"," ${5:body}","End for"].join(`
94
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"Function",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["Function ${1:function_name}(${2:params}) -> ${3:var_name} : ${4:var_type}"," ${5:body}"].join(`
95
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},Xe={provideCompletionItems:async(t,n)=>{const e=t.getWordUntilPosition(n);return{suggestions:[{label:"var",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["var ${1:var_name} : ${2:var_type}"].join(`
96
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"while",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["while(${1:expression})"," ${2:body}","end"].join(`
97
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"switch",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["switch"," :(${1:boolean_expression})"," ${2:body}","end"].join(`
98
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"else",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["else"," "].join(`
99
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"if",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["if (${1:expression})"," ${5:body}","end"].join(`
100
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"for",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["for(${1:counter},${2:start},${3:end}${4:,increment})"," ${5:body}","end"].join(`
101
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"function",kind:r.languages.CompletionItemKind.Snippet,range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["function ${1:function_name}(${2:params}) -> ${3:var_name} : ${4:var_type}"," ${5:body}"].join(`
102
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},Te=[{keybinding:R.KeyMod.CtrlCmd|R.KeyCode.NumpadAdd,command:"editor.action.fontZoomIn"},{keybinding:R.KeyMod.CtrlCmd|R.KeyCode.Equal,command:"editor.action.fontZoomIn"},{keybinding:R.KeyMod.CtrlCmd|R.KeyCode.NumpadSubtract,command:"editor.action.fontZoomOut"},{keybinding:R.KeyMod.CtrlCmd|R.KeyCode.Minus,command:"editor.action.fontZoomOut"},{keybinding:R.KeyMod.CtrlCmd|R.KeyCode.Numpad0,command:"editor.action.fontZoomReset"},{keybinding:R.KeyMod.CtrlCmd|R.KeyCode.Digit0,command:"editor.action.fontZoomReset"}],Oe=({defaultZoom:t})=>(b.useEffect(()=>{t!==void 0&&R.editor.EditorZoom.setZoomLevel(t)},[]),null);({}).VITE_DISABLE_MONACO_LOADER||H.loader.config({monaco:r});function Be(t,n,e,i){const o=e.tokens.data,u=t.getLanguageId();let a=0,m=0;const p=i.lineNumber-1,x=i.column-1;for(let L=0;L<o.length;L+=5){const N=o[L],A=o[L+1],y=o[L+2],w=o[L+3],v=o[L+4],S=a+N,C=N===0?m+A:A;if(p===S&&C<=x&&x<C+y){const I=e.legend.tokenTypes[w]||"not in legend (ignored)",k=[];let s=v;for(let J=0;s>0&&J<e.legend.tokenModifiers.length;J++)s&1&&k.push(e.legend.tokenModifiers[J]),s=s>>1;s>0&&k.push("not in legend (ignored)");const l=new R.Range(S+1,C+1,S+1,C+1+y),j={},W=n.getColorTheme().tokenColorMap,f=n.getColorTheme().getTokenStyleMetadata(I,k,u,!0,j);let M;return f&&(M={languageId:void 0,tokenType:0,bold:f==null?void 0:f.bold,italic:f==null?void 0:f.italic,underline:f==null?void 0:f.underline,strikethrough:f==null?void 0:f.strikethrough,foreground:W[(f==null?void 0:f.foreground)||0],background:void 0}),{type:I,modifiers:k,range:l,metadata:M,definitions:j}}a=S,m=C}return null}const ae=b.createContext(void 0),Ge=({children:t,url:n,qodly:e,defaultZoom:i,openHandler:o,language:u="4d",defaultInited:a=!1})=>{const m=H.useMonaco(),[p,x]=b.useState(a),[L,N]=b.useState(null),A=b.useRef(),y=b.useRef(0);b.useEffect(()=>{n&&m&&w()},[n,m]);const w=async()=>{if(!m)return;const d=new Ne.Logger({enabled:process.env.NODE_ENV==="development",debugEnabled:process.env.NODE_ENV==="development"}),g=await re({logger:d});await te.initServices({caller:"Qodly Code Editor",logger:d,serviceConfig:g}),o&&Q.StandaloneServices.get(Q.ICodeEditorService).registerCodeEditorOpenHandler(o),m.languages.registerCompletionItemProvider(u,e?Xe:Ee);const c=q.KeybindingsRegistry.getDefaultKeybindings.bind(q.KeybindingsRegistry);q.KeybindingsRegistry.getDefaultKeybindings=()=>c().filter(E=>!["workbench.action.files.saveAs","workbench.action.files.save"].includes(E.command)),R.editor.addKeybindingRules(Te),v()},v=()=>{N(null);let d;try{d=new WebSocket(localStorage.LSP_SERVER||n)}catch{N(new Event("INVALID_URL"));return}d.onopen=S,d.onclose=C,d.onerror=I,y.current=0},S=async function(){const d=$.toSocket(this),g=new Ke(d),c=new Ze(d),F=new he.MonacoLanguageClient({name:"4D Language Client",clientOptions:{workspaceFolder:{uri:R.Uri.parse("file:///PACKAGE")},documentSelector:[{scheme:"file",language:u}],errorHandler:{error:()=>({action:U.ErrorAction.Continue}),closed:()=>({action:U.CloseAction.DoNotRestart})}},connectionProvider:{get:()=>Promise.resolve({reader:g,writer:c})}});A.current=F;const E=F.sendRequest.bind(F);A.current.sendRequest=function(G,D,Y){return typeof G=="object"&&G.method==="textDocument/diagnostic"&&/file:\/\/\/PACKAGE\/Project\/Sources\/Methods\/__Debugger_.*/.test(D.textDocument.uri)?Promise.resolve():E(G,D,Y)},g.onClose(()=>{F.stop(),y.current<3?setTimeout(()=>{y.current++,v()},1e3):N(new Event("WEBSOCKET_CLOSED"))}),F.needsStart()&&await F.start(),x(!0)},C=()=>{},I=d=>{N(d)};b.useEffect(()=>{const d=Z.lspSubject.subscribe(({action:g,payload:c})=>{switch(g){case Z.LspActions.WILL_SAVE:W(c.filePath);break;case Z.LspActions.DID_SAVE:B(c.filePath,c.content);break;case Z.LspActions.WILL_CREATE:f(c.filePath);break;case Z.LspActions.DID_CREATE:me(c.filePath);break;case Z.LspActions.WILL_RENAME:M(c.oldPath,c.newPath);break;case Z.LspActions.DID_RENAME:fe(c.oldPath,c.newPath);break;case Z.LspActions.WILL_DELETE:J(c.filePath);break;case Z.LspActions.DID_DELETE:Ae(c.filePath);break;case Z.LspActions.DIAGNOSTIC_REFRESH:j(c.filePath);break}});return()=>d.unsubscribe()},[]);const k=d=>{var g,c;return(c=(g=A.current)==null?void 0:g._features)==null?void 0:c.find(F=>{var E;return((E=F._registrationType)==null?void 0:E.method)===d})},s=d=>{const g=[],c=k(d);if(c)for(const[F,E]of c._registrations)E.provider&&g.push(E.provider);return g},l=async(d,g,c)=>{var E,G,D;const F=s(T.SemanticTokensRegistrationType.method);if(F[0]){const Y=new R.CancellationTokenSource,_=await Promise.resolve(F[0].full.provideDocumentSemanticTokens(g,Y.token));return _&&Be(g,d._themeService,{tokens:_,legend:(D=(G=(E=A.current)==null?void 0:E._capabilities)==null?void 0:G.semanticTokensProvider)==null?void 0:D.legend},c)}return null},j=d=>{if(A.current){const g=s(T.DocumentDiagnosticRequest.method);for(const c of g)c.onDidChangeDiagnosticsEmitter.fire()}},W=(d,g=T.TextDocumentSaveReason.Manual)=>{var c;(c=A.current)==null||c.sendNotification(T.WillSaveTextDocumentNotification.type,{textDocument:{uri:X(d)},reason:g})},B=(d,g)=>{var c;(c=A.current)==null||c.sendNotification(T.DidSaveTextDocumentNotification.type,{textDocument:{uri:X(d)},text:g})},f=d=>{var g;(g=A.current)==null||g.sendRequest(T.WillCreateFilesRequest.type,{files:[{uri:X(d)}]})},M=(d,g)=>{var c;(c=A.current)==null||c.sendRequest(T.WillRenameFilesRequest.type,{files:[{oldUri:X(d),newUri:X(g)}]})},J=d=>{var g;(g=A.current)==null||g.sendRequest(T.WillDeleteFilesRequest.type,{files:[{uri:X(d)}]})},me=d=>{var g;(g=A.current)==null||g.sendNotification(T.DidCreateFilesNotification.type,{files:[{uri:X(d)}]})},fe=(d,g)=>{var c;(c=A.current)==null||c.sendNotification(T.DidRenameFilesNotification.type,{files:[{oldUri:X(d),newUri:X(g)}]})},Ae=d=>{var g;(g=A.current)==null||g.sendNotification(T.DidDeleteFilesNotification.type,{files:[{uri:X(d)}]})};return h.jsxs(ae.Provider,{value:{inited:p||!!L,clientRef:A,lastError:L,reload:v,getTokenAtPosition:l},children:[t,h.jsx(Oe,{defaultZoom:i})]})};function Je(){const t=b.useContext(ae);if(t===void 0)throw new Error("useLSP must be used within an LSPContext");return t}const ge=b.createContext(void 0),De=b.memo(({children:t})=>{const[n,e]=b.useState(null);return h.jsx(ge.Provider,{value:{editor:n,setEditor:e},children:t})});function ce(){const t=b.useContext(ge),n=b.useState(null);if(t===void 0){const[e,i]=n;return{editor:e,setEditor:i}}return t}var ue={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},ee=b.createContext&&b.createContext(ue),O=globalThis&&globalThis.__assign||function(){return O=Object.assign||function(t){for(var n,e=1,i=arguments.length;e<i;e++){n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},O.apply(this,arguments)},Pe=globalThis&&globalThis.__rest||function(t,n){var e={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&n.indexOf(i)<0&&(e[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(t);o<i.length;o++)n.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(t,i[o])&&(e[i[o]]=t[i[o]]);return e};function de(t){return t&&t.map(function(n,e){return b.createElement(n.tag,O({key:e},n.attr),de(n.child))})}function Ie(t){return function(n){return b.createElement(Me,O({attr:O({},t.attr)},n),de(t.child))}}function Me(t){var n=function(e){var i=t.attr,o=t.size,u=t.title,a=Pe(t,["attr","size","title"]),m=o||e.size||"1em",p;return e.className&&(p=e.className),t.className&&(p=(p?p+" ":"")+t.className),b.createElement("svg",O({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},e.attr,i,a,{className:p,style:O(O({color:t.color||e.color},e.style),t.style),height:m,width:m,xmlns:"http://www.w3.org/2000/svg"}),u&&b.createElement("title",null,u),t.children)};return ee!==void 0?b.createElement(ee.Consumer,null,function(e){return n(e)}):n(ue)}function Ve(t){return Ie({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}}]})(t)}function Ye(t){return Ie({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0080 446.25h340.89a32 32 0 0028.18-47.17zm-198.6-1.83a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.95a21.73 21.73 0 0121.5-22.69h.21a21.74 21.74 0 0121.73 22.7z"}}]})(t)}const Ce=({lspProps:{lastError:t,reload:n}})=>{const[e,i]=b.useState(!1),o=()=>{n()},u=()=>{i(!1)};return b.useEffect(()=>{i(!!t)},[t]),e?h.jsxs("div",{className:"flex items-center border-b border-fd-gray-darker bg-grey-800 px-2 py-1.5 text-xs text-grey-50",children:[h.jsxs("span",{className:"flex flex-1 justify-center gap-1",children:[h.jsx(Ye,{className:"h-4 w-4 text-yellow-600"}),h.jsxs("span",{children:["LSP not loaded."," ",h.jsx("button",{className:"text-primary-dark underline",onClick:o,children:"Reload?"})]})]}),h.jsx("button",{className:"focus:outline-none",children:h.jsx(Ve,{className:"h-4 w-4 text-white",onClick:u})})]}):null},qe={provideCompletionItems:(t,n)=>{const e=t.getWordUntilPosition(n);return{suggestions:[{label:"device:xs",kind:r.languages.CompletionItemKind.Snippet,documentation:"Media query for phone device",range:new r.Range(n.lineNumber,e.startColumn,n.lineNumber,e.endColumn),insertText:["@media screen and (max-width: ${1:365px}) {"," self {"," ${2:background-color}:${3:red};"," }","}"].join(`
103
- `),insertTextRules:r.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},He="#/definitions/Condition",$e={Base:{type:"object",properties:{id:{type:"string"},name:{type:"string"}},required:["id"]},Condition:{oneOf:[{$ref:"#/definitions/Datasource"},{$ref:"#/definitions/Privilege"},{$ref:"#/definitions/Combination"},{$ref:"#/definitions/CurrentState"},{$ref:"#/definitions/ParentState"},{$ref:"#/definitions/Reference"}]},Datasource:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"datasource"},path:{type:"string"},value:{type:["number","string","boolean","object","array","null"]},valueType:{enum:["datasource","hardCoded"]},dataType:{enum:["string","number","date","boolean","array","object"]},op:{enum:["eq","neq","regex","in","nin","gt","gte","lt","lte"]}},required:["name","type","path","value","op"]},Privilege:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"privilege"},value:{type:"string"},valueType:{enum:["datasource","hardCoded"]},op:{enum:["eq","neq","regex"]}},required:["name","type","value","op"]},Combination:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"combination"},op:{enum:["and","or"]},conditions:{type:"array",items:{$ref:"#/definitions/Condition"}}},required:["type","conditions","op"]},CurrentState:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"currentState"},value:{type:"string"},valueType:{enum:["datasource","hardCoded"]},dataType:{enum:["string","number","date","boolean","array","object"]},op:{enum:["eq","neq","regex"]}},required:["name","type","value","op"]},ParentState:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"parentState"},value:{type:"string"},valueType:{enum:["datasource","hardCoded"]},dataType:{enum:["string","number","date","boolean","array","object"]},op:{enum:["eq","neq","regex"]}},required:["name","type","value","op"]},Reference:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"reference"},ref:{type:"string"}},required:["type","ref"]}},ze={$ref:He,definitions:$e};function _e(t,n){const e=document.createElement("style");e.dataset.id=n,e.textContent=t,document.head.append(e)}function Ue(t){return Array.from(document.styleSheets).find(n=>n.ownerNode.getAttribute("data-id")===t)}function Qe(t,n){const e=[];let i=[];const o=[],u=(s,l,j,W)=>{e.push({startLineNumber:s,endLineNumber:j,startColumn:l,endColumn:W}),x(),p()},a=s=>{o.indexOf(s)<0&&o.push(s)},m=s=>{const l=o.indexOf(s);l<0||o.splice(l,1)},p=()=>{for(const s of o)try{s(i)}catch(l){console.error(l)}},x=()=>{const s=t.getModel();s&&(i=nn(e.map(l=>[s.getOffsetAt({lineNumber:l.startLineNumber,column:l.startColumn}),s.getOffsetAt({lineNumber:l.endLineNumber,column:l.endColumn})]),!0),i.length>0&&(i[0][0]<=0&&(i[0][0]=Number.NEGATIVE_INFINITY),i[i.length-1][1]>=s.getValueLength()&&(i[i.length-1][1]=Number.POSITIVE_INFINITY)))},L=s=>{const l={isDeletion:!1,isAddition:!1,isReplacement:!1};return s.text===""?l.isDeletion=!0:s.range.startLineNumber===s.range.endLineNumber&&s.range.startColumn===s.range.endColumn?l.isAddition=!0:l.isReplacement=!0,l},N=t.onDidChangeModel(s=>{x(),I()}),A=t.onDidChangeModelContent(s=>{if(!s.isUndoing)for(const l of s.changes){const j=L(l);if(j.isReplacement||j.isDeletion||j.isAddition){const W=e.some(f=>l.range.startLineNumber>=f.startLineNumber&&l.range.endLineNumber<=f.endLineNumber&&l.range.startColumn>=f.startColumn&&l.range.endColumn<=f.endColumn),B=!W&&n&&l.range.startLineNumber===1&&l.range.startColumn===1&&!Z.hasAttributesString(l.text);if(W||B){const f=t.getModel();if(f){f.undo();return}}}}}),y=()=>{N.dispose(),A.dispose()};let w=[],v=`
88
+ `);if(this.state==="initial")this.events.splice(0,0,{message:i});else if(this.state==="listening"){const o=JSON.parse(i);this.callback(o)}}}class Ge extends $.WebSocketMessageWriter{constructor(t,i){super(t);F(this,"onSend");this.onSend=i}async write(t){try{const i=JSON.stringify(t);this.socket.send(i),this.onSend&&this.onSend()}catch(i){this.errorCount++,this.fireError(i,t,this.errorCount)}}}function X(n,e=!0){const t=`/PACKAGE/Project/Sources/${n}`;return e?`file://${t}`:t}function U(n,e=0){setTimeout(n,e)}function ge(n,e){const t=new L.Selection(e.startLineNumber,e.startColumn,e.endLineNumber||e.startLineNumber,e.endColumn||e.startColumn);U(()=>{n.setSelection(t),n.revealRangeInCenter(t),n.focus()})}function ce(n,e,t=0){t>0&&(e=t+e),U(()=>{n.setPosition({lineNumber:e,column:1}),n.revealLineInCenter(e),n.focus()})}function De(n,e,t){const o=n.getModel();if(o&&e){const a=o.getLineCount();for(let r=1;r<=a;r++){const I=o.getLineContent(r);if(new RegExp(`(?:Function|function) ${t}`).test(I))return r}}return 0}const Je={provideCompletionItems:async(n,e)=>{const t=n.getWordUntilPosition(e);return{suggestions:[{label:"var",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["var ${1:var_name} : ${2:var_type}"].join(`
89
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"While",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["While(${1:expression})"," ${2:body}","End while"].join(`
90
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"Case of",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["Case of"," :(${1:boolean_expression})"," ${2:body}","End case"].join(`
91
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"Else",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["Else"," "].join(`
92
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"If",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["If (${1:expression})"," ${5:body}","End if"].join(`
93
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"For",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["For(${1:counter};${2:start};${3:end}${4:;increment})"," ${5:body}","End for"].join(`
94
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"Function",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["Function ${1:function_name}(${2:params}) -> ${3:var_name} : ${4:var_type}"," ${5:body}"].join(`
95
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},Me={provideCompletionItems:async(n,e)=>{const t=n.getWordUntilPosition(e);return{suggestions:[{label:"var",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["var ${1:var_name} : ${2:var_type}"].join(`
96
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"while",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["while(${1:expression})"," ${2:body}","end"].join(`
97
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"switch",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["switch"," :(${1:boolean_expression})"," ${2:body}","end"].join(`
98
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"else",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["else"," "].join(`
99
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"if",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["if (${1:expression})"," ${5:body}","end"].join(`
100
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"for",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["for(${1:counter},${2:start},${3:end}${4:,increment})"," ${5:body}","end"].join(`
101
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"function",kind:s.languages.CompletionItemKind.Snippet,range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["function ${1:function_name}(${2:params}) -> ${3:var_name} : ${4:var_type}"," ${5:body}"].join(`
102
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},Pe=[{keybinding:L.KeyMod.CtrlCmd|L.KeyCode.NumpadAdd,command:"editor.action.fontZoomIn"},{keybinding:L.KeyMod.CtrlCmd|L.KeyCode.Equal,command:"editor.action.fontZoomIn"},{keybinding:L.KeyMod.CtrlCmd|L.KeyCode.NumpadSubtract,command:"editor.action.fontZoomOut"},{keybinding:L.KeyMod.CtrlCmd|L.KeyCode.Minus,command:"editor.action.fontZoomOut"},{keybinding:L.KeyMod.CtrlCmd|L.KeyCode.Numpad0,command:"editor.action.fontZoomReset"},{keybinding:L.KeyMod.CtrlCmd|L.KeyCode.Digit0,command:"editor.action.fontZoomReset"}],Ve=({defaultZoom:n})=>(h.useEffect(()=>{n!==void 0&&L.editor.EditorZoom.setZoomLevel(n)},[]),null);({}).VITE_DISABLE_MONACO_LOADER||_.loader.config({monaco:s});var V=(n=>(n[n.NotSet=-1]="NotSet",n[n.None=0]="None",n[n.Italic=1]="Italic",n[n.Bold=2]="Bold",n[n.Underline=4]="Underline",n[n.Strikethrough=8]="Strikethrough",n))(V||{}),ue=(n=>(n[n.None=0]="None",n[n.DefaultForeground=1]="DefaultForeground",n[n.DefaultBackground=2]="DefaultBackground",n))(ue||{}),de=(n=>(n[n.Other=0]="Other",n[n.Comment=1]="Comment",n[n.String=2]="String",n[n.RegEx=3]="RegEx",n))(de||{});class M{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i="mtk"+this.getForeground(e);const o=this.getFontStyle(e);return o&1&&(i+=" mtki"),o&2&&(i+=" mtkb"),o&4&&(i+=" mtku"),o&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),o=this.getFontStyle(e);let a=`color: ${t[i]};`;o&1&&(a+="font-style: italic;"),o&2&&(a+="font-weight: bold;");let r="";return o&4&&(r+=" underline"),o&8&&(r+=" line-through"),r&&(a+=`text-decoration:${r};`),a}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}function Ye(n,e,t,i){const o=t.tokens.data,a=n.getLanguageId();let r=0,I=0;const C=i.lineNumber-1,S=i.column-1;for(let x=0;x<o.length;x+=5){const b=o[x],f=o[x+1],N=o[x+2],w=o[x+3],y=o[x+4],R=r+b,A=b===0?I+f:f;if(C===R&&A<=S&&S<A+N){const m=t.legend.tokenTypes[w]||"not in legend (ignored)",Z=[];let l=y;for(let D=0;l>0&&D<t.legend.tokenModifiers.length;D++)l&1&&Z.push(t.legend.tokenModifiers[D]),l=l>>1;l>0&&Z.push("not in legend (ignored)");const g=new L.Range(R+1,A+1,R+1,A+1+N),k={},j=e.getColorTheme().tokenColorMap,p=e.getColorTheme().getTokenStyleMetadata(m,Z,a,!0,k);let Y;return p&&(Y={languageId:void 0,tokenType:de.Other,bold:p==null?void 0:p.bold,italic:p==null?void 0:p.italic,underline:p==null?void 0:p.underline,strikethrough:p==null?void 0:p.strikethrough,foreground:j[(p==null?void 0:p.foreground)||ue.None],background:void 0}),{type:m,modifiers:Z,range:g,metadata:Y,definitions:k}}r=R,I=A}return null}function qe(n,e,t){let i=null;for(let o=1;o<t;o++)i=e.tokenizeLine(n.getLineContent(o),i).ruleStack;return i}function ze(n,e,t){const i=n.getColorTheme().tokenColorMap,o=M.getLanguageId(t),a=M.getTokenType(t),r=M.getFontStyle(t),I=M.getForeground(t),C=M.getBackground(t);return{languageId:e.languageIdCodec.decodeLanguageId(o),tokenType:a,bold:r&V.Bold?!0:void 0,italic:r&V.Italic?!0:void 0,underline:r&V.Underline?!0:void 0,strikethrough:r&V.Strikethrough?!0:void 0,foreground:i[I],background:i[C]}}function He(n,e,t){const i=t.lineNumber,o=n,a=o._tokenizationTextModelPart.grammarTokens._tokenizer.tokenizationSupport._actual._grammar,r=qe(n,a,i),I=a.tokenizeLine(n.getLineContent(i),r),C=a.tokenizeLine2(n.getLineContent(i),r);let S=0;for(let b=I.tokens.length-1;b>=0;b--){const f=I.tokens[b];if(t.column-1>=f.startIndex){S=b;break}}let x=0;for(let b=C.tokens.length>>>1;b>=0;b--)if(t.column-1>=C.tokens[b<<1]){x=b;break}return{token:I.tokens[S],metadata:ze(e,o._languageService,C.tokens[(x<<1)+1])}}const Ie=h.createContext(void 0),_e=({children:n,url:e,qodly:t,defaultZoom:i,openHandler:o,language:a="4d",defaultInited:r=!1})=>{const I=_.useMonaco(),[C,S]=h.useState(r),[x,b]=h.useState(null),f=h.useRef(),N=h.useRef(0);h.useEffect(()=>{e&&I&&w()},[e,I]);const w=async()=>{if(!I)return;const d=new Fe.Logger({enabled:process.env.NODE_ENV==="development",debugEnabled:process.env.NODE_ENV==="development"}),c=await le({logger:d});await re.initServices({caller:"Qodly Code Editor",logger:d,serviceConfig:c}),o&&ne.StandaloneServices.get(ne.ICodeEditorService).registerCodeEditorOpenHandler(o),I.languages.registerCompletionItemProvider(a,t?Me:Je);const u=H.KeybindingsRegistry.getDefaultKeybindings.bind(H.KeybindingsRegistry);H.KeybindingsRegistry.getDefaultKeybindings=()=>u().filter(E=>!["workbench.action.files.saveAs","workbench.action.files.save"].includes(E.command)),L.editor.addKeybindingRules(Pe),y()},y=()=>{b(null);let d;try{d=new WebSocket(localStorage.LSP_SERVER||e)}catch{b(new Event("INVALID_URL"));return}d.onopen=R,d.onclose=A,d.onerror=m,N.current=0},R=async function(){const d=$.toSocket(this),c=new Te(d),u=new Ge(d),W=new we.MonacoLanguageClient({name:"4D Language Client",clientOptions:{workspaceFolder:{uri:L.Uri.parse("file:///PACKAGE")},documentSelector:[{scheme:"file",language:a}],errorHandler:{error:()=>({action:te.ErrorAction.Continue}),closed:()=>({action:te.CloseAction.DoNotRestart})}},connectionProvider:{get:()=>Promise.resolve({reader:c,writer:u})}});f.current=W;const E=W.sendRequest.bind(W);f.current.sendRequest=function(G,J,z){return typeof G=="object"&&G.method==="textDocument/diagnostic"&&/file:\/\/\/PACKAGE\/Project\/Sources\/Methods\/__Debugger_.*/.test(J.textDocument.uri)?Promise.resolve():E(G,J,z)},c.onClose(()=>{W.stop(),N.current<3?setTimeout(()=>{N.current++,y()},1e3):b(new Event("WEBSOCKET_CLOSED"))}),W.needsStart()&&await W.start(),S(!0)},A=()=>{},m=d=>{b(d)};h.useEffect(()=>{const d=K.lspSubject.subscribe(({action:c,payload:u})=>{switch(c){case K.LspActions.WILL_SAVE:j(u.filePath);break;case K.LspActions.DID_SAVE:T(u.filePath,u.content);break;case K.LspActions.WILL_CREATE:p(u.filePath);break;case K.LspActions.DID_CREATE:he(u.filePath);break;case K.LspActions.WILL_RENAME:Y(u.oldPath,u.newPath);break;case K.LspActions.DID_RENAME:ve(u.oldPath,u.newPath);break;case K.LspActions.WILL_DELETE:D(u.filePath);break;case K.LspActions.DID_DELETE:Se(u.filePath);break;case K.LspActions.DIAGNOSTIC_REFRESH:k(u.filePath);break}});return()=>d.unsubscribe()},[]);const Z=d=>{var c,u;return(u=(c=f.current)==null?void 0:c._features)==null?void 0:u.find(W=>{var E;return((E=W._registrationType)==null?void 0:E.method)===d})},l=d=>{const c=[],u=Z(d);if(u)for(const[W,E]of u._registrations)E.provider&&c.push(E.provider);return c},g=async(d,c,u)=>{var E,G,J;const W=l(B.SemanticTokensRegistrationType.method);if(W[0]){const z=new L.CancellationTokenSource,Q=await Promise.resolve(W[0].full.provideDocumentSemanticTokens(c,z.token)),ee=d,ye=Q?Ye(c,ee._themeService,{tokens:Q,legend:(J=(G=(E=f.current)==null?void 0:E._capabilities)==null?void 0:G.semanticTokensProvider)==null?void 0:J.legend},u):null,xe=He(c,ee._themeService,u);return{semanticTokenInfo:ye,textmateTokenInfo:xe}}return null},k=d=>{if(f.current){const c=l(B.DocumentDiagnosticRequest.method);for(const u of c)u.onDidChangeDiagnosticsEmitter.fire()}},j=(d,c=B.TextDocumentSaveReason.Manual)=>{var u;(u=f.current)==null||u.sendNotification(B.WillSaveTextDocumentNotification.type,{textDocument:{uri:X(d)},reason:c})},T=(d,c)=>{var u;(u=f.current)==null||u.sendNotification(B.DidSaveTextDocumentNotification.type,{textDocument:{uri:X(d)},text:c})},p=d=>{var c;(c=f.current)==null||c.sendRequest(B.WillCreateFilesRequest.type,{files:[{uri:X(d)}]})},Y=(d,c)=>{var u;(u=f.current)==null||u.sendRequest(B.WillRenameFilesRequest.type,{files:[{oldUri:X(d),newUri:X(c)}]})},D=d=>{var c;(c=f.current)==null||c.sendRequest(B.WillDeleteFilesRequest.type,{files:[{uri:X(d)}]})},he=d=>{var c;(c=f.current)==null||c.sendNotification(B.DidCreateFilesNotification.type,{files:[{uri:X(d)}]})},ve=(d,c)=>{var u;(u=f.current)==null||u.sendNotification(B.DidRenameFilesNotification.type,{files:[{oldUri:X(d),newUri:X(c)}]})},Se=d=>{var c;(c=f.current)==null||c.sendNotification(B.DidDeleteFilesNotification.type,{files:[{uri:X(d)}]})};return v.jsxs(Ie.Provider,{value:{inited:C||!!x,clientRef:f,lastError:x,reload:y,getTokenAtPosition:g},children:[n,v.jsx(Ve,{defaultZoom:i})]})};function $e(){const n=h.useContext(Ie);if(n===void 0)throw new Error("useLSP must be used within an LSPContext");return n}const Ce=h.createContext(void 0),Ue=h.memo(({children:n})=>{const[e,t]=h.useState(null);return v.jsx(Ce.Provider,{value:{editor:e,setEditor:t},children:n})});function me(){const n=h.useContext(Ce),e=h.useState(null);if(n===void 0){const[t,i]=e;return{editor:t,setEditor:i}}return n}var fe={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},ie=h.createContext&&h.createContext(fe),O=globalThis&&globalThis.__assign||function(){return O=Object.assign||function(n){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},O.apply(this,arguments)},Qe=globalThis&&globalThis.__rest||function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(n);o<i.length;o++)e.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(n,i[o])&&(t[i[o]]=n[i[o]]);return t};function Ae(n){return n&&n.map(function(e,t){return h.createElement(e.tag,O({key:t},e.attr),Ae(e.child))})}function be(n){return function(e){return h.createElement(et,O({attr:O({},n.attr)},e),Ae(n.child))}}function et(n){var e=function(t){var i=n.attr,o=n.size,a=n.title,r=Qe(n,["attr","size","title"]),I=o||t.size||"1em",C;return t.className&&(C=t.className),n.className&&(C=(C?C+" ":"")+n.className),h.createElement("svg",O({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,i,r,{className:C,style:O(O({color:n.color||t.color},t.style),n.style),height:I,width:I,xmlns:"http://www.w3.org/2000/svg"}),a&&h.createElement("title",null,a),n.children)};return ie!==void 0?h.createElement(ie.Consumer,null,function(t){return e(t)}):e(fe)}function tt(n){return be({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}}]})(n)}function nt(n){return be({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0080 446.25h340.89a32 32 0 0028.18-47.17zm-198.6-1.83a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.95a21.73 21.73 0 0121.5-22.69h.21a21.74 21.74 0 0121.73 22.7z"}}]})(n)}const pe=({lspProps:{lastError:n,reload:e}})=>{const[t,i]=h.useState(!1),o=()=>{e()},a=()=>{i(!1)};return h.useEffect(()=>{i(!!n)},[n]),t?v.jsxs("div",{className:"flex items-center border-b border-fd-gray-darker bg-grey-800 px-2 py-1.5 text-xs text-grey-50",children:[v.jsxs("span",{className:"flex flex-1 justify-center gap-1",children:[v.jsx(nt,{className:"h-4 w-4 text-yellow-600"}),v.jsxs("span",{children:["LSP not loaded."," ",v.jsx("button",{className:"text-primary-dark underline",onClick:o,children:"Reload?"})]})]}),v.jsx("button",{className:"focus:outline-none",children:v.jsx(tt,{className:"h-4 w-4 text-white",onClick:a})})]}):null},it={provideCompletionItems:(n,e)=>{const t=n.getWordUntilPosition(e);return{suggestions:[{label:"device:xs",kind:s.languages.CompletionItemKind.Snippet,documentation:"Media query for phone device",range:new s.Range(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn),insertText:["@media screen and (max-width: ${1:365px}) {"," self {"," ${2:background-color}:${3:red};"," }","}"].join(`
103
+ `),insertTextRules:s.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},ot="#/definitions/Condition",rt={Base:{type:"object",properties:{id:{type:"string"},name:{type:"string"}},required:["id"]},Condition:{oneOf:[{$ref:"#/definitions/Datasource"},{$ref:"#/definitions/Privilege"},{$ref:"#/definitions/Combination"},{$ref:"#/definitions/CurrentState"},{$ref:"#/definitions/ParentState"},{$ref:"#/definitions/Reference"}]},Datasource:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"datasource"},path:{type:"string"},value:{type:["number","string","boolean","object","array","null"]},valueType:{enum:["datasource","hardCoded"]},dataType:{enum:["string","number","date","boolean","array","object"]},op:{enum:["eq","neq","regex","in","nin","gt","gte","lt","lte"]}},required:["name","type","path","value","op"]},Privilege:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"privilege"},value:{type:"string"},valueType:{enum:["datasource","hardCoded"]},op:{enum:["eq","neq","regex"]}},required:["name","type","value","op"]},Combination:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"combination"},op:{enum:["and","or"]},conditions:{type:"array",items:{$ref:"#/definitions/Condition"}}},required:["type","conditions","op"]},CurrentState:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"currentState"},value:{type:"string"},valueType:{enum:["datasource","hardCoded"]},dataType:{enum:["string","number","date","boolean","array","object"]},op:{enum:["eq","neq","regex"]}},required:["name","type","value","op"]},ParentState:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"parentState"},value:{type:"string"},valueType:{enum:["datasource","hardCoded"]},dataType:{enum:["string","number","date","boolean","array","object"]},op:{enum:["eq","neq","regex"]}},required:["name","type","value","op"]},Reference:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"reference"},ref:{type:"string"}},required:["type","ref"]}},st={$ref:ot,definitions:rt};function at(n,e){const t=document.createElement("style");t.dataset.id=e,t.textContent=n,document.head.append(t)}function lt(n){return Array.from(document.styleSheets).find(e=>e.ownerNode.getAttribute("data-id")===n)}function gt(n,e){const t=[];let i=[];const o=[],a=(l,g,k,j)=>{t.push({startLineNumber:l,endLineNumber:k,startColumn:g,endColumn:j}),S(),C()},r=l=>{o.indexOf(l)<0&&o.push(l)},I=l=>{const g=o.indexOf(l);g<0||o.splice(g,1)},C=()=>{for(const l of o)try{l(i)}catch(g){console.error(g)}},S=()=>{const l=n.getModel();l&&(i=ut(t.map(g=>[l.getOffsetAt({lineNumber:g.startLineNumber,column:g.startColumn}),l.getOffsetAt({lineNumber:g.endLineNumber,column:g.endColumn})]),!0),i.length>0&&(i[0][0]<=0&&(i[0][0]=Number.NEGATIVE_INFINITY),i[i.length-1][1]>=l.getValueLength()&&(i[i.length-1][1]=Number.POSITIVE_INFINITY)))},x=l=>{const g={isDeletion:!1,isAddition:!1,isReplacement:!1};return l.text===""?g.isDeletion=!0:l.range.startLineNumber===l.range.endLineNumber&&l.range.startColumn===l.range.endColumn?g.isAddition=!0:g.isReplacement=!0,g},b=n.onDidChangeModel(l=>{S(),m()}),f=n.onDidChangeModelContent(l=>{if(!l.isUndoing)for(const g of l.changes){const k=x(g);if(k.isReplacement||k.isDeletion||k.isAddition){const j=t.some(p=>g.range.startLineNumber>=p.startLineNumber&&g.range.endLineNumber<=p.endLineNumber&&g.range.startColumn>=p.startColumn&&g.range.endColumn<=p.endColumn),T=!j&&e&&g.range.startLineNumber===1&&g.range.startColumn===1&&!K.hasAttributesString(g.text);if(j||T){const p=n.getModel();if(p){p.undo();return}}}}}),N=()=>{b.dispose(),f.dispose()};let w=[],y=`
104
104
  .idoc-readonly-mark {
105
105
  cursor: not-allowed;
106
106
  z-index: 1;
107
107
  }
108
- `;if(v){const s="monaco-read-only";Ue(s)||_e(v,s),v=null}const S=()=>{a(I),I()},C=()=>{m(I),w=t.deltaDecorations(w,[])},I=()=>{const s=t.getModel();s&&(w=t.deltaDecorations(w,i.map(k(s))))},k=s=>l=>{const j=s.getPositionAt(l[0]),W=s.getPositionAt(l[1]);return{range:new r.Range(j.lineNumber,j.column,W.lineNumber,W.column),options:{className:"idoc-readonly-mark"}}};return{get buffer(){return i},exclude:u,attach:a,detach:m,dispose:y,show:S,hide:C}}function en(t,n,e){let i=!1;const o=C=>C[1]<C[0]?(i=!0,[[C[1],C[0]]]):[[...C]],u=C=>i?C.map(I=>I[1]>I[0]?m(I):I).reverse():C;let a;const m=C=>(a=C[1],C[1]=C[0],C[0]=a,C),p=o(t);let x,L,N,A,y,w,v,S;N=p[0];for(L of n)for(v=L[0],S=L[1],A=0;A<p.length;A++){if(N=p[A],y=N[0],w=N[1],y<v)w<v?x=[N]:w<=S?x=[[y,v-1]]:x=[[y,v-1],[S+1,w]];else if(y<=S)if(v===Number.NEGATIVE_INFINITY){const C=S+1;x=e===0?[]:[[C,w>C?w:C]]}else S===Number.POSITIVE_INFINITY?x=e===0?[]:[[v-1,v-1]]:w<=S?x=e<0?[[v-1,v-1]]:e>0?[[S+1,S+1]]:[]:x=[[S+1,w]];else x=[N];if(p.splice(A,1,...x),p.length===1&&p[0][1]<v)return u(p)}return u(p)}function nn(t,n){if(t.length<2)return t;const e=[];let i=null,o,u;t=t.map(a=>(a[1]<a[0]&&(o=a[1],a[1]=a[0],a[1]=o),a)).sort((a,m)=>a[0]-m[0]),e.push(t[0]);for(let a=1;a<t.length;a++)i=e[e.length-1],u=t[a],i[1]===u[0]&&!n?e.push(u):i[1]===u[0]-1&&n?(i[1]=u[1],e.splice(e.length-1,1,i)):i[1]<u[0]?e.push(u):i[1]<u[1]&&(i[1]=u[1],e.splice(e.length-1,1,i));return e}function P(t,n){return n.bind(t)}class tn{constructor(n,e){K(this,"editor");K(this,"intervals");K(this,"disposables",[]);K(this,"prefer",1);K(this,"lastPrefer",1);K(this,"onCursor",P(this,function(n){if(n.source==="api")return;const e=this.getApprovedSelections();e.length!==0&&this.editor.setSelections(e)}));K(this,"onRectangleSelectionStart",P(this,function({event:n}){n.middleButton&&(this.lastPrefer=this.prefer,this.prefer=0,window.addEventListener("pointerup",this.onRectangleSelectionStop))}));K(this,"onRectangleSelectionStop",P(this,function(){this.prefer=this.lastPrefer,window.removeEventListener("pointerup",this.onRectangleSelectionStop)}));K(this,"onKey",P(this,function(n){const e=n.keyCode,i=r.KeyCode;if(n.altKey||i.F1<=e&&e<=i.F19||n.ctrlKey&&e!==i.Backspace)return;if(e===i.UpArrow||e===i.LeftArrow||e===i.Home||e===i.PageUp){this.prefer=-1;return}if(e===i.DownArrow||e===i.RightArrow||e===i.End||e===i.PageDown){this.prefer=1;return}const o=this.getSelections(),u=this.intervals.buffer;let a;if(e===i.Delete)a=m=>m[0]===m[1]&&u.find(p=>m[1]+1===p[0])!=null;else if(e===i.Backspace)a=m=>m[0]===m[1]&&u.find(p=>p[1]+1===m[0])!=null;else return;o.findIndex(a)!==-1&&(n.stopPropagation(),n.preventDefault())}));K(this,"getOffsetAt",P(this,function(n){let e;for(let i=0;i<this.intervals.buffer.length;i++)if(e=this.intervals.buffer[i],n<=e[1])return e[0]-n<n-e[1]?e[0]:e[1]}));var i;this.editor=n,this.intervals=Qe(n,e),(i=this.editor.getModel())==null||i.setEOL(r.editor.EndOfLineSequence.LF)}enable(){this.disposables.push(this.editor.onDidChangeCursorPosition(this.onCursor),this.editor.onKeyDown(this.onKey),this.editor.onMouseDown(this.onRectangleSelectionStart)),this.intervals.show()}dispose(){for(const n of this.disposables)n.dispose();this.disposables.splice(0)}exclude(n,e,i,o){arguments.length===1?this.intervals.exclude(n,0,n,Number.MAX_SAFE_INTEGER):this.intervals.exclude(n,e,i,o)}getApprovedSelections(){const n=this.editor.getModel();return this.getSelections().map(i=>en(i,this.intervals.buffer,this.prefer)).flat().map(i=>{const o=n.getPositionAt(i[0]),u=n.getPositionAt(i[1]);return new r.Selection(o.lineNumber,o.column,u.lineNumber,u.column)})}getSelections(){const n=this.editor.getModel();return(this.editor.getSelections()||[]).map(e=>[n.getOffsetAt({lineNumber:e.selectionStartLineNumber,column:e.selectionStartColumn}),n.getOffsetAt({lineNumber:e.positionLineNumber,column:e.positionColumn})])}}const on=new RegExp("^[ s]+(exposed|Function)","i"),ne=()=>h.jsx("div",{className:"absolute inset-0 animate-pulse",children:h.jsx("div",{className:"w-full space-y-4 px-4 py-1",children:h.jsxs("div",{className:"space-y-2",children:[h.jsx("div",{className:"h-3 w-3/4 rounded bg-grey-200"}),h.jsx("div",{className:"h-3 rounded bg-grey-200"}),h.jsx("div",{className:"h-3 w-5/6 rounded bg-grey-200"}),h.jsx("div",{className:"h-3 rounded bg-grey-200"}),h.jsx("div",{className:"h-3 rounded bg-grey-200"})]})})}),rn=({path:t,initialValue:n,theme:e="fd-dark",type:i,language:o,onChange:u,options:a={},extra:m={},showAlerts:p=!1,lspProps:x,...L})=>{const{initialLineInfo:N,initialSelectionInfo:A}=m,{editor:y,setEditor:w}=ce(),{inited:v}=x;function S(I){o==="css"&&I.languages.registerCompletionItemProvider("css",qe),o==="json"&&I.languages.json&&I.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,schemas:[{uri:"condition-schema.json",fileMatch:["*.condition.json"],schema:ze}]})}function C(I,k){w(I);const s=I.getModel();if(s&&(s.updateOptions({insertSpaces:!1}),I.onKeyUp(()=>{var j;const l=(j=I.getPosition())==null?void 0:j.lineNumber;if(l){const W=s.getLineFirstNonWhitespaceColumn(l),B=s.getLineLength(l),f=s.getLineContent(l);on.test(f)&&I.executeEdits("edit-handler",[{range:new k.Range(l,0,l,B),text:f.substr(W-1,B-W)}])}})),i===Z.FileFolderType.METHOD&&Z.hasAttributesString(n)){const l=new tn(I,!0);l.exclude(1,1,1,Number.POSITIVE_INFINITY),l.enable()}}return b.useEffect(()=>{if(!y)return;const{line:I,offset:k}=N||{};I&&le(y,I,k)},[N,y]),b.useEffect(()=>{if(!y)return;const{selection:I}=A||{};I&&se(y,I)},[A,y]),v?h.jsxs(h.Fragment,{children:[p?h.jsx(Ce,{lspProps:x}):null,h.jsx(H.Editor,{options:{readOnly:!0,fontSize:12,"semanticHighlighting.enabled":!0,padding:{top:10},...a},path:X(t),value:n,theme:"fd-dark",onChange:I=>u&&u(I||""),language:o,beforeMount:S,onMount:C,loading:h.jsx(ne,{}),...L})]}):h.jsx(ne,{})},sn={name:"4d",displayName:"%displayName%",description:"%description%",version:"1.0.0",publisher:"vscode",engines:{vscode:"0.10.x"},categories:["Programming Languages"],contributes:{languages:[{id:"4d",aliases:["4D","4d"],extensions:[".4dm",".4qs"],configuration:"./language-configuration.json"}],grammars:[{language:"4d",scopeName:"source.4dm",path:"./syntaxes/4d.tmLanguage.json"}]}},{registerFileUrl:V,whenReady:gn}=we.registerExtension(sn,void 0,{system:!0});V("./syntaxes/4d.tmLanguage.json",new URL("data:application/json;base64,ewogICJuYW1lIjogIjREIiwKICAic2NvcGVOYW1lIjogInNvdXJjZS40ZG0iLAogICJwYXR0ZXJucyI6IFsKICAgIHsKICAgICAgImluY2x1ZGUiOiAiI3N0YXRlbWVudHMiCiAgICB9CiAgXSwKICAicmVwb3NpdG9yeSI6IHsKICAgICJzdGF0ZW1lbnRzIjogewogICAgICAicGF0dGVybnMiOiBbCiAgICAgICAgewogICAgICAgICAgImluY2x1ZGUiOiAiI2NvbW1lbnQiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbW1lbnQiOiB7CiAgICAgICJwYXR0ZXJucyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJjb21tZW50LmJsb2NrLjRkIiwKICAgICAgICAgICJiZWdpbiI6ICIoL1xcKikoPzpcXHMqKChAKWludGVybmFsKSg/PVxcc3woXFwqLykpKT8iLAogICAgICAgICAgImJlZ2luQ2FwdHVyZXMiOiB7CiAgICAgICAgICAgICIxIjogewogICAgICAgICAgICAgICJuYW1lIjogInB1bmN0dWF0aW9uLmRlZmluaXRpb24uY29tbWVudC40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjIiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAic3RvcmFnZS50eXBlLmludGVybmFsZGVjbGFyYXRpb24uNGQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICIzIjogewogICAgICAgICAgICAgICJuYW1lIjogInB1bmN0dWF0aW9uLmRlY29yYXRvci5pbnRlcm5hbGRlY2xhcmF0aW9uLjRkIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImVuZCI6ICJcXCovIiwKICAgICAgICAgICJlbmRDYXB0dXJlcyI6IHsKICAgICAgICAgICAgIjAiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAicHVuY3R1YXRpb24uZGVmaW5pdGlvbi5jb21tZW50LjRkIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiYmVnaW4iOiAiKF5bIFxcdF0rKT8oKC8vKSg/OlxccyooKEApaW50ZXJuYWwpKD89XFxzfCQpKT8pIiwKICAgICAgICAgICJiZWdpbkNhcHR1cmVzIjogewogICAgICAgICAgICAiMSI6IHsKICAgICAgICAgICAgICAibmFtZSI6ICJwdW5jdHVhdGlvbi53aGl0ZXNwYWNlLmNvbW1lbnQubGVhZGluZy40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjIiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAiY29tbWVudC5saW5lLmRvdWJsZS1zbGFzaC40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjMiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAicHVuY3R1YXRpb24uZGVmaW5pdGlvbi5jb21tZW50LjRkIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiNCI6IHsKICAgICAgICAgICAgICAibmFtZSI6ICJzdG9yYWdlLnR5cGUuaW50ZXJuYWxkZWNsYXJhdGlvbi40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjUiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAicHVuY3R1YXRpb24uZGVjb3JhdG9yLmludGVybmFsZGVjbGFyYXRpb24uNGQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiZW5kIjogIig/PSQpIiwKICAgICAgICAgICJjb250ZW50TmFtZSI6ICJjb21tZW50LmxpbmUuZG91YmxlLXNsYXNoLjRkIgogICAgICAgIH0KICAgICAgXQogICAgfQogIH0KfQo=",self.location).toString(),{mimeType:"application/json",size:1592});V("./language-configuration.json",new URL("data:application/json;base64,ewogICJjb21tZW50cyI6IHsKICAgICJsaW5lQ29tbWVudCI6ICIvLyIsCiAgICAiYmxvY2tDb21tZW50IjogWyIvKioiLCAiKiovIl0KICB9LAogIC8vIHN5bWJvbHMgdXNlZCBhcyBicmFja2V0cwogICJicmFja2V0cyI6IFsKICAgIFsieyIsICJ9Il0sCiAgICBbIigiLCAiKSJdLAogICAgWyJbIiwgIl0iXQogIF0sCiAgLy8gc3ltYm9scyB0aGF0IGFyZSBhdXRvIGNsb3NlZCB3aGVuIHR5cGluZwogIC8vIHN5bWJvbHMgdGhhdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHN1cnJvdW5kIGEgc2VsZWN0aW9uCiAgInN1cnJvdW5kaW5nUGFpcnMiOiBbCiAgICBbInsiLCAifSJdLAogICAgWyJbIiwgIl0iXSwKICAgIFsiKCIsICIpIl0sCiAgICBbIlwiIiwgIlwiIl0sCiAgICBbIiciLCAiJyJdCiAgXSwKICAiYXV0b0Nsb3NpbmdQYWlycyI6IFsKICAgIHsKICAgICAgIm9wZW4iOiAiKCIsCiAgICAgICJjbG9zZSI6ICIpIgogICAgfSwKICAgIHsgIm9wZW4iOiAieyIsICJjbG9zZSI6ICJ9IiB9LAogICAgeyAib3BlbiI6ICJbIiwgImNsb3NlIjogIl0iIH0sCiAgICB7ICJvcGVuIjogIiciLCAiY2xvc2UiOiAiJyIsICJub3RJbiI6IFsic3RyaW5nIiwgImNvbW1lbnQiXSB9LAogICAgeyAib3BlbiI6ICJcIiIsICJjbG9zZSI6ICJcIiIsICJub3RJbiI6IFsic3RyaW5nIl0gfSwKICAgIHsgIm9wZW4iOiAiYCIsICJjbG9zZSI6ICJgIiwgIm5vdEluIjogWyJzdHJpbmciLCAiY29tbWVudCJdIH0sCiAgICB7ICJvcGVuIjogIi8qKiIsICJjbG9zZSI6ICIgKiovIiwgIm5vdEluIjogWyJzdHJpbmciXSB9CiAgXSwKICAiYXV0b0Nsb3NlQmVmb3JlIjogIjs6Liw9fV0pPmAgXG5cdCIsCiAgIndvcmRQYXR0ZXJuIjogIigtP1xcZCpcXC5cXGRcXHcqKXwoW15cXGBcXH5cXCFcXEBcXCNcXCVcXF5cXCZcXCpcXChcXClcXC1cXD1cXCtcXFtcXHtcXF1cXH1cXFxcXFx8XFw7XFw6XFwnXFxcIlxcLFxcLlxcPFxcPlxcL1xcP1xcclxcblxcdFxcZlxcdiBdKyl8KD88PVthLXpBLVpdKSA/KD89W2EtekEtWl0pIiwKICAiaW5kZW50YXRpb25SdWxlcyI6IHsKICAgICJpbmNyZWFzZUluZGVudFBhdHRlcm4iOiB7CiAgICAgICJwYXR0ZXJuIjogIiheKD8hW15cXHNdKSpcXHMqKGNsYXNzIGNvbnN0cnVjdG9yKSl8KF4oPyFbXlxcc10pKlxccyooZXhwb3NlZHxsb2NhbHxcXHMqKXsxfVxccypmdW5jdGlvbnsxfVxccypcXHcpfCheKD8hW15cXHNdKSpcXHMqKElmfEVsc2V8Rm9yfEZvciBlYWNofFdoaWxlfEJlZ2luIFNRTHxDYXNlIG9mfFVzZXxSZXBlYXR8OiAqXFwoLiopKS4qJCIsCiAgICAgICJmbGFncyI6ICJpIgogICAgfSwKICAgICJkZWNyZWFzZUluZGVudFBhdHRlcm4iOiB7CiAgICAgICJwYXR0ZXJuIjogIiheKD8hW15cXHNdKSpcXHMqKGV4cG9zZWR8bG9jYWx8XFxzKil7MX1cXHMqZnVuY3Rpb257MX1cXHMqXFx3KXwoRW5kIElmfEVuZCBGb3J8RWxzZXxFbmQgZm9yIGVhY2h8RW5kIFdoaWxlfEVuZCBTUUx8RW5kIGNhc2V8RW5kIHVzZXxVbnRpbHw6ICpcXCguKikuKiQiLAogICAgICAiZmxhZ3MiOiAiaSIKICAgIH0KICB9LAogICJvbkVudGVyUnVsZXMiOiBbCiAgICB7CiAgICAgICJiZWZvcmVUZXh0IjogewogICAgICAgICJwYXR0ZXJuIjogIl5leHBvc2VkIiwKICAgICAgICAiZmxhZ3MiOiAiaSIKICAgICAgfSwKICAgICAgImFjdGlvbiI6IHsgImluZGVudCI6ICJpbmRlbnQiLCAiaW5kZW50QWN0aW9uIjogMSB9CiAgICB9CiAgXQp9Cg==",self.location).toString(),{mimeType:"application/json",size:1723});V("package.json",new URL("data:application/json;base64,ewogICAgIm5hbWUiOiAiNGQiLAogICAgImRpc3BsYXlOYW1lIjogIiVkaXNwbGF5TmFtZSUiLAogICAgImRlc2NyaXB0aW9uIjogIiVkZXNjcmlwdGlvbiUiLAogICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgInB1Ymxpc2hlciI6ICJ2c2NvZGUiLAogICAgImxpY2Vuc2UiOiAiTUlUIiwKICAgICJlbmdpbmVzIjogewogICAgICAgICJ2c2NvZGUiOiAiMC4xMC54IgogICAgfSwKICAgICJzY3JpcHRzIjogewogICAgICAgICJ1cGRhdGUtZ3JhbW1hciI6ICJub2RlIC4uL25vZGVfbW9kdWxlcy92c2NvZGUtZ3JhbW1hci11cGRhdGVyL2JpbiBtaWNyb3NvZnQvdnNjb2RlLTRkIGdyYW1tYXJzLzRkLmNzb24gLi9zeW50YXhlcy80ZC50bUxhbmd1YWdlLmpzb24iCiAgICB9LAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlcyIKICAgIF0sCiAgICAiY29udHJpYnV0ZXMiOiB7CiAgICAgICAgImxhbmd1YWdlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6ICI0ZCIsCiAgICAgICAgICAgICAgImFsaWFzZXMiOiBbIjREIiwgIjRkIl0sCiAgICAgICAgICAgICAgImV4dGVuc2lvbnMiOiBbIi40ZG0iLCAiLjRxcyJdLAogICAgICAgICAgICAgICJjb25maWd1cmF0aW9uIjogIi4vbGFuZ3VhZ2UtY29uZmlndXJhdGlvbi5qc29uIgogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImdyYW1tYXJzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImxhbmd1YWdlIjogIjRkIiwKICAgICAgICAgICAgICAic2NvcGVOYW1lIjogInNvdXJjZS40ZG0iLAogICAgICAgICAgICAgICJwYXRoIjogIi4vc3ludGF4ZXMvNGQudG1MYW5ndWFnZS5qc29uIgogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICB9LAogICAgInJlcG9zaXRvcnkiOiB7CiAgICAgICAgInR5cGUiOiAiZ2l0IiwKICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdnNjb2RlLmdpdCIKICAgIH0KfQ==",self.location).toString(),{mimeType:"application/json",size:1006});V("package.nls.json",new URL("data:application/json;base64,ewogICJkaXNwbGF5TmFtZSI6ICI0RCBMYW5ndWFnZSBCYXNpY3MiLAogICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyBzeW50YXggaGlnaGxpZ2h0aW5nIGFuZCBicmFja2V0IG1hdGNoaW5nIGZvciA0RE0gYW5kIDRRUyBmaWxlcy4iCn0K",self.location).toString(),{mimeType:"application/json",size:135});exports.Alerts=Ce;exports.CodeEditor=rn;exports.CodeEditorProvider=De;exports.LSPProvider=Ge;exports._await=z;exports.configureServices=re;exports.getFileSystemPath=X;exports.getFunctionOffset=ke;exports.initMonacoUserConfiguration=oe;exports.jumpToLine=le;exports.jumpToSelection=se;exports.useCodeEditor=ce;exports.useLSP=Je;
108
+ `;if(y){const l="monaco-read-only";lt(l)||at(y,l),y=null}const R=()=>{r(m),m()},A=()=>{I(m),w=n.deltaDecorations(w,[])},m=()=>{const l=n.getModel();l&&(w=n.deltaDecorations(w,i.map(Z(l))))},Z=l=>g=>{const k=l.getPositionAt(g[0]),j=l.getPositionAt(g[1]);return{range:new s.Range(k.lineNumber,k.column,j.lineNumber,j.column),options:{className:"idoc-readonly-mark"}}};return{get buffer(){return i},exclude:a,attach:r,detach:I,dispose:N,show:R,hide:A}}function ct(n,e,t){let i=!1;const o=A=>A[1]<A[0]?(i=!0,[[A[1],A[0]]]):[[...A]],a=A=>i?A.map(m=>m[1]>m[0]?I(m):m).reverse():A;let r;const I=A=>(r=A[1],A[1]=A[0],A[0]=r,A),C=o(n);let S,x,b,f,N,w,y,R;b=C[0];for(x of e)for(y=x[0],R=x[1],f=0;f<C.length;f++){if(b=C[f],N=b[0],w=b[1],N<y)w<y?S=[b]:w<=R?S=[[N,y-1]]:S=[[N,y-1],[R+1,w]];else if(N<=R)if(y===Number.NEGATIVE_INFINITY){const A=R+1;S=t===0?[]:[[A,w>A?w:A]]}else R===Number.POSITIVE_INFINITY?S=t===0?[]:[[y-1,y-1]]:w<=R?S=t<0?[[y-1,y-1]]:t>0?[[R+1,R+1]]:[]:S=[[R+1,w]];else S=[b];if(C.splice(f,1,...S),C.length===1&&C[0][1]<y)return a(C)}return a(C)}function ut(n,e){if(n.length<2)return n;const t=[];let i=null,o,a;n=n.map(r=>(r[1]<r[0]&&(o=r[1],r[1]=r[0],r[1]=o),r)).sort((r,I)=>r[0]-I[0]),t.push(n[0]);for(let r=1;r<n.length;r++)i=t[t.length-1],a=n[r],i[1]===a[0]&&!e?t.push(a):i[1]===a[0]-1&&e?(i[1]=a[1],t.splice(t.length-1,1,i)):i[1]<a[0]?t.push(a):i[1]<a[1]&&(i[1]=a[1],t.splice(t.length-1,1,i));return t}function P(n,e){return e.bind(n)}class dt{constructor(e,t){F(this,"editor");F(this,"intervals");F(this,"disposables",[]);F(this,"prefer",1);F(this,"lastPrefer",1);F(this,"onCursor",P(this,function(e){if(e.source==="api")return;const t=this.getApprovedSelections();t.length!==0&&this.editor.setSelections(t)}));F(this,"onRectangleSelectionStart",P(this,function({event:e}){e.middleButton&&(this.lastPrefer=this.prefer,this.prefer=0,window.addEventListener("pointerup",this.onRectangleSelectionStop))}));F(this,"onRectangleSelectionStop",P(this,function(){this.prefer=this.lastPrefer,window.removeEventListener("pointerup",this.onRectangleSelectionStop)}));F(this,"onKey",P(this,function(e){const t=e.keyCode,i=s.KeyCode;if(e.altKey||i.F1<=t&&t<=i.F19||e.ctrlKey&&t!==i.Backspace)return;if(t===i.UpArrow||t===i.LeftArrow||t===i.Home||t===i.PageUp){this.prefer=-1;return}if(t===i.DownArrow||t===i.RightArrow||t===i.End||t===i.PageDown){this.prefer=1;return}const o=this.getSelections(),a=this.intervals.buffer;let r;if(t===i.Delete)r=I=>I[0]===I[1]&&a.find(C=>I[1]+1===C[0])!=null;else if(t===i.Backspace)r=I=>I[0]===I[1]&&a.find(C=>C[1]+1===I[0])!=null;else return;o.findIndex(r)!==-1&&(e.stopPropagation(),e.preventDefault())}));F(this,"getOffsetAt",P(this,function(e){let t;for(let i=0;i<this.intervals.buffer.length;i++)if(t=this.intervals.buffer[i],e<=t[1])return t[0]-e<e-t[1]?t[0]:t[1]}));var i;this.editor=e,this.intervals=gt(e,t),(i=this.editor.getModel())==null||i.setEOL(s.editor.EndOfLineSequence.LF)}enable(){this.disposables.push(this.editor.onDidChangeCursorPosition(this.onCursor),this.editor.onKeyDown(this.onKey),this.editor.onMouseDown(this.onRectangleSelectionStart)),this.intervals.show()}dispose(){for(const e of this.disposables)e.dispose();this.disposables.splice(0)}exclude(e,t,i,o){arguments.length===1?this.intervals.exclude(e,0,e,Number.MAX_SAFE_INTEGER):this.intervals.exclude(e,t,i,o)}getApprovedSelections(){const e=this.editor.getModel();return this.getSelections().map(i=>ct(i,this.intervals.buffer,this.prefer)).flat().map(i=>{const o=e.getPositionAt(i[0]),a=e.getPositionAt(i[1]);return new s.Selection(o.lineNumber,o.column,a.lineNumber,a.column)})}getSelections(){const e=this.editor.getModel();return(this.editor.getSelections()||[]).map(t=>[e.getOffsetAt({lineNumber:t.selectionStartLineNumber,column:t.selectionStartColumn}),e.getOffsetAt({lineNumber:t.positionLineNumber,column:t.positionColumn})])}}const It=new RegExp("^[ s]+(exposed|Function)","i"),oe=()=>v.jsx("div",{className:"absolute inset-0 animate-pulse",children:v.jsx("div",{className:"w-full space-y-4 px-4 py-1",children:v.jsxs("div",{className:"space-y-2",children:[v.jsx("div",{className:"h-3 w-3/4 rounded bg-grey-200"}),v.jsx("div",{className:"h-3 rounded bg-grey-200"}),v.jsx("div",{className:"h-3 w-5/6 rounded bg-grey-200"}),v.jsx("div",{className:"h-3 rounded bg-grey-200"}),v.jsx("div",{className:"h-3 rounded bg-grey-200"})]})})}),Ct=({path:n,initialValue:e,theme:t="fd-dark",type:i,language:o,onChange:a,options:r={},extra:I={},showAlerts:C=!1,lspProps:S,...x})=>{const{initialLineInfo:b,initialSelectionInfo:f}=I,{editor:N,setEditor:w}=me(),{inited:y}=S;function R(m){o==="css"&&m.languages.registerCompletionItemProvider("css",it),o==="json"&&m.languages.json&&m.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,schemas:[{uri:"condition-schema.json",fileMatch:["*.condition.json"],schema:st}]})}function A(m,Z){w(m);const l=m.getModel();if(l&&(l.updateOptions({insertSpaces:!1}),m.onKeyUp(()=>{var k;const g=(k=m.getPosition())==null?void 0:k.lineNumber;if(g){const j=l.getLineFirstNonWhitespaceColumn(g),T=l.getLineLength(g),p=l.getLineContent(g);It.test(p)&&m.executeEdits("edit-handler",[{range:new Z.Range(g,0,g,T),text:p.substr(j-1,T-j)}])}})),i===K.FileFolderType.METHOD&&K.hasAttributesString(e)){const g=new dt(m,!0);g.exclude(1,1,1,Number.POSITIVE_INFINITY),g.enable()}}return h.useEffect(()=>{if(!N)return;const{line:m,offset:Z}=b||{};m&&ce(N,m,Z)},[b,N]),h.useEffect(()=>{if(!N)return;const{selection:m}=f||{};m&&ge(N,m)},[f,N]),y?v.jsxs(v.Fragment,{children:[C?v.jsx(pe,{lspProps:S}):null,v.jsx(_.Editor,{options:{readOnly:!0,fontSize:12,"semanticHighlighting.enabled":!0,padding:{top:10},...r},path:X(n),value:e,theme:"fd-dark",onChange:m=>a&&a(m||""),language:o,beforeMount:R,onMount:A,loading:v.jsx(oe,{}),...x})]}):v.jsx(oe,{})},mt={name:"4d",displayName:"%displayName%",description:"%description%",version:"1.0.0",publisher:"vscode",engines:{vscode:"0.10.x"},categories:["Programming Languages"],contributes:{languages:[{id:"4d",aliases:["4D","4d"],extensions:[".4dm",".4qs"],configuration:"./language-configuration.json"}],grammars:[{language:"4d",scopeName:"source.4dm",path:"./syntaxes/4d.tmLanguage.json"}]}},{registerFileUrl:q,whenReady:At}=Ke.registerExtension(mt,void 0,{system:!0});q("./syntaxes/4d.tmLanguage.json",new URL("data:application/json;base64,ewogICJuYW1lIjogIjREIiwKICAic2NvcGVOYW1lIjogInNvdXJjZS40ZG0iLAogICJwYXR0ZXJucyI6IFsKICAgIHsKICAgICAgImluY2x1ZGUiOiAiI3N0YXRlbWVudHMiCiAgICB9CiAgXSwKICAicmVwb3NpdG9yeSI6IHsKICAgICJzdGF0ZW1lbnRzIjogewogICAgICAicGF0dGVybnMiOiBbCiAgICAgICAgewogICAgICAgICAgImluY2x1ZGUiOiAiI2NvbW1lbnQiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbW1lbnQiOiB7CiAgICAgICJwYXR0ZXJucyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJjb21tZW50LmJsb2NrLjRkIiwKICAgICAgICAgICJiZWdpbiI6ICIoL1xcKikoPzpcXHMqKChAKWludGVybmFsKSg/PVxcc3woXFwqLykpKT8iLAogICAgICAgICAgImJlZ2luQ2FwdHVyZXMiOiB7CiAgICAgICAgICAgICIxIjogewogICAgICAgICAgICAgICJuYW1lIjogInB1bmN0dWF0aW9uLmRlZmluaXRpb24uY29tbWVudC40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjIiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAic3RvcmFnZS50eXBlLmludGVybmFsZGVjbGFyYXRpb24uNGQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICIzIjogewogICAgICAgICAgICAgICJuYW1lIjogInB1bmN0dWF0aW9uLmRlY29yYXRvci5pbnRlcm5hbGRlY2xhcmF0aW9uLjRkIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImVuZCI6ICJcXCovIiwKICAgICAgICAgICJlbmRDYXB0dXJlcyI6IHsKICAgICAgICAgICAgIjAiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAicHVuY3R1YXRpb24uZGVmaW5pdGlvbi5jb21tZW50LjRkIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiYmVnaW4iOiAiKF5bIFxcdF0rKT8oKC8vKSg/OlxccyooKEApaW50ZXJuYWwpKD89XFxzfCQpKT8pIiwKICAgICAgICAgICJiZWdpbkNhcHR1cmVzIjogewogICAgICAgICAgICAiMSI6IHsKICAgICAgICAgICAgICAibmFtZSI6ICJwdW5jdHVhdGlvbi53aGl0ZXNwYWNlLmNvbW1lbnQubGVhZGluZy40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjIiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAiY29tbWVudC5saW5lLmRvdWJsZS1zbGFzaC40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjMiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAicHVuY3R1YXRpb24uZGVmaW5pdGlvbi5jb21tZW50LjRkIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiNCI6IHsKICAgICAgICAgICAgICAibmFtZSI6ICJzdG9yYWdlLnR5cGUuaW50ZXJuYWxkZWNsYXJhdGlvbi40ZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIjUiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAicHVuY3R1YXRpb24uZGVjb3JhdG9yLmludGVybmFsZGVjbGFyYXRpb24uNGQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiZW5kIjogIig/PSQpIiwKICAgICAgICAgICJjb250ZW50TmFtZSI6ICJjb21tZW50LmxpbmUuZG91YmxlLXNsYXNoLjRkIgogICAgICAgIH0KICAgICAgXQogICAgfQogIH0KfQo=",self.location).toString(),{mimeType:"application/json",size:1592});q("./language-configuration.json",new URL("data:application/json;base64,ewogICJjb21tZW50cyI6IHsKICAgICJsaW5lQ29tbWVudCI6ICIvLyIsCiAgICAiYmxvY2tDb21tZW50IjogWyIvKioiLCAiKiovIl0KICB9LAogIC8vIHN5bWJvbHMgdXNlZCBhcyBicmFja2V0cwogICJicmFja2V0cyI6IFsKICAgIFsieyIsICJ9Il0sCiAgICBbIigiLCAiKSJdLAogICAgWyJbIiwgIl0iXQogIF0sCiAgLy8gc3ltYm9scyB0aGF0IGFyZSBhdXRvIGNsb3NlZCB3aGVuIHR5cGluZwogIC8vIHN5bWJvbHMgdGhhdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHN1cnJvdW5kIGEgc2VsZWN0aW9uCiAgInN1cnJvdW5kaW5nUGFpcnMiOiBbCiAgICBbInsiLCAifSJdLAogICAgWyJbIiwgIl0iXSwKICAgIFsiKCIsICIpIl0sCiAgICBbIlwiIiwgIlwiIl0sCiAgICBbIiciLCAiJyJdCiAgXSwKICAiYXV0b0Nsb3NpbmdQYWlycyI6IFsKICAgIHsKICAgICAgIm9wZW4iOiAiKCIsCiAgICAgICJjbG9zZSI6ICIpIgogICAgfSwKICAgIHsgIm9wZW4iOiAieyIsICJjbG9zZSI6ICJ9IiB9LAogICAgeyAib3BlbiI6ICJbIiwgImNsb3NlIjogIl0iIH0sCiAgICB7ICJvcGVuIjogIiciLCAiY2xvc2UiOiAiJyIsICJub3RJbiI6IFsic3RyaW5nIiwgImNvbW1lbnQiXSB9LAogICAgeyAib3BlbiI6ICJcIiIsICJjbG9zZSI6ICJcIiIsICJub3RJbiI6IFsic3RyaW5nIl0gfSwKICAgIHsgIm9wZW4iOiAiYCIsICJjbG9zZSI6ICJgIiwgIm5vdEluIjogWyJzdHJpbmciLCAiY29tbWVudCJdIH0sCiAgICB7ICJvcGVuIjogIi8qKiIsICJjbG9zZSI6ICIgKiovIiwgIm5vdEluIjogWyJzdHJpbmciXSB9CiAgXSwKICAiYXV0b0Nsb3NlQmVmb3JlIjogIjs6Liw9fV0pPmAgXG5cdCIsCiAgIndvcmRQYXR0ZXJuIjogIigtP1xcZCpcXC5cXGRcXHcqKXwoW15cXGBcXH5cXCFcXEBcXCNcXCVcXF5cXCZcXCpcXChcXClcXC1cXD1cXCtcXFtcXHtcXF1cXH1cXFxcXFx8XFw7XFw6XFwnXFxcIlxcLFxcLlxcPFxcPlxcL1xcP1xcclxcblxcdFxcZlxcdiBdKyl8KD88PVthLXpBLVpdKSA/KD89W2EtekEtWl0pIiwKICAiaW5kZW50YXRpb25SdWxlcyI6IHsKICAgICJpbmNyZWFzZUluZGVudFBhdHRlcm4iOiB7CiAgICAgICJwYXR0ZXJuIjogIiheKD8hW15cXHNdKSpcXHMqKGNsYXNzIGNvbnN0cnVjdG9yKSl8KF4oPyFbXlxcc10pKlxccyooZXhwb3NlZHxsb2NhbHxcXHMqKXsxfVxccypmdW5jdGlvbnsxfVxccypcXHcpfCheKD8hW15cXHNdKSpcXHMqKElmfEVsc2V8Rm9yfEZvciBlYWNofFdoaWxlfEJlZ2luIFNRTHxDYXNlIG9mfFVzZXxSZXBlYXR8OiAqXFwoLiopKS4qJCIsCiAgICAgICJmbGFncyI6ICJpIgogICAgfSwKICAgICJkZWNyZWFzZUluZGVudFBhdHRlcm4iOiB7CiAgICAgICJwYXR0ZXJuIjogIiheKD8hW15cXHNdKSpcXHMqKGV4cG9zZWR8bG9jYWx8XFxzKil7MX1cXHMqZnVuY3Rpb257MX1cXHMqXFx3KXwoRW5kIElmfEVuZCBGb3J8RWxzZXxFbmQgZm9yIGVhY2h8RW5kIFdoaWxlfEVuZCBTUUx8RW5kIGNhc2V8RW5kIHVzZXxVbnRpbHw6ICpcXCguKikuKiQiLAogICAgICAiZmxhZ3MiOiAiaSIKICAgIH0KICB9LAogICJvbkVudGVyUnVsZXMiOiBbCiAgICB7CiAgICAgICJiZWZvcmVUZXh0IjogewogICAgICAgICJwYXR0ZXJuIjogIl5leHBvc2VkIiwKICAgICAgICAiZmxhZ3MiOiAiaSIKICAgICAgfSwKICAgICAgImFjdGlvbiI6IHsgImluZGVudCI6ICJpbmRlbnQiLCAiaW5kZW50QWN0aW9uIjogMSB9CiAgICB9CiAgXQp9Cg==",self.location).toString(),{mimeType:"application/json",size:1723});q("package.json",new URL("data:application/json;base64,ewogICAgIm5hbWUiOiAiNGQiLAogICAgImRpc3BsYXlOYW1lIjogIiVkaXNwbGF5TmFtZSUiLAogICAgImRlc2NyaXB0aW9uIjogIiVkZXNjcmlwdGlvbiUiLAogICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgInB1Ymxpc2hlciI6ICJ2c2NvZGUiLAogICAgImxpY2Vuc2UiOiAiTUlUIiwKICAgICJlbmdpbmVzIjogewogICAgICAgICJ2c2NvZGUiOiAiMC4xMC54IgogICAgfSwKICAgICJzY3JpcHRzIjogewogICAgICAgICJ1cGRhdGUtZ3JhbW1hciI6ICJub2RlIC4uL25vZGVfbW9kdWxlcy92c2NvZGUtZ3JhbW1hci11cGRhdGVyL2JpbiBtaWNyb3NvZnQvdnNjb2RlLTRkIGdyYW1tYXJzLzRkLmNzb24gLi9zeW50YXhlcy80ZC50bUxhbmd1YWdlLmpzb24iCiAgICB9LAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlcyIKICAgIF0sCiAgICAiY29udHJpYnV0ZXMiOiB7CiAgICAgICAgImxhbmd1YWdlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6ICI0ZCIsCiAgICAgICAgICAgICAgImFsaWFzZXMiOiBbIjREIiwgIjRkIl0sCiAgICAgICAgICAgICAgImV4dGVuc2lvbnMiOiBbIi40ZG0iLCAiLjRxcyJdLAogICAgICAgICAgICAgICJjb25maWd1cmF0aW9uIjogIi4vbGFuZ3VhZ2UtY29uZmlndXJhdGlvbi5qc29uIgogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImdyYW1tYXJzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImxhbmd1YWdlIjogIjRkIiwKICAgICAgICAgICAgICAic2NvcGVOYW1lIjogInNvdXJjZS40ZG0iLAogICAgICAgICAgICAgICJwYXRoIjogIi4vc3ludGF4ZXMvNGQudG1MYW5ndWFnZS5qc29uIgogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICB9LAogICAgInJlcG9zaXRvcnkiOiB7CiAgICAgICAgInR5cGUiOiAiZ2l0IiwKICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdnNjb2RlLmdpdCIKICAgIH0KfQ==",self.location).toString(),{mimeType:"application/json",size:1006});q("package.nls.json",new URL("data:application/json;base64,ewogICJkaXNwbGF5TmFtZSI6ICI0RCBMYW5ndWFnZSBCYXNpY3MiLAogICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyBzeW50YXggaGlnaGxpZ2h0aW5nIGFuZCBicmFja2V0IG1hdGNoaW5nIGZvciA0RE0gYW5kIDRRUyBmaWxlcy4iCn0K",self.location).toString(),{mimeType:"application/json",size:135});exports.Alerts=pe;exports.CodeEditor=Ct;exports.CodeEditorProvider=Ue;exports.LSPProvider=_e;exports._await=U;exports.configureServices=le;exports.getFileSystemPath=X;exports.getFunctionOffset=De;exports.initMonacoUserConfiguration=ae;exports.jumpToLine=ce;exports.jumpToSelection=ge;exports.useCodeEditor=me;exports.useLSP=$e;
109
109
  //# sourceMappingURL=index.cjs.js.map