diff options
-rw-r--r-- | package-lock.json | 27 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | src/client/views/nodes/ScriptingBox.tsx | 44 |
3 files changed, 43 insertions, 30 deletions
diff --git a/package-lock.json b/package-lock.json index af474ff88..3cf4ac4af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -412,15 +412,6 @@ "integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==", "dev": true }, - "@types/chrome": { - "version": "0.0.114", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.114.tgz", - "integrity": "sha512-i7qRr74IrxHtbnrZSKUuP5Uvd5EOKwlwJq/yp7+yTPihOXnPhNQO4Z5bqb1XTnrjdbUKEJicaVVbhcgtRijmLA==", - "requires": { - "@types/filesystem": "*", - "@types/har-format": "*" - } - }, "@types/color": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.1.tgz", @@ -556,19 +547,6 @@ "express-validator": "*" } }, - "@types/filesystem": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", - "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", - "requires": { - "@types/filewriter": "*" - } - }, - "@types/filewriter": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", - "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" - }, "@types/formidable": { "version": "1.0.31", "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.31.tgz", @@ -606,11 +584,6 @@ "integrity": "sha512-L8O9HAVFZj0TuiS8h5ORthiMsrrhjxTC8XUusp5k47oXCst4VTm+qWKvrAvmYMybZVokbp4Udco1mNwJrTNZPQ==", "dev": true }, - "@types/har-format": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", - "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" - }, "@types/jquery": { "version": "3.3.36", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.36.tgz", diff --git a/package.json b/package.json index ff13cf2d5..9b5b7580a 100644 --- a/package.json +++ b/package.json @@ -231,4 +231,4 @@ "xoauth2": "^1.2.0", "xregexp": "^4.3.0" } -}
\ No newline at end of file +} diff --git a/src/client/views/nodes/ScriptingBox.tsx b/src/client/views/nodes/ScriptingBox.tsx index 245081c47..10f414821 100644 --- a/src/client/views/nodes/ScriptingBox.tsx +++ b/src/client/views/nodes/ScriptingBox.tsx @@ -38,6 +38,7 @@ export class ScriptingBox extends ViewBoxAnnotatableComponent<FieldViewProps, Sc @observable private _errorMessage: string = ""; @observable private _applied: boolean = false; @observable private _hovered: boolean = false; + @observable private _spaced: boolean = false; @observable private _scriptKeys: any = Scripting.getGlobals(); @observable private _scriptGlobals: any = Scripting.getGlobalObj(); @observable private _currWord: string = ""; @@ -451,7 +452,7 @@ export class ScriptingBox extends ViewBoxAnnotatableComponent<FieldViewProps, Sc trace(); return <div style={{ width: this.compileParams.length > 0 ? "70%" : "100%" }}> <ReactTextareaAutocomplete className="ScriptingBox-textarea" style={{ resize: "none", height: "100%" }} - minChar={0} + minChar={1} placeholder="write your script here" onFocus={this.onFocus} onBlur={() => this._overlayDisposer?.()} @@ -483,10 +484,49 @@ export class ScriptingBox extends ViewBoxAnnotatableComponent<FieldViewProps, Sc } </div>, output: (item: any, trigger) => trigger + item.trim(), + }, + ".": { + dataProvider: (token: any) => this.handleToken(token), + component: ({ entity: value }) => + <div> + <div style={{ fontSize: "14px" }} + onMouseEnter={() => this.setHovered(true)} + onMouseLeave={() => this.setHovered(false)}> + {value} + </div> + {!this._hovered ? (null) : + <> + <div key="desc" style={{ fontSize: "10px" }}>{this.getDescription(value)}</div> + <div key="params" style={{ fontSize: "10px" }}>{this.getParams(value)}</div> + </> + } + </div>, + output: (item: any, trigger) => { + this._spaced = true; + return trigger + item.trim(); + }, } }} - onCaretPositionChange={(number: any) => this.caretPos = number} + onCaretPositionChange={(number: any) => { + this.caretPos = number; + if (this.caretPos === 0) { + this.rawScript = " " + this.rawScript; + } else if (this._spaced) { + this._spaced = false; + if (this.rawScript[this.rawScript.length - 1] === " ") { + this.rawScript = this.rawScript.slice(0, this.rawScript.length - 1); + } + } + }} + + // onClick={() => this.rawScript = this.rawScript[this.rawScript.length - 1]} + + // onKeyPress={e => { + // if (e.key === "Enter" || e.key === "Tab") { + // this.rawScript = this.rawScript[this.rawScript.length - 1]; + // } + // }} /> </div>; } |