@pisell/private-materials 3.0.199 → 3.0.201

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +142 -142
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +10 -10
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +10 -10
  11. package/es/components/booking/addons/model.d.ts +1 -1
  12. package/es/components/booking/components/customSelect/index.d.ts +1 -0
  13. package/es/components/booking/components/customSelect/index.js +6 -2
  14. package/es/components/booking/components/footer/AppointmentProductModal/index.d.ts +3 -0
  15. package/es/components/booking/components/footer/AppointmentProductModal/index.js +38 -0
  16. package/es/components/booking/components/footer/AppointmentProductModal/index.less +0 -0
  17. package/es/components/booking/components/footer/amount.js +45 -22
  18. package/es/components/booking/components/footer/index.js +84 -40
  19. package/es/components/booking/components/footer/utils.js +243 -32
  20. package/es/components/booking/info/addServiceVariant/index.js +8 -1
  21. package/es/components/booking/info/clientVariant/vertical/SelectDrawer.d.ts +1 -0
  22. package/es/components/booking/info/clientVariant/vertical/SelectDrawer.js +14 -13
  23. package/es/components/booking/info/clientVariant/vertical/index.js +33 -4
  24. package/es/components/booking/info/dateRange/index.d.ts +5 -0
  25. package/es/components/booking/info/dateRange/index.js +98 -0
  26. package/es/components/booking/info/dateRange/index.less +21 -0
  27. package/es/components/booking/info/main.js +20 -8
  28. package/es/components/booking/info/model.js +3 -0
  29. package/es/components/booking/info/pet/ChangePetModal/index.d.ts +4 -0
  30. package/es/components/booking/info/pet/ChangePetModal/index.js +119 -0
  31. package/es/components/booking/info/pet/ChangePetModal/index.less +4 -0
  32. package/es/components/booking/info/pet/index.js +54 -5
  33. package/es/components/booking/info/service/addService/index.js +142 -22
  34. package/es/components/booking/info/service/addService/index.less +13 -3
  35. package/es/components/booking/info/service/addService/utils.d.ts +11 -2
  36. package/es/components/booking/info/service/addService/utils.js +49 -24
  37. package/es/components/booking/info/service/editService/index.js +255 -44
  38. package/es/components/booking/info/service/editService/index.less +18 -13
  39. package/es/components/booking/info/service2/Lists.d.ts +3 -0
  40. package/es/components/booking/info/service2/Lists.js +158 -0
  41. package/es/components/booking/info/service2/hooks/useSelectPet.d.ts +6 -0
  42. package/es/components/booking/info/service2/hooks/useSelectPet.js +54 -0
  43. package/es/components/booking/info/service2/index.d.ts +3 -0
  44. package/es/components/booking/info/service2/index.js +58 -0
  45. package/es/components/booking/info/service2/status.d.ts +31 -0
  46. package/es/components/booking/info/service2/status.js +78 -0
  47. package/es/components/booking/info/service2/utils.d.ts +145 -0
  48. package/es/components/booking/info/service2/utils.js +438 -0
  49. package/es/components/booking/info/utils.d.ts +9 -0
  50. package/es/components/booking/info/utils.js +13 -0
  51. package/es/components/booking/locales.d.ts +60 -0
  52. package/es/components/booking/locales.js +75 -3
  53. package/es/components/booking/materiels/holder/index.d.ts +7 -0
  54. package/es/components/booking/materiels/holder/index.js +51 -0
  55. package/es/components/booking/model.d.ts +4 -1
  56. package/es/components/booking/model.js +4 -2
  57. package/es/components/booking/payments/index.d.ts +1 -1
  58. package/es/components/booking/utils.d.ts +12 -3
  59. package/es/components/booking/utils.js +139 -23
  60. package/es/components/eftpos/form/index.js +6 -12
  61. package/es/components/eftpos/group/index.d.ts +2 -1
  62. package/es/components/eftpos/group/index.js +2 -1
  63. package/es/components/eftpos/index.js +2 -2
  64. package/es/components/eftposPay/helper.d.ts +0 -1
  65. package/es/components/eftposPay/helper.js +0 -14
  66. package/es/components/eftposPay/tyro/index.js +20 -51
  67. package/es/components/shoppingCart/Provider.d.ts +3 -0
  68. package/es/components/shoppingCart/Provider.js +86 -0
  69. package/es/components/shoppingCart/components/Cart/Product.d.ts +4 -0
  70. package/es/components/shoppingCart/components/Cart/Product.js +96 -0
  71. package/es/components/shoppingCart/components/Cart/index.d.ts +4 -0
  72. package/es/components/shoppingCart/components/Cart/index.js +72 -0
  73. package/es/components/shoppingCart/components/Cart/index.less +68 -0
  74. package/es/components/shoppingCart/components/Empty/index.d.ts +4 -0
  75. package/es/components/shoppingCart/components/Empty/index.js +14 -0
  76. package/es/components/shoppingCart/components/Empty/index.less +19 -0
  77. package/es/components/shoppingCart/components/Render/index.d.ts +4 -0
  78. package/es/components/shoppingCart/components/Render/index.js +68 -0
  79. package/es/components/shoppingCart/components/Render/index.less +2 -0
  80. package/es/components/shoppingCart/components/SelectHolderModal/index.d.ts +4 -0
  81. package/es/components/shoppingCart/components/SelectHolderModal/index.js +124 -0
  82. package/es/components/shoppingCart/components/SelectHolderModal/index.less +32 -0
  83. package/es/components/shoppingCart/hooks/useAddService.d.ts +3 -0
  84. package/es/components/shoppingCart/hooks/useAddService.js +23 -0
  85. package/es/components/shoppingCart/hooks/useClearCart.d.ts +3 -0
  86. package/es/components/shoppingCart/hooks/useClearCart.js +54 -0
  87. package/es/components/shoppingCart/hooks/useContext.d.ts +1 -0
  88. package/es/components/shoppingCart/hooks/useContext.js +5 -0
  89. package/es/components/shoppingCart/index.d.ts +4 -0
  90. package/es/components/shoppingCart/index.js +24 -0
  91. package/es/components/shoppingCart/locales.d.ts +33 -0
  92. package/es/components/shoppingCart/locales.js +38 -0
  93. package/es/components/shoppingCart/mock.d.ts +40 -0
  94. package/es/components/shoppingCart/mock.js +40 -0
  95. package/es/components/shoppingCart/status.d.ts +2 -0
  96. package/es/components/shoppingCart/status.js +22 -0
  97. package/es/components/shoppingCart/type.d.ts +39 -0
  98. package/es/components/shoppingCart/type.js +1 -0
  99. package/es/components/shoppingCart/utils.d.ts +63 -0
  100. package/es/components/shoppingCart/utils.js +119 -0
  101. package/es/index.d.ts +1 -0
  102. package/es/index.js +2 -1
  103. package/lib/components/booking/addons/model.d.ts +1 -1
  104. package/lib/components/booking/components/customSelect/index.d.ts +1 -0
  105. package/lib/components/booking/components/customSelect/index.js +6 -2
  106. package/lib/components/booking/components/footer/AppointmentProductModal/index.d.ts +3 -0
  107. package/lib/components/booking/components/footer/AppointmentProductModal/index.js +60 -0
  108. package/lib/components/booking/components/footer/AppointmentProductModal/index.less +0 -0
  109. package/lib/components/booking/components/footer/amount.js +26 -8
  110. package/lib/components/booking/components/footer/index.js +25 -4
  111. package/lib/components/booking/components/footer/utils.js +157 -31
  112. package/lib/components/booking/info/addServiceVariant/index.js +5 -0
  113. package/lib/components/booking/info/clientVariant/vertical/SelectDrawer.d.ts +1 -0
  114. package/lib/components/booking/info/clientVariant/vertical/SelectDrawer.js +8 -7
  115. package/lib/components/booking/info/clientVariant/vertical/index.js +36 -10
  116. package/lib/components/booking/info/dateRange/index.d.ts +5 -0
  117. package/lib/components/booking/info/dateRange/index.js +111 -0
  118. package/lib/components/booking/info/dateRange/index.less +21 -0
  119. package/lib/components/booking/info/main.js +11 -4
  120. package/lib/components/booking/info/model.js +3 -0
  121. package/lib/components/booking/info/pet/ChangePetModal/index.d.ts +4 -0
  122. package/lib/components/booking/info/pet/ChangePetModal/index.js +111 -0
  123. package/lib/components/booking/info/pet/ChangePetModal/index.less +4 -0
  124. package/lib/components/booking/info/pet/index.js +61 -25
  125. package/lib/components/booking/info/service/addService/index.js +107 -34
  126. package/lib/components/booking/info/service/addService/index.less +13 -3
  127. package/lib/components/booking/info/service/addService/utils.d.ts +11 -2
  128. package/lib/components/booking/info/service/addService/utils.js +31 -10
  129. package/lib/components/booking/info/service/editService/index.js +293 -125
  130. package/lib/components/booking/info/service/editService/index.less +18 -13
  131. package/lib/components/booking/info/service2/Lists.d.ts +3 -0
  132. package/lib/components/booking/info/service2/Lists.js +113 -0
  133. package/lib/components/booking/info/service2/hooks/useSelectPet.d.ts +6 -0
  134. package/lib/components/booking/info/service2/hooks/useSelectPet.js +50 -0
  135. package/lib/components/booking/info/service2/index.d.ts +3 -0
  136. package/lib/components/booking/info/service2/index.js +75 -0
  137. package/lib/components/booking/info/service2/status.d.ts +31 -0
  138. package/lib/components/booking/info/service2/status.js +81 -0
  139. package/lib/components/booking/info/service2/utils.d.ts +145 -0
  140. package/lib/components/booking/info/service2/utils.js +322 -0
  141. package/lib/components/booking/info/utils.d.ts +9 -0
  142. package/lib/components/booking/info/utils.js +6 -0
  143. package/lib/components/booking/locales.d.ts +60 -0
  144. package/lib/components/booking/locales.js +63 -3
  145. package/lib/components/booking/materiels/holder/index.d.ts +7 -0
  146. package/lib/components/booking/materiels/holder/index.js +65 -0
  147. package/lib/components/booking/model.d.ts +4 -1
  148. package/lib/components/booking/model.js +4 -2
  149. package/lib/components/booking/payments/index.d.ts +1 -1
  150. package/lib/components/booking/utils.d.ts +12 -3
  151. package/lib/components/booking/utils.js +87 -15
  152. package/lib/components/eftpos/form/index.js +6 -12
  153. package/lib/components/eftpos/group/index.d.ts +2 -1
  154. package/lib/components/eftpos/group/index.js +1 -0
  155. package/lib/components/eftpos/index.js +2 -2
  156. package/lib/components/eftposPay/helper.d.ts +0 -1
  157. package/lib/components/eftposPay/helper.js +0 -21
  158. package/lib/components/eftposPay/tyro/index.js +7 -36
  159. package/lib/components/shoppingCart/Provider.d.ts +3 -0
  160. package/lib/components/shoppingCart/Provider.js +110 -0
  161. package/lib/components/shoppingCart/components/Cart/Product.d.ts +4 -0
  162. package/lib/components/shoppingCart/components/Cart/Product.js +89 -0
  163. package/lib/components/shoppingCart/components/Cart/index.d.ts +4 -0
  164. package/lib/components/shoppingCart/components/Cart/index.js +77 -0
  165. package/lib/components/shoppingCart/components/Cart/index.less +68 -0
  166. package/lib/components/shoppingCart/components/Empty/index.d.ts +4 -0
  167. package/lib/components/shoppingCart/components/Empty/index.js +43 -0
  168. package/lib/components/shoppingCart/components/Empty/index.less +19 -0
  169. package/lib/components/shoppingCart/components/Render/index.d.ts +4 -0
  170. package/lib/components/shoppingCart/components/Render/index.js +79 -0
  171. package/lib/components/shoppingCart/components/Render/index.less +2 -0
  172. package/lib/components/shoppingCart/components/SelectHolderModal/index.d.ts +4 -0
  173. package/lib/components/shoppingCart/components/SelectHolderModal/index.js +116 -0
  174. package/lib/components/shoppingCart/components/SelectHolderModal/index.less +32 -0
  175. package/lib/components/shoppingCart/hooks/useAddService.d.ts +3 -0
  176. package/lib/components/shoppingCart/hooks/useAddService.js +55 -0
  177. package/lib/components/shoppingCart/hooks/useClearCart.d.ts +3 -0
  178. package/lib/components/shoppingCart/hooks/useClearCart.js +71 -0
  179. package/lib/components/shoppingCart/hooks/useContext.d.ts +1 -0
  180. package/lib/components/shoppingCart/hooks/useContext.js +31 -0
  181. package/lib/components/shoppingCart/index.d.ts +4 -0
  182. package/lib/components/shoppingCart/index.js +60 -0
  183. package/lib/components/shoppingCart/locales.d.ts +33 -0
  184. package/lib/components/shoppingCart/locales.js +56 -0
  185. package/lib/components/shoppingCart/mock.d.ts +40 -0
  186. package/lib/components/shoppingCart/mock.js +76 -0
  187. package/lib/components/shoppingCart/status.d.ts +2 -0
  188. package/lib/components/shoppingCart/status.js +60 -0
  189. package/lib/components/shoppingCart/type.d.ts +39 -0
  190. package/lib/components/shoppingCart/type.js +17 -0
  191. package/lib/components/shoppingCart/utils.d.ts +63 -0
  192. package/lib/components/shoppingCart/utils.js +92 -0
  193. package/lib/index.d.ts +1 -0
  194. package/lib/index.js +3 -0
  195. package/lowcode/shopping-cart/meta.ts +98 -0
  196. package/package.json +4 -4
  197. package/es/components/eftpos/receipt/index.d.ts +0 -24
  198. package/es/components/eftpos/receipt/index.js +0 -96
  199. package/lib/components/eftpos/receipt/index.d.ts +0 -24
  200. package/lib/components/eftpos/receipt/index.js +0 -88
