'use strict';require('./es.array.map-4cfed4ef.js');var normalizeComponent=require('./normalize-component-d9981c57.js');require('./es.array.includes-3990bfec.js'),require('./es.string.includes-ec03e639.js');var objectSpread2=require('./objectSpread2-56f1d323.js'),_typeof=require('./typeof-6b9e62b8.js');require('./es.object.to-string-f27a75a8.js'),require('./es.number.constructor-daccdeab.js'),require('./es.object.keys-c57f02bd.js'),require('./es.array.concat-bb8715dc.js'),require('./es.array.filter-6fabfac0.js'),require('./es.json.stringify-f88f52bf.js');var i18n=require('./i18n-68e039d3.js');require('./export-61511812.js'),require('./array-iteration-f8b4483d.js'),require('./function-bind-context-e4685306.js'),require('./array-species-create-c414c2ec.js'),require('./array-method-has-species-support-983ac207.js'),require('./object-keys-12f2c5e5.js'),require('./is-regexp-d6f1551e.js'),require('./classof-819fc780.js'),require('./object-set-prototype-of-dfa14cf5.js'),require('./create-property-240c71a5.js'),require('./regexp-exec-abstract-216cd44a.js'),require('./string-multibyte-a2dff6e3.js'),require('./regexp-flags-abc49c4a.js'),require('./es.string.split-98e29ede.js');/**
 * A component for form field creation via [openAPI](https://www.openapis.org/) standard
 */

