@pisell/materials 6.11.28 → 6.11.29

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 (271) 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 +16 -16
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +16 -16
  11. package/es/components/Pagination/index.d.ts +1 -0
  12. package/es/components/PisellBasicGrid/PisellBasicGrid.d.ts +1 -0
  13. package/es/components/PisellCards/components/MultilevelCard/hooks/useMultilevelCardExpand.d.ts +1 -0
  14. package/es/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +1 -0
  15. package/es/components/PisellCards/components/PisellImageCard/hooks/useImageLoad.d.ts +1 -0
  16. package/es/components/PisellCards/components/TabCard/TabCard.d.ts +1 -0
  17. package/es/components/PisellCards/components/TextCard/TextCard.d.ts +1 -0
  18. package/es/components/appVersionControl/index.d.ts +0 -1
  19. package/es/components/config-provider/index.d.ts +1 -0
  20. package/es/components/dataSourceComponents/dataSourceForm/formItem.d.ts +1 -0
  21. package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +1 -0
  22. package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +1 -0
  23. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  24. package/es/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +1 -0
  25. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +1 -0
  26. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +0 -1
  27. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +1 -0
  28. package/es/components/dataSourceComponents/dataSourceWrapper/index.d.ts +1 -0
  29. package/es/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +1 -0
  30. package/es/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +1 -0
  31. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -0
  32. package/es/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +1 -0
  33. package/es/components/dataSourceComponents/fields/index.d.ts +8 -7
  34. package/es/components/date-picker/datePickerCpt.d.ts +1 -0
  35. package/es/components/date-picker/index.d.ts +1 -0
  36. package/es/components/filter/index.d.ts +1 -0
  37. package/es/components/list/index.d.ts +1 -0
  38. package/es/components/lowCodePage/index.d.ts +1 -0
  39. package/es/components/page/index.d.ts +0 -1
  40. package/es/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +1 -0
  41. package/es/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +1 -0
  42. package/es/components/pisellFilter/index.d.ts +0 -1
  43. package/es/components/pisellGridPro/GridView/index.d.ts +1 -0
  44. package/es/components/pisellGridPro/components/DataCard/index.d.ts +1 -0
  45. package/es/components/pisellInput/index.d.ts +0 -1
  46. package/es/components/pisellLoading/index.d.ts +1 -0
  47. package/es/components/pisellModal/components/IpadModal/index.d.ts +1 -0
  48. package/es/components/pisellModal/components/MobileModal/index.d.ts +1 -0
  49. package/es/components/pisellModal/components/index.d.ts +1 -0
  50. package/es/components/pisellRecordBoard/PisellRecordBoard.js +8 -5
  51. package/es/components/pisellRecordBoard/index.d.ts +7 -2
  52. package/es/components/pisellRecordBoard/index.js +4 -2
  53. package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +323 -312
  54. package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +18 -0
  55. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.d.ts +13 -0
  56. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +37 -0
  57. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +9 -0
  58. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +157 -0
  59. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.d.ts +8 -0
  60. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.js +9 -0
  61. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +14 -0
  62. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +513 -0
  63. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallMarquee.less +52 -0
  64. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +14 -0
  65. package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +82 -0
  66. package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +5 -2
  67. package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +58 -19
  68. package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +5 -3
  69. package/es/components/pisellRecordBoard/shellFrame/index.d.ts +4 -3
  70. package/es/components/pisellRecordBoard/shellFrame/index.js +49 -11
  71. package/es/components/pisellRecordBoard/types.d.ts +78 -2
  72. package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +5 -2
  73. package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +18 -0
  74. package/es/components/pisellReservationSchedule/locales.d.ts +43 -0
  75. package/es/components/pisellReservationSchedule/types.d.ts +52 -0
  76. package/es/components/pisellReservationScheduleBand/types.d.ts +61 -0
  77. package/es/components/pisellSort/index.d.ts +1 -0
  78. package/es/components/pisellTimeNavigator/utils/index.d.ts +41 -0
  79. package/es/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
  80. package/es/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
  81. package/es/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
  82. package/es/components/productCard/components/AmountFooter/index.d.ts +1 -0
  83. package/es/components/productCard/components/MultiDay/index.d.ts +1 -0
  84. package/es/components/productCard/components/Note/index.d.ts +1 -0
  85. package/es/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +1 -0
  86. package/es/components/productCard/components/Packages/components/options/index.d.ts +1 -0
  87. package/es/components/productCard/components/Packages/index.d.ts +1 -0
  88. package/es/components/productCard/components/Time/components/SelectResource/index.d.ts +1 -0
  89. package/es/components/productCard/components/Time/index.d.ts +1 -0
  90. package/es/components/qrcode/index.d.ts +1 -0
  91. package/es/components/select-time/index.d.ts +0 -1
  92. package/es/components/table/Actions/component/ColumnsSetting/index.d.ts +1 -0
  93. package/es/components/table/Actions/component/ExportImport/index.d.ts +1 -0
  94. package/es/components/table/Actions/component/GallerySetting/index.d.ts +1 -0
  95. package/es/components/table/Actions/component/Group/index.d.ts +1 -0
  96. package/es/components/table/Actions/index.d.ts +1 -0
  97. package/es/components/table/BasicTable/index.d.ts +1 -0
  98. package/es/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +1 -0
  99. package/es/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +1 -0
  100. package/es/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +1 -0
  101. package/es/components/table/Table/SelectField/index.d.ts +1 -0
  102. package/es/components/table/Table/fields/date/Show/index.d.ts +1 -0
  103. package/es/components/table/Table/fields/date/index.d.ts +1 -0
  104. package/es/components/table/Table/fields/image/Show/index.d.ts +1 -0
  105. package/es/components/table/Table/fields/index.d.ts +1 -0
  106. package/es/components/table/Table/fields/link/Show/index.d.ts +1 -0
  107. package/es/components/table/Table/fields/number/Show/index.d.ts +1 -0
  108. package/es/components/table/Table/fields/number/index.d.ts +1 -0
  109. package/es/components/table/Table/fields/numberRange/Show/index.d.ts +1 -0
  110. package/es/components/table/Table/fields/numberRange/index.d.ts +1 -0
  111. package/es/components/table/Table/fields/oldRangePicker/Show/index.d.ts +1 -0
  112. package/es/components/table/Table/fields/oldRangePicker/index.d.ts +1 -0
  113. package/es/components/table/Table/fields/pSwitch/Show/index.d.ts +1 -0
  114. package/es/components/table/Table/fields/rangePicker/Show/index.d.ts +1 -0
  115. package/es/components/table/Table/fields/rangePicker/index.d.ts +1 -0
  116. package/es/components/table/Table/fields/search/Show/index.d.ts +1 -0
  117. package/es/components/table/Table/fields/search/index.d.ts +1 -0
  118. package/es/components/table/Table/fields/select/Show/index.d.ts +1 -0
  119. package/es/components/table/Table/fields/select/index.d.ts +1 -0
  120. package/es/components/table/Table/fields/text/Show/index.d.ts +1 -0
  121. package/es/components/table/Table/fields/text/index.d.ts +1 -0
  122. package/es/components/table/Table/fields/treeSelect/Show/index.d.ts +1 -0
  123. package/es/components/table/Table/fields/treeSelect/index.d.ts +1 -0
  124. package/es/components/table/Table/tableConfig/SortRow/index.d.ts +1 -0
  125. package/es/components/table/Table/utils.d.ts +1 -1
  126. package/es/components/table/View/index.d.ts +1 -0
  127. package/es/components/virtual-keyboard/Amount/index.d.ts +1 -0
  128. package/es/index.d.ts +2 -1
  129. package/es/index.js +1 -0
  130. package/es/locales/en-US.d.ts +389 -0
  131. package/es/locales/en-US.js +1 -0
  132. package/es/locales/ja.d.ts +358 -0
  133. package/es/locales/ja.js +1 -0
  134. package/es/locales/pt.d.ts +358 -0
  135. package/es/locales/pt.js +1 -0
  136. package/es/locales/zh-CN.d.ts +384 -0
  137. package/es/locales/zh-CN.js +1 -0
  138. package/es/locales/zh-TW.d.ts +384 -0
  139. package/es/locales/zh-TW.js +1 -0
  140. package/es/pisell-materials.tw.css +1 -1
  141. package/lib/components/Pagination/index.d.ts +1 -0
  142. package/lib/components/PisellBasicGrid/PisellBasicGrid.d.ts +1 -0
  143. package/lib/components/PisellCards/components/MultilevelCard/hooks/useMultilevelCardExpand.d.ts +1 -0
  144. package/lib/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +1 -0
  145. package/lib/components/PisellCards/components/PisellImageCard/hooks/useImageLoad.d.ts +1 -0
  146. package/lib/components/PisellCards/components/TabCard/TabCard.d.ts +1 -0
  147. package/lib/components/PisellCards/components/TextCard/TextCard.d.ts +1 -0
  148. package/lib/components/appVersionControl/index.d.ts +0 -1
  149. package/lib/components/config-provider/index.d.ts +1 -0
  150. package/lib/components/dataSourceComponents/dataSourceForm/formItem.d.ts +1 -0
  151. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +1 -0
  152. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +1 -0
  153. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  154. package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +1 -0
  155. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +1 -0
  156. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +0 -1
  157. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +1 -0
  158. package/lib/components/dataSourceComponents/dataSourceWrapper/index.d.ts +1 -0
  159. package/lib/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +1 -0
  160. package/lib/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +1 -0
  161. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -0
  162. package/lib/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +1 -0
  163. package/lib/components/dataSourceComponents/fields/index.d.ts +8 -7
  164. package/lib/components/date-picker/datePickerCpt.d.ts +1 -0
  165. package/lib/components/date-picker/index.d.ts +1 -0
  166. package/lib/components/filter/index.d.ts +1 -0
  167. package/lib/components/list/index.d.ts +1 -0
  168. package/lib/components/lowCodePage/index.d.ts +1 -0
  169. package/lib/components/page/index.d.ts +0 -1
  170. package/lib/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +1 -0
  171. package/lib/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +1 -0
  172. package/lib/components/pisellFilter/index.d.ts +0 -1
  173. package/lib/components/pisellGridPro/GridView/index.d.ts +1 -0
  174. package/lib/components/pisellGridPro/components/DataCard/index.d.ts +1 -0
  175. package/lib/components/pisellInput/index.d.ts +0 -1
  176. package/lib/components/pisellLoading/index.d.ts +1 -0
  177. package/lib/components/pisellModal/components/IpadModal/index.d.ts +1 -0
  178. package/lib/components/pisellModal/components/MobileModal/index.d.ts +1 -0
  179. package/lib/components/pisellModal/components/index.d.ts +1 -0
  180. package/lib/components/pisellRecordBoard/PisellRecordBoard.js +8 -3
  181. package/lib/components/pisellRecordBoard/index.d.ts +7 -2
  182. package/lib/components/pisellRecordBoard/index.js +4 -0
  183. package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +142 -215
  184. package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +18 -0
  185. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.d.ts +13 -0
  186. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +60 -0
  187. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +9 -0
  188. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +163 -0
  189. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.d.ts +8 -0
  190. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.js +27 -0
  191. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +14 -0
  192. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +636 -0
  193. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallMarquee.less +52 -0
  194. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +14 -0
  195. package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +110 -0
  196. package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +5 -2
  197. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +45 -14
  198. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +5 -3
  199. package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +4 -3
  200. package/lib/components/pisellRecordBoard/shellFrame/index.js +57 -7
  201. package/lib/components/pisellRecordBoard/types.d.ts +78 -2
  202. package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +5 -2
  203. package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +18 -0
  204. package/lib/components/pisellReservationSchedule/locales.d.ts +43 -0
  205. package/lib/components/pisellReservationSchedule/types.d.ts +52 -0
  206. package/lib/components/pisellReservationScheduleBand/types.d.ts +61 -0
  207. package/lib/components/pisellSort/index.d.ts +1 -0
  208. package/lib/components/pisellTimeNavigator/utils/index.d.ts +41 -0
  209. package/lib/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
  210. package/lib/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
  211. package/lib/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
  212. package/lib/components/productCard/components/AmountFooter/index.d.ts +1 -0
  213. package/lib/components/productCard/components/MultiDay/index.d.ts +1 -0
  214. package/lib/components/productCard/components/Note/index.d.ts +1 -0
  215. package/lib/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +1 -0
  216. package/lib/components/productCard/components/Packages/components/options/index.d.ts +1 -0
  217. package/lib/components/productCard/components/Packages/index.d.ts +1 -0
  218. package/lib/components/productCard/components/Time/components/SelectResource/index.d.ts +1 -0
  219. package/lib/components/productCard/components/Time/index.d.ts +1 -0
  220. package/lib/components/qrcode/index.d.ts +1 -0
  221. package/lib/components/select-time/index.d.ts +0 -1
  222. package/lib/components/table/Actions/component/ColumnsSetting/index.d.ts +1 -0
  223. package/lib/components/table/Actions/component/ExportImport/index.d.ts +1 -0
  224. package/lib/components/table/Actions/component/GallerySetting/index.d.ts +1 -0
  225. package/lib/components/table/Actions/component/Group/index.d.ts +1 -0
  226. package/lib/components/table/Actions/index.d.ts +1 -0
  227. package/lib/components/table/BasicTable/index.d.ts +1 -0
  228. package/lib/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +1 -0
  229. package/lib/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +1 -0
  230. package/lib/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +1 -0
  231. package/lib/components/table/Table/SelectField/index.d.ts +1 -0
  232. package/lib/components/table/Table/fields/date/Show/index.d.ts +1 -0
  233. package/lib/components/table/Table/fields/date/index.d.ts +1 -0
  234. package/lib/components/table/Table/fields/image/Show/index.d.ts +1 -0
  235. package/lib/components/table/Table/fields/index.d.ts +1 -0
  236. package/lib/components/table/Table/fields/link/Show/index.d.ts +1 -0
  237. package/lib/components/table/Table/fields/number/Show/index.d.ts +1 -0
  238. package/lib/components/table/Table/fields/number/index.d.ts +1 -0
  239. package/lib/components/table/Table/fields/numberRange/Show/index.d.ts +1 -0
  240. package/lib/components/table/Table/fields/numberRange/index.d.ts +1 -0
  241. package/lib/components/table/Table/fields/oldRangePicker/Show/index.d.ts +1 -0
  242. package/lib/components/table/Table/fields/oldRangePicker/index.d.ts +1 -0
  243. package/lib/components/table/Table/fields/pSwitch/Show/index.d.ts +1 -0
  244. package/lib/components/table/Table/fields/rangePicker/Show/index.d.ts +1 -0
  245. package/lib/components/table/Table/fields/rangePicker/index.d.ts +1 -0
  246. package/lib/components/table/Table/fields/search/Show/index.d.ts +1 -0
  247. package/lib/components/table/Table/fields/search/index.d.ts +1 -0
  248. package/lib/components/table/Table/fields/select/Show/index.d.ts +1 -0
  249. package/lib/components/table/Table/fields/select/index.d.ts +1 -0
  250. package/lib/components/table/Table/fields/text/Show/index.d.ts +1 -0
  251. package/lib/components/table/Table/fields/text/index.d.ts +1 -0
  252. package/lib/components/table/Table/fields/treeSelect/Show/index.d.ts +1 -0
  253. package/lib/components/table/Table/fields/treeSelect/index.d.ts +1 -0
  254. package/lib/components/table/Table/tableConfig/SortRow/index.d.ts +1 -0
  255. package/lib/components/table/Table/utils.d.ts +1 -1
  256. package/lib/components/table/View/index.d.ts +1 -0
  257. package/lib/components/virtual-keyboard/Amount/index.d.ts +1 -0
  258. package/lib/index.d.ts +2 -1
  259. package/lib/index.js +5 -0
  260. package/lib/locales/en-US.d.ts +389 -0
  261. package/lib/locales/en-US.js +1 -0
  262. package/lib/locales/ja.d.ts +358 -0
  263. package/lib/locales/ja.js +1 -0
  264. package/lib/locales/pt.d.ts +358 -0
  265. package/lib/locales/pt.js +1 -0
  266. package/lib/locales/zh-CN.d.ts +384 -0
  267. package/lib/locales/zh-CN.js +1 -0
  268. package/lib/locales/zh-TW.d.ts +384 -0
  269. package/lib/locales/zh-TW.js +1 -0
  270. package/lib/pisell-materials.tw.css +1 -1
  271. package/package.json +3 -3
