@pisell/materials 1.0.627 → 1.0.628

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 (34) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +20 -12
  7. package/build/lowcode/render/default/view.js +48 -28
  8. package/build/lowcode/view.js +46 -26
  9. package/es/components/dataSourceComponents/fields/Input.Mobile/serve.js +31 -3
  10. package/es/components/dataSourceComponents/fields/Input.Phone/serve.js +31 -3
  11. package/es/components/dataSourceComponents/fields/Upload/BaseUpload.js +106 -172
  12. package/es/components/dataSourceComponents/fields/Upload/WithMode.js +6 -3
  13. package/es/components/dataSourceComponents/fields/Upload/serve.js +13 -3
  14. package/es/components/dataSourceComponents/fields/Upload/shopUploadServe.d.ts +56 -0
  15. package/es/components/dataSourceComponents/fields/Upload/shopUploadServe.js +396 -0
  16. package/es/components/dataSourceComponents/fields/Upload/type.d.ts +1 -0
  17. package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -0
  18. package/es/components/dataSourceComponents/fields/Upload/utils.js +17 -2
  19. package/es/components/dataSourceComponents/hooks/usePlatform.d.ts +3 -0
  20. package/es/components/dataSourceComponents/hooks/usePlatform.js +12 -0
  21. package/lib/components/dataSourceComponents/fields/Input.Mobile/serve.js +37 -3
  22. package/lib/components/dataSourceComponents/fields/Input.Phone/serve.js +37 -3
  23. package/lib/components/dataSourceComponents/fields/Upload/BaseUpload.js +48 -98
  24. package/lib/components/dataSourceComponents/fields/Upload/WithMode.js +11 -9
  25. package/lib/components/dataSourceComponents/fields/Upload/serve.js +11 -2
  26. package/lib/components/dataSourceComponents/fields/Upload/shopUploadServe.d.ts +56 -0
  27. package/lib/components/dataSourceComponents/fields/Upload/shopUploadServe.js +248 -0
  28. package/lib/components/dataSourceComponents/fields/Upload/type.d.ts +1 -0
  29. package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -0
  30. package/lib/components/dataSourceComponents/fields/Upload/utils.js +19 -2
  31. package/lib/components/dataSourceComponents/hooks/usePlatform.d.ts +3 -0
  32. package/lib/components/dataSourceComponents/hooks/usePlatform.js +51 -0
  33. package/lowcode/form-item-upload/meta.ts +11 -0
  34. package/package.json +4 -3
