@pisell/materials 6.11.36 → 6.11.38

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.
Files changed (200) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +26 -56
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +26 -56
  11. package/es/components/PisellLayouts/index.d.ts +1 -1
  12. package/es/components/colorPicker/index.d.ts +0 -1
  13. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
  14. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +2 -2
  15. package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -1
  16. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  17. package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -1
  18. package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  19. package/es/components/dataSourceComponents/fields/index.d.ts +6 -6
  20. package/es/components/filter/components/items/index.d.ts +0 -1
  21. package/es/components/filter/components/items/text/Editor/index.d.ts +0 -1
  22. package/es/components/filter/components/items/text/Preview/index.d.ts +0 -1
  23. package/es/components/filter/components/items/text/index.d.ts +0 -1
  24. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +2 -1
  25. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +47 -3
  26. package/es/components/pisellFloorMapLayout/types.d.ts +7 -7
  27. package/es/components/pisellFloorMapLayout/types.js +2 -2
  28. package/es/components/pisellRecordBoard/index.d.ts +1 -1
  29. package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.d.ts +5 -0
  30. package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.js +1039 -0
  31. package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.less +323 -0
  32. package/es/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.d.ts +5 -1
  33. package/es/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.js +10 -10
  34. package/es/components/pisellRecordBoard/shellFrame/Calendar/bookingCalendarViewShared.d.ts +23 -0
  35. package/es/components/pisellRecordBoard/shellFrame/Calendar/bookingCalendarViewShared.js +287 -0
  36. package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarI18n.d.ts +4 -0
  37. package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarI18n.js +28 -0
  38. package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +1 -1
  39. package/es/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.d.ts +36 -0
  40. package/es/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.js +38 -0
  41. package/es/components/pisellRecordBoard/shellFrame/Calendar/index.d.ts +3 -0
  42. package/es/components/pisellRecordBoard/shellFrame/Calendar/index.js +3 -0
  43. package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/MoveConfirmModal.d.ts +17 -0
  44. package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/MoveConfirmModal.js +197 -0
  45. package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowListModal.d.ts +17 -0
  46. package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowListModal.js +65 -0
  47. package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowPopover.d.ts +9 -0
  48. package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowPopover.js +52 -0
  49. package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +10 -0
  50. package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.js +58 -0
  51. package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarDateUtils.d.ts +232 -0
  52. package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarDateUtils.js +735 -0
  53. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDaySelectionBar.d.ts +13 -0
  54. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDaySelectionBar.js +37 -0
  55. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDayView.d.ts +56 -0
  56. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDayView.js +682 -0
  57. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarMonthView.d.ts +18 -0
  58. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarMonthView.js +155 -0
  59. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarWeekView.d.ts +27 -0
  60. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarWeekView.js +259 -0
  61. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/bookingCalendarDayViewContext.d.ts +12 -0
  62. package/es/components/pisellRecordBoard/shellFrame/Calendar/view/bookingCalendarDayViewContext.js +19 -0
  63. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.d.ts +2 -1
  64. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +44 -14
  65. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +4 -2
  66. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +117 -125
  67. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanel.d.ts +3 -5
  68. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanel.js +71 -352
  69. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelColorTab.d.ts +17 -0
  70. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelColorTab.js +143 -0
  71. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.d.ts +28 -0
  72. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.js +128 -0
  73. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewport.less +8 -0
  74. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.d.ts +18 -0
  75. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.js +115 -0
  76. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +6 -4
  77. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +63 -120
  78. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/resourceWallConstants.d.ts +2 -0
  79. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/resourceWallConstants.js +2 -0
  80. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.d.ts +42 -0
  81. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js +114 -0
  82. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +26 -0
  83. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +54 -1
  84. package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +67 -12
  85. package/es/components/pisellRecordBoard/shellFrame/index.js +34 -7
  86. package/es/components/pisellRecordBoard/types.d.ts +97 -4
  87. package/es/components/pisellRecordBoard/types.js +18 -2
  88. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +34 -2
  89. package/es/components/pisellShellFrame/PisellShellFrame.less +5 -2
  90. package/es/components/table/Table/SelectField/index.d.ts +0 -1
  91. package/es/components/table/Table/tableConfig/summary/index.d.ts +0 -1
  92. package/es/hooks/useResponsive.d.ts +1 -1
  93. package/es/index.d.ts +1 -1
  94. package/es/locales/en-US.d.ts +74 -0
  95. package/es/locales/en-US.js +76 -1
  96. package/es/locales/ja.d.ts +74 -0
  97. package/es/locales/ja.js +75 -0
  98. package/es/locales/pt.d.ts +74 -0
  99. package/es/locales/pt.js +75 -0
  100. package/es/locales/zh-CN.d.ts +74 -0
  101. package/es/locales/zh-CN.js +76 -1
  102. package/es/locales/zh-TW.d.ts +74 -0
  103. package/es/locales/zh-TW.js +76 -1
  104. package/es/pisell-materials.tw.css +1 -1
  105. package/lib/components/PisellLayouts/index.d.ts +1 -1
  106. package/lib/components/colorPicker/index.d.ts +0 -1
  107. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
  108. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +2 -2
  109. package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -1
  110. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  111. package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -1
  112. package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  113. package/lib/components/dataSourceComponents/fields/index.d.ts +6 -6
  114. package/lib/components/filter/components/items/index.d.ts +0 -1
  115. package/lib/components/filter/components/items/text/Editor/index.d.ts +0 -1
  116. package/lib/components/filter/components/items/text/Preview/index.d.ts +0 -1
  117. package/lib/components/filter/components/items/text/index.d.ts +0 -1
  118. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +2 -1
  119. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +1 -1
  120. package/lib/components/pisellFloorMapLayout/types.d.ts +7 -7
  121. package/lib/components/pisellRecordBoard/index.d.ts +1 -1
  122. package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.d.ts +5 -0
  123. package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.js +892 -0
  124. package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.less +323 -0
  125. package/lib/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.d.ts +5 -1
  126. package/lib/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.js +7 -6
  127. package/lib/components/pisellRecordBoard/shellFrame/Calendar/bookingCalendarViewShared.d.ts +23 -0
  128. package/lib/components/pisellRecordBoard/shellFrame/Calendar/bookingCalendarViewShared.js +268 -0
  129. package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarI18n.d.ts +4 -0
  130. package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarI18n.js +53 -0
  131. package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +1 -1
  132. package/lib/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.d.ts +36 -0
  133. package/lib/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.js +98 -0
  134. package/lib/components/pisellRecordBoard/shellFrame/Calendar/index.d.ts +3 -0
  135. package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/MoveConfirmModal.d.ts +17 -0
  136. package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/MoveConfirmModal.js +306 -0
  137. package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowListModal.d.ts +17 -0
  138. package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowListModal.js +111 -0
  139. package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowPopover.d.ts +9 -0
  140. package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowPopover.js +96 -0
  141. package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +10 -0
  142. package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.js +92 -0
  143. package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarDateUtils.d.ts +232 -0
  144. package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarDateUtils.js +666 -0
  145. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDaySelectionBar.d.ts +13 -0
  146. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDaySelectionBar.js +90 -0
  147. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDayView.d.ts +56 -0
  148. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDayView.js +812 -0
  149. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarMonthView.d.ts +18 -0
  150. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarMonthView.js +219 -0
  151. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarWeekView.d.ts +27 -0
  152. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarWeekView.js +352 -0
  153. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/bookingCalendarDayViewContext.d.ts +12 -0
  154. package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/bookingCalendarDayViewContext.js +57 -0
  155. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.d.ts +2 -1
  156. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +44 -9
  157. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +4 -2
  158. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +60 -142
  159. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanel.d.ts +3 -5
  160. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanel.js +40 -269
  161. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelColorTab.d.ts +17 -0
  162. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelColorTab.js +163 -0
  163. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.d.ts +28 -0
  164. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.js +136 -0
  165. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewport.less +8 -0
  166. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.d.ts +18 -0
  167. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.js +175 -0
  168. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +6 -4
  169. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +61 -88
  170. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/resourceWallConstants.d.ts +2 -0
  171. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/resourceWallConstants.js +29 -0
  172. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.d.ts +42 -0
  173. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js +139 -0
  174. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +26 -0
  175. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +31 -3
  176. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +50 -5
  177. package/lib/components/pisellRecordBoard/shellFrame/index.js +29 -13
  178. package/lib/components/pisellRecordBoard/types.d.ts +97 -4
  179. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +34 -2
  180. package/lib/components/pisellShellFrame/PisellShellFrame.less +5 -2
  181. package/lib/components/table/Table/SelectField/index.d.ts +0 -1
  182. package/lib/components/table/Table/tableConfig/summary/index.d.ts +0 -1
  183. package/lib/hooks/useResponsive.d.ts +1 -1
  184. package/lib/index.d.ts +1 -1
  185. package/lib/locales/en-US.d.ts +74 -0
  186. package/lib/locales/en-US.js +76 -1
  187. package/lib/locales/ja.d.ts +74 -0
  188. package/lib/locales/ja.js +75 -0
  189. package/lib/locales/pt.d.ts +74 -0
  190. package/lib/locales/pt.js +75 -0
  191. package/lib/locales/zh-CN.d.ts +74 -0
  192. package/lib/locales/zh-CN.js +76 -1
  193. package/lib/locales/zh-TW.d.ts +74 -0
  194. package/lib/locales/zh-TW.js +76 -1
  195. package/lib/pisell-materials.tw.css +1 -1
  196. package/package.json +3 -4
  197. package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.d.ts +0 -3
  198. package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +0 -6233
  199. package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.d.ts +0 -3
  200. package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +0 -7079
