import { Spreadsheet } from '@syncfusion/ej2-spreadsheet';
import { ComponentBase, getProps, gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';
import { getValue, isNullOrUndefined } from '@syncfusion/ej2-base';

let ImagesDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-images';
        }
    }
});
const ImagesPlugin = {
    name: 'e-images',
    install(Vue) {
        Vue.component(ImagesPlugin.name, ImagesDirective);
    }
};
let ImageDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-image';
        }
    }
});
const ImagePlugin = {
    name: 'e-image',
    install(Vue) {
        Vue.component(ImagePlugin.name, ImageDirective);
    }
};

let ChartsDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-charts';
        }
    }
});
const ChartsPlugin = {
    name: 'e-charts',
    install(Vue) {
        Vue.component(ChartsPlugin.name, ChartsDirective);
    }
};
let ChartDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-chart';
        }
    }
});
const ChartPlugin = {
    name: 'e-chart',
    install(Vue) {
        Vue.component(ChartPlugin.name, ChartDirective);
    }
};

let CellsDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-cells';
        }
    }
});
const CellsPlugin = {
    name: 'e-cells',
    install(Vue) {
        Vue.component(CellsPlugin.name, CellsDirective);
    }
};
/**
 * `e-cell` directive represent a cell of the VueJS Spreadsheet.
 * It must be contained in a `e-row` directive.
 * ```vue
 * <ejs-spreadsheet>
 *   <e-sheets>
 *    <e-sheet>
 *    <e-rows>
 *    <e-row>
 *    <e-cells>
 *    <e-cell value='A1'></e-cell>
 *    </e-cells>
 *    </e-row>
 *    </e-rows>
 *    </e-sheet>
 *   </e-sheets>
 * </ejs-spreadsheet>
 * ```
 */
let CellDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-cell';
        }
    }
});
const CellPlugin = {
    name: 'e-cell',
    install(Vue) {
        Vue.component(CellPlugin.name, CellDirective);
    }
};

let RowsDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-rows';
        }
    }
});
const RowsPlugin = {
    name: 'e-rows',
    install(Vue) {
        Vue.component(RowsPlugin.name, RowsDirective);
    }
};
/**
 * `e-row` directive represent a row of the VueJS Spreadsheet.
 * It must be contained in a `e-sheet` directive.
 * ```vue
 * <ejs-spreadsheet>
 *   <e-sheets>
 *    <e-sheet>
 *    <e-rows>
 *    <e-row></e-row>
 *    </e-rows>
 *    </e-sheet>
 *   </e-sheets>
 * </ejs-spreadsheet>
 * ```
 */
let RowDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-row';
        }
    }
});
const RowPlugin = {
    name: 'e-row',
    install(Vue) {
        Vue.component(RowPlugin.name, RowDirective);
    }
};

let ColumnsDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-columns';
        }
    }
});
const ColumnsPlugin = {
    name: 'e-columns',
    install(Vue) {
        Vue.component(ColumnsPlugin.name, ColumnsDirective);
    }
};
/**
 * `e-column` directive represent a column of the VueJS Spreadsheet.
 * It must be contained in a `e-sheet` directive.
 * ```vue
 * <ejs-spreadsheet>
 *   <e-sheets>
 *    <e-sheet>
 *    <e-columns>
 *    <e-column></e-column>
 *    </e-columns>
 *    </e-sheet>
 *   </e-sheets>
 * </ejs-spreadsheet>
 * ```
 */
let ColumnDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-column';
        }
    }
});
const ColumnPlugin = {
    name: 'e-column',
    install(Vue) {
        Vue.component(ColumnPlugin.name, ColumnDirective);
    }
};

let RangesDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-ranges';
        }
    }
});
const RangesPlugin = {
    name: 'e-ranges',
    install(Vue) {
        Vue.component(RangesPlugin.name, RangesDirective);
    }
};
/**
 * `e-range` directive represent a range of the VueJS Spreadsheet.
 * It must be contained in a `e-sheet` directive.
 * ```vue
 * <ejs-spreadsheet>
 *   <e-sheets>
 *    <e-sheet>
 *    <e-ranges>
 *    <e-range :dataSource='data'></e-range>
 *    </e-ranges>
 *    </e-sheet>
 *   </e-sheets>
 * </ejs-spreadsheet>
 * ```
 */
let RangeDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-range';
        }
    }
});
const RangePlugin = {
    name: 'e-range',
    install(Vue) {
        Vue.component(RangePlugin.name, RangeDirective);
    }
};

let ConditionalFormatsDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-conditionalformats';
        }
    }
});
const ConditionalFormatsPlugin = {
    name: 'e-conditionalformats',
    install(Vue) {
        Vue.component(ConditionalFormatsPlugin.name, ConditionalFormatsDirective);
    }
};
/**
 * `e-conditionalformat` directive represent a conditionalformat of the VueJS Spreadsheet.
 * It must be contained in a `e-sheet` directive.
 * ```vue
 * <ejs-spreadsheet>
 *   <e-sheets>
 *    <e-sheet>
 *    <e-conditionalformats>
 *    <e-conditionalformat></e-conditionalformat>
 *    </e-conditionalformats>
 *    </e-sheet>
 *   </e-sheets>
 * </ejs-spreadsheet>
 * ```
 */
let ConditionalFormatDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-conditionalformat';
        }
    }
});
const ConditionalFormatPlugin = {
    name: 'e-conditionalformat',
    install(Vue) {
        Vue.component(ConditionalFormatPlugin.name, ConditionalFormatDirective);
    }
};

let SheetsDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-sheets';
        }
    }
});
const SheetsPlugin = {
    name: 'e-sheets',
    install(Vue) {
        Vue.component(SheetsPlugin.name, SheetsDirective);
    }
};
/**
 * `e-sheet` directive represent a sheet of the VueJS Spreadsheet.
 * It must be contained in a Spreadsheet component(`ejs-spreadsheet`).
 * ```vue
 * <ejs-spreadsheet>
 *   <e-sheets>
 *    <e-sheet></e-sheet>
 *    <e-sheet></e-sheet>
 *   </e-sheets>
 * </ejs-spreadsheet>
 * ```
 */
let SheetDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-sheet';
        }
    }
});
const SheetPlugin = {
    name: 'e-sheet',
    install(Vue) {
        Vue.component(SheetPlugin.name, SheetDirective);
    }
};

let DefinedNamesDirective = vueDefineComponent({
    inject: { custom: { default: null } },
    render(createElement) {
        if (!isExecute) {
            let h = !isExecute ? gh : createElement;
            let slots = null;
            if (!isNullOrUndefined(this.$slots.default)) {
                slots = !isExecute ? this.$slots.default() : this.$slots.default;
            }
            return h('div', { class: 'e-directive' }, slots);
        }
        return;
    },
    updated() {
        if (!isExecute && this.custom) {
            this.custom();
        }
    },
    methods: {
        getTag() {
            return 'e-definednames';
        }
    }
});
const DefinedNamesPlugin = {
    name: 'e-definednames',
    install(Vue) {
        Vue.component(DefinedNamesPlugin.name, DefinedNamesDirective);
    }
};
/**
 * `e-definedname` directive represent a defined name of the VueJS Spreadsheet.
 * It must be contained in a Spreadsheet component(`ejs-spreadsheet`).
 * ```vue
 * <ejs-spreadsheet>
 *   <e-definednames>
 *    <e-definedname></e-definedname>
 *    <e-definedname></e-definedname>
 *   </e-definednames>
 * </ejs-spreadsheet>
 * ```
 */
let DefinedNameDirective = vueDefineComponent({
    render() {
        return;
    },
    methods: {
        getTag() {
            return 'e-definedname';
        }
    }
});
const DefinedNamePlugin = {
    name: 'e-definedname',
    install(Vue) {
        Vue.component(DefinedNamePlugin.name, DefinedNameDirective);
    }
};

