{"version":3,"file":"index.umd.cjs","sources":["../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../src/composables/useFormioRef.ts","../src/components/Form.ts","../src/components/FormBuilder.ts"],"sourcesContent":["import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n  const as = (out, index) => {\n    $.set(index, out);\n    return out;\n  };\n\n  const unpair = index => {\n    if ($.has(index))\n      return $.get(index);\n\n    const [type, value] = _[index];\n    switch (type) {\n      case PRIMITIVE:\n      case VOID:\n        return as(value, index);\n      case ARRAY: {\n        const arr = as([], index);\n        for (const index of value)\n          arr.push(unpair(index));\n        return arr;\n      }\n      case OBJECT: {\n        const object = as({}, index);\n        for (const [key, index] of value)\n          object[unpair(key)] = unpair(index);\n        return object;\n      }\n      case DATE:\n        return as(new Date(value), index);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as(new RegExp(source, flags), index);\n      }\n      case MAP: {\n        const map = as(new Map, index);\n        for (const [key, index] of value)\n          map.set(unpair(key), unpair(index));\n        return map;\n      }\n      case SET: {\n        const set = as(new Set, index);\n        for (const index of value)\n          set.add(unpair(index));\n        return set;\n      }\n      case ERROR: {\n        const {name, message} = value;\n        return as(new env[name](message), index);\n      }\n      case BIGINT:\n        return as(BigInt(value), index);\n      case 'BigInt':\n        return as(Object(BigInt(value)), index);\n      case 'ArrayBuffer':\n        return as(new Uint8Array(value).buffer, value);\n      case 'DataView': {\n        const { buffer } = new Uint8Array(value);\n        return as(new DataView(buffer), value);\n      }\n    }\n    return as(new env[type](value), index);\n  };\n\n  return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n  const type = typeof value;\n  if (type !== 'object' || !value)\n    return [PRIMITIVE, type];\n\n  const asString = toString.call(value).slice(8, -1);\n  switch (asString) {\n    case 'Array':\n      return [ARRAY, EMPTY];\n    case 'Object':\n      return [OBJECT, EMPTY];\n    case 'Date':\n      return [DATE, EMPTY];\n    case 'RegExp':\n      return [REGEXP, EMPTY];\n    case 'Map':\n      return [MAP, EMPTY];\n    case 'Set':\n      return [SET, EMPTY];\n    case 'DataView':\n      return [ARRAY, asString];\n  }\n\n  if (asString.includes('Array'))\n    return [ARRAY, asString];\n\n  if (asString.includes('Error'))\n    return [ERROR, asString];\n\n  return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n  TYPE === PRIMITIVE &&\n  (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n  const as = (out, value) => {\n    const index = _.push(out) - 1;\n    $.set(value, index);\n    return index;\n  };\n\n  const pair = value => {\n    if ($.has(value))\n      return $.get(value);\n\n    let [TYPE, type] = typeOf(value);\n    switch (TYPE) {\n      case PRIMITIVE: {\n        let entry = value;\n        switch (type) {\n          case 'bigint':\n            TYPE = BIGINT;\n            entry = value.toString();\n            break;\n          case 'function':\n          case 'symbol':\n            if (strict)\n              throw new TypeError('unable to serialize ' + type);\n            entry = null;\n            break;\n          case 'undefined':\n            return as([VOID], value);\n        }\n        return as([TYPE, entry], value);\n      }\n      case ARRAY: {\n        if (type) {\n          let spread = value;\n          if (type === 'DataView') {\n            spread = new Uint8Array(value.buffer);\n          }\n          else if (type === 'ArrayBuffer') {\n            spread = new Uint8Array(value);\n          }\n          return as([type, [...spread]], value);\n        }\n\n        const arr = [];\n        const index = as([TYPE, arr], value);\n        for (const entry of value)\n          arr.push(pair(entry));\n        return index;\n      }\n      case OBJECT: {\n        if (type) {\n          switch (type) {\n            case 'BigInt':\n              return as([type, value.toString()], value);\n            case 'Boolean':\n            case 'Number':\n            case 'String':\n              return as([type, value.valueOf()], value);\n          }\n        }\n\n        if (json && ('toJSON' in value))\n          return pair(value.toJSON());\n\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const key of keys(value)) {\n          if (strict || !shouldSkip(typeOf(value[key])))\n            entries.push([pair(key), pair(value[key])]);\n        }\n        return index;\n      }\n      case DATE:\n        return as([TYPE, value.toISOString()], value);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as([TYPE, {source, flags}], value);\n      }\n      case MAP: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const [key, entry] of value) {\n          if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n            entries.push([pair(key), pair(entry)]);\n        }\n        return index;\n      }\n      case SET: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const entry of value) {\n          if (strict || !shouldSkip(typeOf(entry)))\n            entries.push(pair(entry));\n        }\n        return index;\n      }\n    }\n\n    const {message} = value;\n    return as([TYPE, {name: type, message}], value);\n  };\n\n  return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n *  if `true`, will not throw errors on incompatible types, and behave more\n *  like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n  const _ = [];\n  return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n  /* c8 ignore start */\n  (any, options) => (\n    options && ('json' in options || 'lossy' in options) ?\n      deserialize(serialize(any, options)) : structuredClone(any)\n  ) :\n  (any, options) => deserialize(serialize(any, options));\n  /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import { ref, Ref, h } from 'vue';\n\nexport default function useFormioRef() {\n  const formioRef = ref() as Ref<HTMLDivElement>;\n\n  const render = () => h('div', { ref: formioRef });\n\n  return {\n    formioRef,\n    render,\n  };\n};\n","import { defineComponent, ref, onMounted, onBeforeUnmount, watch, CSSProperties, PropType, Prop, toRefs, toRaw } from 'vue';\nimport { EventEmitter, Form as FormClass, Webform } from '@formio/js';\nimport structuredClone from '@ungap/structured-clone';\nimport { FormConstructor, FormHandlers, FormProps, FormSource } from '../types';\nimport useFormioRef from '../composables/useFormioRef';\n\nconst getDefaultEmitter = () => {\n  return new EventEmitter({\n    wildcard: false,\n    maxListeners: 0,\n  });\n};\n\nconst onAnyEvent = (\n  handlers: FormHandlers,\n  ...args: [string, ...any[]]\n) => {\n  const [event, ...outputArgs] = args;\n  if (event.startsWith('formio.')) {\n    const funcName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n    switch (funcName) {\n      case 'onPrevPage':\n        if (handlers.onPrevPage) handlers.onPrevPage(outputArgs[0], outputArgs[1]);\n        break;\n      case 'onNextPage':\n        if (handlers.onNextPage) handlers.onNextPage(outputArgs[0], outputArgs[1]);\n        break;\n      case 'onCancelSubmit':\n        if (handlers.onCancelSubmit) handlers.onCancelSubmit();\n        break;\n      case 'onCancelComponent':\n        if (handlers.onCancelComponent) handlers.onCancelComponent(outputArgs[0]);\n        break;\n      case 'onChange':\n        if (handlers.onChange) handlers.onChange(outputArgs[0], outputArgs[1], outputArgs[2]);\n        break;\n      case 'onCustomEvent':\n        if (handlers.onCustomEvent) handlers.onCustomEvent(outputArgs[0]);\n        break;\n      case 'onComponentChange':\n        if (handlers.onComponentChange) handlers.onComponentChange(outputArgs[0]);\n        break;\n      case 'onSubmit':\n        if (handlers.onSubmit) handlers.onSubmit(outputArgs[0], outputArgs[1]);\n        break;\n      case 'onSubmitDone':\n        if (handlers.onSubmitDone) handlers.onSubmitDone(outputArgs[0]);\n        break;\n      case 'onSubmitError':\n        if (handlers.onSubmitError) handlers.onSubmitError(outputArgs[0]);\n        break;\n      case 'onFormLoad':\n        if (handlers.onFormLoad) handlers.onFormLoad(outputArgs[0]);\n        break;\n      case 'onError':\n        if (handlers.onError) handlers.onError(outputArgs[0]);\n        break;\n      case 'onRender':\n        if (handlers.onRender) handlers.onRender(outputArgs[0]);\n        break;\n      case 'onAttach':\n        if (handlers.onAttach) handlers.onAttach(outputArgs[0]);\n        break;\n      case 'onBuild':\n        if (handlers.onBuild) handlers.onBuild(outputArgs[0]);\n        break;\n      case 'onFocus':\n        if (handlers.onFocus) handlers.onFocus(outputArgs[0]);\n        break;\n      case 'onBlur':\n        if (handlers.onBlur) handlers.onBlur(outputArgs[0]);\n        break;\n      case 'onInitialized':\n        if (handlers.onInitialized) handlers.onInitialized();\n        break;\n      case 'onLanguageChanged':\n        if (handlers.onLanguageChanged) handlers.onLanguageChanged();\n        break;\n      case 'onBeforeSetSubmission':\n        if (handlers.onBeforeSetSubmission) handlers.onBeforeSetSubmission(outputArgs[0]);\n        break;\n      case 'onSaveDraftBegin':\n        if (handlers.onSaveDraftBegin) handlers.onSaveDraftBegin();\n        break;\n      case 'onSaveDraft':\n        if (handlers.onSaveDraft) handlers.onSaveDraft(outputArgs[0]);\n        break;\n      case 'onRestoreDraft':\n        if (handlers.onRestoreDraft) handlers.onRestoreDraft(outputArgs[0]);\n        break;\n      case 'onSubmissionDeleted':\n        if (handlers.onSubmissionDeleted) handlers.onSubmissionDeleted(outputArgs[0]);\n        break;\n      case 'onRequestDone':\n        if (handlers.onRequestDone) handlers.onRequestDone();\n        break;\n      default:\n        break;\n    }\n  }\n  if (handlers.otherEvents && handlers.otherEvents[event]) {\n    handlers.otherEvents[event](...outputArgs);\n  }\n};\n\nconst createWebformInstance = async (\n  FormConstructor: FormConstructor | undefined,\n  formSource: FormSource,\n  element: HTMLDivElement,\n  options: FormProps['options'] = {}\n) => {\n  if (!options?.events) {\n    options.events = getDefaultEmitter();\n  }\n  if (typeof formSource !== 'string') {\n    formSource = structuredClone(toRaw(formSource));\n  }\n  const promise = FormConstructor\n    ? new FormConstructor(element, formSource, options)\n    : new FormClass(element, formSource, options);\n  const instance = await promise.ready;\n  return instance;\n};\n\nconst getEffectiveProps = (props: FormProps) => {\n  const { FormClass, formioform, form, src, formReady, onFormReady } = props;\n  const formConstructor = FormClass !== undefined ? FormClass : formioform;\n  const formSource = form !== undefined ? form : src;\n  const formReadyCallback = onFormReady !== undefined ? onFormReady : formReady;\n  return { formConstructor, formSource, formReadyCallback };\n};\n\nexport const Form = defineComponent({\n  name: 'FormComponent',\n  props: {\n    className: String as PropType<FormProps['className']>,\n    style: Object as PropType<FormProps['style']>,\n    src: [String, Object] as PropType<FormProps['src']>,\n    url: String as PropType<FormProps['url']>,\n    form: Object as PropType<FormProps['form']>,\n    submission: Object as PropType<FormProps['submission']>,\n    options: Object as PropType<FormProps['options']>,\n    formioform: Object as PropType<FormProps['formioform']>,\n    FormClass: Object as PropType<FormProps['FormClass']>,\n    formReady: Function as PropType<FormProps['formReady']>,\n    onFormReady: Function as PropType<FormProps['onFormReady']>,\n    onPrevPage: Function as PropType<FormProps['onPrevPage']>,\n    onNextPage: Function as PropType<FormProps['onNextPage']>,\n    onCancelSubmit: Function as PropType<FormProps['onCancelSubmit']>,\n    onCancelComponent: Function as PropType<FormProps['onCancelComponent']>,\n    onChange: Function as PropType<FormProps['onChange']>,\n    onCustomEvent: Function as PropType<FormProps['onCustomEvent']>,\n    onComponentChange: Function as PropType<FormProps['onComponentChange']>,\n    onSubmit: Function as PropType<FormProps['onSubmit']>,\n    onSubmitDone: Function as PropType<FormProps['onSubmitDone']>,\n    onSubmitError: Function as PropType<FormProps['onSubmitError']>,\n    onFormLoad: Function as PropType<FormProps['onFormLoad']>,\n    onError: Function as PropType<FormProps['onError']>,\n    onRender: Function as PropType<FormProps['onRender']>,\n    onAttach: Function as PropType<FormProps['onAttach']>,\n    onBuild: Function as PropType<FormProps['onBuild']>,\n    onFocus: Function as PropType<FormProps['onFocus']>,\n    onBlur: Function as PropType<FormProps['onBlur']>,\n    onInitialized: Function as PropType<FormProps['onInitialized']>,\n    onLanguageChanged: Function as PropType<FormProps['onLanguageChanged']>,\n    onBeforeSetSubmission: Function as PropType<FormProps['onBeforeSetSubmission']>,\n    onSaveDraftBegin: Function as PropType<FormProps['onSaveDraftBegin']>,\n    onSaveDraft: Function as PropType<FormProps['onSaveDraft']>,\n    onRestoreDraft: Function as PropType<FormProps['onRestoreDraft']>,\n    onSubmissionDeleted: Function as PropType<FormProps['onSubmissionDeleted']>,\n    onRequestDone: Function as PropType<FormProps['onRequestDone']>,\n    otherEvents: Object as PropType<FormProps['otherEvents']>,\n  },\n  setup(props, context) {\n    const { formioRef, render } = useFormioRef();\n    const formInstance = ref<Webform | null>(null);\n    const instanceIsReady = ref(false);\n\n    const {\n      src,\n      form,\n      submission,\n      url,\n      options,\n      formioform,\n      formReady,\n      FormClass,\n      style,\n      className,\n      ...handlers\n    } = props;\n\n    const createInstance = async () => {\n      const { formConstructor, formSource, formReadyCallback } = getEffectiveProps(props);\n\n      if (formioRef.value === null) {\n        console.warn('Form element not found');\n        return;\n      }\n      if (typeof formSource === 'undefined') {\n        console.warn('Form source not found');\n        return;\n      }\n      const instance = await createWebformInstance(formConstructor, formSource, formioRef.value, props.options);\n      if (instance) {\n        if (typeof formSource === 'string') {\n          instance.src = formSource;\n        } else if (typeof formSource === 'object') {\n          instance.form = formSource;\n          if (props.url) {\n            instance.url = props.url;\n          }\n        }\n        formReadyCallback?.(instance);\n        formInstance.value = instance;\n        instanceIsReady.value = true;\n      } else {\n        console.warn('Failed to create form instance');\n      }\n    };\n\n    const cleanupInstance = () => {\n      instanceIsReady.value = false;\n      if (formInstance.value) {\n        formInstance.value.destroy(true);\n      }\n    };\n\n    onMounted(() => {\n      createInstance();\n    });\n\n    onBeforeUnmount(() => {\n      cleanupInstance();\n    });\n\n    watch(\n      () => [\n        props.FormClass,\n        props.formioform,\n        props.onFormReady,\n        props.formReady,\n        props.form,\n        props.src,\n        props.options,\n        props.url,\n      ],\n      () => {\n        if (instanceIsReady.value) {\n          cleanupInstance();\n        }\n        createInstance();\n      },\n    );\n\n    watch(\n      () => [\n        instanceIsReady.value,\n        props.submission\n      ],\n      () => {\n        if (instanceIsReady.value && formInstance.value && props.submission) {\n          formInstance.value.submission = props.submission;\n        }\n      }\n    );\n\n    watch(\n      () => [\n        instanceIsReady.value,\n        handlers,\n      ],\n      (newValue, oldValue, onCleanup) => {\n        if (instanceIsReady.value && formInstance.value && Object.keys(handlers).length > 0) {\n          formInstance.value.onAny((...args: [string, ...any[]]) => onAnyEvent(handlers, ...args));\n        }\n        onCleanup(() => {\n          if (instanceIsReady.value && formInstance.value && Object.keys(handlers).length > 0) {\n            formInstance.value.offAny((...args: [string, ...any[]]) => onAnyEvent(handlers, ...args));\n          }\n        });\n      },\n      { immediate: true }\n    );\n\n    context.expose({ formio: formInstance });\n\n    return render;\n  }\n});\n","import { defineComponent, h, onMounted, onBeforeUnmount, ref, watch, PropType, toRaw } from 'vue';\nimport { FormBuilder as FormioFormBuilder } from '@formio/js';\nimport { Component } from '@formio/core';\nimport structuredClone from '@ungap/structured-clone';\nimport { FormBuilderHandlers, FormBuilderProps, FormType } from '../types';\nimport useFormioRef from '../composables/useFormioRef';\n\nconst toggleEventHandlers = (\n  builder: FormioFormBuilder,\n  handlers: FormBuilderHandlers,\n  shouldAttach: boolean = true,\n) => {\n  const fn = shouldAttach ? 'on' : 'off';\n  const {\n    onSaveComponent,\n    onEditComponent,\n    onUpdateComponent,\n    onDeleteComponent,\n    onChange,\n  } = handlers;\n  builder.instance[fn](\n    'saveComponent',\n    (\n      component: Component,\n      original: Component,\n      parent: Component,\n      path: string,\n      index: number,\n      isNew: boolean,\n      originalComponentSchema: Component,\n    ) => {\n      onSaveComponent?.(\n        component,\n        original,\n        parent,\n        path,\n        index,\n        isNew,\n        originalComponentSchema,\n      );\n      onChange?.(structuredClone(toRaw(builder.instance.form)));\n    },\n  );\n  builder.instance[fn]('updateComponent', (component: Component) => {\n    onUpdateComponent?.(component);\n    onChange?.(structuredClone(toRaw(builder.instance.form)));\n  });\n  builder.instance[fn](\n    'removeComponent',\n    (\n      component: Component,\n      parent: Component,\n      path: string,\n      index: number,\n    ) => {\n      onDeleteComponent?.(component, parent, path, index);\n      onChange?.(structuredClone(toRaw(builder.instance.form)));\n    },\n  );\n\n  builder.instance[fn]('cancelComponent', (component: Component) => {\n    onUpdateComponent?.(component);\n    onChange?.(structuredClone(toRaw(builder.instance.form)));\n  });\n\n  builder.instance[fn]('editComponent', (component: Component) => {\n    onEditComponent?.(component);\n    onChange?.(structuredClone(toRaw(builder.instance.form)));\n  });\n\n  builder.instance[fn]('addComponent', () => {\n    onChange?.(structuredClone(toRaw(builder.instance.form)));\n  });\n\n  builder.instance[fn]('pdfUploaded', () => {\n    onChange?.(structuredClone(toRaw(builder.instance.form)));\n  });\n};\n\nconst createBuilderInstance = async (\n  element: HTMLDivElement,\n  form: FormType = { display: 'form', components: [] },\n  options: FormBuilderProps['options'] = {},\n): Promise<FormioFormBuilder> => {\n  options = Object.assign({}, options);\n  form = Object.assign({}, form);\n\n  const instance = new FormioFormBuilder(element, form, options);\n\n  await instance.ready;\n  return instance;\n};\n\nconst DEFAULT_FORM: FormType = { display: 'form' as const, components: [] };\n\nexport const FormBuilder = defineComponent({\n  name: 'FormBuilder',\n  props: {\n    options: Object as PropType<FormBuilderProps['options']>,\n    initialForm: {\n      type: Object as PropType<FormType>,\n      default: () => DEFAULT_FORM,\n    },\n    onBuilderReady: Function as PropType<FormBuilderProps['onBuilderReady']>,\n    onChange: Function as PropType<FormBuilderProps['onChange']>,\n    onSaveComponent: Function as PropType<FormBuilderProps['onSaveComponent']>,\n    onEditComponent: Function as PropType<FormBuilderProps['onEditComponent']>,\n    onUpdateComponent: Function as PropType<FormBuilderProps['onUpdateComponent']>,\n    onDeleteComponent: Function as PropType<FormBuilderProps['onDeleteComponent']>,\n  },\n  setup(props, context) {\n    const { formioRef, render } = useFormioRef();\n    const builder = ref<FormioFormBuilder | null>(null);\n    const instanceIsReady = ref(false);\n\n    const createInstance = async () => {\n      if (!formioRef.value) {\n        console.warn(\n          'FormBuilder render element not found, cannot render builder.',\n        );\n        return;\n      }\n      const instance = await createBuilderInstance(\n        formioRef.value,\n        structuredClone(props.initialForm),\n        props.options,\n      );\n      if (instance) {\n        if (props.onBuilderReady) {\n          props.onBuilderReady(instance);\n        }\n        builder.value = instance;\n        instanceIsReady.value = true;\n      } else {\n        console.warn('Failed to create FormBuilder instance');\n      }\n    };\n\n    const cleanupInstance = () => {\n      instanceIsReady.value = false;\n      if (builder.value) {\n        builder.value.instance.destroy(true);\n      }\n    }\n\n    watch(\n      () => [\n        props.initialForm,\n        props.options,\n        props.onBuilderReady,\n      ],\n      () => {\n        if (instanceIsReady.value) {\n          cleanupInstance();\n        }\n        createInstance();\n      },\n    );\n\n    onMounted(() => {\n      createInstance();\n    });\n\n    onBeforeUnmount(() => {\n      cleanupInstance();\n    });\n\n    watch(\n      () => [\n        props.initialForm,\n        props.options,\n        props.onBuilderReady,\n      ],\n      () => {\n        if (instanceIsReady.value) {\n          cleanupInstance();\n        }\n        createInstance();\n      },\n    );\n\n    watch(\n      () => [\n        instanceIsReady.value,\n        props.onChange,\n        props.onDeleteComponent,\n        props.onEditComponent,\n        props.onSaveComponent,\n        props.onUpdateComponent,\n      ],\n      (newValues, oldValues, onCleanup) => {\n        if (instanceIsReady.value && builder.value) {\n          toggleEventHandlers(builder.value, {\n            onChange: props.onChange,\n            onDeleteComponent: props.onDeleteComponent,\n            onEditComponent: props.onEditComponent,\n            onSaveComponent: props.onSaveComponent,\n            onUpdateComponent: props.onUpdateComponent,\n          });\n        }\n\n        onCleanup(() => {\n          if (instanceIsReady.value && builder.value) {\n            toggleEventHandlers(\n              builder.value,\n              {\n                onChange: props.onChange,\n                onDeleteComponent: props.onDeleteComponent,\n                onEditComponent: props.onEditComponent,\n                onSaveComponent: props.onSaveComponent,\n                onUpdateComponent: props.onUpdateComponent,\n              },\n              false,\n            );\n          }\n        });\n      },\n      { immediate: true },\n    );\n\n    context.expose({ builder });\n\n    return render;\n  },\n});\n"],"names":["env","deserializer","$","_","as","out","index","unpair","type","value","arr","object","key","source","flags","map","set","name","message","buffer","deserialize","serialized","EMPTY","toString","keys","typeOf","asString","shouldSkip","TYPE","serializer","strict","json","pair","entry","spread","entries","serialize","lossy","structuredClone$1","any","options","useFormioRef","formioRef","ref","h","getDefaultEmitter","EventEmitter","onAnyEvent","handlers","args","event","outputArgs","createWebformInstance","FormConstructor","formSource","element","structuredClone","toRaw","FormClass","getEffectiveProps","props","formioform","form","src","formReady","onFormReady","Form","defineComponent","context","render","formInstance","instanceIsReady","submission","url","style","className","createInstance","formConstructor","formReadyCallback","instance","cleanupInstance","onMounted","onBeforeUnmount","watch","newValue","oldValue","onCleanup","toggleEventHandlers","builder","shouldAttach","fn","onSaveComponent","onEditComponent","onUpdateComponent","onDeleteComponent","onChange","component","original","parent","path","isNew","originalComponentSchema","createBuilderInstance","FormioFormBuilder","DEFAULT_FORM","FormBuilder","newValues","oldValues"],"mappings":"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","x_google_ignoreList":[0,1,2]}