@@ -38,6 +38,7 @@ var import_drawer = __toESM(require("../../../components/drawer"));
38
38
  var import_model = require("../../model");
39
39
  var import_utils = require("@pisell/utils");
40
40
  var import_duration = __toESM(require("../../../materiels/duration"));
41
+ var import_holder = __toESM(require("../../../materiels/holder"));
41
42
  var import_antd = require("antd");
42
43
  var import_index = require("./index.less");
43
44
  var import_collapsibleList = __toESM(require("../../../components/collapsibleList"));
@@ -48,18 +49,27 @@ var import_like = __toESM(require("../like"));
48
49
  var import_mock = require("../../../mock");
49
50
  var import_utils4 = require("../addService/utils");
50
51
  var import_materials = require("@pisell/materials");
52
+ var import_dayjs = __toESM(require("dayjs"));
53
+ var import_useSelectPet = __toESM(require("../../service2/hooks/useSelectPet"));
54
+ var import_utils5 = require("../../service2/utils");
51
55
  var submitLock = false;
52
56
  var Info = (_, ref) => {
53
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;
57
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C;
54
58
  const [form] = import_antd.Form.useForm();
55
59
  const useTotal = import_antd.Form.useWatch("total", form);
56
60
  const useLikeStatus = import_antd.Form.useWatch("like_status", form);
57
61
  const useResource = import_antd.Form.useWatch("resource", form);
58
62
  const useStartTime = import_antd.Form.useWatch("start_time", form);
59
63
  const useDuration = import_antd.Form.useWatch("duration", form);
64
+ const useStartDate = import_antd.Form.useWatch("start_date", form);
65
+ const useEndDate = import_antd.Form.useWatch("end_date", form);
60
66
  const [resourceLoading, setResourceLoading] = (0, import_react.useState)(false);
61
67
  const { state, dispatch } = (0, import_react.useContext)(import_model.Context);
62
68
  const [selectOpen, setSelectOpen] = (0, import_react.useState)();
69
+ const { holderLists } = (0, import_useSelectPet.default)(state);
70
+ const isDay = (0, import_react.useMemo)(() => {
71
+ return (0, import_utils5.isDayBooking)(state);
72
+ }, [state.renderType]);
63
73
  const getCurrentCacheItem = (_cacheItem) => {
64
74
  let values = form.getFieldsValue();
65
75
  let _item = _cacheItem || state.service.cacheItem;
@@ -132,7 +142,8 @@ var Info = (_, ref) => {
132
142
  payload: {
133
143
  resources: (0, import_utils4.formatResources)({
134
144
  cacheItem: _cacheItem,
135
- resourcesOrigin: _list
145
+ resourcesOrigin: _list,
146
+ isDay
136
147
  })
137
148
  }
138
149
  });
@@ -188,11 +199,11 @@ var Info = (_, ref) => {
188
199
  });
