@pisell/private-materials 6.6.28 → 6.6.30

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 (196) 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 +2 -2
  6. package/build/lowcode/preview.js +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +8 -8
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +9 -9
  11. package/es/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
  12. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +0 -1
  13. package/es/components/booking/info/hooks/useInfoHolder.d.ts +0 -1
  14. package/es/components/booking/info/service2/utils.d.ts +1 -1
  15. package/es/components/eftpos/hooks.d.ts +0 -1
  16. package/es/components/eftposPay/amount.d.ts +1 -1
  17. package/es/components/eftposPay/device.d.ts +1 -1
  18. package/es/components/eftposPay/hooks.d.ts +2 -2
  19. package/es/components/eftposPay/store/index.d.ts +5 -5
  20. package/es/components/eftposPay/tyro/hooks.d.ts +0 -1
  21. package/es/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
  22. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +0 -1
  23. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
  24. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +0 -1
  25. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +0 -1
  26. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +0 -1
  27. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +0 -1
  28. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +0 -1
  29. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +0 -1
  30. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
  31. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +0 -1
  32. package/es/components/shoppingCart/components/Empty/index.d.ts +0 -1
  33. package/es/components/ticketBooking/utils/index.d.ts +1 -1
  34. package/es/hooks/usePaymentLogger.d.ts +0 -1
  35. package/es/index.d.ts +4 -0
  36. package/es/index.js +4 -1
  37. package/es/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.d.ts +1 -1
  38. package/es/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.d.ts +1 -1
  39. package/es/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.d.ts +1 -1
  40. package/es/plus/productSelect/ProductCard/SkuCard/components/Duration/index.d.ts +1 -1
  41. package/es/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.d.ts +1 -1
  42. package/es/plus/productSelect/ProductCard/SkuCard/components/Resource/index.d.ts +1 -1
  43. package/es/plus/productSelect/ProductCard/SkuCard/components/Stock/index.d.ts +1 -1
  44. package/es/plus/productSelect/ProductCard/SkuCard/components/Time/index.d.ts +1 -1
  45. package/es/plus/saasAttendance/index.d.ts +6 -0
  46. package/es/plus/saasAttendance/index.js +5 -0
  47. package/es/plus/saasAttendance/locales.d.ts +318 -0
  48. package/es/plus/saasAttendance/locales.js +354 -0
  49. package/es/plus/saasAttendance/settings/BasicInfoTab.d.ts +5 -0
  50. package/es/plus/saasAttendance/settings/BasicInfoTab.js +96 -0
  51. package/es/plus/saasAttendance/settings/ClockInMethodTab.d.ts +8 -0
  52. package/es/plus/saasAttendance/settings/ClockInMethodTab.js +81 -0
  53. package/es/plus/saasAttendance/settings/CorrectionPolicyTab.d.ts +8 -0
  54. package/es/plus/saasAttendance/settings/CorrectionPolicyTab.js +293 -0
  55. package/es/plus/saasAttendance/settings/ShiftScheduleTab.d.ts +5 -0
  56. package/es/plus/saasAttendance/settings/ShiftScheduleTab.js +109 -0
  57. package/es/plus/saasAttendance/settings/components/MapField.d.ts +78 -0
  58. package/es/plus/saasAttendance/settings/components/MapField.js +810 -0
  59. package/es/plus/saasAttendance/settings/components/index.d.ts +3 -0
  60. package/es/plus/saasAttendance/settings/components/index.js +2 -0
  61. package/es/plus/saasAttendance/settings/components/membersField/index.d.ts +8 -0
  62. package/es/plus/saasAttendance/settings/components/membersField/index.js +216 -0
  63. package/es/plus/saasAttendance/settings/components/membersField/index.less +70 -0
  64. package/es/plus/saasAttendance/settings/components/shiftModal/index.d.ts +18 -0
  65. package/es/plus/saasAttendance/settings/components/shiftModal/index.js +438 -0
  66. package/es/plus/saasAttendance/settings/index.d.ts +18 -0
  67. package/es/plus/saasAttendance/settings/index.js +255 -0
  68. package/es/plus/saasAttendance/settings/index.less +495 -0
  69. package/es/plus/saasAttendance/settings/serve.d.ts +27 -0
  70. package/es/plus/saasAttendance/settings/serve.js +83 -0
  71. package/es/plus/saasAttendance/settings/types.d.ts +128 -0
  72. package/es/plus/saasAttendance/settings/types.js +1 -0
  73. package/es/plus/saasRole/components/PermissionManager/index.d.ts +19 -0
  74. package/es/plus/saasRole/components/PermissionManager/index.js +211 -0
  75. package/es/plus/saasRole/components/PermissionManager/index.less +71 -0
  76. package/es/plus/saasRole/index.d.ts +14 -0
  77. package/es/plus/saasRole/index.js +1036 -0
  78. package/es/plus/saasRole/index.less +196 -0
  79. package/es/plus/saasRole/locales.d.ts +193 -0
  80. package/es/plus/saasRole/locales.js +193 -0
  81. package/es/plus/saasRole/serve.d.ts +72 -0
  82. package/es/plus/saasRole/serve.js +304 -0
  83. package/es/plus/saasRole/types.d.ts +175 -0
  84. package/es/plus/saasRole/types.js +1 -0
  85. package/es/plus/saasRole/utils.d.ts +0 -0
  86. package/es/plus/saasRole/utils.js +0 -0
  87. package/es/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.d.ts +31 -0
  88. package/es/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.js +503 -0
  89. package/es/plus/saasTeamMembers/components/MemberDrawer/index.d.ts +23 -0
  90. package/es/plus/saasTeamMembers/components/MemberDrawer/index.js +634 -0
  91. package/es/plus/saasTeamMembers/components/MemberDrawer/index.less +178 -0
  92. package/es/plus/saasTeamMembers/index.d.ts +5 -0
  93. package/es/plus/saasTeamMembers/index.js +529 -0
  94. package/es/plus/saasTeamMembers/index.less +87 -0
  95. package/es/plus/saasTeamMembers/locales.d.ts +330 -0
  96. package/es/plus/saasTeamMembers/locales.js +375 -0
  97. package/es/plus/saasTeamMembers/serve.d.ts +95 -0
  98. package/es/plus/saasTeamMembers/serve.js +374 -0
  99. package/es/plus/saasTeamMembers/type.d.ts +156 -0
  100. package/es/plus/saasTeamMembers/type.js +1 -0
  101. package/es/plus/selectHolder/components/ErrorTip/index.d.ts +0 -1
  102. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
  103. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +0 -1
  104. package/lib/components/booking/info/hooks/useInfoHolder.d.ts +0 -1
  105. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  106. package/lib/components/eftpos/hooks.d.ts +0 -1
  107. package/lib/components/eftposPay/amount.d.ts +1 -1
  108. package/lib/components/eftposPay/device.d.ts +1 -1
  109. package/lib/components/eftposPay/hooks.d.ts +2 -2
  110. package/lib/components/eftposPay/store/index.d.ts +5 -5
  111. package/lib/components/eftposPay/tyro/hooks.d.ts +0 -1
  112. package/lib/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
  113. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +0 -1
  114. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
  115. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +0 -1
  116. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +0 -1
  117. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +0 -1
  118. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +0 -1
  119. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +0 -1
  120. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +0 -1
  121. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
  122. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +0 -1
  123. package/lib/components/shoppingCart/components/Empty/index.d.ts +0 -1
  124. package/lib/components/ticketBooking/utils/index.d.ts +1 -1
  125. package/lib/hooks/usePaymentLogger.d.ts +0 -1
  126. package/lib/index.d.ts +4 -0
  127. package/lib/index.js +9 -0
  128. package/lib/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.d.ts +1 -1
  129. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.d.ts +1 -1
  130. package/lib/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.d.ts +1 -1
  131. package/lib/plus/productSelect/ProductCard/SkuCard/components/Duration/index.d.ts +1 -1
  132. package/lib/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.d.ts +1 -1
  133. package/lib/plus/productSelect/ProductCard/SkuCard/components/Resource/index.d.ts +1 -1
  134. package/lib/plus/productSelect/ProductCard/SkuCard/components/Stock/index.d.ts +1 -1
  135. package/lib/plus/productSelect/ProductCard/SkuCard/components/Time/index.d.ts +1 -1
  136. package/lib/plus/saasAttendance/index.d.ts +6 -0
  137. package/lib/plus/saasAttendance/index.js +39 -0
  138. package/lib/plus/saasAttendance/locales.d.ts +318 -0
  139. package/lib/plus/saasAttendance/locales.js +342 -0
  140. package/lib/plus/saasAttendance/settings/BasicInfoTab.d.ts +5 -0
  141. package/lib/plus/saasAttendance/settings/BasicInfoTab.js +152 -0
  142. package/lib/plus/saasAttendance/settings/ClockInMethodTab.d.ts +8 -0
  143. package/lib/plus/saasAttendance/settings/ClockInMethodTab.js +88 -0
  144. package/lib/plus/saasAttendance/settings/CorrectionPolicyTab.d.ts +8 -0
  145. package/lib/plus/saasAttendance/settings/CorrectionPolicyTab.js +369 -0
  146. package/lib/plus/saasAttendance/settings/ShiftScheduleTab.d.ts +5 -0
  147. package/lib/plus/saasAttendance/settings/ShiftScheduleTab.js +106 -0
  148. package/lib/plus/saasAttendance/settings/components/MapField.d.ts +78 -0
  149. package/lib/plus/saasAttendance/settings/components/MapField.js +631 -0
  150. package/lib/plus/saasAttendance/settings/components/index.d.ts +3 -0
  151. package/lib/plus/saasAttendance/settings/components/index.js +42 -0
  152. package/lib/plus/saasAttendance/settings/components/membersField/index.d.ts +8 -0
  153. package/lib/plus/saasAttendance/settings/components/membersField/index.js +247 -0
  154. package/lib/plus/saasAttendance/settings/components/membersField/index.less +70 -0
  155. package/lib/plus/saasAttendance/settings/components/shiftModal/index.d.ts +18 -0
  156. package/lib/plus/saasAttendance/settings/components/shiftModal/index.js +447 -0
  157. package/lib/plus/saasAttendance/settings/index.d.ts +18 -0
  158. package/lib/plus/saasAttendance/settings/index.js +283 -0
  159. package/lib/plus/saasAttendance/settings/index.less +495 -0
  160. package/lib/plus/saasAttendance/settings/serve.d.ts +27 -0
  161. package/lib/plus/saasAttendance/settings/serve.js +54 -0
  162. package/lib/plus/saasAttendance/settings/types.d.ts +128 -0
  163. package/lib/plus/saasAttendance/settings/types.js +17 -0
  164. package/lib/plus/saasRole/components/PermissionManager/index.d.ts +19 -0
  165. package/lib/plus/saasRole/components/PermissionManager/index.js +159 -0
  166. package/lib/plus/saasRole/components/PermissionManager/index.less +71 -0
  167. package/lib/plus/saasRole/index.d.ts +14 -0
  168. package/lib/plus/saasRole/index.js +780 -0
  169. package/lib/plus/saasRole/index.less +196 -0
  170. package/lib/plus/saasRole/locales.d.ts +193 -0
  171. package/lib/plus/saasRole/locales.js +219 -0
  172. package/lib/plus/saasRole/serve.d.ts +72 -0
  173. package/lib/plus/saasRole/serve.js +100 -0
  174. package/lib/plus/saasRole/types.d.ts +175 -0
  175. package/lib/plus/saasRole/types.js +17 -0
  176. package/lib/plus/saasRole/utils.d.ts +0 -0
  177. package/lib/plus/saasRole/utils.js +0 -0
  178. package/lib/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.d.ts +31 -0
  179. package/lib/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.js +393 -0
  180. package/lib/plus/saasTeamMembers/components/MemberDrawer/index.d.ts +23 -0
  181. package/lib/plus/saasTeamMembers/components/MemberDrawer/index.js +672 -0
  182. package/lib/plus/saasTeamMembers/components/MemberDrawer/index.less +178 -0
  183. package/lib/plus/saasTeamMembers/index.d.ts +5 -0
  184. package/lib/plus/saasTeamMembers/index.js +448 -0
  185. package/lib/plus/saasTeamMembers/index.less +87 -0
  186. package/lib/plus/saasTeamMembers/locales.d.ts +330 -0
  187. package/lib/plus/saasTeamMembers/locales.js +401 -0
  188. package/lib/plus/saasTeamMembers/serve.d.ts +95 -0
  189. package/lib/plus/saasTeamMembers/serve.js +132 -0
  190. package/lib/plus/saasTeamMembers/type.d.ts +156 -0
  191. package/lib/plus/saasTeamMembers/type.js +17 -0
  192. package/lib/plus/selectHolder/components/ErrorTip/index.d.ts +0 -1
  193. package/lowcode/saas-attendance-settings/meta.ts +56 -0
  194. package/lowcode/saas-role/meta.ts +35 -0
  195. package/lowcode/saas-team-members/meta.ts +35 -0
  196. package/package.json +4 -4
