@pisell/private-materials 3.3.83 → 3.3.84

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 (173) 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 +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +5 -5
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +5 -5
  11. package/es/businessModel/SalesModel/Sales/index.js +37 -4
  12. package/es/components/Sales/Resource/index.js +2 -2
  13. package/es/components/Sales/Resource/serve.d.ts +7 -0
  14. package/es/components/Sales/Resource/serve.js +10 -0
  15. package/es/components/appointmentBooking/components/Cart/Item/index.less +3 -3
  16. package/es/components/appointmentBooking/components/Content/index.less +1 -1
  17. package/es/components/appointmentBooking/components/Header/index.js +8 -14
  18. package/es/components/appointmentBooking/components/Services/index.js +38 -36
  19. package/es/components/appointmentBooking/components/Voucher/index.js +1 -1
  20. package/es/components/appointmentBooking/index.js +14 -0
  21. package/es/components/appointmentBooking/index.less +1 -1
  22. package/es/components/appointmentBooking/locales.d.ts +0 -3
  23. package/es/components/appointmentBooking/locales.js +0 -3
  24. package/es/components/booking/components/footer/utils.d.ts +1 -0
  25. package/es/components/booking/components/footer/utils.js +1 -1
  26. package/es/components/booking/components/voucher/index.js +2 -2
  27. package/es/components/booking/editBookingModal/index.d.ts +5 -0
  28. package/es/components/booking/editBookingModal/index.js +386 -0
  29. package/es/components/booking/editBookingModal/index.less +8 -0
  30. package/es/components/booking/editBookingModal/locales.d.ts +21 -0
  31. package/es/components/booking/editBookingModal/locales.js +20 -0
  32. package/es/components/booking/editBookingModal/mock.d.ts +807 -0
  33. package/es/components/booking/editBookingModal/mock.js +2993 -0
  34. package/es/components/booking/editBookingModal/serve.d.ts +51 -0
  35. package/es/components/booking/editBookingModal/serve.js +288 -0
  36. package/es/components/booking/editBookingModal/type.d.ts +12 -0
  37. package/es/components/booking/editBookingModal/type.js +1 -0
  38. package/es/components/booking/editBookingModal/utils.d.ts +12 -0
  39. package/es/components/booking/editBookingModal/utils.js +157 -0
  40. package/es/components/booking/info/service2/utils.d.ts +1 -1
  41. package/es/components/booking/info/service2/utils.js +3 -2
  42. package/es/components/booking/info2/service/addService/utils.d.ts +10 -0
  43. package/es/components/booking/info2/service/addService/utils.js +44 -13
  44. package/es/components/booking/info2/service/editService/Resources/index.js +22 -8
  45. package/es/components/booking/info2/service/editService/Resources/index.less +6 -0
  46. package/es/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.d.ts +7 -0
  47. package/es/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.js +26 -0
  48. package/es/components/booking/info2/service/editService/ResourcesV2/index.d.ts +10 -0
  49. package/es/components/booking/info2/service/editService/ResourcesV2/index.js +308 -0
  50. package/es/components/booking/info2/service/editService/ResourcesV2/index.less +44 -0
  51. package/es/components/booking/info2/utilsByBooking.js +9 -0
  52. package/es/components/booking/locales.d.ts +3 -0
  53. package/es/components/booking/locales.js +3 -0
  54. package/es/components/booking/utils.d.ts +2 -2
  55. package/es/components/eventBooking/components/Provider/Event/index.js +13 -4
  56. package/es/components/eventBooking/components/bookingDetailModal/index.js +19 -3
  57. package/es/components/eventBooking/index.js +21 -7
  58. package/es/components/eventBooking/locales.js +3 -3
  59. package/es/components/index.d.ts +3 -1
  60. package/es/components/index.js +3 -1
  61. package/es/components/pay/toC/PaymentMethods/index.js +5 -4
  62. package/es/components/stepController/components/Content/index.d.ts +7 -0
  63. package/es/components/stepController/components/Content/index.js +9 -0
  64. package/es/components/stepController/components/Content/index.less +8 -0
  65. package/es/components/stepController/components/Footer/index.d.ts +8 -0
  66. package/es/components/stepController/components/Footer/index.js +15 -0
  67. package/es/components/stepController/components/Footer/index.less +39 -0
  68. package/es/components/stepController/components/Header/index.d.ts +20 -0
  69. package/es/components/stepController/components/Header/index.js +97 -0
  70. package/es/components/stepController/components/Header/index.less +21 -0
  71. package/es/components/stepController/index.d.ts +5 -0
  72. package/es/components/stepController/index.js +64 -0
  73. package/es/components/stepController/index.less +11 -0
  74. package/es/components/stepController/locales.d.ts +27 -0
  75. package/es/components/stepController/locales.js +32 -0
  76. package/es/components/stepController/types.d.ts +23 -0
  77. package/es/components/stepController/types.js +1 -0
  78. package/es/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
  79. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
  80. package/es/components/ticketBooking/components/ticketBooking/index.js +257 -138
  81. package/es/components/ticketBooking/locales.d.ts +164 -146
  82. package/es/components/ticketBooking/locales.js +195 -147
  83. package/es/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
  84. package/es/components/ticketBooking/utils/formatProductMessage.js +62 -0
  85. package/es/components/ticketBooking/utils/formatTime.d.ts +31 -0
  86. package/es/components/ticketBooking/utils/formatTime.js +144 -0
  87. package/es/hooks/useWindowSize.d.ts +5 -0
  88. package/es/hooks/useWindowSize.js +26 -0
  89. package/es/index.d.ts +2 -0
  90. package/es/index.js +3 -1
  91. package/lib/businessModel/SalesModel/Sales/index.js +22 -8
  92. package/lib/components/Sales/Resource/index.js +1 -1
  93. package/lib/components/Sales/Resource/serve.d.ts +7 -0
  94. package/lib/components/Sales/Resource/serve.js +9 -2
  95. package/lib/components/appointmentBooking/components/Cart/Item/index.less +3 -3
  96. package/lib/components/appointmentBooking/components/Content/index.less +1 -1
  97. package/lib/components/appointmentBooking/components/Header/index.js +2 -3
  98. package/lib/components/appointmentBooking/components/Services/index.js +19 -18
  99. package/lib/components/appointmentBooking/components/Voucher/index.js +1 -1
  100. package/lib/components/appointmentBooking/index.js +11 -0
  101. package/lib/components/appointmentBooking/index.less +1 -1
  102. package/lib/components/appointmentBooking/locales.d.ts +0 -3
  103. package/lib/components/appointmentBooking/locales.js +0 -3
  104. package/lib/components/booking/components/footer/utils.d.ts +1 -0
  105. package/lib/components/booking/components/footer/utils.js +2 -0
  106. package/lib/components/booking/components/voucher/index.js +11 -23
  107. package/lib/components/booking/editBookingModal/index.d.ts +5 -0
  108. package/lib/components/booking/editBookingModal/index.js +363 -0
  109. package/lib/components/booking/editBookingModal/index.less +8 -0
  110. package/lib/components/booking/editBookingModal/locales.d.ts +21 -0
  111. package/lib/components/booking/editBookingModal/locales.js +44 -0
  112. package/lib/components/booking/editBookingModal/mock.d.ts +807 -0
  113. package/lib/components/booking/editBookingModal/mock.js +3314 -0
  114. package/lib/components/booking/editBookingModal/serve.d.ts +51 -0
  115. package/lib/components/booking/editBookingModal/serve.js +178 -0
  116. package/lib/components/booking/editBookingModal/type.d.ts +12 -0
  117. package/lib/components/booking/editBookingModal/type.js +17 -0
  118. package/lib/components/booking/editBookingModal/utils.d.ts +12 -0
  119. package/lib/components/booking/editBookingModal/utils.js +158 -0
  120. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  121. package/lib/components/booking/info/service2/utils.js +2 -2
  122. package/lib/components/booking/info2/service/addService/utils.d.ts +10 -0
  123. package/lib/components/booking/info2/service/addService/utils.js +27 -4
  124. package/lib/components/booking/info2/service/editService/Resources/index.js +54 -10
  125. package/lib/components/booking/info2/service/editService/Resources/index.less +6 -0
  126. package/lib/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.d.ts +7 -0
  127. package/lib/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.js +53 -0
  128. package/lib/components/booking/info2/service/editService/ResourcesV2/index.d.ts +10 -0
  129. package/lib/components/booking/info2/service/editService/ResourcesV2/index.js +311 -0
  130. package/lib/components/booking/info2/service/editService/ResourcesV2/index.less +44 -0
  131. package/lib/components/booking/info2/utilsByBooking.js +6 -0
  132. package/lib/components/booking/locales.d.ts +3 -0
  133. package/lib/components/booking/locales.js +3 -0
  134. package/lib/components/booking/utils.d.ts +2 -2
  135. package/lib/components/eventBooking/components/Provider/Event/index.js +10 -3
  136. package/lib/components/eventBooking/components/bookingDetailModal/index.js +9 -3
  137. package/lib/components/eventBooking/index.js +11 -7
  138. package/lib/components/eventBooking/locales.js +3 -3
  139. package/lib/components/index.d.ts +3 -1
  140. package/lib/components/index.js +6 -0
  141. package/lib/components/pay/toC/PaymentMethods/index.js +10 -9
  142. package/lib/components/stepController/components/Content/index.d.ts +7 -0
  143. package/lib/components/stepController/components/Content/index.js +40 -0
  144. package/lib/components/stepController/components/Content/index.less +8 -0
  145. package/lib/components/stepController/components/Footer/index.d.ts +8 -0
  146. package/lib/components/stepController/components/Footer/index.js +49 -0
  147. package/lib/components/stepController/components/Footer/index.less +39 -0
  148. package/lib/components/stepController/components/Header/index.d.ts +20 -0
  149. package/lib/components/stepController/components/Header/index.js +104 -0
  150. package/lib/components/stepController/components/Header/index.less +21 -0
  151. package/lib/components/stepController/index.d.ts +5 -0
  152. package/lib/components/stepController/index.js +89 -0
  153. package/lib/components/stepController/index.less +11 -0
  154. package/lib/components/stepController/locales.d.ts +27 -0
  155. package/lib/components/stepController/locales.js +50 -0
  156. package/lib/components/stepController/types.d.ts +23 -0
  157. package/lib/components/stepController/types.js +17 -0
  158. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +1 -1
  159. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
  160. package/lib/components/ticketBooking/components/ticketBooking/index.js +263 -139
  161. package/lib/components/ticketBooking/locales.d.ts +164 -146
  162. package/lib/components/ticketBooking/locales.js +22 -4
  163. package/lib/components/ticketBooking/utils/formatProductMessage.d.ts +2 -0
  164. package/lib/components/ticketBooking/utils/formatProductMessage.js +84 -0
  165. package/lib/components/ticketBooking/utils/formatTime.d.ts +31 -0
  166. package/lib/components/ticketBooking/utils/formatTime.js +139 -0
  167. package/lib/hooks/useWindowSize.d.ts +5 -0
  168. package/lib/hooks/useWindowSize.js +51 -0
  169. package/lib/index.d.ts +2 -0
  170. package/lib/index.js +6 -0
  171. package/lowcode/edit-booking-modal/meta.ts +53 -0
  172. package/lowcode/step-controller/meta.ts +88 -0
  173. package/package.json +3 -3
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { SelectProps } from 'antd';
3
+ interface MaxLengthSelectProps<T> extends SelectProps<T> {
4
+ maxLength: number;
5
+ }
6
+ declare const _default: import("react").ForwardRefExoticComponent<Partial<MaxLengthSelectProps<any>> & import("react").RefAttributes<unknown>>;
7
+ export default _default;
@@ -0,0 +1,53 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/components/booking/info2/service/editService/ResourcesV2/MaxLengthSelect/index.tsx
20
+ var MaxLengthSelect_exports = {};
21
+ __export(MaxLengthSelect_exports, {
22
+ default: () => MaxLengthSelect_default
23
+ });
24
+ module.exports = __toCommonJS(MaxLengthSelect_exports);
25
+ var import_react = require("react");
26
+ var import_antd = require("antd");
27
+ var MaxLengthSelect = (props, ref) => {
28
+ (0, import_react.useImperativeHandle)(ref, () => {
29
+ return {
30
+ onChange: handleChange
31
+ };
32
+ });
33
+ const handleChange = (e, _option) => {
34
+ if (props.onChange) {
35
+ if ((props.mode === "multiple" || props.mode === "tags") && props.maxLength) {
36
+ if (props.value && props.value.length >= props.maxLength && e.length > props.value.length) {
37
+ return;
38
+ }
39
+ }
40
+ props.onChange(e, _option);
41
+ }
42
+ };
43
+ return /* @__PURE__ */ React.createElement(
44
+ import_antd.Select,
45
+ {
46
+ ...props,
47
+ onChange: handleChange,
48
+ popupMatchSelectWidth: false
49
+ },
50
+ props.children
51
+ );
52
+ };
53
+ var MaxLengthSelect_default = (0, import_react.forwardRef)(MaxLengthSelect);
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ interface IResourcesProps {
4
+ [key: string]: any;
5
+ /** 展示资源的变动情况 */
6
+ originCacheItem: any;
7
+ originValue: any;
8
+ }
9
+ declare const _default: React.ForwardRefExoticComponent<Omit<IResourcesProps, "ref"> & React.RefAttributes<unknown>>;
10
+ export default _default;
@@ -0,0 +1,311 @@
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/components/booking/info2/service/editService/ResourcesV2/index.tsx
30
+ var ResourcesV2_exports = {};
31
+ __export(ResourcesV2_exports, {
32
+ default: () => ResourcesV2_default
33
+ });
34
+ module.exports = __toCommonJS(ResourcesV2_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_classnames = __toESM(require("classnames"));
37
+ var import_antd = require("antd");
38
+ var import_materials = require("@pisell/materials");
39
+ var import_MaxLengthSelect = __toESM(require("./MaxLengthSelect"));
40
+ var import_like = __toESM(require("../../../../info/service/like"));
41
+ var import_index = require("./index.less");
42
+ var import_utils = require("@pisell/utils");
43
+ var import_utilsByBooking = require("../../../utilsByBooking");
44
+ var import_lodash = require("lodash");
45
+ var import_utils2 = require("../utils");
46
+ var import_ahooks = require("ahooks");
47
+ var import_icons = require("@ant-design/icons");
48
+ var Resources = ({
49
+ state,
50
+ cacheItem,
51
+ originCacheItem,
52
+ getCurrentCacheItem,
53
+ onChange,
54
+ value,
55
+ originValue,
56
+ config = {
57
+ // 是否显示自动分配
58
+ autoAllocation: true,
59
+ // 是否显示资源错误图标
60
+ resourceErrorIcon: true,
61
+ disabled: false,
62
+ size: "large"
63
+ }
64
+ }, ref) => {
65
+ var _a, _b, _c;
66
+ const [showError, setShowError] = (0, import_react.useState)(false);
67
+ const update = (0, import_ahooks.useUpdate)();
68
+ const data = (0, import_react.useMemo)(() => {
69
+ var _a2;
70
+ return ((_a2 = cacheItem == null ? void 0 : cacheItem._data) == null ? void 0 : _a2.resources) || [];
71
+ }, [(_a = cacheItem == null ? void 0 : cacheItem._data) == null ? void 0 : _a.resources]);
72
+ const originData = (0, import_react.useMemo)(() => {
73
+ var _a2;
74
+ return ((_a2 = cacheItem == null ? void 0 : cacheItem._data) == null ? void 0 : _a2.resources) || [];
75
+ }, [(_b = originCacheItem == null ? void 0 : originCacheItem._data) == null ? void 0 : _b.resource]);
76
+ const resourceMaps = (0, import_react.useMemo)(() => {
77
+ var _a2;
78
+ return ((_a2 = cacheItem == null ? void 0 : cacheItem._data) == null ? void 0 : _a2.resourceMaps) || [];
79
+ }, [(_c = cacheItem == null ? void 0 : cacheItem._data) == null ? void 0 : _c.resourceMaps]);
80
+ const defaultValue = (0, import_react.useMemo)(() => {
81
+ return data.reduce((pre, cur2) => {
82
+ pre[cur2.form_id] = [];
83
+ return pre;
84
+ }, {});
85
+ }, [data]);
86
+ const _value = (0, import_react.useMemo)(() => {
87
+ return value || defaultValue;
88
+ }, [value, defaultValue]);
89
+ const handleCheckAutoAllocation = (id, checked) => {
90
+ (0, import_utils2.setAutoAllocationStorage)({ [id]: checked });
91
+ update();
92
+ };
93
+ const _onChange = (val, form_id, key) => {
94
+ let _val = { ..._value };
95
+ let maps = _val[form_id] ? _val[form_id].reduce((pre, cur2) => {
96
+ pre[cur2.relation_id] = cur2;
97
+ return pre;
98
+ }, {}) : {};
99
+ _val[form_id] = val.map((d) => {
100
+ var _a2, _b2, _c2, _d2, _e, _f, _g, _h;
101
+ let _d = maps[d];
102
+ if (_d) {
103
+ if (key === "like_status") {
104
+ d[key].like_status = val;
105
+ }
106
+ }
107
+ const currentForm = (resourceMaps == null ? void 0 : resourceMaps[form_id]) || {};
108
+ return (
109
+ // maps[d] 为真时, 说明是之前已选择, 否则为新增的值,补充数据
110
+ maps[d] || {
111
+ relation_type: ((_b2 = (_a2 = currentForm.renderListMaps[d]) == null ? void 0 : _a2.usable) == null ? void 0 : _b2.relation_type) || "form",
112
+ form_id,
113
+ relation_id: d,
114
+ like_status: "common",
115
+ children: (_d2 = (_c2 = currentForm.renderListMaps) == null ? void 0 : _c2[d]) == null ? void 0 : _d2.children,
116
+ // 新添加的数据补充错误信息
117
+ errors: (0, import_utilsByBooking.getErrorList)(
118
+ (_e = currentForm.renderListMaps) == null ? void 0 : _e[d],
119
+ getCurrentCacheItem()
120
+ ),
121
+ metadata: {
122
+ ...(_g = (_f = currentForm.renderListMaps) == null ? void 0 : _f[d]) == null ? void 0 : _g.metadata,
123
+ form_name: currentForm.title,
124
+ resource_name: (_h = currentForm.renderListMaps[d]) == null ? void 0 : _h.main_field
125
+ }
126
+ }
127
+ );
128
+ });
129
+ setShowError(false);
130
+ onChange == null ? void 0 : onChange(_val);
131
+ };
132
+ const setLikeStatus = (val, form_id, key) => {
133
+ var _a2;
134
+ let _val = { ..._value };
135
+ if ((_a2 = _val == null ? void 0 : _val[form_id]) == null ? void 0 : _a2[0]) {
136
+ _val[form_id][0][key] = val;
137
+ onChange == null ? void 0 : onChange(_val);
138
+ }
139
+ };
140
+ const renderOptions = (0, import_react.useCallback)(
141
+ (array, value2 = "value", label = "label", type) => {
142
+ return array.map((d) => {
143
+ let props = {};
144
+ if (type === "resource") {
145
+ props.labelText = d.labelText;
146
+ }
147
+ return /* @__PURE__ */ import_react.default.createElement(
148
+ import_antd.Select.Option,
149
+ {
150
+ value: d[value2],
151
+ key: d[value2],
152
+ ...props,
153
+ relation_type: d.relation_type
154
+ },
155
+ d[label]
156
+ );
157
+ });
158
+ },
159
+ [config == null ? void 0 : config.resourceErrorIcon]
160
+ );
161
+ const check = () => {
162
+ var _a2;
163
+ for (let item of data) {
164
+ let _length = (_a2 = _value[item.form_id]) == null ? void 0 : _a2.length;
165
+ if (item.select_type.min > _length) {
166
+ setShowError(true);
167
+ return false;
168
+ }
169
+ }
170
+ return true;
171
+ };
172
+ (0, import_react.useImperativeHandle)(ref, () => {
173
+ return {
174
+ check
175
+ };
176
+ });
177
+ const getIsAutoAllocation = (id) => {
178
+ return (0, import_utils2.getAutoAllocationStorage)(id);
179
+ };
180
+ const renderItem = (item, isOrigin) => {
181
+ var _a2;
182
+ if (!item) return null;
183
+ const disabled = isOrigin || (config == null ? void 0 : config.disabled);
184
+ const cur2 = isOrigin ? originValue[item.form_id] : _value[item.form_id];
185
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Col, { flex: "1 0" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-v2 resource-col" }, item.select_type.type === "multiple" ? null : /* @__PURE__ */ import_react.default.createElement(
186
+ import_antd.Button,
187
+ {
188
+ className: (0, import_classnames.default)(
189
+ "resource-col-like-wrap",
190
+ {
191
+ "resource-col-like-wrap-disabled": disabled
192
+ },
193
+ (config == null ? void 0 : config.size) || "large"
194
+ ),
195
+ size: config == null ? void 0 : config.size,
196
+ onClick: () => {
197
+ var _a3;
198
+ if (disabled) {
199
+ return;
200
+ }
201
+ setLikeStatus(
202
+ ((_a3 = cur2 == null ? void 0 : cur2[0]) == null ? void 0 : _a3.like_status) === "like" ? "common" : "like",
203
+ item.form_id,
204
+ "like_status"
205
+ );
206
+ }
207
+ },
208
+ /* @__PURE__ */ import_react.default.createElement(
209
+ import_like.default,
210
+ {
211
+ status: (_a2 = cur2 == null ? void 0 : cur2[0]) == null ? void 0 : _a2.like_status,
212
+ className: `${disabled ? "like-icon-disabled" : ""}`
213
+ }
214
+ )
215
+ ), /* @__PURE__ */ import_react.default.createElement(
216
+ import_MaxLengthSelect.default,
217
+ {
218
+ className: "resource-col-select",
219
+ size: (config == null ? void 0 : config.size) || "large",
220
+ maxLength: item.select_type.max,
221
+ mode: item.select_type.type === "multiple" ? "multiple" : void 0,
222
+ onChange: (e) => {
223
+ let val = e;
224
+ if (!(0, import_lodash.isArray)(e)) {
225
+ if (e || e === 0) {
226
+ val = [e];
227
+ }
228
+ }
229
+ _onChange(val, item.form_id, "value");
230
+ },
231
+ value: cur2 == null ? void 0 : cur2.map((d) => d.relation_id),
232
+ showSearch: true,
233
+ filterOption: (str, option) => {
234
+ return ((option == null ? void 0 : option.labelText) || "").toLowerCase().includes((str || "").toLowerCase());
235
+ },
236
+ disabled
237
+ },
238
+ renderOptions(
239
+ item.renderList,
240
+ "id",
241
+ (config == null ? void 0 : config.resourceErrorIcon) ? "label" : "labelText",
242
+ "resource"
243
+ )
244
+ ), (config == null ? void 0 : config.autoAllocation) ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
245
+ import_antd.Checkbox,
246
+ {
247
+ checked: getIsAutoAllocation(item.form_id),
248
+ onChange: (e) => {
249
+ handleCheckAutoAllocation(item.form_id, e.target.checked);
250
+ }
251
+ }
252
+ ), /* @__PURE__ */ import_react.default.createElement(
253
+ import_antd.Tooltip,
254
+ {
255
+ title: import_utils.locales.getText(
256
+ "page.booking.text.resource.check-auto-allocation-tip"
257
+ )
258
+ },
259
+ /* @__PURE__ */ import_react.default.createElement(import_icons.QuestionCircleOutlined, null)
260
+ )) : null)));
261
+ };
262
+ const renderErrors = (item) => {
263
+ const cur2 = _value[item.form_id];
264
+ const errors = (cur2 || []).reduce((pre, d) => {
265
+ return pre.concat((d == null ? void 0 : d.errors) || []);
266
+ }, []);
267
+ return state.renderType !== "eventBooking" && (errors || []).map((d) => {
268
+ return /* @__PURE__ */ import_react.default.createElement(
269
+ import_antd.Alert,
270
+ {
271
+ key: d.type,
272
+ message: d.label,
273
+ type: "warning",
274
+ showIcon: true,
275
+ style: { marginBottom: 12 }
276
+ }
277
+ );
278
+ });
279
+ };
280
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, data.map((item) => {
281
+ const originItem = originData == null ? void 0 : originData.find(
282
+ (originDataItem) => originDataItem.form_id === item.form_id
283
+ );
284
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, { key: item.form_id }, /* @__PURE__ */ import_react.default.createElement(
285
+ import_antd.Form.Item,
286
+ {
287
+ label: item.title,
288
+ required: true,
289
+ labelCol: config == null ? void 0 : config.labelCol,
290
+ extra: showError && item.select_type.min > (cur == null ? void 0 : cur.length) ? /* @__PURE__ */ import_react.default.createElement("span", { style: { color: "#ff4d4f" } }, import_utils.locales.getText(
291
+ "page.booking.text.resource.min-length-error"
292
+ )(item.select_type.min, item.title)) : void 0
293
+ },
294
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Row, { gutter: [16, 16], wrap: false }, renderItem(originItem, true), !!originItem ? /* @__PURE__ */ import_react.default.createElement(
295
+ import_antd.Col,
296
+ {
297
+ flex: "none",
298
+ style: { display: "flex", alignItems: "center" }
299
+ },
300
+ /* @__PURE__ */ import_react.default.createElement(
301
+ import_materials.Iconfont,
302
+ {
303
+ type: "pisell2-arrow-block-right",
304
+ style: { fontSize: 24, color: "#1b1b1b" }
305
+ }
306
+ )
307
+ ) : null, renderItem(item, false))
308
+ ), renderErrors(item));
309
+ }));
310
+ };
311
+ var ResourcesV2_default = (0, import_react.forwardRef)(Resources);
@@ -0,0 +1,44 @@
1
+ .resource-col.resource-v2 {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ gap: 10px;
6
+ width: 100%;
7
+ overflow: hidden;
8
+
9
+ .resource-col-like-wrap {
10
+ width: 32px;
11
+ height: 32px;
12
+
13
+ &.large {
14
+ width: 40px;
15
+ height: 40px;
16
+ }
17
+
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ padding: 0;
22
+ flex-shrink: 0;
23
+
24
+ .like-resource {
25
+ }
26
+ }
27
+
28
+ .resource-col-like-wrap-disabled,
29
+ .like-icon-disabled {
30
+ opacity: 0.5;
31
+ cursor: not-allowed;
32
+ }
33
+
34
+ .resource-col-select {
35
+ flex: 1;
36
+ overflow: hidden;
37
+
38
+ .resource-option-label-text {
39
+ display: inline-block;
40
+ overflow: hidden;
41
+ text-overflow: ellipsis;
42
+ }
43
+ }
44
+ }
@@ -180,6 +180,12 @@ var getErrorList = (resource, cacheItem) => {
180
180
  }