@@ -0,0 +1,248 @@
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/dataSourceComponents/fields/Upload/shopUploadServe.ts
30
+ var shopUploadServe_exports = {};
31
+ __export(shopUploadServe_exports, {
32
+ dataURLtoFile: () => dataURLtoFile,
33
+ filetypes: () => filetypes,
34
+ formatFileName: () => formatFileName,
35
+ getImageWidth: () => getImageWidth,
36
+ getPolicy: () => getPolicy,
37
+ getPolicyFile: () => getPolicyFile,
38
+ getSignature: () => getSignature,
39
+ getVideoCover: () => getVideoCover,
40
+ uploadFile: () => uploadFile,
41
+ uploadFileAli: () => uploadFileAli,
42
+ uploadFileTencent: () => uploadFileTencent
43
+ });
44
+ module.exports = __toCommonJS(shopUploadServe_exports);
45
+ var import_dayjs = __toESM(require("dayjs"));
46
+ var import_utils = require("@pisell/utils");
47
+ var import_vod_js_sdk_v6 = __toESM(require("vod-js-sdk-v6"));
48
+ var import_utils2 = require("../../../table/utils");
49
+ var filetypes = {
50
+ "vnd.openxmlformats-officedocument.wordprocessingml.document": {
51
+ icon: "iconword",
52
+ type: "applicatio",
53
+ format: "docx"
54
+ },
55
+ "vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
56
+ icon: "iconxlsx",
57
+ type: "applicatio",
58
+ format: "xlsx"
59
+ },
60
+ csv: {
61
+ icon: "icontxt",
62
+ type: "text",
63
+ format: "csv"
64
+ },
65
+ "vnd.ms-excel": {
66
+ icon: "iconxlsx",
67
+ type: "applicatio",
68
+ format: "xls"
69
+ },
70
+ msword: {
71
+ icon: "iconword",
72
+ type: "applicatio",
73
+ format: "doc"
74
+ },
75
+ pdf: {
76
+ icon: "iconpdf",
77
+ type: "applicatio",
78
+ format: "pdf"
79
+ }
80
+ };
81
+ var getPolicy = () => import_utils2.request.getRequest().get("/shop/ali-upload/policy", { type: "image" });
82
+ var getPolicyFile = () => import_utils2.request.getRequest().get("/shop/ali-upload/policy", { type: "file" });
83
+ var getImageWidth = async (file) => {
84
+ return new Promise((resolve, reject) => {
85
+ try {
86
+ let url = window.URL || window.webkitURL;
87
+ let img = new Image();
88
+ img.src = url.createObjectURL(file);
89
+ img.onload = function() {
90
+ resolve({ width: img.width, height: img.height });
91
+ };
92
+ img.onerror = function() {
93
+ resolve({ width: 0, height: 0 });
94
+ };
95
+ } catch (err) {
96
+ resolve({ width: 0, height: 0 });
97
+ }
98
+ });
99
+ };
100
+ var formatFileName = async (file) => {
101
+ var _a;
102
+ const imgSize = await getImageWidth(file);
103
+ let _suffix = ((file == null ? void 0 : file.type) || "image/png").split("/")[1];
104
+ let fileType = (_a = filetypes[_suffix]) == null ? void 0 : _a.format;
105
+ if (fileType) {
106
+ _suffix = fileType;
107
+ }
108
+ return (0, import_dayjs.default)().format("YYYY_MM_DD_HH_mm_ss_SSS") + "_" + (0, import_utils.getUniqueId)() + "__" + imgSize.width + "_" + imgSize.height + "__." + _suffix;
109
+ };
110
+ var uploadFileAli = async (file) => {
111
+ const policyData = await getPolicy();
112
+ let _name = await formatFileName(file);
113
+ let formData = new FormData();
114
+ formData.append("Content-Type", "multipart/form-data");
115
+ formData.append("OSSAccessKeyId", policyData.data.access_key_id);
116
+ formData.append("policy", policyData.data.policy);
117
+ formData.append("Signature", policyData.data.signature);
118
+ formData.append("key", policyData.data.dir + _name);
119
+ formData.append("success_action_status", "200");
120
+ formData.append("callback", policyData.data.callback);
121
+ formData.append("file", file);
122
+ return import_utils2.request.getRequest().post(policyData.data.cdn_domain, formData);
123
+ };
124
+ var uploadAli = async (file) => {
125
+ return uploadFileAli(file);
126
+ };
127
+ var getObjectURL = (file) => {
128
+ var url = null;
129
+ if (window.createObjectURL != void 0) {
130
+ url = window.createObjectURL(file);
131
+ } else if (window.URL != void 0) {
132
+ url = window.URL.createObjectURL(file);
133
+ } else if (window.webkitURL != void 0) {
134
+ url = window.webkitURL.createObjectURL(file);
135
+ }
136
+ return url;
137
+ };
138
+ var dataURLtoFile = (dataurl, filename) => {
139
+ var arr = dataurl.split(","), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
140
+ while (n--) {
141
+ u8arr[n] = bstr.charCodeAt(n);
142
+ }
143
+ return new File([u8arr], filename, { type: mime });
144
+ };
145
+ var getVideoCover = (file) => {
146
+ const url = getObjectURL(file);
147
+ return new Promise(function(resolve, reject) {
148
+ try {
149
+ let _video = document.createElement("video");
150
+ _video.setAttribute("crossOrigin", "anonymous");
151
+ _video.setAttribute("preload", "auto");
152
+ _video.muted = true;
153
+ _video.setAttribute("autoplay", "autoplay");
154
+ _video.src = url;
155
+ _video.addEventListener("loadeddata", function() {
156
+ this.currentTime = 1;
157
+ });
158
+ _video.addEventListener("seeked", function() {
159
+ this.width = this.videoWidth;
160
+ this.height = this.videoHeight;
161
+ if (this.width === 0 || this.height === 0) {
162
+ return resolve("");
163
+ }
164
+ let canvas = document.createElement("canvas");
165
+ let ctx = canvas.getContext("2d");
166
+ canvas.width = this.width;
167
+ canvas.height = this.height;
168
+ if (ctx === null)
169
+ return;
170
+ ctx.drawImage(this, 0, 0, canvas.width, canvas.height);
171
+ let _cover = canvas.toDataURL("image/jpeg", 1);
172
+ let _cover_name = file.name.split(".")[0] + "_cover.jpeg";
173
+ resolve(dataURLtoFile(_cover, _cover_name));
174
+ });
175
+ } catch (err) {
176
+ reject();
177
+ }
178
+ });
179
+ };
180
+ var getSignature = () => import_utils2.request.getRequest().get("/shop/core/tx-video-sign").then((res) => {
181
+ var _a;
182
+ return (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.sign;
183
+ });
184
+ var uploadFileTencent = async (file) => {
185
+ return new Promise(async (resolve, reject) => {
186
+ try {
187
+ const coverFile = await getVideoCover(file);
188
+ console.log(coverFile);
189
+ const coverData = await uploadFileAli(coverFile);
190
+ const tcVod = new import_vod_js_sdk_v6.default({
191
+ // 传入鉴权函数
192
+ getSignature
193
+ });
194
+ const uploader = tcVod.upload({
195
+ mediaFile: file,
196
+ mediaName: file.name
197
+ });
198
+ uploader.on("media_upload", (info) => {
199
+ });
200
+ uploader.done().then((doneResult) => {
201
+ var _a, _b;
202
+ let res = {
203
+ status: true,
204
+ data: {
205
+ ...doneResult,
206
+ cover: {
207
+ ...doneResult == null ? void 0 : doneResult.cover,
208
+ url: (_a = coverData == null ? void 0 : coverData.data) == null ? void 0 : _a.url
209
+ },
210
+ url: (_b = doneResult == null ? void 0 : doneResult.video) == null ? void 0 : _b.url
211
+ }
212
+ };
213
+ return resolve(res);
214
+ }).catch((err) => {
215
+ return reject(err);
216
+ });
217
+ } catch (err) {
218
+ return reject(err);
219
+ }
220
+ });
221
+ };
222
+ var uploadTencent = async (file) => {
223
+ const res = await uploadFileTencent(file);
224
+ return res;
225
+ };
226
+ var uploadFile = (file) => {
227
+ if (file.type.startsWith("image")) {
228
+ return uploadAli(file);
229
+ } else if (file.type.startsWith("video")) {
230
+ return uploadTencent(file);
231
+ } else {
232
+ return uploadAli(file);
233
+ }
234
+ };
235
+ // Annotate the CommonJS export names for ESM import in node:
236
+ 0 && (module.exports = {
237
+ dataURLtoFile,
238
+ filetypes,
239
+ formatFileName,
240
+ getImageWidth,
241
+ getPolicy,
242
+ getPolicyFile,
243
+ getSignature,
244
+ getVideoCover,
245
+ uploadFile,
246
+ uploadFileAli,
247
+ uploadFileTencent
248
+ });
@@ -15,6 +15,7 @@ export interface UploadProps {
15
15
  maxCount?: number;
16
16
  multiple?: boolean;
17
17
  presetType?: string[];
18
+ presetTypeString?: string[];
18
19
  customType?: string[];
19
20
  enablePresetType?: boolean;
20
21
  enableCustomType?: boolean;
@@ -15,3 +15,4 @@ export declare const getFileMetadataParams: (file: RcFile & {
15
15
  metadata?: MediaMetadata;
16
16
  }) => Record<string, any>;
17
17
  export declare const isValueEqual: (value: any, fileListValue: any) => boolean;
18
+ export declare const getBaseTime: (size: number) => 1000 | 2000 | 4000 | 8000;
@@ -24,6 +24,7 @@ __export(utils_exports, {
24
24
  createMultilingualFileList: () => createMultilingualFileList,
25
25
  genFileListByString: () => genFileListByString,
26
26
  generateUid: () => generateUid,
27
+ getBaseTime: () => getBaseTime,
27
28
  getDefaultFileList: () => getDefaultFileList,
28
29
  getFileMetadataParams: () => getFileMetadataParams,
29
30
  getFileName: () => getFileName,
@@ -70,15 +71,19 @@ var checkFileCount = ({
70
71
  return { success: true };
71
72
  };
72
73
  var createVideoMetadata = async (file) => {
73
- return new Promise((resolve) => {
74
+ return new Promise((resolve, reject) => {
74
75
  const video = document.createElement("video");
75
76
  const canvas = document.createElement("canvas");
76
77
  video.preload = "metadata";
77
78
  let hasMetadata = false;
78
79
  let hasSeeked = false;
79
80
  const tryResolve = () => {
80
- if (!hasMetadata || !hasSeeked)
81
+ if (!hasMetadata || !hasSeeked) {
82
+ reject();
83
+ console.log("没有元数据或没有seeked");
81
84
  return;
85
+ }
86
+ ;
82
87
  canvas.width = video.videoWidth;
83
88
  canvas.height = video.videoHeight;
84
89
  const ctx = canvas.getContext("2d");
@@ -257,6 +262,17 @@ var isValueEqual = (value, fileListValue) => {
257
262
  }
258
263
  return value === fileListValue;
259
264
  };
265
+ var getBaseTime = (size) => {
266
+ const KB = 1024;
267
+ const MB = KB * 1024;
268
+ if (size < MB)
269
+ return 1e3;
270
+ if (size < 5 * MB)
271
+ return 2e3;
272
+ if (size < 20 * MB)
273
+ return 4e3;
274
+ return 8e3;
275
+ };
260
276
  // Annotate the CommonJS export names for ESM import in node:
261
277
  0 && (module.exports = {
262
278
  checkFileCount,
@@ -264,6 +280,7 @@ var isValueEqual = (value, fileListValue) => {
264
280
  createMultilingualFileList,
265
281
  genFileListByString,
266
282
  generateUid,
283
+ getBaseTime,
267
284
  getDefaultFileList,
268
285
  getFileMetadataParams,
269
286
  getFileName,
@@ -0,0 +1,3 @@
1
+ declare const usePlatform: () => any;
2
+ declare const useIsShop: () => boolean;
3
+ export { usePlatform, useIsShop };
@@ -0,0 +1,51 @@
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/dataSourceComponents/hooks/usePlatform.ts
30
+ var usePlatform_exports = {};
31
+ __export(usePlatform_exports, {
32
+ useIsShop: () => useIsShop,
33
+ usePlatform: () => usePlatform
34
+ });
35
+ module.exports = __toCommonJS(usePlatform_exports);
36
+ var import_useEngineContext = __toESM(require("../../../hooks/useEngineContext"));
37
+ var usePlatform = () => {
38
+ var _a, _b;
39
+ const context = (0, import_useEngineContext.default)();
40
+ const platform = (_b = (_a = context.appHelper) == null ? void 0 : _a.constants) == null ? void 0 : _b.platform;
41
+ return platform;
42
+ };
43
+ var useIsShop = () => {
44
+ const platform = usePlatform();
45
+ return platform === "shop";
46
+ };
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ useIsShop,
50
+ usePlatform
51
+ });
@@ -182,6 +182,17 @@ export default {
182
182
  setter: {
183
183
  componentName: 'PisellMediaPresetTypeSetter',
184
184
  },
185
+ extraProps: {
186
+ setValue(target: any, values: any) {
187
+ const { value, options } = values;
188
+ const presetTypeString: any[] = [];
189
+ options.forEach((item: any) => {
190
+ presetTypeString.push(...(item.extensions || []).map((item: any) => `.${item}`));
191
+ });
192
+ target.getProps().setPropValue('presetTypeString', presetTypeString);
193
+ target.getProps().setPropValue('presetType', value);
194
+ },
195
+ },
185
196
  },
186
197
  {
187
198
  name: 'enableCustomType',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/materials",
3
- "version": "1.0.627",
3
+ "version": "1.0.628",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -69,9 +69,10 @@
69
69
  "libphonenumber-js": "^1.11.17",
70
70
  "swiper": "^8.4.7",
71
71
  "react-barcode": "^1.5.3",
72
- "@pisell/date-picker": "1.0.115",
72
+ "vod-js-sdk-v6": "^1.4.11",
73
73
  "@pisell/icon": "0.0.10",
74
- "@pisell/utils": "1.0.43"
74
+ "@pisell/utils": "1.0.43",
75
+ "@pisell/date-picker": "1.0.115"
75
76
  },
76
77
  "peerDependencies": {
77
78
  "react": "^18.0.0",