UNPKG

@extclp/vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

107 lines (106 loc) 3.14 kB
import { App, ComputedRef, MaybeRef } from 'vue'; import { ClassType, StyleType } from './props'; export declare const PROVIDED_ICONS = "__vxp-provided-icons"; export type IconValue = Record<string, any> | (() => any); export interface IconOptions extends Record<string, any> { class?: ClassType; style?: StyleType; scale?: number | string; title?: string; label?: string; flip?: 'horizontal' | 'vertical' | 'both'; effect?: string; size?: string; color?: string; rotate?: number | string; } export type IconArrayValue = [IconValue, IconOptions?]; export type IconConfig = IconValue | IconArrayValue; export interface IconsOptions { loading?: IconConfig; clear?: IconConfig; close?: IconConfig; calendar?: IconConfig; clock?: IconConfig; exchange?: IconConfig; angleUp?: IconConfig; angleRight?: IconConfig; angleDown?: IconConfig; angleLeft?: IconConfig; anglesRight?: IconConfig; anglesLeft?: IconConfig; retweet?: IconConfig; refresh?: IconConfig; filter?: IconConfig; ellipsis?: IconConfig; upload?: IconConfig; uploadCloud?: IconConfig; check?: IconConfig; help?: IconConfig; alert?: IconConfig; question?: IconConfig; info?: IconConfig; success?: IconConfig; warning?: IconConfig; error?: IconConfig; delete?: IconConfig; preview?: IconConfig; image?: IconConfig; plus?: IconConfig; minus?: IconConfig; plusSquare?: IconConfig; minusSquare?: IconConfig; cipherText?: IconConfig; plainText?: IconConfig; user?: IconConfig; light?: IconConfig; dark?: IconConfig; signOut?: IconConfig; indent?: IconConfig; outdent?: IconConfig; search?: IconConfig; rotateRight?: IconConfig; rotateLeft?: IconConfig; flipX?: IconConfig; flipY?: IconConfig; zoomIn?: IconConfig; zoonOut?: IconConfig; fullScreen?: IconConfig; resetScreen?: IconConfig; dragger?: IconConfig; file?: IconConfig; fileText?: IconConfig; fileCode?: IconConfig; fileImage?: IconConfig; fileAudio?: IconConfig; fileVideo?: IconConfig; fileZip?: IconConfig; volume?: IconConfig; volumeLow?: IconConfig; volumeMute?: IconConfig; play?: IconConfig; pause?: IconConfig; fullWindow?: IconConfig; pip?: IconConfig; playState?: IconConfig; pauseState?: IconConfig; playPrev?: IconConfig; playNext?: IconConfig; } export type IconName = keyof IconsOptions; export type IconsConfig = { [K in keyof IconsOptions]-?: IconConfig; }; export type NormalizedIconsConfig = Record<IconName, IconOptions & { icon: IconValue; }>; export declare const iconNames: readonly (keyof IconsOptions)[]; export declare const globalIcons: ComputedRef<NormalizedIconsConfig>; /** * Provide a icons config for under components. * * @param icons icons config * @param app the app of Vue, will use app.provide if specify */ export declare function configIcons(icons: MaybeRef<IconsOptions>, app?: App): void; export declare function useIcons(): ComputedRef<NormalizedIconsConfig>;