@pisell/materials 6.0.6 → 6.0.8

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 (182) 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 +7 -7
  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 +21 -53
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +18 -50
  11. package/es/components/config-provider/index.js +1 -1
  12. package/es/components/dataSourceComponents/dataSourceForm/BaseForm.js +20 -11
  13. package/es/components/dataSourceComponents/dataSourceForm/formItem.js +1 -1
  14. package/es/components/dataSourceComponents/dataSourceForm/group/index.less +2 -2
  15. package/es/components/dataSourceComponents/dataSourceForm/index.js +4 -2
  16. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.d.ts +4 -0
  17. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.js +11 -3
  18. package/es/components/dataSourceComponents/dataSourceForm/provider/jsonWrapper/JsonWrapperProvider.js +10 -3
  19. package/es/components/dataSourceComponents/dataSourceForm/serve.d.ts +3 -2
  20. package/es/components/dataSourceComponents/dataSourceForm/serve.js +36 -20
  21. package/es/components/dataSourceComponents/dataSourceForm/submitButton/index.js +46 -25
  22. package/es/components/dataSourceComponents/dataSourceForm/type.d.ts +5 -0
  23. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +3 -1
  24. package/es/components/dataSourceComponents/dataSourceForm/utils.js +38 -10
  25. package/es/components/dataSourceComponents/dataSourceTable/filter/index.js +1 -1
  26. package/es/components/dataSourceComponents/dataSourceTable/hooks/useColumns.js +4 -1
  27. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +7 -0
  28. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +28 -5
  29. package/es/components/dataSourceComponents/dataSourceTable/index.js +4 -2
  30. package/es/components/dataSourceComponents/dataSourceTable/type.d.ts +9 -1
  31. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.js +7 -1
  32. package/es/components/dataSourceComponents/fields/Input.Url/ReadPretty.d.ts +1 -0
  33. package/es/components/dataSourceComponents/fields/Input.Url/ReadPretty.js +16 -1
  34. package/es/components/dataSourceComponents/fields/Input.Url/ReadPretty.less +1 -1
  35. package/es/components/dataSourceComponents/fields/Select/index.js +7 -1
  36. package/es/components/dataSourceComponents/fields/Upload/serve.d.ts +4 -1
  37. package/es/components/dataSourceComponents/fields/Upload/serve.js +10 -31
  38. package/es/components/dataSourceComponents/hooks/useActions.d.ts +2 -1
  39. package/es/components/dataSourceComponents/hooks/useActions.js +73 -36
  40. package/es/components/dataSourceComponents/provider/dataSource/DataSourceContext.d.ts +7 -0
  41. package/es/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +3 -1
  42. package/es/components/dataSourceComponents/provider/variables/VariablesProvider.js +49 -3
  43. package/es/components/login-and-register/index.d.ts +82 -0
  44. package/es/components/login-and-register/index.js +360 -0
  45. package/es/components/login-and-register/index.less +211 -0
  46. package/es/components/organizationTenantSwitcher/defaultLogo.png +0 -0
  47. package/es/components/organizationTenantSwitcher/index.d.ts +17 -0
  48. package/es/components/organizationTenantSwitcher/index.js +96 -0
  49. package/es/components/organizationTenantSwitcher/index.less +88 -0
  50. package/es/components/page/index.js +4 -4
  51. package/es/components/page-header/index.d.ts +14 -0
  52. package/es/components/page-header/index.js +36 -0
  53. package/es/components/page-header/index.less +45 -0
  54. package/es/components/pisellAvatar/index.d.ts +19 -0
  55. package/es/components/pisellAvatar/index.js +89 -0
  56. package/es/components/pisellAvatar/index.less +26 -0
  57. package/es/components/pisellModal/components/PcModal/index.js +1 -1
  58. package/es/components/pisellTags/index.d.ts +13 -0
  59. package/es/components/pisellTags/index.js +83 -0
  60. package/es/components/pisellTags/index.less +17 -0
  61. package/es/components/pisellTags/utils.d.ts +1 -0
  62. package/es/components/pisellTags/utils.js +89 -0
  63. package/es/components/pisellText/components/Amount/index.js +1 -1
  64. package/es/components/pisellViewGrid/index.d.ts +16 -0
  65. package/es/components/pisellViewGrid/index.js +66 -0
  66. package/es/components/pisellViewGrid/index.less +31 -0
  67. package/es/components/profileMenu/index.d.ts +26 -0
  68. package/es/components/profileMenu/index.js +115 -0
  69. package/es/components/profileMenu/index.less +135 -0
  70. package/es/components/table/Header/index.js +8 -11
  71. package/es/index.d.ts +7 -0
  72. package/es/index.js +8 -1
  73. package/es/locales/en-US.d.ts +1 -0
  74. package/es/locales/en-US.js +1 -0
  75. package/es/locales/zh-CN.d.ts +1 -0
  76. package/es/locales/zh-CN.js +1 -0
  77. package/es/locales/zh-TW.d.ts +1 -0
  78. package/es/locales/zh-TW.js +1 -0
  79. package/lib/components/config-provider/index.js +1 -1
  80. package/lib/components/dataSourceComponents/dataSourceForm/BaseForm.js +22 -4
  81. package/lib/components/dataSourceComponents/dataSourceForm/formItem.js +1 -1
  82. package/lib/components/dataSourceComponents/dataSourceForm/group/index.less +2 -2
  83. package/lib/components/dataSourceComponents/dataSourceForm/index.js +3 -2
  84. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.d.ts +4 -0
  85. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.js +17 -3
  86. package/lib/components/dataSourceComponents/dataSourceForm/provider/jsonWrapper/JsonWrapperProvider.js +16 -6
  87. package/lib/components/dataSourceComponents/dataSourceForm/serve.d.ts +3 -2
  88. package/lib/components/dataSourceComponents/dataSourceForm/serve.js +9 -5
  89. package/lib/components/dataSourceComponents/dataSourceForm/submitButton/index.js +15 -4
  90. package/lib/components/dataSourceComponents/dataSourceForm/type.d.ts +5 -0
  91. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +3 -1
  92. package/lib/components/dataSourceComponents/dataSourceForm/utils.js +51 -5
  93. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.js +1 -1
  94. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useColumns.js +4 -1
  95. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +7 -0
  96. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +24 -3
  97. package/lib/components/dataSourceComponents/dataSourceTable/index.js +2 -2
  98. package/lib/components/dataSourceComponents/dataSourceTable/type.d.ts +9 -1
  99. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.js +6 -1
  100. package/lib/components/dataSourceComponents/fields/Input.Url/ReadPretty.d.ts +1 -0
  101. package/lib/components/dataSourceComponents/fields/Input.Url/ReadPretty.js +17 -2
  102. package/lib/components/dataSourceComponents/fields/Input.Url/ReadPretty.less +1 -1
  103. package/lib/components/dataSourceComponents/fields/Select/index.js +5 -1
  104. package/lib/components/dataSourceComponents/fields/Upload/serve.d.ts +4 -1
  105. package/lib/components/dataSourceComponents/fields/Upload/serve.js +20 -12
  106. package/lib/components/dataSourceComponents/hooks/useActions.d.ts +2 -1
  107. package/lib/components/dataSourceComponents/hooks/useActions.js +25 -7
  108. package/lib/components/dataSourceComponents/provider/dataSource/DataSourceContext.d.ts +7 -0
  109. package/lib/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +3 -1
  110. package/lib/components/dataSourceComponents/provider/variables/VariablesProvider.js +49 -3
  111. package/lib/components/login-and-register/index.d.ts +82 -0
  112. package/lib/components/login-and-register/index.js +261 -0
  113. package/lib/components/login-and-register/index.less +211 -0
  114. package/lib/components/organizationTenantSwitcher/defaultLogo.png +0 -0
  115. package/lib/components/organizationTenantSwitcher/index.d.ts +17 -0
  116. package/lib/components/organizationTenantSwitcher/index.js +119 -0
  117. package/lib/components/organizationTenantSwitcher/index.less +88 -0
  118. package/lib/components/page/index.js +4 -4
  119. package/lib/components/page-header/index.d.ts +14 -0
  120. package/lib/components/page-header/index.js +63 -0
  121. package/lib/components/page-header/index.less +45 -0
  122. package/lib/components/pisellAvatar/index.d.ts +19 -0
  123. package/lib/components/pisellAvatar/index.js +108 -0
  124. package/lib/components/pisellAvatar/index.less +26 -0
  125. package/lib/components/pisellModal/components/PcModal/index.js +1 -1
  126. package/lib/components/pisellTags/index.d.ts +13 -0
  127. package/lib/components/pisellTags/index.js +113 -0
  128. package/lib/components/pisellTags/index.less +17 -0
  129. package/lib/components/pisellTags/utils.d.ts +1 -0
  130. package/lib/components/pisellTags/utils.js +86 -0
  131. package/lib/components/pisellText/components/Amount/index.js +2 -2
  132. package/lib/components/pisellViewGrid/index.d.ts +16 -0
  133. package/lib/components/pisellViewGrid/index.js +98 -0
  134. package/lib/components/pisellViewGrid/index.less +31 -0
  135. package/lib/components/profileMenu/index.d.ts +26 -0
  136. package/lib/components/profileMenu/index.js +113 -0
  137. package/lib/components/profileMenu/index.less +135 -0
  138. package/lib/components/table/Header/index.js +11 -1
  139. package/lib/index.d.ts +7 -0
  140. package/lib/index.js +21 -0
  141. package/lib/locales/en-US.d.ts +1 -0
  142. package/lib/locales/en-US.js +1 -0
  143. package/lib/locales/zh-CN.d.ts +1 -0
  144. package/lib/locales/zh-CN.js +1 -0
  145. package/lib/locales/zh-TW.d.ts +1 -0
  146. package/lib/locales/zh-TW.js +1 -0
  147. package/lowcode/_utils/defaultSchema.ts +64 -0
  148. package/lowcode/data-source-form/meta.ts +130 -0
  149. package/lowcode/data-source-form/utils.ts +33 -3
  150. package/lowcode/data-source-table/meta.ts +139 -3
  151. package/lowcode/data-source-table/utils.tsx +6 -0
  152. package/lowcode/form-item-date-picker/snippets.ts +3 -0
  153. package/lowcode/form-item-input/snippets.ts +3 -1
  154. package/lowcode/form-item-input-number/snippets.ts +4 -0
  155. package/lowcode/form-item-input.email/snippets.ts +3 -0
  156. package/lowcode/form-item-input.json/snippets.ts +4 -1
  157. package/lowcode/form-item-input.password/snippets.ts +3 -0
  158. package/lowcode/form-item-input.phone/snippets.ts +3 -0
  159. package/lowcode/form-item-input.text-area/snippets.ts +3 -1
  160. package/lowcode/form-item-input.url/snippets.ts +3 -0
  161. package/lowcode/form-item-select/meta.ts +2 -1
  162. package/lowcode/form-item-select/snippets.ts +6 -0
  163. package/lowcode/form-item-time-picker/snippets.ts +3 -0
  164. package/lowcode/form-item-translation/snippets.ts +3 -1
  165. package/lowcode/login-and-register/meta.ts +541 -0
  166. package/lowcode/login-and-register/snippets.ts +38 -0
  167. package/lowcode/organization-tenant-switch/meta.ts +127 -0
  168. package/lowcode/page-header/meta.ts +68 -124
  169. package/lowcode/page-header/snippets.ts +1 -1
  170. package/lowcode/pisell-avatar/__screenshots__/avatar-1.jpg +0 -0
  171. package/lowcode/pisell-avatar/meta.ts +111 -0
  172. package/lowcode/pisell-avatar/snippets.ts +14 -0
  173. package/lowcode/pisell-tags/__screenshots__/tag-1.png +0 -0
  174. package/lowcode/pisell-tags/meta.ts +123 -0
  175. package/lowcode/pisell-tags/snippets.ts +14 -0
  176. package/lowcode/pisell-view-grid/__screenshots__/card-1.png +0 -0
  177. package/lowcode/pisell-view-grid/meta.ts +167 -0
  178. package/lowcode/pisell-view-grid/snippets.ts +54 -0
  179. package/lowcode/profile-menu/meta.ts +175 -0
  180. package/lowcode/profile-menu/snippets.ts +71 -0
  181. package/lowcode/submit-button/meta.ts +6 -0
  182. package/package.json +1 -1