var script = {
  name: 'BaseFormFieldCreator',
  components: {
    BaseDropDown: function BaseDropDown() {
      return Promise.resolve().then(function(){return require('./BaseDropDown-4a0b6727.js')});
    },
    BaseDateInput: function BaseDateInput() {
      return Promise.resolve().then(function(){return require('./BaseDateInput-50c2f6e3.js')});
    },
    BaseForm: function BaseForm() {
      return Promise.resolve().then(function(){return require('./BaseForm-a0a52bf6.js')});
    },
    BaseToggle: function BaseToggle() {
      return Promise.resolve().then(function(){return require('./BaseToggle-aedfaea7.js')});
    },
    BaseLink: function BaseLink() {
      return Promise.resolve().then(function(){return require('./BaseLink-18fd39a4.js')});
    }
  },
  mixins: [i18n.i],
  props: {
    /**
     * a key to uniquely identify the field
     */
    fieldKey: {
      type: [Number, String],
      required: true
    },

    /**
     * field information as provided by swagger standard
     */
    field: {
      type: Object,
      required: true
    },

    /**
     * the field value
     */
    fieldValue: {
      type: [Object, String, Array, Date, Number, Boolean],
      required: true
    },

    /**
     * a label for the field
     */
    label: {
      type: String,
      default: ''
    },

    /**
     * a placeholder for the field<br>
     * per default the placeholder attribute in swagger x-attributes will be used
     * (no need to specify that)
     */
    placeholder: {
      type: [String, Object],
      default: ''
    },

    /**
     * provide a options list for autocomplete, chips or chips-below fields
     */
    dropDownList: {
      type: Array,
      default: function _default() {
        return [];
      }
    },

    /**
     * provide a second options list (needed e.g. for texts field (text type) or
     * contributors field (roles)
     */
    secondaryDropdown: {
      type: Array,
      default: function _default() {
        return [];
      }
    },

    /**
     * provide data for elements that have a hover box (chips)
     */
    hoverBoxData: {
      type: Object,
      default: function _default() {
        return {};
      }
    },

    /**
     * possibility to steer field loading (chips, autocomplete) from outside
     */
    autocompleteLoading: {
      type: Boolean,
      default: false
    },

    /**
     * set the current language
     */
    language: {
      type: String,
      default: 'en'
    },

    /**
     * provide available locales
     */
    availableLocales: {
      type: Array,
      default: function _default() {
        return [];
      }
    },

    /**
     * set a sorting text
     */
    sortText: {
      type: String,
      default: 'Sort A - Z'
    },

    /**
     * pass down all necessary options for potential subform<br>
     *   @see [BaseForm props](#baseform)
     */
    fieldGroupParams: {
      type: Object,
      default: function _default() {
        return {};
      }
    },

    /**
     * mark as required field (currently only used for aria-required)
     */
    required: {
      type: Boolean,
      default: false
    },

    /**
     * mark the form field as invalid and ideally also provide an error message
     * to display below the form field<br>
     * for an example see [BaseInput](#baseinput)
     */
    invalid: {
      type: Boolean,
      default: false
    },

    /**
     * add an error message to be displayed below form field if field is invalid<br>
     * for an example see [BaseInput](#baseinput)
     */
    errorMessage: {
      type: String,
      default: ''
    },

    /**
     * define if error icon should be shown<br>
     * for an example see [BaseInput](#baseinput)
     */
    showErrorIcon: {
      type: Boolean,
      default: true
    },

    /**
     * if true a remove icon will be shown allowing to remove
     * all input at once<br>
     * for an example see [BaseInput](#baseinput)
     */
    clearable: {
      type: Boolean,
      default: true
    },

    /**
     * specify the object property that should be used as identifier
     */
    identifierPropertyName: {
      type: String,
      default: 'source'
    },

    /**
     * specify the object property that should be used as value to be displayed
     */
    labelPropertyName: {
      type: String,
      default: 'label'
    }
  },
  data: function data() {
    return {
      /**
       * internal representation of field value
       * @type {any}
       */
      fieldValueInt: null,

      /**
       * variable for current text input in chips fields
       * @type {string}
       */
      textInput: '',

      /**
       * internal loading indicator
       * @type {boolean}
       */
      fetchingData: false,

      /**
       * internal active tab for multiline text field
       * @type {string}
       */
      activeTab: ''
    };
  },
  computed: {
    /**
     * import the relevant component
     * @returns {(function(): *)|null|}
     */
    fieldElement: function fieldElement() {
      if (this.fieldType === 'text') {
        return function () {
          return Promise.resolve().then(function(){return require('./BaseInput-6885694c.js')});
        };
      }

      if (this.fieldType === 'multiline') {
        return function () {
          return Promise.resolve().then(function(){return require('./BaseMultilineTextInput-2dc0073e.js')});
        };
      }

      if (this.fieldType === 'autocomplete') {
        return function () {
          return Promise.resolve().then(function(){return require('./BaseAutocompleteInput-c77819fa.js')});
        };
      }

      if (this.fieldType === 'chips') {
        return function () {
          return Promise.resolve().then(function(){return require('./BaseChipsInput-5bca9164.js')});
        };
      }

      if (this.fieldType === 'chips-below') {
        return function () {
          return Promise.resolve().then(function(){return require('./BaseChipsBelow-cc884247.js')});
        };
      }

      return null;
    },

    /**
     * check which date field type was provided and set type accordingly
     * @returns {string}
     */
    dateType: function dateType() {
      // check if date is an Object with properties or just string (= single date)
      if (!this.field.properties) {
        return 'single';
      }

      var props = Object.keys(this.field.properties);

      if (props.includes('date_to') && props.includes('time_to')) {
        return 'daterangetimerange';
      }

      if (props.includes('date') && props.includes('time_to')) {
        return 'datetimerange';
      }

      if (props.includes('time')) {
        return 'datetime';
      }

      if (props.includes('date_to')) {
        return 'daterange';
      }

      return 'single';
    },

    /**
     * get field properties from swagger info - necessary for subforms
     * @returns {Object}
     */
    groupFormFields: function groupFormFields() {
      // check if field group is a list (=multiplyable) or not
      if (this.field.type === 'array') {
        return this.field.items.properties;
      }

      return this.field.properties;
    },
    // the type default for texts field
    textTypeDefault: function textTypeDefault() {
      var _ref;

      return _ref = {}, objectSpread2._(_ref, this.labelPropertyName, this.setLangLabels('form.noTextType', this.availableLocales)), objectSpread2._(_ref, this.identifierPropertyName, ''), _ref;
    },
    // compute the texts type drop down list specific for texts
    textTypeOptions: function textTypeOptions() {
      return [this.textTypeDefault].concat(this.secondaryDropdown);
    },
    // for chips input fields - check if it is a contributors field
    isContributorOrEquivalent: function isContributorOrEquivalent() {
      return this.field.name === 'contributors' || this.field['x-attrs'] && this.field['x-attrs'].equivalent === 'contributors';
    },
    // to determine text display for chips input
    fieldInput: function fieldInput() {
      return this.textInput && this.textInput.length > 2;
    },
    // check if chips input is a single select field
    isChipsSingleSelect: function isChipsSingleSelect() {
      return this.field['x-attrs'] && this.field['x-attrs'].field_type && this.field['x-attrs'].field_type.includes('chips') && this.field.type === 'object';
    },
    // check if label was specified - if not defer from title or check if there is a localized term
    labelInt: function labelInt() {
      if (this.label) {
        return this.label;
      }

      return this.field.title || this.getI18nTerm("form.".concat(this.field.name) || this.field.name);
    },
    // check if placeholder was specified - if not defer from
    // title or check if there is a localized term
    placeholderInt: function placeholderInt() {
      if (this.placeholder) {
        return this.placeholder;
      }

      var internalPlaceholder = this.field['x-attrs'] && this.field['x-attrs'].placeholder ? this.field['x-attrs'].placeholder : '';
      return internalPlaceholder || "".concat(this.hasI18n ? this.getI18nTerm('form.select') : 'Select', " ").concat(this.labelInt);
    },
    // compute field type
    fieldType: function fieldType() {
      return this.field['x-attrs'] && this.field['x-attrs'].field_type ? this.field['x-attrs'].field_type : 'text';
    },
    tabs: function tabs() {
      var _this = this;

      if (this.field.items && this.field.items.properties && this.field.items.properties.data && this.field.items.properties.data.items && this.field.items.properties.data.items.properties && this.field.items.properties.data.items.properties.language) {
        return Object.keys(this.field.items.properties.data.items.properties.language.properties.label.properties).filter(function (lang) {
          return _this.availableLocales.includes(lang);
        });
      }

      return [];
    }
  },
  watch: {
    fieldValue: {
      handler: function handler(val) {
        if (JSON.stringify(this.fieldValueInt) !== JSON.stringify(val)) {
          this.setFieldValue(val);

          if (this.tabs && this.tabs.length) {
            this.activeTab = this.setActiveTab();
          }
        }
      },
      immediate: true
    },
    fieldValueInt: {
      handler: function handler(val) {
        // prevent event being fired when change comes from outside
        if (val !== undefined && JSON.stringify(this.fieldValue) !== JSON.stringify(val)) {
          /**
           * Event emitted when field value changed internally
           *
           * @event field-value-changed
           * @property {Object | Array | String | Number} val - the changed field value
           */
          this.$emit('field-value-changed', val);
        }
      },
      deep: true
    },
    dropDownList: function dropDownList() {
      this.fetchingData = false;
    }
  },
  mounted: function mounted() {
    // the first time the field is mounted set the initial field value
    // and tabs (if applicable)
    this.setFieldValue(this.fieldValue);

    if (this.tabs && this.tabs.length) {
      this.activeTab = this.setActiveTab();
    }
  },
  methods: {
    // function for setting internal field value breaking all potential links to
    // value passed from parent
    setFieldValue: function setFieldValue(val) {
      if (val && _typeof._(val) === 'object') {
        // check if it is array
        if (val.length >= 0) {
          this.fieldValueInt = [].concat(JSON.parse(JSON.stringify(val))); // else assume it is object
        } else {
          this.fieldValueInt = objectSpread2.a({}, JSON.parse(JSON.stringify(val)));
        } // or simply assign directly if string

      } else {
        this.fieldValueInt = val;
      }
    },
    // as above but specific for multiline text input field
    setInputValue: function setInputValue(val) {
      if (!val || typeof val === 'string' || typeof val === 'number') {
        this.fieldValueInt = val;
      } else {
        this.fieldValueInt = objectSpread2.a(objectSpread2.a({}, this.fieldValueInt), JSON.parse(JSON.stringify(val)));
      }
    },

    /**
     * called by chips input autocomplete
     * @param {Object} event - the spread object emitted
     * @property {string} event.value - the string in the input field
     */
    fetchAutocomplete: function fetchAutocomplete(_ref2) {
      var value = _ref2.value;
      this.fetchingData = true;
      this.textInput = value;
      /**
       * Event emitted for text input on autocomplete fields (autocomplete-input,
       * chips-input, chips-below-input)
       *
       * @event fetch-autocomplete
       * @param {Object} valObject - the spread object which has the following properties
       * @property {string} value - the string to autocomplete
       * @property {string} name - the name of the field
       * @property {string} source]- the url to request the data from
       * @property {?string} equivalent - string specified for related fields
       * e.g. for contributor roles equivalent is 'contributor'
       */

      this.$emit('fetch-autocomplete', {
        value: value,
        name: this.field.name,
        source: this.field['x-attrs'].source,
        equivalent: this.field['x-attrs'].equivalent
      });
    },

    /**
     * called from subform - already contains all the information to pass
     * to parent (see above for details)
     * @param {Object} autocompleteInformation
     */
    subFormFetchAutocomplete: function subFormFetchAutocomplete(autocompleteInformation) {
      this.$emit('fetch-autocomplete', autocompleteInformation);
    },

    /**
     * function getting label from all possible label structures (lang object (--> get
     // correct lang) or simple string)
     * @param {string|Object} value - the language string or object - if object it contains
     * all the languages e.g. { de: '', en: '' }
     * @returns {string}
     */
    getLabel: function getLabel(value) {
      return this.getLangLabel(value, this.language, true);
    },
    // functionality for multiline text input with language tabs
    setActiveTab: function setActiveTab() {
      var _this2 = this;

      // check which locales have content
      var localesWithContent = this.availableLocales.filter(function (lang) {
        return !!_this2.fieldValueInt[lang];
      }); // if none of the locales has content or the current locale has content
      // - return current locale - else first alternative

      return !localesWithContent.length || this.fieldValueInt[this.language] ? this.language : localesWithContent[0];
    },
    // function for mulitline text input to set drop down field correctly
    setMultilineDropDown: function setMultilineDropDown(val) {
      // set texts type value if present - otherwise set empty
      this.$set(this.fieldValueInt, 'type', val.source ? val : null);
    },
    // prevent default action for everything except multiline
    onEnter: function onEnter(event) {
      if (this.fieldType !== 'multiline') {
        event.preventDefault();
      } else {
        this.$emit('keydodwn', event);
      }
    }
  }
};var __vue_script__ = script;
/* template */