189
200
  });
190
201
  const getErrorMsg = () => {
191
- var _a2;
202
+ var _a2, _b2;
192
203
  const list = state.service.resources;
193
204
  let item = list.find((d) => d.form_record_id == useResource);
194
205
  if (item) {
195
- const isMaxLimitRange = (_a2 = item._extend.usableTime) == null ? void 0 : _a2._extend.isMaxLimitRange;
206
+ const isMaxLimitRange = (_b2 = (_a2 = item._extend.usableTime) == null ? void 0 : _a2._extend) == null ? void 0 : _b2.isMaxLimitRange;
196
207
  if (isMaxLimitRange === "unknown") {
197
208
  }
198
209
  }
@@ -234,9 +245,15 @@ var Info = (_, ref) => {
234
245
  ..._item._extend,
235
246
  ...values
236
247
  };
237
- const { startDate, endDate } = (0, import_utils3.getServiceTimes)({ _extend });
238
- _extend.startDate = startDate;
239
- _extend.endDate = endDate;
248
+ if ((0, import_utils5.isAppointment)(state.service.cacheItem, state)) {
249
+ _extend.quantity = useDuration || 1;
250
+ _extend.startDate = _extend == null ? void 0 : _extend.start_date;
251
+ _extend.endDate = _extend == null ? void 0 : _extend.end_date;
252
+ } else {
253
+ const { startDate, endDate } = (0, import_utils3.getServiceTimes)({ _extend });
254
+ _extend.startDate = startDate;
255
+ _extend.endDate = endDate;
256
+ }
240
257
  const { relation_type, item_id, schedule_id } = ((_a2 = currentResource == null ? void 0 : currentResource._extend) == null ? void 0 : _a2.usableTime) || {};
241
258
  _extend.relation_type = relation_type || "form";
242
259
  _extend.relation_id = item_id || (currentResource == null ? void 0 : currentResource.form_record_id) || 0;
@@ -269,6 +286,10 @@ var Info = (_, ref) => {
269
286
  const setEditData = (0, import_ahooks.useMemoizedFn)((_cacheItem, open) => {
270
287
  let cacheItem = _cacheItem || state.service.cacheItem;
271
288
  let values = cacheItem._extend;
289
+ values = {
290
+ ...values,
291
+ discount_reason: (values == null ? void 0 : values.discount_reason) || ""
292
+ };
272
293
  form.setFieldsValue(values);
273
294
  if (state.renderType !== "eventBooking") {
274
295
  getResources(cacheItem, open);
@@ -281,7 +302,7 @@ var Info = (_, ref) => {
281
302
  return cPrice !== oPrice;
282
303
  }, [useTotal, (_e = (_d = state.service.cacheItem) == null ? void 0 : _d._extend) == null ? void 0 : _e.origin_total]);
283
304
  const errorList = (0, import_react.useMemo)(() => {
284
- return (0, import_utils3.getErrorList)(currentResource, getCurrentCacheItem());
305
+ return (0, import_utils3.getErrorList)(currentResource, getCurrentCacheItem(), isDay);
285
306
  }, [currentResource, useDuration, useStartTime]);
286
307
  (0, import_ahooks.useUpdateEffect)(() => {
287
308
  var _a2;
@@ -297,14 +318,17 @@ var Info = (_, ref) => {
297
318
  state.service.resourcesOrigin,
298
319
  (_f = state.service.cacheItem) == null ? void 0 : _f.autoClose
299
320
  ]);
321
+ const isTerminalBooking = (0, import_react.useMemo)(() => {
322
+ return state.isBookingCreatePage || state.isTerminalDayBookingPage;
323
+ }, [state.isBookingCreatePage, state.isTerminalDayBookingPage]);
300
324
  (0, import_react.useEffect)(() => {
301
- if (state.isBookingCreatePage && state.service.editModal) {
325
+ if (isTerminalBooking && state.service.editModal) {
302
326
  setEditData(null, true);
303
327
  }
304
- }, [state.service.editModal, state.isBookingCreatePage]);
328
+ }, [state.service.editModal, isTerminalBooking]);
305
329
  (0, import_react.useEffect)(() => {
306
330
  getErrorMsg();
307
- }, [useResource, useStartTime, useDuration]);
331
+ }, [useResource, useStartTime, useDuration, useStartDate, useEndDate]);
308
332
  (0, import_react.useEffect)(() => {
309
333
  getDiscount();
310
334
  }, [useTotal, (_h = (_g = state.service.cacheItem) == null ? void 0 : _g._extend) == null ? void 0 : _h.origin_total]);
@@ -327,12 +351,30 @@ var Info = (_, ref) => {
327
351
  const getResourcesData = async () => {
328
352
  setResourceLoading(true);
329
353
  try {
354
+ let params = {};
355
+ if (isDay) {
356
+ const format = "YYYY-MM-DD HH:mm";
357
+ const startDate = useStartDate || state.date.value;
358
+ const endDate = useEndDate || state.date.end_date;
359
+ const { startDateTime, endDateTime } = (0, import_utils5.formatDayTime)({
360
+ startDate,
361
+ endDate
362
+ });
363
+ if ((0, import_dayjs.default)(startDateTime).isAfter((0, import_dayjs.default)(endDateTime)))
364
+ return;
365
+ params.check_time = {
366
+ start_time: (0, import_dayjs.default)(startDateTime).format(format),
367
+ end_time: (0, import_dayjs.default)(endDateTime).format(format)
368
+ };
369
+ } else {
370
+ params.with_date_times = state.date.value.format("YYYY-MM-DD");
371
+ }
330
372
  let data = await state.apis.getResources({
331
373
  skip: 1,
332
374
  num: 1e3,
333
- with_date_times: state.date.value.format("YYYY-MM-DD"),
334
375
  codes: ["resources", "therapist", "table"],
335
- _config: { abort: true }
376
+ _config: { abort: true },
377
+ ...params
336
378
  });
337
379
  let _list = [(0, import_mock.getNoResource)()].concat((data == null ? void 0 : data.list) || []);
338
380
  dispatch({
@@ -350,24 +392,45 @@ var Info = (_, ref) => {
350
392
  setTimeout(() => {
351
393
  getResourcesData();
352
394
  }, 20);
353
- }, [(_q = (_p = (_o = state.date) == null ? void 0 : _o.value) == null ? void 0 : _p.format) == null ? void 0 : _q.call(_p, "YYYY-MM-DD")]);
395
+ }, [
396
+ (_q = (_p = (_o = state.date) == null ? void 0 : _o.value) == null ? void 0 : _p.format) == null ? void 0 : _q.call(_p, "YYYY-MM-DD"),
397
+ (_r = state.date) == null ? void 0 : _r.end_date,
398
+ useStartDate,
399
+ useEndDate
400
+ ]);
354
401
  const handleEdit = (0, import_ahooks.useMemoizedFn)((e) => {
402
+ var _a2, _b2, _c2, _d2, _e2, _f2;
355
403
  const item = state.service.cacheItem;
356
404
  let values = form.getFieldsValue();
405
+ let dayValue = {};
406
+ if (isDay) {
407
+ const option = (_c2 = (_b2 = (_a2 = item._extend) == null ? void 0 : _a2.other) == null ? void 0 : _b2.option) == null ? void 0 : _c2.map((o) => {
408
+ return {
409
+ ...o,
410
+ option_group_item_id: o.product_option_item_id
411
+ };
412
+ });
413
+ dayValue.product_variant = ((_e2 = (_d2 = item._extend) == null ? void 0 : _d2.other) == null ? void 0 : _e2.product_variant_id) || 0;
414
+ dayValue.product_option = option || [];
415
+ }
357
416
  state.action({
358
417
  type: "pisell1.handleOpenProductModal",
359
418
  data: {
360
419
  id: item.id,
361
420
  date: state.date.value.format("YYYY-MM-DD"),
362
421
  showConfig: {
363
- option: false,
422
+ option: isDay ? true : false,
364
423
  session: false,
365
- variant: false,
424
+ variant: isDay ? true : false,
366
425
  package: true
367
426
  },
368
- value: item._extend.other
427
+ value: {
428
+ ...((_f2 = item._extend) == null ? void 0 : _f2.other) || {},
429
+ ...dayValue
430
+ }
369
431
  },
370
432
  callback: (e2) => {
433
+ var _a3, _b3, _c3, _d3;
371
434
  let cacheItem = {
372
435
  ...item,
373
436
  product_id: item.id,
@@ -383,6 +446,9 @@ var Info = (_, ref) => {
383
446
  new: 0
384
447
  };
385
448
  let _total = (0, import_utils3.getProductTotalPrice)(cacheItem);
449
+ if ((_b3 = (_a3 = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _a3.other) == null ? void 0 : _b3.product_variant_id) {
450
+ cacheItem._extend.price = Number((_d3 = (_c3 = cacheItem._extend) == null ? void 0 : _c3.other) == null ? void 0 : _d3.price);
451
+ }
386
452
  cacheItem._extend.total = _total;
387
453
  cacheItem._extend.origin_total = _total;
388
454
  dispatch({
@@ -416,7 +482,54 @@ var Info = (_, ref) => {
416
482
  init: setEditData
417
483
  };
418
484
  });
419
- const SelectTime = (_r = window.BaseMaterials) == null ? void 0 : _r.SelectTime;
485
+ const SelectTime = (_s = window.BaseMaterials) == null ? void 0 : _s.SelectTime;
486
+ const DateCom = (position) => {
487
+ return /* @__PURE__ */ import_react.default.createElement(
488
+ import_antd.DatePicker,
489
+ {
490
+ className: "pisell-lowcode__booking-service-select-date",
491
+ disabledDate: (current) => (0, import_utils5.disabledDate)(current, position, useStartDate),
492
+ size: "large",
493
+ style: { width: "100%" },
494
+ format: state.locale === "en" ? "DD/MM/YYYY" : "YYYY-MM-DD"
495
+ }
496
+ );
497
+ };
498
+ const onValuesChange = (changedValues) => {
499
+ if (isDay) {
500
+ if (changedValues == null ? void 0 : changedValues.duration) {
501
+ return form.setFieldsValue({
502
+ end_date: (0, import_dayjs.default)(useStartDate).add(changedValues == null ? void 0 : changedValues.duration, "day")
503
+ });
504
+ }
505
+ if (changedValues == null ? void 0 : changedValues.start_date) {
506
+ const startDate = (0, import_dayjs.default)(changedValues == null ? void 0 : changedValues.start_date);
507
+ const endDate = (0, import_dayjs.default)(useEndDate);
508
+ if (startDate.isAfter(endDate)) {
509
+ return form.setFieldsValue({
510
+ duration: void 0,
511
+ end_date: void 0
512
+ });
513
+ }
514
+ }
515
+ if ((changedValues == null ? void 0 : changedValues.start_date) || (changedValues == null ? void 0 : changedValues.end_date)) {
516
+ const cacheItem = getCurrentCacheItem();
517
+ const duration = (0, import_utils3.getDays)(cacheItem, "days");
518
+ return form.setFieldsValue({
519
+ duration
520
+ });
521
+ }
522
+ }
523
+ };
524
+ const showResource = (0, import_react.useMemo)(() => {
525
+ if (state.renderType === "eventBooking") {
526
+ return false;
527
+ }
528
+ if (isDay) {
529
+ return (0, import_utils5.isAppointment)(state.service.cacheItem, state);
530
+ }
531
+ return true;
532
+ }, [state.service.cacheItem, state.renderType]);
420
533
  return (0, import_react.useMemo)(() => {
421
534
  var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2, _o2, _p2;
422
535
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
@@ -426,7 +539,7 @@ var Info = (_, ref) => {
426
539
  zIndex: state.service.changeService ? 999 : 1e3,
427
540
  forceRender: true,
428
541
  open: state.service.editModal && !((_a2 = state.service.cacheItem) == null ? void 0 : _a2.autoClose),
429
- title: import_utils.locales.getText("pisell2.text.edit-service"),
542
+ title: isDay ? import_utils.locales.getText("pisell2.text.edit-select-service") : import_utils.locales.getText("pisell2.text.edit-service"),
430
543
  onClose: () => {
431
544
  dispatch({
432
545
  type: "setService",
@@ -438,126 +551,177 @@ var Info = (_, ref) => {
438
551
  });
439
552
  }
440
553
  },
441
- /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__booking-service-body-edit" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Page, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Form, { layout: "vertical", form, onFinish }, /* @__PURE__ */ import_react.default.createElement(import_antd.Row, { style: { width: "100%" }, gutter: [16, 0] }, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { name: "product_name" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name" }, ((_d2 = (_c2 = (_b2 = state.service) == null ? void 0 : _b2.cacheItem) == null ? void 0 : _c2._extend) == null ? void 0 : _d2.product_name) || "-"), /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleEdit }, import_utils.locales.getText("pisell2.text.edit")), !state.isBookingCreatePage && /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleChange }, import_utils.locales.getText("pisell2.text.change"))), /* @__PURE__ */ import_react.default.createElement(
442
- import_collapsibleList.default,
443
- {
444
- style: { marginTop: bundles.length ? "8px" : 0 },
445
- list: bundles,
446
- renderItem: (item) => (0, import_utils2.renderBundles)(item, state.amountSymbol)
447
- }
448
- )))), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
449
- import_antd.Form.Item,
450
- {
451
- label: import_utils.locales.getText("pisell2.text.price"),
452
- name: "total",
453
- rules: [{ required: true }],
454
- extra: useTotal !== ((_f2 = (_e2 = state.service.cacheItem) == null ? void 0 : _e2._extend) == null ? void 0 : _f2.origin_total) && import_utils.locales.getText("page.booking.text.price-extra")(
455
- (0, import_utils.formatAmount)(
456
- (_h2 = (_g2 = state.service.cacheItem) == null ? void 0 : _g2._extend) == null ? void 0 : _h2.origin_total,
457
- 2,
458
- state.amountSymbol
459
- ),
460
- (0, import_utils.formatAmount)(useTotal, 2, state.amountSymbol)
461
- )
462
- },
463
- /* @__PURE__ */ import_react.default.createElement(
464
- import_materials.PisellAdjustPriceInputNumber,
465
- {
466
- style: { width: "100%" },
467
- min: 0,
468
- precision: 2,
469
- prefix: state.amountSymbol,
470
- disabled: state.channelDisabledEdit,
471
- originValue: ((_j2 = (_i2 = state.service.cacheItem) == null ? void 0 : _i2._extend) == null ? void 0 : _j2.origin_total) || 0,
472
- placeholder: ((_l2 = (_k2 = state.service.cacheItem) == null ? void 0 : _k2._extend) == null ? void 0 : _l2.origin_total) || "0"
473
- }
474
- )
475
- )), isReason ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
476
- import_antd.Form.Item,
554
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode__booking-service-body-edit" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Page, null, /* @__PURE__ */ import_react.default.createElement(
555
+ import_antd.Form,
477
556
  {
478
- label: import_utils.locales.getText("pisell2.text.discount-reason"),
479
- name: "discount_reason"
557
+ layout: "vertical",
558
+ form,
559
+ onFinish,
560
+ onValuesChange
480
561
  },
481
- /* @__PURE__ */ import_react.default.createElement(import_antd.Input.TextArea, { size: "large" })
482
- )) : null, state.renderType !== "eventBooking" && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
483
- import_antd.Form.Item,
484
- {
485
- label: import_utils.locales.getText("pisell2.text.start_time"),
486
- name: "start_time",
487
- rules: [{ required: true }]
488
- },
489
- SelectTime ? /* @__PURE__ */ import_react.default.createElement(
490
- SelectTime,
562
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Row, { style: { width: "100%" }, gutter: [16, 0] }, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { name: "product_name" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "current-service-info-name" }, ((_d2 = (_c2 = (_b2 = state.service) == null ? void 0 : _b2.cacheItem) == null ? void 0 : _c2._extend) == null ? void 0 : _d2.product_name) || "-"), /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleEdit }, import_utils.locales.getText("pisell2.text.edit")), !isTerminalBooking && /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { onClick: handleChange }, import_utils.locales.getText("pisell2.text.change"))), /* @__PURE__ */ import_react.default.createElement(
563
+ import_collapsibleList.default,
491
564
  {
492
- slice: (_p2 = (_o2 = (_n2 = (_m2 = state.bookingConfig) == null ? void 0 : _m2.config) == null ? void 0 : _n2.basic) == null ? void 0 : _o2.service_time) == null ? void 0 : _p2.value,
493
- timePickerProps: {
494
- style: { width: "100%" }
495
- },
496
- timeProps: {
497
- style: { zoom: 0.8 }
498
- }
565
+ style: { marginTop: bundles.length ? "8px" : 0 },
566
+ list: bundles,
567
+ renderItem: (item) => (0, import_utils2.renderBundles)(item, state.amountSymbol)
499
568
  }
500
- ) : null
501
- )), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
502
- import_antd.Form.Item,
503
- {
504
- label: import_utils.locales.getText("pisell2.text.duration"),
505
- name: "duration",
506
- rules: [{ required: true }]
507
- },
508
- /* @__PURE__ */ import_react.default.createElement(import_duration.default, { ...durationProps, timeObj })
509
- )), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
510
- import_antd.Form.Item,
511
- {
512
- required: true,
513
- label: import_utils.locales.getText("pisell2.text.resource")
514
- },
515
- /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-col" }, /* @__PURE__ */ import_react.default.createElement(
516
- import_antd.Button,
569
+ )))), /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
570
+ import_antd.Form.Item,
517
571
  {
518
- className: "resource-col-like-wrap",
519
- disabled: !useResource,
520
- onClick: () => {
521
- handleLikeResource(
522
- useLikeStatus === "like" ? "common" : "like"
523
- );
524
- }
572
+ label: import_utils.locales.getText("pisell2.text.price"),
573
+ name: "total",
574
+ rules: [{ required: true }],
575
+ extra: useTotal !== ((_f2 = (_e2 = state.service.cacheItem) == null ? void 0 : _e2._extend) == null ? void 0 : _f2.origin_total) && import_utils.locales.getText("page.booking.text.price-extra")(
576
+ (0, import_utils.formatAmount)(
577
+ (_h2 = (_g2 = state.service.cacheItem) == null ? void 0 : _g2._extend) == null ? void 0 : _h2.origin_total,
578
+ 2,
579
+ state.amountSymbol
580
+ ),
581
+ (0, import_utils.formatAmount)(useTotal, 2, state.amountSymbol)
582
+ )
525
583
  },
