ckgl/node_modules/vant/lib/calendar/CalendarDay.js
2024-12-21 13:52:42 +08:00

152 lines
4.3 KiB
JavaScript

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name2 in all)
__defProp(target, name2, { get: all[name2], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var stdin_exports = {};
__export(stdin_exports, {
default: () => stdin_default
});
module.exports = __toCommonJS(stdin_exports);
var import_vue = require("vue");
var import_utils = require("../utils");
var import_utils2 = require("./utils");
const [name] = (0, import_utils.createNamespace)("calendar-day");
var stdin_default = (0, import_vue.defineComponent)({
name,
props: {
item: (0, import_utils.makeRequiredProp)(Object),
color: String,
index: Number,
offset: (0, import_utils.makeNumberProp)(0),
rowHeight: String
},
emits: ["click", "clickDisabledDate"],
setup(props, {
emit,
slots
}) {
const style = (0, import_vue.computed)(() => {
var _a;
const {
item,
index,
color,
offset,
rowHeight
} = props;
const style2 = {
height: rowHeight
};
if (item.type === "placeholder") {
style2.width = "100%";
return style2;
}
if (index === 0) {
style2.marginLeft = `${100 * offset / 7}%`;
}
if (color) {
switch (item.type) {
case "end":
case "start":
case "start-end":
case "multiple-middle":
case "multiple-selected":
style2.background = color;
break;
case "middle":
style2.color = color;
break;
}
}
if (offset + (((_a = item.date) == null ? void 0 : _a.getDate()) || 1) > 28) {
style2.marginBottom = 0;
}
return style2;
});
const onClick = () => {
if (props.item.type !== "disabled") {
emit("click", props.item);
} else {
emit("clickDisabledDate", props.item);
}
};
const renderTopInfo = () => {
const {
topInfo
} = props.item;
if (topInfo || slots["top-info"]) {
return (0, import_vue.createVNode)("div", {
"class": (0, import_utils2.bem)("top-info")
}, [slots["top-info"] ? slots["top-info"](props.item) : topInfo]);
}
};
const renderBottomInfo = () => {
const {
bottomInfo
} = props.item;
if (bottomInfo || slots["bottom-info"]) {
return (0, import_vue.createVNode)("div", {
"class": (0, import_utils2.bem)("bottom-info")
}, [slots["bottom-info"] ? slots["bottom-info"](props.item) : bottomInfo]);
}
};
const renderText = () => {
return slots.text ? slots.text(props.item) : props.item.text;
};
const renderContent = () => {
const {
item,
color,
rowHeight
} = props;
const {
type
} = item;
const Nodes = [renderTopInfo(), renderText(), renderBottomInfo()];
if (type === "selected") {
return (0, import_vue.createVNode)("div", {
"class": (0, import_utils2.bem)("selected-day"),
"style": {
width: rowHeight,
height: rowHeight,
background: color
}
}, [Nodes]);
}
return Nodes;
};
return () => {
const {
type,
className
} = props.item;
if (type === "placeholder") {
return (0, import_vue.createVNode)("div", {
"class": (0, import_utils2.bem)("day"),
"style": style.value
}, null);
}
return (0, import_vue.createVNode)("div", {
"role": "gridcell",
"style": style.value,
"class": [(0, import_utils2.bem)("day", type), className],
"tabindex": type === "disabled" ? void 0 : -1,
"onClick": onClick
}, [renderContent()]);
};
}
});