UNPKG

epic-designer-cjh

Version:

基于vue3的设计器,可视化开发页面表单

379 lines (378 loc) 13.7 kB
import { h as n, defineComponent as B, toRef as J, computed as $ } from "vue"; import { a as m, e as d, c as t, f as Q, k as U, b as l, l as oo, m as eo, u as ro, g as to } from "./use-rtl-d05cb593.js"; import { c as no, u as L, a as ao, b as lo } from "./light-76d75dc8.js"; import { c as w } from "./create-key-76a2bf3d.js"; import { a as so } from "./index-7c742dc7.js"; import { r as p } from "./resolve-slot-d8544b74.js"; import { u as io } from "./use-style-b9e822e4.js"; import { N as co } from "./Icon-6fe59076.js"; import { r as bo } from "./replaceable-3545da1a.js"; function go(o) { return Object.keys(o); } const fo = bo("close", n( "svg", { viewBox: "0 0 12 12", version: "1.1", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": !0 }, n( "g", { stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" }, n( "g", { fill: "currentColor", "fill-rule": "nonzero" }, n("path", { d: "M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z" }) ) ) )), vo = m("base-close", ` display: flex; align-items: center; justify-content: center; cursor: pointer; background-color: transparent; color: var(--n-close-icon-color); border-radius: var(--n-close-border-radius); height: var(--n-close-size); width: var(--n-close-size); font-size: var(--n-close-icon-size); outline: none; border: none; position: relative; padding: 0; `, [d("absolute", ` height: var(--n-close-icon-size); width: var(--n-close-icon-size); `), t("&::before", ` content: ""; position: absolute; width: var(--n-close-size); height: var(--n-close-size); left: 50%; top: 50%; transform: translateY(-50%) translateX(-50%); transition: inherit; border-radius: inherit; `), Q("disabled", [t("&:hover", ` color: var(--n-close-icon-color-hover); `), t("&:hover::before", ` background-color: var(--n-close-color-hover); `), t("&:focus::before", ` background-color: var(--n-close-color-hover); `), t("&:active", ` color: var(--n-close-icon-color-pressed); `), t("&:active::before", ` background-color: var(--n-close-color-pressed); `)]), d("disabled", ` cursor: not-allowed; color: var(--n-close-icon-color-disabled); background-color: transparent; `), d("round", [t("&::before", ` border-radius: 50%; `)])]), uo = B({ name: "BaseClose", props: { isButtonTag: { type: Boolean, default: !0 }, clsPrefix: { type: String, required: !0 }, disabled: { type: Boolean, default: void 0 }, focusable: { type: Boolean, default: !0 }, round: Boolean, onClick: Function, absolute: Boolean }, setup(o) { return io("-base-close", vo, J(o, "clsPrefix")), () => { const { clsPrefix: c, disabled: s, absolute: e, round: b, isButtonTag: i } = o; return n( i ? "button" : "div", { type: i ? "button" : void 0, tabindex: s || !o.focusable ? -1 : 0, "aria-disabled": s, "aria-label": "close", role: i ? void 0 : "button", disabled: s, class: [ `${c}-base-close`, e && `${c}-base-close--absolute`, s && `${c}-base-close--disabled`, b && `${c}-base-close--round` ], onMousedown: (g) => { o.focusable || g.preventDefault(); }, onClick: o.onClick }, n(co, { clsPrefix: c }, { default: () => n(fo, null) }) ); }; } }), po = { paddingSmall: "12px 16px 12px", paddingMedium: "19px 24px 20px", paddingLarge: "23px 32px 24px", paddingHuge: "27px 40px 28px", titleFontSizeSmall: "16px", titleFontSizeMedium: "18px", titleFontSizeLarge: "18px", titleFontSizeHuge: "18px", closeIconSize: "18px", closeSize: "22px" }, mo = (o) => { const { primaryColor: c, borderRadius: s, lineHeight: e, fontSize: b, cardColor: i, textColor2: f, textColor1: g, dividerColor: a, fontWeightStrong: r, closeIconColor: v, closeIconColorHover: h, closeIconColorPressed: x, closeColorHover: C, closeColorPressed: z, modalColor: S, boxShadow1: y, popoverColor: k, actionColor: u } = o; return Object.assign(Object.assign({}, po), { lineHeight: e, color: i, colorModal: S, colorPopover: k, colorTarget: c, colorEmbedded: u, colorEmbeddedModal: u, colorEmbeddedPopover: u, textColor: f, titleTextColor: g, borderColor: a, actionColor: u, titleFontWeight: r, closeColorHover: C, closeColorPressed: z, closeBorderRadius: s, closeIconColor: v, closeIconColorHover: h, closeIconColorPressed: x, fontSizeSmall: b, fontSizeMedium: b, fontSizeLarge: b, fontSizeHuge: b, boxShadow: y, borderRadius: s }); }, ho = { name: "Card", common: no, self: mo }, xo = ho, Co = t([m("card", ` font-size: var(--n-font-size); line-height: var(--n-line-height); display: flex; flex-direction: column; width: 100%; box-sizing: border-box; position: relative; border-radius: var(--n-border-radius); background-color: var(--n-color); color: var(--n-text-color); word-break: break-word; transition: color .3s var(--n-bezier), background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier), border-color .3s var(--n-bezier); `, [U({ background: "var(--n-color-modal)" }), d("hoverable", [t("&:hover", "box-shadow: var(--n-box-shadow);")]), d("content-segmented", [t(">", [l("content", { paddingTop: "var(--n-padding-bottom)" })])]), d("content-soft-segmented", [t(">", [l("content", ` margin: 0 var(--n-padding-left); padding: var(--n-padding-bottom) 0; `)])]), d("footer-segmented", [t(">", [l("footer", { paddingTop: "var(--n-padding-bottom)" })])]), d("footer-soft-segmented", [t(">", [l("footer", ` padding: var(--n-padding-bottom) 0; margin: 0 var(--n-padding-left); `)])]), t(">", [m("card-header", ` box-sizing: border-box; display: flex; align-items: center; font-size: var(--n-title-font-size); padding: var(--n-padding-top) var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); `, [l("main", ` font-weight: var(--n-title-font-weight); transition: color .3s var(--n-bezier); flex: 1; min-width: 0; color: var(--n-title-text-color); `), l("extra", ` display: flex; align-items: center; font-size: var(--n-font-size); font-weight: 400; transition: color .3s var(--n-bezier); color: var(--n-text-color); `), l("close", ` margin: 0 0 0 8px; transition: background-color .3s var(--n-bezier), color .3s var(--n-bezier); `)]), l("action", ` box-sizing: border-box; transition: background-color .3s var(--n-bezier), border-color .3s var(--n-bezier); background-clip: padding-box; background-color: var(--n-action-color); `), l("content", "flex: 1; min-width: 0;"), l("content, footer", ` box-sizing: border-box; padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); font-size: var(--n-font-size); `, [t("&:first-child", { paddingTop: "var(--n-padding-bottom)" })]), l("action", ` background-color: var(--n-action-color); padding: var(--n-padding-bottom) var(--n-padding-left); border-bottom-left-radius: var(--n-border-radius); border-bottom-right-radius: var(--n-border-radius); `)]), m("card-cover", ` overflow: hidden; width: 100%; border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; `, [t("img", ` display: block; width: 100%; `)]), d("bordered", ` border: 1px solid var(--n-border-color); `, [t("&:target", "border-color: var(--n-color-target);")]), d("action-segmented", [t(">", [l("action", [t("&:not(:first-child)", { borderTop: "1px solid var(--n-border-color)" })])])]), d("content-segmented, content-soft-segmented", [t(">", [l("content", { transition: "border-color 0.3s var(--n-bezier)" }, [t("&:not(:first-child)", { borderTop: "1px solid var(--n-border-color)" })])])]), d("footer-segmented, footer-soft-segmented", [t(">", [l("footer", { transition: "border-color 0.3s var(--n-bezier)" }, [t("&:not(:first-child)", { borderTop: "1px solid var(--n-border-color)" })])])]), d("embedded", ` background-color: var(--n-color-embedded); `)]), oo(m("card", ` background: var(--n-color-modal); `, [d("embedded", ` background-color: var(--n-color-embedded-modal); `)])), eo(m("card", ` background: var(--n-color-popover); `, [d("embedded", ` background-color: var(--n-color-embedded-popover); `)]))]), P = { title: String, contentStyle: [Object, String], headerStyle: [Object, String], headerExtraStyle: [Object, String], footerStyle: [Object, String], embedded: Boolean, segmented: { type: [Boolean, Object], default: !1 }, size: { type: String, default: "medium" }, bordered: { type: Boolean, default: !0 }, closable: Boolean, hoverable: Boolean, role: String, onClose: [Function, Array], tag: { type: String, default: "div" } }, Ro = go(P), zo = Object.assign(Object.assign({}, L.props), P), Eo = B({ name: "Card", props: zo, setup(o) { const c = () => { const { onClose: r } = o; r && lo(r); }, { inlineThemeDisabled: s, mergedClsPrefixRef: e, mergedRtlRef: b } = ro(o), i = L("Card", "-card", Co, xo, o, e), f = to("Card", b, e), g = $(() => { const { size: r } = o, { self: { color: v, colorModal: h, colorTarget: x, textColor: C, titleTextColor: z, titleFontWeight: S, borderColor: y, actionColor: k, borderRadius: u, lineHeight: T, closeIconColor: R, closeIconColorHover: E, closeIconColorPressed: M, closeColorHover: O, closeColorPressed: _, closeBorderRadius: j, closeIconSize: I, closeSize: F, boxShadow: H, colorPopover: N, colorEmbedded: V, colorEmbeddedModal: W, colorEmbeddedPopover: D, [w("padding", r)]: K, [w("fontSize", r)]: q, [w("titleFontSize", r)]: A }, common: { cubicBezierEaseInOut: X } } = i.value, { top: Y, left: Z, bottom: G } = so(K); return { "--n-bezier": X, "--n-border-radius": u, "--n-color": v, "--n-color-modal": h, "--n-color-popover": N, "--n-color-embedded": V, "--n-color-embedded-modal": W, "--n-color-embedded-popover": D, "--n-color-target": x, "--n-text-color": C, "--n-line-height": T, "--n-action-color": k, "--n-title-text-color": z, "--n-title-font-weight": S, "--n-close-icon-color": R, "--n-close-icon-color-hover": E, "--n-close-icon-color-pressed": M, "--n-close-color-hover": O, "--n-close-color-pressed": _, "--n-border-color": y, "--n-box-shadow": H, // size "--n-padding-top": Y, "--n-padding-bottom": G, "--n-padding-left": Z, "--n-font-size": q, "--n-title-font-size": A, "--n-close-size": F, "--n-close-icon-size": I, "--n-close-border-radius": j }; }), a = s ? ao("card", $(() => o.size[0]), g, o) : void 0; return { rtlEnabled: f, mergedClsPrefix: e, mergedTheme: i, handleCloseClick: c, cssVars: s ? void 0 : g, themeClass: a == null ? void 0 : a.themeClass, onRender: a == null ? void 0 : a.onRender }; }, render() { const { segmented: o, bordered: c, hoverable: s, mergedClsPrefix: e, rtlEnabled: b, onRender: i, embedded: f, tag: g, $slots: a } = this; return i == null || i(), n( g, { class: [ `${e}-card`, this.themeClass, f && `${e}-card--embedded`, { [`${e}-card--rtl`]: b, [`${e}-card--content${typeof o != "boolean" && o.content === "soft" ? "-soft" : ""}-segmented`]: o === !0 || o !== !1 && o.content, [`${e}-card--footer${typeof o != "boolean" && o.footer === "soft" ? "-soft" : ""}-segmented`]: o === !0 || o !== !1 && o.footer, [`${e}-card--action-segmented`]: o === !0 || o !== !1 && o.action, [`${e}-card--bordered`]: c, [`${e}-card--hoverable`]: s } ], style: this.cssVars, role: this.role }, p(a.cover, (r) => r && n("div", { class: `${e}-card-cover`, role: "none" }, r)), p(a.header, (r) => r || this.title || this.closable ? n( "div", { class: `${e}-card-header`, style: this.headerStyle }, n("div", { class: `${e}-card-header__main`, role: "heading" }, r || this.title), p(a["header-extra"], (v) => v && n("div", { class: `${e}-card-header__extra`, style: this.headerExtraStyle }, v)), this.closable ? n(uo, { clsPrefix: e, class: `${e}-card-header__close`, onClick: this.handleCloseClick, absolute: !0 }) : null ) : null), p(a.default, (r) => r && n("div", { class: `${e}-card__content`, style: this.contentStyle, role: "none" }, r)), p(a.footer, (r) => r && [ n("div", { class: `${e}-card__footer`, style: this.footerStyle, role: "none" }, r) ]), p(a.action, (r) => r && n("div", { class: `${e}-card__action`, role: "none" }, r)) ); } }); export { Eo as N, uo as a, P as b, xo as c, Ro as d, go as k };