526
584
  /* @__PURE__ */ import_react.default.createElement(
527
- import_like.default,
585
+ import_materials.PisellAdjustPriceInputNumber,
528
586
  {
529
- status: useLikeStatus
587
+ style: { width: "100%" },
588
+ min: 0,
589
+ precision: 2,
590
+ prefix: state.amountSymbol,
591
+ disabled: state.channelDisabledEdit,
592
+ originValue: ((_j2 = (_i2 = state.service.cacheItem) == null ? void 0 : _i2._extend) == null ? void 0 : _j2.origin_total) || 0,
593
+ placeholder: ((_l2 = (_k2 = state.service.cacheItem) == null ? void 0 : _k2._extend) == null ? void 0 : _l2.origin_total) || "0"
530
594
  }
531
595
  )
532
- ), /* @__PURE__ */ import_react.default.createElement(
596
+ )), isReason ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
533
597
  import_antd.Form.Item,
534
598
  {
535
- name: "resource",
536
- noStyle: true,
599
+ label: import_utils.locales.getText("pisell2.text.discount-reason"),
600
+ name: "discount_reason"
601
+ },
602
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Input.TextArea, { size: "large" })
603
+ )) : null, showResource && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
604
+ import_antd.Form.Item,
605
+ {
606
+ label: import_utils.locales.getText(
607
+ isDay ? "pisell2.text.start_date" : "pisell2.text.start_time"
608
+ ),
609
+ name: isDay ? "start_date" : "start_time",
537
610
  rules: [{ required: true }]
538
611
  },
