Skip to content

Adding a new Bone Edit Widget

A Bone Edit widget is a Vue component that is registered with Type.

Registration

All plugin registrations take place in the App.vue file. It is recommended to use the onMounted hook here. The Vue component must first be imported.

js
import MyCustomStringBone from '@/components/MyCustomStringBone.vue'
import { addBoneWidget } from "@viur/vue-utils/bones/edit/index"
...
onMounted(() => {
    addBoneWidget("str.custom",MyCustomStringBone)
})

ViUR Core Bone Types

To set a custom bone type, you do not need to create a new bone and inherit it from another Bone. Instead, you can set the type according to the definition in the skeleton.

python

url = StringBone(descr = "My Custom Bone") 
url.type = "str.custom"

The Component

The widget must provide the following props:

  • name: the bonename
  • value: the bone value
  • index: in case of a multiple bone the position
  • lang: in case of a multilanguage bone the current language

In addition you might want to use the provided 'boneState':

js
const boneState = inject("boneState")

The boneState contains the following informations:

js
const state: any = reactive({
      bonestructure: the bone structure from core,
      bonevalue: current Value,
      multilanguage: Boolean,
      languages: languages,
      readonly: Boolean,
      required: Boolean,
      hasTooltip: Boolean,
      multiple: Boolean,
      params: boneparams,
      isEmpty:Boolean,
      errorMessages: Array
    })