UNPKG

vue-cesium

Version:
1 lines 6.22 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/ui/skeleton/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-27 15:54:13\n * @LastEditTime: 2022-03-05 11:05:59\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\ui\\skeleton\\index.ts\n */\nimport { h, defineComponent, computed, VNode, ComponentPublicInstance } from 'vue'\n\nimport type { PropType } from 'vue'\n\nimport useDark, { useDarkProps } from '@vue-cesium/composables/private/use-dark'\n\nimport { hSlot } from '@vue-cesium/utils/private/render'\n\nexport const skeletonTypes = [\n 'text',\n 'rect',\n 'circle',\n 'VcBtn',\n 'VcBadge',\n 'VcChip',\n 'VcToolbar',\n 'VcCheckbox',\n 'VcRadio',\n 'VcToggle',\n 'VcSlider',\n 'VcRange',\n 'VcInput',\n 'VcAvatar'\n]\n\nexport const skeletonAnimations = ['wave', 'pulse', 'pulse-x', 'pulse-y', 'fade', 'blink', 'none']\nexport const skeletonProps = {\n ...useDarkProps,\n\n tag: {\n type: String,\n default: 'div'\n },\n\n type: {\n type: String,\n validator: (v: string) => skeletonTypes.includes(v),\n default: 'rect'\n },\n\n animation: {\n type: String as PropType<'wave' | 'pulse' | 'pulse-x' | 'pulse-y' | 'fade' | 'blink' | 'none'>,\n validator: (v: string) => skeletonAnimations.includes(v),\n default: 'wave'\n },\n\n square: Boolean,\n bordered: Boolean,\n\n size: String as PropType<string>,\n width: String,\n height: String\n}\nexport default defineComponent({\n name: 'VcSkeleton',\n\n props: skeletonProps,\n\n setup(props, { slots }) {\n const isDark = useDark(props)\n\n const style = computed(() => (props.size !== void 0 ? { width: props.size, height: props.size } : { width: props.width, height: props.height }))\n\n const classes = computed(\n () =>\n `vc-skeleton vc-skeleton--${isDark.value === true ? 'dark' : 'light'} vc-skeleton--type-${props.type}` +\n (props.animation !== 'none' ? ` vc-skeleton--anim vc-skeleton--anim-${props.animation}` : '') +\n (props.square === true ? ' vc-skeleton--square' : '') +\n (props.bordered === true ? ' vc-skeleton--bordered' : '')\n )\n\n return () =>\n h(\n props.tag,\n {\n class: classes.value,\n style: style.value\n },\n hSlot(slots.default)\n )\n }\n})\n\n// export type VcSkeletonProps = ExtractPropTypes<typeof skeletonProps>\nexport interface VcSkeletonProps {\n /**\n * Notify the component that the background is a dark color.\n */\n dark?: boolean | undefined\n /**\n * Type of skeleton placeholder.\n * Default value: rect\n */\n type?:\n | 'text'\n | 'rect'\n | 'circle'\n | 'VcBtn'\n | 'VcBadge'\n | 'VcChip'\n | 'VcToolbar'\n | 'VcCheckbox'\n | 'VcRadio'\n | 'VcToggle'\n | 'VcSlider'\n | 'VcRange'\n | 'VcInput'\n | 'VcAvatar'\n | undefined\n /**\n * The animation effect of the skeleton placeholder.\n * Default value: wave\n */\n animation?: 'wave' | 'pulse' | 'pulse-x' | 'pulse-y' | 'fade' | 'blink' | 'none' | undefined\n /**\n * Animation speed (in milliseconds, without unit).\n * Default value: 300\n */\n animationSpeed?: string | number | undefined\n /**\n * Removes border-radius so borders are squared.\n */\n square?: boolean | undefined\n /**\n * Applies a default border to the component.\n */\n bordered?: boolean | undefined\n /**\n * Size in CSS units, including unit name; Overrides 'height' and 'width' props and applies the value to both height and width.\n */\n size?: string | undefined\n /**\n * Width in CSS units, including unit name; Apply custom width; Use this prop or through CSS; Overridden by 'size' prop if used.\n */\n width?: string | undefined\n /**\n * Height in CSS units, including unit name; Apply custom height; Use this prop or through CSS; Overridden by 'size' prop if used.\n */\n height?: string | undefined\n /**\n * HTML tag to use.\n * Default value: div\n */\n tag?: string | undefined\n color?: string\n}\n\nexport interface VcSkeletonSlots {\n /**\n * Default slot in the devland unslotted content of the component\n */\n default: () => VNode[]\n}\n\nexport type VcSkeletonRef = ComponentPublicInstance<VcSkeletonProps>\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,aAAgB,GAAA;AAAA,EAC3B,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AACF,EAAA;AAEa,MAAA,kBAAA,GAAqB,CAAC,MAAQ,EAAA,OAAA,EAAS,WAAW,SAAW,EAAA,MAAA,EAAQ,SAAS,MAAM,EAAA;AAC1F,MAAM,aAAgB,GAAA;AAAA,EAC3B,GAAG,YAAA;AAAA,EAEH,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAEA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,SAAW,EAAA,CAAC,CAAc,KAAA,aAAA,CAAc,SAAS,CAAC,CAAA;AAAA,IAClD,OAAS,EAAA,MAAA;AAAA,GACX;AAAA,EAEA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,SAAW,EAAA,CAAC,CAAc,KAAA,kBAAA,CAAmB,SAAS,CAAC,CAAA;AAAA,IACvD,OAAS,EAAA,MAAA;AAAA,GACX;AAAA,EAEA,MAAQ,EAAA,OAAA;AAAA,EACR,QAAU,EAAA,OAAA;AAAA,EAEV,IAAM,EAAA,MAAA;AAAA,EACN,KAAO,EAAA,MAAA;AAAA,EACP,MAAQ,EAAA,MAAA;AACV,EAAA;AACA,eAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,YAAA;AAAA,EAEN,KAAO,EAAA,aAAA;AAAA,EAEP,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAS,EAAA;AACtB,IAAM,MAAA,MAAA,GAAS,QAAQ,KAAK,CAAA,CAAA;AAE5B,IAAM,MAAA,KAAA,GAAQ,SAAS,MAAO,KAAA,CAAM,SAAS,KAAS,CAAA,GAAA,EAAE,OAAO,KAAM,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA,IAAA,KAAS,EAAE,KAAA,EAAO,MAAM,KAAO,EAAA,MAAA,EAAQ,KAAM,CAAA,MAAA,EAAS,CAAA,CAAA;AAE/I,IAAA,MAAM,OAAU,GAAA,QAAA;AAAA,MACd,MACE,CAA4B,yBAAA,EAAA,MAAA,CAAO,KAAU,KAAA,IAAA,GAAO,MAAS,GAAA,OAAO,CAAsB,mBAAA,EAAA,KAAA,CAAM,IAAI,CAAA,CAAA,IACnG,KAAM,CAAA,SAAA,KAAc,MAAS,GAAA,CAAA,qCAAA,EAAwC,KAAM,CAAA,SAAS,CAAK,CAAA,GAAA,EAAA,CAAA,IACzF,KAAM,CAAA,MAAA,KAAW,IAAO,GAAA,sBAAA,GAAyB,EACjD,CAAA,IAAA,KAAA,CAAM,QAAa,KAAA,IAAA,GAAO,wBAA2B,GAAA,EAAA,CAAA;AAAA,KAC1D,CAAA;AAEA,IAAA,OAAO,MACL,CAAA;AAAA,MACE,KAAM,CAAA,GAAA;AAAA,MACN;AAAA,QACE,OAAO,OAAQ,CAAA,KAAA;AAAA,QACf,OAAO,KAAM,CAAA,KAAA;AAAA,OACf;AAAA,MACA,KAAA,CAAM,MAAM,OAAO,CAAA;AAAA,KACrB,CAAA;AAAA,GACJ;AACF,CAAC,CAAA;;;;"}