539
- /* @__PURE__ */ import_react.default.createElement(
540
- import_antd.Select,
612
+ isDay ? DateCom("start") : SelectTime ? /* @__PURE__ */ import_react.default.createElement(
613
+ SelectTime,
541
614
  {
542
- loading: resourceLoading,
543
- size: "large",
544
- allowClear: true,
545
- showSearch: true,
546
- open: selectOpen,
547
- onDropdownVisibleChange: setSelectOpen,
548
- filterOption: (str, option) => {
549
- return (option.labelText || "").toLowerCase().includes((str || "").toLowerCase());
615
+ slice: (_p2 = (_o2 = (_n2 = (_m2 = state.bookingConfig) == null ? void 0 : _m2.config) == null ? void 0 : _n2.basic) == null ? void 0 : _o2.service_time) == null ? void 0 : _p2.value,
616
+ timePickerProps: {
617
+ style: { width: "100%" }
618
+ },
619
+ timeProps: {
620
+ style: { zoom: 0.8 }
621
+ }
622
+ }
623
+ ) : null
624
+ )), isDay ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
625
+ import_antd.Form.Item,
626
+ {
627
+ label: import_utils.locales.getText(
628
+ isDay ? "pisell2.text.end_date" : "pisell2.text.end_time"
629
+ ),
630
+ name: "end_date",
631
+ rules: [{ required: true }]
632
+ },
633
+ DateCom("end")
634
+ )) : null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
635
+ import_antd.Form.Item,
636
+ {
637
+ label: import_utils.locales.getText("pisell2.text.duration"),
638
+ name: "duration",
639
+ rules: [{ required: true }]
640
+ },
641
+ /* @__PURE__ */ import_react.default.createElement(import_duration.default, { ...durationProps, timeObj })
642
+ )), isDay && (holderLists == null ? void 0 : holderLists.length) > 0 ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 12 }, /* @__PURE__ */ import_react.default.createElement(
643
+ import_antd.Form.Item,
644
+ {
645
+ label: import_utils.locales.getText("pisell2.text.holder"),
646
+ name: "holder_id",
647
+ rules: [{ required: true }]
648
+ },
649
+ /* @__PURE__ */ import_react.default.createElement(import_holder.default, { size: "large" })
650
+ )) : null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
651
+ import_antd.Form.Item,
652
+ {
653
+ required: true,
654
+ label: import_utils.locales.getText("pisell2.text.resource")
655
+ },
656
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-col" }, /* @__PURE__ */ import_react.default.createElement(
657
+ import_antd.Button,
658
+ {
659
+ className: "resource-col-like-wrap",
660
+ disabled: !useResource,
661
+ onClick: () => {
662
+ handleLikeResource(
663
+ useLikeStatus === "like" ? "common" : "like"
664
+ );
550
665
  }
551
666
  },
