UNPKG

@vuesax-alpha/nightly

Version:
77 lines (74 loc) 2.56 kB
import { defineComponent, inject, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle, renderSlot } from 'vue'; import '../../../hooks/index.mjs'; import '../../../tokens/index.mjs'; import '../../../utils/index.mjs'; import { colProps } from './col.mjs'; import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs'; import { useNamespace } from '../../../hooks/use-namespace/index.mjs'; import { rowContextKey } from '../../../tokens/row.mjs'; import { isNumber } from '../../../utils/types.mjs'; import { isObject } from '@vue/shared'; const __default__ = defineComponent({ name: "VsCol" }); const _sfc_main = defineComponent({ ...__default__, props: colProps, setup(__props) { const props = __props; const ns = useNamespace("col"); const { gutter } = inject(rowContextKey, { gutter: computed(() => 0) }); const colKls = computed(() => { const classes = []; const pos = ["span", "offset", "pull", "push"]; pos.forEach((prop) => { const size = props[prop]; if (isNumber(size)) { if (prop === "span") classes.push(ns.b(`${props[prop]}`)); else if (size > 0) classes.push(ns.b(`${prop}-${props[prop]}`)); } }); const sizes = ["xs", "sm", "md", "lg", "xl"]; sizes.forEach((size) => { if (isNumber(props[size])) { classes.push(ns.b(`${size}-${props[size]}`)); } else if (isObject(props[size])) { Object.entries(props[size]).forEach(([prop, sizeProp]) => { classes.push( prop !== "span" ? ns.b(`${size}-${prop}-${sizeProp}`) : ns.b(`${size}-${sizeProp}`) ); }); } }); if (gutter.value) { classes.push(ns.is("guttered")); } return [ns.b(), classes]; }); const colStyle = computed(() => { const styles = {}; if (gutter.value) { styles.paddingLeft = styles.paddingRight = `${gutter.value / 2}px`; } return styles; }); return (_ctx, _cache) => { return openBlock(), createElementBlock( "div", { class: normalizeClass(colKls.value), style: normalizeStyle(colStyle.value) }, [ renderSlot(_ctx.$slots, "default") ], 6 ); }; } }); var Col = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/col/src/col.vue"]]); export { Col as default }; //# sourceMappingURL=col2.mjs.map