sa2kit 1.6.89 → 1.6.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{booking-473Db8Bo.d.mts → booking-BH7HM0D0.d.mts} +1 -0
- package/dist/{booking-473Db8Bo.d.ts → booking-BH7HM0D0.d.ts} +1 -0
- package/dist/{bookingAdminService-DqQ7hEGw.d.ts → bookingAdminService-nr1vOp6I.d.ts} +1 -1
- package/dist/{bookingAdminService-SBX4JA_U.d.mts → bookingAdminService-pvk2MY1r.d.mts} +1 -1
- package/dist/{client-Bkn6mRI7.d.ts → client-UDQ7uMFA.d.ts} +1 -1
- package/dist/{client-exYn2Qla.d.mts → client-jOToHJEx.d.mts} +1 -1
- package/dist/festivalCard/index.js +114 -0
- package/dist/festivalCard/index.js.map +1 -1
- package/dist/festivalCard/index.mjs +115 -1
- package/dist/festivalCard/index.mjs.map +1 -1
- package/dist/festivalCard/web/index.js +114 -0
- package/dist/festivalCard/web/index.js.map +1 -1
- package/dist/festivalCard/web/index.mjs +115 -1
- package/dist/festivalCard/web/index.mjs.map +1 -1
- package/dist/{index-z15F7afa.d.mts → index-Bs06cHTn.d.mts} +2 -2
- package/dist/{index-BJpxvH7X.d.ts → index-C-oNM7Gv.d.ts} +1 -1
- package/dist/{index-XTV6IU-M.d.ts → index-CUab5EBV.d.ts} +2 -2
- package/dist/{index-Cum2EknK.d.mts → index-CYDb3AKs.d.mts} +1 -1
- package/dist/{index-DyxLpkmm.d.mts → index-DBB4ad0S.d.mts} +2 -2
- package/dist/{index-CdTIsNsy.d.ts → index-DBHwbXrv.d.ts} +2 -2
- package/dist/index.js +114 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +114 -0
- package/dist/index.mjs.map +1 -1
- package/dist/showmasterpiece/core.d.mts +3 -3
- package/dist/showmasterpiece/core.d.ts +3 -3
- package/dist/showmasterpiece/db.d.mts +2 -0
- package/dist/showmasterpiece/db.d.ts +2 -0
- package/dist/showmasterpiece/db.js +4 -2
- package/dist/showmasterpiece/db.js.map +1 -1
- package/dist/showmasterpiece/db.mjs +4 -2
- package/dist/showmasterpiece/db.mjs.map +1 -1
- package/dist/showmasterpiece/index.js +18 -2
- package/dist/showmasterpiece/index.js.map +1 -1
- package/dist/showmasterpiece/index.mjs +18 -2
- package/dist/showmasterpiece/index.mjs.map +1 -1
- package/dist/showmasterpiece/logic/index.d.mts +2 -2
- package/dist/showmasterpiece/logic/index.d.ts +2 -2
- package/dist/showmasterpiece/server/index.js +4 -2
- package/dist/showmasterpiece/server/index.js.map +1 -1
- package/dist/showmasterpiece/server/index.mjs +4 -2
- package/dist/showmasterpiece/server/index.mjs.map +1 -1
- package/dist/showmasterpiece/service/api/index.d.mts +1 -1
- package/dist/showmasterpiece/service/api/index.d.ts +1 -1
- package/dist/showmasterpiece/service/client-business/index.d.mts +3 -3
- package/dist/showmasterpiece/service/client-business/index.d.ts +3 -3
- package/dist/showmasterpiece/service/index.d.mts +6 -6
- package/dist/showmasterpiece/service/index.d.ts +6 -6
- package/dist/showmasterpiece/service/miniapp/index.d.mts +2 -2
- package/dist/showmasterpiece/service/miniapp/index.d.ts +2 -2
- package/dist/showmasterpiece/service/web/index.d.mts +4 -4
- package/dist/showmasterpiece/service/web/index.d.ts +4 -4
- package/dist/showmasterpiece/ui/miniapp/index.d.mts +2 -2
- package/dist/showmasterpiece/ui/miniapp/index.d.ts +2 -2
- package/dist/showmasterpiece/ui/miniapp/index.js +4 -3
- package/dist/showmasterpiece/ui/miniapp/index.js.map +1 -1
- package/dist/showmasterpiece/ui/miniapp/index.mjs +4 -3
- package/dist/showmasterpiece/ui/miniapp/index.mjs.map +1 -1
- package/dist/showmasterpiece/ui/web/index.js +18 -2
- package/dist/showmasterpiece/ui/web/index.js.map +1 -1
- package/dist/showmasterpiece/ui/web/index.mjs +18 -2
- package/dist/showmasterpiece/ui/web/index.mjs.map +1 -1
- package/dist/showmasterpiece/web/index.js +18 -2
- package/dist/showmasterpiece/web/index.js.map +1 -1
- package/dist/showmasterpiece/web/index.mjs +18 -2
- package/dist/showmasterpiece/web/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as CollectionSummary, b as CreateBookingRequest, c as Booking, d as BatchBookingRequest, e as BatchBookingResponse, f as BookingListParams, g as BookingListResponse } from './booking-
|
|
1
|
+
import { a as CollectionSummary, b as CreateBookingRequest, c as Booking, d as BatchBookingRequest, e as BatchBookingResponse, f as BookingListParams, g as BookingListResponse } from './booking-BH7HM0D0.js';
|
|
2
2
|
import { P as PopupConfig } from './popup-ClCAZtzk.js';
|
|
3
3
|
import { CollectionOverview } from './showmasterpiece/service/api/index.js';
|
|
4
|
-
import { i as index$1 } from './index-
|
|
4
|
+
import { i as index$1 } from './index-CUab5EBV.js';
|
|
5
5
|
|
|
6
6
|
declare const DEFAULT_WEB_BASE_URL = "";
|
|
7
7
|
declare const getCollectionsOverview: (baseUrl?: string) => Promise<CollectionOverview[]>;
|
package/dist/index.js
CHANGED
|
@@ -7514,9 +7514,24 @@ var createImageElement = (pageIndex) => ({
|
|
|
7514
7514
|
});
|
|
7515
7515
|
var FestivalCardConfigEditor = ({ value, onChange }) => {
|
|
7516
7516
|
const [activePageIndex, setActivePageIndex] = React69.useState(0);
|
|
7517
|
+
const [activeElementId, setActiveElementId] = React69.useState(null);
|
|
7518
|
+
const [draggingElementId, setDraggingElementId] = React69.useState(null);
|
|
7519
|
+
const previewRef = React69.useRef(null);
|
|
7520
|
+
const dragStateRef = React69.useRef(null);
|
|
7517
7521
|
const page = value.pages[activePageIndex];
|
|
7518
7522
|
const canEditPage = Boolean(page);
|
|
7519
7523
|
const pageOptions = React69.useMemo(() => value.pages.map((_, index) => index), [value.pages]);
|
|
7524
|
+
const backgroundElement = React69.useMemo(
|
|
7525
|
+
() => page?.elements.find(
|
|
7526
|
+
(element) => element.type === "image" && Boolean(element.isBackground)
|
|
7527
|
+
),
|
|
7528
|
+
[page]
|
|
7529
|
+
);
|
|
7530
|
+
const foregroundElements = React69.useMemo(
|
|
7531
|
+
() => (page?.elements ?? []).filter((element) => !(element.type === "image" && element.isBackground)),
|
|
7532
|
+
[page]
|
|
7533
|
+
);
|
|
7534
|
+
const clampPercent = (valueToClamp) => Math.max(0, Math.min(100, Number.isFinite(valueToClamp) ? valueToClamp : 0));
|
|
7520
7535
|
const handlePageCountChange = (nextRaw) => {
|
|
7521
7536
|
const next = Number.isFinite(nextRaw) ? Math.max(1, Math.min(12, Math.floor(nextRaw))) : value.pages.length;
|
|
7522
7537
|
const resized = resizeFestivalCardPages(value, next);
|
|
@@ -7553,6 +7568,38 @@ var FestivalCardConfigEditor = ({ value, onChange }) => {
|
|
|
7553
7568
|
pages: value.pages.map((p, index) => index === activePageIndex ? { ...p, ...patch } : p)
|
|
7554
7569
|
});
|
|
7555
7570
|
};
|
|
7571
|
+
const moveElementWithPointer = (elementId, clientX, clientY, rect) => {
|
|
7572
|
+
const bounds = rect || previewRef.current?.getBoundingClientRect();
|
|
7573
|
+
if (!bounds || bounds.width <= 0 || bounds.height <= 0) return;
|
|
7574
|
+
const x = clampPercent((clientX - bounds.left) / bounds.width * 100);
|
|
7575
|
+
const y = clampPercent((clientY - bounds.top) / bounds.height * 100);
|
|
7576
|
+
updateElement(elementId, { x, y });
|
|
7577
|
+
};
|
|
7578
|
+
const handleElementPointerDown = (event, elementId) => {
|
|
7579
|
+
if (!previewRef.current) return;
|
|
7580
|
+
event.preventDefault();
|
|
7581
|
+
const rect = previewRef.current.getBoundingClientRect();
|
|
7582
|
+
dragStateRef.current = {
|
|
7583
|
+
pointerId: event.pointerId,
|
|
7584
|
+
elementId,
|
|
7585
|
+
rect
|
|
7586
|
+
};
|
|
7587
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
7588
|
+
setActiveElementId(elementId);
|
|
7589
|
+
setDraggingElementId(elementId);
|
|
7590
|
+
moveElementWithPointer(elementId, event.clientX, event.clientY, rect);
|
|
7591
|
+
};
|
|
7592
|
+
const handlePreviewPointerMove = (event) => {
|
|
7593
|
+
const dragState = dragStateRef.current;
|
|
7594
|
+
if (!dragState || dragState.pointerId !== event.pointerId) return;
|
|
7595
|
+
moveElementWithPointer(dragState.elementId, event.clientX, event.clientY, dragState.rect);
|
|
7596
|
+
};
|
|
7597
|
+
const endPointerDrag = (event) => {
|
|
7598
|
+
const dragState = dragStateRef.current;
|
|
7599
|
+
if (!dragState || dragState.pointerId !== event.pointerId) return;
|
|
7600
|
+
dragStateRef.current = null;
|
|
7601
|
+
setDraggingElementId(null);
|
|
7602
|
+
};
|
|
7556
7603
|
const numberFieldClassName = "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none focus:border-sky-400 focus:ring-2 focus:ring-sky-100";
|
|
7557
7604
|
return /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-white p-4 text-slate-900 shadow-sm" }, /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "grid gap-3" }, /* @__PURE__ */ React69__namespace.default.createElement("label", { className: "grid gap-1.5" }, /* @__PURE__ */ React69__namespace.default.createElement("span", { className: "text-sm font-medium text-slate-700" }, "\u9875\u9762\u6570\u91CF"), /* @__PURE__ */ React69__namespace.default.createElement(
|
|
7558
7605
|
"input",
|
|
@@ -7646,6 +7693,73 @@ var FestivalCardConfigEditor = ({ value, onChange }) => {
|
|
|
7646
7693
|
className: "rounded-lg bg-sky-600 px-3 py-2 text-sm font-medium text-white"
|
|
7647
7694
|
},
|
|
7648
7695
|
"+ \u56FE\u7247"
|
|
7696
|
+
)), /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "mb-3" }, /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "mb-2 flex items-center justify-between" }, /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "text-xs font-semibold tracking-wide text-slate-500" }, "\u62D6\u62FD\u5B9A\u4F4D\uFF08\u76F4\u63A5\u62D6\u52A8\u5143\u7D20\u8C03\u6574 X / Y\uFF09"), /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "text-xs text-slate-500" }, draggingElementId ? "\u62D6\u62FD\u4E2D..." : "\u53EF\u62D6\u62FD")), /* @__PURE__ */ React69__namespace.default.createElement(
|
|
7697
|
+
"div",
|
|
7698
|
+
{
|
|
7699
|
+
ref: previewRef,
|
|
7700
|
+
onPointerMove: handlePreviewPointerMove,
|
|
7701
|
+
onPointerUp: endPointerDrag,
|
|
7702
|
+
onPointerCancel: endPointerDrag,
|
|
7703
|
+
className: "relative aspect-[3/4] w-full touch-none overflow-hidden rounded-xl border border-slate-300 bg-slate-900",
|
|
7704
|
+
style: {
|
|
7705
|
+
backgroundColor: page?.background?.color || "#0f172a",
|
|
7706
|
+
backgroundImage: backgroundElement ? `url(${backgroundElement.src})` : page?.background?.image ? `url(${page.background.image})` : void 0,
|
|
7707
|
+
backgroundSize: "cover",
|
|
7708
|
+
backgroundPosition: "center"
|
|
7709
|
+
}
|
|
7710
|
+
},
|
|
7711
|
+
/* @__PURE__ */ React69__namespace.default.createElement("div", { className: "absolute inset-0 bg-slate-950/20" }),
|
|
7712
|
+
foregroundElements.map((element) => {
|
|
7713
|
+
const isActive = activeElementId === element.id;
|
|
7714
|
+
const isDragging = draggingElementId === element.id;
|
|
7715
|
+
return /* @__PURE__ */ React69__namespace.default.createElement(
|
|
7716
|
+
"div",
|
|
7717
|
+
{
|
|
7718
|
+
key: element.id,
|
|
7719
|
+
role: "button",
|
|
7720
|
+
tabIndex: 0,
|
|
7721
|
+
onPointerDown: (event) => handleElementPointerDown(event, element.id),
|
|
7722
|
+
onClick: () => setActiveElementId(element.id),
|
|
7723
|
+
className: `absolute select-none rounded-md ${isDragging ? "cursor-grabbing" : "cursor-grab"} ${isActive ? "ring-2 ring-sky-300" : "ring-1 ring-white/40"}`,
|
|
7724
|
+
style: {
|
|
7725
|
+
left: `${element.x}%`,
|
|
7726
|
+
top: `${element.y}%`,
|
|
7727
|
+
width: `${element.width ?? 70}%`,
|
|
7728
|
+
height: element.height ? `${element.height}%` : void 0,
|
|
7729
|
+
transform: "translate(-50%, -50%)",
|
|
7730
|
+
zIndex: isActive ? 4 : 2
|
|
7731
|
+
}
|
|
7732
|
+
},
|
|
7733
|
+
element.type === "text" ? /* @__PURE__ */ React69__namespace.default.createElement(
|
|
7734
|
+
"div",
|
|
7735
|
+
{
|
|
7736
|
+
className: "w-full rounded-md bg-black/20 px-2 py-1",
|
|
7737
|
+
style: {
|
|
7738
|
+
color: element.color || "#f8fafc",
|
|
7739
|
+
fontSize: element.fontSize || 18,
|
|
7740
|
+
fontWeight: element.fontWeight || 500,
|
|
7741
|
+
fontFamily: element.fontFamily || "inherit",
|
|
7742
|
+
textAlign: element.align || "left",
|
|
7743
|
+
lineHeight: 1.35,
|
|
7744
|
+
whiteSpace: "pre-wrap"
|
|
7745
|
+
}
|
|
7746
|
+
},
|
|
7747
|
+
element.content || "\u6587\u672C"
|
|
7748
|
+
) : /* @__PURE__ */ React69__namespace.default.createElement(
|
|
7749
|
+
"img",
|
|
7750
|
+
{
|
|
7751
|
+
src: element.src,
|
|
7752
|
+
alt: element.alt || "festival-card-image",
|
|
7753
|
+
draggable: false,
|
|
7754
|
+
className: "h-full w-full pointer-events-none",
|
|
7755
|
+
style: {
|
|
7756
|
+
objectFit: element.fit || "cover",
|
|
7757
|
+
borderRadius: element.borderRadius || 0
|
|
7758
|
+
}
|
|
7759
|
+
}
|
|
7760
|
+
)
|
|
7761
|
+
);
|
|
7762
|
+
})
|
|
7649
7763
|
)), /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "grid max-h-[340px] gap-2.5 overflow-auto pr-1" }, (page?.elements ?? []).map((element) => /* @__PURE__ */ React69__namespace.default.createElement("div", { key: element.id, className: "rounded-xl border border-slate-200 bg-slate-50 p-3" }, /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "mb-2 flex items-center justify-between" }, /* @__PURE__ */ React69__namespace.default.createElement("div", { className: "text-xs font-semibold tracking-wide text-slate-500" }, element.type.toUpperCase()), /* @__PURE__ */ React69__namespace.default.createElement(
|
|
7650
7764
|
"button",
|
|
7651
7765
|
{
|