@pisell/materials 6.11.39 → 6.11.41
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/PisellBasicGrid/PisellBasicGrid.d.ts +0 -1
- package/es/components/PisellCards/components/GraphicTextCard/GraphicTextCard.d.ts +0 -1
- package/es/components/PisellCards/components/MultilevelCard/hooks/useMultilevelCardExpand.d.ts +0 -1
- package/es/components/PisellCards/components/PisellImageCard/hooks/useImageLoad.d.ts +0 -1
- package/es/components/PisellCards/components/TabCard/TabCard.d.ts +0 -1
- package/es/components/PisellCards/components/TextCard/TextCard.d.ts +0 -1
- package/es/components/PisellCards/index.d.ts +0 -1
- package/es/components/cardPro/index.d.ts +0 -1
- package/es/components/colorPicker/index.d.ts +1 -0
- package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
- package/es/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/index.d.ts +16 -16
- package/es/components/drag-sort-tree/TreeItem/index.d.ts +0 -1
- package/es/components/filter/components/items/index.d.ts +1 -0
- package/es/components/filter/components/items/text/Editor/index.d.ts +1 -0
- package/es/components/filter/components/items/text/Preview/index.d.ts +1 -0
- package/es/components/filter/components/items/text/index.d.ts +1 -0
- package/es/components/page/index.d.ts +0 -1
- package/es/components/pisellAdjustPrice/index.d.ts +0 -1
- package/es/components/pisellDatePicker/datePickerCpt.d.ts +0 -1
- package/es/components/pisellGridPro/GridView/index.d.ts +0 -1
- package/es/components/pisellGridPro/components/DataCard/index.d.ts +0 -1
- package/es/components/pisellInput/components/BankCard/index.d.ts +0 -1
- package/es/components/pisellInput/components/Copy/index.d.ts +0 -1
- package/es/components/pisellInput/components/SecurityCode/index.d.ts +0 -1
- package/es/components/pisellInput/index.d.ts +0 -1
- package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +29 -7
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +3 -2
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +169 -329
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.less +335 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.d.ts +35 -19
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js +159 -79
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +1 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +7 -6
- package/es/components/pisellRecordBoard/types.d.ts +7 -0
- package/es/components/pisellSort/index.d.ts +0 -1
- package/es/components/pisellTooltip/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/AmountFooter/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/Gift/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/Note/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/Promotion/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/discountReason/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/holders/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/packages/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/sales/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/specs/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
- package/es/components/productCard/cartSkuCard/index.d.ts +0 -1
- package/es/components/productCard/components/Action/index.d.ts +0 -1
- package/es/components/productCard/components/Header/EditButton/index.d.ts +0 -1
- package/es/components/productCard/components/Header/index.d.ts +0 -1
- package/es/components/productCard/components/Sales/index.d.ts +0 -1
- package/es/components/productCard/components/Time/components/SelectHolder/index.d.ts +0 -1
- package/es/components/productCard/components/Time/components/SelectHolderModal/index.d.ts +0 -1
- package/es/components/productCard/components/Time/components/SelectHolderMultiple/index.d.ts +0 -1
- package/es/components/select-time/index.d.ts +0 -1
- package/es/components/table/Actions/component/ViewMode/index.d.ts +0 -1
- package/es/components/table/Table/SelectField/index.d.ts +1 -0
- package/es/components/table/Table/fields/index.d.ts +2 -2
- package/es/components/table/Table/fields/oldRangePicker/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/rangePicker/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/select/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/treeSelect/Show/index.d.ts +0 -1
- package/es/components/table/Table/tableConfig/summary/index.d.ts +1 -0
- package/es/components/table/Table/utils.d.ts +1 -1
- package/es/components/virtual-keyboard/Amount/index.d.ts +0 -1
- package/es/components/virtual-keyboard/Number/index.d.ts +0 -1
- package/es/hooks/useResponsive.d.ts +1 -1
- package/es/locales/en-US.d.ts +9 -0
- package/es/locales/en-US.js +12 -3
- package/es/locales/ja.d.ts +9 -0
- package/es/locales/ja.js +11 -2
- package/es/locales/pt.d.ts +9 -0
- package/es/locales/pt.js +11 -2
- package/es/locales/zh-CN.d.ts +9 -0
- package/es/locales/zh-CN.js +11 -2
- package/es/locales/zh-TW.d.ts +9 -0
- package/es/locales/zh-TW.js +11 -2
- package/lib/components/PisellBasicGrid/PisellBasicGrid.d.ts +0 -1
- package/lib/components/PisellCards/components/GraphicTextCard/GraphicTextCard.d.ts +0 -1
- package/lib/components/PisellCards/components/MultilevelCard/hooks/useMultilevelCardExpand.d.ts +0 -1
- package/lib/components/PisellCards/components/PisellImageCard/hooks/useImageLoad.d.ts +0 -1
- package/lib/components/PisellCards/components/TabCard/TabCard.d.ts +0 -1
- package/lib/components/PisellCards/components/TextCard/TextCard.d.ts +0 -1
- package/lib/components/PisellCards/index.d.ts +0 -1
- package/lib/components/cardPro/index.d.ts +0 -1
- package/lib/components/colorPicker/index.d.ts +1 -0
- package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
- package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/index.d.ts +16 -16
- package/lib/components/drag-sort-tree/TreeItem/index.d.ts +0 -1
- package/lib/components/filter/components/items/index.d.ts +1 -0
- package/lib/components/filter/components/items/text/Editor/index.d.ts +1 -0
- package/lib/components/filter/components/items/text/Preview/index.d.ts +1 -0
- package/lib/components/filter/components/items/text/index.d.ts +1 -0
- package/lib/components/page/index.d.ts +0 -1
- package/lib/components/pisellAdjustPrice/index.d.ts +0 -1
- package/lib/components/pisellDatePicker/datePickerCpt.d.ts +0 -1
- package/lib/components/pisellGridPro/GridView/index.d.ts +0 -1
- package/lib/components/pisellGridPro/components/DataCard/index.d.ts +0 -1
- package/lib/components/pisellInput/components/BankCard/index.d.ts +0 -1
- package/lib/components/pisellInput/components/Copy/index.d.ts +0 -1
- package/lib/components/pisellInput/components/SecurityCode/index.d.ts +0 -1
- package/lib/components/pisellInput/index.d.ts +0 -1
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +31 -3
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.d.ts +3 -2
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +186 -437
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.less +335 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.d.ts +35 -19
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js +134 -80
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +1 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +8 -5
- package/lib/components/pisellRecordBoard/types.d.ts +7 -0
- package/lib/components/pisellSort/index.d.ts +0 -1
- package/lib/components/pisellTooltip/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/AmountFooter/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/Gift/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/Note/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/Promotion/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/discountReason/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/holders/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/packages/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/sales/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/specs/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
- package/lib/components/productCard/cartSkuCard/index.d.ts +0 -1
- package/lib/components/productCard/components/Action/index.d.ts +0 -1
- package/lib/components/productCard/components/Header/EditButton/index.d.ts +0 -1
- package/lib/components/productCard/components/Header/index.d.ts +0 -1
- package/lib/components/productCard/components/Sales/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/components/SelectHolder/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/components/SelectHolderModal/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/components/SelectHolderMultiple/index.d.ts +0 -1
- package/lib/components/select-time/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ViewMode/index.d.ts +0 -1
- package/lib/components/table/Table/SelectField/index.d.ts +1 -0
- package/lib/components/table/Table/fields/index.d.ts +2 -2
- package/lib/components/table/Table/fields/oldRangePicker/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/rangePicker/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/select/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/treeSelect/Show/index.d.ts +0 -1
- package/lib/components/table/Table/tableConfig/summary/index.d.ts +1 -0
- package/lib/components/table/Table/utils.d.ts +1 -1
- package/lib/components/virtual-keyboard/Amount/index.d.ts +0 -1
- package/lib/components/virtual-keyboard/Number/index.d.ts +0 -1
- package/lib/hooks/useResponsive.d.ts +1 -1
- package/lib/locales/en-US.d.ts +9 -0
- package/lib/locales/en-US.js +12 -3
- package/lib/locales/ja.d.ts +9 -0
- package/lib/locales/ja.js +11 -2
- package/lib/locales/pt.d.ts +9 -0
- package/lib/locales/pt.js +11 -2
- package/lib/locales/zh-CN.d.ts +9 -0
- package/lib/locales/zh-CN.js +11 -2
- package/lib/locales/zh-TW.d.ts +9 -0
- package/lib/locales/zh-TW.js +11 -2
- package/lowcode/pisell-record-board-calendar-view/meta.ts +170 -3
- package/package.json +3 -3
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/** VenueWallCard:布局分区 + 三档字号(字阶),非三块布局语义 */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 外层只做容器查询盒 + 边框裁剪;不要在同一节点写「依赖自身宽度」的 cqi/cqmin,
|
|
5
|
+
* 否则字号无法随卡片尺寸变化。
|
|
6
|
+
*/
|
|
7
|
+
.pisell-resource-wall-card {
|
|
8
|
+
position: relative;
|
|
9
|
+
height: 100%;
|
|
10
|
+
min-width: 0;
|
|
11
|
+
width: 100%;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
min-height: 0;
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
border-radius: clamp(8px, 2vw, 28px);
|
|
18
|
+
border-width: 1px;
|
|
19
|
+
border-style: solid;
|
|
20
|
+
|
|
21
|
+
container-type: size;
|
|
22
|
+
container-name: venue-wall-card;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** 字号基准与子树:cqi/cqmin 相对外层卡片解析,故必须放在内层 */
|
|
26
|
+
.pisell-resource-wall-card__scale-root {
|
|
27
|
+
flex: 1;
|
|
28
|
+
min-width: 0;
|
|
29
|
+
min-height: 0;
|
|
30
|
+
width: 100%;
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* cqmin = min(宽,高) 的 1%,换版式(如 1×2 → 2×3)时宽高都参与缩放。
|
|
37
|
+
*/
|
|
38
|
+
font-size: clamp(0.625rem, 4cqmin + 0.33rem, 2rem);
|
|
39
|
+
|
|
40
|
+
--rw-tier1: 2.55em;
|
|
41
|
+
/* 二档:时段/联系人等;与一档保持级差 */
|
|
42
|
+
--rw-tier2: 1.9em;
|
|
43
|
+
--rw-tier3: 0.96em;
|
|
44
|
+
--rw-status: 0.9em;
|
|
45
|
+
--rw-next-solo: 1.68em;
|
|
46
|
+
|
|
47
|
+
--rw-gap: clamp(6px, 1.2vw + 0.6vh, 14px);
|
|
48
|
+
--rw-pad: clamp(8px, 1.8vw + 0.5vh, 16px);
|
|
49
|
+
--rw-inner-pad: clamp(10px, 2vw + 0.6vh, 20px);
|
|
50
|
+
--rw-block-radius: clamp(6px, 1.5vw, 22px);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.pisell-resource-wall-card__grid {
|
|
54
|
+
flex: 1;
|
|
55
|
+
display: grid;
|
|
56
|
+
min-width: 0;
|
|
57
|
+
width: 100%;
|
|
58
|
+
box-sizing: border-box;
|
|
59
|
+
min-height: 0;
|
|
60
|
+
height: 100%;
|
|
61
|
+
gap: var(--rw-gap);
|
|
62
|
+
padding: var(--rw-pad);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** 头 : 当前 : 下一 = 4:11:5 → Next 25%(此前 2:5:3 为 30%) */
|
|
66
|
+
.pisell-resource-wall-card__grid--with-next {
|
|
67
|
+
grid-template-rows: minmax(0, 4fr) minmax(0, 11fr) minmax(0, 5fr);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.pisell-resource-wall-card__grid--no-next {
|
|
71
|
+
grid-template-rows: minmax(0, 1fr) minmax(0, 4fr);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.pisell-resource-wall-card__header {
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
justify-content: space-between;
|
|
78
|
+
gap: 12px;
|
|
79
|
+
min-width: 0;
|
|
80
|
+
width: 100%;
|
|
81
|
+
max-width: 100%;
|
|
82
|
+
box-sizing: border-box;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.pisell-resource-wall-card__header-main {
|
|
86
|
+
flex: 1 1 0;
|
|
87
|
+
min-width: 0;
|
|
88
|
+
display: flex;
|
|
89
|
+
flex-direction: column;
|
|
90
|
+
gap: 0.22em;
|
|
91
|
+
justify-content: center;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.pisell-resource-wall-card__header-name {
|
|
95
|
+
min-width: 0;
|
|
96
|
+
overflow: hidden;
|
|
97
|
+
text-overflow: ellipsis;
|
|
98
|
+
white-space: nowrap;
|
|
99
|
+
font-weight: 700;
|
|
100
|
+
line-height: 1.08;
|
|
101
|
+
font-size: var(--rw-tier1);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** 左上角资源类型:与面板内时段/联系人同级字阶(--rw-tier2) */
|
|
105
|
+
.pisell-resource-wall-card__header-type {
|
|
106
|
+
flex-shrink: 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.pisell-resource-wall-card__header-status {
|
|
110
|
+
flex: 0 1 auto;
|
|
111
|
+
min-width: 0;
|
|
112
|
+
max-width: min(52%, 100%);
|
|
113
|
+
overflow: hidden;
|
|
114
|
+
text-overflow: ellipsis;
|
|
115
|
+
white-space: nowrap;
|
|
116
|
+
font-weight: 700;
|
|
117
|
+
line-height: 1.1;
|
|
118
|
+
/** 与面板内时段/联系人同字阶(tier2) */
|
|
119
|
+
font-size: var(--rw-tier2);
|
|
120
|
+
padding: 0.2em 0.55em;
|
|
121
|
+
border-radius: 999px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.pisell-resource-wall-card__header-status--empty {
|
|
125
|
+
border: 1px solid rgba(148, 163, 184, 0.42);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.pisell-resource-wall-card__header-status--reserved {
|
|
129
|
+
border: 1px solid rgba(111, 74, 230, 0.35);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** 迟到:accent 卡上红色描边 + 红字,与一档 late 强调色对齐 */
|
|
133
|
+
.pisell-resource-wall-card__header-status--late {
|
|
134
|
+
border: 1px solid rgba(239, 68, 68, 0.45);
|
|
135
|
+
background: rgba(239, 68, 68, 0.08);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.pisell-resource-wall-card__header-status--occupied {
|
|
139
|
+
border: 1px solid rgba(255, 255, 255, 0.22);
|
|
140
|
+
background: rgba(255, 255, 255, 0.12);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** 超时:占用卡上红色实心胶囊(背景由内联 style 覆盖为 expiredTone.color) */
|
|
144
|
+
.pisell-resource-wall-card__header-status--expired {
|
|
145
|
+
border: 1px solid rgba(255, 255, 255, 0.28);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.pisell-resource-wall-card__panel {
|
|
149
|
+
border-width: 1px;
|
|
150
|
+
border-style: solid;
|
|
151
|
+
border-radius: var(--rw-block-radius);
|
|
152
|
+
padding: var(--rw-inner-pad);
|
|
153
|
+
min-width: 0;
|
|
154
|
+
min-height: 0;
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-direction: column;
|
|
157
|
+
gap: calc(var(--rw-gap) * 0.65);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/** 占用卡「当前预约」二档:略加粗,无描边/阴影 */
|
|
161
|
+
.pisell-resource-wall-card__panel--occupied-current .pisell-resource-wall-card__tier2 {
|
|
162
|
+
font-weight: 700;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** 预约中(浅紫底):Current / 时段 / 联系人用深色主字色,与时钟区标题同级对比度 */
|
|
166
|
+
.pisell-resource-wall-card__panel--reserved-current .pisell-resource-wall-card__tier2 {
|
|
167
|
+
font-weight: 700;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.pisell-resource-wall-card__section-title--reserved-current {
|
|
171
|
+
opacity: 1;
|
|
172
|
+
font-weight: 700;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/** 预约中:Next 小标题与联系人/时段 — 不降透明度、字重与当前区对齐 */
|
|
176
|
+
.pisell-resource-wall-card__section-title--reserved-next {
|
|
177
|
+
opacity: 1;
|
|
178
|
+
font-weight: 700;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.pisell-resource-wall-card__panel--reserved-next .pisell-resource-wall-card__tier2,
|
|
182
|
+
.pisell-resource-wall-card__panel--reserved-next .pisell-resource-wall-card__next-time-solo {
|
|
183
|
+
font-weight: 700;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.pisell-resource-wall-card__section-title {
|
|
187
|
+
flex-shrink: 0;
|
|
188
|
+
min-width: 0;
|
|
189
|
+
width: 100%;
|
|
190
|
+
overflow: hidden;
|
|
191
|
+
text-overflow: ellipsis;
|
|
192
|
+
white-space: nowrap;
|
|
193
|
+
font-weight: 600;
|
|
194
|
+
font-size: var(--rw-tier3);
|
|
195
|
+
line-height: 1.25;
|
|
196
|
+
letter-spacing: 0.03em;
|
|
197
|
+
opacity: 0.92;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** 占用卡「当前预约」小标题:不叠 section-title 默认透明度 */
|
|
201
|
+
.pisell-resource-wall-card__section-title--occupied-current {
|
|
202
|
+
opacity: 1;
|
|
203
|
+
font-weight: 700;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.pisell-resource-wall-card__current-body {
|
|
207
|
+
flex: 1;
|
|
208
|
+
min-width: 0;
|
|
209
|
+
min-height: 0;
|
|
210
|
+
display: flex;
|
|
211
|
+
flex-direction: column;
|
|
212
|
+
gap: var(--rw-gap);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/** 主文案占满上方;进度条与跑马灯放在 current-footer */
|
|
216
|
+
.pisell-resource-wall-card__current-main {
|
|
217
|
+
flex: 1 1 auto;
|
|
218
|
+
min-width: 0;
|
|
219
|
+
min-height: 0;
|
|
220
|
+
display: flex;
|
|
221
|
+
flex-direction: column;
|
|
222
|
+
gap: var(--rw-gap);
|
|
223
|
+
justify-content: flex-start;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.pisell-resource-wall-card__current-footer {
|
|
227
|
+
flex-shrink: 0;
|
|
228
|
+
min-width: 0;
|
|
229
|
+
display: flex;
|
|
230
|
+
flex-direction: column;
|
|
231
|
+
gap: calc(var(--rw-gap) * 0.75);
|
|
232
|
+
margin-top: auto;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/** 状态/倒计时等与进度条同一贴底带,叠在进度条正上方 */
|
|
236
|
+
.pisell-resource-wall-card__current-footer-emphasis {
|
|
237
|
+
min-width: 0;
|
|
238
|
+
width: 100%;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.pisell-resource-wall-card__tier1 {
|
|
242
|
+
min-width: 0;
|
|
243
|
+
max-width: 100%;
|
|
244
|
+
font-weight: 700;
|
|
245
|
+
letter-spacing: -0.02em;
|
|
246
|
+
line-height: 1.08;
|
|
247
|
+
font-size: var(--rw-tier1);
|
|
248
|
+
white-space: nowrap;
|
|
249
|
+
overflow: hidden;
|
|
250
|
+
text-overflow: ellipsis;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.pisell-resource-wall-card__tier2 {
|
|
254
|
+
min-width: 0;
|
|
255
|
+
max-width: 100%;
|
|
256
|
+
font-weight: 600;
|
|
257
|
+
letter-spacing: -0.02em;
|
|
258
|
+
line-height: 1.15;
|
|
259
|
+
font-size: var(--rw-tier2);
|
|
260
|
+
overflow: hidden;
|
|
261
|
+
text-overflow: ellipsis;
|
|
262
|
+
white-space: nowrap;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.pisell-resource-wall-card__tier3 {
|
|
266
|
+
flex-shrink: 0;
|
|
267
|
+
min-width: 0;
|
|
268
|
+
max-width: 100%;
|
|
269
|
+
overflow: hidden;
|
|
270
|
+
text-overflow: ellipsis;
|
|
271
|
+
white-space: nowrap;
|
|
272
|
+
font-weight: 600;
|
|
273
|
+
line-height: 1.25;
|
|
274
|
+
font-size: var(--rw-tier3);
|
|
275
|
+
min-height: 0;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** 快结束跑马灯:底色与同一列 countdown 强调色同色相(primaryEmphasisColor);字色白 */
|
|
279
|
+
.pisell-resource-wall-card__marquee-shell {
|
|
280
|
+
min-width: 0;
|
|
281
|
+
width: 100%;
|
|
282
|
+
max-width: 100%;
|
|
283
|
+
box-sizing: border-box;
|
|
284
|
+
border-radius: 9999px;
|
|
285
|
+
padding: 0.42em 0.95em;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.pisell-resource-wall-card__marquee-shell > .pisell-resource-wall-card__tier3 {
|
|
289
|
+
min-width: 0;
|
|
290
|
+
width: 100%;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.pisell-resource-wall-card__progress-wrap {
|
|
294
|
+
flex-shrink: 0;
|
|
295
|
+
border-radius: 9999px;
|
|
296
|
+
overflow: hidden;
|
|
297
|
+
height: clamp(4px, 0.42em, 12px);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.pisell-resource-wall-card__progress-fill {
|
|
301
|
+
height: 100%;
|
|
302
|
+
border-radius: 9999px;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.pisell-resource-wall-card__next-stack {
|
|
306
|
+
display: flex;
|
|
307
|
+
flex-direction: column;
|
|
308
|
+
gap: calc(var(--rw-gap) * 0.75);
|
|
309
|
+
justify-content: center;
|
|
310
|
+
min-width: 0;
|
|
311
|
+
min-height: 0;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/** 联系人 + 时段两行并存:略缩字级与间距,减轻省略与裁切 */
|
|
315
|
+
.pisell-resource-wall-card__next-stack--both-lines {
|
|
316
|
+
gap: calc(var(--rw-gap) * 0.55);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
.pisell-resource-wall-card__next-stack--both-lines .pisell-resource-wall-card__tier2 {
|
|
320
|
+
font-size: calc(var(--rw-tier2) * 0.82);
|
|
321
|
+
line-height: 1.12;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/** 下一预约仅有时间、无联系人时:相对卡片基准介于二档与一档之间 */
|
|
325
|
+
.pisell-resource-wall-card__next-time-solo {
|
|
326
|
+
min-width: 0;
|
|
327
|
+
max-width: 100%;
|
|
328
|
+
font-weight: 700;
|
|
329
|
+
letter-spacing: -0.02em;
|
|
330
|
+
line-height: 1.1;
|
|
331
|
+
font-size: var(--rw-next-solo);
|
|
332
|
+
overflow: hidden;
|
|
333
|
+
text-overflow: ellipsis;
|
|
334
|
+
white-space: nowrap;
|
|
335
|
+
}
|
package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.d.ts
CHANGED
|
@@ -1,37 +1,53 @@
|
|
|
1
1
|
import type { RecordBoardResourceWallCardModel } from '../../types';
|
|
2
2
|
import { type VenueWallStatusKey, type VenueWallStatusTone } from './venueWallUtils';
|
|
3
|
+
/** 与平面图 empty / reserved / occupied 对齐的三种大屏展示态 */
|
|
4
|
+
export declare type VenueWallFloorLikeStatus = 'empty' | 'reserved' | 'occupied';
|
|
5
|
+
/**
|
|
6
|
+
* 标题胶囊 5 态:在 floorLike 三大类基础上,把 `late` 与 `expired` 拆出独立色与文案,
|
|
7
|
+
* 与当前区一档强调色(红)对齐。
|
|
8
|
+
*/
|
|
9
|
+
export declare type VenueWallHeaderStatusKey = 'empty' | 'reserved' | 'late' | 'occupied' | 'expired';
|
|
3
10
|
/** 由 {@link buildVenueWallCardPresentation} 产出,供 VenueWallCard 渲染层使用 */
|
|
4
11
|
export declare type VenueWallCardPresentation = {
|
|
5
12
|
statusKey: VenueWallStatusKey;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
floorLikeStatus: VenueWallFloorLikeStatus;
|
|
14
|
+
/** 标题栏右侧 5 态键,决定胶囊样式(描边/底色变体) */
|
|
15
|
+
headerStatusKey: VenueWallHeaderStatusKey;
|
|
16
|
+
/** 标题栏右侧:空闲 / 预约中 / 迟到 / 占用中 / 超时 */
|
|
17
|
+
headerStatusLabel: string;
|
|
18
|
+
/** 标题胶囊主色(迟到/超时为红,与一档强调色对齐) */
|
|
19
|
+
headerStatusColor: string;
|
|
20
|
+
/** 紫色渐变占用卡 vs 浅色强调卡 */
|
|
21
|
+
cardVariant: 'occupied' | 'accent';
|
|
13
22
|
mainColor: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
subColor: string;
|
|
24
|
+
surfaceAccentColor: string;
|
|
25
|
+
/** 当前区一档:剩余时间 / 距开始 / 结束提示等(非布局「块」) */
|
|
26
|
+
primaryEmphasisLine: string;
|
|
27
|
+
primaryEmphasisColor: string;
|
|
28
|
+
/** 二档:预约时段文案 */
|
|
29
|
+
timeRangeLine: string;
|
|
30
|
+
/** 二档:联系人(「Available to Book」等占位已剥离) */
|
|
31
|
+
contactLine: string;
|
|
32
|
+
showProgress: boolean;
|
|
19
33
|
progress: number;
|
|
20
34
|
progressColor: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
showEndingSoonMarquee: boolean;
|
|
36
|
+
marqueeText: string;
|
|
37
|
+
marqueeColor: string;
|
|
38
|
+
/** 跑马灯胶囊底:与 {@link primaryEmphasisColor} 同一强调色(半透明叠底) */
|
|
39
|
+
marqueeShellBackground: string;
|
|
26
40
|
};
|
|
27
41
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
42
|
+
* 纯函数:三态大屏文案 + 进度 + 条件跑马灯。
|
|
43
|
+
* 右上角标题栏仅保留 empty/reserved/occupied;迟到/超时只出现在当前区一档主提示。
|
|
30
44
|
*/
|
|
31
45
|
export declare function buildVenueWallCardPresentation(args: {
|
|
32
46
|
card: RecordBoardResourceWallCardModel;
|
|
33
47
|
toneMap: Record<VenueWallStatusKey, VenueWallStatusTone>;
|
|
48
|
+
wallNowMs: number;
|
|
34
49
|
liveRemainingMin: number;
|
|
50
|
+
liveRemainingPreciseMin: number;
|
|
35
51
|
liveStartsInMin: number;
|
|
36
52
|
liveLateMin: number;
|
|
37
53
|
boardingSoonBeforeMin: number;
|
package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js
CHANGED
|
@@ -24,113 +24,167 @@ __export(venueWallCardPresentation_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(venueWallCardPresentation_exports);
|
|
25
25
|
var import_locales = require("../../../../locales");
|
|
26
26
|
var import_venueWallUtils = require("./venueWallUtils");
|
|
27
|
+
function resolveFloorLikeStatus(statusKey) {
|
|
28
|
+
if (statusKey === "available") return "empty";
|
|
29
|
+
if (statusKey === "boardingSoon" || statusKey === "late") return "reserved";
|
|
30
|
+
return "occupied";
|
|
31
|
+
}
|
|
32
|
+
function resolveHeaderStatusKey(statusKey) {
|
|
33
|
+
if (statusKey === "available") return "empty";
|
|
34
|
+
if (statusKey === "boardingSoon") return "reserved";
|
|
35
|
+
if (statusKey === "late") return "late";
|
|
36
|
+
if (statusKey === "expired") return "expired";
|
|
37
|
+
return "occupied";
|
|
38
|
+
}
|
|
39
|
+
function headerLabelForKey(key) {
|
|
40
|
+
switch (key) {
|
|
41
|
+
case "empty":
|
|
42
|
+
return (0, import_locales.getText)("pisell-resource-wall-card-current-not-in-use");
|
|
43
|
+
case "reserved":
|
|
44
|
+
return (0, import_locales.getText)("pisell-resource-wall-floor-status-reserved");
|
|
45
|
+
case "late":
|
|
46
|
+
return (0, import_locales.getText)("pisell-resource-wall-floor-status-late");
|
|
47
|
+
case "expired":
|
|
48
|
+
return (0, import_locales.getText)("pisell-resource-wall-floor-status-expired");
|
|
49
|
+
default:
|
|
50
|
+
return (0, import_locales.getText)("pisell-resource-wall-floor-status-occupied");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function sanitizeContact(booking) {
|
|
54
|
+
const c = (booking == null ? void 0 : booking.trim()) ?? "";
|
|
55
|
+
if (c === "Available to Book") return "";
|
|
56
|
+
return c;
|
|
57
|
+
}
|
|
58
|
+
function resolveInUseProgressPercent(args) {
|
|
59
|
+
const { card, wallNowMs, liveRemainingPreciseMin } = args;
|
|
60
|
+
const end = card.sessionEndMs;
|
|
61
|
+
const start = card.sessionStartMs;
|
|
62
|
+
if (end != null && start != null && Number.isFinite(end) && Number.isFinite(start) && end > start) {
|
|
63
|
+
const durationMs = end - start;
|
|
64
|
+
const elapsedMs = Math.min(
|
|
65
|
+
Math.max(0, wallNowMs - start),
|
|
66
|
+
durationMs
|
|
67
|
+
);
|
|
68
|
+
return (0, import_venueWallUtils.clamp)(elapsedMs / durationMs * 100, 0, 100);
|
|
69
|
+
}
|
|
70
|
+
const denomMin = 60;
|
|
71
|
+
const elapsedPreciseMin = denomMin - liveRemainingPreciseMin;
|
|
72
|
+
return (0, import_venueWallUtils.clamp)(elapsedPreciseMin / denomMin * 100, 0, 100);
|
|
73
|
+
}
|
|
27
74
|
function buildVenueWallCardPresentation(args) {
|
|
28
75
|
const {
|
|
29
76
|
card,
|
|
30
77
|
toneMap,
|
|
78
|
+
wallNowMs,
|
|
31
79
|
liveRemainingMin,
|
|
80
|
+
liveRemainingPreciseMin,
|
|
32
81
|
liveStartsInMin,
|
|
33
82
|
liveLateMin,
|
|
34
83
|
boardingSoonBeforeMin,
|
|
35
84
|
idleMain,
|
|
36
85
|
idleSub,
|
|
37
|
-
occupiedCardColor,
|
|
38
86
|
availableCardColor
|
|
39
87
|
} = args;
|
|
40
88
|
const statusKey = (0, import_venueWallUtils.deriveVenueWallStatus)({
|
|
41
89
|
...card,
|
|
42
90
|
remainingMin: liveRemainingMin
|
|
43
91
|
});
|
|
92
|
+
const floorLikeStatus = resolveFloorLikeStatus(statusKey);
|
|
93
|
+
const headerStatusKey = resolveHeaderStatusKey(statusKey);
|
|
94
|
+
const headerStatusLabel = headerLabelForKey(headerStatusKey);
|
|
44
95
|
const tone = toneMap[statusKey] ?? toneMap.inUse;
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
const mainColor =
|
|
53
|
-
|
|
54
|
-
let
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
let
|
|
61
|
-
let
|
|
62
|
-
let
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
|
|
96
|
+
const endingSoonTone = toneMap.endingSoon;
|
|
97
|
+
const boardingTone = toneMap.boardingSoon;
|
|
98
|
+
const lateTone = toneMap.late ?? boardingTone;
|
|
99
|
+
const expiredTone = toneMap.expired ?? endingSoonTone;
|
|
100
|
+
const cardVariant = floorLikeStatus === "occupied" ? "occupied" : "accent";
|
|
101
|
+
const mainOnOccupied = "#ffffff";
|
|
102
|
+
const subOnOccupied = "rgba(255,255,255,0.88)";
|
|
103
|
+
const mainColor = cardVariant === "occupied" ? mainOnOccupied : idleMain;
|
|
104
|
+
const subColor = cardVariant === "occupied" ? subOnOccupied : idleSub;
|
|
105
|
+
let surfaceAccentColor = availableCardColor;
|
|
106
|
+
if (floorLikeStatus === "reserved") {
|
|
107
|
+
surfaceAccentColor = boardingTone.color;
|
|
108
|
+
}
|
|
109
|
+
const timeRangeLine = (card.currentTime ?? "").trim();
|
|
110
|
+
const contactLine = sanitizeContact(card.currentBooking);
|
|
111
|
+
let primaryEmphasisLine = "";
|
|
112
|
+
let primaryEmphasisColor = mainColor;
|
|
113
|
+
let progress = 0;
|
|
114
|
+
let progressColor = mainOnOccupied;
|
|
115
|
+
let showProgress = false;
|
|
116
|
+
const rmDisplay = Math.max(0, liveRemainingMin);
|
|
117
|
+
const endingWindowMin = Math.max(1, boardingSoonBeforeMin);
|
|
118
|
+
const inEndingSoonWindow = floorLikeStatus === "occupied" && liveRemainingMin >= 0 && liveRemainingMin <= endingWindowMin;
|
|
119
|
+
const showEndingSoonMarquee = floorLikeStatus === "occupied" && inEndingSoonWindow && statusKey !== "expired";
|
|
120
|
+
if (statusKey === "available") {
|
|
121
|
+
primaryEmphasisLine = "";
|
|
122
|
+
primaryEmphasisColor = mainColor;
|
|
123
|
+
} else if (statusKey === "boardingSoon") {
|
|
124
|
+
primaryEmphasisLine = (0, import_locales.getText)("pisell-resource-wall-card-starts-in").replace(
|
|
66
125
|
"{n}",
|
|
67
|
-
|
|
126
|
+
(0, import_venueWallUtils.formatDurationHM)(liveStartsInMin)
|
|
68
127
|
);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
noteBg = (0, import_venueWallUtils.alphaColor)(toneMap.boardingSoon.color, 0.18);
|
|
73
|
-
currentLabel = (0, import_locales.getText)("pisell-resource-wall-card-label-next");
|
|
74
|
-
currentName = card.currentBooking ?? "";
|
|
75
|
-
currentNameColor = toneMap.boardingSoon.color;
|
|
76
|
-
nextNameColor = toneMap.boardingSoon.color;
|
|
77
|
-
progress = (0, import_venueWallUtils.clamp)(
|
|
78
|
-
(boardingSoonBeforeMin - liveStartsInMin) / boardingSoonBeforeMin * 100,
|
|
79
|
-
0,
|
|
80
|
-
100
|
|
81
|
-
);
|
|
82
|
-
progressColor = toneMap.boardingSoon.color;
|
|
83
|
-
rightTag = toneMap.boardingSoon.label;
|
|
84
|
-
rightTagColor = toneMap.boardingSoon.color;
|
|
85
|
-
rightTagBg = (0, import_venueWallUtils.alphaColor)(toneMap.boardingSoon.color, 0.12);
|
|
86
|
-
rightTagBorder = (0, import_venueWallUtils.alphaColor)(toneMap.boardingSoon.color, 0.35);
|
|
87
|
-
}
|
|
88
|
-
if (statusKey === "late") {
|
|
89
|
-
heroText = (0, import_locales.getText)("pisell-resource-wall-card-late").replace(
|
|
128
|
+
primaryEmphasisColor = boardingTone.color;
|
|
129
|
+
} else if (statusKey === "late") {
|
|
130
|
+
primaryEmphasisLine = (0, import_locales.getText)("pisell-resource-wall-card-late").replace(
|
|
90
131
|
"{n}",
|
|
91
|
-
|
|
132
|
+
(0, import_venueWallUtils.formatDurationHM)(Math.max(0, Math.floor(liveLateMin)))
|
|
92
133
|
);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
134
|
+
primaryEmphasisColor = lateTone.color;
|
|
135
|
+
} else if (statusKey === "inUse" || statusKey === "endingSoon" || statusKey === "expired") {
|
|
136
|
+
showProgress = true;
|
|
137
|
+
const sessionEndedNoOvertimeCopy = statusKey === "expired" || liveRemainingMin < 0;
|
|
138
|
+
if (sessionEndedNoOvertimeCopy) {
|
|
139
|
+
progress = 100;
|
|
140
|
+
progressColor = expiredTone.color;
|
|
141
|
+
if (liveRemainingMin < 0) {
|
|
142
|
+
primaryEmphasisLine = (0, import_venueWallUtils.formatVenueWallCountdown)(liveRemainingMin);
|
|
143
|
+
} else {
|
|
144
|
+
primaryEmphasisLine = (0, import_locales.getText)("pisell-resource-wall-countdown-zero-overtime");
|
|
145
|
+
}
|
|
146
|
+
primaryEmphasisColor = expiredTone.color;
|
|
147
|
+
} else {
|
|
148
|
+
progress = resolveInUseProgressPercent({
|
|
149
|
+
card,
|
|
150
|
+
wallNowMs,
|
|
151
|
+
liveRemainingPreciseMin
|
|
152
|
+
});
|
|
153
|
+
progressColor = statusKey === "endingSoon" || inEndingSoonWindow ? endingSoonTone.color : mainOnOccupied;
|
|
154
|
+
primaryEmphasisLine = (0, import_venueWallUtils.formatVenueWallCountdown)(rmDisplay);
|
|
155
|
+
primaryEmphasisColor = statusKey === "endingSoon" || inEndingSoonWindow ? endingSoonTone.color : mainOnOccupied;
|
|
156
|
+
}
|
|
107
157
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
158
|
+
const marqueeText = showEndingSoonMarquee ? (0, import_locales.getText)("pisell-resource-wall-marquee-ending-soon") : "";
|
|
159
|
+
const marqueeColor = showEndingSoonMarquee ? "#ffffff" : cardVariant === "occupied" ? "rgba(255,255,255,0.92)" : endingSoonTone.color;
|
|
160
|
+
const marqueeShellBackground = showEndingSoonMarquee ? primaryEmphasisColor : "transparent";
|
|
161
|
+
let headerStatusColor;
|
|
162
|
+
if (headerStatusKey === "empty") headerStatusColor = availableCardColor;
|
|
163
|
+
else if (headerStatusKey === "reserved") headerStatusColor = boardingTone.color;
|
|
164
|
+
else if (headerStatusKey === "late") headerStatusColor = lateTone.color;
|
|
165
|
+
else if (headerStatusKey === "expired") headerStatusColor = expiredTone.color;
|
|
166
|
+
else headerStatusColor = "#ffffff";
|
|
112
167
|
return {
|
|
113
168
|
statusKey,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
noteBg,
|
|
120
|
-
subColor,
|
|
169
|
+
floorLikeStatus,
|
|
170
|
+
headerStatusKey,
|
|
171
|
+
headerStatusLabel,
|
|
172
|
+
headerStatusColor,
|
|
173
|
+
cardVariant,
|
|
121
174
|
mainColor,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
175
|
+
subColor,
|
|
176
|
+
surfaceAccentColor,
|
|
177
|
+
primaryEmphasisLine,
|
|
178
|
+
primaryEmphasisColor,
|
|
179
|
+
timeRangeLine,
|
|
180
|
+
contactLine,
|
|
181
|
+
showProgress,
|
|
127
182
|
progress,
|
|
128
183
|
progressColor,
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
surfaceAccentColor
|
|
184
|
+
showEndingSoonMarquee,
|
|
185
|
+
marqueeText,
|
|
186
|
+
marqueeColor,
|
|
187
|
+
marqueeShellBackground
|
|
134
188
|
};
|
|
135
189
|
}
|
|
136
190
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -49,6 +49,7 @@ export declare function matchesResourceWallStatusSortField(sortField: string, ke
|
|
|
49
49
|
* asc → 空闲侧在前;desc → 占用侧在前。
|
|
50
50
|
*/
|
|
51
51
|
export declare function venueWallOccupiedSortRank(card: RecordBoardResourceWallCardModel): 0 | 1;
|
|
52
|
+
export declare function formatDurationHM(minAbs: number): string;
|
|
52
53
|
/**
|
|
53
54
|
* 将「剩余/超支分钟数」格式化为跑码条/主副标题用短文案(走 i18n 模板,负值表示 overtime)。
|
|
54
55
|
*/
|