181
181
  }
182
182
  }
183
+ if (resource.unbound) {
184
+ list.push({
185
+ label: import_utils.locales.getText("pisell1.text.resource-error-message-unbound"),
186
+ type: "time"
187
+ });
188
+ }
183
189
  return list;
184
190
  };
185
191
  var formatResource = (resourceItem, cacheItem, formatLabel) => {
@@ -110,6 +110,7 @@ declare const _default: {
110
110
  'pisell1.text.resource-error-message-1': (x: string, y: string) => string;
111
111
  'pisell1.text.resource-error-message-2': (x: string, y: string, z: string) => string;
112
112
  'pisell1.text.resource-error-message-3': (x: string, y: string, z: string) => string;
113
+ 'pisell1.text.resource-error-message-unbound': string;
113
114
  'pisell1.text.no-addons': string;
114
115
  'pisell1.text.no-resource': string;
115
116
  'pisell1.text.no-payments': string;
@@ -389,6 +390,7 @@ declare const _default: {
389
390
  'pisell1.text.resource-error-message-1': (x: string, y: string) => string;
390
391
  'pisell1.text.resource-error-message-2': (x: string, y: string, z: string) => string;
391
392
  'pisell1.text.resource-error-message-3': (x: string, y: string, z: string) => string;
393
+ 'pisell1.text.resource-error-message-unbound': string;
392
394
  'pisell2.text.flexible': string;
393
395
  'pisell2.text.order-discount': string;
394
396
  'pisell2.text.no-product-added': string;
@@ -660,6 +662,7 @@ declare const _default: {
660
662
  'pisell1.text.resource-error-message-1': (x: string, y: string) => string;
661
663
  'pisell1.text.resource-error-message-2': (x: string, y: string, z: string) => string;
662
664
  'pisell1.text.resource-error-message-3': (x: string, y: string, z: string) => string;
665
+ 'pisell1.text.resource-error-message-unbound': string;
663
666
  'pisell2.text.flexible': string;
664
667
  'pisell2.text.order-discount': string;
665
668
  'pisell2.text.no-product-added': string;
@@ -154,6 +154,7 @@ var locales_default = {
154
154
  "pisell1.text.resource-error-message-1": (x, y) => `${x} doesn't provide ${y}, but your team member can still book appointments.`,
155
155
  "pisell1.text.resource-error-message-2": (x, y, z) => `${x} isn't available between ${y} and ${z}, but your team member can still book appointments.`,
156
156
  "pisell1.text.resource-error-message-3": (x, y, z) => `${x} is fully booked between ${y} and ${z}, but your team member can still book appointments.`,
157
+ "pisell1.text.resource-error-message-unbound": "This booking product is not associated with the target resource.",
157
158
  "pisell1.text.no-addons": "No addons",
158
159
  "pisell1.text.no-resource": "No resource",
159
160
  "pisell1.text.no-payments": "No payments",
@@ -465,6 +466,7 @@ var locales_default = {
465
466
  "pisell1.text.resource-error-message-1": (x, y) => `${x} 不提供 ${y},但您的团队成员仍然可以预约。`,
466
467
  "pisell1.text.resource-error-message-2": (x, y, z) => `${x}在${y}到${z}之间不提供服务,但您的团队成员仍然可以预约。`,
467
468
  "pisell1.text.resource-error-message-3": (x, y, z) => `${x}在${y}到${z}之间已约满,但您的团队成员仍然可以预约。`,
469
+ "pisell1.text.resource-error-message-unbound": "该预约商品未关联目标资源。",
468
470
  "pisell2.text.flexible": "灵活",
469
471
  "pisell2.text.order-discount": "折扣",
470
472
  "pisell2.text.no-product-added": "未添加商品",
@@ -768,6 +770,7 @@ var locales_default = {
768
770
  "pisell1.text.resource-error-message-1": (x, y) => `${x} 不提供 ${y},但您的團隊成員仍然可以預約。`,
769
771
  "pisell1.text.resource-error-message-2": (x, y, z) => `${x}在${y}到${z}之間不提供服務,但您的團隊成員仍然可以預約。`,
770
772
  "pisell1.text.resource-error-message-3": (x, y, z) => `${x}在${y}到${z}之間已約滿,但您的團隊成員仍然可以預約。`,
773
+ "pisell1.text.resource-error-message-unbound": "該預約商品未關聯目標資源。",
771
774
  "pisell2.text.flexible": "靈活",
772
775
  "pisell2.text.order-discount": "折扣",
773
776
  "pisell2.text.no-product-added": "未添加商品",
@@ -165,10 +165,10 @@ export declare const getProductTotalPrice: (item: any) => number;
165
165
  export declare const getDuration: (duration: number | {
166
166
  type: string;
167
167
  value: number;
168
- }) => number | "flexible" | {
168
+ }) => number | {
169
169
  type: string;
170
170
  value: number;
171
- };
171
+ } | "flexible";
172
172
  export declare const isWalkIn: (customer_id?: number | string) => boolean;
173
173
  export declare const getIsEdit: (state: any) => boolean;
174
174
  export {};
@@ -48,6 +48,7 @@ var Event = () => {
48
48
  const { onOpenEventDetail, open } = (0, import_Sales.useEventDetail)();
49
49
  const [lists, setLists] = (0, import_react.useState)();
50
50
  const customer = (0, import_useLoginUser.default)();
51
+ const { appUtils } = (0, import_Sales.useCustomer)();
51
52
  (0, import_react.useEffect)(() => {
52
53
  var _a2;
53
54
  const eventList = (eventData == null ? void 0 : eventData.eventList) || [];
@@ -59,16 +60,22 @@ var Event = () => {
59
60
  }
60
61
  }, [eventData == null ? void 0 : eventData.eventList]);
61
62
  (0, import_react.useEffect)(() => {
62
- var _a2, _b2;
63
+ var _a2, _b2, _c, _d, _e;
63
64
  const id = (_b2 = (_a2 = data == null ? void 0 : data.resourceData) == null ? void 0 : _a2.currentResourceItem) == null ? void 0 : _b2.id;
64
65
  if (!id) return;
65
- getEventList.run({
66
+ const history = ((_c = appUtils == null ? void 0 : appUtils.getHistory) == null ? void 0 : _c.call(appUtils)) || {};
67
+ const query = (_d = history == null ? void 0 : history.location) == null ? void 0 : _d.query;
68
+ const params = {
66
69
  event_item_resource_id: id,
67
70
  skip: 1,
68
71
  num: 100,
69
72
  customer_id: customer == null ? void 0 : customer.id,
70
73
  open_quotation: 1
71
- });
74
+ };
75
+ if (query == null ? void 0 : query.ids) {
76
+ params.ids = (_e = query == null ? void 0 : query.ids) == null ? void 0 : _e.split(",");
77
+ }
78
+ getEventList.run(params);
72
79
  }, [(_b = (_a = data == null ? void 0 : data.resourceData) == null ? void 0 : _a.currentResourceItem) == null ? void 0 : _b.id, customer == null ? void 0 : customer.id]);
73
80
  const handleClick = (item) => {
74
81
  selectEvent(item);
@@ -44,7 +44,7 @@ var import_OrderProductModal = __toESM(require("../Provider/OrderProductModal/in
44
44
  var import_index = require("./index.less");
45
45
  var import_useEngineContext = __toESM(require("../../../../hooks/useEngineContext"));
46
46
  var BookingDetailModal = (props) => {
47
- var _a;
47
+ var _a, _b, _c;
48
48
  const modalContentRef = (0, import_react.useRef)(null);
49
49
  const context = (0, import_useEngineContext.default)();
50
50
  const { utils } = context.appHelper || {};
@@ -58,11 +58,17 @@ var BookingDetailModal = (props) => {
58
58
  checkBeforeSelectEventDetail
59
59
  } = (0, import_Sales.useEventDetail)();
60
60
  const { addToCart, checkBeforeAddToCart, checkBeforeAddToCartResquest } = (0, import_Sales.useCart)();
61
+ const { initData } = (0, import_Sales.useInit)();
61
62
  const [activeTab, setActiveTab] = (0, import_react.useState)("introduction");
62
63
  const [isScrolling, setIsScrolling] = (0, import_react.useState)(false);
63
64
  const [openCheckout, setOpenCheckout] = (0, import_react.useState)(false);
64
65
  const isUserClickRef = (0, import_react.useRef)(false);
65
66
  const scrollTimeoutRef = (0, import_react.useRef)(null);
67
+ const buttonText = (0, import_react.useMemo)(() => {
68
+ var _a2, _b2, _c2;
69
+ const config = ((_b2 = (_a2 = initData == null ? void 0 : initData.boardSetting) == null ? void 0 : _a2.config) == null ? void 0 : _b2.product_display_setting) || {};
70
+ return ((_c2 = utils == null ? void 0 : utils.translation) == null ? void 0 : _c2.call(utils, config == null ? void 0 : config.booking_event_v2_product_detail_button)) || import_utils.locales.getText("pisell2.event.add.to.cart");
71
+ }, [(_b = (_a = initData == null ? void 0 : initData.boardSetting) == null ? void 0 : _a.config) == null ? void 0 : _b.product_display_setting]);
66
72
  const anchorOptions = (0, import_react.useMemo)(
67
73
  () => [
68
74
  {
@@ -91,7 +97,7 @@ var BookingDetailModal = (props) => {
91
97
  const images = (0, import_react.useMemo)(() => {
92
98
  var _a2;
93
99
  return ((_a2 = detail == null ? void 0 : detail.introduction) == null ? void 0 : _a2.images) || [];
94
- }, [(_a = detail == null ? void 0 : detail.introduction) == null ? void 0 : _a.images]);
100
+ }, [(_c = detail == null ? void 0 : detail.introduction) == null ? void 0 : _c.images]);
95
101
  (0, import_react.useEffect)(() => {
96
102
  if (!modalContentRef.current) return;
97
103
  let isCurrentlyScrolling = false;
@@ -283,7 +289,7 @@ var BookingDetailModal = (props) => {
283
289
  destroyOnClose: true,
284
290
  className: "booking-detail-modal",
285
291
  onCancel: onCloseEventDetail,
286
- okText: import_utils.locales.getText("pisell2.event.add.to.cart"),
292
+ okText: buttonText,
287
293
  cancelVisible: false,
288
294
  onOk: handleOk,
289
295
  width: (0, import_utils.isMobile)() ? "100%" : 600,
@@ -55,13 +55,17 @@ var Content = () => {
55
55
  getBoardSetting.run({ item_type: "event_booking_v2" });
56
56
  }, []);
57
57
  (0, import_react.useEffect)(() => {
58
- if (!form_id) return;
59
- getResourceList.run({
60
- form_id,
61
- shop_id,
62
- form_data_status: "active"
63
- });
64
- }, [form_id]);
58
+ var _a2, _b, _c;
59
+ const history = ((_a2 = utils == null ? void 0 : utils.getHistory) == null ? void 0 : _a2.call(utils)) || {};
60
+ const query = (_b = history == null ? void 0 : history.location) == null ? void 0 : _b.query;
61
+ const params = {
62
+ front_end_cache_id: (query == null ? void 0 : query.cacheId) || ""
63
+ };
64
+ if (query == null ? void 0 : query.ids) {
65
+ params.event_item_ids = (_c = query == null ? void 0 : query.ids) == null ? void 0 : _c.split(",");
66
+ }
67
+ getResourceList.run(params);
68
+ }, []);
65
69
  return /* @__PURE__ */ import_react.default.createElement(
66
70
  "div",
67
71
  {
@@ -51,7 +51,7 @@ var locales_default = {
51
51
  "pisell2.event.campus": "Campus",
52
52
  "pisell2.event.resource": "Location",
53
53
  "pisell2.event.booking.options": "Booking options",
54
- "pisell2.event.add.to.cart": "Add to cart",
54
+ "pisell2.event.add.to.cart": "Add to Cart",
55
55
  "pisell2.event.description": "Description",
56
56
  "pisell2.event.view.more": "View more",
57
57
  "pisell2.event.view.less": "View less",
@@ -124,7 +124,7 @@ var locales_default = {
124
124
  "pisell2.event.campus": "校区",
125
125
  "pisell2.event.resource": "资源",
126
126
  "pisell2.event.booking.options": "预约选项",
127
- "pisell2.event.add.to.cart": "添加到购物车",
127
+ "pisell2.event.add.to.cart": "加入购物车",
128
128
  "pisell2.event.description": "描述",
129
129
  "pisell2.event.view.more": "查看更多",
130
130
  "pisell2.event.view.less": "收起",
@@ -197,7 +197,7 @@ var locales_default = {
197
197
  "pisell2.event.campus": "校區",
198
198
  "pisell2.event.resource": "資源",
199
199
  "pisell2.event.booking.options": "預約選項",
200
- "pisell2.event.add.to.cart": "添加到購物車",
200
+ "pisell2.event.add.to.cart": "加入購物車",
201
201
  "pisell2.event.description": "描述",
202
202
  "pisell2.event.view.more": "查看更多",
203
203
  "pisell2.event.view.less": "收起",
@@ -15,4 +15,6 @@ import WorkspaceListDetail from './workSpaceListDetail/';
15
15
  import WorkspaceList from './workSpaceList';
16
16
  import PisellSelectCustomerModal from './pisellSelectCustomerModal';
17
17
  import SubTotal from './subTotal';
18
- export { Login, BookingInfo, Booking, BookingNotes, BookingAddons, BookingForms, Schedules, ProductExtension, RuleSetting, TaxSelect, ToCPay, PisellSelectCustomerModal, Wallet, WalletList, WorkspaceList, WorkspaceListDetail, SubTotal, };
18
+ import StepController from './stepController';
19
+ import EditBookingModal from './booking/editBookingModal';
20
+ export { Login, BookingInfo, Booking, BookingNotes, BookingAddons, BookingForms, Schedules, ProductExtension, RuleSetting, TaxSelect, ToCPay, PisellSelectCustomerModal, Wallet, WalletList, WorkspaceList, WorkspaceListDetail, SubTotal, StepController, EditBookingModal };