@@ -1,11 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { ModeType } from '../../type';
3
3
  export interface FormSettingContextType {
4
+ onDataSourceFinish?: (values: any, result: any) => void;
4
5
  renderMode?: ModeType;
5
6
  groupInfoPosition?: 'top' | 'side';
6
7
  children?: React.ReactNode;
7
8
  currentValue?: 'server' | 'local';
8
9
  size?: 'small' | 'middle' | 'large';
10
+ formatSubmitValues?: (values: Record<string, any>) => Record<string, any>;
11
+ formatInitialValues?: (values: Record<string, any>) => Record<string, any>;
12
+ customSubmit?: (values: Record<string, any>) => Promise<any>;
9
13
  }
10
14
  export declare const FormSettingContext: import("react").Context<FormSettingContextType>;
11
15
  export default FormSettingContext;
@@ -35,15 +35,29 @@ module.exports = __toCommonJS(FormSettingProvider_exports);
35
35
  var import_react = __toESM(require("react"));
36
36
  var import_FormSettingContext = __toESM(require("./FormSettingContext"));
37
37
  var FormSettingProvider = (props) => {
38
- const { children, renderMode, groupInfoPosition, currentValue, size } = props;
38
+ const {
39
+ children,
40
+ renderMode,
41
+ groupInfoPosition,
42
+ currentValue,
43
+ size,
44
+ onDataSourceFinish,
45
+ formatSubmitValues,
46
+ formatInitialValues,
47
+ customSubmit
48
+ } = props;
39
49
  const value = import_react.default.useMemo(() => {
40
50
  return {
41
51
  renderMode,
42
52
  groupInfoPosition,
43
53
  currentValue,
44
- size
54
+ size,
55
+ onDataSourceFinish,
56
+ formatSubmitValues,
57
+ formatInitialValues,
58
+ customSubmit
45
59
  };
46
- }, [renderMode, groupInfoPosition, currentValue, size]);
60
+ }, [renderMode, groupInfoPosition, currentValue, size, onDataSourceFinish, formatSubmitValues, formatInitialValues, customSubmit]);
47
61
  return /* @__PURE__ */ import_react.default.createElement(
48
62
  import_FormSettingContext.default.Provider,
49
63
  {
@@ -37,16 +37,26 @@ var import_formItem = __toESM(require("../../formItem"));
37
37
  var import_utils = require("../../utils");
38
38
  var import_JsonWrapperContext = __toESM(require("./JsonWrapperContext"));
39
39
  var JsonWrapperProvider = (props) => {
40
- const { children, prefix, label } = props;
40
+ const { children, prefix, label, style } = props;
41
41
  const { path: prefixPath = [], level = 0 } = (0, import_react.useContext)(import_JsonWrapperContext.default) || {};
42
42
  const concatPath = (0, import_react.useMemo)(
43
43
  () => [...prefixPath, ...(0, import_utils.toArr)(prefix)],
44
44
  [prefixPath, prefix]
45
45
  );
46
- const contextValue = (0, import_react.useMemo)(() => ({
47
- path: concatPath,
48
- level: level + 1
49
- }), [concatPath, level]);
50
- return /* @__PURE__ */ import_react.default.createElement(import_JsonWrapperContext.default.Provider, { value: contextValue }, /* @__PURE__ */ import_react.default.createElement(import_formItem.default, { label, style: { paddingLeft: `${level * 12}px` } }, /* @__PURE__ */ import_react.default.createElement("div", { style: { paddingLeft: `${level * 12}px` } }, children)));
46
+ const contextValue = (0, import_react.useMemo)(
47
+ () => ({
48
+ path: concatPath,
49
+ level: level + 1
50
+ }),
51
+ [concatPath, level]
52
+ );
53
+ return /* @__PURE__ */ import_react.default.createElement(import_JsonWrapperContext.default.Provider, { value: contextValue }, /* @__PURE__ */ import_react.default.createElement(
54
+ import_formItem.default,
55
+ {
56
+ label,
57
+ style: { ...style || {}, paddingLeft: `${level * 12}px` }
58
+ },
59
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { paddingLeft: `${level * 12}px` } }, children)
60
+ ));
51
61
  };
