+
-
-
- {#if hoverTarget.description}
-
+{#if popoverAnchor && hoverTarget}
+
+
+ {#if hoverTarget.description}
+
+
+ {@html hoverTarget.description}
+
+ {/if}
+ {#if hoverTarget.code}
- {@html hoverTarget.description}
-
- {/if}
- {#if hoverTarget.code}
-
- {@html hoverTarget.code}
- {/if}
-
-
+
{@html hoverTarget.code}
+ {/if}
+
+
+{/if}
@@ -173,7 +187,7 @@
@@ -230,7 +244,8 @@
{#each category.bindings as binding}
showBindingPopover(binding, e.target)}
+ on:mouseenter={e =>
+ showBindingPopover(binding, e.currentTarget)}
on:mouseleave={hidePopover}
on:click={() => addBinding(binding)}
>
@@ -264,9 +279,11 @@
{#each filteredHelpers as helper}
showHelperPopover(helper, e.target)}
+ on:mouseenter={e =>
+ showHelperPopover(helper, e.currentTarget)}
on:mouseleave={hidePopover}
- on:click={() => addHelper(helper, mode.name === "javascript")}
+ on:click={() =>
+ addHelper(helper, mode === BindingMode.JavaScript)}
>
{helper.displayText}
diff --git a/packages/builder/src/constants/completions.js b/packages/builder/src/constants/completions.ts
similarity index 62%
rename from packages/builder/src/constants/completions.js
rename to packages/builder/src/constants/completions.ts
index e539a8084a..79cfbf61bf 100644
--- a/packages/builder/src/constants/completions.js
+++ b/packages/builder/src/constants/completions.ts
@@ -1,10 +1,10 @@
import { getManifest, helpersToRemoveForJs } from "@budibase/string-templates"
+import { Helper } from "@budibase/types"
-export function handlebarsCompletions() {
+export function handlebarsCompletions(): Helper[] {
const manifest = getManifest()
-
- return Object.keys(manifest).flatMap(key =>
- Object.entries(manifest[key]).map(([helperName, helperConfig]) => ({
+ return Object.values(manifest).flatMap(helpersObj =>
+ Object.entries(helpersObj).map(([helperName, helperConfig]) => ({
text: helperName,
path: helperName,
example: helperConfig.example,
@@ -14,6 +14,7 @@ export function handlebarsCompletions() {
allowsJs:
!helperConfig.requiresBlock &&
!helpersToRemoveForJs.includes(helperName),
+ args: helperConfig.args,
}))
)
}
diff --git a/packages/client/src/components/app/DataProvider.svelte b/packages/client/src/components/app/DataProvider.svelte
index a80b9a5f74..442125f32b 100644
--- a/packages/client/src/components/app/DataProvider.svelte
+++ b/packages/client/src/components/app/DataProvider.svelte
@@ -2,9 +2,7 @@
import { getContext } from "svelte"
import { Pagination, ProgressCircle } from "@budibase/bbui"
import { fetchData, QueryUtils } from "@budibase/frontend-core"
- import {
- LogicalOperator,
- EmptyFilterOption,
+ import type {
TableSchema,
SortOrder,
SearchFilters,
@@ -14,6 +12,7 @@
GroupUserDatasource,
DataFetchOptions,
} from "@budibase/types"
+ import { LogicalOperator, EmptyFilterOption } from "@budibase/types"
type ProviderDatasource = Exclude<
DataFetchDatasource,
diff --git a/packages/client/src/components/app/blocks/form/FormBlock.svelte b/packages/client/src/components/app/blocks/form/FormBlock.svelte
index 3f44aee1d7..17804b033a 100644
--- a/packages/client/src/components/app/blocks/form/FormBlock.svelte
+++ b/packages/client/src/components/app/blocks/form/FormBlock.svelte
@@ -4,7 +4,7 @@
import { Utils } from "@budibase/frontend-core"
import FormBlockWrapper from "./FormBlockWrapper.svelte"
import { get } from "svelte/store"
- import { TableSchema, UIDatasource } from "@budibase/types"
+ import type { TableSchema, UIDatasource } from "@budibase/types"
type Field = { name: string; active: boolean }
diff --git a/packages/client/src/components/error-states/ComponentErrorState.svelte b/packages/client/src/components/error-states/ComponentErrorState.svelte
index b2e7c92eae..1bcd5f21fa 100644
--- a/packages/client/src/components/error-states/ComponentErrorState.svelte
+++ b/packages/client/src/components/error-states/ComponentErrorState.svelte
@@ -1,7 +1,7 @@