@pisell/private-materials 6.2.35 → 6.2.37
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 +13 -29
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +6 -6
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +8 -8
- package/es/components/appointmentBooking/components/Content/index.js +1 -1
- package/es/components/appointmentBooking/components/Content/index.less +3 -3
- package/es/components/appointmentBooking/components/Services/index.js +2 -2
- package/es/components/appointmentBooking/index.js +8 -2
- package/es/components/booking/components/voucher/index.js +5 -0
- package/es/components/booking/deposit/ClientItem/index.js +1 -1
- package/es/components/booking/deposit/DepositItem/index.js +1 -1
- package/es/components/booking/forms/single/RenderValueById.d.ts +1 -0
- package/es/components/booking/forms/single/RenderValueById.js +68 -17
- package/es/components/booking/forms/single/index.less +67 -1
- package/es/components/booking/hooks/useQuotation.js +1 -1
- package/es/components/booking/info/clientVariant/utils.d.ts +2 -0
- package/es/components/booking/info/clientVariant/utils.js +7 -0
- package/es/components/booking/info/clientVariant/vertical/index.js +3 -2
- package/es/components/booking/info2/service/addService/utils.js +2 -1
- package/es/components/booking/info2/service/addTimeModal/index.js +0 -1
- package/es/components/booking/info2/service/editService/index.js +37 -29
- package/es/components/booking/info2/utilsByBooking.js +4 -4
- package/es/components/booking/locales.d.ts +3 -0
- package/es/components/booking/locales.js +6 -3
- package/es/components/booking/materiels/duration/index.js +1 -1
- package/es/components/booking/materiels/startTime/index.d.ts +1 -0
- package/es/components/booking/materiels/startTime/index.js +1 -1
- package/es/components/booking/utils.js +3 -3
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/store/index.d.ts +3 -3
- package/es/components/eventBooking/index.js +8 -1
- package/es/components/productSelect/components/TabProduct/index.js +7 -2
- package/es/components/schedules/utils.d.ts +1 -1
- package/es/components/shoppingCart/components/Cart/Product.js +2 -1
- package/es/components/ticketBooking/components/addServiceVariant/addService.js +172 -91
- package/es/components/ticketBooking/components/timeBar/index.js +3 -3
- package/es/components/ticketBooking/utils/index.d.ts +3 -1
- package/es/components/ticketBooking/utils/index.js +18 -2
- package/es/hooks/useWindowSize.js +8 -1
- package/es/plus/productSelect/CategoryTabs/CategorySkeleton.d.ts +10 -0
- package/es/plus/productSelect/CategoryTabs/CategorySkeleton.js +29 -0
- package/es/plus/productSelect/CategoryTabs/CategorySkeleton.less +30 -0
- package/es/plus/productSelect/CategoryTabs/index.d.ts +18 -0
- package/es/plus/productSelect/CategoryTabs/index.js +171 -0
- package/es/plus/productSelect/ProductCard/ProductCardSkeleton.d.ts +10 -0
- package/es/plus/productSelect/ProductCard/ProductCardSkeleton.js +37 -0
- package/es/plus/productSelect/ProductCard/ProductCardSkeleton.less +81 -0
- package/es/plus/productSelect/ProductCard/index.d.ts +45 -0
- package/es/plus/productSelect/ProductCard/index.js +170 -0
- package/es/plus/productSelect/ProductCard/index.less +270 -0
- package/es/plus/productSelect/ProductList/gridComponents.d.ts +44 -0
- package/es/plus/productSelect/ProductList/gridComponents.js +149 -0
- package/es/plus/productSelect/ProductList/index.d.ts +22 -0
- package/es/plus/productSelect/ProductList/index.js +72 -0
- package/es/plus/productSelect/ProductList/index.less +0 -0
- package/es/plus/productSelect/components/IntersectionObserver.d.ts +42 -0
- package/es/plus/productSelect/components/IntersectionObserver.js +276 -0
- package/es/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
- package/es/plus/productSelect/components/TabsStructure/TabsStructure.js +357 -0
- package/es/plus/productSelect/components/TabsStructure/TabsStructure.less +224 -0
- package/es/plus/productSelect/components/TabsStructure/hooks.d.ts +22 -0
- package/es/plus/productSelect/components/TabsStructure/hooks.js +243 -0
- package/es/plus/productSelect/components/TabsStructure/index.d.ts +5 -0
- package/es/plus/productSelect/components/TabsStructure/index.js +13 -0
- package/es/plus/productSelect/components/TabsStructure/styles.d.ts +47 -0
- package/es/plus/productSelect/components/TabsStructure/styles.js +87 -0
- package/es/plus/productSelect/components/TabsStructure/types.d.ts +105 -0
- package/es/plus/productSelect/components/TabsStructure/types.js +1 -0
- package/es/plus/productSelect/components/TabsStructure/utils.d.ts +12 -0
- package/es/plus/productSelect/components/TabsStructure/utils.js +56 -0
- package/es/plus/productSelect/components/pisellPriceText/index.d.ts +11 -0
- package/es/plus/productSelect/components/pisellPriceText/index.js +43 -0
- package/es/plus/productSelect/hooks/useToken.d.ts +18 -0
- package/es/plus/productSelect/hooks/useToken.js +34 -0
- package/es/plus/productSelect/index.d.ts +31 -0
- package/es/plus/productSelect/index.js +270 -0
- package/es/plus/productSelect/index.less +56 -0
- package/es/plus/productSelect/locales.d.ts +18 -0
- package/es/plus/productSelect/locales.js +17 -0
- package/es/plus/productSelect/theme/token.d.ts +17 -0
- package/es/plus/productSelect/theme/token.js +19 -0
- package/es/plus/productSelect/utils.d.ts +39 -0
- package/es/plus/productSelect/utils.js +162 -0
- package/es/pro/pisellNumberSelector/index.js +3 -3
- package/es/pro/pisellPhoneKeyboard/index.js +1 -1
- package/es/utils/index.d.ts +1 -1
- package/lib/components/appointmentBooking/components/Content/index.js +1 -1
- package/lib/components/appointmentBooking/components/Content/index.less +3 -3
- package/lib/components/appointmentBooking/components/Services/index.js +2 -2
- package/lib/components/appointmentBooking/index.js +6 -1
- package/lib/components/booking/components/voucher/index.js +5 -0
- package/lib/components/booking/deposit/ClientItem/index.js +1 -1
- package/lib/components/booking/deposit/DepositItem/index.js +1 -1
- package/lib/components/booking/forms/single/RenderValueById.d.ts +1 -0
- package/lib/components/booking/forms/single/RenderValueById.js +37 -9
- package/lib/components/booking/forms/single/index.less +67 -1
- package/lib/components/booking/hooks/useQuotation.js +1 -1
- package/lib/components/booking/info/clientVariant/utils.d.ts +2 -0
- package/lib/components/booking/info/clientVariant/utils.js +13 -2
- package/lib/components/booking/info/clientVariant/vertical/index.js +7 -6
- package/lib/components/booking/info2/service/addService/utils.js +3 -3
- package/lib/components/booking/info2/service/addTimeModal/index.js +0 -1
- package/lib/components/booking/info2/service/editService/index.js +22 -12
- package/lib/components/booking/info2/utilsByBooking.js +7 -8
- package/lib/components/booking/locales.d.ts +3 -0
- package/lib/components/booking/locales.js +6 -3
- package/lib/components/booking/materiels/duration/index.js +1 -1
- package/lib/components/booking/materiels/startTime/index.d.ts +1 -0
- package/lib/components/booking/materiels/startTime/index.js +1 -1
- package/lib/components/booking/utils.js +3 -3
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/store/index.d.ts +3 -3
- package/lib/components/eventBooking/index.js +6 -1
- package/lib/components/productSelect/components/TabProduct/index.js +7 -1
- package/lib/components/schedules/utils.d.ts +1 -1
- package/lib/components/shoppingCart/components/Cart/Product.js +7 -4
- package/lib/components/ticketBooking/components/addServiceVariant/addService.js +87 -14
- package/lib/components/ticketBooking/components/timeBar/index.js +89 -70
- package/lib/components/ticketBooking/utils/index.d.ts +3 -1
- package/lib/components/ticketBooking/utils/index.js +21 -0
- package/lib/hooks/useWindowSize.js +6 -1
- package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.d.ts +10 -0
- package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.js +62 -0
- package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.less +30 -0
- package/lib/plus/productSelect/CategoryTabs/index.d.ts +18 -0
- package/lib/plus/productSelect/CategoryTabs/index.js +183 -0
- package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.d.ts +10 -0
- package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.js +58 -0
- package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.less +81 -0
- package/lib/plus/productSelect/ProductCard/index.d.ts +45 -0
- package/lib/plus/productSelect/ProductCard/index.js +184 -0
- package/lib/plus/productSelect/ProductCard/index.less +270 -0
- package/lib/plus/productSelect/ProductList/gridComponents.d.ts +44 -0
- package/lib/plus/productSelect/ProductList/gridComponents.js +148 -0
- package/lib/plus/productSelect/ProductList/index.d.ts +22 -0
- package/lib/plus/productSelect/ProductList/index.js +86 -0
- package/lib/plus/productSelect/ProductList/index.less +0 -0
- package/lib/plus/productSelect/components/IntersectionObserver.d.ts +42 -0
- package/lib/plus/productSelect/components/IntersectionObserver.js +269 -0
- package/lib/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
- package/lib/plus/productSelect/components/TabsStructure/TabsStructure.js +393 -0
- package/lib/plus/productSelect/components/TabsStructure/TabsStructure.less +224 -0
- package/lib/plus/productSelect/components/TabsStructure/hooks.d.ts +22 -0
- package/lib/plus/productSelect/components/TabsStructure/hooks.js +209 -0
- package/lib/plus/productSelect/components/TabsStructure/index.d.ts +5 -0
- package/lib/plus/productSelect/components/TabsStructure/index.js +92 -0
- package/lib/plus/productSelect/components/TabsStructure/styles.d.ts +47 -0
- package/lib/plus/productSelect/components/TabsStructure/styles.js +122 -0
- package/lib/plus/productSelect/components/TabsStructure/types.d.ts +105 -0
- package/lib/plus/productSelect/components/TabsStructure/types.js +17 -0
- package/lib/plus/productSelect/components/TabsStructure/utils.d.ts +12 -0
- package/lib/plus/productSelect/components/TabsStructure/utils.js +72 -0
- package/lib/plus/productSelect/components/pisellPriceText/index.d.ts +11 -0
- package/lib/plus/productSelect/components/pisellPriceText/index.js +72 -0
- package/lib/plus/productSelect/hooks/useToken.d.ts +18 -0
- package/lib/plus/productSelect/hooks/useToken.js +50 -0
- package/lib/plus/productSelect/index.d.ts +31 -0
- package/lib/plus/productSelect/index.js +299 -0
- package/lib/plus/productSelect/index.less +56 -0
- package/lib/plus/productSelect/locales.d.ts +18 -0
- package/lib/plus/productSelect/locales.js +41 -0
- package/lib/plus/productSelect/theme/token.d.ts +17 -0
- package/lib/plus/productSelect/theme/token.js +47 -0
- package/lib/plus/productSelect/utils.d.ts +39 -0
- package/lib/plus/productSelect/utils.js +138 -0
- package/lib/pro/pisellNumberSelector/index.js +3 -3
- package/lib/pro/pisellPhoneKeyboard/index.js +1 -1
- package/lib/utils/index.d.ts +1 -1
- package/package.json +4 -4
@@ -78,86 +78,105 @@ var TimeBar = (props) => {
|
|
78
78
|
});
|
79
79
|
return (0, import_react.useMemo)(() => {
|
80
80
|
var _a2, _b2, _c, _d;
|
81
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
82
|
-
import_antd.Button,
|
83
|
-
{
|
84
|
-
icon: /* @__PURE__ */ import_react.default.createElement(import_icons.LeftOutlined, null),
|
85
|
-
onClick: _onClickPre,
|
86
|
-
size: "large"
|
87
|
-
}
|
88
|
-
), /* @__PURE__ */ import_react.default.createElement(
|
89
|
-
import_antd.Button,
|
90
|
-
{
|
91
|
-
onClick: _onClickToday,
|
92
|
-
size: "large",
|
93
|
-
style: state.intervalSetTime ? { background: "#000", color: "#fff" } : void 0
|
94
|
-
},
|
95
|
-
import_utils.locales.getText("pisell2.ticket-booking.today")
|
96
|
-
), /* @__PURE__ */ import_react.default.createElement(
|
81
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
97
82
|
"div",
|
98
83
|
{
|
99
|
-
className:
|
100
|
-
|
101
|
-
}),
|
102
|
-
style: { width: 200, flexShrink: 0 }
|
84
|
+
className: "pisell-ticket-booking-time-bar",
|
85
|
+
style: { backgroundColor: state.isDateChange ? "#F79009" : "" }
|
103
86
|
},
|
104
87
|
/* @__PURE__ */ import_react.default.createElement(
|
105
|
-
|
88
|
+
import_antd.Button,
|
89
|
+
{
|
90
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_icons.LeftOutlined, null),
|
91
|
+
onClick: _onClickPre,
|
92
|
+
size: "large"
|
93
|
+
}
|
94
|
+
),
|
95
|
+
/* @__PURE__ */ import_react.default.createElement(
|
96
|
+
import_antd.Button,
|
106
97
|
{
|
107
|
-
|
108
|
-
value: (_b2 = (_a2 = state == null ? void 0 : state.modalState) == null ? void 0 : _a2.date) == null ? void 0 : _b2.value,
|
109
|
-
format: locale === "en" ? "dddd, DD MMM YYYY" : "YYYY年MM月DD日",
|
110
|
-
onChange: props == null ? void 0 : props.onDateChange,
|
98
|
+
onClick: _onClickToday,
|
111
99
|
size: "large",
|
112
|
-
style: {
|
100
|
+
style: state.intervalSetTime ? { background: "#000", color: "#fff" } : void 0
|
101
|
+
},
|
102
|
+
import_utils.locales.getText("pisell2.ticket-booking.today")
|
103
|
+
),
|
104
|
+
/* @__PURE__ */ import_react.default.createElement(
|
105
|
+
"div",
|
106
|
+
{
|
107
|
+
className: (0, import_classnames.default)({
|
108
|
+
"booking-page-date-picker-select": state.isDateChange
|
109
|
+
}),
|
110
|
+
style: { width: 200, flexShrink: 0 }
|
111
|
+
},
|
112
|
+
/* @__PURE__ */ import_react.default.createElement(
|
113
|
+
import_materials.DatePicker,
|
114
|
+
{
|
115
|
+
inputReadOnly: true,
|
116
|
+
value: (_b2 = (_a2 = state == null ? void 0 : state.modalState) == null ? void 0 : _a2.date) == null ? void 0 : _b2.value,
|
117
|
+
format: locale === "en" ? "dddd, DD MMM YYYY" : "YYYY年MM月DD日",
|
118
|
+
onChange: props == null ? void 0 : props.onDateChange,
|
119
|
+
size: "large",
|
120
|
+
style: { width: "100%" }
|
121
|
+
}
|
122
|
+
)
|
123
|
+
),
|
124
|
+
/* @__PURE__ */ import_react.default.createElement(
|
125
|
+
import_antd.Button,
|
126
|
+
{
|
127
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_icons.RightOutlined, null),
|
128
|
+
onClick: _onClickNext,
|
129
|
+
size: "large"
|
113
130
|
}
|
114
|
-
)
|
115
|
-
), /* @__PURE__ */ import_react.default.createElement(
|
116
|
-
import_antd.Button,
|
117
|
-
{
|
118
|
-
icon: /* @__PURE__ */ import_react.default.createElement(import_icons.RightOutlined, null),
|
119
|
-
onClick: _onClickNext,
|
120
|
-
size: "large"
|
121
|
-
}
|
122
|
-
), /* @__PURE__ */ import_react.default.createElement(
|
123
|
-
"div",
|
124
|
-
{
|
125
|
-
className: (0, import_classnames.default)({
|
126
|
-
"booking-page-date-picker-select": state.isTimeChange
|
127
|
-
})
|
128
|
-
},
|
131
|
+
),
|
129
132
|
/* @__PURE__ */ import_react.default.createElement(
|
130
|
-
|
133
|
+
"div",
|
134
|
+
{
|
135
|
+
className: (0, import_classnames.default)({
|
136
|
+
"booking-page-date-picker-select": state.isTimeChange
|
137
|
+
})
|
138
|
+
},
|
139
|
+
/* @__PURE__ */ import_react.default.createElement(
|
140
|
+
import_materials.SelectTime,
|
141
|
+
{
|
142
|
+
value: (_d = (_c = state == null ? void 0 : state.modalState) == null ? void 0 : _c.date) == null ? void 0 : _d.value.format("HH:mm"),
|
143
|
+
onChange: _onDateTimeChange,
|
144
|
+
popoverProps: {
|
145
|
+
style: { zoom: 0.8 }
|
146
|
+
},
|
147
|
+
timePickerProps: {},
|
148
|
+
timeProps: {},
|
149
|
+
slice: 5
|
150
|
+
}
|
151
|
+
)
|
152
|
+
),
|
153
|
+
!state.bookingId && /* @__PURE__ */ import_react.default.createElement(
|
154
|
+
import_antd.Button,
|
131
155
|
{
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
156
|
+
onClick: _onClickNow,
|
157
|
+
size: "large",
|
158
|
+
style: state.intervalSetTime ? { background: "#000", color: "#fff" } : void 0
|
159
|
+
},
|
160
|
+
import_utils.locales.getText("pisell2.ticket-booking.now")
|
161
|
+
),
|
162
|
+
!!state.bookingId && /* @__PURE__ */ import_react.default.createElement(
|
163
|
+
import_antd.Button,
|
164
|
+
{
|
165
|
+
onClick: () => {
|
166
|
+
onCreateClick();
|
136
167
|
},
|
137
|
-
|
138
|
-
|
139
|
-
slice: 5
|
140
|
-
}
|
141
|
-
)
|
142
|
-
), !state.bookingId && /* @__PURE__ */ import_react.default.createElement(
|
143
|
-
import_antd.Button,
|
144
|
-
{
|
145
|
-
onClick: _onClickNow,
|
146
|
-
size: "large",
|
147
|
-
style: state.intervalSetTime ? { background: "#000", color: "#fff" } : void 0
|
148
|
-
},
|
149
|
-
import_utils.locales.getText("pisell2.ticket-booking.now")
|
150
|
-
), !!state.bookingId && /* @__PURE__ */ import_react.default.createElement(
|
151
|
-
import_antd.Button,
|
152
|
-
{
|
153
|
-
onClick: () => {
|
154
|
-
onCreateClick();
|
168
|
+
size: "large",
|
169
|
+
type: "primary"
|
155
170
|
},
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
))
|
161
|
-
|
171
|
+
import_utils.locales.getText("pisell2.ticket-booking.create-new")
|
172
|
+
)
|
173
|
+
);
|
174
|
+
}, [
|
175
|
+
(_b = (_a = state.modalState) == null ? void 0 : _a.date) == null ? void 0 : _b.value,
|
176
|
+
state.intervalSetTime,
|
177
|
+
state.isTimeChange,
|
178
|
+
state.isDateChange,
|
179
|
+
locale
|
180
|
+
]);
|
162
181
|
};
|
163
182
|
var timeBar_default = TimeBar;
|
@@ -14,6 +14,7 @@ export declare const restoreProductOtherData: (data: any) => {
|
|
14
14
|
product_variant_id: any;
|
15
15
|
quantity: number;
|
16
16
|
} | undefined;
|
17
|
+
export declare const isSameProduct: (a: any, b: any) => boolean;
|
17
18
|
export declare const addService: (list: any[], addItem: any, state: any) => {
|
18
19
|
list: any[];
|
19
20
|
quantity: any;
|
@@ -40,7 +41,7 @@ declare type ScanData = {
|
|
40
41
|
};
|
41
42
|
};
|
42
43
|
export declare const formatScanCustomer: (data: ScanData) => {
|
43
|
-
searchType: "customer" | "
|
44
|
+
searchType: "customer" | "product" | "wallet" | "walletPass" | "local_product";
|
44
45
|
data: any;
|
45
46
|
scanCode: string;
|
46
47
|
} | null;
|
@@ -57,4 +58,5 @@ export declare const formatScanGlobal: (data: ScanData) => {
|
|
57
58
|
data: any;
|
58
59
|
scanCode: string;
|
59
60
|
} | null | undefined;
|
61
|
+
export declare const createSimpleCacheItem: (item: any, e: any, state: any) => any;
|
60
62
|
export {};
|
@@ -31,6 +31,7 @@ var utils_exports = {};
|
|
31
31
|
__export(utils_exports, {
|
32
32
|
addService: () => addService,
|
33
33
|
addServiceScroll: () => addServiceScroll,
|
34
|
+
createSimpleCacheItem: () => createSimpleCacheItem,
|
34
35
|
formatBookingList: () => formatBookingList,
|
35
36
|
formatDateToStr: () => formatDateToStr,
|
36
37
|
formatHolder: () => formatHolder,
|
@@ -45,6 +46,7 @@ __export(utils_exports, {
|
|
45
46
|
getIsParallelResourcesBooking: () => getIsParallelResourcesBooking,
|
46
47
|
getIsShowNumber: () => getIsShowNumber,
|
47
48
|
getNextTimeSlice: () => getNextTimeSlice,
|
49
|
+
isSameProduct: () => isSameProduct,
|
48
50
|
restoreProductOtherData: () => restoreProductOtherData
|
49
51
|
});
|
50
52
|
module.exports = __toCommonJS(utils_exports);
|
@@ -279,10 +281,28 @@ var formatScanGlobal = (data) => {
|
|
279
281
|
return { searchType, data: resultData, scanCode };
|
280
282
|
}
|
281
283
|
};
|
284
|
+
var createSimpleCacheItem = (item, e, state) => {
|
285
|
+
let cacheItem = {
|
286
|
+
...item,
|
287
|
+
product_id: item.id,
|
288
|
+
_id: (0, import_utils2.getUniqueId)(),
|
289
|
+
_key: e.key,
|
290
|
+
_extend: {
|
291
|
+
start_date: state.date.value,
|
292
|
+
quantity: (e == null ? void 0 : e.quantity) || 1,
|
293
|
+
price: item.price,
|
294
|
+
product_name: item.title,
|
295
|
+
other: e
|
296
|
+
},
|
297
|
+
new: 1
|
298
|
+
};
|
299
|
+
return cacheItem;
|
300
|
+
};
|
282
301
|
// Annotate the CommonJS export names for ESM import in node:
|
283
302
|
0 && (module.exports = {
|
284
303
|
addService,
|
285
304
|
addServiceScroll,
|
305
|
+
createSimpleCacheItem,
|
286
306
|
formatBookingList,
|
287
307
|
formatDateToStr,
|
288
308
|
formatHolder,
|
@@ -297,5 +317,6 @@ var formatScanGlobal = (data) => {
|
|
297
317
|
getIsParallelResourcesBooking,
|
298
318
|
getIsShowNumber,
|
299
319
|
getNextTimeSlice,
|
320
|
+
isSameProduct,
|
300
321
|
restoreProductOtherData
|
301
322
|
});
|
@@ -30,7 +30,12 @@ var useWindowSize = (options = {}) => {
|
|
30
30
|
(0, import_react.useEffect)(() => {
|
31
31
|
let timeoutId;
|
32
32
|
const setRealVH = () => {
|
33
|
-
|
33
|
+
let height = window.innerHeight;
|
34
|
+
const urlParams = new URLSearchParams(window.location.search);
|
35
|
+
if (urlParams.has("formTabbar")) {
|
36
|
+
height = height - 54;
|
37
|
+
}
|
38
|
+
const vh = height * 0.01;
|
34
39
|
document.documentElement.style.setProperty("--vh", `${vh}px`);
|
35
40
|
};
|
36
41
|
const debouncedHandleResize = () => {
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import './CategorySkeleton.less';
|
3
|
+
interface CategorySkeletonProps {
|
4
|
+
className?: string;
|
5
|
+
style?: React.CSSProperties;
|
6
|
+
tabCount?: number;
|
7
|
+
animated?: boolean;
|
8
|
+
}
|
9
|
+
declare const CategorySkeleton: React.FC<CategorySkeletonProps>;
|
10
|
+
export default CategorySkeleton;
|
@@ -0,0 +1,62 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7
|
+
var __export = (target, all) => {
|
8
|
+
for (var name in all)
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
10
|
+
};
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
13
|
+
for (let key of __getOwnPropNames(from))
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
|
+
}
|
17
|
+
return to;
|
18
|
+
};
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
25
|
+
mod
|
26
|
+
));
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
28
|
+
|
29
|
+
// src/plus/productSelect/CategoryTabs/CategorySkeleton.tsx
|
30
|
+
var CategorySkeleton_exports = {};
|
31
|
+
__export(CategorySkeleton_exports, {
|
32
|
+
default: () => CategorySkeleton_default
|
33
|
+
});
|
34
|
+
module.exports = __toCommonJS(CategorySkeleton_exports);
|
35
|
+
var import_react = __toESM(require("react"));
|
36
|
+
var import_classnames = __toESM(require("classnames"));
|
37
|
+
var import_CategorySkeleton = require("./CategorySkeleton.less");
|
38
|
+
var CategorySkeleton = ({
|
39
|
+
className,
|
40
|
+
style,
|
41
|
+
tabCount = 5,
|
42
|
+
animated = true
|
43
|
+
}) => {
|
44
|
+
const containerClass = (0, import_classnames.default)(
|
45
|
+
"category-skeleton",
|
46
|
+
{
|
47
|
+
"category-skeleton--animated": animated
|
48
|
+
},
|
49
|
+
className
|
50
|
+
);
|
51
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { className: containerClass, style }, Array.from({ length: tabCount }, (_, index) => /* @__PURE__ */ import_react.default.createElement(
|
52
|
+
"div",
|
53
|
+
{
|
54
|
+
key: index,
|
55
|
+
className: "category-skeleton__tab",
|
56
|
+
style: {
|
57
|
+
width: `${Math.floor(Math.random() * 40) + 80}px`
|
58
|
+
}
|
59
|
+
}
|
60
|
+
)));
|
61
|
+
};
|
62
|
+
var CategorySkeleton_default = CategorySkeleton;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
.category-skeleton {
|
2
|
+
display: flex;
|
3
|
+
align-items: center;
|
4
|
+
gap: 8px;
|
5
|
+
padding: 16px 12px;
|
6
|
+
|
7
|
+
&__tab {
|
8
|
+
height: 32px;
|
9
|
+
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
10
|
+
background-size: 200% 100%;
|
11
|
+
border-radius: 20px;
|
12
|
+
flex-shrink: 0;
|
13
|
+
height: 40px;
|
14
|
+
}
|
15
|
+
|
16
|
+
&--animated {
|
17
|
+
.category-skeleton__tab {
|
18
|
+
animation: skeleton-loading 1.5s ease-in-out infinite;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
@keyframes skeleton-loading {
|
24
|
+
0% {
|
25
|
+
background-position: 200% 0;
|
26
|
+
}
|
27
|
+
100% {
|
28
|
+
background-position: -200% 0;
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import '../components/TabsStructure/TabsStructure.less';
|
3
|
+
import CategorySkeleton from './CategorySkeleton';
|
4
|
+
declare type TabItem = {
|
5
|
+
key: string;
|
6
|
+
label: React.ReactNode;
|
7
|
+
icon?: React.ReactNode;
|
8
|
+
};
|
9
|
+
interface IProps {
|
10
|
+
items: TabItem[];
|
11
|
+
activeKey: string;
|
12
|
+
onChange: (key: string) => void;
|
13
|
+
loading?: boolean;
|
14
|
+
skeleton?: React.ReactNode;
|
15
|
+
}
|
16
|
+
declare const CategoryTabs: React.ForwardRefExoticComponent<IProps & React.RefAttributes<unknown>>;
|
17
|
+
export default CategoryTabs;
|
18
|
+
export { CategorySkeleton };
|
@@ -0,0 +1,183 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7
|
+
var __export = (target, all) => {
|
8
|
+
for (var name in all)
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
10
|
+
};
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
13
|
+
for (let key of __getOwnPropNames(from))
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
|
+
}
|
17
|
+
return to;
|
18
|
+
};
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
25
|
+
mod
|
26
|
+
));
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
28
|
+
|
29
|
+
// src/plus/productSelect/CategoryTabs/index.tsx
|
30
|
+
var CategoryTabs_exports = {};
|
31
|
+
__export(CategoryTabs_exports, {
|
32
|
+
CategorySkeleton: () => import_CategorySkeleton.default,
|
33
|
+
default: () => CategoryTabs_default
|
34
|
+
});
|
35
|
+
module.exports = __toCommonJS(CategoryTabs_exports);
|
36
|
+
var import_react = __toESM(require("react"));
|
37
|
+
var import_IntersectionObserver = __toESM(require("../components/IntersectionObserver"));
|
38
|
+
var import_TabsStructure = require("../components/TabsStructure");
|
39
|
+
var import_TabsStructure2 = require("../components/TabsStructure/TabsStructure.less");
|
40
|
+
var import_CategorySkeleton = __toESM(require("./CategorySkeleton"));
|
41
|
+
var import__ = require("../index");
|
42
|
+
var CategoryTabs = (0, import_react.forwardRef)((props, ref) => {
|
43
|
+
const { items, activeKey, onChange, loading = false, skeleton } = props;
|
44
|
+
const railRef = (0, import_react.useRef)(null);
|
45
|
+
const [isAtStart, setIsAtStart] = (0, import_react.useState)(true);
|
46
|
+
const [isAtEnd, setIsAtEnd] = (0, import_react.useState)(false);
|
47
|
+
const [needsScrollButtons, setNeedsScrollButtons] = (0, import_react.useState)(false);
|
48
|
+
const scrollLeft = (0, import_react.useCallback)(() => {
|
49
|
+
if (!railRef.current) return;
|
50
|
+
const container = railRef.current;
|
51
|
+
const scrollAmount = container.clientWidth * 0.8;
|
52
|
+
const newPosition = Math.max(0, container.scrollLeft - scrollAmount);
|
53
|
+
container.scrollTo({ left: newPosition, behavior: "smooth" });
|
54
|
+
}, []);
|
55
|
+
const scrollRight = (0, import_react.useCallback)(() => {
|
56
|
+
if (!railRef.current) return;
|
57
|
+
const container = railRef.current;
|
58
|
+
const scrollAmount = container.clientWidth * 0.8;
|
59
|
+
const maxScroll = container.scrollWidth - container.clientWidth;
|
60
|
+
const newPosition = Math.min(
|
61
|
+
maxScroll,
|
62
|
+
container.scrollLeft + scrollAmount
|
63
|
+
);
|
64
|
+
container.scrollTo({ left: newPosition, behavior: "smooth" });
|
65
|
+
}, []);
|
66
|
+
(0, import_react.useEffect)(() => {
|
67
|
+
const updateScrollButtonsVisibility = () => {
|
68
|
+
if (railRef.current) {
|
69
|
+
const { scrollWidth, clientWidth } = railRef.current;
|
70
|
+
console.log("检测滚动按钮需求:", {
|
71
|
+
scrollWidth,
|
72
|
+
clientWidth,
|
73
|
+
needsScroll: scrollWidth > clientWidth
|
74
|
+
});
|
75
|
+
setNeedsScrollButtons(scrollWidth > clientWidth);
|
76
|
+
}
|
77
|
+
};
|
78
|
+
let resizeObserver = null;
|
79
|
+
const timer = setTimeout(() => {
|
80
|
+
const container = railRef.current;
|
81
|
+
if (!container) {
|
82
|
+
console.log("容器未找到,跳过滚动按钮检测");
|
83
|
+
return;
|
84
|
+
}
|
85
|
+
updateScrollButtonsVisibility();
|
86
|
+
resizeObserver = new ResizeObserver(updateScrollButtonsVisibility);
|
87
|
+
resizeObserver.observe(container);
|
88
|
+
}, 100);
|
89
|
+
return () => {
|
90
|
+
clearTimeout(timer);
|
91
|
+
if (resizeObserver) {
|
92
|
+
resizeObserver.disconnect();
|
93
|
+
}
|
94
|
+
};
|
95
|
+
}, [items]);
|
96
|
+
const { selectionIndicatorProps, listContainerProps } = (0, import_TabsStructure.useSelectionIndicator)(
|
97
|
+
railRef,
|
98
|
+
activeKey || ""
|
99
|
+
);
|
100
|
+
if (loading && skeleton) {
|
101
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, skeleton);
|
102
|
+
}
|
103
|
+
return /* @__PURE__ */ import_react.default.createElement(import_IntersectionObserver.default, null, items.length > 0 && /* @__PURE__ */ import_react.default.createElement("div", { className: `${import__.PREFIX}__tabs-wrapper` }, /* @__PURE__ */ import_react.default.createElement(
|
104
|
+
import_TabsStructure.TabsStructure,
|
105
|
+
{
|
106
|
+
variant: "pill",
|
107
|
+
backgroundVariant: "onPage",
|
108
|
+
selectedTab: activeKey
|
109
|
+
},
|
110
|
+
needsScrollButtons && /* @__PURE__ */ import_react.default.createElement(
|
111
|
+
import_TabsStructure.TabsStructure.ChevronButton,
|
112
|
+
{
|
113
|
+
direction: "prev",
|
114
|
+
disabled: isAtStart,
|
115
|
+
onClick: scrollLeft,
|
116
|
+
style: { marginRight: "8px" }
|
117
|
+
}
|
118
|
+
),
|
119
|
+
/* @__PURE__ */ import_react.default.createElement(import_TabsStructure.TabsStructure.Rail, { ref: railRef }, /* @__PURE__ */ import_react.default.createElement(
|
120
|
+
import_IntersectionObserver.IntersectionTrigger,
|
121
|
+
{
|
122
|
+
onShow: () => {
|
123
|
+
console.log("is start");
|
124
|
+
setIsAtStart(true);
|
125
|
+
},
|
126
|
+
onHide: () => {
|
127
|
+
console.log("is start false");
|
128
|
+
setIsAtStart(false);
|
129
|
+
},
|
130
|
+
style: {
|
131
|
+
width: 1,
|
132
|
+
height: 1,
|
133
|
+
flexShrink: 0,
|
134
|
+
background: "rgba(0,0,0,0)"
|
135
|
+
},
|
136
|
+
className: "visibility-detector start-detector"
|
137
|
+
}
|
138
|
+
), /* @__PURE__ */ import_react.default.createElement(import_TabsStructure.TabsStructure.SelectionIndicator, { ...selectionIndicatorProps }), /* @__PURE__ */ import_react.default.createElement(import_TabsStructure.TabsStructure.ListContainer, { ...listContainerProps }, items.map((item) => /* @__PURE__ */ import_react.default.createElement(
|
139
|
+
import_TabsStructure.TabsStructure.Item,
|
140
|
+
{
|
141
|
+
key: item.key,
|
142
|
+
tabId: item.key,
|
143
|
+
"aria-selected": activeKey === item.key,
|
144
|
+
onClick: () => onChange(item.key),
|
145
|
+
className: "tab-item"
|
146
|
+
},
|
147
|
+
item.label
|
148
|
+
))), /* @__PURE__ */ import_react.default.createElement(
|
149
|
+
import_IntersectionObserver.IntersectionTrigger,
|
150
|
+
{
|
151
|
+
className: "visibility-detector end-detector",
|
152
|
+
onShow: () => {
|
153
|
+
console.log("is end");
|
154
|
+
setIsAtEnd(true);
|
155
|
+
},
|
156
|
+
onHide: () => {
|
157
|
+
console.log("is end false");
|
158
|
+
setIsAtEnd(false);
|
159
|
+
},
|
160
|
+
style: {
|
161
|
+
width: 1,
|
162
|
+
height: 1,
|
163
|
+
flexShrink: 0,
|
164
|
+
background: "rgba(0,0,0,0)"
|
165
|
+
}
|
166
|
+
}
|
167
|
+
)),
|
168
|
+
needsScrollButtons && /* @__PURE__ */ import_react.default.createElement(
|
169
|
+
import_TabsStructure.TabsStructure.ChevronButton,
|
170
|
+
{
|
171
|
+
direction: "next",
|
172
|
+
disabled: isAtEnd,
|
173
|
+
onClick: scrollRight,
|
174
|
+
style: { marginLeft: "8px" }
|
175
|
+
}
|
176
|
+
)
|
177
|
+
)));
|
178
|
+
});
|
179
|
+
var CategoryTabs_default = CategoryTabs;
|
180
|
+
// Annotate the CommonJS export names for ESM import in node:
|
181
|
+
0 && (module.exports = {
|
182
|
+
CategorySkeleton
|
183
|
+
});
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
interface ProductCardSkeletonProps {
|
3
|
+
className?: string;
|
4
|
+
style?: React.CSSProperties;
|
5
|
+
isProductCover?: boolean;
|
6
|
+
item?: any;
|
7
|
+
index?: number;
|
8
|
+
}
|
9
|
+
declare const ProductCardSkeleton: React.FC<ProductCardSkeletonProps>;
|
10
|
+
export default ProductCardSkeleton;
|
@@ -0,0 +1,58 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7
|
+
var __export = (target, all) => {
|
8
|
+
for (var name in all)
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
10
|
+
};
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
13
|
+
for (let key of __getOwnPropNames(from))
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
|
+
}
|
17
|
+
return to;
|
18
|
+
};
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
25
|
+
mod
|
26
|
+
));
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
28
|
+
|
29
|
+
// src/plus/productSelect/ProductCard/ProductCardSkeleton.tsx
|
30
|
+
var ProductCardSkeleton_exports = {};
|
31
|
+
__export(ProductCardSkeleton_exports, {
|
32
|
+
default: () => ProductCardSkeleton_default
|
33
|
+
});
|
34
|
+
module.exports = __toCommonJS(ProductCardSkeleton_exports);
|
35
|
+
var import_react = __toESM(require("react"));
|
36
|
+
var import_classnames = __toESM(require("classnames"));
|
37
|
+
var import_antd = require("antd");
|
38
|
+
var import__ = require("../index");
|
39
|
+
var ProductCardSkeleton = ({
|
40
|
+
className,
|
41
|
+
style,
|
42
|
+
isProductCover = true,
|
43
|
+
item
|
44
|
+
}) => {
|
45
|
+
if ((item == null ? void 0 : item.__typename) === "category") {
|
46
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd.Skeleton.Input, { active: true, size: "small", block: false });
|
47
|
+
}
|
48
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
49
|
+
"div",
|
50
|
+
{
|
51
|
+
className: (0, import_classnames.default)(`${import__.PREFIX}__product-card`, className),
|
52
|
+
style
|
53
|
+
},
|
54
|
+
isProductCover && /* @__PURE__ */ import_react.default.createElement(import_antd.Skeleton.Image, { active: true, style: { width: 180, height: 126 } }),
|
55
|
+
/* @__PURE__ */ import_react.default.createElement(import_antd.Skeleton, { active: true, paragraph: { rows: 2 } })
|
56
|
+
);
|
57
|
+
};
|
58
|
+
var ProductCardSkeleton_default = ProductCardSkeleton;
|