552
- renderOptions(
553
- state.service.resources || [],
554
- "form_record_id",
555
- "label",
556
- "resource"
667
+ /* @__PURE__ */ import_react.default.createElement(
668
+ import_like.default,
669
+ {
670
+ status: useLikeStatus
671
+ }
557
672
  )
673
+ ), /* @__PURE__ */ import_react.default.createElement(
674
+ import_antd.Form.Item,
675
+ {
676
+ name: "resource",
677
+ noStyle: true,
678
+ rules: [{ required: true }]
679
+ },
680
+ /* @__PURE__ */ import_react.default.createElement(
681
+ import_antd.Select,
682
+ {
683
+ loading: resourceLoading,
684
+ size: "large",
685
+ allowClear: true,
686
+ showSearch: true,
687
+ open: selectOpen,
688
+ onDropdownVisibleChange: setSelectOpen,
689
+ filterOption: (str, option) => {
690
+ return (option.labelText || "").toLowerCase().includes((str || "").toLowerCase());
691
+ }
692
+ },
693
+ renderOptions(
694
+ state.service.resources || [],
695
+ "form_record_id",
696
+ "label",
697
+ "resource"
698
+ )
699
+ )
700
+ ))
701
+ )), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "quantity" }, /* @__PURE__ */ import_react.default.createElement(import_antd.InputNumber, null)), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "like_status" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Input, null))), isDay && !(0, import_utils5.isAppointment)(state.service.cacheItem, state) ? /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { span: 24 }, /* @__PURE__ */ import_react.default.createElement(
702
+ import_antd.Form.Item,
703
+ {
704
+ label: import_utils.locales.getText("pisell2.text.quantity"),
705
+ name: "quantity",
706
+ rules: [{ required: true }]
707
+ },
708
+ /* @__PURE__ */ import_react.default.createElement(
709
+ import_antd.InputNumber,
710
+ {
711
+ size: "large",
712
+ style: { width: "100%" },
713
+ min: 1,
714
+ max: 999999,
715
+ formatter: (value) => {
716
+ if (value !== void 0) {
717
+ return Math.floor(value);
718
+ }
719
+ return value;
720
+ }
721
+ }
558
722
  )
559
- ))
560
- )), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "quantity" }, /* @__PURE__ */ import_react.default.createElement(import_antd.InputNumber, null)), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { hidden: true, name: "like_status" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Input, null)))))), state.renderType !== "eventBooking" && errorList.map((d, i) => {
723
+ )) : null)
724
+ )), showResource && errorList.map((d, i) => {
561
725
  return /* @__PURE__ */ import_react.default.createElement(
562
726
  import_antd.Alert,
563
727
  {
@@ -591,17 +755,17 @@ var Info = (_, ref) => {
591
755
  }, [
592
756
  state.service.changeService,
593
757
  state.service.editModal,
594
- (_s = state.service.cacheItem) == null ? void 0 : _s.autoClose,
758
+ (_t = state.service.cacheItem) == null ? void 0 : _t.autoClose,
595
759
  import_utils.locales,
596
- (_v = (_u = (_t = state.service) == null ? void 0 : _t.cacheItem) == null ? void 0 : _u._extend) == null ? void 0 : _v.product_name,
760
+ (_w = (_v = (_u = state.service) == null ? void 0 : _u.cacheItem) == null ? void 0 : _v._extend) == null ? void 0 : _w.product_name,
597
761
  bundles,
598
762
  state.amountSymbol,
599
763
  state.channelDisabledEdit,
600
- (_x = (_w = state.service.cacheItem) == null ? void 0 : _w._extend) == null ? void 0 : _x.origin_total,
764
+ (_y = (_x = state.service.cacheItem) == null ? void 0 : _x._extend) == null ? void 0 : _y.origin_total,
601
765
  isDiscount,
602
766
  isReason,
603
767
  state.renderType,
604
- (_B = (_A = (_z = (_y = state.bookingConfig) == null ? void 0 : _y.config) == null ? void 0 : _z.basic) == null ? void 0 : _A.service_time) == null ? void 0 : _B.value,
768
+ (_C = (_B = (_A = (_z = state.bookingConfig) == null ? void 0 : _z.config) == null ? void 0 : _A.basic) == null ? void 0 : _B.service_time) == null ? void 0 : _C.value,
605
769
  SelectTime,
606
770
  durationProps,
607
771
  timeObj,
@@ -611,7 +775,11 @@ var Info = (_, ref) => {
611
775
  selectOpen,
612
776
  state.service.resources,
613
777
  errorList,
614
- useTotal
778
+ useTotal,
779
+ useStartDate,
780
+ useEndDate,
781
+ showResource,
782
+ holderLists
615
783
  ]);
616
784
  };
617
785
  var editService_default = (0, import_react.forwardRef)(Info);