@pisell/materials 6.11.28 → 6.11.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +16 -16
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +16 -16
- package/es/components/PisellCards/components/GraphicTextCard/GraphicTextCard.d.ts +0 -1
- package/es/components/PisellCards/index.d.ts +0 -1
- package/es/components/PisellFields/index.d.ts +0 -1
- package/es/components/PisellMetrics/index.d.ts +0 -1
- package/es/components/appVersionControl/index.d.ts +0 -1
- package/es/components/auto-complete-number/index.d.ts +0 -1
- package/es/components/badge/index.d.ts +0 -1
- package/es/components/batch-editor/fields/index.d.ts +0 -1
- package/es/components/batch-editor/index.d.ts +0 -1
- package/es/components/calendar/index.d.ts +0 -1
- package/es/components/checkbox/index.d.ts +0 -1
- package/es/components/classicLayout/index.d.ts +0 -1
- package/es/components/colorPicker/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/ColorPicker/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/DateRangePicker/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/IconSelect/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Email/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Subdomain/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.TextArea/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Url/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/TimePicker/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Translation/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Upload/CameraPopover.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/index.d.ts +6 -6
- package/es/components/drag-sort-tree/TreeItem/index.d.ts +0 -1
- package/es/components/drag-sort-tree/index.d.ts +0 -1
- package/es/components/dropdown/index.d.ts +0 -1
- package/es/components/filter/components/items/index.d.ts +0 -1
- package/es/components/filter/components/items/text/Editor/index.d.ts +0 -1
- package/es/components/filter/components/items/text/Preview/index.d.ts +0 -1
- package/es/components/filter/components/items/text/index.d.ts +0 -1
- package/es/components/page/index.d.ts +0 -1
- package/es/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
- package/es/components/pisellCard/index.d.ts +0 -1
- package/es/components/pisellDatePicker/index.d.ts +0 -1
- package/es/components/pisellFilter/index.d.ts +0 -1
- package/es/components/pisellInformationEntry/Scan/index.d.ts +0 -1
- package/es/components/pisellInput/index.d.ts +0 -1
- package/es/components/pisellRecordBoard/PisellRecordBoard.js +8 -5
- package/es/components/pisellRecordBoard/index.d.ts +7 -2
- package/es/components/pisellRecordBoard/index.js +4 -2
- package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +324 -312
- package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +18 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.d.ts +13 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +37 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +9 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +157 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.d.ts +8 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.js +9 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +14 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +513 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallMarquee.less +52 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +14 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +82 -0
- package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +5 -2
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +58 -19
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +5 -3
- package/es/components/pisellRecordBoard/shellFrame/index.d.ts +4 -3
- package/es/components/pisellRecordBoard/shellFrame/index.js +49 -11
- package/es/components/pisellRecordBoard/types.d.ts +78 -2
- package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +5 -2
- package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +18 -0
- package/es/components/pisellReservationSchedule/locales.d.ts +43 -0
- package/es/components/pisellReservationSchedule/types.d.ts +52 -0
- package/es/components/pisellReservationScheduleBand/types.d.ts +61 -0
- package/es/components/pisellTimeNavigator/utils/index.d.ts +41 -0
- package/es/components/pisellUpload/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
- package/es/components/productCard/components/Divider/index.d.ts +0 -1
- package/es/components/productCard/components/Header/DeleteButton/index.d.ts +0 -1
- package/es/components/productCard/components/Time/components/Like/index.d.ts +0 -1
- package/es/components/radio/index.d.ts +0 -1
- package/es/components/segmented/index.d.ts +0 -1
- package/es/components/select-time/RightPanel/index.d.ts +0 -1
- package/es/components/select-time/index.d.ts +0 -1
- package/es/components/skeleton/index.d.ts +0 -1
- package/es/components/slider/index.d.ts +0 -1
- package/es/components/sort/components/InlineMenu/index.d.ts +0 -1
- package/es/components/table/Actions/component/ExportImport/components/ExportFile/index.d.ts +0 -1
- package/es/components/table/Actions/component/ExportImport/components/ExportTable/index.d.ts +0 -1
- package/es/components/table/Actions/component/ExportImport/components/ImportLog/index.d.ts +0 -1
- package/es/components/table/Actions/component/ExportImport/components/ImportTable/index.d.ts +0 -1
- package/es/components/table/Actions/component/Group/PopoverContent.d.ts +0 -1
- package/es/components/table/Actions/component/ViewMode/index.d.ts +0 -1
- package/es/components/table/Summary/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/image/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/image/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/image/index.d.ts +0 -1
- package/es/components/table/Table/fields/index.d.ts +2 -2
- package/es/components/table/Table/fields/link/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/link/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/link/index.d.ts +0 -1
- package/es/components/table/Table/fields/number/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/number/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/numberRange/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/numberRange/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/oldRangePicker/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/oldRangePicker/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/pSwitch/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/pSwitch/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/pSwitch/index.d.ts +0 -1
- package/es/components/table/Table/fields/rangePicker/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/rangePicker/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/search/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/search/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/select/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/select/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/text/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/text/Sort/index.d.ts +0 -1
- package/es/components/table/Table/fields/treeSelect/Config/index.d.ts +0 -1
- package/es/components/table/Table/fields/treeSelect/Sort/index.d.ts +0 -1
- package/es/components/table/Table/tableConfig/summary/index.d.ts +0 -1
- package/es/components/table/Table/utils.d.ts +1 -1
- package/es/components/table/TableFilter/SortIcon.d.ts +0 -1
- package/es/components/time-picker/index.d.ts +0 -1
- package/es/components/upload/index.d.ts +0 -1
- package/es/components/versionSelect/index.d.ts +0 -1
- package/es/components/virtual-keyboard/Time/utils.d.ts +0 -1
- package/es/components/walletCard/Guest/index.d.ts +0 -1
- package/es/components/walletCard/Guide/index.d.ts +0 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +1 -0
- package/es/locales/en-US.d.ts +389 -0
- package/es/locales/en-US.js +1 -0
- package/es/locales/ja.d.ts +358 -0
- package/es/locales/ja.js +1 -0
- package/es/locales/pt.d.ts +358 -0
- package/es/locales/pt.js +1 -0
- package/es/locales/zh-CN.d.ts +384 -0
- package/es/locales/zh-CN.js +1 -0
- package/es/locales/zh-TW.d.ts +384 -0
- package/es/locales/zh-TW.js +1 -0
- package/es/pisell-materials.tw.css +1 -1
- package/lib/components/PisellCards/components/GraphicTextCard/GraphicTextCard.d.ts +0 -1
- package/lib/components/PisellCards/index.d.ts +0 -1
- package/lib/components/PisellFields/index.d.ts +0 -1
- package/lib/components/PisellMetrics/index.d.ts +0 -1
- package/lib/components/appVersionControl/index.d.ts +0 -1
- package/lib/components/auto-complete-number/index.d.ts +0 -1
- package/lib/components/badge/index.d.ts +0 -1
- package/lib/components/batch-editor/fields/index.d.ts +0 -1
- package/lib/components/batch-editor/index.d.ts +0 -1
- package/lib/components/calendar/index.d.ts +0 -1
- package/lib/components/checkbox/index.d.ts +0 -1
- package/lib/components/classicLayout/index.d.ts +0 -1
- package/lib/components/colorPicker/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/ColorPicker/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/DateRangePicker/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/IconSelect/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Email/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Subdomain/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.TextArea/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Url/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/TimePicker/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Translation/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Upload/CameraPopover.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/index.d.ts +6 -6
- package/lib/components/drag-sort-tree/TreeItem/index.d.ts +0 -1
- package/lib/components/drag-sort-tree/index.d.ts +0 -1
- package/lib/components/dropdown/index.d.ts +0 -1
- package/lib/components/filter/components/items/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/Editor/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/Preview/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/index.d.ts +0 -1
- package/lib/components/page/index.d.ts +0 -1
- package/lib/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
- package/lib/components/pisellCard/index.d.ts +0 -1
- package/lib/components/pisellDatePicker/index.d.ts +0 -1
- package/lib/components/pisellFilter/index.d.ts +0 -1
- package/lib/components/pisellInformationEntry/Scan/index.d.ts +0 -1
- package/lib/components/pisellInput/index.d.ts +0 -1
- package/lib/components/pisellRecordBoard/PisellRecordBoard.js +8 -3
- package/lib/components/pisellRecordBoard/index.d.ts +7 -2
- package/lib/components/pisellRecordBoard/index.js +4 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +143 -215
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +18 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.d.ts +13 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +60 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +9 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +163 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.d.ts +8 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.js +27 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +14 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +636 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallMarquee.less +52 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +14 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +110 -0
- package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +5 -2
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +45 -14
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +5 -3
- package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +4 -3
- package/lib/components/pisellRecordBoard/shellFrame/index.js +57 -7
- package/lib/components/pisellRecordBoard/types.d.ts +78 -2
- package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +5 -2
- package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +18 -0
- package/lib/components/pisellReservationSchedule/locales.d.ts +43 -0
- package/lib/components/pisellReservationSchedule/types.d.ts +52 -0
- package/lib/components/pisellReservationScheduleBand/types.d.ts +61 -0
- package/lib/components/pisellTimeNavigator/utils/index.d.ts +41 -0
- package/lib/components/pisellUpload/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
- package/lib/components/productCard/components/Divider/index.d.ts +0 -1
- package/lib/components/productCard/components/Header/DeleteButton/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/components/Like/index.d.ts +0 -1
- package/lib/components/radio/index.d.ts +0 -1
- package/lib/components/segmented/index.d.ts +0 -1
- package/lib/components/select-time/RightPanel/index.d.ts +0 -1
- package/lib/components/select-time/index.d.ts +0 -1
- package/lib/components/skeleton/index.d.ts +0 -1
- package/lib/components/slider/index.d.ts +0 -1
- package/lib/components/sort/components/InlineMenu/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ExportImport/components/ExportFile/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ExportImport/components/ExportTable/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ExportImport/components/ImportLog/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ExportImport/components/ImportTable/index.d.ts +0 -1
- package/lib/components/table/Actions/component/Group/PopoverContent.d.ts +0 -1
- package/lib/components/table/Actions/component/ViewMode/index.d.ts +0 -1
- package/lib/components/table/Summary/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/image/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/image/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/image/index.d.ts +0 -1
- package/lib/components/table/Table/fields/index.d.ts +2 -2
- package/lib/components/table/Table/fields/link/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/link/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/link/index.d.ts +0 -1
- package/lib/components/table/Table/fields/number/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/number/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/numberRange/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/numberRange/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/oldRangePicker/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/oldRangePicker/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/pSwitch/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/pSwitch/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/pSwitch/index.d.ts +0 -1
- package/lib/components/table/Table/fields/rangePicker/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/rangePicker/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/search/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/search/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/select/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/select/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/text/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/text/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/fields/treeSelect/Config/index.d.ts +0 -1
- package/lib/components/table/Table/fields/treeSelect/Sort/index.d.ts +0 -1
- package/lib/components/table/Table/tableConfig/summary/index.d.ts +0 -1
- package/lib/components/table/Table/utils.d.ts +1 -1
- package/lib/components/table/TableFilter/SortIcon.d.ts +0 -1
- package/lib/components/time-picker/index.d.ts +0 -1
- package/lib/components/upload/index.d.ts +0 -1
- package/lib/components/versionSelect/index.d.ts +0 -1
- package/lib/components/virtual-keyboard/Time/utils.d.ts +0 -1
- package/lib/components/walletCard/Guest/index.d.ts +0 -1
- package/lib/components/walletCard/Guide/index.d.ts +0 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +5 -0
- package/lib/locales/en-US.d.ts +389 -0
- package/lib/locales/en-US.js +1 -0
- package/lib/locales/ja.d.ts +358 -0
- package/lib/locales/ja.js +1 -0
- package/lib/locales/pt.d.ts +358 -0
- package/lib/locales/pt.js +1 -0
- package/lib/locales/zh-CN.d.ts +384 -0
- package/lib/locales/zh-CN.js +1 -0
- package/lib/locales/zh-TW.d.ts +384 -0
- package/lib/locales/zh-TW.js +1 -0
- package/lib/pisell-materials.tw.css +1 -1
- 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;
|