52
62
  var JsonWrapperProvider_default = JsonWrapperProvider;
@@ -103,7 +103,8 @@ export declare const createNocobaseData: (params: {
103
103
  */
104
104
  export declare const getNocobaseData: (params: {
105
105
  key: string;
106
- id: string;
106
+ query: Record<string, any>;
107
+ headers?: any;
107
108
  }) => Promise<any>;
108
109
  /**
109
110
  * 自定义api接口
@@ -126,9 +127,9 @@ export declare const customApi: (url: string, data: Record<string, any>, options
126
127
  */
127
128
  export declare const updateNocobaseData: (params: {
128
129
  key: string;
129
- id: string;
130
130
  data: any;
131
131
  headers?: any;
132
+ query?: Record<string, any> | undefined;
132
133
  }) => Promise<any>;
133
134
  /**
134
135
  * 获取nocobase数据列表
@@ -65,13 +65,17 @@ var createNocobaseData = async (params) => {
65
65
  headers
66
66
  });
67
67
  };
68
+ var formatQueryObjString = (query = {}) => {
69
+ return Object.entries(query || {}).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join("&");
70
+ };
68
71
  var getNocobaseData = async (params) => {
69
- const { key, id } = params;
72
+ const { key, query, headers } = params;
70
73
  return import_utils.request.getRequest().get(
71
- `/${key}:get?filterByTk=${id}`,
74
+ `/${key}:get?${formatQueryObjString(query)}`,
72
75
  {},
73
76
  {
74
- isNocobase: true
77
+ isNocobase: true,
78
+ headers
75
79
  }
76
80
  );
77
81
  };
@@ -104,8 +108,8 @@ var customApi = async (url, data, options) => {
104
108
  return import_utils.request.getRequest()[requestMethod](requestUrl, requestData, { headers: requestHeaders, isCustomApi: true });
105
109
  };
106
110
  var updateNocobaseData = async (params) => {
107
- const { key, id, data, headers } = params;
108
- return import_utils.request.getRequest().post(`/${key}:update?filterByTk=${id}`, data, {
111
+ const { key, data, headers, query } = params;
112
+ return import_utils.request.getRequest().post(`/${key}:update?${formatQueryObjString(query)}`, data, {
109
113
  isNocobase: true,
110
114
  headers
111
115
  });
@@ -40,6 +40,7 @@ var import_formItem = __toESM(require("../formItem"));
40
40
  var import_useFormSetting = __toESM(require("../provider/hooks/useFormSetting"));
41
41
  var import_useCtxActions = __toESM(require("../../hooks/useCtxActions"));
42
42
  var import_useDataSource = __toESM(require("../../hooks/useDataSource"));
43
+ var import_utils = require("../utils");
43
44
  var import_index = require("./index.less");
44
45
  var SubmitButton = (props) => {
45
46
  const {
@@ -57,18 +58,22 @@ var SubmitButton = (props) => {
57
58
  const [loading, setLoading] = (0, import_react.useState)(false);
58
59
  const [api, contextHolder] = import_antd.notification.useNotification();
59
60
  const form = import_antd.Form.useFormInstance();
60
- const { renderMode } = (0, import_useFormSetting.default)();
61
+ const { renderMode, onDataSourceFinish, formatSubmitValues, customSubmit } = (0, import_useFormSetting.default)();
61
62
  const { setVisible, refreshTableData } = (0, import_useCtxActions.default)();
62
63
  const { create, update } = (0, import_useDataSource.default)();
63
64
  const isDisabled = status === "disabled";
64
65
  const onSubmit = async (values) => {
65
66
  setLoading(true);
66
67
  try {
68
+ if (customSubmit) {
69
+ return await customSubmit(values);
70
+ }
67
71
  if (renderMode === "edit") {
68
- await update.runAsync(values);
72
+ return await update.runAsync(values);
69
73
  } else if (renderMode === "add") {
70
74
  const res = await create.runAsync(values);
71
75
  form == null ? void 0 : form.resetFields();
76
+ return res;
72
77
  }
73
78
  } finally {
74
79
  setLoading(false);
@@ -110,7 +115,12 @@ var SubmitButton = (props) => {
110
115
  content: toastConfig.title
111
116
  });
112
117
  }
113
- await onSubmit(values);
118
+ const filteredValues = (0, import_utils.filterSystemFields)(allValues);
119
+ const formattedValues = formatSubmitValues ? formatSubmitValues(filteredValues) : filteredValues;
120
+ const result = await onSubmit(formattedValues);
121
+ if (onDataSourceFinish) {
122
+ onDataSourceFinish(formattedValues, result);
123
+ }
114
124
  if (refreshData) {
115
125
  refreshTableData == null ? void 0 : refreshTableData();
116
126
  }
@@ -156,7 +166,8 @@ var SubmitButton = (props) => {
156
166
  size: "large",
157
167
  loading,
158
168
  onClick: onSubmitClick,
159
- disabled: isDisabled
169
+ disabled: isDisabled,
170
+ htmlType: "submit"
160
171
  },
161
172
  childrenString
162
173
  ), contextHolder));
@@ -5,6 +5,7 @@ export interface DataSourceFormProps {
5
5
  title: string;
6
6
  description: string;
7
7
  dataSource: DataSourceType;
8
+ extraParams?: Record<string, any>;
8
9
  showTitle: boolean;
9
10
  showDescription: boolean;
10
11
  groupInfoPosition: 'top' | 'side';
@@ -14,5 +15,9 @@ export interface DataSourceFormProps {
14
15
  children: React.ReactNode;
15
16
  className?: string;
16
17
  size?: 'small' | 'middle' | 'large';
18
+ onDataSourceFinish?: (values: any, result: any) => void;
17
19
  __designMode?: string;
20
+ formatSubmitValues?: (values: Record<string, any>) => Record<string, any>;
21
+ formatInitialValues?: (values: Record<string, any>) => Record<string, any>;
22
+ customSubmit?: (values: Record<string, any>) => Promise<any>;
18
23
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ModeType } from './type';
3
- import "./style.less";
3
+ import './style.less';
4
4
  export interface WithModeProps {
5
5
  renderMode?: ModeType;
6
6
  value?: any;
@@ -25,6 +25,7 @@ export interface WithFormItemProps {
25
25
  }
26
26
  export declare const formItemNameReplace: (name: string) => string;
27
27
  export declare const formItemNameReverse: (name: string) => string;
28
+ export declare const isValidDomain: (value: string) => boolean;
28
29
  /**
29
30
  * @title: 追加formItem层
30
31
  * @description:
@@ -48,3 +49,4 @@ export declare const withOptions: <P extends unknown>(WrappedComponent: React.Co
48
49
  export declare const getNestedValue: (obj: Record<string, any>, path: string) => Record<string, any>;
49
50
  export declare const renderValueWithMap: (value: any, valueMap?: Record<string, string>, renderMode?: ModeType) => React.JSX.Element | null;
50
51
  export declare function toArr(str: string | number | (string | number)[]): (string | number)[];
52
+ export declare const filterSystemFields: (params: Record<string, any>) => Record<string, any>;
@@ -29,9 +29,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/components/dataSourceComponents/dataSourceForm/utils.tsx
30
30
  var utils_exports = {};
31
31
  __export(utils_exports, {
32
+ filterSystemFields: () => filterSystemFields,
32
33
  formItemNameReplace: () => formItemNameReplace,
33
34
  formItemNameReverse: () => formItemNameReverse,
34
35
  getNestedValue: () => getNestedValue,
36
+ isValidDomain: () => isValidDomain,
35
37
  renderValueWithMap: () => renderValueWithMap,
36
38
  toArr: () => toArr,
37
39
  withDataSource: () => withDataSource,
@@ -85,6 +87,9 @@ var formItemNameReplace = (name) => {
85
87
  var formItemNameReverse = (name) => {
86
88
  return name.replace(new RegExp(FORM_ITEM_SPLIT_CHAR, "g"), ".");
87
89
  };
90
+ var isValidDomain = (value) => {
91
+ return /^(?=.{1,253}$)(?!-)[A-Za-z0-9-]{1,63}(?<!-)(\.[A-Za-z]{2,})+$/.test(value);
92
+ };
88
93
  var withFormItem = (WrappedComponent, overlayProps) => {
89
94
  return ({
90
95
  name: propsName,
@@ -164,6 +169,15 @@ var withFormItem = (WrappedComponent, overlayProps) => {
164
169
  message: typeobj.message || (0, import_locales.getText)("pisell-data-source-form-email-message")
165
170
  });
166
171
  }
172
+ if (typeobj.type === "domain" && typeobj.enabled) {
173
+ rules.push({
174
+ validator: (_, value) => isValidDomain(value) ? Promise.resolve() : Promise.reject(
175
+ new Error(
176
+ typeobj.message || (0, import_locales.getText)("pisell-data-source-form-domain-message")
177
+ )
178
+ )
179
+ });
180
+ }
167
181
  if (typeobj.type === "url" && typeobj.enabled) {
168
182
  rules.push({
169
183
  ...typeobj,
@@ -174,7 +188,7 @@ var withFormItem = (WrappedComponent, overlayProps) => {
174
188
  rules.push({
175
189
  validator: (_, value) => {
176
190
  var _a2;
177
- return (0, import_libphonenumber_js.isValidPhoneNumber)(value) && ((_a2 = (0, import_libphonenumber_js.parsePhoneNumberFromString)(value)) == null ? void 0 : _a2.isValid()) ? Promise.resolve() : Promise.reject(
191
+ return !otherProps.disabled || (0, import_libphonenumber_js.isValidPhoneNumber)(value) && ((_a2 = (0, import_libphonenumber_js.parsePhoneNumberFromString)(value)) == null ? void 0 : _a2.isValid()) ? Promise.resolve() : Promise.reject(
178
192
  new Error(
179
193
  typeobj.message || (0, import_locales.getText)("pisell-data-source-form-phone-message")
180
194
  )
@@ -182,6 +196,12 @@ var withFormItem = (WrappedComponent, overlayProps) => {
182
196
  }
183
197
  });
184
198
  }
199
+ if (typeobj.type === "pattern" && typeobj.enabled) {
200
+ rules.push({
201
+ ...typeobj,
202
+ message: typeobj.message
203
+ });
204
+ }
185
205
  }
186
206
  if (maxLengthobj && maxLengthobj.enabled) {
187
207
  rules.push({
@@ -316,14 +336,14 @@ var withOptions = (WrappedComponent) => {
316
336
  }
317
337
  }, []);
318
338
  const options = (0, import_react.useMemo)(() => {
319
- var _a2, _b;
339
+ var _a2, _b, _c;
320
340
  if (optionSourceType !== "api") {
321
341
  return propsOptions;
322
342
  }
323
- return (((_b = (_a2 = list.data) == null ? void 0 : _a2.data) == null ? void 0 : _b.map((item) => ({
343
+ return (((_c = (_b = (_a2 = list.data) == null ? void 0 : _a2.data) == null ? void 0 : _b.filter) == null ? void 0 : _c.call(_b, (item) => !["draft", "inactive", "disabled"].includes(item == null ? void 0 : item.status))) || []).map((item) => ({
324
344
  label: translationOriginal(item[labelField]),
325
345
  value: item[valueField]
326
- }))) || []).sort((a, b) => a.label.localeCompare(b.label));
346
+ })) || [];
327
347
  }, [propsOptions, optionSourceType, (_a = list == null ? void 0 : list.data) == null ? void 0 : _a.data]);
328
348
  return /* @__PURE__ */ import_react.default.createElement(WrappedComponent, { ...props, options });
329
349
  };
@@ -341,7 +361,15 @@ var getNestedValue = (obj, path) => {
341
361
  var renderValueWithMap = (value, valueMap, renderMode) => {
342
362
  const textStyle = renderMode === "tableView" ? { fontSize: 14, fontWeight: 400 } : {};
343
363
  if ((0, import_utils.isArr)(value)) {
344
- return /* @__PURE__ */ import_react.default.createElement("span", { className: "pisell-form-read-pretty-text" }, value.map((item, index) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("span", { key: item, className: "pisell-form-read-pretty-value", style: textStyle }, valueMap == null ? void 0 : valueMap[item]), index < value.length - 1 && ",")));
364
+ return /* @__PURE__ */ import_react.default.createElement("span", { className: "pisell-form-read-pretty-text" }, value.map((item, index) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
365
+ "span",
366
+ {
367
+ key: item,
368
+ className: "pisell-form-read-pretty-value",
369
+ style: textStyle
370
+ },
371
+ valueMap == null ? void 0 : valueMap[item]
372
+ ), index < value.length - 1 && ", ")));
345
373
  } else if ((0, import_utils.isString)(value)) {
346
374
  return /* @__PURE__ */ import_react.default.createElement("span", { className: "pisell-form-read-pretty-text" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "pisell-form-read-pretty-value", style: textStyle }, (valueMap == null ? void 0 : valueMap[value]) || value));