@@ -0,0 +1,513 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import React, { useEffect, useRef, useState } from 'react';
14
+ import { NoteTicker } from "./NoteTicker";
15
+ import { VENUE_WALL_STATUS_COLOR_MAP, alphaColor, clamp, deriveVenueWallStatus, formatVenueWallCountdown } from "./venueWallUtils";
16
+
17
+ /** 资源墙卡内共用的墙钟 tick(每卡一条 interval,避免多字段各挂一条) */
18
+ function useVenueWallClockNow() {
19
+ var _useState = useState(function () {
20
+ return Date.now();
21
+ }),
22
+ _useState2 = _slicedToArray(_useState, 2),
23
+ now = _useState2[0],
24
+ setNow = _useState2[1];
25
+ useEffect(function () {
26
+ var id = window.setInterval(function () {
27
+ return setNow(Date.now());
28
+ }, 1000);
29
+ return function () {
30
+ return window.clearInterval(id);
31
+ };
32
+ }, []);
33
+ return now;
34
+ }
35
+
36
+ /**
37
+ * 将服务端给出的「整分钟」计数与收到时的墙钟对齐,随 `now` 递减;
38
+ * `value` 或 `resourceId` 从上游变更时重新锚定。
39
+ * @param allowNegative 为 true 时不钳到 0,便于已过期时段继续展示「xxm overtime」(与 `formatVenueWallCountdown` 在负数分钟时一致)。
40
+ */
41
+ function useDriftMinutesFromEpoch(value, resourceId, now) {
42
+ var allowNegative = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
43
+ var _useState3 = useState(function () {
44
+ return {
45
+ min: value !== null && value !== void 0 ? value : 0,
46
+ at: Date.now()
47
+ };
48
+ }),
49
+ _useState4 = _slicedToArray(_useState3, 2),
50
+ epoch = _useState4[0],
51
+ setEpoch = _useState4[1];
52
+ useEffect(function () {
53
+ setEpoch({
54
+ min: value !== null && value !== void 0 ? value : 0,
55
+ at: Date.now()
56
+ });
57
+ }, [resourceId, value]);
58
+ var drifted = epoch.min - Math.floor((now - epoch.at) / 60000);
59
+ return allowNegative ? drifted : Math.max(0, drifted);
60
+ }
61
+
62
+ /** `late` 等递增分钟:以收到时刻为锚,随 `now` 增长 */
63
+ function useDriftUpMinutesFromEpoch(value, resourceId, now) {
64
+ var _useState5 = useState(function () {
65
+ return {
66
+ min: value !== null && value !== void 0 ? value : 0,
67
+ at: Date.now()
68
+ };
69
+ }),
70
+ _useState6 = _slicedToArray(_useState5, 2),
71
+ epoch = _useState6[0],
72
+ setEpoch = _useState6[1];
73
+ useEffect(function () {
74
+ setEpoch({
75
+ min: value !== null && value !== void 0 ? value : 0,
76
+ at: Date.now()
77
+ });
78
+ }, [resourceId, value]);
79
+ return Math.max(0, epoch.min + Math.floor((now - epoch.at) / 60000));
80
+ }
81
+ var DEFAULT_OCCUPIED = '#6f4ae6';
82
+ var DEFAULT_AVAILABLE = '#10b981';
83
+
84
+ /**
85
+ * 单块场地大屏卡(由 test.tsx CardItem 迁移,样式为内联 + 少量类名,不依赖 Tailwind)。
86
+ */
87
+ export var VenueWallCard = function VenueWallCard(_ref) {
88
+ var _VENUE_WALL_STATUS_CO, _card$currentTime, _card$currentBooking, _card$nextList, _card$nextList$length, _card$nextList2, _nextItem$booking;
89
+ var card = _ref.card,
90
+ _ref$boardingSoonBefo = _ref.boardingSoonBeforeMin,
91
+ boardingSoonBeforeMin = _ref$boardingSoonBefo === void 0 ? 10 : _ref$boardingSoonBefo,
92
+ _ref$occupiedCardColo = _ref.occupiedCardColor,
93
+ occupiedCardColor = _ref$occupiedCardColo === void 0 ? DEFAULT_OCCUPIED : _ref$occupiedCardColo,
94
+ _ref$availableCardCol = _ref.availableCardColor,
95
+ availableCardColor = _ref$availableCardCol === void 0 ? DEFAULT_AVAILABLE : _ref$availableCardCol,
96
+ _ref$heroMaxWidthRati = _ref.heroMaxWidthRatio,
97
+ heroMaxWidthRatio = _ref$heroMaxWidthRati === void 0 ? 0.6 : _ref$heroMaxWidthRati;
98
+ var cardRef = useRef(null);
99
+ var _useState7 = useState({
100
+ width: 420,
101
+ height: 300
102
+ }),
103
+ _useState8 = _slicedToArray(_useState7, 2),
104
+ cardSize = _useState8[0],
105
+ setCardSize = _useState8[1];
106
+ useEffect(function () {
107
+ if (!cardRef.current) return;
108
+ var node = cardRef.current;
109
+ var updateSize = function updateSize() {
110
+ var rect = node.getBoundingClientRect();
111
+ setCardSize({
112
+ width: rect.width,
113
+ height: rect.height
114
+ });
115
+ };
116
+ updateSize();
117
+ var observer = new ResizeObserver(updateSize);
118
+ observer.observe(node);
119
+ return function () {
120
+ return observer.disconnect();
121
+ };
122
+ }, []);
123
+ var wallNow = useVenueWallClockNow();
124
+ var liveRemainingMin = useDriftMinutesFromEpoch(card.remainingMin, card.resourceId, wallNow, true);
125
+ var liveStartsInMin = useDriftMinutesFromEpoch(card.startsInMin, card.resourceId, wallNow, false);
126
+ var liveLateMin = useDriftUpMinutesFromEpoch(card.lateMin, card.resourceId, wallNow);
127
+ var statusKey = deriveVenueWallStatus(_objectSpread(_objectSpread({}, card), {}, {
128
+ remainingMin: liveRemainingMin
129
+ }));
130
+ var tone = (_VENUE_WALL_STATUS_CO = VENUE_WALL_STATUS_COLOR_MAP[statusKey]) !== null && _VENUE_WALL_STATUS_CO !== void 0 ? _VENUE_WALL_STATUS_CO : VENUE_WALL_STATUS_COLOR_MAP.inUse;
131
+ var isOccupied = ['inUse', 'endingSoon', 'expired'].includes(statusKey);
132
+ var heroText = isOccupied ? formatVenueWallCountdown(liveRemainingMin) : 'Available';
133
+ var heroColor = isOccupied ? statusKey === 'inUse' ? '#ffffff' : tone.color : VENUE_WALL_STATUS_COLOR_MAP.available.color;
134
+ var noteText = isOccupied ? tone.note : VENUE_WALL_STATUS_COLOR_MAP.available.note;
135
+ var noteTextColor = isOccupied ? '#ffffff' : '#0f172a';
136
+ var noteBg = isOccupied ? tone.noteBg : alphaColor(availableCardColor, 0.2);
137
+ var subColor = isOccupied ? 'rgba(255,255,255,0.80)' : '#94a3b8';
138
+ var mainColor = isOccupied ? '#ffffff' : '#0f172a';
139
+ var currentLabel = 'Current';
140
+ var currentTime = (_card$currentTime = card.currentTime) !== null && _card$currentTime !== void 0 ? _card$currentTime : '';
141
+ var currentName = isOccupied ? (_card$currentBooking = card.currentBooking) !== null && _card$currentBooking !== void 0 ? _card$currentBooking : '' : '';
142
+ var currentNameColor = mainColor;
143
+ var nextNameColor = mainColor;
144
+ var progress = isOccupied ? clamp(liveRemainingMin / 60 * 100, 0, 100) : 0;
145
+ var progressColor = heroColor;
146
+ var rightTag = tone.label;
147
+ var rightTagColor = isOccupied ? '#ffffff' : tone.color;
148
+ var rightTagBg = isOccupied ? statusKey === 'inUse' ? 'rgba(255,255,255,0.14)' : tone.color : alphaColor(tone.color, 0.12);
149
+ var rightTagBorder = isOccupied ? 'rgba(255,255,255,0.18)' : alphaColor(tone.color, 0.35);
150
+ var nextItem = (_card$nextList = card.nextList) === null || _card$nextList === void 0 ? void 0 : _card$nextList[0];
151
+ var nextCountLabel = nextItem ? "1/".concat((_card$nextList$length = (_card$nextList2 = card.nextList) === null || _card$nextList2 === void 0 ? void 0 : _card$nextList2.length) !== null && _card$nextList$length !== void 0 ? _card$nextList$length : 0) : '';
152
+ if (statusKey === 'boardingSoon') {
153
+ var _card$currentBooking2;
154
+ heroText = "Starts in ".concat(liveStartsInMin, "m");
155
+ heroColor = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color;
156
+ noteText = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.note;
157
+ noteTextColor = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color;
158
+ noteBg = alphaColor(VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color, 0.18);
159
+ currentLabel = 'Next';
160
+ currentName = (_card$currentBooking2 = card.currentBooking) !== null && _card$currentBooking2 !== void 0 ? _card$currentBooking2 : '';
161
+ currentNameColor = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color;
162
+ nextNameColor = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color;
163
+ progress = clamp((boardingSoonBeforeMin - liveStartsInMin) / boardingSoonBeforeMin * 100, 0, 100);
164
+ progressColor = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color;
165
+ rightTag = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.label;
166
+ rightTagColor = VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color;
167
+ rightTagBg = alphaColor(VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color, 0.12);
168
+ rightTagBorder = alphaColor(VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color, 0.35);
169
+ }
170
+ if (statusKey === 'late') {
171
+ var _card$currentBooking3;
172
+ heroText = "Late +".concat(liveLateMin, "m");
173
+ /** 仅主文案用红色;其余视觉与 Available 对齐 */
174
+ heroColor = 'rgb(239, 68, 68)';
175
+ noteText = VENUE_WALL_STATUS_COLOR_MAP.late.note;
176
+ noteTextColor = VENUE_WALL_STATUS_COLOR_MAP.available.color;
177
+ noteBg = VENUE_WALL_STATUS_COLOR_MAP.available.noteBg;
178
+ currentLabel = 'Next';
179
+ currentName = (_card$currentBooking3 = card.currentBooking) !== null && _card$currentBooking3 !== void 0 ? _card$currentBooking3 : '';
180
+ currentNameColor = VENUE_WALL_STATUS_COLOR_MAP.available.color;
181
+ nextNameColor = VENUE_WALL_STATUS_COLOR_MAP.available.color;
182
+ progress = 100;
183
+ progressColor = VENUE_WALL_STATUS_COLOR_MAP.available.color;
184
+ rightTag = VENUE_WALL_STATUS_COLOR_MAP.late.label;
185
+ rightTagColor = VENUE_WALL_STATUS_COLOR_MAP.available.color;
186
+ rightTagBg = alphaColor(VENUE_WALL_STATUS_COLOR_MAP.available.color, 0.12);
187
+ rightTagBorder = alphaColor(VENUE_WALL_STATUS_COLOR_MAP.available.color, 0.35);
188
+ }
189
+
190
+ /**
191
+ * 已过期:主文案应与 {@link formatVenueWallCountdown} 在负数分钟时一致(「xxm overtime」);
192
+ * drift 允许 remaining 为负后,仅「整分刚好为 0」时仍走 countdown(0) 的「Ending now」,改为「0m overtime」与产品预期一致。
193
+ */
194
+ if (statusKey === 'expired') {
195
+ heroText = liveRemainingMin < 0 ? formatVenueWallCountdown(liveRemainingMin) : liveRemainingMin === 0 ? '0m overtime' : formatVenueWallCountdown(liveRemainingMin);
196
+ }
197
+ var surfaceAccentColor = statusKey === 'late' ? availableCardColor : statusKey === 'boardingSoon' ? VENUE_WALL_STATUS_COLOR_MAP.boardingSoon.color : availableCardColor;
198
+ var cardBg = isOccupied ? "linear-gradient(180deg, ".concat(alphaColor(occupiedCardColor, 0.96), " 0%, ").concat(alphaColor(occupiedCardColor, 0.88), " 100%)") : alphaColor(surfaceAccentColor, statusKey === 'boardingSoon' || statusKey === 'late' ? 0.06 : 0.03);
199
+ var cardBorder = isOccupied ? alphaColor(occupiedCardColor, 0.5) : alphaColor(surfaceAccentColor, 0.18);
200
+ var moduleBorder = isOccupied ? 'rgba(255,255,255,0.10)' : alphaColor(surfaceAccentColor, 0.2);
201
+ var totalUnits = 1.5 + 4 + 2 + 1 + 0.4 * 2 + 0.2 * 3;
202
+ var heightUnit = Math.max(4, cardSize.height / totalUnits);
203
+ var widthScale = clamp(cardSize.width / 420, 0.42, 1.6);
204
+ var heightScale = clamp(cardSize.height / 300, 0.42, 1.8);
205
+ var fitScale = Math.min(widthScale, heightScale);
206
+ var unit = heightUnit;
207
+ var shellPad = unit * 0.4;
208
+ var sectionGap = unit * 0.2;
209
+ var blockPad = Math.max(unit * 0.2, Math.min(unit * 0.3, 20));
210
+ var cardRadius = clamp(unit * 0.62 * fitScale, 4, 28);
211
+ var blockRadius = clamp(unit * 0.48 * fitScale, 3, 24);
212
+ var noteRadius = clamp(unit * 0.4 * fitScale, 3, 20);
213
+ var tagRadius = clamp(unit * 0.34 * fitScale, 3, 999);
214
+ var headerHeight = unit * 1.5;
215
+ var currentHeight = unit * 4;
216
+ var nextHeight = unit * 2;
217
+ var noteHeight = unit * 1;
218
+ var areaSize = clamp(headerHeight * 0.18 * fitScale, 9, 18);
219
+ var resourceSize = clamp(headerHeight * 0.34 * fitScale, 16, 42);
220
+ var tagSize = clamp(headerHeight * 0.12 * fitScale, 10, 14);
221
+ var tagHeight = clamp(headerHeight * 0.42, 28, 36);
222
+ var currentMetaSize = clamp(currentHeight * 0.09 * fitScale, 9, 16);
223
+ var currentNameSize = clamp(currentHeight * 0.15 * fitScale, 12, 30);
224
+ var heroTextMaxWidth = Math.max(80, (cardSize.width - shellPad * 2 - blockPad * 2) * heroMaxWidthRatio);
225
+ var heroMaxByName = currentNameSize * 2.5;
226
+ var heroApproxFactor = Math.max(heroText.length * 0.58, 1);
227
+ var heroFitByWidth = heroTextMaxWidth / heroApproxFactor;
228
+ var heroSize = clamp(Math.min(heroFitByWidth, heroMaxByName), 18, heroMaxByName);
229
+ var nextNameSize = clamp(nextHeight * 0.24 * fitScale, 12, 30);
230
+ var nextMetaSize = clamp(currentMetaSize, 9, Math.max(10, nextNameSize * 0.68));
231
+ var nextBlockPad = Math.max(unit * 0.16, Math.min(unit * 0.24, 16));
232
+ var noteSize = clamp(noteHeight * 0.28 * fitScale, 10, 18);
233
+ var tagFont = Math.max(8, tagSize * 0.68);
234
+ return /*#__PURE__*/React.createElement("div", {
235
+ ref: cardRef,
236
+ className: "pisell-resource-wall-card",
237
+ style: {
238
+ position: 'relative',
239
+ height: '100%',
240
+ overflow: 'hidden',
241
+ display: 'flex',
242
+ flexDirection: 'column',
243
+ borderRadius: cardRadius,
244
+ background: cardBg,
245
+ borderWidth: 1,
246
+ borderStyle: 'solid',
247
+ borderColor: cardBorder,
248
+ boxShadow: '0 18px 48px rgba(15,23,42,0.06)'
249
+ }
250
+ }, /*#__PURE__*/React.createElement("div", {
251
+ style: {
252
+ flex: 1,
253
+ display: 'grid',
254
+ minHeight: 0,
255
+ padding: shellPad,
256
+ gap: sectionGap,
257
+ gridTemplateRows: "".concat(headerHeight, "px ").concat(currentHeight, "px ").concat(nextHeight, "px ").concat(noteHeight, "px")
258
+ }
259
+ }, /*#__PURE__*/React.createElement("div", {
260
+ style: {
261
+ display: 'grid',
262
+ minHeight: 0,
263
+ gridTemplateRows: '1fr 2fr',
264
+ rowGap: sectionGap
265
+ }
266
+ }, /*#__PURE__*/React.createElement("div", {
267
+ style: {
268
+ textTransform: 'uppercase',
269
+ letterSpacing: '0.24em',
270
+ fontSize: areaSize,
271
+ color: subColor,
272
+ overflow: 'hidden',
273
+ textOverflow: 'ellipsis',
274
+ whiteSpace: 'nowrap',
275
+ display: 'flex',
276
+ alignItems: 'center'
277
+ }
278
+ }, card.area), /*#__PURE__*/React.createElement("div", {
279
+ style: {
280
+ display: 'grid',
281
+ alignItems: 'center',
282
+ minHeight: 0,
283
+ gridTemplateColumns: '1fr auto',
284
+ columnGap: 8
285
+ }
286
+ }, /*#__PURE__*/React.createElement("div", {
287
+ style: {
288
+ fontWeight: 700,
289
+ overflow: 'hidden',
290
+ textOverflow: 'ellipsis',
291
+ whiteSpace: 'nowrap',
292
+ minWidth: 0,
293
+ fontSize: resourceSize,
294
+ lineHeight: 0.96,
295
+ color: mainColor
296
+ }
297
+ }, card.resource), /*#__PURE__*/React.createElement("div", {
298
+ style: {
299
+ display: 'flex',
300
+ alignItems: 'center',
301
+ gap: 8,
302
+ flexShrink: 0
303
+ }
304
+ }, /*#__PURE__*/React.createElement("div", {
305
+ style: {
306
+ borderWidth: 1,
307
+ borderStyle: 'solid',
308
+ fontWeight: 600,
309
+ display: 'flex',
310
+ alignItems: 'center',
311
+ justifyContent: 'center',
312
+ flexShrink: 0,
313
+ fontSize: tagSize,
314
+ lineHeight: 1,
315
+ minHeight: tagHeight,
316
+ borderRadius: tagRadius,
317
+ padding: "0 ".concat(Math.max(8, tagFont), "px"),
318
+ color: rightTagColor,
319
+ borderColor: rightTagBorder,
320
+ background: rightTagBg
321
+ }
322
+ }, rightTag)))), /*#__PURE__*/React.createElement("div", {
323
+ style: {
324
+ borderWidth: 1,
325
+ borderStyle: 'solid',
326
+ position: 'relative',
327
+ minHeight: 0,
328
+ borderRadius: blockRadius,
329
+ borderColor: moduleBorder,
330
+ background: isOccupied ? 'rgba(255,255,255,0.10)' : alphaColor(surfaceAccentColor, statusKey === 'boardingSoon' ? 0.18 : 0.2),
331
+ padding: blockPad
332
+ }
333
+ }, /*#__PURE__*/React.createElement("div", {
334
+ style: {
335
+ height: '100%',
336
+ display: 'grid',
337
+ minHeight: 0,
338
+ gridTemplateRows: '1.4fr 2.6fr auto',
339
+ rowGap: sectionGap
340
+ }
341
+ }, /*#__PURE__*/React.createElement("div", {
342
+ style: {
343
+ display: 'grid',
344
+ minHeight: 0,
345
+ gridTemplateColumns: '1fr auto',
346
+ columnGap: 8,
347
+ alignItems: 'start'
348
+ }
349
+ }, /*#__PURE__*/React.createElement("div", {
350
+ style: {
351
+ minWidth: 0
352
+ }
353
+ }, /*#__PURE__*/React.createElement("div", {
354
+ style: {
355
+ textTransform: 'uppercase',
356
+ letterSpacing: '0.22em',
357
+ lineHeight: 1,
358
+ fontSize: currentMetaSize,
359
+ color: subColor
360
+ }
361
+ }, currentLabel), /*#__PURE__*/React.createElement("div", {
362
+ style: {
363
+ lineHeight: 1,
364
+ marginTop: '0.2em',
365
+ fontSize: currentMetaSize,
366
+ color: subColor
367
+ }
368
+ }, currentTime || "\xA0")), /*#__PURE__*/React.createElement("div", {
369
+ style: {
370
+ fontWeight: 600,
371
+ textAlign: 'right',
372
+ overflow: 'hidden',
373
+ textOverflow: 'ellipsis',
374
+ whiteSpace: 'nowrap',
375
+ minWidth: 0,
376
+ alignSelf: 'start',
377
+ fontSize: currentNameSize,
378
+ lineHeight: 1.08,
379
+ color: currentNameColor,
380
+ maxWidth: cardSize.width * 0.42,
381
+ paddingTop: '0.04em',
382
+ paddingBottom: '0.08em'
383
+ }
384
+ }, currentName)), /*#__PURE__*/React.createElement("div", {
385
+ style: {
386
+ display: 'flex',
387
+ alignItems: 'flex-end',
388
+ minHeight: 0,
389
+ overflow: 'hidden'
390
+ }
391
+ }, /*#__PURE__*/React.createElement("div", {
392
+ style: {
393
+ fontWeight: 600,
394
+ letterSpacing: '-0.02em',
395
+ whiteSpace: 'nowrap',
396
+ fontSize: heroSize,
397
+ lineHeight: 1.08,
398
+ color: heroColor,
399
+ maxWidth: heroTextMaxWidth
400
+ }
401
+ }, heroText)), statusKey === 'boardingSoon' || isOccupied ? /*#__PURE__*/React.createElement("div", {
402
+ style: {
403
+ borderRadius: 9999,
404
+ overflow: 'hidden',
405
+ height: Math.max(5, unit * 0.08),
406
+ background: isOccupied ? 'rgba(255,255,255,0.14)' : 'rgba(148,163,184,0.18)'
407
+ }
408
+ }, /*#__PURE__*/React.createElement("div", {
409
+ style: {
410
+ height: '100%',
411
+ borderRadius: 9999,
412
+ width: "".concat(progress, "%"),
413
+ background: progressColor
414
+ }
415
+ })) : null)), /*#__PURE__*/React.createElement("div", {
416
+ style: {
417
+ borderWidth: 1,
418
+ borderStyle: 'solid',
419
+ minHeight: 0,
420
+ borderRadius: blockRadius,
421
+ borderColor: moduleBorder,
422
+ background: isOccupied ? 'rgba(255,255,255,0.04)' : alphaColor(surfaceAccentColor, statusKey === 'boardingSoon' ? 0.1 : 0.08),
423
+ padding: nextBlockPad
424
+ }
425
+ }, /*#__PURE__*/React.createElement("div", {
426
+ style: {
427
+ height: '100%',
428
+ minHeight: 0,
429
+ display: 'grid',
430
+ gridTemplateRows: '1fr 2fr',
431
+ rowGap: sectionGap
432
+ }
433
+ }, /*#__PURE__*/React.createElement("div", {
434
+ style: {
435
+ display: 'flex',
436
+ alignItems: 'flex-start',
437
+ justifyContent: 'space-between',
438
+ gap: 8,
439
+ minHeight: 0
440
+ }
441
+ }, /*#__PURE__*/React.createElement("div", {
442
+ style: {
443
+ textTransform: 'uppercase',
444
+ letterSpacing: '0.12em',
445
+ lineHeight: 1,
446
+ overflow: 'hidden',
447
+ textOverflow: 'ellipsis',
448
+ whiteSpace: 'nowrap',
449
+ fontSize: nextMetaSize,
450
+ color: subColor
451
+ }
452
+ }, nextItem !== null && nextItem !== void 0 && nextItem.time ? "Next \xB7 ".concat(nextItem.time) : 'Next'), /*#__PURE__*/React.createElement("div", {
453
+ style: {
454
+ fontWeight: 600,
455
+ flexShrink: 0,
456
+ fontSize: nextMetaSize,
457
+ color: subColor,
458
+ lineHeight: 1
459
+ }
460
+ }, nextCountLabel)), /*#__PURE__*/React.createElement("div", {
461
+ style: {
462
+ display: 'flex',
463
+ alignItems: 'flex-start',
464
+ minWidth: 0,
465
+ minHeight: 0
466
+ }
467
+ }, /*#__PURE__*/React.createElement("div", {
468
+ style: {
469
+ fontWeight: 600,
470
+ overflow: 'hidden',
471
+ textOverflow: 'ellipsis',
472
+ whiteSpace: 'nowrap',
473
+ fontSize: nextNameSize,
474
+ lineHeight: 1,
475
+ color: nextNameColor,
476
+ paddingTop: sectionGap
477
+ }
478
+ }, (_nextItem$booking = nextItem === null || nextItem === void 0 ? void 0 : nextItem.booking) !== null && _nextItem$booking !== void 0 ? _nextItem$booking : '')))), /*#__PURE__*/React.createElement("div", {
479
+ style: {
480
+ display: 'flex',
481
+ alignItems: 'center',
482
+ gap: 12,
483
+ overflow: 'hidden',
484
+ minHeight: 0,
485
+ padding: Math.max(6, blockPad * 0.66),
486
+ borderRadius: noteRadius,
487
+ background: noteBg,
488
+ border: '1px solid transparent'
489
+ }
490
+ }, /*#__PURE__*/React.createElement("div", {
491
+ style: {
492
+ width: Math.max(8, unit * 0.12),
493
+ height: Math.max(8, unit * 0.12),
494
+ borderRadius: 999,
495
+ background: heroColor,
496
+ flex: '0 0 auto'
497
+ }
498
+ }), /*#__PURE__*/React.createElement("div", {
499
+ style: {
500
+ fontSize: noteSize,
501
+ color: noteTextColor,
502
+ width: '100%',
503
+ height: '100%',
504
+ display: 'flex',
505
+ alignItems: 'center'
506
+ }
507
+ }, /*#__PURE__*/React.createElement(NoteTicker, {
508
+ text: noteText,
509
+ color: noteTextColor,
510
+ duration: 24,
511
+ shouldMarquee: noteText.length > 32
512
+ })))));
513
+ };
@@ -0,0 +1,52 @@
1
+ @keyframes pisell-resource-wall-note-marquee {
2
+ 0% {
3
+ transform: translate3d(0, 0, 0);
4
+ }
5
+ 100% {
6
+ transform: translate3d(calc(-33.333% - (var(--pisell-rw-marquee-gap) / 3)), 0, 0);
7
+ }
8
+ }
9
+
10
+ .pisell-resource-wall-note-marquee-wrap {
11
+ overflow: hidden;
12
+ white-space: nowrap;
13
+ width: 100%;
14
+ mask-image: linear-gradient(
15
+ to right,
16
+ transparent 0,
17
+ #000 24px,
18
+ #000 calc(100% - 24px),
19
+ transparent 100%
20
+ );
21
+ }
22
+
23
+ .pisell-resource-wall-note-marquee-track {
24
+ --pisell-rw-marquee-gap: 2.4rem;
25
+ display: inline-flex;
26
+ align-items: center;
27
+ width: max-content;
28
+ min-width: max-content;
29
+ will-change: transform;
30
+ animation-name: pisell-resource-wall-note-marquee;
31
+ animation-timing-function: linear;
32
+ animation-iteration-count: infinite;
33
+ animation-play-state: running;
34
+ transform: translate3d(0, 0, 0);
35
+ }
36
+
37
+ .pisell-resource-wall-note-marquee-copy {
38
+ display: inline-flex;
39
+ align-items: center;
40
+ flex: 0 0 auto;
41
+ white-space: nowrap;
42
+ padding-right: var(--pisell-rw-marquee-gap);
43
+ backface-visibility: hidden;
44
+ transform: translateZ(0);
45
+ }
46
+
47
+ .pisell-resource-wall-note-marquee-static {
48
+ overflow: hidden;
49
+ white-space: nowrap;
50
+ text-overflow: ellipsis;
51
+ width: 100%;
52
+ }
@@ -0,0 +1,14 @@
1
+ import type { RecordBoardResourceWallCardModel } from '../../types';
2
+ export declare type VenueWallStatusKey = 'inUse' | 'endingSoon' | 'expired' | 'available' | 'boardingSoon' | 'late';
3
+ export declare const VENUE_WALL_STATUS_COLOR_MAP: Record<VenueWallStatusKey, {
4
+ key: VenueWallStatusKey;
5
+ label: string;
6
+ note: string;
7
+ color: string;
8
+ noteBg: string;
9
+ }>;
10
+ export declare function alphaColor(hex: string, alpha: number): string;
11
+ export declare const clamp: (value: number, min: number, max: number) => number;
12
+ /** 由卡片字段推导状态键(与演示页 test.tsx 规则一致) */
13
+ export declare function deriveVenueWallStatus(card: RecordBoardResourceWallCardModel): VenueWallStatusKey;
14
+ export declare function formatVenueWallCountdown(min: number): string;
@@ -0,0 +1,82 @@
1
+ export var VENUE_WALL_STATUS_COLOR_MAP = {
2
+ inUse: {
3
+ key: 'inUse',
4
+ label: 'In Use',
5
+ note: 'This court is currently in use.',
6
+ color: '#6f4ae6',
7
+ noteBg: 'rgba(111,74,230,0.92)'
8
+ },
9
+ endingSoon: {
10
+ key: 'endingSoon',
11
+ label: 'Ending Soon',
12
+ note: 'Please leave on time to avoid overtime charges.',
13
+ color: '#f59e0b',
14
+ noteBg: 'rgba(245,158,11,0.96)'
15
+ },
16
+ expired: {
17
+ key: 'expired',
18
+ label: 'Expired',
19
+ note: 'This booking has ended. Please clear the court.',
20
+ color: '#ef4444',
21
+ noteBg: 'rgba(239,68,68,0.96)'
22
+ },
23
+ available: {
24
+ key: 'available',
25
+ label: 'Available',
26
+ note: 'This court is now available.',
27
+ color: '#10b981',
28
+ noteBg: 'rgba(16,185,129,0.18)'
29
+ },
30
+ boardingSoon: {
31
+ key: 'boardingSoon',
32
+ label: 'Boarding Soon',
33
+ note: 'Please check in to start.',
34
+ color: '#6f4ae6',
35
+ noteBg: 'rgba(111,74,230,0.18)'
36
+ },
37
+ late: {
38
+ key: 'late',
39
+ label: 'Late',
40
+ note: 'Please check in as soon as possible.',
41
+ /** 与 available 同色板一致;主倒计时红色在 VenueWallCard 内单独覆盖 */
42
+ color: '#10b981',
43
+ noteBg: 'rgba(16,185,129,0.18)'
44
+ }
45
+ };
46
+ export function alphaColor(hex, alpha) {
47
+ var clean = hex.replace('#', '');
48
+ var full = clean.length === 3 ? clean.split('').map(function (c) {
49
+ return c + c;
50
+ }).join('') : clean;
51
+ var num = parseInt(full, 16);
52
+ var r = num >> 16 & 255;
53
+ var g = num >> 8 & 255;
54
+ var b = num & 255;
55
+ return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")");
56
+ }
57
+ export var clamp = function clamp(value, min, max) {
58
+ return Math.max(min, Math.min(max, value));
59
+ };
60
+
61
+ /** 由卡片字段推导状态键(与演示页 test.tsx 规则一致) */
62
+ export function deriveVenueWallStatus(card) {
63
+ var s = card.status;
64
+ if (s === 'available') return 'available';
65
+ if (s === 'boardingSoon') return 'boardingSoon';
66
+ if (s === 'late') return 'late';
67
+ if (s === 'endingSoon') return 'endingSoon';
68
+ if (s === 'expired') return 'expired';
69
+ if (s === 'inUse') return 'inUse';
70
+
71
+ /** 兼容旧数据:无 status 时退回 remainingMin 推断(不再看 light 字段) */
72
+ if (card.currentBooking === 'Available to Book') return 'available';
73
+ var rm = card.remainingMin;
74
+ if (rm != null && rm <= 0) return 'expired';
75
+ if (rm != null && rm <= 10) return 'endingSoon';
76
+ return 'inUse';
77
+ }
78
+ export function formatVenueWallCountdown(min) {
79
+ if (min < 0) return "".concat(Math.abs(min), "m overtime");
80
+ if (min === 0) return 'Ending now';
81
+ return "".concat(min, "m left");
82
+ }
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
- import type { RecordBoardFloorMapProps } from '../types';
3
- import type { RecordBoardCalendarProps } from '../types';
2
+ import type { RecordBoardFloorMapProps, RecordBoardCalendarProps, RecordBoardResourceWallProps } from '../types';
4
3
  /**
5
4
  * ShellFrame 解析子节点后的元信息,供 ToolBar 等判断是否需要「表格 / 平面图 / 日历」Segmented。
6
5
  * 未处于 ShellFrame.Provider 内时为 undefined(如单独挂载 ToolBar)。
@@ -16,6 +15,10 @@ export interface RecordBoardShellBodyMeta {
16
15
  hasFloorMapSlot: boolean;
17
16
  /** 合并后是否存在可渲染的日历配置 */
18
17
  hasCalendarSlot: boolean;
18
+ /** 子组件 ResourceWall props 与根级 resourceWall 合并后的结果(子优先) */
19
+ effectiveResourceWallProps?: RecordBoardResourceWallProps;
20
+ /** 合并后是否存在大屏资源墙槽(根级或子节点声明即 true) */
21
+ hasResourceWallSlot: boolean;
19
22
  }
20
23
  export declare const RecordBoardShellBodyMetaContext: React.Context<RecordBoardShellBodyMeta | undefined>;
21
24
  export declare function useRecordBoardShellBodyMeta(): RecordBoardShellBodyMeta | undefined;