@ws-ui/code-editor 0.1.21 → 0.1.23

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.
@@ -127,7 +127,7 @@ declare const _default: {
127
127
  "enum": ["string", "number", "date", "boolean", "array", "object"]
128
128
  },
129
129
  "op": {
130
- "enum": ["eq", "neq", "regex", "in", "nin"]
130
+ "enum": ["eq", "neq", "regex"]
131
131
  }
132
132
  },
133
133
  "required": ["name", "type", "value", "op"]
@@ -152,7 +152,7 @@ declare const _default: {
152
152
  "enum": ["string", "number", "date", "boolean", "array", "object"]
153
153
  },
154
154
  "op": {
155
- "enum": ["eq", "neq", "regex", "in", "nin"]
155
+ "enum": ["eq", "neq", "regex"]
156
156
  }
157
157
  },
158
158
  "required": ["name", "type", "value", "op"]
package/dist/index.cjs.js CHANGED
@@ -43,7 +43,7 @@ Check the top-level render call using <`+a+">.")}return o}}function qe(e,o){{if(
43
43
  `),insertTextRules:c.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"for",kind:c.languages.CompletionItemKind.Snippet,range:new c.Range(n.lineNumber,t.startColumn,n.lineNumber,t.endColumn),insertText:["for(${1:counter},${2:start},${3:end}${4:,increment})"," ${5:body}","end"].join(`
44
44
  `),insertTextRules:c.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"function",kind:c.languages.CompletionItemKind.Snippet,range:new c.Range(n.lineNumber,t.startColumn,n.lineNumber,t.endColumn),insertText:["function ${1:function_name}(${2:params}) -> ${3:var_name} : ${4:var_type}"," ${5:body}"].join(`
45
45
  `),insertTextRules:c.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},Ut=[{keybinding:W.KeyMod.CtrlCmd|W.KeyCode.NumpadAdd,command:"editor.action.fontZoomIn"},{keybinding:W.KeyMod.CtrlCmd|W.KeyCode.Equal,command:"editor.action.fontZoomIn"},{keybinding:W.KeyMod.CtrlCmd|W.KeyCode.NumpadSubtract,command:"editor.action.fontZoomOut"},{keybinding:W.KeyMod.CtrlCmd|W.KeyCode.Minus,command:"editor.action.fontZoomOut"},{keybinding:W.KeyMod.CtrlCmd|W.KeyCode.Numpad0,command:"editor.action.fontZoomReset"},{keybinding:W.KeyMod.CtrlCmd|W.KeyCode.Digit0,command:"editor.action.fontZoomReset"}],Vt=({defaultZoom:r})=>(w.useEffect(()=>{r!==void 0&&W.editor.EditorZoom.setZoomLevel(r)},[]),null);({}).VITE_DISABLE_MONACO_LOADER||ye.loader.config({monaco:c});const tt=w.createContext(void 0),Bt=({children:r,url:n,qodly:t,defaultZoom:i,openHandler:s,language:u="4d",defaultInited:d=!1})=>{const l=ye.useMonaco(),[f,h]=w.useState(d),[b,S]=w.useState(null),v=w.useRef(),N=w.useRef(0);w.useEffect(()=>{Ve.initServices({configureEditorOrViewsService:{enableViewsService:!1},debugLogging:!1,userServices:{...Mt.getServiceOverride({openHandler:s}),...Ft.getServiceOverride(),...Wt.getServiceOverride()}})},[]),w.useEffect(()=>{n&&l&&L()},[n,l]);const L=async()=>{if(!l)return;const x=await B.getMonacoTheme();l.editor.defineTheme("fd-dark",x||Dt),l.languages.register({id:u,extensions:[".4dm",".4qm",".4qs"],aliases:["4d","4D"]}),l.languages.setLanguageConfiguration(u,qt),l.languages.registerCompletionItemProvider(u,t?Yt:Kt),W.editor.addKeybindingRules(Ut),j()},j=()=>{S(null);let x;try{x=new WebSocket(localStorage.LSP_SERVER||n)}catch{S(new Event("INVALID_URL"));return}x.onopen=M,x.onclose=I,x.onerror=E,N.current=0},M=async function(){const x=xe.toSocket(this),T=new Lt(x),_=new kt(x),K=new Ve.MonacoLanguageClient({name:"4D Language Client",clientOptions:{workspaceFolder:{uri:W.Uri.parse("file:///PACKAGE")},documentSelector:[{scheme:"file",language:u}],errorHandler:{error:()=>({action:Be.ErrorAction.Continue}),closed:()=>({action:Be.CloseAction.DoNotRestart})}},connectionProvider:{get:()=>Promise.resolve({reader:T,writer:_})}});v.current=K,T.onClose(()=>{K.stop(),N.current<3?setTimeout(()=>{N.current++,j()},1e3):S(new Event("WEBSOCKET_CLOSED"))}),K.needsStart()&&await K.start(),h(!0)},I=()=>{},E=x=>{S(x)};w.useEffect(()=>{const x=B.lspSubject.subscribe(({action:T,payload:_})=>{switch(T){case B.LspActions.WILL_SAVE:R(_.filePath);break;case B.LspActions.DID_SAVE:m(_.filePath,_.content);break;case B.LspActions.WILL_CREATE:p(_.filePath);break;case B.LspActions.DID_CREATE:k(_.filePath);break;case B.LspActions.WILL_RENAME:q(_.oldPath,_.newPath);break;case B.LspActions.DID_RENAME:U(_.oldPath,_.newPath);break;case B.LspActions.WILL_DELETE:F(_.filePath);break;case B.LspActions.DID_DELETE:ue(_.filePath);break}});return()=>x.unsubscribe()},[]);const R=(x,T=J.TextDocumentSaveReason.Manual)=>{var _;(_=v.current)==null||_.sendNotification(J.WillSaveTextDocumentNotification.type,{textDocument:{uri:z(x)},reason:T})},m=(x,T)=>{var _;(_=v.current)==null||_.sendNotification(J.DidSaveTextDocumentNotification.type,{textDocument:{uri:z(x)},text:T})},p=x=>{var T;(T=v.current)==null||T.sendRequest(J.WillCreateFilesRequest.type,{files:[{uri:z(x)}]})},q=(x,T)=>{var _;(_=v.current)==null||_.sendRequest(J.WillRenameFilesRequest.type,{files:[{oldUri:z(x),newUri:z(T)}]})},F=x=>{var T;(T=v.current)==null||T.sendRequest(J.WillDeleteFilesRequest.type,{files:[{uri:z(x)}]})},k=x=>{var T;(T=v.current)==null||T.sendNotification(J.DidCreateFilesNotification.type,{files:[{uri:z(x)}]})},U=(x,T)=>{var _;(_=v.current)==null||_.sendNotification(J.DidRenameFilesNotification.type,{files:[{oldUri:z(x),newUri:z(T)}]})},ue=x=>{var T;(T=v.current)==null||T.sendNotification(J.DidDeleteFilesNotification.type,{files:[{uri:z(x)}]})};return A.jsxs(tt.Provider,{value:{inited:f||!!b,clientRef:v,lastError:b,reload:j},children:[r,A.jsx(Vt,{defaultZoom:i})]})};function zt(){const r=w.useContext(tt);if(r===void 0)throw new Error("useLSP must be used within an LSPContext");return r}const nt=w.createContext(void 0),Gt=w.memo(({children:r})=>{const[n,t]=w.useState(null);return A.jsx(nt.Provider,{value:{editor:n,setEditor:t},children:r})});function rt(){const r=w.useContext(nt),n=w.useState(null);if(r===void 0){const[t,i]=n;return{editor:t,setEditor:i}}return r}var it={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Je=w.createContext&&w.createContext(it),X=globalThis&&globalThis.__assign||function(){return X=Object.assign||function(r){for(var n,t=1,i=arguments.length;t<i;t++){n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(r[s]=n[s])}return r},X.apply(this,arguments)},Zt=globalThis&&globalThis.__rest||function(r,n){var t={};for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&n.indexOf(i)<0&&(t[i]=r[i]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(r);s<i.length;s++)n.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(r,i[s])&&(t[i[s]]=r[i[s]]);return t};function ot(r){return r&&r.map(function(n,t){return w.createElement(n.tag,X({key:t},n.attr),ot(n.child))})}function at(r){return function(n){return w.createElement(Jt,X({attr:X({},r.attr)},n),ot(r.child))}}function Jt(r){var n=function(t){var i=r.attr,s=r.size,u=r.title,d=Zt(r,["attr","size","title"]),l=s||t.size||"1em",f;return t.className&&(f=t.className),r.className&&(f=(f?f+" ":"")+r.className),w.createElement("svg",X({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,i,d,{className:f,style:X(X({color:r.color||t.color},t.style),r.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),u&&w.createElement("title",null,u),r.children)};return Je!==void 0?w.createElement(Je.Consumer,null,function(t){return n(t)}):n(it)}function Ht(r){return at({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"}}]})(r)}function Xt(r){return at({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"}}]})(r)}const st=({lspProps:{lastError:r,reload:n}})=>{const[t,i]=w.useState(!1),s=()=>{n()},u=()=>{i(!1)};return w.useEffect(()=>{i(!!r)},[r]),t?A.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:[A.jsxs("span",{className:"flex flex-1 justify-center gap-1",children:[A.jsx(Xt,{className:"h-4 w-4 text-yellow-600"}),A.jsxs("span",{children:["LSP not loaded."," ",A.jsx("button",{className:"text-primary-dark underline",onClick:s,children:"Reload?"})]})]}),A.jsx("button",{className:"focus:outline-none",children:A.jsx(Ht,{className:"h-4 w-4 text-white",onClick:u})})]}):null},Qt={provideCompletionItems:(r,n)=>{const t=r.getWordUntilPosition(n);return{suggestions:[{label:"device:xs",kind:c.languages.CompletionItemKind.Snippet,documentation:"Media query for phone device",range:new c.Range(n.lineNumber,t.startColumn,n.lineNumber,t.endColumn),insertText:["@media screen and (max-width: ${1:365px}) {"," self {"," ${2:background-color}:${3:red};"," }","}"].join(`
46
- `),insertTextRules:c.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},en="#/definitions/Condition",tn={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","in","nin"]}},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","in","nin"]}},required:["name","type","value","op"]},Reference:{allOf:[{$ref:"#/definitions/Base"}],properties:{type:{const:"reference"},ref:{type:"string"}},required:["type","ref"]}},nn={$ref:en,definitions:tn};function rn(r,n){const t=document.createElement("style");t.dataset.id=n,t.textContent=r,document.head.append(t)}function on(r){return Array.from(document.styleSheets).find(n=>n.ownerNode.getAttribute("data-id")===r)}function an(r,n){const t=[];let i=[];const s=[],u=(m,p,q,F)=>{t.push({startLineNumber:m,endLineNumber:q,startColumn:p,endColumn:F}),h(),f()},d=m=>{s.indexOf(m)<0&&s.push(m)},l=m=>{const p=s.indexOf(m);p<0||s.splice(p,1)},f=()=>{for(const m of s)try{m(i)}catch(p){console.error(p)}},h=()=>{const m=r.getModel();m&&(i=ln(t.map(p=>[m.getOffsetAt({lineNumber:p.startLineNumber,column:p.startColumn}),m.getOffsetAt({lineNumber:p.endLineNumber,column:p.endColumn})]),!0),i.length>0&&(i[0][0]<=0&&(i[0][0]=Number.NEGATIVE_INFINITY),i[i.length-1][1]>=m.getValueLength()&&(i[i.length-1][1]=Number.POSITIVE_INFINITY)))},b=m=>{const p={isDeletion:!1,isAddition:!1,isReplacement:!1};return m.text===""?p.isDeletion=!0:m.range.startLineNumber===m.range.endLineNumber&&m.range.startColumn===m.range.endColumn?p.isAddition=!0:p.isReplacement=!0,p},S=r.onDidChangeModel(m=>{h(),E()}),v=r.onDidChangeModelContent(m=>{if(!m.isUndoing)for(const p of m.changes){const q=b(p);if(q.isReplacement||q.isDeletion||q.isAddition){const F=t.some(U=>p.range.startLineNumber>=U.startLineNumber&&p.range.endLineNumber<=U.endLineNumber&&p.range.startColumn>=U.startColumn&&p.range.endColumn<=U.endColumn),k=!F&&n&&p.range.startLineNumber===1&&p.range.startColumn===1&&!B.hasAttributesString(p.text);if(F||k){const U=r.getModel();if(U){U.undo();return}}}}}),N=()=>{S.dispose(),v.dispose()};let L=[],j=`
46
+ `),insertTextRules:c.languages.CompletionItemInsertTextRule.InsertAsSnippet}]}}},en="#/definitions/Condition",tn={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"]}},nn={$ref:en,definitions:tn};function rn(r,n){const t=document.createElement("style");t.dataset.id=n,t.textContent=r,document.head.append(t)}function on(r){return Array.from(document.styleSheets).find(n=>n.ownerNode.getAttribute("data-id")===r)}function an(r,n){const t=[];let i=[];const s=[],u=(m,p,q,F)=>{t.push({startLineNumber:m,endLineNumber:q,startColumn:p,endColumn:F}),h(),f()},d=m=>{s.indexOf(m)<0&&s.push(m)},l=m=>{const p=s.indexOf(m);p<0||s.splice(p,1)},f=()=>{for(const m of s)try{m(i)}catch(p){console.error(p)}},h=()=>{const m=r.getModel();m&&(i=ln(t.map(p=>[m.getOffsetAt({lineNumber:p.startLineNumber,column:p.startColumn}),m.getOffsetAt({lineNumber:p.endLineNumber,column:p.endColumn})]),!0),i.length>0&&(i[0][0]<=0&&(i[0][0]=Number.NEGATIVE_INFINITY),i[i.length-1][1]>=m.getValueLength()&&(i[i.length-1][1]=Number.POSITIVE_INFINITY)))},b=m=>{const p={isDeletion:!1,isAddition:!1,isReplacement:!1};return m.text===""?p.isDeletion=!0:m.range.startLineNumber===m.range.endLineNumber&&m.range.startColumn===m.range.endColumn?p.isAddition=!0:p.isReplacement=!0,p},S=r.onDidChangeModel(m=>{h(),E()}),v=r.onDidChangeModelContent(m=>{if(!m.isUndoing)for(const p of m.changes){const q=b(p);if(q.isReplacement||q.isDeletion||q.isAddition){const F=t.some(U=>p.range.startLineNumber>=U.startLineNumber&&p.range.endLineNumber<=U.endLineNumber&&p.range.startColumn>=U.startColumn&&p.range.endColumn<=U.endColumn),k=!F&&n&&p.range.startLineNumber===1&&p.range.startColumn===1&&!B.hasAttributesString(p.text);if(F||k){const U=r.getModel();if(U){U.undo();return}}}}}),N=()=>{S.dispose(),v.dispose()};let L=[],j=`
47
47
  .idoc-readonly-mark {
48
48
  cursor: not-allowed;
49
49
  z-index: 1;