@pisell/materials 1.0.604 → 1.0.606
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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +7 -7
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +26 -26
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +21 -21
- package/es/components/appVersionControl/index.js +49 -52
- package/es/components/appVersionControl/index.less +2 -4
- package/es/components/appVersionControl/types.d.ts +4 -1
- package/es/components/appVersionControl/utils.d.ts +13 -0
- package/es/components/appVersionControl/utils.js +30 -0
- package/es/components/customSelect/index.d.ts +2 -2
- package/es/components/customSelect/index.js +8 -2
- package/es/components/dataSourceComponents/dataSourceForm/utils.js +6 -9
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +4 -4
- package/es/components/dataSourceComponents/fields/Input.Subdomain/WithMode.js +4 -2
- package/es/components/versionModal/index.d.ts +7 -0
- package/es/components/versionModal/index.js +36 -9
- package/es/components/versionSelect/index.d.ts +18 -0
- package/es/components/versionSelect/index.js +53 -0
- package/es/components/versionSelect/index.less +3 -0
- package/es/locales/en-US.d.ts +2 -0
- package/es/locales/en-US.js +3 -1
- package/es/locales/zh-CN.d.ts +2 -0
- package/es/locales/zh-CN.js +3 -1
- package/es/locales/zh-TW.d.ts +2 -0
- package/es/locales/zh-TW.js +3 -1
- package/lib/components/appVersionControl/index.js +26 -46
- package/lib/components/appVersionControl/index.less +2 -4
- package/lib/components/appVersionControl/types.d.ts +4 -1
- package/lib/components/appVersionControl/utils.d.ts +13 -0
- package/lib/components/appVersionControl/utils.js +52 -0
- package/lib/components/customSelect/index.d.ts +2 -2
- package/lib/components/customSelect/index.js +1 -0
- package/lib/components/dataSourceComponents/dataSourceForm/utils.js +0 -6
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +4 -4
- package/lib/components/dataSourceComponents/fields/Input.Subdomain/WithMode.js +2 -2
- package/lib/components/versionModal/index.d.ts +7 -0
- package/lib/components/versionModal/index.js +33 -8
- package/lib/components/versionSelect/index.d.ts +18 -0
- package/lib/components/versionSelect/index.js +91 -0
- package/lib/components/versionSelect/index.less +3 -0
- package/lib/locales/en-US.d.ts +2 -0
- package/lib/locales/en-US.js +3 -1
- package/lib/locales/zh-CN.d.ts +2 -0
- package/lib/locales/zh-CN.js +3 -1
- package/lib/locales/zh-TW.d.ts +2 -0
- package/lib/locales/zh-TW.js +3 -1
- package/lowcode/data-source-form/meta.ts +1 -1
- package/lowcode/data-source-image/meta.ts +1 -1
- package/lowcode/data-source-menu/meta.ts +1 -1
- package/lowcode/data-source-qrcode/meta.ts +1 -1
- package/lowcode/data-source-table/meta.ts +1 -1
- package/lowcode/data-source-typography.text/meta.ts +1 -1
- package/lowcode/data-source-wrapper/meta.ts +1 -1
- package/lowcode/form-group/meta.ts +1 -1
- package/lowcode/form-item-checkbox/meta.ts +1 -1
- package/lowcode/form-item-checkbox.group/meta.ts +1 -1
- package/lowcode/form-item-color-picker/meta.ts +1 -1
- package/lowcode/form-item-date-picker/meta.ts +1 -1
- package/lowcode/form-item-icon-select/meta.ts +1 -1
- package/lowcode/form-item-input/meta.ts +1 -1
- package/lowcode/form-item-input-number/meta.ts +1 -1
- package/lowcode/form-item-input.email/meta.ts +1 -1
- package/lowcode/form-item-input.json/meta.ts +1 -1
- package/lowcode/form-item-input.mobile/meta.ts +1 -1
- package/lowcode/form-item-input.password/meta.ts +1 -1
- package/lowcode/form-item-input.phone/meta.ts +1 -1
- package/lowcode/form-item-input.subdomain/meta.ts +1 -1
- package/lowcode/form-item-input.text-area/meta.ts +1 -1
- package/lowcode/form-item-input.url/meta.ts +1 -1
- package/lowcode/form-item-radio/meta.ts +1 -1
- package/lowcode/form-item-radio.group/meta.ts +1 -1
- package/lowcode/form-item-select/meta.ts +1 -1
- package/lowcode/form-item-time-picker/meta.ts +1 -1
- package/lowcode/form-item-translation/meta.ts +1 -1
- package/lowcode/form-item-upload/meta.ts +1 -1
- package/lowcode/json-wrapper/meta.ts +1 -1
- package/lowcode/submit-button/meta.ts +1 -1
- package/package.json +2 -2
package/es/locales/zh-TW.js
CHANGED
|
@@ -240,6 +240,7 @@ export default {
|
|
|
240
240
|
'pisell-version-modal-describe-update-notes': '描述此版本的主要更改...',
|
|
241
241
|
'pisell-version-modal-version-error': '版本號必須大於當前版本',
|
|
242
242
|
'pisell-version-modal-version-required': '版本號為必填項',
|
|
243
|
+
'pisell-version-modal-based-on-version': '基於版本',
|
|
243
244
|
// 图标选择组件
|
|
244
245
|
'pisell-icon-select-placeholder': '選擇圖標',
|
|
245
246
|
'pisell-icon-select-outlined': '線框風格',
|
|
@@ -266,5 +267,6 @@ export default {
|
|
|
266
267
|
},
|
|
267
268
|
'pisell-lowcode-app-version-control-promote-version-describe': '發布版本後,該版本將無法再進行修改',
|
|
268
269
|
'pisell-lowcode-app-version-control-promote-version-ok': '發布',
|
|
269
|
-
'pisell-lowcode-app-version-control-promote-version-cancel': '取消'
|
|
270
|
+
'pisell-lowcode-app-version-control-promote-version-cancel': '取消',
|
|
271
|
+
'pisell-lowcode-app-version-control-version-exists': '版本已存在'
|
|
270
272
|
};
|
|
@@ -35,33 +35,16 @@ module.exports = __toCommonJS(appVersionControl_exports);
|
|
|
35
35
|
var import_classnames = __toESM(require("classnames"));
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var import_button = __toESM(require("../button"));
|
|
38
|
-
var import_customSelect = __toESM(require("../customSelect"));
|
|
39
38
|
var import_pisellCard = __toESM(require("../pisellCard"));
|
|
40
39
|
var import_pisellModal = __toESM(require("../pisellModal"));
|
|
41
40
|
var import_pisellAvatar = __toESM(require("../pisellAvatar"));
|
|
42
41
|
var import_icon = __toESM(require("../icon"));
|
|
43
|
-
var import_pisellRow = __toESM(require("../pisellRow"));
|
|
44
|
-
var import_pisellTags = __toESM(require("../pisellTags"));
|
|
45
42
|
var import_versionModal = __toESM(require("../versionModal"));
|
|
43
|
+
var import_versionSelect = __toESM(require("../versionSelect"));
|
|
44
|
+
var import_pisellToast = __toESM(require("../pisellToast"));
|
|
46
45
|
var import_locales = require("../../locales");
|
|
46
|
+
var import_utils = require("./utils");
|
|
47
47
|
var import_index = require("./index.less");
|
|
48
|
-
var getStatusColor = (status) => {
|
|
49
|
-
if (status === "live")
|
|
50
|
-
return "success";
|
|
51
|
-
if (status === "draft")
|
|
52
|
-
return "warning";
|
|
53
|
-
if (status === "deprecated")
|
|
54
|
-
return "error";
|
|
55
|
-
return "gray";
|
|
56
|
-
};
|
|
57
|
-
var getStatusText = (status) => {
|
|
58
|
-
if (status === "live")
|
|
59
|
-
return (0, import_locales.getText)("pisell-lowcode-app-version-control-live");
|
|
60
|
-
if (status === "draft")
|
|
61
|
-
return (0, import_locales.getText)("pisell-lowcode-app-version-control-draft");
|
|
62
|
-
if (status === "deprecated")
|
|
63
|
-
return (0, import_locales.getText)("pisell-lowcode-app-version-control-deprecated");
|
|
64
|
-
};
|
|
65
48
|
var AppVersionControl = (props) => {
|
|
66
49
|
const {
|
|
67
50
|
value,
|
|
@@ -81,9 +64,8 @@ var AppVersionControl = (props) => {
|
|
|
81
64
|
const currentVersion = (0, import_react.useMemo)(() => {
|
|
82
65
|
return versions.find((v) => v.value === value);
|
|
83
66
|
}, [value, versions]);
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
return (_a = versions.find((v) => v.status === "live")) == null ? void 0 : _a.version;
|
|
67
|
+
const maxVersion = (0, import_react.useMemo)(() => {
|
|
68
|
+
return (0, import_utils.getMaxVersion)(versions.map((v) => v.version));
|
|
87
69
|
}, [versions]);
|
|
88
70
|
const handlePromoteToLive = async () => {
|
|
89
71
|
setPromoteLoading(true);
|
|
@@ -98,8 +80,20 @@ var AppVersionControl = (props) => {
|
|
|
98
80
|
};
|
|
99
81
|
const handlePublishVersion = async (data) => {
|
|
100
82
|
setPublishLoading(true);
|
|
83
|
+
if (data.versionType === "custom") {
|
|
84
|
+
const version = versions.find((v) => v.version === data.version);
|
|
85
|
+
if (version) {
|
|
86
|
+
setPublishLoading(false);
|
|
87
|
+
return (0, import_pisellToast.default)({
|
|
88
|
+
content: (0, import_locales.getText)("pisell-lowcode-app-version-control-version-exists")
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
101
92
|
try {
|
|
102
|
-
await (onCreateVersion == null ? void 0 : onCreateVersion(
|
|
93
|
+
await (onCreateVersion == null ? void 0 : onCreateVersion({
|
|
94
|
+
version: data.version,
|
|
95
|
+
baseVersion: data.baseVersion || ""
|
|
96
|
+
}));
|
|
103
97
|
setPublishVersionModal(false);
|
|
104
98
|
} catch (error) {
|
|
105
99
|
console.error("Failed to create version:", error);
|
|
@@ -137,28 +131,11 @@ var AppVersionControl = (props) => {
|
|
|
137
131
|
),
|
|
138
132
|
/* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode-app-version-control-title" }, currentVersion == null ? void 0 : currentVersion.label),
|
|
139
133
|
/* @__PURE__ */ import_react.default.createElement(
|
|
140
|
-
|
|
134
|
+
import_versionSelect.default,
|
|
141
135
|
{
|
|
142
|
-
|
|
136
|
+
versions,
|
|
143
137
|
value,
|
|
144
|
-
|
|
145
|
-
onChange: handleVersionChange,
|
|
146
|
-
style: { width: "100%" },
|
|
147
|
-
renderItem: (option) => /* @__PURE__ */ import_react.default.createElement(
|
|
148
|
-
import_pisellRow.default,
|
|
149
|
-
{
|
|
150
|
-
leftContent: option.label,
|
|
151
|
-
rightContent: /* @__PURE__ */ import_react.default.createElement(
|
|
152
|
-
import_pisellTags.default,
|
|
153
|
-
{
|
|
154
|
-
type: "pill_color",
|
|
155
|
-
color: getStatusColor(option.status),
|
|
156
|
-
className: "pisell-lowcode-app-version-control-tag"
|
|
157
|
-
},
|
|
158
|
-
getStatusText(option.status)
|
|
159
|
-
)
|
|
160
|
-
}
|
|
161
|
-
)
|
|
138
|
+
onChange: handleVersionChange
|
|
162
139
|
}
|
|
163
140
|
),
|
|
164
141
|
allowCreate && /* @__PURE__ */ import_react.default.createElement(
|
|
@@ -196,12 +173,15 @@ var AppVersionControl = (props) => {
|
|
|
196
173
|
), /* @__PURE__ */ import_react.default.createElement(
|
|
197
174
|
import_versionModal.default,
|
|
198
175
|
{
|
|
199
|
-
currentVersion:
|
|
176
|
+
currentVersion: maxVersion || "",
|
|
200
177
|
visible: publishVersionModal,
|
|
201
178
|
onCancel: () => setPublishVersionModal(false),
|
|
202
179
|
onConfirm: handlePublishVersion,
|
|
203
180
|
isShowNote: false,
|
|
204
|
-
confirmLoading: publishLoading
|
|
181
|
+
confirmLoading: publishLoading,
|
|
182
|
+
versions,
|
|
183
|
+
isShowBasedOn: true,
|
|
184
|
+
isValidateVersion: false
|
|
205
185
|
}
|
|
206
186
|
));
|
|
207
187
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
.pisell-lowcode-app-version-control {
|
|
2
2
|
background-color: #fff;
|
|
3
|
+
cursor: default;
|
|
3
4
|
.pisell-lowcode-card-body {
|
|
4
5
|
display: flex;
|
|
5
6
|
flex-direction: column;
|
|
@@ -28,7 +29,4 @@
|
|
|
28
29
|
&:hover {
|
|
29
30
|
background: #fff !important;
|
|
30
31
|
}
|
|
31
|
-
}
|
|
32
|
-
.pisell-lowcode-app-version-control-tag {
|
|
33
|
-
line-height: 20px;
|
|
34
|
-
}
|
|
32
|
+
}
|
|
@@ -11,7 +11,10 @@ export interface AppVersionControlProps {
|
|
|
11
11
|
value: string;
|
|
12
12
|
versions: Version[];
|
|
13
13
|
onVersionChange: (value: string, version: Version) => void;
|
|
14
|
-
onCreateVersion: (
|
|
14
|
+
onCreateVersion: (detail: {
|
|
15
|
+
version: string;
|
|
16
|
+
baseVersion: string;
|
|
17
|
+
}) => Promise<boolean | undefined>;
|
|
15
18
|
onPromoteToLive: (value: string, version: Version) => Promise<boolean | undefined>;
|
|
16
19
|
allowPublish?: boolean;
|
|
17
20
|
allowCreate?: boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 比较两个版本号
|
|
3
|
+
* @param version1 版本号1
|
|
4
|
+
* @param version2 版本号2
|
|
5
|
+
* @returns 如果version1大于version2返回1,相等返回0,小于返回-1
|
|
6
|
+
*/
|
|
7
|
+
export declare const compareVersions: (version1: string, version2: string) => number;
|
|
8
|
+
/**
|
|
9
|
+
* 从版本号列表中获取最大版本号
|
|
10
|
+
* @param versions 版本号列表
|
|
11
|
+
* @returns 最大的版本号,如果列表为空返回undefined
|
|
12
|
+
*/
|
|
13
|
+
export declare const getMaxVersion: (versions: string[]) => string | undefined;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/components/appVersionControl/utils.ts
|
|
20
|
+
var utils_exports = {};
|
|
21
|
+
__export(utils_exports, {
|
|
22
|
+
compareVersions: () => compareVersions,
|
|
23
|
+
getMaxVersion: () => getMaxVersion
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(utils_exports);
|
|
26
|
+
var compareVersions = (version1, version2) => {
|
|
27
|
+
const v1Parts = version1.split(".").map(Number);
|
|
28
|
+
const v2Parts = version2.split(".").map(Number);
|
|
29
|
+
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
30
|
+
const v1Part = v1Parts[i] || 0;
|
|
31
|
+
const v2Part = v2Parts[i] || 0;
|
|
32
|
+
if (v1Part > v2Part)
|
|
33
|
+
return 1;
|
|
34
|
+
if (v1Part < v2Part)
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
return 0;
|
|
38
|
+
};
|
|
39
|
+
var getMaxVersion = (versions) => {
|
|
40
|
+
if (!versions || versions.length === 0)
|
|
41
|
+
return void 0;
|
|
42
|
+
return versions.reduce((max, current) => {
|
|
43
|
+
if (!max)
|
|
44
|
+
return current;
|
|
45
|
+
return compareVersions(current, max) > 0 ? current : max;
|
|
46
|
+
}, versions[0]);
|
|
47
|
+
};
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
compareVersions,
|
|
51
|
+
getMaxVersion
|
|
52
|
+
});
|
|
@@ -7,8 +7,8 @@ export interface BaseOption {
|
|
|
7
7
|
}
|
|
8
8
|
export interface CustomSelectProps<T extends BaseOption> extends Omit<SelectProps<T['value']>, 'options' | 'value' | 'onChange'> {
|
|
9
9
|
options: T[];
|
|
10
|
-
value
|
|
11
|
-
onChange
|
|
10
|
+
value?: T['value'];
|
|
11
|
+
onChange?: (value: T['value']) => void;
|
|
12
12
|
renderItem?: (option: T) => React.ReactNode;
|
|
13
13
|
className?: string;
|
|
14
14
|
style?: React.CSSProperties;
|
|
@@ -40,6 +40,7 @@ var CustomSelect = (props) => {
|
|
|
40
40
|
const { options: propsOptions, value, onChange, renderItem } = props;
|
|
41
41
|
const options = (0, import_react.useMemo)(() => {
|
|
42
42
|
return propsOptions.map((option) => ({
|
|
43
|
+
...option,
|
|
43
44
|
label: renderItem ? renderItem(option) : option.label,
|
|
44
45
|
value: option.value
|
|
45
46
|
}));
|
|
@@ -182,7 +182,6 @@ var withFormItem = (WrappedComponent, overlayProps) => {
|
|
|
182
182
|
break;
|
|
183
183
|
case "phone":
|
|
184
184
|
rules.push({
|
|
185
|
-
...typeobj,
|
|
186
185
|
validator: (_, value) => {
|
|
187
186
|
if (!(value == null ? void 0 : value.trim())) {
|
|
188
187
|
return Promise.resolve();
|
|
@@ -210,7 +209,6 @@ var withFormItem = (WrappedComponent, overlayProps) => {
|
|
|
210
209
|
break;
|
|
211
210
|
case "mobile":
|
|
212
211
|
rules.push({
|
|
213
|
-
...typeobj,
|
|
214
212
|
validator: (_, value) => {
|
|
215
213
|
if (!(value == null ? void 0 : value.trim())) {
|
|
216
214
|
return Promise.resolve();
|
|
@@ -259,14 +257,10 @@ var withFormItem = (WrappedComponent, overlayProps) => {
|
|
|
259
257
|
break;
|
|
260
258
|
case "subdomain":
|
|
261
259
|
rules.push({
|
|
262
|
-
...typeobj,
|
|
263
260
|
validator: (_, value) => {
|
|
264
261
|
if (!value)
|
|
265
262
|
return Promise.resolve();
|
|
266
263
|
const subdomain = value.split(".")[0];
|
|
267
|
-
if (!subdomain) {
|
|
268
|
-
return Promise.resolve();
|
|
269
|
-
}
|
|
270
264
|
if (!/^[a-z0-9-]+$/.test(subdomain)) {
|
|
271
265
|
return Promise.reject(
|
|
272
266
|
new Error((0, import_locales.getText)("subdomain-error-pattern"))
|
|
@@ -17,7 +17,7 @@ interface UseTablePropsProps {
|
|
|
17
17
|
* @returns
|
|
18
18
|
*/
|
|
19
19
|
declare const useTableProps: (props: UseTablePropsProps) => {
|
|
20
|
-
title: number | boolean |
|
|
20
|
+
title: number | boolean | React.JSX.Element | Iterable<React.ReactNode> | (() => React.ReactNode) | null | undefined;
|
|
21
21
|
pagination: {
|
|
22
22
|
total: number;
|
|
23
23
|
current: number;
|
|
@@ -26,7 +26,7 @@ declare const useTableProps: (props: UseTablePropsProps) => {
|
|
|
26
26
|
showSizeChanger: boolean;
|
|
27
27
|
};
|
|
28
28
|
columns: import("./useColumns").Column[];
|
|
29
|
-
subTitle: number | boolean |
|
|
29
|
+
subTitle: number | boolean | React.JSX.Element | Iterable<React.ReactNode> | (() => React.ReactNode) | null | undefined;
|
|
30
30
|
buttons: any[] | null;
|
|
31
31
|
filter: React.JSX.Element | null;
|
|
32
32
|
onRow: (record: any) => any;
|
|
@@ -47,7 +47,7 @@ declare const useTableProps: (props: UseTablePropsProps) => {
|
|
|
47
47
|
width: number;
|
|
48
48
|
align: "center" | "left" | "right";
|
|
49
49
|
fixed: false | "left" | "right";
|
|
50
|
-
type: "
|
|
50
|
+
type: "link" | "button";
|
|
51
51
|
items: OperationItem[];
|
|
52
52
|
} | undefined;
|
|
53
53
|
operationContent?: {
|
|
@@ -65,7 +65,7 @@ declare const useTableProps: (props: UseTablePropsProps) => {
|
|
|
65
65
|
useCustomAction: boolean;
|
|
66
66
|
actionType: string;
|
|
67
67
|
openMode: "modal" | "drawer";
|
|
68
|
-
openContentSize: "small" | "
|
|
68
|
+
openContentSize: "small" | "large" | "middle";
|
|
69
69
|
openTitle: string;
|
|
70
70
|
key: string;
|
|
71
71
|
} | undefined;
|
|
@@ -132,7 +132,7 @@ var Subdomain = (props) => {
|
|
|
132
132
|
const inputValue = e.target.value.toLowerCase();
|
|
133
133
|
const { subdomain: newSubdomain } = parseExternalValue(inputValue);
|
|
134
134
|
setSubdomain(newSubdomain);
|
|
135
|
-
propsOnChange == null ? void 0 : propsOnChange(newSubdomain + suffix);
|
|
135
|
+
propsOnChange == null ? void 0 : propsOnChange(newSubdomain ? newSubdomain + suffix : "");
|
|
136
136
|
} catch (error) {
|
|
137
137
|
console.error("Error handling change:", error);
|
|
138
138
|
}
|
|
@@ -140,7 +140,7 @@ var Subdomain = (props) => {
|
|
|
140
140
|
const onBlur = (0, import_react.useCallback)((e) => {
|
|
141
141
|
try {
|
|
142
142
|
propsOnBlur == null ? void 0 : propsOnBlur(e);
|
|
143
|
-
propsOnChange == null ? void 0 : propsOnChange(subdomain + suffix);
|
|
143
|
+
propsOnChange == null ? void 0 : propsOnChange(subdomain ? subdomain + suffix : "");
|
|
144
144
|
} catch (error) {
|
|
145
145
|
console.error("Error handling blur:", error);
|
|
146
146
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Version } from '../versionSelect';
|
|
2
3
|
import './index.less';
|
|
3
4
|
interface PublishVersionModalProps {
|
|
4
5
|
visible: boolean;
|
|
@@ -7,10 +8,16 @@ interface PublishVersionModalProps {
|
|
|
7
8
|
onConfirm: (data: VersionData) => void;
|
|
8
9
|
isShowNote?: boolean;
|
|
9
10
|
confirmLoading?: boolean;
|
|
11
|
+
versions?: Version[];
|
|
12
|
+
isShowBasedOn?: boolean;
|
|
13
|
+
isShowCurrentVersion?: boolean;
|
|
14
|
+
isValidateVersion?: boolean;
|
|
10
15
|
}
|
|
11
16
|
interface VersionData {
|
|
12
17
|
version: string;
|
|
13
18
|
note: string;
|
|
19
|
+
baseVersion?: string;
|
|
20
|
+
versionType?: string;
|
|
14
21
|
}
|
|
15
22
|
declare const PublishVersionModal: React.FC<PublishVersionModalProps>;
|
|
16
23
|
export default PublishVersionModal;
|
|
@@ -35,6 +35,7 @@ module.exports = __toCommonJS(versionModal_exports);
|
|
|
35
35
|
var import_react = __toESM(require("react"));
|
|
36
36
|
var import_antd = require("antd");
|
|
37
37
|
var import_pisellModal = __toESM(require("../pisellModal"));
|
|
38
|
+
var import_versionSelect = __toESM(require("../versionSelect"));
|
|
38
39
|
var import_locales = require("../../locales");
|
|
39
40
|
var import_index = require("./index.less");
|
|
40
41
|
var style = {
|
|
@@ -70,20 +71,26 @@ var PublishVersionModal = ({
|
|
|
70
71
|
currentVersion = "1.0.0",
|
|
71
72
|
onCancel,
|
|
72
73
|
onConfirm,
|
|
73
|
-
isShowNote
|
|
74
|
-
confirmLoading = false
|
|
74
|
+
isShowNote,
|
|
75
|
+
confirmLoading = false,
|
|
76
|
+
versions = [],
|
|
77
|
+
isShowBasedOn,
|
|
78
|
+
isShowCurrentVersion,
|
|
79
|
+
isValidateVersion = true
|
|
75
80
|
}) => {
|
|
76
81
|
const [form] = import_antd.Form.useForm();
|
|
77
|
-
const [versionType, setVersionType] = (0, import_react.useState)("
|
|
82
|
+
const [versionType, setVersionType] = (0, import_react.useState)("");
|
|
78
83
|
const { patch, minor, major } = getNextVersions(currentVersion);
|
|
79
84
|
const handleVersionChange = (e) => {
|
|
80
85
|
setVersionType(e.target.value);
|
|
81
86
|
};
|
|
82
87
|
const handleSubmit = () => {
|
|
83
88
|
form.validateFields().then((values) => {
|
|
84
|
-
let { version, note } = values;
|
|
89
|
+
let { version, note, baseVersion } = values;
|
|
90
|
+
let versionType2 = "";
|
|
85
91
|
if (version === "custom") {
|
|
86
|
-
|
|
92
|
+
versionType2 = "custom";
|
|
93
|
+
if (isValidateVersion && !isVersionValid(
|
|
87
94
|
`${values.major}.${values.minor}.${values.patch}`,
|
|
88
95
|
currentVersion
|
|
89
96
|
)) {
|
|
@@ -92,16 +99,18 @@ var PublishVersionModal = ({
|
|
|
92
99
|
}
|
|
93
100
|
version = `${values.major}.${values.minor}.${values.patch}`;
|
|
94
101
|
}
|
|
95
|
-
onConfirm({ version, note });
|
|
102
|
+
onConfirm({ version, note, baseVersion, versionType: versionType2 });
|
|
96
103
|
});
|
|
97
104
|
};
|
|
98
105
|
(0, import_react.useEffect)(() => {
|
|
99
106
|
if (visible) {
|
|
107
|
+
setVersionType("");
|
|
100
108
|
form.setFieldsValue({
|
|
101
109
|
version: patch,
|
|
102
110
|
major: parseVersion(patch)[0] || 0,
|
|
103
111
|
minor: parseVersion(patch)[1] || 0,
|
|
104
|
-
patch: parseVersion(patch)[2] || 0
|
|
112
|
+
patch: parseVersion(patch)[2] || 0,
|
|
113
|
+
baseVersion: currentVersion
|
|
105
114
|
});
|
|
106
115
|
}
|
|
107
116
|
}, [visible]);
|
|
@@ -125,7 +134,23 @@ var PublishVersionModal = ({
|
|
|
125
134
|
preserve: false,
|
|
126
135
|
className: "pisell-lowcode-version-modal-form"
|
|
127
136
|
},
|
|
128
|
-
/* @__PURE__ */ import_react.default.createElement("p", null, (0, import_locales.getText)("pisell-version-modal-current-version"), ": ", currentVersion),
|
|
137
|
+
isShowCurrentVersion && /* @__PURE__ */ import_react.default.createElement("p", null, (0, import_locales.getText)("pisell-version-modal-current-version"), ": ", currentVersion),
|
|
138
|
+
isShowBasedOn && /* @__PURE__ */ import_react.default.createElement(
|
|
139
|
+
import_antd.Form.Item,
|
|
140
|
+
{
|
|
141
|
+
label: (0, import_locales.getText)("pisell-version-modal-based-on-version"),
|
|
142
|
+
name: "baseVersion",
|
|
143
|
+
initialValue: currentVersion,
|
|
144
|
+
rules: [{ required: true }]
|
|
145
|
+
},
|
|
146
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
147
|
+
import_versionSelect.default,
|
|
148
|
+
{
|
|
149
|
+
versions,
|
|
150
|
+
fieldNames: { label: "label", value: "version", options: "options" }
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
),
|
|
129
154
|
/* @__PURE__ */ import_react.default.createElement(
|
|
130
155
|
import_antd.Form.Item,
|
|
131
156
|
{
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SelectProps } from 'antd';
|
|
3
|
+
import './index.less';
|
|
4
|
+
export interface Version {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
value: string;
|
|
8
|
+
status: 'live' | 'draft' | 'deprecated';
|
|
9
|
+
version: string;
|
|
10
|
+
avatar?: string;
|
|
11
|
+
}
|
|
12
|
+
interface VersionSelectProps extends Omit<SelectProps<string>, 'onChange' | 'options'> {
|
|
13
|
+
versions: Version[];
|
|
14
|
+
value?: string;
|
|
15
|
+
onChange?: (value: string, version: Version) => void;
|
|
16
|
+
}
|
|
17
|
+
declare const VersionSelect: (props: VersionSelectProps) => React.JSX.Element;
|
|
18
|
+
export default VersionSelect;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/components/versionSelect/index.tsx
|
|
30
|
+
var versionSelect_exports = {};
|
|
31
|
+
__export(versionSelect_exports, {
|
|
32
|
+
default: () => versionSelect_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(versionSelect_exports);
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
var import_customSelect = __toESM(require("../customSelect"));
|
|
37
|
+
var import_pisellRow = __toESM(require("../pisellRow"));
|
|
38
|
+
var import_pisellTags = __toESM(require("../pisellTags"));
|
|
39
|
+
var import_locales = require("../../locales");
|
|
40
|
+
var import_index = require("./index.less");
|
|
41
|
+
var getStatusColor = (status) => {
|
|
42
|
+
if (status === "live")
|
|
43
|
+
return "success";
|
|
44
|
+
if (status === "draft")
|
|
45
|
+
return "warning";
|
|
46
|
+
if (status === "deprecated")
|
|
47
|
+
return "error";
|
|
48
|
+
return "gray";
|
|
49
|
+
};
|
|
50
|
+
var getStatusText = (status) => {
|
|
51
|
+
if (status === "live")
|
|
52
|
+
return (0, import_locales.getText)("pisell-lowcode-app-version-control-live");
|
|
53
|
+
if (status === "draft")
|
|
54
|
+
return (0, import_locales.getText)("pisell-lowcode-app-version-control-draft");
|
|
55
|
+
if (status === "deprecated")
|
|
56
|
+
return (0, import_locales.getText)("pisell-lowcode-app-version-control-deprecated");
|
|
57
|
+
};
|
|
58
|
+
var VersionSelect = (props) => {
|
|
59
|
+
const { versions, value, onChange, ...rest } = props;
|
|
60
|
+
const handleVersionChange = (value2) => {
|
|
61
|
+
const version = versions.find((v) => v.value === value2);
|
|
62
|
+
onChange == null ? void 0 : onChange(value2, version);
|
|
63
|
+
};
|
|
64
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
65
|
+
import_customSelect.default,
|
|
66
|
+
{
|
|
67
|
+
...rest,
|
|
68
|
+
options: versions,
|
|
69
|
+
value,
|
|
70
|
+
size: "large",
|
|
71
|
+
onChange: handleVersionChange,
|
|
72
|
+
style: { width: "100%" },
|
|
73
|
+
renderItem: (option) => /* @__PURE__ */ import_react.default.createElement(
|
|
74
|
+
import_pisellRow.default,
|
|
75
|
+
{
|
|
76
|
+
leftContent: option.label,
|
|
77
|
+
rightContent: /* @__PURE__ */ import_react.default.createElement(
|
|
78
|
+
import_pisellTags.default,
|
|
79
|
+
{
|
|
80
|
+
type: "pill_color",
|
|
81
|
+
color: getStatusColor(option.status),
|
|
82
|
+
className: "pisell-lowcode-version-select-tag"
|
|
83
|
+
},
|
|
84
|
+
getStatusText(option.status)
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
};
|
|
91
|
+
var versionSelect_default = VersionSelect;
|
package/lib/locales/en-US.d.ts
CHANGED
|
@@ -189,6 +189,7 @@ declare const _default: {
|
|
|
189
189
|
'pisell-version-modal-describe-update-notes': string;
|
|
190
190
|
'pisell-version-modal-version-error': string;
|
|
191
191
|
'pisell-version-modal-version-required': string;
|
|
192
|
+
'pisell-version-modal-based-on-version': string;
|
|
192
193
|
'pisell-icon-select-outlined': string;
|
|
193
194
|
'pisell-icon-select-filled': string;
|
|
194
195
|
'pisell-icon-select-two-tone': string;
|
|
@@ -211,5 +212,6 @@ declare const _default: {
|
|
|
211
212
|
'pisell-lowcode-app-version-control-promote-version-describe': string;
|
|
212
213
|
'pisell-lowcode-app-version-control-promote-version-ok': string;
|
|
213
214
|
'pisell-lowcode-app-version-control-promote-version-cancel': string;
|
|
215
|
+
'pisell-lowcode-app-version-control-version-exists': string;
|
|
214
216
|
};
|
|
215
217
|
export default _default;
|
package/lib/locales/en-US.js
CHANGED
|
@@ -231,6 +231,7 @@ var en_US_default = {
|
|
|
231
231
|
"pisell-version-modal-describe-update-notes": "Describe the main changes in this version...",
|
|
232
232
|
"pisell-version-modal-version-error": "Version number must be greater than the current version",
|
|
233
233
|
"pisell-version-modal-version-required": "Version number is required",
|
|
234
|
+
"pisell-version-modal-based-on-version": "Based on version",
|
|
234
235
|
// 图标选择组件
|
|
235
236
|
"pisell-icon-select-outlined": "Outlined",
|
|
236
237
|
"pisell-icon-select-filled": "Filled",
|
|
@@ -255,5 +256,6 @@ var en_US_default = {
|
|
|
255
256
|
"pisell-lowcode-app-version-control-promote-version": (version) => `Promote version ${version || ""}?`,
|
|
256
257
|
"pisell-lowcode-app-version-control-promote-version-describe": "Promoting this version will lock it further changes",
|
|
257
258
|
"pisell-lowcode-app-version-control-promote-version-ok": "Promote",
|
|
258
|
-
"pisell-lowcode-app-version-control-promote-version-cancel": "Cancel"
|
|
259
|
+
"pisell-lowcode-app-version-control-promote-version-cancel": "Cancel",
|
|
260
|
+
"pisell-lowcode-app-version-control-version-exists": "Version already exists"
|
|
259
261
|
};
|
package/lib/locales/zh-CN.d.ts
CHANGED
|
@@ -189,6 +189,7 @@ declare const _default: {
|
|
|
189
189
|
'pisell-version-modal-describe-update-notes': string;
|
|
190
190
|
'pisell-version-modal-version-error': string;
|
|
191
191
|
'pisell-version-modal-version-required': string;
|
|
192
|
+
'pisell-version-modal-based-on-version': string;
|
|
192
193
|
'pisell-icon-select-outlined': string;
|
|
193
194
|
'pisell-icon-select-filled': string;
|
|
194
195
|
'pisell-icon-select-two-tone': string;
|
|
@@ -210,5 +211,6 @@ declare const _default: {
|
|
|
210
211
|
'pisell-lowcode-app-version-control-promote-version-describe': string;
|
|
211
212
|
'pisell-lowcode-app-version-control-promote-version-ok': string;
|
|
212
213
|
'pisell-lowcode-app-version-control-promote-version-cancel': string;
|
|
214
|
+
'pisell-lowcode-app-version-control-version-exists': string;
|
|
213
215
|
};
|
|
214
216
|
export default _default;
|
package/lib/locales/zh-CN.js
CHANGED
|
@@ -230,6 +230,7 @@ var zh_CN_default = {
|
|
|
230
230
|
"pisell-version-modal-describe-update-notes": "描述此版本的主要更改...",
|
|
231
231
|
"pisell-version-modal-version-error": "版本号必须大于当前版本",
|
|
232
232
|
"pisell-version-modal-version-required": "版本号为必填项",
|
|
233
|
+
"pisell-version-modal-based-on-version": "基于版本",
|
|
233
234
|
"pisell-icon-select-outlined": "线框风格",
|
|
234
235
|
"pisell-icon-select-filled": "实底风格",
|
|
235
236
|
"pisell-icon-select-two-tone": "双色风格",
|
|
@@ -252,5 +253,6 @@ var zh_CN_default = {
|
|
|
252
253
|
"pisell-lowcode-app-version-control-promote-version": (version) => `发布版本 ${version || ""}?`,
|
|
253
254
|
"pisell-lowcode-app-version-control-promote-version-describe": "发布版本后,该版本将无法再进行修改",
|
|
254
255
|
"pisell-lowcode-app-version-control-promote-version-ok": "发布",
|
|
255
|
-
"pisell-lowcode-app-version-control-promote-version-cancel": "取消"
|
|
256
|
+
"pisell-lowcode-app-version-control-promote-version-cancel": "取消",
|
|
257
|
+
"pisell-lowcode-app-version-control-version-exists": "版本已存在"
|
|
256
258
|
};
|
package/lib/locales/zh-TW.d.ts
CHANGED
|
@@ -188,6 +188,7 @@ declare const _default: {
|
|
|
188
188
|
'pisell-version-modal-describe-update-notes': string;
|
|
189
189
|
'pisell-version-modal-version-error': string;
|
|
190
190
|
'pisell-version-modal-version-required': string;
|
|
191
|
+
'pisell-version-modal-based-on-version': string;
|
|
191
192
|
'pisell-icon-select-placeholder': string;
|
|
192
193
|
'pisell-icon-select-outlined': string;
|
|
193
194
|
'pisell-icon-select-filled': string;
|
|
@@ -210,5 +211,6 @@ declare const _default: {
|
|
|
210
211
|
'pisell-lowcode-app-version-control-promote-version-describe': string;
|
|
211
212
|
'pisell-lowcode-app-version-control-promote-version-ok': string;
|
|
212
213
|
'pisell-lowcode-app-version-control-promote-version-cancel': string;
|
|
214
|
+
'pisell-lowcode-app-version-control-version-exists': string;
|
|
213
215
|
};
|
|
214
216
|
export default _default;
|
package/lib/locales/zh-TW.js
CHANGED
|
@@ -230,6 +230,7 @@ var zh_TW_default = {
|
|
|
230
230
|
"pisell-version-modal-describe-update-notes": "描述此版本的主要更改...",
|
|
231
231
|
"pisell-version-modal-version-error": "版本號必須大於當前版本",
|
|
232
232
|
"pisell-version-modal-version-required": "版本號為必填項",
|
|
233
|
+
"pisell-version-modal-based-on-version": "基於版本",
|
|
233
234
|
// 图标选择组件
|
|
234
235
|
"pisell-icon-select-placeholder": "選擇圖標",
|
|
235
236
|
"pisell-icon-select-outlined": "線框風格",
|
|
@@ -254,5 +255,6 @@ var zh_TW_default = {
|
|
|
254
255
|
"pisell-lowcode-app-version-control-promote-version": (version) => `發布版本 ${version || ""}?`,
|
|
255
256
|
"pisell-lowcode-app-version-control-promote-version-describe": "發布版本後,該版本將無法再進行修改",
|
|
256
257
|
"pisell-lowcode-app-version-control-promote-version-ok": "發布",
|
|
257
|
-
"pisell-lowcode-app-version-control-promote-version-cancel": "取消"
|
|
258
|
+
"pisell-lowcode-app-version-control-promote-version-cancel": "取消",
|
|
259
|
+
"pisell-lowcode-app-version-control-version-exists": "版本已存在"
|
|
258
260
|
};
|