fix(automate): set default input values in function input form (#4728)

This commit is contained in:
Chuck Driesler
2025-05-14 14:09:06 +01:00
committed by GitHub
parent 1d932290d6
commit 18d8ccaae7
4 changed files with 57 additions and 13 deletions
@@ -7,15 +7,18 @@
:uischema="finalUiSchema"
:data="data || {}"
:readonly="readonly"
:ajv="ajv"
@change="onChange"
/>
</form>
</template>
<script setup lang="ts">
import { createAjv } from '@jsonforms/core'
import type { JsonSchema, UISchemaElement } from '@jsonforms/core'
import { JsonForms, type JsonFormsChangeEvent } from '@jsonforms/vue'
import type { Nullable, Optional } from '@speckle/shared'
import { useMounted } from '@vueuse/core'
import type Ajv from 'ajv'
import { omit } from 'lodash-es'
import { useForm } from 'vee-validate'
import { renderers } from '~/lib/form/jsonRenderers'
@@ -39,6 +42,8 @@ const { validate } = useForm()
const isMounted = useMounted()
const internalRef = ref<Nullable<{ jsonforms: { core: JsonFormsChangeEvent } }>>(null)
const data = defineModel<Record<string, unknown>>('data')
// @jsonforms/core vendors ajv with incorrect types for this util
const ajv = createAjv({ useDefaults: true }) as unknown as Ajv
const finalSchema = computed(() => {
const base = props.schema
+3 -2
View File
@@ -29,8 +29,8 @@
"@datadog/browser-rum": "^5.11.0",
"@headlessui/vue": "^1.7.13",
"@heroicons/vue": "^2.0.12",
"@jsonforms/core": "^3.3.0",
"@jsonforms/vue": "^3.3.0",
"@jsonforms/core": "^3.5.1",
"@jsonforms/vue": "^3.5.1",
"@jsonforms/vue-vanilla": "^3.3.0",
"@speckle/shared": "workspace:^",
"@speckle/ui-components": "workspace:^",
@@ -116,6 +116,7 @@
"@types/ua-parser-js": "^0.7.39",
"@typescript-eslint/eslint-plugin": "^7.12.0",
"@typescript-eslint/parser": "^7.12.0",
"ajv": "^8.17.1",
"autoprefixer": "^10.4.14",
"browserify-zlib": "^0.2.0",
"chromatic": "^6.11.4",
@@ -355,14 +355,31 @@ const mocks: SpeckleModuleMocksConfig = FF_AUTOMATE_MODULE_ENABLED
},
'Required Boolean': {
description: faker.lorem.sentence(5),
default: true,
type: 'boolean'
},
Enum: {
description: faker.lorem.sentence(5),
type: 'string',
default: 'bar',
oneOf: [
{
const: 'foo',
title: 'FOO'
},
{
const: 'bar',
title: 'BAR'
}
]
},
Integer: {
description: faker.lorem.sentence(5),
type: 'integer'
},
'Required Integer': {
description: faker.lorem.sentence(5),
default: 2,
type: 'integer'
},
String: {
@@ -371,6 +388,7 @@ const mocks: SpeckleModuleMocksConfig = FF_AUTOMATE_MODULE_ENABLED
},
'Required String': {
description: faker.lorem.sentence(5),
default: 'Foobar',
type: 'string'
}
},
+31 -11
View File
@@ -11877,15 +11877,15 @@ __metadata:
languageName: node
linkType: hard
"@jsonforms/core@npm:^3.3.0":
version: 3.3.0
resolution: "@jsonforms/core@npm:3.3.0"
"@jsonforms/core@npm:^3.5.1":
version: 3.5.1
resolution: "@jsonforms/core@npm:3.5.1"
dependencies:
"@types/json-schema": "npm:^7.0.3"
ajv: "npm:^8.6.1"
ajv-formats: "npm:^2.1.0"
lodash: "npm:^4.17.21"
checksum: 10/75e183195111cd376d44001edb0d60ba1160754bf5409d20444148464acfeb188cb3632650f2d41a1665292239bc22b27cd0097def19618c3acbedf1e0440db2
checksum: 10/f8ef9f86e07d20d1d3feec5bc96fff85a743b8ae98558c57ca8991945d58167c1f04ea701919f39d1b2453bdd340c7b469d71927ded3a079eadd947af4695686
languageName: node
linkType: hard
@@ -11902,15 +11902,15 @@ __metadata:
languageName: node
linkType: hard
"@jsonforms/vue@npm:^3.3.0":
version: 3.3.0
resolution: "@jsonforms/vue@npm:3.3.0"
"@jsonforms/vue@npm:^3.5.1":
version: 3.5.1
resolution: "@jsonforms/vue@npm:3.5.1"
dependencies:
lodash: "npm:^4.17.21"
peerDependencies:
"@jsonforms/core": 3.3.0
"@jsonforms/core": 3.5.1
vue: ^3.2.26
checksum: 10/3cea4a4f2a5267cbf045972a416045b34cee376e1eb60c268d4882b676c83b87e7f34eb2038fe4df8b8e41e6e28240ea524b458afca38f3552059d037f9c577d
checksum: 10/55717175334d1634cb9079426f738c1b7d62aca0d5eb60824e2ee4e8a753bc979173ccefc1621fe045504330a3fd0bf60641076ff045decd4230bae48ac0e15a
languageName: node
linkType: hard
@@ -15669,8 +15669,8 @@ __metadata:
"@graphql-codegen/visitor-plugin-common": "npm:^5.7.1"
"@headlessui/vue": "npm:^1.7.13"
"@heroicons/vue": "npm:^2.0.12"
"@jsonforms/core": "npm:^3.3.0"
"@jsonforms/vue": "npm:^3.3.0"
"@jsonforms/core": "npm:^3.5.1"
"@jsonforms/vue": "npm:^3.5.1"
"@jsonforms/vue-vanilla": "npm:^3.3.0"
"@nuxt/devtools": "npm:^1.7.0"
"@nuxt/eslint": "npm:^1.1.0"
@@ -15721,6 +15721,7 @@ __metadata:
"@vue/apollo-composable": "npm:@speckle/apollo-composable@4.2.1-patch.1"
"@vue/apollo-ssr": "npm:4.0.0"
"@vueuse/core": "npm:^10.9.0"
ajv: "npm:^8.17.1"
apollo-upload-client: "npm:^18.0.1"
autoprefixer: "npm:^10.4.14"
browserify-zlib: "npm:^0.2.0"
@@ -21815,6 +21816,18 @@ __metadata:
languageName: node
linkType: hard
"ajv@npm:^8.17.1":
version: 8.17.1
resolution: "ajv@npm:8.17.1"
dependencies:
fast-deep-equal: "npm:^3.1.3"
fast-uri: "npm:^3.0.1"
json-schema-traverse: "npm:^1.0.0"
require-from-string: "npm:^2.0.2"
checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33
languageName: node
linkType: hard
"ajv@npm:^8.6.1, ajv@npm:~8.12.0":
version: 8.12.0
resolution: "ajv@npm:8.12.0"
@@ -29359,6 +29372,13 @@ __metadata:
languageName: node
linkType: hard
"fast-uri@npm:^3.0.1":
version: 3.0.6
resolution: "fast-uri@npm:3.0.6"
checksum: 10/43c87cd03926b072a241590e49eca0e2dfe1d347ddffd4b15307613b42b8eacce00a315cf3c7374736b5f343f27e27ec88726260eb03a758336d507d6fbaba0a
languageName: node
linkType: hard
"fast-url-parser@npm:^1.1.3":
version: 1.1.3
resolution: "fast-url-parser@npm:1.1.3"