@@ -0,0 +1,136 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.tsx
30
+ var ResourceWallControlPanelLayoutTab_exports = {};
31
+ __export(ResourceWallControlPanelLayoutTab_exports, {
32
+ ResourceWallControlPanelLayoutTab: () => ResourceWallControlPanelLayoutTab
33
+ });
34
+ module.exports = __toCommonJS(ResourceWallControlPanelLayoutTab_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_locales = require("../../../../locales");
37
+ var import_pisellNumber = require("../../../pisellNumber");
38
+ var import_pisellSingleSelect = require("../../../pisellSingleSelect");
39
+ var ResourceWallControlPanelLayoutTab = ({
40
+ adminSectionBg,
41
+ adminInputBg,
42
+ headerText,
43
+ mutedText,
44
+ layoutPresets,
45
+ draftLayoutKey,
46
+ setDraftLayoutKey,
47
+ draftCustomCols,
48
+ setDraftCustomCols,
49
+ draftCustomRows,
50
+ setDraftCustomRows,
51
+ draftPageSec,
52
+ setDraftPageSec,
53
+ draftHeroRatio,
54
+ setDraftHeroRatio,
55
+ carouselCur,
56
+ carouselTot,
57
+ isDark
58
+ }) => {
59
+ return /* @__PURE__ */ import_react.default.createElement("section", { className: `rounded-2xl border p-4 space-y-4 ${adminSectionBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-sm font-semibold ${headerText}` }, (0, import_locales.getText)("pisell-resource-wall-tab-layout")), /* @__PURE__ */ import_react.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-3" }, /* @__PURE__ */ import_react.default.createElement("label", { className: `rounded-2xl border p-3 block ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-display-mode")), /* @__PURE__ */ import_react.default.createElement("div", { className: `w-full rounded-xl border px-3 py-2 ${adminInputBg}` }, (0, import_locales.getText)("pisell-resource-wall-carousel-paging-mode"))), /* @__PURE__ */ import_react.default.createElement("label", { className: `rounded-2xl border p-3 block ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-carousel-dwell-sec-label")), /* @__PURE__ */ import_react.default.createElement(
60
+ import_pisellNumber.PisellNumber,
61
+ {
62
+ className: "w-full",
63
+ value: draftPageSec,
64
+ min: 3,
65
+ max: 60,
66
+ step: 1,
67
+ precision: 0,
68
+ onChange: (v) => setDraftPageSec(
69
+ v == null ? 3 : Math.max(3, Math.min(60, Math.round(v)))
70
+ )
71
+ }
72
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: `rounded-2xl border p-3 ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-summary-pagination")), /* @__PURE__ */ import_react.default.createElement("div", { className: "text-sm font-semibold" }, (0, import_locales.getText)("pisell-resource-wall-carousel-countdown-line").replace("{cur}", String(carouselCur)).replace("{tot}", String(carouselTot)).replace("{sec}", String(Math.max(3, draftPageSec)))))), /* @__PURE__ */ import_react.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3" }, /* @__PURE__ */ import_react.default.createElement("label", { className: `rounded-2xl border p-3 block ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-layout-field-label")), /* @__PURE__ */ import_react.default.createElement(
73
+ import_pisellSingleSelect.PisellSingleSelect,
74
+ {
75
+ className: "w-full",
76
+ value: draftLayoutKey,
77
+ options: layoutPresets.map((item) => ({
78
+ value: item.key,
79
+ label: item.label
80
+ })),
81
+ placeholder: (0, import_locales.getText)("pisell-resource-wall-layout-placeholder"),
82
+ allowClear: false,
83
+ onChange: (v) => {
84
+ if (v != null) setDraftLayoutKey(String(v));
85
+ }
86
+ }
87
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "grid grid-cols-2 gap-3" }, /* @__PURE__ */ import_react.default.createElement("label", { className: `rounded-2xl border p-3 block ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-panel-custom-cols")), /* @__PURE__ */ import_react.default.createElement(
88
+ import_pisellNumber.PisellNumber,
89
+ {
90
+ className: "w-full",
91
+ value: draftCustomCols,
92
+ min: 1,
93
+ max: 6,
94
+ step: 1,
95
+ precision: 0,
96
+ onChange: (v) => setDraftCustomCols(
97
+ v == null ? 1 : Math.max(1, Math.min(6, Math.round(v)))
98
+ )
99
+ }
100
+ )), /* @__PURE__ */ import_react.default.createElement("label", { className: `rounded-2xl border p-3 block ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-panel-custom-rows")), /* @__PURE__ */ import_react.default.createElement(
101
+ import_pisellNumber.PisellNumber,
102
+ {
103
+ className: "w-full",
104
+ value: draftCustomRows,
105
+ min: 1,
106
+ max: 6,
107
+ step: 1,
108
+ precision: 0,
109
+ onChange: (v) => setDraftCustomRows(
110
+ v == null ? 1 : Math.max(1, Math.min(6, Math.round(v)))
111
+ )
112
+ }
113
+ )))), /* @__PURE__ */ import_react.default.createElement("label", { className: `rounded-2xl border p-3 block ${adminInputBg}` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `text-xs mb-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-hero-width-ratio")), /* @__PURE__ */ import_react.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react.default.createElement(
114
+ "input",
115
+ {
116
+ type: "range",
117
+ min: 40,
118
+ max: 80,
119
+ step: 1,
120
+ value: Math.round(draftHeroRatio * 100),
121
+ onChange: (e) => setDraftHeroRatio(Number(e.target.value) / 100),
122
+ className: "flex-1"
123
+ }
124
+ ), /* @__PURE__ */ import_react.default.createElement(
125
+ "div",
126
+ {
127
+ className: `${isDark ? "text-slate-200" : "text-slate-700"} text-sm font-semibold w-14 text-right`
128
+ },
129
+ Math.round(draftHeroRatio * 100),
130
+ "%"
131
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: `text-[11px] mt-2 ${mutedText}` }, (0, import_locales.getText)("pisell-resource-wall-hero-width-hint"))));
132
+ };
133
+ // Annotate the CommonJS export names for ESM import in node:
134
+ 0 && (module.exports = {
135
+ ResourceWallControlPanelLayoutTab
136
+ });
@@ -35,3 +35,11 @@ body.pisell-resource-wall-fixed-viewport .pisell-shell-frame-body {
35
35
  max-height: 100%;
36
36
  overflow: hidden;
37
37
  }
