ivue-material
Version:
A high quality UI components Library with Vue.js
142 lines (125 loc) • 4.33 kB
JavaScript
import IvueAffix from './components/ivue-affix';
import IvueContent from './components/ivue-content';
import IvueButton from './components/ivue-button';
import IvueIcon from './components/ivue-icon';
import IvueList from './components/ivue-list';
import IvueListItem from './components/ivue-list-item';
import IvueSpin from './components/ivue-spin';
import IvueCarousel from './components/ivue-carousel';
import IvueCarouselItem from './components/ivue-carousel-item';
import IvueSwitch from './components/ivue-switch';
import IvueBottomNav from './components/ivue-bottom-nav';
import IvueBreadcrumbs from './components/ivue-breadcrumbs';
import IvueBreadcrumbsItem from './components/ivue-breadcrumbs-item';
import { IvueSelect, IvueOption, IvueOptionGroup } from './components/ivue-select';
import IvueAutoComplete from './components/ivue-auto-complete';
import IvueInput from './components/ivue-input';
import { IvueStepper, IvueStepperStep } from './components/ivue-stepper';
import IvueUpLoad from './components/ivue-up-load';
import { IvueProgressLinear, IvueProgressCircular } from './components/ivue-progress';
import IvueNotice from './components/ivue-notice';
import IvueMessage from './components/ivue-message';
import { IvueTabs, IvueTab, IvueTabItem, IvueTabsSlider } from './components/ivue-tabs';
import IvueLoadingBar from './components/ivue-loading-bar';
import IvueBadge from './components/ivue-badge';
import IvueDatePicker from './components/ivue-date-picker';
import IvueVirtualCollection from './components/ivue-virtual-collection';
import { IvueCollapse, IvueCollapsePanel } from './components/ivue-collapse';
import IvueCascader from './components/ivue-cascader';
import IvueTooltip from './components/ivue-tooltip';
import IvueChip from './components/ivue-chip';
import IvueRadio from './components/ivue-radio';
import IvueRadioGroup from './components/ivue-radio-group';
import IvueCheckbox from './components/ivue-checkbox';
import IvueCheckboxGroup from './components/ivue-checkbox-group';
import IvueAvatar from './components/ivue-avatar';
import IvuePage from './components/ivue-page';
import IvueTable from './components/ivue-table';
import Directives from './utils/directives';
const components = {
IvueAffix,
IvueContent,
IvueButton,
IvueIcon,
IvueList,
IvueListItem,
IvueSpin,
IvueCarousel,
IvueCarouselItem,
IvueSwitch,
IvueBottomNav,
IvueBreadcrumbs,
IvueBreadcrumbsItem,
IvueSelect,
IvueOption,
IvueOptionGroup,
IvueAutoComplete,
IvueInput,
IvueStepper,
IvueStepperStep,
IvueUpLoad,
IvueProgressLinear,
IvueProgressCircular,
IvueNotice,
IvueMessage,
IvueTabs,
IvueTab,
IvueTabItem,
IvueTabsSlider,
IvueLoadingBar,
IvueBadge,
IvueDatePicker,
IvueVirtualCollection,
IvueCollapse,
IvueCollapsePanel,
IvueCascader,
IvueTooltip,
IvueChip,
IvueRadio,
IvueRadioGroup,
IvueCheckbox,
IvueCheckboxGroup,
IvueAvatar,
IvuePage,
IvueTable
};
const iVue = {
...components,
'ivue-upload': IvueUpLoad
};
const install = function (Vue, opts = {}) {
if (install.installed) return;
Object.keys(iVue).forEach(key => {
Vue.component(key, iVue[key]);
});
// 注册全局 IvueSpin 组件
Vue.prototype.$IvueSpin = IvueSpin;
// 注册全局 IvueNotice 通知 组件
Vue.prototype.$IvueNotice = IvueNotice;
// 注册全局 IvueMessage 提示 组件
Vue.prototype.$IvueMessage = IvueMessage;
// 注册全局 IvueLoadingBar 滚动条加载 组件
Vue.prototype.$IvueLoadingBar = IvueLoadingBar;
Vue.prototype.$Ivue = {
size: opts.size || '',
transfer: 'transfer' in opts ? opts.transfer : '',
breakpointWidth: 800
}
// 注册全局指令
// ripple resize touch click-outside
Object.keys(Directives).forEach(key => {
Vue.directive(key, Directives[key]);
});
};
// auto install
/* istanbul ignore if */
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue);
}
const API = {
version: process.env.VERSION, // eslint-disable-line no-undef
install,
...components
};
module.exports = API; // eslint-disable-line no-undef
// export default API; // eslint-disable-line no-undef