347
375
  }
@@ -350,11 +378,29 @@ var renderValueWithMap = (value, valueMap, renderMode) => {
350
378
  function toArr(str) {
351
379
  return Array.isArray(str) ? str : [str];
352
380
  }
381
+ var systemFields = [
382
+ "createdAt",
383
+ "updatedAt",
384
+ "createdBy",
385
+ "created_at",
386
+ "updated_at",
387
+ "deleted_at"
388
+ ];
389
+ var filterSystemFields = (params) => {
390
+ return Object.keys(params).reduce((acc, key) => {
391
+ if (!systemFields.includes(key)) {
392
+ acc[key] = params[key];
393
+ }
394
+ return acc;
395
+ }, {});
396
+ };
353
397
  // Annotate the CommonJS export names for ESM import in node:
354
398
  0 && (module.exports = {
399
+ filterSystemFields,
355
400
  formItemNameReplace,
356
401
  formItemNameReverse,
357
402
  getNestedValue,
403
+ isValidDomain,
358
404
  renderValueWithMap,
359
405
  toArr,
360
406
  withDataSource,
@@ -167,7 +167,7 @@ var Filter = (props) => {
167
167
  },
168
168
  searchDom,
169
169
  filterDom,
170
- show && /* @__PURE__ */ import_react.default.createElement(
170
+ show && sortButtonShow && /* @__PURE__ */ import_react.default.createElement(
171
171
  import_FilterButton.default,
172
172
  {
173
173
  value: list,
@@ -80,7 +80,10 @@ var useColumns = ({
80
80
  return {
81
81
  ...column,
82
82
  title,
83
- render: (text) => {
83
+ render: (text, record, index) => {
84
+ if (column == null ? void 0 : column.render) {
85
+ return column.render(text, record, index);
86
+ }
84
87
  return /* @__PURE__ */ import_react.default.createElement(FieldComponent, { ...fieldProps, value: text });
85
88
  }
86
89
  };
@@ -81,5 +81,12 @@ declare const useTableProps: (props: UseTablePropsProps) => {
81
81
  }[];
82
82
  } | undefined;
83
83
  onValuesChange?: ((changedValues: any, values: any) => void) | undefined;
84
+ extraParams?: {
85
+ list?: Record<string, any> | undefined;
86
+ get?: Record<string, any> | undefined;
87
+ update?: Record<string, any> | undefined;
88
+ create?: Record<string, any> | undefined;
89
+ destroy?: Record<string, any> | undefined;
90
+ } | undefined;
84
91
  };
85
92
  export default useTableProps;
@@ -102,6 +102,11 @@ var useTableProps = (props) => {
102
102
  return propsSubTitle;
103
103
  }, [propsSubTitle]);
104
104
  const handleOpenDrawer = (0, import_ahooks.useMemoizedFn)((record, item) => {
105
+ var _a2;
106
+ (_a2 = item == null ? void 0 : item.onClick) == null ? void 0 : _a2.call(item, record);
107
+ if (item.openMode === "custom") {
108
+ return;
109
+ }
105
110
  registerValueVariable == null ? void 0 : registerValueVariable(componentId, {
106
111
  currentRecord: record
107
112
  });
@@ -142,7 +147,7 @@ var useTableProps = (props) => {
142
147
  type,
143
148
  render: (_, record) => {
144
149
  return /* @__PURE__ */ import_react.default.createElement(import_antd.Space, null, items == null ? void 0 : items.map((item) => {
145
- const { label, actionType } = item;
150
+ const { label, actionType, show: show2 } = item;
146
151
  const handleClick = () => {
147
152
  if (actionType === "delete") {
148
153
  import_pisellModal.default.confirm({
@@ -159,6 +164,16 @@ var useTableProps = (props) => {
159
164
  handleOpenDrawer(record, item);
160
165
  }
161
166
  };
167
+ if ((0, import_utils.isBoolean)(show2)) {
168
+ if (!show2) {
169
+ return null;
170
+ }
171
+ } else if ((0, import_utils.isFunction)(show2)) {
172
+ const result = show2(record);
173
+ if (!result) {
174
+ return null;
175
+ }
176
+ }
162
177
  return /* @__PURE__ */ import_react.default.createElement(
163
178
  import_antd.Button,
164
179
  {
@@ -187,13 +202,19 @@ var useTableProps = (props) => {
187
202
  return null;
188
203
  }
189
204
  return (_a2 = titleButtons == null ? void 0 : titleButtons.items) == null ? void 0 : _a2.map((button) => {
190
- const { actionType, buttonProps } = button;
205
+ const { actionType, buttonProps, beforeOpen } = button;
191
206
  return {
192
207
  ...button,
193
208
  ...buttonProps,
194
209
  onClick: () => {
195
210
  if (actionType === "add") {
196
- handleOpenDrawer(null, button);
211
+ let result = true;
212
+ if (beforeOpen) {
213
+ result = beforeOpen();
214
+ }
215
+ if (result) {
216
+ handleOpenDrawer(null, button);
217
+ }
197
218
  }
198
219
  }
199
220
  };
@@ -37,7 +37,7 @@ var import_BaseTable = __toESM(require("./BaseTable"));
37
37
  var import_DataSourceProvider = __toESM(require("../provider/dataSource/DataSourceProvider"));
38
38
  var import_index = require("./index.less");
39
39
  var DataSourceTable = (props) => {
40
- const { dataSource, __designMode } = props;
41
- return /* @__PURE__ */ import_react.default.createElement(import_DataSourceProvider.default, { dataSource, __designMode }, /* @__PURE__ */ import_react.default.createElement(import_BaseTable.default, { ...props }));
40
+ const { dataSource, __designMode, extraParams } = props;
41
+ return /* @__PURE__ */ import_react.default.createElement(import_DataSourceProvider.default, { dataSource, __designMode, extraParams }, /* @__PURE__ */ import_react.default.createElement(import_BaseTable.default, { ...props }));
42
42
  };
43
43
  var dataSourceTable_default = DataSourceTable;
@@ -3,12 +3,13 @@ import { ColumnType } from 'antd/es/table';
3
3
  import { DataSourceType } from '../provider/dataSource/DataSourceContext';
4
4
  export declare type OperationItem = {
5
5
  label?: string;
6
- openMode: 'modal' | 'drawer';
6
+ openMode: 'modal' | 'drawer' | 'custom';
7
7
  openContentSize: 'small' | 'middle' | 'large';
8
8
  openTitle: string;
9
9
  actionType: 'detail' | 'edit' | 'delete' | 'custom';
10
10
  key: string;
11
11
  buttonProps?: any;
12
+ onClick?: (record: any) => void;
12
13
  };
13
14
  export interface DataSourceTableProps {
14
15
  title?: string | React.ReactNode | (() => React.ReactNode);
@@ -67,4 +68,11 @@ export interface DataSourceTableProps {
67
68
  }[];
68
69
  };
69
70
  onValuesChange?: (changedValues: any, values: any) => void;
71
+ extraParams?: {
72
+ list?: Record<string, any>;
73
+ get?: Record<string, any>;
74
+ update?: Record<string, any>;
75
+ create?: Record<string, any>;
76
+ destroy?: Record<string, any>;
77
+ };
70
78
  }
@@ -42,7 +42,7 @@ var import_ReadPretty = __toESM(require("./ReadPretty"));
42
42
  var import_utils2 = require("../../dataSourceForm/utils");
43
43
  var import_useTranslationOriginal = __toESM(require("../../../../hooks/useTranslationOriginal"));
44
44
  var { Option } = import_select.default;
45
- var PhoneInput = ({ value: propsValue, onChange, isVerification, ...props }) => {
45
+ var PhoneInput = ({ value: propsValue, onChange, isVerification, disabled, ...props }) => {
46
46
  const { data: countries = [] } = (0, import_serve.useCountries)();
47
47
  const translationOriginal = (0, import_useTranslationOriginal.default)();
48
48
  const value = (0, import_react.useMemo)(() => {
@@ -90,6 +90,9 @@ var PhoneInput = ({ value: propsValue, onChange, isVerification, ...props }) =>
90
90
  const selectedCountry = countries.find(
91
91
  (c) => c.code === countryCode
92
92
  );
93
+ if (phoneNumber.length === 0) {
94
+ return "";
95
+ }
93
96
  const prefix = (selectedCountry == null ? void 0 : selectedCountry.prefix) || "";
94
97
  return `${prefix}${phoneNumber}`;
95
98
  }, [countryCode, phoneNumber, countries]);
@@ -106,6 +109,7 @@ var PhoneInput = ({ value: propsValue, onChange, isVerification, ...props }) =>
106
109
  return /* @__PURE__ */ import_react.default.createElement(import_antd.Space.Compact, { block: true }, /* @__PURE__ */ import_react.default.createElement(
107
110
  import_select.default,
108
111
  {
112
+ disabled,
109
113
  value: countryCode,
110
114
  onChange: handleCountryChange,
111
115
  style: { width: "90px" },
@@ -124,6 +128,7 @@ var PhoneInput = ({ value: propsValue, onChange, isVerification, ...props }) =>
124
128
  import_antd.Input,
125
129
  {
126
130
  ...props,
131
+ disabled,
127
132
  status,
128
133
  type: "tel",
129
134
  value: phoneNumber,
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { UrlProps } from './type';
3
3
  import './ReadPretty.less';
4
+ export declare const formatUrl: (url: string) => string;
4
5
  declare const UrlReadPretty: (props: UrlProps) => React.JSX.Element;
5
6
  export default UrlReadPretty;
@@ -29,7 +29,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/components/dataSourceComponents/fields/Input.Url/ReadPretty.tsx
30
30
  var ReadPretty_exports = {};
31
31
  __export(ReadPretty_exports, {
32
- default: () => ReadPretty_default
32
+ default: () => ReadPretty_default,
33
+ formatUrl: () => formatUrl
33
34
  });
34
35
  module.exports = __toCommonJS(ReadPretty_exports);
35
36
  var import_react = __toESM(require("react"));
@@ -37,17 +38,31 @@ var import_antd = require("antd");
37
38
  var import_classnames = __toESM(require("classnames"));
38
39
  var import_ReadPretty = require("./ReadPretty.less");
39
40
  var { Link } = import_antd.Typography;
41
+ var formatUrl = (url) => {
42
+ if (!url)
43
+ return "";
44
+ if (url.startsWith("http://") || url.startsWith("https://")) {
45
+ return url;
46
+ }
47
+ return `https://${url}`;
48
+ };
40
49
  var UrlReadPretty = (props) => {
41
50
  const { value, renderMode } = props;
51
+ const formattedUrl = formatUrl(value);
42
52
  return /* @__PURE__ */ import_react.default.createElement(
43
53
  Link,
44
54
  {
45
55
  className: (0, import_classnames.default)("pisell-url-read-pretty", {
46
56
  "pisell-url-read-pretty-table-view": renderMode === "tableView"
47
57
  }),
48
- href: value
58
+ href: formattedUrl,
59
+ target: "_blank"
49
60
  },
50
61
  value
51
62
  );
52
63
  };
53
64
  var ReadPretty_default = UrlReadPretty;
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ formatUrl
68
+ });
@@ -1,5 +1,5 @@
1
1
  .pisell-url-read-pretty {
2
- color: var(--Gray-900, #101828);
2
+ //color: var(--Gray-900, #101828);
3
3
  font-size: 16px;
4
4
  font-weight: 600;
5
5
  line-height: 24px; /* 150% */
@@ -34,7 +34,11 @@ __export(Select_exports, {
34
34
  module.exports = __toCommonJS(Select_exports);
35
35
  var import_utils = require("../../dataSourceForm/utils");
36
36
  var import_WithMode = __toESM(require("./WithMode"));
37
- var SelectWithFormItem = (0, import_utils.withFormItem)(import_WithMode.default);
37
+ var SelectWithFormItem = (0, import_utils.withFormItem)(import_WithMode.default, {
38
+ innerProps: {
39
+ getPopupContainer: (triggerNode) => triggerNode.parentElement
40
+ }
41
+ });
38
42
  var SelectWithOptions = (0, import_utils.withOptions)(SelectWithFormItem);
39
43
  var SelectWithDataSource = (0, import_utils.withDataSource)(SelectWithOptions);
40
44
  var Select_default = SelectWithDataSource;
@@ -8,7 +8,10 @@ export interface MediaType {
8
8
  maxsize: number;
9
9
  }
10
10
  export declare const useMediaConfig: () => {
11
- data: any;
11
+ data: {
12
+ upload_onetime_limit: any;
13
+ upload_maxsize: any;
14
+ };
12
15
  };
13
16
  export declare const useMediaTypes: () => {
14
17
  data: MediaType[];