@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,780 @@
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/saasRole/index.tsx
30
+ var saasRole_exports = {};
31
+ __export(saasRole_exports, {
32
+ default: () => saasRole_default
33
+ });
34
+ module.exports = __toCommonJS(saasRole_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_ahooks = require("ahooks");
38
+ var import_icons = require("@ant-design/icons");
39
+ var import_materials = require("@pisell/materials");
40
+ var import_classnames = __toESM(require("classnames"));
41
+ var import_utils = require("@pisell/utils");
42
+ var import_utils2 = require("../clientName/utils");
43
+ var import_utils3 = require("../../utils");
44
+ var import_useEngineContext = __toESM(require("../../hooks/useEngineContext"));
45
+ var import_locales = __toESM(require("./locales"));
46
+ var import_serve = require("./serve");
47
+ var import_PermissionManager = __toESM(require("./components/PermissionManager/index"));
48
+ var import_index = require("./index.less");
49
+ var AntdLayout = import_antd.Layout;
50
+ var AntdSider = import_antd.Layout.Sider;
51
+ var AntdContent = import_antd.Layout.Content;
52
+ var AntdTag = import_antd.Tag;
53
+ var AntdDrawer = import_antd.Drawer;
54
+ var RoleCard = ({
55
+ role,
56
+ isSelected,
57
+ onSelect,
58
+ onEdit,
59
+ onDelete,
60
+ getText,
61
+ getLocaleText
62
+ }) => {
63
+ const menuItems = [
64
+ {
65
+ key: "edit",
66
+ label: getText("pisell2.saas.role.edit"),
67
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.EditOutlined, null),
68
+ onClick: (e) => {
69
+ e.domEvent.stopPropagation();
70
+ onEdit == null ? void 0 : onEdit();
71
+ }
72
+ },
73
+ {
74
+ key: "delete",
75
+ label: getText("pisell2.saas.role.delete"),
76
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.DeleteOutlined, null),
77
+ danger: true,
78
+ onClick: (e) => {
79
+ e.domEvent.stopPropagation();
80
+ onDelete == null ? void 0 : onDelete();
81
+ }
82
+ }
83
+ ];
84
+ return /* @__PURE__ */ import_react.default.createElement("div", { onClick: onSelect }, /* @__PURE__ */ import_react.default.createElement(
85
+ import_antd.Card,
86
+ {
87
+ className: (0, import_classnames.default)("saas-role-card", {
88
+ "saas-role-card-selected": isSelected
89
+ }),
90
+ hoverable: true
91
+ },
92
+ /* @__PURE__ */ import_react.default.createElement(
93
+ "div",
94
+ {
95
+ className: "saas-role-card-content",
96
+ style: { position: "relative" }
97
+ },
98
+ /* @__PURE__ */ import_react.default.createElement("h4", { className: "saas-role-card-title", style: { paddingRight: 24 } }, getLocaleText(role.name)),
99
+ /* @__PURE__ */ import_react.default.createElement("p", { className: "saas-role-card-count" }, role.tenant_account_count || 0, " ", getText("pisell2.saas.role.members-text"))
100
+ ),
101
+ /* @__PURE__ */ import_react.default.createElement(
102
+ import_antd.Dropdown,
103
+ {
104
+ menu: { items: menuItems },
105
+ trigger: ["click"],
106
+ placement: "bottomRight"
107
+ },
108
+ /* @__PURE__ */ import_react.default.createElement(
109
+ "div",
110
+ {
111
+ onClick: (e) => e.stopPropagation(),
112
+ style: {
113
+ fontSize: 16,
114
+ cursor: "pointer",
115
+ display: "inline-flex",
116
+ alignItems: "center",
117
+ padding: "0 4px"
118
+ }
119
+ },
120
+ /* @__PURE__ */ import_react.default.createElement(import_icons.MoreOutlined, null)
121
+ )
122
+ )
123
+ ));
124
+ };
125
+ var SaasRole = ({ className, style }) => {
126
+ var _a, _b, _c;
127
+ const context = (0, import_useEngineContext.default)();
128
+ const utils = ((_a = context == null ? void 0 : context.appHelper) == null ? void 0 : _a.utils) || {};
129
+ if (utils == null ? void 0 : utils.request) {
130
+ import_utils3.request.setRequest(utils.request);
131
+ }
132
+ import_utils.locales.init(import_locales.default, ((_c = (_b = context == null ? void 0 : context.engine) == null ? void 0 : _b.props) == null ? void 0 : _c.locale) || "en");
133
+ const getText = import_utils.locales.getText;
134
+ const getLocaleText = (0, import_react.useCallback)(
135
+ (text) => {
136
+ var _a2;
137
+ if (!text) return "";
138
+ if (typeof text === "string") return text;
139
+ const { translation } = ((_a2 = context == null ? void 0 : context.appHelper) == null ? void 0 : _a2.utils) || {};
140
+ return translation(text);
141
+ },
142
+ [context]
143
+ );
144
+ const [selectedRoleId, setSelectedRoleId] = (0, import_react.useState)(null);
145
+ const [addMemberDrawerVisible, setAddMemberDrawerVisible] = (0, import_react.useState)(false);
146
+ const [selectedMemberIds, setSelectedMemberIds] = (0, import_react.useState)([]);
147
+ const [memberFilterKeyword, setMemberFilterKeyword] = (0, import_react.useState)("");
148
+ const [activeTab, setActiveTab] = (0, import_react.useState)("members");
149
+ const [createModalVisible, setCreateModalVisible] = (0, import_react.useState)(false);
150
+ const [createForm] = import_antd.Form.useForm();
151
+ const [roleForEdit, setRoleForEdit] = (0, import_react.useState)(null);
152
+ const [editForm] = import_antd.Form.useForm();
153
+ const [modal, contextHolder] = import_antd.Modal.useModal();
154
+ const {
155
+ data: roles = [],
156
+ loading: rolesLoading,
157
+ run: refreshRoles
158
+ } = (0, import_ahooks.useRequest)(import_serve.getRoles, {
159
+ onSuccess: (data) => {
160
+ if (data.length > 0 && !selectedRoleId) {
161
+ setSelectedRoleId(data[0].id);
162
+ } else if (data.length === 0) {
163
+ setSelectedRoleId(null);
164
+ }
165
+ }
166
+ });
167
+ const selectedRole = (0, import_react.useMemo)(
168
+ () => roles.find((role) => role.id === selectedRoleId),
169
+ [roles, selectedRoleId]
170
+ );
171
+ const { data: { list: extensionFormList = [] } = {} } = (0, import_ahooks.useRequest)(
172
+ import_serve.getExtensionFormList,
173
+ {
174
+ defaultParams: [{ skip: 0, num: 499, type: "custom" }]
175
+ }
176
+ );
177
+ const extensionTableOptions = (0, import_react.useMemo)(() => {
178
+ const disabledExtensionFormIds = roleForEdit ? roles.filter(
179
+ (role) => {
180
+ var _a2;
181
+ return role.id !== roleForEdit.id && ((_a2 = role.metadata) == null ? void 0 : _a2.extension_form_id);
182
+ }
183
+ ).map((role) => {
184
+ var _a2;
185
+ return (_a2 = role.metadata) == null ? void 0 : _a2.extension_form_id;
186
+ }) : [];
187
+ return (extensionFormList == null ? void 0 : extensionFormList.map((item) => {
188
+ return {
189
+ label: item.title,
190
+ value: item.id,
191
+ disabled: disabledExtensionFormIds.includes(item.id)
192
+ };
193
+ })) || [];
194
+ }, [extensionFormList, roles, roleForEdit]);
195
+ (0, import_react.useEffect)(() => {
196
+ document.body.id = "body";
197
+ }, [className, style]);
198
+ const {
199
+ data: membersData,
200
+ loading: membersLoading,
201
+ run: refreshMembers
202
+ } = (0, import_ahooks.useRequest)(
203
+ async () => {
204
+ if (!selectedRoleId) return { list: [], count: 0 };
205
+ return (0, import_serve.getRoleMembers)({
206
+ tenant_role_ids: [selectedRoleId],
207
+ with: ["account", "roles"],
208
+ page: 1,
209
+ size: 499
210
+ });
211
+ },
212
+ {
213
+ refreshDeps: [selectedRoleId],
214
+ ready: !!selectedRoleId
215
+ }
216
+ );
217
+ const { data: availablePermissions = {} } = (0, import_ahooks.useRequest)(import_serve.getRolePermission, {});
218
+ const {
219
+ data: allMembersData,
220
+ loading: allMembersLoading,
221
+ run: fetchAllMembers
222
+ } = (0, import_ahooks.useRequest)(import_serve.getAllMembers, {
223
+ defaultParams: [{ page: 1, size: 100 }],
224
+ manual: true
225
+ });
226
+ const { runAsync: createRoleRun, loading: createRoleLoading } = (0, import_ahooks.useRequest)(
227
+ import_serve.createRole,
228
+ { manual: true }
229
+ );
230
+ const { runAsync: updateRoleRun, loading: updateRoleLoading } = (0, import_ahooks.useRequest)(
231
+ import_serve.updateRole,
232
+ { manual: true }
233
+ );
234
+ const { runAsync: deleteRoleRun, loading: deleteRoleLoading } = (0, import_ahooks.useRequest)(
235
+ import_serve.deleteRole,
236
+ { manual: true }
237
+ );
238
+ const { runAsync: updateRoleMembersRun, loading: updateRoleMembersLoading } = (0, import_ahooks.useRequest)(import_serve.updateRoleMembers, { manual: true });
239
+ const { runAsync: removeRoleMemberRun, loading: removeRoleMemberLoading } = (0, import_ahooks.useRequest)(import_serve.removeRoleMember, { manual: true });
240
+ const handleOpenCreateModal = () => {
241
+ createForm.resetFields();
242
+ setCreateModalVisible(true);
243
+ };
244
+ const handleCreateRole = async () => {
245
+ try {
246
+ const values = await createForm.validateFields();
247
+ const roleData = {
248
+ ...values,
249
+ permission: ["*"]
250
+ // 默认全权限,后续可改为选择
251
+ };
252
+ const newRole = await createRoleRun(roleData);
253
+ setCreateModalVisible(false);
254
+ createForm.resetFields();
255
+ refreshRoles();
256
+ setSelectedRoleId(newRole.id);
257
+ } catch (error) {
258
+ }
259
+ };
260
+ const handleOpenEditModal = (role) => {
261
+ editForm.setFieldsValue({
262
+ name: role.name,
263
+ code: role.code,
264
+ description: role.description,
265
+ metadata: role.metadata
266
+ });
267
+ setRoleForEdit(role);
268
+ };
269
+ const handleEditRole = async () => {
270
+ if (!roleForEdit) return;
271
+ try {
272
+ const values = await editForm.validateFields();
273
+ await updateRoleRun(roleForEdit.id, values);
274
+ setRoleForEdit(null);
275
+ refreshRoles();
276
+ } catch (error) {
277
+ }
278
+ };
279
+ const handleDeleteRole = async (role) => {
280
+ if (roles.length < 2) {
281
+ modal.warning({
282
+ title: getText("pisell2.saas.role.at-least-one-role")
283
+ });
284
+ return;
285
+ }
286
+ if (!(role == null ? void 0 : role.id)) return;
287
+ if (Number(role == null ? void 0 : role.tenant_account_count) > 0) {
288
+ modal.warning({
289
+ title: getText("pisell2.saas.role.role-has-members")
290
+ });
291
+ return;
292
+ }
293
+ const roleId = role.id;
294
+ try {
295
+ await deleteRoleRun(roleId);
296
+ if (roleId === selectedRoleId) {
297
+ setSelectedRoleId(null);
298
+ }
299
+ refreshRoles();
300
+ } catch (error) {
301
+ }
302
+ };
303
+ const handleOpenAddMemberDrawer = async () => {
304
+ if (!selectedRoleId) return;
305
+ try {
306
+ await fetchAllMembers({ page: 1, size: 100 });
307
+ setSelectedMemberIds([]);
308
+ setAddMemberDrawerVisible(true);
309
+ } catch (error) {
310
+ }
311
+ };
312
+ const handleAddMembers = async () => {
313
+ if (!selectedRoleId || selectedMemberIds.length === 0) return;
314
+ try {
315
+ const existingMemberIds = (membersData == null ? void 0 : membersData.list.map((m) => m.id)) || [];
316
+ const finalMemberIds = [
317
+ .../* @__PURE__ */ new Set([...selectedMemberIds, ...existingMemberIds])
318
+ ];
319
+ await updateRoleMembersRun(selectedRoleId, finalMemberIds);
320
+ setAddMemberDrawerVisible(false);
321
+ refreshMembers();
322
+ refreshRoles();
323
+ } catch (error) {
324
+ }
325
+ };
326
+ const handleRemoveMember = async (member) => {
327
+ if (!selectedRoleId) return;
328
+ try {
329
+ await removeRoleMemberRun(selectedRoleId, member.id);
330
+ refreshMembers();
331
+ refreshRoles();
332
+ } catch (error) {
333
+ }
334
+ };
335
+ const handlePermissionChange = async (permissions) => {
336
+ if (!selectedRole) return;
337
+ try {
338
+ await updateRoleRun(selectedRole.id, {
339
+ ...selectedRole,
340
+ permission: permissions
341
+ });
342
+ refreshRoles();
343
+ } catch (error) {
344
+ console.error("Update permission error:", error);
345
+ }
346
+ };
347
+ const memberColumns = [
348
+ {
349
+ title: getText("pisell2.saas.role.member-name"),
350
+ dataIndex: "nickname",
351
+ key: "nickname",
352
+ width: 150,
353
+ render: (text, record) => {
354
+ var _a2;
355
+ return record.nickname || ((_a2 = record.account) == null ? void 0 : _a2.name) || "-";
356
+ }
357
+ },
358
+ {
359
+ title: getText("pisell2.saas.role.member-id"),
360
+ dataIndex: "member_id",
361
+ key: "member_id",
362
+ width: 120,
363
+ render: (text) => text || "-"
364
+ },
365
+ {
366
+ title: getText("pisell2.saas.role.member-email"),
367
+ key: "email",
368
+ width: 250,
369
+ render: (_, record) => {
370
+ var _a2;
371
+ return ((_a2 = record.account) == null ? void 0 : _a2.email) || "-";
372
+ }
373
+ },
374
+ {
375
+ title: getText("pisell2.saas.role.member-mobile"),
376
+ key: "mobile",
377
+ width: 120,
378
+ render: (_, record) => {
379
+ var _a2;
380
+ return ((_a2 = record.account) == null ? void 0 : _a2.phone) || "-";
381
+ }
382
+ },
383
+ {
384
+ title: getText("pisell2.saas.role.actions"),
385
+ key: "actions",
386
+ width: 100,
387
+ fixed: "right",
388
+ render: (_, record) => {
389
+ let tip = getText("pisell2.saas.role.confirm-remove-member");
390
+ if (tip.includes("{name}")) {
391
+ tip = /* @__PURE__ */ import_react.default.createElement("span", null, tip.split("{name}")[0], /* @__PURE__ */ import_react.default.createElement("span", { style: { fontWeight: "bold" } }, (0, import_utils2.getClientName)(record.account)), tip.split("{name}")[1]);
392
+ }
393
+ return /* @__PURE__ */ import_react.default.createElement(
394
+ import_antd.Button,
395
+ {
396
+ type: "text",
397
+ danger: true,
398
+ icon: /* @__PURE__ */ import_react.default.createElement(import_materials.Icon, { type: "pisell2-user-minus-01" }),
399
+ onClick: (e) => {
400
+ e.stopPropagation();
401
+ import_antd.Modal.confirm({
402
+ title: getText("pisell2.saas.role.remove-member"),
403
+ content: tip,
404
+ okText: getText("pisell2.saas.role.confirm"),
405
+ cancelText: getText("pisell2.saas.role.cancel"),
406
+ onOk: () => handleRemoveMember(record),
407
+ okButtonProps: { danger: true }
408
+ });
409
+ }
410
+ }
411
+ );
412
+ }
413
+ }
414
+ ];
415
+ const availableMemberColumns = [
416
+ {
417
+ title: getText("pisell2.saas.role.member-name"),
418
+ dataIndex: "nickname",
419
+ key: "nickname",
420
+ render: (text, record) => {
421
+ var _a2;
422
+ return record.nickname || ((_a2 = record.account) == null ? void 0 : _a2.name) || "-";
423
+ }
424
+ },
425
+ {
426
+ title: getText("pisell2.saas.role.member-id"),
427
+ dataIndex: "member_id",
428
+ key: "member_id",
429
+ render: (text) => text || "-"
430
+ },
431
+ {
432
+ title: getText("pisell2.saas.role.member-current-roles"),
433
+ dataIndex: "roles",
434
+ key: "roles",
435
+ width: 200,
436
+ render: (roles2) => /* @__PURE__ */ import_react.default.createElement("span", null, roles2 == null ? void 0 : roles2.map((role) => /* @__PURE__ */ import_react.default.createElement(AntdTag, { key: role.id }, getLocaleText(role.name))))
437
+ }
438
+ ];
439
+ const renderContent = () => {
440
+ if (!selectedRole) {
441
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-empty" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Empty, { description: getText("pisell2.saas.role.no-role-selected") }));
442
+ }
443
+ const tabItems = [
444
+ {
445
+ key: "members",
446
+ label: getText("pisell2.saas.role.members"),
447
+ children: /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-members" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-members-header" }, /* @__PURE__ */ import_react.default.createElement(
448
+ import_antd.Input,
449
+ {
450
+ prefix: /* @__PURE__ */ import_react.default.createElement(import_icons.SearchOutlined, null),
451
+ placeholder: getText("pisell2.saas.role.search"),
452
+ allowClear: true,
453
+ style: { width: 300 },
454
+ onChange: (e) => setMemberFilterKeyword(e.target.value)
455
+ }
456
+ ), /* @__PURE__ */ import_react.default.createElement(
457
+ import_antd.Button,
458
+ {
459
+ type: "primary",
460
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null),
461
+ onClick: handleOpenAddMemberDrawer
462
+ },
463
+ getText("pisell2.saas.role.add-member")
464
+ )), /* @__PURE__ */ import_react.default.createElement(
465
+ import_antd.Table,
466
+ {
467
+ columns: memberColumns,
468
+ dataSource: membersData == null ? void 0 : membersData.list.filter(
469
+ (member) => {
470
+ var _a2, _b2, _c2, _d;
471
+ return memberFilterKeyword ? ((_a2 = member.nickname) == null ? void 0 : _a2.toLowerCase().includes(memberFilterKeyword.toLowerCase())) || ((_c2 = (_b2 = member.account) == null ? void 0 : _b2.email) == null ? void 0 : _c2.toLowerCase().includes(memberFilterKeyword.toLowerCase())) || ((_d = member.member_id) == null ? void 0 : _d.toLowerCase().includes(memberFilterKeyword.toLowerCase())) : true;
472
+ }
473
+ ),
474
+ rowKey: "id",
475
+ loading: membersLoading,
476
+ pagination: {
477
+ total: (membersData == null ? void 0 : membersData.count) || 0,
478
+ showSizeChanger: true
479
+ },
480
+ scroll: { x: "max-content" },
481
+ locale: {
482
+ emptyText: getText("pisell2.saas.role.no-members-in-role")
483
+ }
484
+ }
485
+ ))
486
+ },
487
+ {
488
+ key: "permissions",
489
+ label: getText("pisell2.saas.role.permissions"),
490
+ children: /* @__PURE__ */ import_react.default.createElement(
491
+ import_PermissionManager.default,
492
+ {
493
+ availablePermissions,
494
+ currentPermissions: (selectedRole == null ? void 0 : selectedRole.permission) || [],
495
+ onChange: handlePermissionChange,
496
+ getLocaleText,
497
+ getText,
498
+ updating: updateRoleLoading
499
+ }
500
+ )
501
+ }
502
+ ];
503
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-detail" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-detail-header" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-detail-title" }, /* @__PURE__ */ import_react.default.createElement("h2", null, getLocaleText(selectedRole.name))), /* @__PURE__ */ import_react.default.createElement("p", { className: "saas-role-detail-description" }, getLocaleText(selectedRole.description))), /* @__PURE__ */ import_react.default.createElement(import_antd.Tabs, { activeKey: activeTab, onChange: setActiveTab, items: tabItems }));
504
+ };
505
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_classnames.default)("saas-role", className), style }, /* @__PURE__ */ import_react.default.createElement(AntdLayout, { className: "saas-role-layout" }, /* @__PURE__ */ import_react.default.createElement(AntdSider, { width: 300, className: "saas-role-sider", theme: "light" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-header" }, /* @__PURE__ */ import_react.default.createElement("h3", null, getText("pisell2.saas.role.title")), /* @__PURE__ */ import_react.default.createElement(
506
+ import_antd.Button,
507
+ {
508
+ type: "primary",
509
+ icon: /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null),
510
+ onClick: handleOpenCreateModal
511
+ },
512
+ getText("pisell2.saas.role.create")
513
+ )), /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-role-list" }, roles.map((role) => /* @__PURE__ */ import_react.default.createElement(
514
+ RoleCard,
515
+ {
516
+ key: role.id,
517
+ role,
518
+ isSelected: role.id === selectedRoleId,
519
+ onSelect: () => setSelectedRoleId(role.id),
520
+ onEdit: () => handleOpenEditModal(role),
521
+ onDelete: () => handleDeleteRole(role),
522
+ getText,
523
+ getLocaleText
524
+ }
525
+ )))), /* @__PURE__ */ import_react.default.createElement(AntdContent, { className: "saas-role-content" }, renderContent())), /* @__PURE__ */ import_react.default.createElement(
526
+ import_antd.Modal,
527
+ {
528
+ title: getText("pisell2.saas.role.create-role"),
529
+ open: createModalVisible,
530
+ onOk: handleCreateRole,
531
+ onCancel: () => setCreateModalVisible(false),
532
+ confirmLoading: createRoleLoading,
533
+ okText: getText("pisell2.saas.role.save"),
534
+ cancelText: getText("pisell2.saas.role.cancel"),
535
+ width: 600,
536
+ styles: {
537
+ header: {
538
+ padding: "0px 0px 8px 0px"
539
+ }
540
+ }
541
+ },
542
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Form, { form: createForm, layout: "vertical", size: "large" }, /* @__PURE__ */ import_react.default.createElement(
543
+ import_antd.Form.Item,
544
+ {
545
+ label: getText("pisell2.saas.role.name"),
546
+ name: "name",
547
+ rules: [
548
+ {
549
+ required: true,
550
+ message: getText("pisell2.saas.role.enter-role-name")
551
+ }
552
+ ]
553
+ },
554
+ /* @__PURE__ */ import_react.default.createElement(
555
+ import_materials.BaseTranslation,
556
+ {
557
+ placeholder: getText("pisell2.saas.role.enter-role-name"),
558
+ maxLength: 100
559
+ }
560
+ )
561
+ ), /* @__PURE__ */ import_react.default.createElement(
562
+ import_antd.Form.Item,
563
+ {
564
+ label: getText("pisell2.saas.role.code"),
565
+ name: "code",
566
+ rules: [
567
+ {
568
+ required: true,
569
+ message: getText("pisell2.saas.role.enter-role-code")
570
+ },
571
+ {
572
+ pattern: /^[a-z0-9\-_.]+$/,
573
+ message: getText("pisell2.saas.role.role-code-format")
574
+ }
575
+ ],
576
+ extra: getText("pisell2.saas.role.role-code-format")
577
+ },
578
+ /* @__PURE__ */ import_react.default.createElement(
579
+ import_antd.Input,
580
+ {
581
+ placeholder: getText("pisell2.saas.role.enter-role-code")
582
+ }
583
+ )
584
+ ), /* @__PURE__ */ import_react.default.createElement(
585
+ import_antd.Form.Item,
586
+ {
587
+ label: getText("pisell2.saas.role.description"),
588
+ name: "description"
589
+ },
590
+ /* @__PURE__ */ import_react.default.createElement(
591
+ import_materials.BaseTranslation,
592
+ {
593
+ placeholder: getText(
594
+ "pisell2.saas.role.enter-role-description"
595
+ ),
596
+ type: "textarea",
597
+ rows: 4,
598
+ showCount: true,
599
+ maxLength: 500
600
+ }
601
+ )
602
+ ), /* @__PURE__ */ import_react.default.createElement(
603
+ import_antd.Form.Item,
604
+ {
605
+ label: getText("pisell2.saas.role.extension-table"),
606
+ name: ["metadata", "extension_form_id"],
607
+ extra: getText("pisell2.saas.role.select-extension-table")
608
+ },
609
+ /* @__PURE__ */ import_react.default.createElement(
610
+ import_antd.Select,
611
+ {
612
+ placeholder: getText(
613
+ "pisell2.saas.role.select-extension-table"
614
+ ),
615
+ options: extensionTableOptions,
616
+ allowClear: true
617
+ }
618
+ )
619
+ ))
620
+ ), /* @__PURE__ */ import_react.default.createElement(
621
+ import_antd.Modal,
622
+ {
623
+ title: getText("pisell2.saas.role.edit-role"),
624
+ open: !!roleForEdit,
625
+ onOk: handleEditRole,
626
+ onCancel: () => setRoleForEdit(null),
627
+ confirmLoading: updateRoleLoading,
628
+ okText: getText("pisell2.saas.role.save"),
629
+ cancelText: getText("pisell2.saas.role.cancel"),
630
+ width: 600,
631
+ styles: {
632
+ header: {
633
+ padding: "0px 0px 8px 0px"
634
+ }
635
+ }
636
+ },
637
+ /* @__PURE__ */ import_react.default.createElement(import_antd.Form, { form: editForm, layout: "vertical", size: "large" }, /* @__PURE__ */ import_react.default.createElement(
638
+ import_antd.Form.Item,
639
+ {
640
+ label: getText("pisell2.saas.role.name"),
641
+ name: "name",
642
+ rules: [
643
+ {
644
+ required: true,
645
+ message: getText("pisell2.saas.role.enter-role-name")
646
+ }
647
+ ]
648
+ },
649
+ /* @__PURE__ */ import_react.default.createElement(
650
+ import_materials.BaseTranslation,
651
+ {
652
+ placeholder: getText("pisell2.saas.role.enter-role-name"),
653
+ maxLength: 100
654
+ }
655
+ )
656
+ ), /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { label: getText("pisell2.saas.role.code"), name: "code" }, /* @__PURE__ */ import_react.default.createElement(
657
+ import_antd.Input,
658
+ {
659
+ placeholder: getText("pisell2.saas.role.enter-role-code"),
660
+ disabled: true
661
+ }
662
+ )), /* @__PURE__ */ import_react.default.createElement(
663
+ import_antd.Form.Item,
664
+ {
665
+ label: getText("pisell2.saas.role.description"),
666
+ name: "description"
667
+ },
668
+ /* @__PURE__ */ import_react.default.createElement(
669
+ import_materials.BaseTranslation,
670
+ {
671
+ placeholder: getText(
672
+ "pisell2.saas.role.enter-role-description"
673
+ ),
674
+ type: "textarea",
675
+ rows: 4,
676
+ showCount: true,
677
+ maxLength: 500
678
+ }
679
+ )
680
+ ), /* @__PURE__ */ import_react.default.createElement(
681
+ import_antd.Form.Item,
682
+ {
683
+ label: getText("pisell2.saas.role.extension-table"),
684
+ name: ["metadata", "extension_form_id"],
685
+ extra: getText("pisell2.saas.role.select-extension-table")
686
+ },
687
+ /* @__PURE__ */ import_react.default.createElement(
688
+ import_antd.Select,
689
+ {
690
+ placeholder: getText(
691
+ "pisell2.saas.role.select-extension-table"
692
+ ),
693
+ options: extensionTableOptions,
694
+ allowClear: true,
695
+ showSearch: true,
696
+ optionFilterProp: "label",
697
+ filterSort: (optionA, optionB) => ((optionA == null ? void 0 : optionA.label) ?? "").toLowerCase().localeCompare(((optionB == null ? void 0 : optionB.label) ?? "").toLowerCase())
698
+ }
699
+ )
700
+ ))
701
+ ), /* @__PURE__ */ import_react.default.createElement(
702
+ AntdDrawer,
703
+ {
704
+ title: getText("pisell2.saas.role.add-members-to-role"),
705
+ open: addMemberDrawerVisible,
706
+ onClose: () => setAddMemberDrawerVisible(false),
707
+ width: 600,
708
+ footer: /* @__PURE__ */ import_react.default.createElement(
709
+ "div",
710
+ {
711
+ style: {
712
+ textAlign: "right",
713
+ padding: "8px 0px"
714
+ }
715
+ },
716
+ /* @__PURE__ */ import_react.default.createElement(
717
+ import_antd.Button,
718
+ {
719
+ onClick: () => setAddMemberDrawerVisible(false),
720
+ style: { marginRight: 8 }
721
+ },
722
+ getText("pisell2.saas.role.cancel")
723
+ ),
724
+ /* @__PURE__ */ import_react.default.createElement(
725
+ import_antd.Button,
726
+ {
727
+ onClick: handleAddMembers,
728
+ type: "primary",
729
+ loading: updateRoleMembersLoading,
730
+ disabled: selectedMemberIds.length === 0
731
+ },
732
+ getText("pisell2.saas.role.add")
733
+ )
734
+ )
735
+ },
736
+ /* @__PURE__ */ import_react.default.createElement(
737
+ import_antd.Input,
738
+ {
739
+ placeholder: getText("pisell2.saas.role.search"),
740
+ allowClear: true,
741
+ style: { marginBottom: 16 },
742
+ prefix: /* @__PURE__ */ import_react.default.createElement(import_icons.SearchOutlined, null),
743
+ onChange: (e) => {
744
+ fetchAllMembers({
745
+ page: 1,
746
+ size: 100,
747
+ search: e.target.value
748
+ });
749
+ }
750
+ }
751
+ ),
752
+ /* @__PURE__ */ import_react.default.createElement(
753
+ import_antd.Table,
754
+ {
755
+ tableLayout: "fixed",
756
+ columns: availableMemberColumns,
757
+ dataSource: ((allMembersData == null ? void 0 : allMembersData.list) || []).filter(
758
+ (m) => !(membersData == null ? void 0 : membersData.list.some((existing) => existing.id === m.id))
759
+ ),
760
+ rowKey: "id",
761
+ rowSelection: {
762
+ preserveSelectedRowKeys: true,
763
+ selectedRowKeys: selectedMemberIds,
764
+ onChange: (selectedKeys) => {
765
+ setSelectedMemberIds(selectedKeys);
766
+ console.log(selectedKeys);
767
+ }
768
+ },
769
+ loading: allMembersLoading,
770
+ pagination: false,
771
+ size: "middle",
772
+ bordered: false,
773
+ locale: {
774
+ emptyText: getText("pisell2.saas.role.all-members-in-role")
775
+ }
776
+ }
777
+ )
778
+ )), /* @__PURE__ */ import_react.default.createElement(import_antd.ConfigProvider, { prefixCls: "pisell-lowcode" }, contextHolder));
779
+ };
780
+ var saasRole_default = SaasRole;