const properties = ['isLazyUpdate', 'plugins', 'activeSheetIndex', 'allowAutoFill', 'allowCellFormatting', 'allowChart', 'allowConditionalFormat', 'allowDataValidation', 'allowDelete', 'allowEditing', 'allowFiltering', 'allowFindAndReplace', 'allowFreezePane', 'allowHyperlink', 'allowImage', 'allowInsert', 'allowMerge', 'allowNumberFormatting', 'allowOpen', 'allowResizing', 'allowSave', 'allowScrolling', 'allowSorting', 'allowUndoRedo', 'allowWrap', 'autoFillSettings', 'cellStyle', 'cssClass', 'currencyCode', 'definedNames', 'enableClipboard', 'enableContextMenu', 'enableKeyboardNavigation', 'enableKeyboardShortcut', 'enablePersistence', 'enableRtl', 'height', 'isProtected', 'locale', 'openUrl', 'password', 'saveUrl', 'scrollSettings', 'selectionSettings', 'sheets', 'showAggregate', 'showFormulaBar', 'showRibbon', 'showSheetTabs', 'width', 'actionBegin', 'actionComplete', 'afterHyperlinkClick', 'afterHyperlinkCreate', 'beforeCellFormat', 'beforeCellRender', 'beforeCellSave', 'beforeCellUpdate', 'beforeConditionalFormat', 'beforeDataBound', 'beforeHyperlinkClick', 'beforeHyperlinkCreate', 'beforeOpen', 'beforeSave', 'beforeSelect', 'beforeSort', 'cellEdit', 'cellEdited', 'cellEditing', 'cellSave', 'contextMenuBeforeClose', 'contextMenuBeforeOpen', 'contextMenuItemSelect', 'created', 'dataBound', 'dataSourceChanged', 'dialogBeforeOpen', 'fileMenuBeforeClose', 'fileMenuBeforeOpen', 'fileMenuItemSelect', 'openComplete', 'openFailure', 'queryCellInfo', 'saveComplete', 'select', 'sortComplete'];
const modelProps = [];
const testProp = getProps({ props: properties });
const props = testProp[0];
const watch = testProp[1];
const emitProbs = Object.keys(watch);
emitProbs.push('modelchanged', 'update:modelValue');
for (let props of modelProps) {
    emitProbs.push('update:' + props);
}
/**
 * `ejs-spreadsheet` represents the VueJS Spreadsheet Component.
 * ```vue
 * <ejs-spreadsheet></ejs-spreadsheet>
 * ```
 */
