<backend-component-inspector-control-text
    v-if="control.type == 'string' || control.type == 'text'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :splitter-data="splitterData"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    :inspector-preferences="inspectorPreferences"
    ref="editor"
    @focus="onEditorFocus"
    @blur="onEditorBlur"
    @invalid="onEditorInvalid"
    @valid="onEditorValid"
></backend-component-inspector-control-text>

<backend-component-inspector-control-dropdown
    v-if="control.type == 'dropdown'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    ref="editor"
    @focus="onEditorFocus"
    @blur="onEditorBlur"
    @invalid="onEditorInvalid"
    @valid="onEditorValid"
></backend-component-inspector-control-dropdown>

<backend-component-inspector-control-autocomplete
    v-if="control.type == 'autocomplete'"
    :obj="obj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    ref="editor"
    @focus="onEditorFocus"
    @blur="onEditorBlur"
    @invalid="onEditorInvalid"
    @valid="onEditorValid"
></backend-component-inspector-control-autocomplete>

<backend-component-inspector-control-checkbox
    v-if="control.type == 'checkbox'"
    :obj="obj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    ref="editor"
    @focus="onEditorFocus"
    @blur="onEditorBlur"
    @invalid="onEditorInvalid"
    @valid="onEditorValid"
></backend-component-inspector-control-checkbox>

<backend-component-inspector-control-table
    v-if="control.type == 'table'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    ref="editor"
    @hidebottomborder="bottomBorderHidden = true" 
    @hidefullwidthlabel="controlLabelHidden = true"
></backend-component-inspector-control-table>

<backend-component-inspector-control-object
    v-if="control.type == 'object'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    :splitter-data="splitterData"
    :inspector-unique-id="inspectorUniqueId"
    :depth="depth"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    ref="editor"
    @hidefullwidthlabel="controlLabelHidden = true" 
    @hidebottomborder="bottomBorderHidden = true" 
></backend-component-inspector-control-object>

<backend-component-inspector-control-set
    v-if="control.type == 'set'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    :splitter-data="splitterData"
    :inspector-unique-id="inspectorUniqueId"
    :depth="depth"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    ref="editor"
    @hidefullwidthlabel="controlLabelHidden = true" 
    @hidebottomborder="bottomBorderHidden = true" 
></backend-component-inspector-control-set>

<backend-component-inspector-control-objectlist
    v-if="control.type == 'objectList'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    :splitter-data="splitterData"
    :inspector-unique-id="inspectorUniqueId"
    :depth="depth"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    ref="editor"
    @hidefullwidthlabel="controlLabelHidden = true" 
    @hidebottomborder="bottomBorderHidden = true" 
></backend-component-inspector-control-objectlist>

<backend-component-inspector-control-objectlist-records
    v-if="control.type == 'objectListRecords'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    :splitter-data="splitterData"
    :inspector-unique-id="inspectorUniqueId"
    :depth="depth"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    ref="editor"
    @hidefullwidthlabel="controlLabelHidden = true" 
    @hidebottomborder="bottomBorderHidden = true" 
    @inspectorcommand="$emit('inspectorcommand', $event)"
></backend-component-inspector-control-objectlist-records>

<backend-component-inspector-control-dictionary
    v-if="control.type == 'dictionary'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :inspector-preferences="inspectorPreferences"
    :splitter-data="splitterData"
    :inspector-unique-id="inspectorUniqueId"
    :depth="depth"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    ref="editor"
    @hidefullwidthlabel="controlLabelHidden = true" 
    @hidebottomborder="bottomBorderHidden = true" 
></backend-component-inspector-control-dictionary>

<backend-component-inspector-control-mediafinder
    v-if="control.type == 'mediafinder'"
    :obj="obj"
    :parent-obj="parentObj"
    :control="control"
    :control-id="controlEditorId"
    :splitter-data="splitterData"
    :panel-update-data="panelUpdateData"
    :layout-update-data="layoutUpdateData"
    :inspector-preferences="inspectorPreferences"
    ref="editor"
    @focus="onEditorFocus"
    @blur="onEditorBlur"
    @invalid="onEditorInvalid"
    @valid="onEditorValid"
></backend-component-inspector-control-mediafinder>