@@ -0,0 +1,369 @@
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/saasAttendance/settings/CorrectionPolicyTab.tsx
30
+ var CorrectionPolicyTab_exports = {};
31
+ __export(CorrectionPolicyTab_exports, {
32
+ default: () => CorrectionPolicyTab_default
33
+ });
34
+ module.exports = __toCommonJS(CorrectionPolicyTab_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_utils = require("@pisell/utils");
38
+ var import_index = require("./index");
39
+ var CorrectionTypesField = (props) => {
40
+ const value = props.value ?? [];
41
+ const items = (0, import_react.useMemo)(
42
+ () => [
43
+ {
44
+ key: "missing",
45
+ titleKey: "pisell2.attendance.group-settings.correction-policy.types.missing.title",
46
+ descKey: "pisell2.attendance.group-settings.correction-policy.types.missing.desc"
47
+ },
48
+ {
49
+ key: "late",
50
+ titleKey: "pisell2.attendance.group-settings.correction-policy.types.late.title",
51
+ descKey: "pisell2.attendance.group-settings.correction-policy.types.late.desc"
52
+ },
53
+ {
54
+ key: "early_leave",
55
+ titleKey: "pisell2.attendance.group-settings.correction-policy.types.early-out.title",
56
+ descKey: "pisell2.attendance.group-settings.correction-policy.types.early-out.desc"
57
+ },
58
+ {
59
+ key: "normal",
60
+ titleKey: "pisell2.attendance.group-settings.correction-policy.types.normal.title",
61
+ descKey: "pisell2.attendance.group-settings.correction-policy.types.normal.desc"
62
+ }
63
+ ],
64
+ []
65
+ );
66
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__check-cards" }, items.map((item) => {
67
+ const checked = value.includes(item.key);
68
+ return /* @__PURE__ */ import_react.default.createElement(
69
+ "div",
70
+ {
71
+ key: item.key,
72
+ className: [
73
+ "saas-attendance-group-settings__check-card",
74
+ checked ? "saas-attendance-group-settings__check-card--checked" : ""
75
+ ].join(" "),
76
+ onClick: () => {
77
+ var _a;
78
+ const next = checked ? value.filter((x) => x !== item.key) : [...value, item.key];
79
+ (_a = props.onChange) == null ? void 0 : _a.call(props, next);
80
+ }
81
+ },
82
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Checkbox, { checked, onChange: () => {
83
+ } }),
84
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__check-content" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__check-title" }, import_utils.locales.getText(item.titleKey)), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__check-desc" }, import_utils.locales.getText(item.descKey)))
85
+ );
86
+ }));
87
+ };
88
+ var CorrectionTimeLimitField = (props) => /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__inline-input" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__inline-text" }, import_utils.locales.getText(
89
+ "pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.prefix"
90
+ )), /* @__PURE__ */ import_react.default.createElement(
91
+ import_antd.InputNumber,
92
+ {
93
+ min: 0,
94
+ max: 180,
95
+ precision: 0,
96
+ step: 1,
97
+ value: props.value,
98
+ onChange: props.onChange
99
+ }
100
+ ), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__inline-text" }, import_utils.locales.getText(
101
+ "pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.suffix"
102
+ ))), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__help" }, import_utils.locales.getText(
103
+ "pisell2.attendance.group-settings.correction-policy.time-limit.helper"
104
+ )));
105
+ var CorrectionMonthlyLimitField = (props) => /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__inline-input" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__inline-text" }, import_utils.locales.getText(
106
+ "pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.prefix"
107
+ )), /* @__PURE__ */ import_react.default.createElement(
108
+ import_antd.InputNumber,
109
+ {
110
+ min: 0,
111
+ max: 999,
112
+ precision: 0,
113
+ step: 1,
114
+ value: props.value,
115
+ onChange: props.onChange
116
+ }
117
+ ), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__inline-text" }, import_utils.locales.getText(
118
+ "pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.suffix"
119
+ ))), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__help" }, import_utils.locales.getText(
120
+ "pisell2.attendance.group-settings.correction-policy.monthly-limit.helper"
121
+ )));
122
+ var CorrectionResetPeriodField = (props) => {
123
+ const value = props.value ?? "natural_month";
124
+ return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(
125
+ import_antd.Radio.Group,
126
+ {
127
+ className: "saas-attendance-group-settings__radio-cards",
128
+ value,
129
+ onChange: (e) => {
130
+ var _a, _b;
131
+ const nextValue = (_a = e == null ? void 0 : e.target) == null ? void 0 : _a.value;
132
+ (_b = props.onChange) == null ? void 0 : _b.call(props, nextValue);
133
+ }
134
+ },
135
+ /* @__PURE__ */ import_react.default.createElement(
136
+ "label",
137
+ {
138
+ className: [
139
+ "saas-attendance-group-settings__radio-card",
140
+ value === "natural_month" ? "saas-attendance-group-settings__radio-card--selected" : ""
141
+ ].join(" ")
142
+ },
143
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Radio, { value: "natural_month" }),
144
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-content" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-title" }, import_utils.locales.getText(
145
+ "pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.title"
146
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-desc" }, import_utils.locales.getText(
147
+ "pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.desc"
148
+ )))
149
+ ),
150
+ /* @__PURE__ */ import_react.default.createElement(
151
+ "label",
152
+ {
153
+ className: [
154
+ "saas-attendance-group-settings__radio-card",
155
+ value === "custom" ? "saas-attendance-group-settings__radio-card--selected" : ""
156
+ ].join(" ")
157
+ },
158
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Radio, { value: "custom" }),
159
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-content" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-title" }, import_utils.locales.getText(
160
+ "pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.title"
161
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-desc" }, import_utils.locales.getText(
162
+ "pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.desc"
163
+ )))
164
+ )
165
+ ));
166
+ };
167
+ var CorrectionPolicyTab = (props) => {
168
+ const { form } = props;
169
+ const { members } = (0, import_react.useContext)(import_index.settingsContext);
170
+ (0, import_react.useEffect)(() => {
171
+ if (Array.isArray(members)) {
172
+ const founder = members.find((item) => item.type === "founder");
173
+ const originApproverIds = form.getFieldValue([
174
+ "correction",
175
+ "approver_ids"
176
+ ]);
177
+ if ((!Array.isArray(originApproverIds) || originApproverIds.length === 0) && founder) {
178
+ form.setFieldValue(["correction", "approver_ids"], [founder.id]);
179
+ }
180
+ }
181
+ }, [members, form]);
182
+ const approverOptions = (0, import_react.useMemo)(() => {
183
+ if (!Array.isArray(members)) return [];
184
+ return members.map((item) => ({
185
+ label: item.nickname,
186
+ value: item.id
187
+ }));
188
+ }, [members]);
189
+ const customPeriodOptions = (0, import_react.useMemo)(
190
+ () => Array.from({ length: 28 }, (_, index) => {
191
+ const day = index + 1;
192
+ return { label: String(day), value: day };
193
+ }),
194
+ []
195
+ );
196
+ const allow = import_antd.Form.useWatch(["correction", "allow"], form) ?? true;
197
+ const period_type = import_antd.Form.useWatch(["correction", "period_type"], form) ?? "natural_month";
198
+ (0, import_react.useEffect)(() => {
199
+ const correction = form.getFieldValue(["correction"]) ?? {};
200
+ const nextCorrection = {};
201
+ if (typeof correction.allow === "undefined") nextCorrection.allow = true;
202
+ if (!Array.isArray(correction.types) || correction.types.length === 0) {
203
+ nextCorrection.types = ["missing", "late"];
204
+ }
205
+ if (!Array.isArray(correction.approver_ids)) nextCorrection.approver_ids = [];
206
+ if (correction.days_limit === null || typeof correction.days_limit === "undefined") {
207
+ nextCorrection.days_limit = 7;
208
+ }
209
+ if (correction.monthly_times === null || typeof correction.monthly_times === "undefined") {
210
+ nextCorrection.monthly_times = 3;
211
+ }
212
+ if (typeof correction.period_type === "undefined") {
213
+ nextCorrection.period_type = "natural_month";
214
+ }
215
+ if (typeof correction.period_custom === "undefined") {
216
+ const nextPeriodType = correction.period_type ?? nextCorrection.period_type ?? "natural_month";
217
+ nextCorrection.period_custom = nextPeriodType === "custom" ? 1 : null;
218
+ }
219
+ if (Object.keys(nextCorrection).length > 0) {
220
+ form.setFieldsValue({
221
+ correction: {
222
+ ...correction,
223
+ ...nextCorrection
224
+ }
225
+ });
226
+ }
227
+ }, [form]);
228
+ (0, import_react.useEffect)(() => {
229
+ if (period_type !== "custom") {
230
+ form.setFieldValue(["correction", "period_custom"], null);
231
+ } else {
232
+ const v = form.getFieldValue(["correction", "period_custom"]);
233
+ if (v === null || typeof v === "undefined") {
234
+ form.setFieldValue(["correction", "period_custom"], 1);
235
+ }
236
+ }
237
+ }, [period_type, form]);
238
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__panel", id: props.id }, /* @__PURE__ */ import_react.default.createElement(
239
+ import_antd.Form.Item,
240
+ {
241
+ name: ["correction", "allow"],
242
+ valuePropName: "checked",
243
+ initialValue: true
244
+ },
245
+ /* @__PURE__ */ import_react.default.createElement(
246
+ import_antd.Checkbox,
247
+ {
248
+ className: "saas-attendance-group-settings__allow-corrections",
249
+ style: { width: "100%" }
250
+ },
251
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__allow-title" }, import_utils.locales.getText(
252
+ "pisell2.attendance.group-settings.correction-policy.allow-corrections.title"
253
+ )),
254
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__allow-desc" }, import_utils.locales.getText(
255
+ "pisell2.attendance.group-settings.correction-policy.allow-corrections.desc"
256
+ ))
257
+ )
258
+ ), allow && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__section" }, /* @__PURE__ */ import_react.default.createElement(
259
+ import_antd.Form.Item,
260
+ {
261
+ name: ["correction", "types"],
262
+ initialValue: ["missing", "late"],
263
+ label: import_utils.locales.getText(
264
+ "pisell2.attendance.group-settings.correction-policy.types.label"
265
+ ),
266
+ rules: [
267
+ {
268
+ required: true,
269
+ message: import_utils.locales.getText(
270
+ "pisell2.attendance.group-settings.correction-policy.types.label"
271
+ )
272
+ }
273
+ ]
274
+ },
275
+ /* @__PURE__ */ import_react.default.createElement(CorrectionTypesField, null)
276
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__section" }, /* @__PURE__ */ import_react.default.createElement(
277
+ import_antd.Form.Item,
278
+ {
279
+ name: ["correction", "approver_ids"],
280
+ initialValue: [],
281
+ label: import_utils.locales.getText(
282
+ "pisell2.attendance.group-settings.correction-policy.approver.label"
283
+ ),
284
+ rules: [
285
+ {
286
+ required: true,
287
+ message: import_utils.locales.getText(
288
+ "pisell2.attendance.group-settings.correction-policy.approver.required"
289
+ )
290
+ }
291
+ ]
292
+ },
293
+ /* @__PURE__ */ import_react.default.createElement(
294
+ import_antd.Select,
295
+ {
296
+ allowClear: true,
297
+ mode: "multiple",
298
+ options: approverOptions,
299
+ placeholder: import_utils.locales.getText(
300
+ "pisell2.attendance.group-settings.correction-policy.approver.placeholder"
301
+ ),
302
+ showSearch: true,
303
+ optionFilterProp: "label"
304
+ }
305
+ )
306
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__section" }, /* @__PURE__ */ import_react.default.createElement(
307
+ import_antd.Form.Item,
308
+ {
309
+ name: ["correction", "days_limit"],
310
+ initialValue: 7,
311
+ label: import_utils.locales.getText(
312
+ "pisell2.attendance.group-settings.correction-policy.time-limit.label"
313
+ ),
314
+ rules: [
315
+ {
316
+ required: true,
317
+ message: import_utils.locales.getText(
318
+ "pisell2.attendance.group-settings.correction-policy.time-limit.required"
319
+ )
320
+ }
321
+ ]
322
+ },
323
+ /* @__PURE__ */ import_react.default.createElement(CorrectionTimeLimitField, null)
324
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__section" }, /* @__PURE__ */ import_react.default.createElement(
325
+ import_antd.Form.Item,
326
+ {
327
+ name: ["correction", "monthly_times"],
328
+ initialValue: 3,
329
+ label: import_utils.locales.getText(
330
+ "pisell2.attendance.group-settings.correction-policy.monthly-limit.label"
331
+ ),
332
+ rules: [
333
+ {
334
+ required: true,
335
+ message: import_utils.locales.getText(
336
+ "pisell2.attendance.group-settings.correction-policy.monthly-limit.required"
337
+ )
338
+ }
339
+ ]
340
+ },
341
+ /* @__PURE__ */ import_react.default.createElement(CorrectionMonthlyLimitField, null)
342
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__section" }, /* @__PURE__ */ import_react.default.createElement(
343
+ import_antd.Form.Item,
344
+ {
345
+ name: ["correction", "period_type"],
346
+ initialValue: "natural_month",
347
+ label: import_utils.locales.getText(
348
+ "pisell2.attendance.group-settings.correction-policy.reset-period.label"
349
+ )
350
+ },
351
+ /* @__PURE__ */ import_react.default.createElement(CorrectionResetPeriodField, null)
352
+ )), period_type === "custom" && /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__section" }, /* @__PURE__ */ import_react.default.createElement(
353
+ import_antd.Form.Item,
354
+ {
355
+ name: ["correction", "period_custom"],
356
+ initialValue: 1,
357
+ rules: [
358
+ {
359
+ required: true,
360
+ message: import_utils.locales.getText(
361
+ "pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.required"
362
+ )
363
+ }
364
+ ]
365
+ },
366
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Select, { options: customPeriodOptions })
367
+ ))));
368
+ };
369
+ var CorrectionPolicyTab_default = CorrectionPolicyTab;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const ShiftScheduleTab: React.FC<{
3
+ id?: string;
4
+ }>;
5
+ export default ShiftScheduleTab;
@@ -0,0 +1,106 @@
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/saasAttendance/settings/ShiftScheduleTab.tsx
30
+ var ShiftScheduleTab_exports = {};
31
+ __export(ShiftScheduleTab_exports, {
32
+ default: () => ShiftScheduleTab_default
33
+ });
34
+ module.exports = __toCommonJS(ShiftScheduleTab_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_materials = require("@pisell/materials");
38
+ var import_utils = require("@pisell/utils");
39
+ var import_shiftModal = __toESM(require("./components/shiftModal"));
40
+ var ScheduleSetting = (props) => {
41
+ const { value, onChange } = props;
42
+ const [open, setOpen] = (0, import_react.useState)(false);
43
+ const label = Array.isArray(value) && value.some((d) => {
44
+ var _a;
45
+ return (_a = d == null ? void 0 : d.times) == null ? void 0 : _a.length;
46
+ }) ? import_utils.locales.getText(
47
+ "pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.change-shifts"
48
+ ) : import_utils.locales.getText(
49
+ "pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.set-shifts"
50
+ );
51
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "primary", onClick: () => setOpen(true) }, label), /* @__PURE__ */ import_react.default.createElement(
52
+ import_shiftModal.default,
53
+ {
54
+ open,
55
+ value,
56
+ onCancel: () => setOpen(false),
57
+ onOk: (next) => {
58
+ onChange == null ? void 0 : onChange(next);
59
+ }
60
+ }
61
+ ));
62
+ };
63
+ var ShiftScheduleTab = (props) => {
64
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__panel", id: props.id }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__banner banner-blue" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "banner-icon" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Icon, { type: "pisell2-calendar", size: 20 })), /* @__PURE__ */ import_react.default.createElement("div", { className: "banner-body" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "banner-title" }, import_utils.locales.getText(
65
+ "pisell2.attendance.group-settings.shift-schedule.fixed-shifts.title"
66
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "banner-desc" }, import_utils.locales.getText(
67
+ "pisell2.attendance.group-settings.shift-schedule.fixed-shifts.desc"
68
+ )))), /* @__PURE__ */ import_react.default.createElement(
69
+ import_antd.Form.Item,
70
+ {
71
+ label: import_utils.locales.getText(
72
+ "pisell2.attendance.group-settings.shift-schedule.attendance-type.label"
73
+ ),
74
+ name: ["shift", "type"],
75
+ initialValue: "fixed"
76
+ },
77
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Radio.Group, { className: "saas-attendance-group-settings__radio-cards" }, /* @__PURE__ */ import_react.default.createElement("label", { className: "saas-attendance-group-settings__radio-card saas-attendance-group-settings__radio-card--selected" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Radio, { value: "fixed" }), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-content" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-title" }, import_utils.locales.getText(
78
+ "pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.title"
79
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__radio-desc" }, import_utils.locales.getText(
80
+ "pisell2.attendance.group-settings.shift-schedule.fixed-shifts.desc"
81
+ )))))
82
+ ), /* @__PURE__ */ import_react.default.createElement(
83
+ import_antd.Form.Item,
84
+ {
85
+ name: ["shift", "fixed"],
86
+ rules: [
87
+ {
88
+ validator: async (_rule, value) => {
89
+ const hasShift = Array.isArray(value) && value.some(
90
+ (item) => Array.isArray(item == null ? void 0 : item.times) && item.times.length > 0
91
+ );
92
+ if (!hasShift) {
93
+ throw new Error(
94
+ import_utils.locales.getText(
95
+ "pisell2.attendance.group-settings.shift-schedule.validation.fixed-required"
96
+ )
97
+ );
98
+ }
99
+ }
100
+ }
101
+ ]
102
+ },
103
+ /* @__PURE__ */ import_react.default.createElement(ScheduleSetting, null)
104
+ ));
105
+ };
106
+ var ShiftScheduleTab_default = ShiftScheduleTab;
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ import type { AttendanceLocation } from '../types';
3
+ export declare type GoogleMapLatLng = {
4
+ lat: number;
5
+ lng: number;
6
+ };
7
+ export declare type GoogleMapConfig = {
8
+ center: GoogleMapLatLng;
9
+ zoom: number;
10
+ [key: string]: any;
11
+ };
12
+ export declare type GoogleMapMarker = {
13
+ id?: string;
14
+ coordinate: GoogleMapLatLng;
15
+ title?: string;
16
+ snippet?: string;
17
+ iconUrl?: string;
18
+ iconSize?: {
19
+ width: number;
20
+ height: number;
21
+ };
22
+ iconAnchor?: {
23
+ x: number;
24
+ y: number;
25
+ };
26
+ draggable?: boolean;
27
+ };
28
+ export declare type GoogleMapCircle = {
29
+ id?: string;
30
+ center: GoogleMapLatLng;
31
+ radius: number;
32
+ strokeColor?: string;
33
+ strokeOpacity?: number;
34
+ strokeWeight?: number;
35
+ fillColor?: string;
36
+ fillOpacity?: number;
37
+ clickable?: boolean;
38
+ };
39
+ export declare type GoogleMapRef = {
40
+ getMap: () => any | null;
41
+ addMarker: (marker: GoogleMapMarker) => Promise<string | null>;
42
+ addMarkers: (markers: GoogleMapMarker[]) => Promise<string[]>;
43
+ removeMarker: (markerId: string) => Promise<void>;
44
+ removeMarkers: (markerIds: string[]) => Promise<void>;
45
+ addCircle: (circle: GoogleMapCircle) => Promise<string | null>;
46
+ addCircles: (circles: GoogleMapCircle[]) => Promise<string[]>;
47
+ removeCircle: (circleId: string) => Promise<void>;
48
+ removeCircles: (circleIds: string[]) => Promise<void>;
49
+ setCamera: (config: {
50
+ coordinate: GoogleMapLatLng;
51
+ zoom?: number;
52
+ animate?: boolean;
53
+ }) => Promise<void>;
54
+ fitBounds: (bounds: {
55
+ southwest: GoogleMapLatLng;
56
+ northeast: GoogleMapLatLng;
57
+ padding?: number;
58
+ }) => Promise<void>;
59
+ };
60
+ export interface MapFieldProps {
61
+ value?: AttendanceLocation[];
62
+ onChange?: (value: AttendanceLocation[]) => void;
63
+ defaultRadius?: number;
64
+ className?: string;
65
+ }
66
+ export interface MapFieldRef {
67
+ onAddLocation: () => void;
68
+ }
69
+ export interface LocationFormMapProps {
70
+ value?: any;
71
+ onChange?: (values: any) => void;
72
+ defaultRadius?: number;
73
+ }
74
+ export interface LocationFormMapRef {
75
+ validate: () => Promise<any>;
76
+ }
77
+ declare const MapField: React.ForwardRefExoticComponent<MapFieldProps & React.RefAttributes<MapFieldRef>>;
78
+ export default MapField;