let SpreadsheetComponent = vueDefineComponent({
    name: 'SpreadsheetComponent',
    mixins: [ComponentBase],
    props: props,
    watch: watch,
    emits: emitProbs,
    provide() { return { custom: this.custom }; },
    data() {
        return {
            ej2Instances: new Spreadsheet({}),
            propKeys: properties,
            models: modelProps,
            hasChildDirective: true,
            hasInjectedModules: true,
            tagMapper: { "e-sheets": { "e-sheet": { "e-rows": { "e-row": { "e-cells": { "e-cell": { "e-images": "e-image", "e-charts": "e-chart" } } } }, "e-columns": "e-column", "e-ranges": "e-range", "e-conditionalformats": "e-conditionalformat" } }, "e-definednames": "e-definedname" },
            tagNameMapper: { "e-images": "e-image", "e-charts": "e-chart", "e-conditionalformats": "e-conditionalFormats", "e-definednames": "e-definedNames" },
            isVue3: !isExecute,
            templateCollection: {},
        };
    },
    created() {
        this.bindProperties();
        this.ej2Instances._setProperties = this.ej2Instances.setProperties;
        this.ej2Instances.setProperties = this.setProperties;
        this.ej2Instances.clearTemplate = this.clearTemplate;
        this.updated = this.updated;
    },
    render(createElement) {
        let h = !isExecute ? gh : createElement;
        let slots = null;
        if (!isNullOrUndefined(this.$slots.default)) {
            slots = !isExecute ? this.$slots.default() : this.$slots.default;
        }
        return h('div', slots);
    },
    methods: {
        clearTemplate(templateNames) {
            if (!templateNames) {
                templateNames = Object.keys(this.templateCollection || {});
            }
            if (templateNames.length && this.templateCollection) {
                for (let tempName of templateNames) {
                    let elementCollection = this.templateCollection[tempName];
                    if (elementCollection && elementCollection.length) {
                        for (let ele of elementCollection) {
                            let destroy = getValue('__vue__.$destroy', ele);
                            if (destroy) {
                                ele.__vue__.$destroy();
                            }
                            if (ele.innerHTML) {
                                ele.innerHTML = '';
                            }
                        }
                        delete this.templateCollection[tempName];
                    }
                }
            }
        },
        setProperties(prop, muteOnChange) {
            if (this.isVue3) {
                this.models = !this.models ? this.ej2Instances.referModels : this.models;
            }
            if (this.ej2Instances && this.ej2Instances._setProperties) {
                this.ej2Instances._setProperties(prop, muteOnChange);
            }
            if (prop && this.models && this.models.length) {
                Object.keys(prop).map((key) => {
                    this.models.map((model) => {
                        if ((key === model) && !(/datasource/i.test(key))) {
                            if (this.isVue3) {
                                this.ej2Instances.vueInstance.$emit('update:' + key, prop[key]);
                            }
                            else {
                                this.$emit('update:' + key, prop[key]);
                                this.$emit('modelchanged', prop[key]);
                            }
                        }
                    });
                });
            }
        },
        custom() {
            this.updated();
        },
        Unfreeze(sheet) {
            return this.ej2Instances.Unfreeze(sheet);
        },
        addContextMenuItems(items, text, insertAfter, isUniqueId) {
            return this.ej2Instances.addContextMenuItems(items, text, insertAfter, isUniqueId);
        },
        addCustomFunction(functionHandler, functionName, formulaDescription) {
            return this.ej2Instances.addCustomFunction(functionHandler, functionName, formulaDescription);
        },
        addDataValidation(rules, range) {
            return this.ej2Instances.addDataValidation(rules, range);
        },
        addDefinedName(definedName) {
            return this.ej2Instances.addDefinedName(definedName);
        },
        addFileMenuItems(items, text, insertAfter, isUniqueId) {
            return this.ej2Instances.addFileMenuItems(items, text, insertAfter, isUniqueId);
        },
        addHyperlink(hyperlink, address, displayText) {
            return this.ej2Instances.addHyperlink(hyperlink, address, displayText);
        },
        addInvalidHighlight(range) {
            return this.ej2Instances.addInvalidHighlight(range);
        },
        addRibbonTabs(items, insertBefore) {
            return this.ej2Instances.addRibbonTabs(items, insertBefore);
        },
        addToolbarItems(tab, items, index) {
            return this.ej2Instances.addToolbarItems(tab, items, index);
        },
        applyFilter(predicates, range) {
            return this.ej2Instances.applyFilter(predicates, range);
        },
        autoFill(fillRange, dataRange, direction, fillType) {
            return this.ej2Instances.autoFill(fillRange, dataRange, direction, fillType);
        },
        autoFit(range) {
            return this.ej2Instances.autoFit(range);
        },
        cellFormat(style, range) {
            return this.ej2Instances.cellFormat(style, range);
        },
        clear(options) {
            return this.ej2Instances.clear(options);
        },
        clearConditionalFormat(range) {
            return this.ej2Instances.clearConditionalFormat(range);
        },
        clearFilter(field) {
            return this.ej2Instances.clearFilter(field);
        },
        closeEdit() {
            return this.ej2Instances.closeEdit();
        },
        computeExpression(formula) {
            return this.ej2Instances.computeExpression(formula);
        },
        conditionalFormat(conditionalFormat) {
            return this.ej2Instances.conditionalFormat(conditionalFormat);
        },
        copy(address) {
            return this.ej2Instances.copy(address);
        },
        cut(address) {
            return this.ej2Instances.cut(address);
        },
        delete(startIndex, endIndex, model, sheet) {
            return this.ej2Instances.delete(startIndex, endIndex, model, sheet);
        },
        deleteChart(id) {
            return this.ej2Instances.deleteChart(id);
        },
        deleteImage(id, range) {
            return this.ej2Instances.deleteImage(id, range);
        },
        deselectChart() {
            return this.ej2Instances.deselectChart();
        },
        deselectImage() {
            return this.ej2Instances.deselectImage();
        },
        duplicateSheet(sheetIndex) {
            return this.ej2Instances.duplicateSheet(sheetIndex);
        },
        enableContextMenuItems(items, enable, isUniqueId) {
            return this.ej2Instances.enableContextMenuItems(items, enable, isUniqueId);
        },
        enableFileMenuItems(items, enable, isUniqueId) {
            return this.ej2Instances.enableFileMenuItems(items, enable, isUniqueId);
        },
        enableRibbonTabs(tabs, enable) {
            return this.ej2Instances.enableRibbonTabs(tabs, enable);
        },
        enableToolbarItems(tab, items, enable) {
            return this.ej2Instances.enableToolbarItems(tab, items, enable);
        },
        endEdit() {
            return this.ej2Instances.endEdit();
        },
        find(args) {
            return this.ej2Instances.find(args);
        },
        findAll(value, mode, isCSen, isEMatch, sheetIndex) {
            return this.ej2Instances.findAll(value, mode, isCSen, isEMatch, sheetIndex);
        },
        freezePanes(row, column, sheet) {
            return this.ej2Instances.freezePanes(row, column, sheet);
        },
        getData(address) {
            return this.ej2Instances.getData(address);
        },
        getDisplayText(cell) {
            return this.ej2Instances.getDisplayText(cell);
        },
        getRowData(index, sheetIndex) {
            return this.ej2Instances.getRowData(index, sheetIndex);
        },
        getSelectAllContent() {
            return this.ej2Instances.getSelectAllContent();
        },
        goTo(address) {
            return this.ej2Instances.goTo(address);
        },
        hideColumn(startIndex, endIndex, hide) {
            return this.ej2Instances.hideColumn(startIndex, endIndex, hide);
        },
        hideFileMenuItems(items, hide, isUniqueId) {
            return this.ej2Instances.hideFileMenuItems(items, hide, isUniqueId);
        },
        hideRibbonTabs(tabs, hide) {
            return this.ej2Instances.hideRibbonTabs(tabs, hide);
        },
        hideRow(startIndex, endIndex, hide) {
            return this.ej2Instances.hideRow(startIndex, endIndex, hide);
        },
        hideSpinner() {
            return this.ej2Instances.hideSpinner();
        },
        hideToolbarItems(tab, indexes, hide) {
            return this.ej2Instances.hideToolbarItems(tab, indexes, hide);
        },
        insertChart(chart) {
            return this.ej2Instances.insertChart(chart);
        },
        insertColumn(startColumn, endColumn, sheet) {
            return this.ej2Instances.insertColumn(startColumn, endColumn, sheet);
        },
        insertImage(images, range) {
            return this.ej2Instances.insertImage(images, range);
        },
        insertRow(startRow, endRow, sheet) {
            return this.ej2Instances.insertRow(startRow, endRow, sheet);
        },
        insertSheet(startSheet, endSheet) {
            return this.ej2Instances.insertSheet(startSheet, endSheet);
        },
        isValidCell(cellAddress) {
            return this.ej2Instances.isValidCell(cellAddress);
        },
        lockCells(range, isLocked) {
            return this.ej2Instances.lockCells(range, isLocked);
        },
        merge(range, type) {
            return this.ej2Instances.merge(range, type);
        },
        moveSheet(position, sheetIndexes) {
            return this.ej2Instances.moveSheet(position, sheetIndexes);
        },
        numberFormat(format, range) {
            return this.ej2Instances.numberFormat(format, range);
        },
        open(options) {
            return this.ej2Instances.open(options);
        },
        openFromJson(options) {
            return this.ej2Instances.openFromJson(options);
        },
        paste(address, type) {
            return this.ej2Instances.paste(address, type);
        },
        protectSheet(sheet, protectSettings, password) {
            return this.ej2Instances.protectSheet(sheet, protectSettings, password);
        },
        redo() {
            return this.ej2Instances.redo();
        },
        refresh(isNew) {
            return this.ej2Instances.refresh(isNew);
        },
        removeContextMenuItems(items, isUniqueId) {
            return this.ej2Instances.removeContextMenuItems(items, isUniqueId);
        },
        removeDataValidation(range) {
            return this.ej2Instances.removeDataValidation(range);
        },
        removeDefinedName(definedName, scope) {
            return this.ej2Instances.removeDefinedName(definedName, scope);
        },
        removeHyperlink(range) {
            return this.ej2Instances.removeHyperlink(range);
        },
        removeInvalidHighlight(range) {
            return this.ej2Instances.removeInvalidHighlight(range);
        },
        replace(args) {
            return this.ej2Instances.replace(args);
        },
        resize() {
            return this.ej2Instances.resize();
        },
        save(saveOptions) {
            return this.ej2Instances.save(saveOptions);
        },
        saveAsJson() {
            return this.ej2Instances.saveAsJson();
        },
        selectChart(id) {
            return this.ej2Instances.selectChart(id);
        },
        selectImage(id) {
            return this.ej2Instances.selectImage(id);
        },
        selectRange(address) {
            return this.ej2Instances.selectRange(address);
        },
        setBorder(style, range, type, isUndoRedo) {
            return this.ej2Instances.setBorder(style, range, type, isUndoRedo);
        },
        setColWidth(width, colIndex, sheetIndex) {
            return this.ej2Instances.setColWidth(width, colIndex, sheetIndex);
        },
        setColumnsWidth(width, ranges) {
            return this.ej2Instances.setColumnsWidth(width, ranges);
        },
        setRowHeight(height, rowIndex, sheetIndex, edited) {
            return this.ej2Instances.setRowHeight(height, rowIndex, sheetIndex, edited);
        },
        setRowsHeight(height, ranges) {
            return this.ej2Instances.setRowsHeight(height, ranges);
        },
        showSpinner() {
            return this.ej2Instances.showSpinner();
        },
        sort(sortOptions, range) {
            return this.ej2Instances.sort(sortOptions, range);
        },
        startEdit() {
            return this.ej2Instances.startEdit();
        },
        unMerge(range) {
            return this.ej2Instances.unMerge(range);
        },
        undo() {
            return this.ej2Instances.undo();
        },
        unfreezePanes(sheet) {
            return this.ej2Instances.unfreezePanes(sheet);
        },
        unprotectSheet(sheet) {
            return this.ej2Instances.unprotectSheet(sheet);
        },
        updateAction(options) {
            return this.ej2Instances.updateAction(options);
        },
        updateCell(cell, address) {
            return this.ej2Instances.updateCell(cell, address);
        },
        updateRange(range, sheetIdx) {
            return this.ej2Instances.updateRange(range, sheetIdx);
        },
        updateUndoRedoCollection(args) {
            return this.ej2Instances.updateUndoRedoCollection(args);
        },
        wrap(address, wrap) {
            return this.ej2Instances.wrap(address, wrap);
        },
    }
});
const SpreadsheetPlugin = {
    name: 'ejs-spreadsheet',
    install(Vue) {
        Vue.component(SpreadsheetPlugin.name, SpreadsheetComponent);
        Vue.component(SheetPlugin.name, SheetDirective);
        Vue.component(SheetsPlugin.name, SheetsDirective);
        Vue.component(RowPlugin.name, RowDirective);
        Vue.component(RowsPlugin.name, RowsDirective);
        Vue.component(CellPlugin.name, CellDirective);
        Vue.component(CellsPlugin.name, CellsDirective);
        Vue.component(ImagePlugin.name, ImageDirective);
        Vue.component(ImagesPlugin.name, ImagesDirective);
        Vue.component(ChartPlugin.name, ChartDirective);
        Vue.component(ChartsPlugin.name, ChartsDirective);
        Vue.component(ColumnPlugin.name, ColumnDirective);
        Vue.component(ColumnsPlugin.name, ColumnsDirective);
        Vue.component(RangePlugin.name, RangeDirective);
        Vue.component(RangesPlugin.name, RangesDirective);
        Vue.component(ConditionalFormatPlugin.name, ConditionalFormatDirective);
        Vue.component(ConditionalFormatsPlugin.name, ConditionalFormatsDirective);
        Vue.component(DefinedNamePlugin.name, DefinedNameDirective);
        Vue.component(DefinedNamesPlugin.name, DefinedNamesDirective);
    }
};

export { ImagesDirective, ImageDirective, ImagesPlugin, ImagePlugin, ChartsDirective, ChartDirective, ChartsPlugin, ChartPlugin, CellsDirective, CellDirective, CellsPlugin, CellPlugin, RowsDirective, RowDirective, RowsPlugin, RowPlugin, ColumnsDirective, ColumnDirective, ColumnsPlugin, ColumnPlugin, RangesDirective, RangeDirective, RangesPlugin, RangePlugin, ConditionalFormatsDirective, ConditionalFormatDirective, ConditionalFormatsPlugin, ConditionalFormatPlugin, SheetsDirective, SheetDirective, SheetsPlugin, SheetPlugin, DefinedNamesDirective, DefinedNameDirective, DefinedNamesPlugin, DefinedNamePlugin, SpreadsheetComponent, SpreadsheetPlugin };
export * from '@syncfusion/ej2-spreadsheet';
//# sourceMappingURL=ej2-vue-spreadsheet.es2015.js.map
