@pisell/private-materials 6.12.311 → 6.12.313
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/meta.js +1 -1
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +1 -1
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +1 -1
- package/es/components/HDLKiosk/slices/customization/Screen/index.less +1 -5
- package/es/components/HDLKiosk/slices/payment/Screen/index.js +88 -39
- package/es/components/HDLKiosk/slices/payment/view.js +5 -2
- package/es/components/bigSale/components/BookingFloatingPanel/useBookingPanelController.js +1 -0
- package/es/components/bigSale/components/ProductList/index.js +1 -0
- package/es/components/bigSale/components/TimeBar/index.js +1 -0
- package/es/components/bigSale/dialog.js +1 -0
- package/es/components/bigSale/hooks/useBigSaleContext.js +1 -0
- package/es/components/bigSale/hooks/useSelectFloorMapResourceForBigSale.js +1 -0
- package/es/components/bigSale/index.js +1 -0
- package/es/components/bigSale/templates/Kiosk/index.js +1 -0
- package/es/components/sharedSecondaryBigSale/SharedSecondaryBigSaleReceiver.js +1 -0
- package/es/index.js +2 -0
- package/es/plus/multiCurrencySettlement/index.js +1 -1
- package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
- package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
- package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
- package/es/plus/pisellReservation/index.js +17 -0
- package/es/plus/saasDevice/devicePasscodes/model.js +4 -4
- package/es/plus/saleDetail/Base.js +1 -0
- package/es/plus/saleDetail/components/Client/hooks/useClientSelectorProps.js +1 -0
- package/es/plus/saleDetail/components/DetailActions/PrintAction.js +1 -0
- package/es/plus/saleDetail/components/DetailActions/index.js +1 -0
- package/es/plus/saleDetail/components/SummaryFinancialSections/index.js +1 -0
- package/es/plus/saleDetail/index.js +1 -0
- package/es/plus/saleDetail/tmpl/B/components/Dish/index.js +1 -0
- package/es/plus/saleDetail/tmpl/B/index.js +1 -0
- package/es/plus/salesSdk/index.js +54 -0
- package/es/plus/salesSdk/utils/addProductWithFlowDebounced.js +1 -1
- package/es/plus/salesSdk/utils/bookingDate.js +1 -1
- package/es/plus/salesSdk/utils/enrichCartLineHolderDisplay.js +1 -1
- package/es/plus/walletPassGallery/components/timelineSection/index.js +4 -4
- package/es/pro/Login2.0/AuthModal.d.ts +1 -1
- package/es/pro/Login2.0/index.d.ts +2 -2
- package/es/pro/Login2.0/shared/types.d.ts +1 -1
- package/lib/components/HDLKiosk/slices/customization/Screen/index.less +1 -5
- package/lib/components/HDLKiosk/slices/payment/Screen/index.js +88 -39
- package/lib/components/HDLKiosk/slices/payment/view.js +5 -2
- package/package.json +3 -3
- package/es/private-materials/lowcode/authmodal/meta.d.ts +0 -1
|
@@ -27,23 +27,52 @@ function ConfirmOrderIcon() {
|
|
|
27
27
|
"aria-hidden": "true"
|
|
28
28
|
}, /* @__PURE__ */ react.default.createElement("path", { d: "m5 12 4 4L19 6" }));
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
function PaymentMethodIcon({ code, type }) {
|
|
32
|
-
const
|
|
30
|
+
/** 名称含 cash 时优先展示纸币,否则按卡支付、现金配置和自定义支付区分。 */
|
|
31
|
+
function PaymentMethodIcon({ code, name, type, eftpos, cash }) {
|
|
32
|
+
const nameContainsCash = /cash/i.test(name);
|
|
33
|
+
const isCash = nameContainsCash || cash;
|
|
34
|
+
const isCard = !nameContainsCash && (eftpos || code === "EFTPOS" || type === "credit-card" || type === "eftpos");
|
|
33
35
|
return /* @__PURE__ */ react.default.createElement("span", {
|
|
34
36
|
className: "hdl-payment-method__icon",
|
|
35
|
-
style: { background: isCard ? "#FE8279" : "#D277E4" },
|
|
37
|
+
style: { background: isCard ? "#FE8279" : isCash ? "#D69B28" : "#D277E4" },
|
|
36
38
|
"aria-hidden": "true"
|
|
37
|
-
}, /* @__PURE__ */ react.default.createElement(_pisell_materials.Iconfont, {
|
|
38
|
-
type:
|
|
39
|
+
}, isCard ? /* @__PURE__ */ react.default.createElement(_pisell_materials.Iconfont, {
|
|
40
|
+
type: "pisell2-credit-card-02",
|
|
39
41
|
style: {
|
|
40
42
|
fontSize: "46px",
|
|
41
43
|
color: "#fff"
|
|
42
44
|
}
|
|
43
|
-
})
|
|
45
|
+
}) : /* @__PURE__ */ react.default.createElement("svg", {
|
|
46
|
+
viewBox: "0 0 32 32",
|
|
47
|
+
width: "48",
|
|
48
|
+
height: "48",
|
|
49
|
+
fill: "none",
|
|
50
|
+
stroke: "#fff",
|
|
51
|
+
strokeWidth: "1.8",
|
|
52
|
+
strokeLinecap: "round",
|
|
53
|
+
strokeLinejoin: "round",
|
|
54
|
+
focusable: "false"
|
|
55
|
+
}, isCash ? /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, /* @__PURE__ */ react.default.createElement("rect", {
|
|
56
|
+
x: "3",
|
|
57
|
+
y: "6",
|
|
58
|
+
width: "26",
|
|
59
|
+
height: "17",
|
|
60
|
+
rx: "3"
|
|
61
|
+
}), /* @__PURE__ */ react.default.createElement("path", { d: "M7 26h18M3 11a5 5 0 0 0 5-5m16 0a5 5 0 0 0 5 5M3 18a5 5 0 0 1 5 5m16 0a5 5 0 0 1 5-5" }), /* @__PURE__ */ react.default.createElement("ellipse", {
|
|
62
|
+
cx: "16",
|
|
63
|
+
cy: "14.5",
|
|
64
|
+
rx: "3.5",
|
|
65
|
+
ry: "4.5"
|
|
66
|
+
})) : /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, /* @__PURE__ */ react.default.createElement("rect", {
|
|
67
|
+
x: "7",
|
|
68
|
+
y: "4",
|
|
69
|
+
width: "14",
|
|
70
|
+
height: "9",
|
|
71
|
+
rx: "2"
|
|
72
|
+
}), /* @__PURE__ */ react.default.createElement("path", { d: "M11 8.5h6M14 13v3M8 16h16l4 7v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-4l4-7ZM4 23h24M13 25.5h6M10 19.5h2m3 0h2m3 0h2" }))));
|
|
44
73
|
}
|
|
45
74
|
function CheckoutScreen({ model, orderBar, send }) {
|
|
46
|
-
var _model$
|
|
75
|
+
var _model$paymentFeedbac2, _model$paymentFeedbac4, _model$paymentFeedbac5;
|
|
47
76
|
const sendRef = (0, react.useRef)(send);
|
|
48
77
|
sendRef.current = send;
|
|
49
78
|
const goBack = (0, react.useCallback)(() => {
|
|
@@ -55,6 +84,47 @@ function CheckoutScreen({ model, orderBar, send }) {
|
|
|
55
84
|
const canReturnToCart = Boolean(orderBar && orderBar.cartLineCount > 0) && model.canLeavePayment;
|
|
56
85
|
const [restartOrderOpen, setRestartOrderOpen] = (0, react.useState)(false);
|
|
57
86
|
const [dismissedFeedbackKey, setDismissedFeedbackKey] = (0, react.useState)();
|
|
87
|
+
const automaticPaymentHandled = (0, react.useRef)(false);
|
|
88
|
+
const confirmNoPayment = (0, react.useCallback)(() => {
|
|
89
|
+
var _model$paymentFeedbac;
|
|
90
|
+
automaticPaymentHandled.current = true;
|
|
91
|
+
setDismissedFeedbackKey((_model$paymentFeedbac = model.paymentFeedback) === null || _model$paymentFeedbac === void 0 ? void 0 : _model$paymentFeedbac.key);
|
|
92
|
+
sendRef.current({
|
|
93
|
+
kind: "command",
|
|
94
|
+
command: "checkout.completeNoPayment"
|
|
95
|
+
});
|
|
96
|
+
}, [(_model$paymentFeedbac2 = model.paymentFeedback) === null || _model$paymentFeedbac2 === void 0 ? void 0 : _model$paymentFeedbac2.key]);
|
|
97
|
+
const selectPayment = (0, react.useCallback)((method) => {
|
|
98
|
+
var _model$paymentFeedbac3;
|
|
99
|
+
automaticPaymentHandled.current = true;
|
|
100
|
+
setDismissedFeedbackKey((_model$paymentFeedbac3 = model.paymentFeedback) === null || _model$paymentFeedbac3 === void 0 ? void 0 : _model$paymentFeedbac3.key);
|
|
101
|
+
sendRef.current({
|
|
102
|
+
kind: "command",
|
|
103
|
+
command: method.eftpos ? "checkout.payEftpos" : "checkout.requestStaffPaymentApproval",
|
|
104
|
+
input: { paymentMethodId: method.id }
|
|
105
|
+
});
|
|
106
|
+
}, [(_model$paymentFeedbac4 = model.paymentFeedback) === null || _model$paymentFeedbac4 === void 0 ? void 0 : _model$paymentFeedbac4.key]);
|
|
107
|
+
(0, react.useEffect)(() => {
|
|
108
|
+
if (model.paymentFeedback) automaticPaymentHandled.current = true;
|
|
109
|
+
if (automaticPaymentHandled.current || model.busy || model.resetting || model.paymentResult || model.paymentResultPending || restartOrderOpen || !model.totalText) return;
|
|
110
|
+
let startPayment;
|
|
111
|
+
if (model.noPaymentRequired) {
|
|
112
|
+
if (model.canCompleteNoPayment) startPayment = confirmNoPayment;
|
|
113
|
+
} else if (model.canSelectPayment && !model.paymentMethodsLoading && !model.paymentMethodsErrorReference && model.paymentMethods.length === 1) startPayment = () => selectPayment(model.paymentMethods[0]);
|
|
114
|
+
if (!startPayment) return;
|
|
115
|
+
let cancelled = false;
|
|
116
|
+
Promise.resolve().then(() => {
|
|
117
|
+
if (!cancelled && !automaticPaymentHandled.current) startPayment();
|
|
118
|
+
});
|
|
119
|
+
return () => {
|
|
120
|
+
cancelled = true;
|
|
121
|
+
};
|
|
122
|
+
}, [
|
|
123
|
+
model,
|
|
124
|
+
restartOrderOpen,
|
|
125
|
+
confirmNoPayment,
|
|
126
|
+
selectPayment
|
|
127
|
+
]);
|
|
58
128
|
const [returnCountdown, setReturnCountdown] = (0, react.useState)(10);
|
|
59
129
|
const resetOrder = (0, react.useCallback)((source) => sendRef.current({
|
|
60
130
|
kind: "session",
|
|
@@ -150,11 +220,7 @@ function CheckoutScreen({ model, orderBar, send }) {
|
|
|
150
220
|
role: "status"
|
|
151
221
|
}, /* @__PURE__ */ react.default.createElement("span", { className: "hdl-operation-overlay__spinner" }), /* @__PURE__ */ react.default.createElement("strong", null, _pisell_utils.locales.getText("pisell2.hdl-kiosk.payment-processing"))));
|
|
152
222
|
const paymentDisabled = !model.canSelectPayment || !model.totalText;
|
|
153
|
-
const visibleFeedback = ((_model$
|
|
154
|
-
const dismissCurrentFeedback = () => {
|
|
155
|
-
var _model$paymentFeedbac2;
|
|
156
|
-
return setDismissedFeedbackKey((_model$paymentFeedbac2 = model.paymentFeedback) === null || _model$paymentFeedbac2 === void 0 ? void 0 : _model$paymentFeedbac2.key);
|
|
157
|
-
};
|
|
223
|
+
const visibleFeedback = ((_model$paymentFeedbac5 = model.paymentFeedback) === null || _model$paymentFeedbac5 === void 0 ? void 0 : _model$paymentFeedbac5.key) === dismissedFeedbackKey ? void 0 : model.paymentFeedback;
|
|
158
224
|
return /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, /* @__PURE__ */ react.default.createElement("section", {
|
|
159
225
|
className: "hdl-checkout-screen",
|
|
160
226
|
"aria-labelledby": "hdl-payment-method-title"
|
|
@@ -169,13 +235,7 @@ function CheckoutScreen({ model, orderBar, send }) {
|
|
|
169
235
|
className: "hdl-payment-method hdl-no-payment-confirm",
|
|
170
236
|
"aria-busy": model.busy,
|
|
171
237
|
disabled: !model.canCompleteNoPayment,
|
|
172
|
-
onClick:
|
|
173
|
-
dismissCurrentFeedback();
|
|
174
|
-
send({
|
|
175
|
-
kind: "command",
|
|
176
|
-
command: "checkout.completeNoPayment"
|
|
177
|
-
});
|
|
178
|
-
}
|
|
238
|
+
onClick: confirmNoPayment
|
|
179
239
|
}, /* @__PURE__ */ react.default.createElement("span", { className: "hdl-no-payment-confirm__icon" }, /* @__PURE__ */ react.default.createElement(ConfirmOrderIcon, null)), /* @__PURE__ */ react.default.createElement("strong", null, _pisell_utils.locales.getText(model.busy ? "pisell2.hdl-kiosk.no-payment-confirming" : "pisell2.hdl-kiosk.no-payment-confirm")), /* @__PURE__ */ react.default.createElement(NextIcon, null)) : /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, model.paymentMethodsLoading ? /* @__PURE__ */ react.default.createElement("p", {
|
|
180
240
|
className: "hdl-payment-methods__notice",
|
|
181
241
|
role: "status"
|
|
@@ -184,32 +244,21 @@ function CheckoutScreen({ model, orderBar, send }) {
|
|
|
184
244
|
role: model.paymentMethodsErrorReference ? "alert" : "status"
|
|
185
245
|
}, _pisell_utils.locales.getText("pisell2.hdl-kiosk.payment-methods-unavailable")) : null, model.paymentMethods.map((method) => {
|
|
186
246
|
const eftpos = method.eftpos;
|
|
247
|
+
const displayName = method.name.replace(/-Linkly/g, "");
|
|
187
248
|
return /* @__PURE__ */ react.default.createElement("button", {
|
|
188
249
|
key: method.id,
|
|
189
250
|
type: "button",
|
|
190
251
|
className: `hdl-payment-method hdl-payment-method--${eftpos ? "card" : "cash"}`,
|
|
191
|
-
"aria-label":
|
|
252
|
+
"aria-label": displayName,
|
|
192
253
|
disabled: paymentDisabled,
|
|
193
|
-
onClick: () =>
|
|
194
|
-
dismissCurrentFeedback();
|
|
195
|
-
if (eftpos) {
|
|
196
|
-
send({
|
|
197
|
-
kind: "command",
|
|
198
|
-
command: "checkout.payEftpos",
|
|
199
|
-
input: { paymentMethodId: method.id }
|
|
200
|
-
});
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
send({
|
|
204
|
-
kind: "command",
|
|
205
|
-
command: "checkout.requestStaffPaymentApproval",
|
|
206
|
-
input: { paymentMethodId: method.id }
|
|
207
|
-
});
|
|
208
|
-
}
|
|
254
|
+
onClick: () => selectPayment(method)
|
|
209
255
|
}, /* @__PURE__ */ react.default.createElement(PaymentMethodIcon, {
|
|
210
256
|
code: method.code,
|
|
211
|
-
|
|
212
|
-
|
|
257
|
+
name: method.name,
|
|
258
|
+
type: method.type,
|
|
259
|
+
eftpos: method.eftpos,
|
|
260
|
+
cash: method.cash
|
|
261
|
+
}), /* @__PURE__ */ react.default.createElement("span", null, /* @__PURE__ */ react.default.createElement("strong", null, displayName)), /* @__PURE__ */ react.default.createElement(NextIcon, null));
|
|
213
262
|
}))), /* @__PURE__ */ react.default.createElement("div", { className: "hdl-payment-restart-section" }, /* @__PURE__ */ react.default.createElement(require_index$3.RestartOrderButton, {
|
|
214
263
|
disabled: !model.canRestartOrder,
|
|
215
264
|
title: model.restartOrderBlockedReason,
|
|
@@ -73,10 +73,13 @@ function createCheckoutScreenModel(snapshot, sales, payment, completed = false,
|
|
|
73
73
|
busy: snapshot.status === "running",
|
|
74
74
|
noPaymentRequired,
|
|
75
75
|
canCompleteNoPayment: noPaymentRequired && interactionAvailable,
|
|
76
|
-
paymentMethods: payment.methods
|
|
76
|
+
paymentMethods: payment.methods.map((method) => {
|
|
77
|
+
var _method$metadata, _method$metadata2;
|
|
78
|
+
return require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, method), {}, { cash: method.type === "custom" && (((_method$metadata = method.metadata) === null || _method$metadata === void 0 ? void 0 : _method$metadata.order_open_cash_drawer) === 1 || ((_method$metadata2 = method.metadata) === null || _method$metadata2 === void 0 ? void 0 : _method$metadata2.order_open_cash_drawer) === "1") });
|
|
79
|
+
}),
|
|
77
80
|
paymentMethodsLoading: payment.loading,
|
|
78
81
|
paymentMethodsErrorReference: payment.errorReference,
|
|
79
|
-
canSelectPayment: interactionAvailable,
|
|
82
|
+
canSelectPayment: interactionAvailable && sales.summary.status === "ready",
|
|
80
83
|
canLeavePayment: interactionAvailable,
|
|
81
84
|
canRestartOrder: interactionAvailable,
|
|
82
85
|
restartOrderBlockedReason: paymentSafeToChange ? void 0 : _pisell_utils.locales.getText("pisell2.hdl-kiosk.restart-order-payment-blocked"),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisell/private-materials",
|
|
3
|
-
"version": "6.12.
|
|
3
|
+
"version": "6.12.313",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"module": "./es/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"use-sync-external-store": "^1.6.0",
|
|
74
74
|
"@pisell/pi-payment-sdk": "0.0.3",
|
|
75
75
|
"@pisell/utils": "3.0.7",
|
|
76
|
-
"@pisell/materials": "6.12.79",
|
|
77
76
|
"@pisell/date-picker": "3.0.12",
|
|
78
|
-
"@pisell/icon": "0.0.11"
|
|
77
|
+
"@pisell/icon": "0.0.11",
|
|
78
|
+
"@pisell/materials": "6.12.79"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"react": "^18.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|