var __vue_render__ = function __vue_render__() {
  var _vm = this;

  var _h = _vm.$createElement;

  var _c = _vm._self._c || _h;

  return _c('div', [_vm.fieldType !== 'date' && _vm.fieldType !== 'chips' && _vm.fieldType !== 'chips-below' && _vm.fieldType !== 'group' && _vm.fieldType !== 'boolean' ? _c(_vm.fieldElement, {
    key: _vm.fieldKey,
    tag: "component",
    attrs: {
      "id": _vm.fieldKey,
      "label": _vm.labelInt,
      "placeholder": _vm.placeholderInt,
      "tabs": _vm.fieldType === 'multiline' ? _vm.tabs : false,
      "tab-labels": _vm.fieldType === 'multiline' ? _vm.tabs.map(function (tab) {
        return _vm.getI18nTerm(tab);
      }) : false,
      "tabs-legend": _vm.fieldType === 'multiline' ? _vm.getI18nTerm('form.textTabsLegend') : false,
      "active-tab": _vm.fieldType === 'multiline' ? _vm.activeTab : false,
      "list": _vm.fieldType === 'autocomplete' ? _vm.dropDownList : false,
      "label-property-name": _vm.fieldType === 'autocomplete' ? 'label' : false,
      "is-loading": _vm.autocompleteLoading,
      "input": _vm.fieldValueInt,
      "field-type": _vm.field.type === 'integer' ? 'number' : 'text',
      "invalid": _vm.invalid,
      "required": _vm.required,
      "error-message": _vm.errorMessage,
      "show-error-icon": _vm.showErrorIcon,
      "clearable": _vm.clearable
    },
    on: {
      "keydown": function keydown($event) {
        if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) {
          return null;
        }

        return _vm.onEnter.apply(null, arguments);
      },
      "input": function input($event) {
        return _vm.setInputValue($event);
      },
      "autocomplete": function autocomplete($event) {
        return _vm.$emit('fetch-autocomplete', {
          value: $event,
          name: _vm.field.name,
          source: _vm.field['x-attrs'].source
        });
      }
    },
    scopedSlots: _vm._u([_vm.fieldType === 'multiline' && _vm.field.items && _vm.field.items.properties && _vm.field.items.properties.type ? {
      key: "label-addition",
      fn: function fn() {
        return [_c('BaseDropDown', {
          staticClass: "base-form-field-creator__multiline-dropdown",
          attrs: {
            "id": _vm.fieldKey,
            "selected-option": _vm.fieldValueInt && _vm.fieldValueInt.type && _vm.fieldValueInt.type.source ? _vm.fieldValueInt.type : _vm.textTypeDefault,
            "options": _vm.textTypeOptions,
            "label": _vm.getI18nTerm('form.texttype'),
            "language": _vm.language,
            "value-prop": "source"
          },
          on: {
            "value-selected": _vm.setMultilineDropDown
          }
        })];
      },
      proxy: true
    } : null], null, true)
  }) : _vm.fieldType === 'date' ? _c('fieldset', {
    staticClass: "base-form-field-creator__date-fieldset"
  }, [_c('div', {
    staticClass: "base-form-field-creator__date-field-wrapper"
  }, [_c('BaseDateInput', {
    key: _vm.fieldKey + '_date',
    staticClass: "base-form-field-creator__date-field",
    attrs: {
      "id": _vm.fieldKey,
      "label": _vm.label,
      "placeholder": _vm.placeholderInt,
      "range-separator": _vm.getI18nTerm('form.until'),
      "format": _vm.field['x-attrs'].date_format,
      "type": _vm.dateType.includes('timerange') ? _vm.dateType.includes('daterange') ? 'daterange' : 'single' : _vm.dateType,
      "date-format-labels": {
        date: _vm.getI18nTerm('form.date'),
        year: _vm.getI18nTerm('form.year')
      },
      "format-tabs-legend": _vm.getI18nTerm('form.dateTabsLegend'),
      "language": _vm.language
    },
    model: {
      value: _vm.fieldValueInt,
      callback: function callback($$v) {
        _vm.fieldValueInt = $$v;
      },
      expression: "fieldValueInt"
    }
  }), _vm._v(" "), _vm.dateType.includes('timerange') ? _c('BaseDateInput', {
    key: _vm.fieldKey + '_time',
    staticClass: "base-form-field-creator__date-field",
    attrs: {
      "id": _vm.fieldKey,
      "label": _vm.field.properties.time_from.title,
      "show-label": false,
      "placeholder": _vm.placeholderInt.time,
      "range-separator": _vm.getI18nTerm('form.until'),
      "type": "timerange"
    },
    model: {
      value: _vm.fieldValueInt,
      callback: function callback($$v) {
        _vm.fieldValueInt = $$v;
      },
      expression: "fieldValueInt"
    }
  }) : _vm._e()], 1)]) : _vm.fieldType === 'chips' || _vm.fieldType === 'chips-below' ? _c(_vm.fieldElement, {
    key: _vm.fieldKey,
    tag: "component",
    attrs: {
      "id": _vm.fieldKey,
      "placeholder": _vm.placeholderInt,
      "label": _vm.label,
      "list": _vm.dropDownList,
      "allow-dynamic-drop-down-entries": _vm.field['x-attrs'] && _vm.field['x-attrs'].dynamic_autosuggest,
      "allow-multiple-entries": !_vm.isChipsSingleSelect,
      "allow-unknown-entries": _vm.field['x-attrs'] && _vm.field['x-attrs'].allow_unknown_entries,
      "draggable": !_vm.isChipsSingleSelect,
      "hoverbox-content": _vm.hoverBoxData,
      "sortable": _vm.field.name === 'keywords' || _vm.field['x-attrs'] && _vm.field['x-attrs'].sortable,
      "is-loading": _vm.autocompleteLoading,
      "sort-text": _vm.sortText,
      "sort-name": _vm.isContributorOrEquivalent,
      "language": _vm.field['x-attrs'] && _vm.field['x-attrs'].set_label_language || _vm.fieldType === 'chips-below' ? _vm.language : '',
      "drop-down-no-options-info": _vm.getI18nTerm('form.noMatch'),
      "additional-prop-options": _vm.fieldType === 'chips-below' ? _vm.secondaryDropdown : false,
      "additional-prop-placeholder": _vm.fieldType === 'chips-below' ? _vm.getI18nTerm('form.selectRoles') : false,
      "additional-property-name": _vm.fieldType === 'chips-below' ? 'roles' : false,
      "invalid": _vm.invalid,
      "required": _vm.required,
      "error-message": _vm.errorMessage,
      "show-error-icon": _vm.showErrorIcon,
      "clearable": _vm.clearable,
      "identifier-property-name": _vm.identifierPropertyName,
      "label-property-name": _vm.labelPropertyName
    },
    on: {
      "fetch-dropdown-entries": _vm.fetchAutocomplete,
      "text-input": function textInput($event) {
        _vm.textInput = $event;
      },
      "hoverbox-active": function hoverboxActive($event) {
        return _vm.$emit('fetch-info-data');
      }
    },
    scopedSlots: _vm._u([{
      key: "drop-down-entry",
      fn: function fn(props) {
        return [_c('span', [_vm._v("\n        " + _vm._s(_vm.getLabel(props.item.label)) + "\n      ")]), _vm._v(" "), _c('span', {
          staticClass: "base-form-field-creator__chips-dropdown-second"
        }, [_vm._v("\n        " + _vm._s(props.item.additional) + "\n      ")]), _vm._v(" "), _c('span', {
          staticClass: "base-form-field-creator__chips-dropdown-third"
        }, [_vm._v("\n        " + _vm._s(props.item.source_name) + "\n      ")])];
      }
    }, {
      key: "no-options",
      fn: function fn() {
        return [_vm.field['x-attrs'] && _vm.field['x-attrs'].dynamic_autosuggest && !_vm.fieldInput ? _c('span', [_vm._v("\n        " + _vm._s(_vm.getI18nTerm('form.startTyping')) + "\n      ")]) : !(_vm.field['x-attrs'] && _vm.field['x-attrs'].dynamic_autosuggest) && _vm.textInput ? _c('span', [_vm._v("\n        " + _vm._s(_vm.getI18nTerm('form.noMatch')) + "\n      ")]) : _vm.fieldInput && !_vm.fetchingData && !_vm.autocompleteLoading ? _c('span', [_vm._v("\n        " + _vm._s(_vm.getI18nTerm('form.noResult')) + "\n      ")]) : _c('span', [_vm._v("\n        " + _vm._s(_vm.getI18nTerm('form.fetchingResults')) + "\n      ")])];
      },
      proxy: true
    }]),
    model: {
      value: _vm.fieldValueInt,
      callback: function callback($$v) {
        _vm.fieldValueInt = $$v;
      },
      expression: "fieldValueInt"
    }
  }) : _vm.fieldType === 'group' ? _c('div', {
    key: _vm.fieldKey,
    staticClass: "base-form-field-creator__field-array"
  }, [_vm.field['x-attrs'] && _vm.field['x-attrs'].show_label ? _c('div', {
    staticClass: "base-form-field-creator__field-array-label"
  }, [_vm._v("\n      " + _vm._s(_vm.labelInt + ":") + "\n    ")]) : _vm._e(), _vm._v(" "), _c('div', {
    key: _vm.fieldKey,
    staticClass: "base-form-field-creator__subform-wrapper"
  }, [_c('BaseForm', _vm._b({
    staticClass: "base-form-field-creator__subform",
    attrs: {
      "form-field-json": _vm.groupFormFields,
      "value-list": _vm.fieldValueInt,
      "form-id": _vm.fieldKey + '_' + _vm.field.name
    },
    on: {
      "values-changed": function valuesChanged($event) {
        return _vm.$emit('field-value-changed', $event);
      },
      "fetch-autocomplete": _vm.subFormFetchAutocomplete
    }
  }, 'BaseForm', _vm.fieldGroupParams, false))], 1)]) : _vm.fieldType === 'boolean' ? [_c('BaseToggle', {
    attrs: {
      "name": _vm.fieldKey,
      "label": _vm.labelInt,
      "checked": _vm.fieldValue,
      "bind-slot-to-state": true
    },
    on: {
      "clicked": function clicked($event) {
        return _vm.$emit('field-value-changed', $event);
      }
    }
  }, [_vm.field['x-attrs'] && _vm.field['x-attrs'].subtext && _vm.field['x-attrs'].subtext.value ? _c('BaseLink', {
    attrs: {
      "source": _vm.field['x-attrs'].subtext.source ? _vm.field['x-attrs'].subtext.source : '',
      "url": _vm.field['x-attrs'].subtext.url ? _vm.field['x-attrs'].subtext.url : '',
      "value": _vm.field['x-attrs'].subtext.value
    }
  }) : _vm._e()], 1)] : _vm._e()], 2);
};

var __vue_staticRenderFns__ = [];
/* style */

var __vue_inject_styles__ = undefined;
/* scoped */

var __vue_scope_id__ = "data-v-1040efde";
/* module identifier */

var __vue_module_identifier__ = "data-v-1040efde";
/* functional template */

var __vue_is_functional_template__ = false;
/* style inject */

/* style inject SSR */

/* style inject shadow dom */

var __vue_component__ = /*#__PURE__*/normalizeComponent.n({
  render: __vue_render__,
  staticRenderFns: __vue_staticRenderFns__
}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);

var BaseFormFieldCreator = __vue_component__;exports["default"]=BaseFormFieldCreator;