import type { App } from 'vue' import PsAffix from '@present-ui/affix' import PsAlert from '@present-ui/alert' import PsAside from '@present-ui/aside' import PsAutocomplete from '@present-ui/autocomplete' import PsAvatar from '@present-ui/avatar' import PsBacktop from '@present-ui/backtop' import PsBadge from '@present-ui/badge' import PsBreadcrumb from '@present-ui/breadcrumb' import PsBreadcrumbItem from '@present-ui/breadcrumb-item' import PsButton from '@present-ui/button' import PsButtonGroup from '@present-ui/button-group' import PsCalendar from '@present-ui/calendar' import PsCard from '@present-ui/card' import PsBox from '@present-ui/box' import PsCarousel from '@present-ui/carousel' import PsCarouselItem from '@present-ui/carousel-item' import PsCascader from '@present-ui/cascader' import PsCascaderPanel from '@present-ui/cascader-panel' import PsCheckbox from '@present-ui/checkbox' import PsCheckboxButton from '@present-ui/checkbox-button' import PsCheckboxGroup from '@present-ui/checkbox-group' import PsCol from '@present-ui/col' import PsCollapse from '@present-ui/collapse' import PsCollapseItem from '@present-ui/collapse-item' import PsCollapseTransition from '@present-ui/collapse-transition' import PsColorPicker from '@present-ui/color-picker' import PsContainer from '@present-ui/container' import PsDatePicker from '@present-ui/date-picker' import PsDialog from '@present-ui/dialog' import PsDivider from '@present-ui/divider' import PsDrawer from '@present-ui/drawer' import PsDropdown from '@present-ui/dropdown' import PsDropdownItem from '@present-ui/dropdown-item' import PsDropdownMenu from '@present-ui/dropdown-menu' import PsEmpty from '@present-ui/empty' import PsFooter from '@present-ui/footer' import PsForm from '@present-ui/form' import PsFormItem from '@present-ui/form-item' import PsHeader from '@present-ui/header' import PsIcon from '@present-ui/icon' import PsImage from '@present-ui/image' import PsImageViewer from '@present-ui/image-viewer' import PsInfiniteScroll from '@present-ui/infinite-scroll' import PsInput from '@present-ui/input' import PsInputNumber from '@present-ui/input-number' import PsLink from '@present-ui/link' import PsLoading from '@present-ui/loading' import PsMain from '@present-ui/main' import PsMenu from '@present-ui/menu' import PsMenuItem from '@present-ui/menu-item' import PsMenuItemGroup from '@present-ui/menu-item-group' import PsMessage from '@present-ui/message' import PsMessageBox from '@present-ui/message-box' import PsNotification from '@present-ui/notification' import PsOption from '@present-ui/option' import PsOptionGroup from '@present-ui/option-group' import PsPageHeader from '@present-ui/page-header' import PsPagination from '@present-ui/pagination' import PsPopconfirm from '@present-ui/popconfirm' import PsPopover from '@present-ui/popover' import PsPopper from '@present-ui/popper' import PsProgress from '@present-ui/progress' import PsRadio from '@present-ui/radio' import PsRadioButton from '@present-ui/radio-button' import PsRadioGroup from '@present-ui/radio-group' import PsRate from '@present-ui/rate' import PsRow from '@present-ui/row' import PsScrollbar from '@present-ui/scrollbar' import PsSelect from '@present-ui/select' import PsSlider from '@present-ui/slider' import PsStep from '@present-ui/step' import PsSteps from '@present-ui/steps' import PsSubmenu from '@present-ui/submenu' import PsSwitch from '@present-ui/switch' import PsTabPane from '@present-ui/tab-pane' import PsTable from '@present-ui/table' import PsTableColumn from '@present-ui/table-column' import PsTabs from '@present-ui/tabs' import PsTag from '@present-ui/tag' import PsTimePicker from '@present-ui/time-picker' import PsTimeSelect from '@present-ui/time-select' import PsTimeline from '@present-ui/timeline' import PsTimelineItem from '@present-ui/timeline-item' import PsTooltip from '@present-ui/tooltip' import PsTransfer from '@present-ui/transfer' import PsTree from '@present-ui/tree' import PsUpload from '@present-ui/upload' import PsVirtualList from '@present-ui/virtual-list' import PsSpace from '@present-ui/space' import PsSkeleton from '@present-ui/skeleton' import PsSkeletonItem from '@present-ui/skeleton-item' import { use, i18n } from '@present-ui/locale' // if you encountered problems alike "Can't resolve './version'" // please run `yarn bootstrap` first import { version as version_ } from './version' import type { InstallOptions } from '@present-ui/utils/config' import { setConfig } from '@present-ui/utils/config' import isServer from '@present-ui/utils/isServer' import dayjs from 'dayjs' type DWindow = Window & typeof globalThis & { dayjs?: typeof dayjs } // expose Day.js to window to make full bundle i18n work if (!isServer) { const _window: DWindow = window if (!_window.dayjs) { _window.dayjs = dayjs } } const version = version_ // version_ to fix tsc issue const locale = use const defaultInstallOpt: InstallOptions = { size: '' as ComponentSize, zIndex: 2000, } const components = [ PsAffix, PsAlert, PsAside, PsAutocomplete, PsAvatar, PsBacktop, PsBadge, PsBreadcrumb, PsBreadcrumbItem, PsButton, PsButtonGroup, PsCalendar, PsCard, PsBox, PsCarousel, PsCarouselItem, PsCascader, PsCascaderPanel, PsCheckbox, PsCheckboxButton, PsCheckboxGroup, PsCol, PsCollapse, PsCollapseItem, PsCollapseTransition, PsColorPicker, PsContainer, PsDatePicker, PsDialog, PsDivider, PsDrawer, PsDropdown, PsDropdownItem, PsDropdownMenu, PsEmpty, PsFooter, PsForm, PsFormItem, PsHeader, PsIcon, PsImage, PsImageViewer, PsInput, PsInputNumber, PsLink, PsMain, PsMenu, PsMenuItem, PsMenuItemGroup, PsOption, PsOptionGroup, PsPageHeader, PsPagination, PsPopconfirm, PsPopover, PsPopper, PsProgress, PsRadio, PsRadioButton, PsRadioGroup, PsRate, PsRow, PsScrollbar, PsSelect, PsSlider, PsStep, PsSteps, PsSubmenu, PsSwitch, PsTabPane, PsTable, PsTableColumn, PsTabs, PsTag, PsTimePicker, PsTimeSelect, PsTimeline, PsTimelineItem, PsTooltip, PsTransfer, PsTree, PsUpload, PsVirtualList, PsSpace, PsSkeleton, PsSkeletonItem, ] const plugins = [ PsInfiniteScroll, PsLoading, PsMessage, PsMessageBox, PsNotification, ] const install = (app: App, opt: InstallOptions): void => { const option = Object.assign(defaultInstallOpt, opt) locale(option.locale) if (option.i18n) { i18n(option.i18n) } app.config.globalProperties.$PRESENT = option setConfig(option) components.forEach(component => { app.component(component.name, component) }) plugins.forEach(plugin => { app.use(plugin) }) } export { PsAffix, PsAlert, PsAside, PsAutocomplete, PsAvatar, PsBacktop, PsBadge, PsBreadcrumb, PsBreadcrumbItem, PsButton, PsButtonGroup, PsCalendar, PsCard, PsBox, PsCarousel, PsCarouselItem, PsCascader, PsCascaderPanel, PsCheckbox, PsCheckboxButton, PsCheckboxGroup, PsCol, PsCollapse, PsCollapseItem, PsCollapseTransition, PsColorPicker, PsContainer, PsDatePicker, PsDialog, PsDivider, PsDrawer, PsDropdown, PsDropdownItem, PsDropdownMenu, PsEmpty, PsFooter, PsForm, PsFormItem, PsHeader, PsIcon, PsImage, PsImageViewer, PsInfiniteScroll, PsInput, PsInputNumber, PsLink, PsLoading, PsMain, PsMenu, PsMenuItem, PsMenuItemGroup, PsMessage, PsMessageBox, PsNotification, PsOption, PsOptionGroup, PsPageHeader, PsPagination, PsPopconfirm, PsPopover, PsPopper, PsProgress, PsRadio, PsRadioButton, PsRadioGroup, PsRate, PsRow, PsScrollbar, PsSelect, PsSlider, PsStep, PsSteps, PsSubmenu, PsSwitch, PsTabPane, PsTable, PsTableColumn, PsTabs, PsTag, PsTimePicker, PsTimeSelect, PsTimeline, PsTimelineItem, PsTooltip, PsTransfer, PsTree, PsUpload, PsVirtualList, PsSpace, PsSkeleton, PsSkeletonItem, version, install, locale, } export default { version, install, }