38
+
39
+ /* 与视口根内联色一致,便于主题扩展时集中覆写(当前主色仍由 JS 注入) */
40
+ .pisell-resource-wall-shell {
41
+ --pisell-rw-page-bg-light: #f5f7fb;
42
+ --pisell-rw-page-bg-dark: #0f172a;
43
+ --pisell-rw-header-bg-light: #ffffff;
44
+ --pisell-rw-header-bg-dark: #1e293b;
45
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface ResourceWallViewportToolbarProps {
3
+ now: Date;
4
+ appearanceMode: 'light' | 'dark';
5
+ onAppearanceModeChange: (m: 'light' | 'dark') => void;
6
+ pseudoFullscreen: boolean;
7
+ onTogglePseudoFullscreen: () => void;
8
+ onOpenControlPanel: () => void;
9
+ headerBorder: string;
10
+ headerBg: string;
11
+ clockColor: string;
12
+ mutedText: string;
13
+ toolbarBtnBorder: string;
14
+ toolbarBtnBg: string;
15
+ toolbarBtnBgActive: string;
16
+ }
17
+ /** 资源墙顶栏:时钟、浅深切换、伪全屏、控制台入口 */
18
+ export declare const ResourceWallViewportToolbar: React.FC<ResourceWallViewportToolbarProps>;
@@ -0,0 +1,175 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.tsx
30
+ var ResourceWallViewportToolbar_exports = {};
31
+ __export(ResourceWallViewportToolbar_exports, {
32
+ ResourceWallViewportToolbar: () => ResourceWallViewportToolbar
33
+ });
34
+ module.exports = __toCommonJS(ResourceWallViewportToolbar_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_locales = require("../../../../locales");
37
+ var ResourceWallViewportToolbar = ({
38
+ now,
39
+ appearanceMode,
40
+ onAppearanceModeChange,
41
+ pseudoFullscreen,
42
+ onTogglePseudoFullscreen,
43
+ onOpenControlPanel,
44
+ headerBorder,
45
+ headerBg,
46
+ clockColor,
47
+ mutedText,
48
+ toolbarBtnBorder,
49
+ toolbarBtnBg,
50
+ toolbarBtnBgActive
51
+ }) => /* @__PURE__ */ import_react.default.createElement(
52
+ "div",
53
+ {
54
+ style: {
55
+ flexShrink: 0,
56
+ borderBottom: headerBorder,
57
+ padding: "16px 24px",
58
+ display: "flex",
59
+ alignItems: "center",
60
+ justifyContent: "space-between",
61
+ gap: 16,
62
+ background: headerBg
63
+ }
64
+ },
65
+ /* @__PURE__ */ import_react.default.createElement(
66
+ "div",
67
+ {
68
+ style: {
69
+ fontSize: 22,
70
+ fontWeight: 600,
71
+ letterSpacing: "-0.02em",
72
+ color: clockColor
73
+ }
74
+ },
75
+ now.toLocaleTimeString([], {
76
+ hour: "2-digit",
77
+ minute: "2-digit",
78
+ hour12: false
79
+ }),
80
+ " ",
81
+ "·",
82
+ " ",
83
+ now.toLocaleDateString("en-GB", {
84
+ day: "2-digit",
85
+ month: "short",
86
+ year: "numeric"
87
+ })
88
+ ),
89
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: 8 } }, /* @__PURE__ */ import_react.default.createElement(
90
+ "div",
91
+ {
92
+ style: {
93
+ display: "inline-flex",
94
+ alignItems: "center",
95
+ borderRadius: 6,
96
+ border: toolbarBtnBorder,
97
+ overflow: "hidden",
98
+ background: toolbarBtnBg
99
+ }
100
+ },
101
+ /* @__PURE__ */ import_react.default.createElement(
102
+ "button",
103
+ {
104
+ type: "button",
105
+ onClick: () => onAppearanceModeChange("light"),
106
+ style: {
107
+ border: "none",
108
+ padding: "6px 12px",
109
+ fontSize: 13,
110
+ fontWeight: 500,
111
+ cursor: "pointer",
112
+ background: appearanceMode === "light" ? toolbarBtnBgActive : "transparent",
113
+ color: appearanceMode === "light" ? clockColor : mutedText
114
+ }
115
+ },
116
+ (0, import_locales.getText)("pisell-resource-wall-appearance-light")
117
+ ),
118
+ /* @__PURE__ */ import_react.default.createElement(
119
+ "button",
120
+ {
121
+ type: "button",
122
+ onClick: () => onAppearanceModeChange("dark"),
123
+ style: {
124
+ border: "none",
125
+ borderLeft: toolbarBtnBorder,
126
+ padding: "6px 12px",
127
+ fontSize: 13,
128
+ fontWeight: 500,
129
+ cursor: "pointer",
130
+ background: appearanceMode === "dark" ? toolbarBtnBgActive : "transparent",
131
+ color: appearanceMode === "dark" ? clockColor : mutedText
132
+ }
133
+ },
134
+ (0, import_locales.getText)("pisell-resource-wall-appearance-dark")
135
+ )
136
+ ), /* @__PURE__ */ import_react.default.createElement(
137
+ "button",
138
+ {
139
+ type: "button",
140
+ onClick: onTogglePseudoFullscreen,
141
+ style: {
142
+ borderRadius: 6,
143
+ padding: "6px 14px",
144
+ fontSize: 13,
145
+ fontWeight: 500,
146
+ cursor: "pointer",
147
+ border: toolbarBtnBorder,
148
+ background: pseudoFullscreen ? toolbarBtnBgActive : toolbarBtnBg,
149
+ color: clockColor
150
+ }
151
+ },
152
+ pseudoFullscreen ? (0, import_locales.getText)("pisell-resource-wall-fullscreen-exit") : (0, import_locales.getText)("pisell-resource-wall-fullscreen-enter")
153
+ ), /* @__PURE__ */ import_react.default.createElement(
154
+ "button",
155
+ {
156
+ type: "button",
157
+ onClick: onOpenControlPanel,
158
+ style: {
159
+ borderRadius: 6,
160
+ padding: "6px 14px",
161
+ fontSize: 13,
162
+ fontWeight: 500,
163
+ cursor: "pointer",
164
+ border: toolbarBtnBorder,
165
+ background: toolbarBtnBg,
166
+ color: clockColor
167
+ }
168
+ },
169
+ (0, import_locales.getText)("pisell-resource-wall-control-open")
170
+ ))
171
+ );
172
+ // Annotate the CommonJS export names for ESM import in node:
173
+ 0 && (module.exports = {
174
+ ResourceWallViewportToolbar
175
+ });
@@ -3,6 +3,8 @@ import type { RecordBoardResourceWallCardModel } from '../../types';
3
3
  import { type VenueWallStatusKey, type VenueWallStatusTone } from './venueWallUtils';
