nutui-taro-upgrade
Version:
@nutui/nutui-taro 对京东风格组件库的taro4 版本支持
94 lines (93 loc) • 3.57 kB
JavaScript
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
import { defineComponent, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, normalizeClass, renderSlot, createTextVNode, Fragment, toDisplayString } from "vue";
import { u as useParent } from "../useParent-db66af63.js";
import { p as pxCheck } from "../pxCheck-a27490eb.js";
import { G as GRID_KEY } from "../types-7c2d238a.js";
import { w as withInstall } from "../with-install-783bc31f.js";
const _hoisted_1 = { class: "nut-grid-item__text" };
const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
name: "NutGridItem"
}), {
__name: "grid-item.taro",
props: {
text: {}
},
emits: ["click"],
setup(__props, { emit: __emit }) {
const emit = __emit;
const { parent: parentObj, index } = useParent(GRID_KEY);
const parent = (parentObj == null ? void 0 : parentObj.props) || {};
const rootStyle = computed(() => {
const style = {
flexBasis: `${100 / +parent.columnNum}%`
};
if (parent.square) {
style.paddingTop = `${100 / +parent.columnNum}%`;
} else if (parent.gutter) {
style.paddingRight = pxCheck(parent.gutter);
if (index.value >= +parent.columnNum) {
style.marginTop = pxCheck(parent.gutter);
}
}
return style;
});
const contentClass = computed(() => {
const prefixCls = `nut-grid-item__content`;
return {
[`${prefixCls}`]: true,
[`${prefixCls}--border`]: parent.border,
[`${prefixCls}--surround`]: parent.border && parent.gutter,
[`${prefixCls}--center`]: parent.center,
[`${prefixCls}--square`]: parent.square,
[`${prefixCls}--reverse`]: parent.reverse,
[`${prefixCls}--${parent.direction}`]: !!parent.direction,
[`${prefixCls}--clickable`]: parent.clickable
};
});
const handleClick = (event) => {
emit("click", event);
};
return (_ctx, _cache) => {
return openBlock(), createElementBlock("view", {
class: "nut-grid-item",
style: normalizeStyle(rootStyle.value),
onClick: handleClick
}, [
createElementVNode("view", {
class: normalizeClass(contentClass.value)
}, [
renderSlot(_ctx.$slots, "default"),
_cache[0] || (_cache[0] = createTextVNode()),
createElementVNode("view", _hoisted_1, [
_ctx.text ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createTextVNode(toDisplayString(_ctx.text), 1)
], 64)) : renderSlot(_ctx.$slots, "text", { key: 1 })
])
], 2)
], 4);
};
}
}));
withInstall(_sfc_main);
export {
_sfc_main as GridItem,
_sfc_main as default
};