import type { App } from 'vue';
import * as components from './components';

export * from './components';
export const install = function (app: App) {
  Object.keys(components).forEach((key) => {
    const component = components[key];
    if (component.install) {
      app.use(component);
    }
  });
  return app;
};

export const getViews = function () {
  // @ts-ignore
  return Object.assign({
    './src/views/demo/comp/button/index.vue': () => import('./demo/comp/button/index.vue'),
    './src/views/demo/comp/card-list/index.vue': () => import('./demo/comp/card-list/index.vue'),
    './src/views/demo/comp/count-to/index.vue': () => import('./demo/comp/count-to/index.vue'),
    './src/views/demo/comp/desc/index.vue': () => import('./demo/comp/desc/index.vue'),
    './src/views/demo/comp/drawer/index.vue': () => import('./demo/comp/drawer/index.vue'),
    './src/views/demo/comp/lazy/index.vue': () => import('./demo/comp/lazy/index.vue'),
    './src/views/demo/comp/loading/index.vue': () => import('./demo/comp/loading/index.vue'),
    './src/views/demo/comp/modal/index.vue': () => import('./demo/comp/modal/index.vue'),
    './src/views/demo/comp/qrcode/index.vue': () => import('./demo/comp/qrcode/index.vue'),
    './src/views/demo/comp/scroll/index.vue': () => import('./demo/comp/scroll/index.vue'),
    './src/views/demo/comp/strength-meter/index.vue': () => import('./demo/comp/strength-meter/index.vue'),
    './src/views/demo/comp/time/index.vue': () => import('./demo/comp/time/index.vue'),
    './src/views/demo/comp/transition/index.vue': () => import('./demo/comp/transition/index.vue'),
    './src/views/demo/comp/upload/index.vue': () => import('./demo/comp/upload/index.vue'),
    './src/views/demo/comp/verify/index.vue': () => import('./demo/comp/verify/index.vue'),
    './src/views/demo/feat/icon/index.vue': () => import('./demo/feat/icon/index.vue'),
    './src/views/demo/form/AdvancedForm.vue': () => import('./demo/form/AdvancedForm.vue'),
    './src/views/demo/form/AppendForm.vue': () => import('./demo/form/AppendForm.vue'),
    './src/views/demo/form/CustomerForm.vue': () => import('./demo/form/CustomerForm.vue'),
    './src/views/demo/form/DynamicForm.vue': () => import('./demo/form/DynamicForm.vue'),
    './src/views/demo/form/index.vue': () => import('./demo/form/index.vue'),
    './src/views/demo/form/RefForm.vue': () => import('./demo/form/RefForm.vue'),
    './src/views/demo/form/RuleForm.vue': () => import('./demo/form/RuleForm.vue'),
    './src/views/demo/form/UseForm.vue': () => import('./demo/form/UseForm.vue'),
    './src/views/demo/jeecg/index.vue': () => import('./demo/jeecg/index.vue'),
    './src/views/demo/jeecg/PrintDemo.vue': () => import('./demo/jeecg/PrintDemo.vue'),
    './src/views/demo/jeecg/TableTotal.vue': () => import('./demo/jeecg/TableTotal.vue'),
    './src/views/demo/jeecg/AsyncTreeTable.vue': () => import('./demo/jeecg/AsyncTreeTable.vue'),
    './src/views/demo/jeecg/JVxeTableDemo/index.vue': () => import('./demo/jeecg/JVxeTableDemo/index.vue'),
    './src/views/demo/jeecg/JVxeTableDemo/func-demo/JSBCDemo.vue': () => import('./demo/jeecg/JVxeTableDemo/func-demo/JSBCDemo.vue'),
    './src/views/demo/jeecg/JVxeTableDemo/func-demo/PopupSubTable.vue': () => import('./demo/jeecg/JVxeTableDemo/func-demo/PopupSubTable.vue'),
    './src/views/demo/jeecg/JVxeTableDemo/func-demo/SocketReload.vue': () => import('./demo/jeecg/JVxeTableDemo/func-demo/SocketReload.vue'),
    './src/views/demo/jeecg/JVxeTableDemo/layout-demo/index.vue': () => import('./demo/jeecg/JVxeTableDemo/layout-demo/index.vue'),
    './src/views/demo/jeecg/InnerExpandTable.vue': () => import('./demo/jeecg/InnerExpandTable.vue'),
    './src/views/demo/jeecg/erplist/index.vue': () => import('./demo/jeecg/erplist/index.vue'),
    './src/views/demo/jeecg/Native/one/OneNativeList.vue': () => import('./demo/jeecg/Native/one/OneNativeList.vue'),
    './src/views/demo/page/desc/basic/index.vue': () => import('./demo/page/desc/basic/index.vue'),
    './src/views/demo/page/desc/high/index.vue': () => import('./demo/page/desc/high/index.vue'),
    './src/views/demo/system/password/index.vue': () => import('./demo/system/password/index.vue'),
    './src/views/demo/table/AuthColumn.vue': () => import('./demo/table/AuthColumn.vue'),
    './src/views/demo/table/Basic.vue': () => import('./demo/table/Basic.vue'),
    './src/views/demo/table/CustomerCell.vue': () => import('./demo/table/CustomerCell.vue'),
    './src/views/demo/table/EditCellTable.vue': () => import('./demo/table/EditCellTable.vue'),
    './src/views/demo/table/EditRowTable.vue': () => import('./demo/table/EditRowTable.vue'),
    './src/views/demo/table/ExpandTable.vue': () => import('./demo/table/ExpandTable.vue'),
    './src/views/demo/table/FetchTable.vue': () => import('./demo/table/FetchTable.vue'),
    './src/views/demo/table/FixedColumn.vue': () => import('./demo/table/FixedColumn.vue'),
    './src/views/demo/table/FixedHeight.vue': () => import('./demo/table/FixedHeight.vue'),
    './src/views/demo/table/FooterTable.vue': () => import('./demo/table/FooterTable.vue'),
    './src/views/demo/table/FormTable.vue': () => import('./demo/table/FormTable.vue'),
    './src/views/demo/table/MergeHeader.vue': () => import('./demo/table/MergeHeader.vue'),
    './src/views/demo/table/MultipleHeader.vue': () => import('./demo/table/MultipleHeader.vue'),
    './src/views/demo/table/NestedTable.vue': () => import('./demo/table/NestedTable.vue'),
    './src/views/demo/table/RefTable.vue': () => import('./demo/table/RefTable.vue'),
    './src/views/demo/table/TreeTable.vue': () => import('./demo/table/TreeTable.vue'),
    './src/views/demo/table/UseTable.vue': () => import('./demo/table/UseTable.vue'),
    './src/views/demo/tree/ActionTree.vue': () => import('./demo/tree/ActionTree.vue'),
    './src/views/demo/tree/EditTree.vue': () => import('./demo/tree/EditTree.vue'),
    './src/views/demo/tree/index.vue': () => import('./demo/tree/index.vue'),
    './src/views/demo/vextable/index.vue': () => import('./demo/vextable/index.vue'),
  });
};

export default { install, getViews };