4
4
  export interface VenueWallCardProps {
5
5
  card: RecordBoardResourceWallCardModel;
6
+ /** 与 PisellRecordBoardResourceWallView 顶栏同源墙钟毫秒时间戳(唯一定时器驱动) */
7
+ wallNowMs: number;
6
8
  /** boardingSoon:用于进度条分母(分钟) */
7
9
  boardingSoonBeforeMin?: number;
8
10
  occupiedCardColor?: string;
@@ -13,7 +15,7 @@ export interface VenueWallCardProps {
13
15
  /** 非占用态主/辅文案色在暗色外壳下的对比度 */
14
16
  appearance?: 'light' | 'dark';
15
17
  }
16
- /**
17
- * 单块场地大屏卡(由 test.tsx CardItem 迁移,样式为内联 + 少量类名,不依赖 Tailwind)。
18
- */
19
- export declare const VenueWallCard: React.FC<VenueWallCardProps>;
18
+ declare function VenueWallCardInner({ card, wallNowMs, boardingSoonBeforeMin, occupiedCardColor, availableCardColor, heroMaxWidthRatio, statusToneMap: statusToneMapProp, appearance, }: VenueWallCardProps): JSX.Element;
19
+ /** 单块场地大屏卡:漂移与文案由 {@link buildVenueWallCardPresentation} 统一计算 */
20
+ export declare const VenueWallCard: React.MemoExoticComponent<typeof VenueWallCardInner>;
21
+ export {};
@@ -35,15 +35,9 @@ module.exports = __toCommonJS(VenueWallCard_exports);
35
35
  var import_react = __toESM(require("react"));
36
36
  var import_locales = require("../../../../locales");
37
37
  var import_NoteTicker = require("./NoteTicker");
38
+ var import_resourceWallConstants = require("./resourceWallConstants");
39
+ var import_venueWallCardPresentation = require("./venueWallCardPresentation");
38
40
  var import_venueWallUtils = require("./venueWallUtils");
39
- function useVenueWallClockNow() {
40
- const [now, setNow] = (0, import_react.useState)(() => Date.now());
41
- (0, import_react.useEffect)(() => {
42
- const id = window.setInterval(() => setNow(Date.now()), 1e3);
43
- return () => window.clearInterval(id);
44
- }, []);
45
- return now;
46
- }
47
41
  function useDriftMinutesFromEpoch(value, resourceId, now, allowNegative = false) {
48
42
  const [epoch, setEpoch] = (0, import_react.useState)(() => ({
49
43
  min: value ?? 0,
@@ -67,15 +61,16 @@ function useDriftUpMinutesFromEpoch(value, resourceId, now) {
67
61
  }
68
62
  var DEFAULT_OCCUPIED = "#6f4ae6";
69
63
  var DEFAULT_AVAILABLE = "#10b981";
70
- var VenueWallCard = ({
64
+ function VenueWallCardInner({
71
65
  card,
66
+ wallNowMs,
72
67
  boardingSoonBeforeMin = 10,
73
68
  occupiedCardColor = DEFAULT_OCCUPIED,
74
69
  availableCardColor = DEFAULT_AVAILABLE,
75
70
  heroMaxWidthRatio = 0.6,
76
71
  statusToneMap: statusToneMapProp,
77
72
  appearance = "light"
78
- }) => {
73
+ }) {
79
74
  var _a, _b;
80
75
  const toneMap = statusToneMapProp ?? (0, import_venueWallUtils.getVenueWallStatusToneMap)();
81
76
  const isDark = appearance === "dark";
@@ -95,98 +90,74 @@ var VenueWallCard = ({
95
90
  observer.observe(node);
96
91
  return () => observer.disconnect();
97
92
  }, []);
98
- const wallNow = useVenueWallClockNow();
99
93
  const liveRemainingMin = useDriftMinutesFromEpoch(
100
94
  card.remainingMin,
101
95
  card.resourceId,
102
- wallNow,
96
+ wallNowMs,
103
97
  true
104
98
  );
105
99
  const liveStartsInMin = useDriftMinutesFromEpoch(
106
100
  card.startsInMin,
107
101
  card.resourceId,
108
- wallNow,
102
+ wallNowMs,
109
103
  false
110
104
  );
111
105
  const liveLateMin = useDriftUpMinutesFromEpoch(
112
106
  card.lateMin,
113
107
  card.resourceId,
114
- wallNow
108
+ wallNowMs
115
109
  );
116
- const statusKey = (0, import_venueWallUtils.deriveVenueWallStatus)({
117
- ...card,
118
- remainingMin: liveRemainingMin
119
- });
120
- const tone = toneMap[statusKey] ?? toneMap.inUse;
121
- const isOccupied = ["inUse", "endingSoon", "expired"].includes(statusKey);
122
- let heroText = isOccupied ? (0, import_venueWallUtils.formatVenueWallCountdown)(liveRemainingMin) : (0, import_locales.getText)("pisell-resource-wall-card-hero-available");
123
- let heroColor = isOccupied ? statusKey === "inUse" ? "#ffffff" : tone.color : toneMap.available.color;
124
- let noteText = isOccupied ? tone.note : toneMap.available.note;
125
- let noteTextColor = isOccupied ? "#ffffff" : idleMain;
126
- let noteBg = isOccupied ? tone.noteBg : (0, import_venueWallUtils.alphaColor)(availableCardColor, 0.2);
127
- const subColor = isOccupied ? "rgba(255,255,255,0.80)" : idleSub;
128
- const mainColor = isOccupied ? "#ffffff" : idleMain;
129
- let currentLabel = (0, import_locales.getText)("pisell-resource-wall-card-label-current");
130
- let currentTime = card.currentTime ?? "";
131
- let currentName = isOccupied ? card.currentBooking ?? "" : "";
132
- let currentNameColor = mainColor;
133
- let nextNameColor = mainColor;
134
- let progress = isOccupied ? (0, import_venueWallUtils.clamp)(liveRemainingMin / 60 * 100, 0, 100) : 0;
135
- let progressColor = heroColor;
136
- let rightTag = tone.label;
137
- let rightTagColor = isOccupied ? "#ffffff" : tone.color;
138
- let rightTagBg = isOccupied ? statusKey === "inUse" ? "rgba(255,255,255,0.14)" : tone.color : (0, import_venueWallUtils.alphaColor)(tone.color, 0.12);
139
- let rightTagBorder = isOccupied ? "rgba(255,255,255,0.18)" : (0, import_venueWallUtils.alphaColor)(tone.color, 0.35);
110
+ const presentation = (0, import_react.useMemo)(
111
+ () => (0, import_venueWallCardPresentation.buildVenueWallCardPresentation)({
112
+ card,
113
+ toneMap,
114
+ liveRemainingMin,
115
+ liveStartsInMin,
116
+ liveLateMin,
117
+ boardingSoonBeforeMin,
118
+ idleMain,
119
+ idleSub,
120
+ occupiedCardColor,
121
+ availableCardColor
122
+ }),
123
+ [
124
+ card,
125
+ toneMap,
126
+ liveRemainingMin,
127
+ liveStartsInMin,
128
+ liveLateMin,
129
+ boardingSoonBeforeMin,
130
+ idleMain,
131
+ idleSub,
132
+ occupiedCardColor,
133
+ availableCardColor
134
+ ]
135
+ );
136
+ const {
137
+ statusKey,
138
+ isOccupied,
139
+ heroText,
140
+ heroColor,
141
+ noteText,
142
+ noteTextColor,
143
+ noteBg,
144
+ subColor,
145
+ mainColor,
146
+ currentLabel,
147
+ currentTime,
148
+ currentName,
149
+ currentNameColor,
150
+ nextNameColor,
151
+ progress,
152
+ progressColor,
153
+ rightTag,
154
+ rightTagColor,
155
+ rightTagBg,
156
+ rightTagBorder,
157
+ surfaceAccentColor
158
+ } = presentation;
140
159
  const nextItem = (_a = card.nextList) == null ? void 0 : _a[0];
141
160
  const nextCountLabel = nextItem ? `1/${((_b = card.nextList) == null ? void 0 : _b.length) ?? 0}` : "";
142
- if (statusKey === "boardingSoon") {
143
- heroText = (0, import_locales.getText)("pisell-resource-wall-card-starts-in").replace(
144
- "{n}",
145
- String(liveStartsInMin)
146
- );
147
- heroColor = toneMap.boardingSoon.color;
148
- noteText = toneMap.boardingSoon.note;
149
- noteTextColor = toneMap.boardingSoon.color;
150
- noteBg = (0, import_venueWallUtils.alphaColor)(toneMap.boardingSoon.color, 0.18);
151
- currentLabel = (0, import_locales.getText)("pisell-resource-wall-card-label-next");
152
- currentName = card.currentBooking ?? "";
153
- currentNameColor = toneMap.boardingSoon.color;
154
- nextNameColor = toneMap.boardingSoon.color;
155
- progress = (0, import_venueWallUtils.clamp)(
156
- (boardingSoonBeforeMin - liveStartsInMin) / boardingSoonBeforeMin * 100,
157
- 0,
158
- 100
159
- );
160
- progressColor = toneMap.boardingSoon.color;
161
- rightTag = toneMap.boardingSoon.label;
162
- rightTagColor = toneMap.boardingSoon.color;
163
- rightTagBg = (0, import_venueWallUtils.alphaColor)(toneMap.boardingSoon.color, 0.12);
164
- rightTagBorder = (0, import_venueWallUtils.alphaColor)(toneMap.boardingSoon.color, 0.35);
165
- }
166
- if (statusKey === "late") {
167
- heroText = (0, import_locales.getText)("pisell-resource-wall-card-late").replace(
168
- "{n}",
169
- String(liveLateMin)
170
- );
171
- heroColor = "rgb(239, 68, 68)";
172
- noteText = toneMap.late.note;
173
- noteTextColor = toneMap.available.color;
174
- noteBg = toneMap.available.noteBg;
175
- currentLabel = (0, import_locales.getText)("pisell-resource-wall-card-label-next");
176
- currentName = card.currentBooking ?? "";
177
- currentNameColor = toneMap.available.color;
178
- nextNameColor = toneMap.available.color;
179
- progress = 100;
180
- progressColor = toneMap.available.color;
181
- rightTag = toneMap.late.label;
182
- rightTagColor = toneMap.available.color;
183
- rightTagBg = (0, import_venueWallUtils.alphaColor)(toneMap.available.color, 0.12);
184
- rightTagBorder = (0, import_venueWallUtils.alphaColor)(toneMap.available.color, 0.35);
185
- }
186
- if (statusKey === "expired") {
187
- heroText = liveRemainingMin < 0 ? (0, import_venueWallUtils.formatVenueWallCountdown)(liveRemainingMin) : liveRemainingMin === 0 ? (0, import_locales.getText)("pisell-resource-wall-countdown-zero-overtime") : (0, import_venueWallUtils.formatVenueWallCountdown)(liveRemainingMin);
188
- }
189
- const surfaceAccentColor = statusKey === "late" ? availableCardColor : statusKey === "boardingSoon" ? toneMap.boardingSoon.color : availableCardColor;
190
161
  const cardBg = isOccupied ? `linear-gradient(180deg, ${(0, import_venueWallUtils.alphaColor)(occupiedCardColor, 0.96)} 0%, ${(0, import_venueWallUtils.alphaColor)(occupiedCardColor, 0.88)} 100%)` : (0, import_venueWallUtils.alphaColor)(
191
162
  surfaceAccentColor,
192
163
  statusKey === "boardingSoon" || statusKey === "late" ? 0.06 : 0.03
@@ -643,14 +614,16 @@ var VenueWallCard = ({
643
614
  text: noteText,
644
615
  color: noteTextColor,
645
616
  duration: 24,
646
- shouldMarquee: noteText.length > 32
617
+ shouldMarquee: noteText.length > import_resourceWallConstants.RESOURCE_WALL_NOTE_MARQUEE_MIN_CHARS
647
618
  }
648
619
  )
649
620
  )
650
621
  )
651
622
  )
652
623
  );
653
- };
624
+ }
625
+ var VenueWallCard = import_react.default.memo(VenueWallCardInner);
626
+ VenueWallCard.displayName = "VenueWallCard";
654
627
  // Annotate the CommonJS export names for ESM import in node:
655
628
  0 && (module.exports = {
656
629
  VenueWallCard
@@ -0,0 +1,2 @@
1
+ /** 说明文案超过该长度时用跑马灯(与 NoteTicker / VenueWallCard 共用) */
2
+ export declare const RESOURCE_WALL_NOTE_MARQUEE_MIN_CHARS = 32;
@@ -0,0 +1,29 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/components/pisellRecordBoard/shellFrame/ResourceWall/resourceWallConstants.ts
20
+ var resourceWallConstants_exports = {};
21
+ __export(resourceWallConstants_exports, {
22
+ RESOURCE_WALL_NOTE_MARQUEE_MIN_CHARS: () => RESOURCE_WALL_NOTE_MARQUEE_MIN_CHARS
23
+ });
24
+ module.exports = __toCommonJS(resourceWallConstants_exports);
25
+ var RESOURCE_WALL_NOTE_MARQUEE_MIN_CHARS = 32;
26
+ // Annotate the CommonJS export names for ESM import in node:
27
+ 0 && (module.exports = {
28
+ RESOURCE_WALL_NOTE_MARQUEE_MIN_CHARS
29
+ });
@@ -0,0 +1,42 @@
1
+ import type { RecordBoardResourceWallCardModel } from '../../types';
2
+ import { type VenueWallStatusKey, type VenueWallStatusTone } from './venueWallUtils';
3
+ /** 由 {@link buildVenueWallCardPresentation} 产出,供 VenueWallCard 渲染层使用 */
4
+ export declare type VenueWallCardPresentation = {
5
+ statusKey: VenueWallStatusKey;
6
+ isOccupied: boolean;
7
+ heroText: string;
8
+ heroColor: string;
9
+ noteText: string;
10
+ noteTextColor: string;
11
+ noteBg: string;
12
+ subColor: string;
13
+ mainColor: string;
14
+ currentLabel: string;
15
+ currentTime: string;
16
+ currentName: string;
17
+ currentNameColor: string;
18
+ nextNameColor: string;
19
+ progress: number;
20
+ progressColor: string;
21
+ rightTag: string;
22
+ rightTagColor: string;
23
+ rightTagBg: string;
24
+ rightTagBorder: string;
25
+ surfaceAccentColor: string;
26
+ };
27
+ /**
28
+ * 纯函数:根据实时漂移分钟数与六态配色表得到卡片主副文案、进度与标签样式。
29
+ * 与原先 VenueWallCard 内联分支逻辑一致,便于单测与维护。
30
+ */
31
+ export declare function buildVenueWallCardPresentation(args: {
32
+ card: RecordBoardResourceWallCardModel;
33
+ toneMap: Record<VenueWallStatusKey, VenueWallStatusTone>;
34
+ liveRemainingMin: number;
35
+ liveStartsInMin: number;
36
+ liveLateMin: number;
37
+ boardingSoonBeforeMin: number;
38
+ idleMain: string;
39
+ idleSub: string;
40
+ occupiedCardColor: string;
41
+ availableCardColor: string;
42
+ }): VenueWallCardPresentation;