vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 9.36 kB
Source Map (JSON)
{"version":3,"file":"use-btn.mjs","sources":["../../../../../../packages/components/ui/btn/use-btn.ts"],"sourcesContent":["import { computed } from 'vue'\nimport useAlign, { useAlignProps } from '@vue-cesium/composables/private/use-align'\nimport useSize, { useSizeProps } from '@vue-cesium/composables/private/use-size'\n\nconst padding = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32\n}\n\nconst defaultSizes = {\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n}\n\nexport const useBtnProps = {\n ...useSizeProps,\n\n type: {\n type: String,\n default: 'button'\n },\n\n label: [Number, String],\n icon: String,\n iconRight: String,\n\n round: Boolean,\n outline: Boolean,\n flat: Boolean,\n unelevated: Boolean,\n rounded: Boolean,\n push: Boolean,\n glossy: Boolean,\n\n size: String,\n fab: Boolean,\n fabMini: Boolean,\n padding: String,\n\n color: String,\n textColor: String,\n noCaps: Boolean,\n noWrap: Boolean,\n dense: Boolean,\n\n tabindex: [Number, String],\n\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n\n align: {\n ...useAlignProps.align,\n default: 'center'\n },\n stack: Boolean,\n stretch: Boolean,\n loading: {\n type: Boolean,\n default: null\n },\n disable: Boolean\n}\n\nexport default function (props) {\n const sizeStyle = useSize(props, defaultSizes)\n const alignClass = useAlign(props)\n\n const style = computed(() => {\n const obj = props.fab === false && props.fabMini === false ? sizeStyle.value : {}\n return props.padding !== void 0\n ? Object.assign({}, obj, {\n padding: props.padding\n .split(/\\s+/)\n .map(v => (v in padding ? padding[v] + 'px' : v))\n .join(' '),\n minWidth: '0',\n minHeight: '0'\n })\n : obj\n })\n\n const isRounded = computed(() => props.rounded === true || props.fab === true || props.fabMini === true)\n\n const isActionable = computed(() => props.disable !== true && props.loading !== true)\n\n const tabIndex = computed(() => (isActionable.value === true ? props.tabindex || 0 : -1))\n\n const design = computed(() => {\n if (props.flat === true) return 'flat'\n if (props.outline === true) return 'outline'\n if (props.push === true) return 'push'\n if (props.unelevated === true) return 'unelevated'\n return 'standard'\n })\n\n const attributes = computed(() => {\n const acc: any = { tabindex: tabIndex.value }\n\n if (props.type !== 'a') {\n acc.type = props.type\n }\n\n acc.role = props.type === 'a' ? 'link' : 'button'\n\n if (props.loading === true && props.percentage !== void 0) {\n Object.assign(acc, {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': props.percentage\n })\n }\n\n if (props.disable === true) {\n acc.disabled = ''\n acc['aria-disabled'] = 'true'\n }\n\n return acc\n })\n\n const classes = computed(() => {\n let colors\n\n if (props.color !== void 0) {\n if (props.flat === true || props.outline === true) {\n colors = `text-${props.textColor || props.color}`\n } else {\n colors = `bg-${props.color} text-${props.textColor || 'white'}`\n }\n } else if (props.textColor) {\n colors = `text-${props.textColor}`\n }\n\n return (\n `vc-btn--${design.value} ` +\n `vc-btn--${props.round === true ? 'round' : `rectangle${isRounded.value === true ? ' vc-btn--rounded' : ''}`}` +\n (colors !== void 0 ? ' ' + colors : '') +\n (isActionable.value === true ? ' vc-btn--actionable vc-focusable vc-hoverable' : props.disable === true ? ' disabled' : '') +\n (props.fab === true ? ' vc-btn--fab' : props.fabMini === true ? ' vc-btn--fab-mini' : '') +\n (props.noCaps === true ? ' vc-btn--no-uppercase' : '') +\n (props.dense === true ? ' vc-btn--dense' : '') +\n (props.stretch === true ? ' no-border-radius self-stretch' : '') +\n (props.glossy === true ? ' glossy' : '')\n )\n })\n\n const innerClasses = computed(\n () =>\n alignClass.value +\n (props.stack === true ? ' column' : ' row') +\n (props.noWrap === true ? ' no-wrap text-no-wrap' : '') +\n (props.loading === true ? ' vc-btn__content--hidden' : '')\n )\n\n return {\n classes,\n style,\n innerClasses,\n attributes,\n isActionable\n }\n}\n"],"names":[],"mappings":";;;;;AAIA,MAAM,OAAU,GAAA;AAAA,EACd,IAAM,EAAA,CAAA;AAAA,EACN,EAAI,EAAA,CAAA;AAAA,EACJ,EAAI,EAAA,CAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AACN,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA;AAAA,EACnB,EAAI,EAAA,CAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AAAA,EACJ,EAAI,EAAA,EAAA;AACN,CAAA,CAAA;AAEO,MAAM,WAAc,GAAA;AAAA,EACzB,GAAG,YAAA;AAAA,EAEH,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,QAAA;AAAA,GACX;AAAA,EAEA,KAAA,EAAO,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EACtB,IAAM,EAAA,MAAA;AAAA,EACN,SAAW,EAAA,MAAA;AAAA,EAEX,KAAO,EAAA,OAAA;AAAA,EACP,OAAS,EAAA,OAAA;AAAA,EACT,IAAM,EAAA,OAAA;AAAA,EACN,UAAY,EAAA,OAAA;AAAA,EACZ,OAAS,EAAA,OAAA;AAAA,EACT,IAAM,EAAA,OAAA;AAAA,EACN,MAAQ,EAAA,OAAA;AAAA,EAER,IAAM,EAAA,MAAA;AAAA,EACN,GAAK,EAAA,OAAA;AAAA,EACL,OAAS,EAAA,OAAA;AAAA,EACT,OAAS,EAAA,MAAA;AAAA,EAET,KAAO,EAAA,MAAA;AAAA,EACP,SAAW,EAAA,MAAA;AAAA,EACX,MAAQ,EAAA,OAAA;AAAA,EACR,MAAQ,EAAA,OAAA;AAAA,EACR,KAAO,EAAA,OAAA;AAAA,EAEP,QAAA,EAAU,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EAEzB,MAAQ,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,OAAA,EAAS,MAAM,CAAA;AAAA,IACtB,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAEA,KAAO,EAAA;AAAA,IACL,GAAG,aAAc,CAAA,KAAA;AAAA,IACjB,OAAS,EAAA,QAAA;AAAA,GACX;AAAA,EACA,KAAO,EAAA,OAAA;AAAA,EACP,OAAS,EAAA,OAAA;AAAA,EACT,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA,OAAA;AACX,EAAA;AAEA,eAAA,CAAyB,KAAO,EAAA;AAC9B,EAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,KAAA,EAAO,YAAY,CAAA,CAAA;AAC7C,EAAM,MAAA,UAAA,GAAa,SAAS,KAAK,CAAA,CAAA;AAEjC,EAAM,MAAA,KAAA,GAAQ,SAAS,MAAM;AAC3B,IAAM,MAAA,GAAA,GAAM,MAAM,GAAQ,KAAA,KAAA,IAAS,MAAM,OAAY,KAAA,KAAA,GAAQ,SAAU,CAAA,KAAA,GAAQ,EAAC,CAAA;AAChF,IAAA,OAAO,MAAM,OAAY,KAAA,KAAA,CAAA,GACrB,OAAO,MAAO,CAAA,IAAI,GAAK,EAAA;AAAA,MACrB,SAAS,KAAM,CAAA,OAAA,CACZ,KAAM,CAAA,KAAK,EACX,GAAI,CAAA,CAAA,CAAA,KAAM,CAAK,IAAA,OAAA,GAAU,QAAQ,CAAC,CAAA,GAAI,OAAO,CAAE,CAAA,CAC/C,KAAK,GAAG,CAAA;AAAA,MACX,QAAU,EAAA,GAAA;AAAA,MACV,SAAW,EAAA,GAAA;AAAA,KACZ,CACD,GAAA,GAAA,CAAA;AAAA,GACL,CAAA,CAAA;AAED,EAAM,MAAA,SAAA,GAAY,QAAS,CAAA,MAAM,KAAM,CAAA,OAAA,KAAY,IAAQ,IAAA,KAAA,CAAM,GAAQ,KAAA,IAAA,IAAQ,KAAM,CAAA,OAAA,KAAY,IAAI,CAAA,CAAA;AAEvG,EAAM,MAAA,YAAA,GAAe,SAAS,MAAM,KAAA,CAAM,YAAY,IAAQ,IAAA,KAAA,CAAM,YAAY,IAAI,CAAA,CAAA;AAEpF,EAAM,MAAA,QAAA,GAAW,SAAS,MAAO,YAAA,CAAa,UAAU,IAAO,GAAA,KAAA,CAAM,QAAY,IAAA,CAAA,GAAI,CAAG,CAAA,CAAA,CAAA;AAExF,EAAM,MAAA,MAAA,GAAS,SAAS,MAAM;AAC5B,IAAA,IAAI,MAAM,IAAS,KAAA,IAAA;AAAM,MAAO,OAAA,MAAA,CAAA;AAChC,IAAA,IAAI,MAAM,OAAY,KAAA,IAAA;AAAM,MAAO,OAAA,SAAA,CAAA;AACnC,IAAA,IAAI,MAAM,IAAS,KAAA,IAAA;AAAM,MAAO,OAAA,MAAA,CAAA;AAChC,IAAA,IAAI,MAAM,UAAe,KAAA,IAAA;AAAM,MAAO,OAAA,YAAA,CAAA;AACtC,IAAO,OAAA,UAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,IAAA,MAAM,GAAW,GAAA,EAAE,QAAU,EAAA,QAAA,CAAS,KAAM,EAAA,CAAA;AAE5C,IAAI,IAAA,KAAA,CAAM,SAAS,GAAK,EAAA;AACtB,MAAA,GAAA,CAAI,OAAO,KAAM,CAAA,IAAA,CAAA;AAAA,KACnB;AAEA,IAAA,GAAA,CAAI,IAAO,GAAA,KAAA,CAAM,IAAS,KAAA,GAAA,GAAM,MAAS,GAAA,QAAA,CAAA;AAEzC,IAAA,IAAI,KAAM,CAAA,OAAA,KAAY,IAAQ,IAAA,KAAA,CAAM,eAAe,KAAQ,CAAA,EAAA;AACzD,MAAA,MAAA,CAAO,OAAO,GAAK,EAAA;AAAA,QACjB,IAAM,EAAA,aAAA;AAAA,QACN,eAAiB,EAAA,CAAA;AAAA,QACjB,eAAiB,EAAA,GAAA;AAAA,QACjB,iBAAiB,KAAM,CAAA,UAAA;AAAA,OACxB,CAAA,CAAA;AAAA,KACH;AAEA,IAAI,IAAA,KAAA,CAAM,YAAY,IAAM,EAAA;AAC1B,MAAA,GAAA,CAAI,QAAW,GAAA,EAAA,CAAA;AACf,MAAA,GAAA,CAAI,eAAe,CAAI,GAAA,MAAA,CAAA;AAAA,KACzB;AAEA,IAAO,OAAA,GAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAC7B,IAAI,IAAA,MAAA,CAAA;AAEJ,IAAI,IAAA,KAAA,CAAM,UAAU,KAAQ,CAAA,EAAA;AAC1B,MAAA,IAAI,KAAM,CAAA,IAAA,KAAS,IAAQ,IAAA,KAAA,CAAM,YAAY,IAAM,EAAA;AACjD,QAAA,MAAA,GAAS,CAAQ,KAAA,EAAA,KAAA,CAAM,SAAa,IAAA,KAAA,CAAM,KAAK,CAAA,CAAA,CAAA;AAAA,OAC1C,MAAA;AACL,QAAA,MAAA,GAAS,MAAM,KAAM,CAAA,KAAK,CAAS,MAAA,EAAA,KAAA,CAAM,aAAa,OAAO,CAAA,CAAA,CAAA;AAAA,OAC/D;AAAA,KACF,MAAA,IAAW,MAAM,SAAW,EAAA;AAC1B,MAAS,MAAA,GAAA,CAAA,KAAA,EAAQ,MAAM,SAAS,CAAA,CAAA,CAAA;AAAA,KAClC;AAEA,IACE,OAAA,CAAA,QAAA,EAAW,MAAO,CAAA,KAAK,CACZ,SAAA,EAAA,KAAA,CAAM,KAAU,KAAA,IAAA,GAAO,OAAU,GAAA,CAAA,SAAA,EAAY,SAAU,CAAA,KAAA,KAAU,IAAO,GAAA,kBAAA,GAAqB,EAAE,CAAE,CAAA,CAAA,CAAA,IAC3G,MAAW,KAAA,KAAA,CAAA,GAAS,GAAM,GAAA,MAAA,GAAS,EACnC,CAAA,IAAA,YAAA,CAAa,KAAU,KAAA,IAAA,GAAO,+CAAkD,GAAA,KAAA,CAAM,OAAY,KAAA,IAAA,GAAO,cAAc,EACvH,CAAA,IAAA,KAAA,CAAM,GAAQ,KAAA,IAAA,GAAO,cAAiB,GAAA,KAAA,CAAM,OAAY,KAAA,IAAA,GAAO,mBAAsB,GAAA,EAAA,CAAA,IACrF,KAAM,CAAA,MAAA,KAAW,IAAO,GAAA,uBAAA,GAA0B,EAClD,CAAA,IAAA,KAAA,CAAM,KAAU,KAAA,IAAA,GAAO,gBAAmB,GAAA,EAAA,CAAA,IAC1C,KAAM,CAAA,OAAA,KAAY,IAAO,GAAA,gCAAA,GAAmC,EAC5D,CAAA,IAAA,KAAA,CAAM,MAAW,KAAA,IAAA,GAAO,SAAY,GAAA,EAAA,CAAA,CAAA;AAAA,GAExC,CAAA,CAAA;AAED,EAAA,MAAM,YAAe,GAAA,QAAA;AAAA,IACnB,MACE,UAAW,CAAA,KAAA,IACV,KAAM,CAAA,KAAA,KAAU,OAAO,SAAY,GAAA,MAAA,CAAA,IACnC,KAAM,CAAA,MAAA,KAAW,OAAO,uBAA0B,GAAA,EAAA,CAAA,IAClD,KAAM,CAAA,OAAA,KAAY,OAAO,0BAA6B,GAAA,EAAA,CAAA;AAAA,GAC3D,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}