Making sure the caret position is respected in the generic binding popover.

This commit is contained in:
mike12345567 2020-10-27 12:32:48 +00:00
parent 8a844a5922
commit f9eeefb4dc
3 changed files with 21 additions and 10 deletions

View File

@ -63,7 +63,7 @@
} }
}, },
"dependencies": { "dependencies": {
"@budibase/bbui": "^1.44.1", "@budibase/bbui": "^1.47.0",
"@budibase/client": "^0.2.6", "@budibase/client": "^0.2.6",
"@budibase/colorpicker": "^1.0.1", "@budibase/colorpicker": "^1.0.1",
"@fortawesome/fontawesome-free": "^5.14.0", "@fortawesome/fontawesome-free": "^5.14.0",

View File

@ -18,10 +18,20 @@
export let align export let align
export let popover = null export let popover = null
let getCaretPosition
$: categories = Object.entries(groupBy("category", bindings)) $: categories = Object.entries(groupBy("category", bindings))
function onClickBinding(binding) { function onClickBinding(binding) {
value += `{{ ${binding.path} }}` const position = getCaretPosition()
const toAdd = `{{ ${binding.path} }}`
if (position.start) {
value = value.substring(0, position.start)
+ toAdd
+ value.substring(position.end, value.length);
} else {
value += toAdd
}
} }
</script> </script>
@ -54,6 +64,7 @@
</Body> </Body>
<TextArea <TextArea
thin thin
bind:getCaretPosition
bind:value bind:value
placeholder="Add options from the left, type text, or do both" /> placeholder="Add options from the left, type text, or do both" />
<div class="controls"> <div class="controls">

View File

@ -709,19 +709,19 @@
lodash "^4.17.13" lodash "^4.17.13"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
"@budibase/bbui@^1.44.1": "@budibase/bbui@^1.47.0":
version "1.44.1" version "1.47.0"
resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-1.44.1.tgz#1bfca2d3a40a14eb0ba136e24afb7139694b4970" resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-1.47.0.tgz#f7c1f1efff12b2a62eb52536fcc9a037f9b25982"
integrity sha512-joFH++mzFJZkMR3ZSv8Q8cE/qNn8o8aZGbHeO57Smiai3h2tjeTyVLuJ+yt3P1XQ8SE13epAp38kvsPosUpbkQ== integrity sha512-mWOglrEjKSOe7At2gA8HDv5MUvPzFrpGgiikAeMEulvE7sq/SCreXtAps/Jx+RKq/tUMEZkDoA3S5nuQhsNM/A==
dependencies: dependencies:
sirv-cli "^0.4.6" sirv-cli "^0.4.6"
svelte-flatpickr "^2.4.0" svelte-flatpickr "^2.4.0"
svelte-portal "^1.0.0" svelte-portal "^1.0.0"
"@budibase/client@^0.2.4": "@budibase/client@^0.2.6":
version "0.2.4" version "0.2.6"
resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.2.4.tgz#da958faa50c59f6a9c41c692b7a19d6a6ea98bc1" resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.2.6.tgz#de1b4872c7956d386a3b08969eda509bd39d1a64"
integrity sha512-MsFbWcsh3t1lyLgTb4UMccjshy6jd3A77lqs1CpXjHr+2LmXwvIriLgruycAvFrtqZzYG+dGe0rWwX0auwaaZw== integrity sha512-sSoGN0k2Tcc5GewBjFMN+G3h21O9JvakYI33kBKgEVGrdEQLBbry7vRKb+lALeW2Bz65gafZL2joZzL8vnH0lw==
dependencies: dependencies:
deep-equal "^2.0.1" deep-equal "^2.0.1"
mustache "^4.0.1" mustache "^4.0.1"