UNPKG

comic-plus

Version:

<p align="center"> <img width="200px" src="./logo.png"/> </p>

73 lines (72 loc) 2.87 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const vue = require("vue"); const type = require("./type.js"); const _hoisted_1 = { class: "cu-schedule-defaultcard__content" }; const _hoisted_2 = { class: "timer" }; const _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...{ name: "CuScheduleCards" }, __name: "card", props: { data: Object }, setup(__props) { const props = __props; const { props: injectProps, spacing } = vue.inject(type.SCHEDULE_PROVIDE); const cardRef = vue.ref(); const maxHeight = vue.computed(() => { return (injectProps.end + 1 - injectProps.start) * spacing.value; }); const startTime = vue.computed(() => { return Math.max(props.data.startTime, injectProps.start); }); const endTime = vue.computed(() => { return Math.min(props.data.endTime, injectProps.end + 1); }); const getMaxPx = (number) => { return Math.min(Math.max(number, 0), maxHeight.value); }; const cardStyle = vue.computed(() => { return { top: getMaxPx((startTime.value - injectProps.start) * spacing.value) + "px", height: Math.min((endTime.value - startTime.value) * spacing.value, maxHeight.value) + "px" }; }); function cardStyleFn(card) { return { marginTop: getMaxPx((card.getTimes[0] - startTime.value) * spacing.value) + "px", marginBottom: getMaxPx((endTime.value - card.getTimes[1]) * spacing.value) + "px" }; } return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { style: vue.normalizeStyle(cardStyle.value), ref_key: "cardRef", ref: cardRef, class: "cu-schedule-cards" }, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.data.children, (card, idx) => { return vue.openBlock(), vue.createElementBlock("div", { class: "cu-schedule-card", style: vue.normalizeStyle(cardStyleFn(card)), key: card.time + idx }, [ vue.renderSlot(_ctx.$slots, "card", { data: card }, () => [ vue.isVNode(card.content) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(card.content), { key: 0 })) : (vue.openBlock(), vue.createElementBlock("div", { key: 1, class: "cu-schedule-defaultcard", style: vue.normalizeStyle({ "--card-color": card.color }) }, [ vue.createElementVNode("div", _hoisted_1, vue.toDisplayString(card.content), 1), vue.createElementVNode("div", _hoisted_2, vue.toDisplayString(card.time), 1) ], 4)) ]) ], 4); }), 128)) ], 4); }; } }); exports.default = _sfc_main;