import processConditionControl from "@/components/process/editor/components/condition/control.vue";
import processConditionGroup from "@/components/process/editor/components/condition/group.vue";
import processConditionContainer from "@/components/process/editor/components/condition/container.vue";
import htmlContainer from "@/components/process/editor/components/return/html.vue";
import processContainer from "@/components/process/editor/container/layout.vue"
import processReturnToolbar from "@/components/process/editor/components/return/toolbar/layout.vue"
import calcContainer from "@/components/calc/editor.vue"
import calcResultContainer from "@/components/process/editor/components/calc/container.vue";
import nameContainer from "@/components/process/editor/components/name/container.vue"
import assignContainer from "@/components/process/editor/components/assign/group.vue"
import assignControl from "@/components/process/editor/components/assign/control.vue"
import processList from "@/components/process/editor/list.vue"

import attribute from "@/components/attribute/layout.vue"; // @ is an alias to /src
import calc from "@/components/calc/layout.vue"; // @ is an alias to /src
import process from "@/components/process/layout.vue";
import publish from "@/components/publish/control.vue"

import scInput from '@/components/attribute/uilibrary/sc-input.vue';
import scCheckbox from '@/components/attribute/uilibrary/sc-checkbox.vue';
import scRadio from '@/components/attribute/uilibrary/sc-radio.vue';
import scNumber from '@/components/attribute/uilibrary/sc-number.vue';
import scTime from '@/components/attribute/uilibrary/sc-time.vue';
import scDropdown from '@/components/attribute/uilibrary/sc-dropdown.vue';
import scAttribute from '@/components/attribute/uilibrary/sc-attribute.vue';
import 'element-plus/dist/index.css'
import "@/assets/style/default.scss";
import scLang from "@/lang/index";

import ElementPlus from 'element-plus'

const scProcess = {
    install: function (Vue: any) {
        Vue.component('process', process)
        Vue.component('attribute', attribute)
        Vue.component('calc', calc)
        Vue.component('publish', publish)

        Vue.component('process-list', processList)
        Vue.component('process-condition-container', processConditionContainer)
        Vue.component('process-condition-group', processConditionGroup)
        Vue.component('process-condition-control', processConditionControl)
        Vue.component('html-container', htmlContainer)
        Vue.component('process-container', processContainer)
        Vue.component('process-return-toolbar', processReturnToolbar)
        Vue.component('name-container', nameContainer)
        Vue.component('calc-container', calcContainer)
        Vue.component('calc-result-container', calcResultContainer)
        Vue.component('assign-container', assignContainer)
        Vue.component('assign-control', assignControl)

        Vue.component('sc-checkbox', scCheckbox)
        Vue.component('sc-input', scInput)
        Vue.component('sc-radio', scRadio)
        Vue.component('sc-number', scNumber)
        Vue.component('sc-dropdown', scDropdown)
        Vue.component('sc-time', scTime)
        Vue.component('sc-attribute', scAttribute)

        Vue.use(ElementPlus);
        Vue.use(scLang);
    }
}

export default scProcess;