@pisell/materials 6.2.38 → 6.2.40

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 (137) 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 +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +36 -21
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +35 -20
  11. package/es/components/dataSourceComponents/dataSourceTable/BaseTable.js +11 -4
  12. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  13. package/es/components/dataSourceComponents/dataSourceTable/filter/index.js +7 -2
  14. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -2
  15. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +33 -15
  16. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +2 -1
  17. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.js +92 -6
  18. package/es/components/dataSourceComponents/dataSourceTable/type.d.ts +5 -0
  19. package/es/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
  20. package/es/components/dataSourceComponents/fields/Upload/BaseUpload.js +199 -19
  21. package/es/components/dataSourceComponents/fields/Upload/CameraPopover.js +66 -0
  22. package/es/components/dataSourceComponents/fields/Upload/index.less +35 -3
  23. package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  24. package/es/components/dataSourceComponents/fields/index.d.ts +8 -8
  25. package/es/components/filter/types.d.ts +2 -0
  26. package/es/components/pisellCamera/index.js +228 -0
  27. package/es/components/pisellCamera/index.less +131 -0
  28. package/es/components/pisellCardList/index.js +3 -1
  29. package/es/components/pisellCheckboxGroup/index.js +15 -1
  30. package/es/components/pisellWalletPassCard/index.d.ts +1 -0
  31. package/es/components/pisellWalletPassCard/index.js +6 -1
  32. package/es/components/productCard/cartSkuCard/components/swipeAction/index.d.ts +2 -1
  33. package/es/components/productCard/cartSkuCard/components/swipeAction/index.js +74 -6
  34. package/es/components/productCard/cartSkuCard/components/swipeAction/index.less +39 -0
  35. package/es/components/productCard/cartSkuCard/index.js +2 -11
  36. package/es/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
  37. package/es/components/table/Table/fields/index.d.ts +2 -2
  38. package/es/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
  39. package/es/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
  40. package/es/components/table/Table/utils.d.ts +1 -1
  41. package/es/components/table/Table/utils.js +22 -1
  42. package/es/components/table/hooks/useTableSetting.d.ts +3 -4
  43. package/es/components/table/hooks/useTableSetting.js +113 -5
  44. package/es/components/table/index.js +14 -3
  45. package/es/components/table/types.d.ts +17 -0
  46. package/es/components/walletCard/Guide/index.js +12 -1
  47. package/es/components/walletCard/index.js +29 -3
  48. package/es/components/walletCard/index.less +27 -0
  49. package/es/locales/en-US.js +83 -69
  50. package/es/locales/zh-CN.js +84 -70
  51. package/es/locales/zh-TW.js +84 -70
  52. package/es/utils/index.d.ts +1 -1
  53. package/lib/components/dataSourceComponents/dataSourceTable/BaseTable.js +8 -2
  54. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  55. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.js +7 -2
  56. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -2
  57. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +20 -7
  58. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +2 -1
  59. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.js +78 -7
  60. package/lib/components/dataSourceComponents/dataSourceTable/type.d.ts +5 -0
  61. package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
  62. package/lib/components/dataSourceComponents/fields/Upload/BaseUpload.js +168 -5
  63. package/lib/components/dataSourceComponents/fields/Upload/CameraPopover.js +95 -0
  64. package/lib/components/dataSourceComponents/fields/Upload/index.less +35 -3
  65. package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  66. package/lib/components/dataSourceComponents/fields/index.d.ts +8 -8
  67. package/lib/components/filter/types.d.ts +2 -0
  68. package/lib/components/pisellCamera/index.js +222 -0
  69. package/lib/components/pisellCamera/index.less +131 -0
  70. package/lib/components/pisellCardList/index.js +3 -1
  71. package/lib/components/pisellCheckboxGroup/index.js +16 -0
  72. package/lib/components/pisellWalletPassCard/index.d.ts +1 -0
  73. package/lib/components/pisellWalletPassCard/index.js +9 -1
  74. package/lib/components/productCard/cartSkuCard/components/swipeAction/index.d.ts +2 -1
  75. package/lib/components/productCard/cartSkuCard/components/swipeAction/index.js +45 -11
  76. package/lib/components/productCard/cartSkuCard/components/swipeAction/index.less +39 -0
  77. package/lib/components/productCard/cartSkuCard/index.js +2 -13
  78. package/lib/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
  79. package/lib/components/table/Table/fields/index.d.ts +2 -2
  80. package/lib/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
  81. package/lib/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
  82. package/lib/components/table/Table/utils.d.ts +1 -1
  83. package/lib/components/table/Table/utils.js +18 -1
  84. package/lib/components/table/hooks/useTableSetting.d.ts +3 -4
  85. package/lib/components/table/hooks/useTableSetting.js +114 -4
  86. package/lib/components/table/index.js +12 -1
  87. package/lib/components/table/types.d.ts +17 -0
  88. package/lib/components/walletCard/Guide/index.js +11 -1
  89. package/lib/components/walletCard/index.js +27 -3
  90. package/lib/components/walletCard/index.less +27 -0
  91. package/lib/locales/en-US.js +15 -1
  92. package/lib/locales/zh-CN.js +15 -1
  93. package/lib/locales/zh-TW.js +15 -1
  94. package/lib/utils/index.d.ts +1 -1
  95. package/lowcode/data-source-table/meta.ts +358 -66
  96. package/lowcode/form-item-upload/meta.ts +20 -5
  97. package/lowcode/pisell-upload/meta.ts +8 -0
  98. package/lowcode/pisell-wallet-pass-card/meta.ts +19 -0
  99. package/lowcode/table/meta.ts +104 -0
  100. package/lowcode/wallet-card/meta.ts +81 -63
  101. package/package.json +2 -1
  102. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +0 -98
  103. package/es/components/dataSourceComponents/fields/Upload/type.d.ts +0 -37
  104. package/es/components/pisell-config-provider/context.d.ts +0 -20
  105. package/es/components/pisell-config-provider/index.d.ts +0 -12
  106. package/es/components/pisellAdjustPrice/index.d.ts +0 -4
  107. package/es/components/pisellAdjustPrice/type.d.ts +0 -20
  108. package/es/components/pisellCheckboxGroup/index.d.ts +0 -36
  109. package/es/components/pisellQRScanner/index.d.ts +0 -37
  110. package/es/components/pisellText/components/Amount/index.d.ts +0 -20
  111. package/es/components/table/Table/AddFieldModal/index.d.ts +0 -3
  112. package/es/components/virtual-keyboard/BaseNumberKeyboard/Presets.d.ts +0 -11
  113. package/es/components/virtual-keyboard/BaseNumberKeyboard/index.d.ts +0 -21
  114. package/es/components/virtual-keyboard/Number/index.d.ts +0 -5
  115. package/es/components/virtual-keyboard/Number/types.d.ts +0 -25
  116. package/es/components/walletCard/index.d.ts +0 -67
  117. package/es/locales/en-US.d.ts +0 -278
  118. package/es/locales/zh-CN.d.ts +0 -273
  119. package/es/locales/zh-TW.d.ts +0 -273
  120. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +0 -98
  121. package/lib/components/dataSourceComponents/fields/Upload/type.d.ts +0 -37
  122. package/lib/components/pisell-config-provider/context.d.ts +0 -20
  123. package/lib/components/pisell-config-provider/index.d.ts +0 -12
  124. package/lib/components/pisellAdjustPrice/index.d.ts +0 -4
  125. package/lib/components/pisellAdjustPrice/type.d.ts +0 -20
  126. package/lib/components/pisellCheckboxGroup/index.d.ts +0 -36
  127. package/lib/components/pisellQRScanner/index.d.ts +0 -37
  128. package/lib/components/pisellText/components/Amount/index.d.ts +0 -20
  129. package/lib/components/table/Table/AddFieldModal/index.d.ts +0 -3
  130. package/lib/components/virtual-keyboard/BaseNumberKeyboard/Presets.d.ts +0 -11
  131. package/lib/components/virtual-keyboard/BaseNumberKeyboard/index.d.ts +0 -21
  132. package/lib/components/virtual-keyboard/Number/index.d.ts +0 -5
  133. package/lib/components/virtual-keyboard/Number/types.d.ts +0 -25
  134. package/lib/components/walletCard/index.d.ts +0 -67
  135. package/lib/locales/en-US.d.ts +0 -278
  136. package/lib/locales/zh-CN.d.ts +0 -273
  137. package/lib/locales/zh-TW.d.ts +0 -273
@@ -46,6 +46,7 @@ var import_locales = require("../../../../locales");
46
46
  var import_constants = require("./constants");
47
47
  var import_usePlatform = require("../../hooks/usePlatform");
48
48
  var import_utils2 = require("./utils");
49
+ var import_CameraPopover = __toESM(require("./CameraPopover"));
49
50
  var import_shopUploadServe = require("./shopUploadServe");
50
51
  var import_fallback = __toESM(require("./fallback.png"));
51
52
  var import_index = require("./index.less");
@@ -67,6 +68,7 @@ var BaseUpload = (props) => {
67
68
  onChange,
68
69
  mediaUploadUrl: propsMediaUploadUrl,
69
70
  getHeaders: propsGetHeaders,
71
+ allowCamera,
70
72
  ...restProps
71
73
  } = props;
72
74
  const isShop = (0, import_usePlatform.useIsShop)();
@@ -76,6 +78,8 @@ var BaseUpload = (props) => {
76
78
  const [open, setOpen] = (0, import_react.useState)(false);
77
79
  const [editMultilingualFile, setEditMultilingualFile] = (0, import_react.useState)(null);
78
80
  const fileListRef = (0, import_react.useRef)([]);
81
+ const uploadButtonRef = (0, import_react.useRef)(null);
82
+ const uploadRef = (0, import_react.useRef)(null);
79
83
  (0, import_react.useEffect)(() => {
80
84
  fileListRef.current = fileList;
81
85
  }, [fileList]);
@@ -140,9 +144,7 @@ var BaseUpload = (props) => {
140
144
  multilingualFileList: item.multilingualFileList || (0, import_utils2.createMultilingualFileList)(
141
145
  ((_b = (_a = item.response) == null ? void 0 : _a.data) == null ? void 0 : _b.url) || item.url || ""
142
146
  ),
143
- multilingual: item.multilingual || (0, import_utils2.createMultilingualData)(
144
- ((_d = (_c = item.response) == null ? void 0 : _c.data) == null ? void 0 : _d.url) || item.url || ""
145
- )
147
+ multilingual: item.multilingual || (0, import_utils2.createMultilingualData)(((_d = (_c = item.response) == null ? void 0 : _c.data) == null ? void 0 : _d.url) || item.url || "")
146
148
  };
147
149
  });
148
150
  });
@@ -319,6 +321,7 @@ var BaseUpload = (props) => {
319
321
  }, []);
320
322
  const beforeUpload = (0, import_react.useCallback)(
321
323
  async (file, newFileList) => {
324
+ console.log("beforeUpload000", file, newFileList);
322
325
  let currentFileCount = 1;
323
326
  newFileList.forEach((item, index) => {
324
327
  if (item.uid === file.uid) {
@@ -365,7 +368,8 @@ var BaseUpload = (props) => {
365
368
  {
366
369
  className: "pisell-upload-button",
367
370
  type: "button",
368
- disabled: restProps.disabled
371
+ disabled: restProps.disabled,
372
+ ref: uploadButtonRef
369
373
  },
370
374
  /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null),
371
375
  /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-upload-text" }, (0, import_locales.getText)("pisell-upload-button")),
@@ -460,7 +464,166 @@ var BaseUpload = (props) => {
460
464
  className: "pisell-data-source-upload",
461
465
  ...customRequest
462
466
  };
463
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_pisellUpload.default, { ...uploadProps, fileList }, fileList.length >= calcMaxCount ? null : renderUploadButton(!!enableMultilingual)), /* @__PURE__ */ import_react.default.createElement(
467
+ const onCameraChange = (file) => {
468
+ console.log("onCameraChange", file);
469
+ if (fileList.length >= calcMaxCount) {
470
+ countError.run((0, import_locales.getText)("pisell-upload-max-count-error")(calcMaxCount));
471
+ return;
472
+ }
473
+ const fileType = (0, import_utils2.getFileType)(file.name);
474
+ const typeMaxSize = typeMaxSizeMap == null ? void 0 : typeMaxSizeMap[fileType];
475
+ const _maxSize = typeMaxSize || maxSize || 10;
476
+ if (file.size > _maxSize * 1024 * 1024) {
477
+ sizeError.run((0, import_locales.getText)("pisell-upload-setting-size-error")(_maxSize));
478
+ return import_antd.Upload.LIST_IGNORE;
479
+ }
480
+ const pointSuffix = (0, import_utils2.getPointSuffix)(file.name);
481
+ if (accept !== "" && !accept.includes(pointSuffix)) {
482
+ typeError.run((0, import_locales.getText)("pisell-upload-setting-type-error")(pointSuffix));
483
+ return import_antd.Upload.LIST_IGNORE;
484
+ }
485
+ const uploadFileObj = {
486
+ uid: file.uid || `camera-${Date.now()}`,
487
+ name: file.name || `camera-${Date.now()}.jpg`,
488
+ status: "uploading",
489
+ url: file.url || file.thumbUrl,
490
+ thumbUrl: file.thumbUrl || file.url,
491
+ originFileObj: file.originFileObj || file,
492
+ lastModified: file.lastModified || Date.now(),
493
+ lastModifiedDate: file.lastModifiedDate || /* @__PURE__ */ new Date(),
494
+ type: file.type || "image/jpeg",
495
+ size: file.size,
496
+ // 如果是多语言模式,初始化多语言数据结构
497
+ ...enableMultilingual && {
498
+ multilingualFileList: (0, import_utils2.createMultilingualFileList)(""),
499
+ multilingual: (0, import_utils2.createMultilingualData)("")
500
+ }
501
+ };
502
+ setFileList((prev) => {
503
+ const newFileList = [...prev, uploadFileObj];
504
+ if (!multiple && newFileList.length > 1) {
505
+ return [uploadFileObj];
506
+ }
507
+ return newFileList;
508
+ });
509
+ const fileObj = uploadFileObj.originFileObj;
510
+ if (fileObj) {
511
+ if (isShop) {
512
+ (0, import_shopUploadServe.uploadFile)(fileObj).then((result) => {
513
+ setFileList(
514
+ (prev) => prev.map(
515
+ (item) => {
516
+ var _a, _b, _c, _d;
517
+ return item.uid === uploadFileObj.uid ? {
518
+ ...item,
519
+ status: "done",
520
+ response: result,
521
+ url: ((_a = result.data) == null ? void 0 : _a.url) || item.url,
522
+ thumbUrl: ((_b = result.data) == null ? void 0 : _b.url) || item.thumbUrl,
523
+ // 更新多语言数据
524
+ ...enableMultilingual && {
525
+ multilingual: (0, import_utils2.createMultilingualData)(
526
+ ((_c = result.data) == null ? void 0 : _c.url) || ""
527
+ ),
528
+ multilingualFileList: (0, import_utils2.createMultilingualFileList)(
529
+ ((_d = result.data) == null ? void 0 : _d.url) || ""
530
+ )
531
+ }
532
+ } : item;
533
+ }
534
+ )
535
+ );
536
+ handleChange({
537
+ file: { ...uploadFileObj, status: "done", response: result },
538
+ fileList: [
539
+ ...fileList,
540
+ { ...uploadFileObj, status: "done", response: result }
541
+ ]
542
+ });
543
+ }).catch((error) => {
544
+ console.error("Camera upload error:", error);
545
+ setFileList(
546
+ (prev) => prev.map(
547
+ (item) => item.uid === uploadFileObj.uid ? { ...item, status: "error" } : item
548
+ )
549
+ );
550
+ (0, import_pisellToast.default)({
551
+ content: (0, import_locales.getText)("pisell-upload-error")(uploadFileObj.name)
552
+ });
553
+ });
554
+ } else {
555
+ const formData = new FormData();
556
+ formData.append(uploadProps.name || "file", fileObj);
557
+ const extraData = (() => {
558
+ if (typeof uploadProps.data === "function") {
559
+ const result = uploadProps.data(fileObj);
560
+ return result instanceof Promise ? {} : result;
561
+ }
562
+ return uploadProps.data || {};
563
+ })();
564
+ Object.keys(extraData).forEach((key) => {
565
+ formData.append(key, String(extraData[key]));
566
+ });
567
+ fetch(uploadProps.action, {
568
+ method: uploadProps.method || "post",
569
+ body: formData,
570
+ headers: uploadProps.headers || {}
571
+ }).then((response) => response.json()).then((result) => {
572
+ console.log("Camera upload success:", result);
573
+ setFileList(
574
+ (prev) => prev.map(
575
+ (item) => {
576
+ var _a, _b, _c, _d;
577
+ return item.uid === uploadFileObj.uid ? {
578
+ ...item,
579
+ status: "done",
580
+ response: result,
581
+ url: ((_a = result.data) == null ? void 0 : _a.url) || item.url,
582
+ thumbUrl: ((_b = result.data) == null ? void 0 : _b.url) || item.thumbUrl,
583
+ // 更新多语言数据
584
+ ...enableMultilingual && {
585
+ multilingual: (0, import_utils2.createMultilingualData)(
586
+ ((_c = result.data) == null ? void 0 : _c.url) || ""
587
+ ),
588
+ multilingualFileList: (0, import_utils2.createMultilingualFileList)(
589
+ ((_d = result.data) == null ? void 0 : _d.url) || ""
590
+ )
591
+ }
592
+ } : item;
593
+ }
594
+ )
595
+ );
596
+ handleChange({
597
+ file: { ...uploadFileObj, status: "done", response: result },
598
+ fileList: [
599
+ ...fileList,
600
+ { ...uploadFileObj, status: "done", response: result }
601
+ ]
602
+ });
603
+ }).catch((error) => {
604
+ console.error("Camera upload error:", error);
605
+ setFileList(
606
+ (prev) => prev.map(
607
+ (item) => item.uid === uploadFileObj.uid ? { ...item, status: "error" } : item
608
+ )
609
+ );
610
+ (0, import_pisellToast.default)({
611
+ content: (0, import_locales.getText)("pisell-upload-error")(uploadFileObj.name)
612
+ });
613
+ });
614
+ }
615
+ }
616
+ };
617
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_antd.Upload, { ref: uploadRef, ...uploadProps, fileList }, fileList.length >= calcMaxCount ? null : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, allowCamera && !(0, import_utils.isMobile)() && /* @__PURE__ */ import_react.default.createElement(
618
+ import_CameraPopover.default,
619
+ {
620
+ onLocalFileClick: () => {
621
+ var _a;
622
+ return (_a = uploadButtonRef.current) == null ? void 0 : _a.click();
623
+ },
624
+ onCameraChange
625
+ }
626
+ ), renderUploadButton(!!enableMultilingual))), /* @__PURE__ */ import_react.default.createElement(
464
627
  import_pisellModal.default,
465
628
  {
466
629
  title: (0, import_locales.getText)("pisell-upload-multilingual-title"),
@@ -0,0 +1,95 @@
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/CameraPopover.tsx
30
+ var CameraPopover_exports = {};
31
+ __export(CameraPopover_exports, {
32
+ default: () => CameraPopover_default
33
+ });
34
+ module.exports = __toCommonJS(CameraPopover_exports);
35
+ var import_antd = require("antd");
36
+ var import_react = __toESM(require("react"));
37
+ var import_locales = require("../../../../locales");
38
+ var import_pisellCamera = __toESM(require("../../../pisellCamera"));
39
+ var CameraPopover = (props) => {
40
+ const [open, setOpen] = (0, import_react.useState)(false);
41
+ const cameraRef = (0, import_react.useRef)(null);
42
+ const handleOpenChange = (newOpen) => {
43
+ setOpen(newOpen);
44
+ };
45
+ const onClick = (e, type) => {
46
+ var _a;
47
+ e.stopPropagation();
48
+ e.preventDefault();
49
+ if (type === "upload") {
50
+ console.log("本地文件");
51
+ props.onLocalFileClick();
52
+ } else {
53
+ console.log("拍照");
54
+ (_a = cameraRef.current) == null ? void 0 : _a.open();
55
+ }
56
+ handleOpenChange(false);
57
+ };
58
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode-upload-camera-popover" }, /* @__PURE__ */ import_react.default.createElement(
59
+ import_antd.Popover,
60
+ {
61
+ open,
62
+ onOpenChange: handleOpenChange,
63
+ trigger: "click",
64
+ arrow: false,
65
+ content: /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-lowcode-upload-camera-popover-content" }, /* @__PURE__ */ import_react.default.createElement(
66
+ "div",
67
+ {
68
+ className: "pisell-lowcode-upload-camera-popover-content-item",
69
+ onClick: (e) => onClick(e, "upload")
70
+ },
71
+ (0, import_locales.getText)("pisell-upload-camera-local-files")
72
+ ), /* @__PURE__ */ import_react.default.createElement(
73
+ "div",
74
+ {
75
+ className: "pisell-lowcode-upload-camera-popover-content-item",
76
+ onClick: (e) => onClick(e, "photo")
77
+ },
78
+ (0, import_locales.getText)("pisell-upload-camera-capture")
79
+ )),
80
+ destroyTooltipOnHide: true
81
+ },
82
+ /* @__PURE__ */ import_react.default.createElement(
83
+ "div",
84
+ {
85
+ className: "pisell-lowcode-upload-camera-wrapper",
86
+ onClick: (e) => {
87
+ e.stopPropagation();
88
+ e.preventDefault();
89
+ handleOpenChange(true);
90
+ }
91
+ }
92
+ )
93
+ ), /* @__PURE__ */ import_react.default.createElement(import_pisellCamera.default, { ref: cameraRef, onChange: props.onCameraChange }));
94
+ };
95
+ var CameraPopover_default = CameraPopover;
@@ -16,7 +16,7 @@
16
16
  right: 6px;
17
17
  bottom: 6px;
18
18
  cursor: pointer;
19
- color: #98A2B3;
19
+ color: #98a2b3;
20
20
  font-size: 20px;
21
21
  &:hover {
22
22
  transition: color 0.3s;
@@ -78,5 +78,37 @@
78
78
  z-index: 1201 !important;
79
79
  }
80
80
  .pisell-lowcode-image-preview-operations-wrapper {
81
- z-index: 1202!important;
82
- }
81
+ z-index: 1202 !important;
82
+ }
83
+
84
+ .pisell-lowcode-upload-camera-popover {
85
+ position: absolute;
86
+ top: 0;
87
+ left: 0;
88
+ right: 0;
89
+ bottom: 0;
90
+ background-color: transparent;
91
+
92
+ .pisell-lowcode-upload-camera-wrapper {
93
+ height: 100%;
94
+ width: 100%;
95
+ }
96
+ }
97
+
98
+ .pisell-lowcode-upload-camera-popover-content {
99
+ margin: -12px;
100
+ display: flex;
101
+ flex-direction: column;
102
+ width: 200px;
103
+ border-radius: 10px;
104
+ overflow: hidden;
105
+
106
+ .pisell-lowcode-upload-camera-popover-content-item {
107
+ padding: 10px 12px;
108
+ cursor: pointer;
109
+
110
+ &:hover {
111
+ background-color: #f0f0f0;
112
+ }
113
+ }
114
+ }
@@ -15,4 +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;
18
+ export declare const getBaseTime: (size: number) => 2000 | 1000 | 4000 | 8000;
@@ -19,7 +19,7 @@ declare const formFieldMap: {
19
19
  Subdomain: import("react").FC<import("antd").InputProps & {
20
20
  onChange: (value: string) => void;
21
21
  onBlur?: ((e: import("react").FocusEvent<HTMLInputElement, Element>) => void) | undefined;
22
- rootDomain: "custom" | "xzero" | "saas";
22
+ rootDomain: "custom" | "saas" | "xzero";
23
23
  customDomain?: string | undefined;
24
24
  value?: string | undefined;
25
25
  tenantId: string;
@@ -59,11 +59,13 @@ declare const formFieldMap: {
59
59
  FormItemTranslation: import("react").FC<import("./Translation/type").TranslationProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
60
60
  FormItemIconSelect: import("react").FC<import("./IconSelect/type").IconSelectProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
61
61
  };
62
- declare const getFieldComponent: (fieldComponent: string) => import("react").FC<import("./TimePicker/type").TimePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | (import("react").FC<{}> & {
62
+ declare const getFieldComponent: (fieldComponent: string) => import("react").FC<any> | import("react").FC<import("./Checkbox/type").CheckboxGroupProps & import("../dataSourceForm/utils").WithModeProps> | (import("react").FC<{}> & {
63
63
  Group: import("react").FC<import("./Checkbox/type").CheckboxGroupProps & import("../dataSourceForm/utils").WithModeProps>;
64
64
  } & {
65
65
  Group: import("react").FC<import("./Checkbox/type").CheckboxGroupProps & import("../dataSourceForm/utils").WithModeProps>;
66
- }) | import("react").FC<import("./ColorPicker/type").ColorPickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<(import("antd").DatePickerProps & import("../dataSourceForm/utils").WithModeProps) & import("../dataSourceForm/utils").WithFormItemProps> | (import("react").FC<import("./Input/type").InputProps> & {
66
+ }) | import("react").FC<import("./ColorPicker/type").ColorPickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<(import("antd").DatePickerProps & import("../dataSourceForm/utils").WithModeProps) & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("antd/es/input").PasswordProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("antd").InputProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("antd").InputProps & {
67
+ onChange: (value: string) => void;
68
+ } & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Input.Phone/WithMode").PhoneInputProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Input.Mobile/WithMode").PhoneInputProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | (import("react").FC<import("./Input/type").InputProps> & {
67
69
  JSON: import("react").FC<any>;
68
70
  Password: import("react").FC<import("antd/es/input").PasswordProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
69
71
  TextArea: import("react").FC<import("antd/es/input").TextAreaProps & import("react").RefAttributes<import("antd/es/input/TextArea").TextAreaRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
@@ -76,14 +78,14 @@ declare const getFieldComponent: (fieldComponent: string) => import("react").FC<
76
78
  Subdomain: import("react").FC<import("antd").InputProps & {
77
79
  onChange: (value: string) => void;
78
80
  onBlur?: ((e: import("react").FocusEvent<HTMLInputElement, Element>) => void) | undefined;
79
- rootDomain: "custom" | "xzero" | "saas";
81
+ rootDomain: "custom" | "saas" | "xzero";
80
82
  customDomain?: string | undefined;
81
83
  value?: string | undefined;
82
84
  tenantId: string;
83
85
  name?: string | undefined;
84
86
  fieldKey?: string | undefined;
85
87
  } & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
86
- }) | (import("react").FC<{}> & {
88
+ }) | import("react").FC<import("./Radio/type").RadioGroupProps & import("../dataSourceForm/utils").WithModeProps> | (import("react").FC<{}> & {
87
89
  Group: import("react").FC<import("./Radio/type").RadioGroupProps & import("../dataSourceForm/utils").WithModeProps>;
88
90
  } & {
89
91
  Group: import("react").FC<import("./Radio/type").RadioGroupProps & import("../dataSourceForm/utils").WithModeProps>;
@@ -95,7 +97,5 @@ declare const getFieldComponent: (fieldComponent: string) => import("react").FC<
95
97
  extraParams?: Record<string, any> | undefined;
96
98
  } & {
97
99
  dataSource?: any;
98
- }) => JSX.Element) | import("react").FC<any> | import("react").FC<import("./Input.Phone/WithMode").PhoneInputProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Input.Mobile/WithMode").PhoneInputProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("antd").InputProps & {
99
- onChange: (value: string) => void;
100
- } & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("antd").InputProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("antd/es/input").PasswordProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Radio/type").RadioGroupProps & import("../dataSourceForm/utils").WithModeProps> | import("react").FC<import("./Checkbox/type").CheckboxGroupProps & import("../dataSourceForm/utils").WithModeProps> | import("react").FC<import("./DateRangePicker/type").DateRangePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Upload/type").UploadProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Translation/type").TranslationProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./IconSelect/type").IconSelectProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
100
+ }) => JSX.Element) | import("react").FC<import("./TimePicker/type").TimePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./DateRangePicker/type").DateRangePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Upload/type").UploadProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./Translation/type").TranslationProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./IconSelect/type").IconSelectProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
101
101
  export { getFieldComponent, formFieldMap };
@@ -9,6 +9,8 @@ export declare type FilterType = {
9
9
  sortButtonShow: boolean;
10
10
  /** 筛选列表 */
11
11
  list: FilterItemProps[];
12
+ items?: string[];
13
+ __items: string[];
12
14
  /** 快速筛选最大长度 */
13
15
  quickFilterMaxLength: number;
14
16
  /** 配置存储模式 */
@@ -0,0 +1,222 @@
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/pisellCamera/index.tsx
30
+ var pisellCamera_exports = {};
31
+ __export(pisellCamera_exports, {
32
+ default: () => pisellCamera_default
33
+ });
34
+ module.exports = __toCommonJS(pisellCamera_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_react_camera_pro = require("react-camera-pro");
37
+ var import_iconfont = __toESM(require("../iconfont"));
38
+ var import_locales = require("../../locales");
39
+ var import_pisellModal = __toESM(require("../../components/pisellModal"));
40
+ var import_index = require("./index.less");
41
+ var PisellCamera = (0, import_react.forwardRef)((props, ref) => {
42
+ const cameraRef = (0, import_react.useRef)(null);
43
+ const [open, setOpen] = (0, import_react.useState)(false);
44
+ const [photo, setPhoto] = (0, import_react.useState)("");
45
+ const [cameraAvailable, setCameraAvailable] = (0, import_react.useState)(null);
46
+ const uploadFileRef = (0, import_react.useRef)(null);
47
+ const base64ToFile = (base64String, filename) => {
48
+ var _a;
49
+ const arr = base64String.split(",");
50
+ const mime = ((_a = arr[0].match(/:(.*?);/)) == null ? void 0 : _a[1]) || "";
51
+ const bstr = atob(arr[1]);
52
+ let n = bstr.length;
53
+ const u8arr = new Uint8Array(n);
54
+ while (n--) {
55
+ u8arr[n] = bstr.charCodeAt(n);
56
+ }
57
+ return new File([u8arr], filename, { type: mime });
58
+ };
59
+ const takePhoto = () => {
60
+ var _a, _b;
61
+ if (!cameraRef.current || !cameraRef.current.takePhoto) {
62
+ return;
63
+ }
64
+ try {
65
+ const photo2 = (_b = (_a = cameraRef.current) == null ? void 0 : _a.takePhoto) == null ? void 0 : _b.call(_a);
66
+ const timestamp = Date.now();
67
+ const filename = `photo-${timestamp}.jpg`;
68
+ setPhoto(photo2);
69
+ const file = base64ToFile(photo2, filename);
70
+ const uploadFile = {
71
+ uid: timestamp.toString(),
72
+ name: filename,
73
+ status: "uploading",
74
+ url: photo2,
75
+ // 用于预览
76
+ originFileObj: file,
77
+ // 原始文件对象,用于上传
78
+ thumbUrl: photo2,
79
+ lastModified: Date.now(),
80
+ lastModifiedDate: /* @__PURE__ */ new Date(),
81
+ type: "image/jpeg",
82
+ size: file.size
83
+ };
84
+ console.log("takePhoto_uploadFile", uploadFile);
85
+ uploadFileRef.current = uploadFile;
86
+ return uploadFile;
87
+ } catch (error) {
88
+ console.error("takePhoto_error", error);
89
+ uploadFileRef.current = null;
90
+ setPhoto("");
91
+ return null;
92
+ }
93
+ };
94
+ const onOpen = () => {
95
+ setCameraAvailable(null);
96
+ setPhoto("");
97
+ uploadFileRef.current = null;
98
+ setOpen(true);
99
+ };
100
+ const onClose = () => {
101
+ cameraRef.current = null;
102
+ uploadFileRef.current = null;
103
+ setOpen(false);
104
+ setPhoto("");
105
+ setCameraAvailable(null);
106
+ };
107
+ const onRetakePhoto = () => {
108
+ setPhoto("");
109
+ };
110
+ const onUsePhoto = () => {
111
+ var _a;
112
+ (_a = props == null ? void 0 : props.onChange) == null ? void 0 : _a.call(props, uploadFileRef.current);
113
+ onClose();
114
+ };
115
+ (0, import_react.useImperativeHandle)(ref, () => {
116
+ return {
117
+ open: onOpen,
118
+ takePhoto,
119
+ isCameraAvailable: () => cameraAvailable
120
+ };
121
+ });
122
+ console.log("cameraAvailable", cameraAvailable);
123
+ return /* @__PURE__ */ import_react.default.createElement(
124
+ import_pisellModal.default,
125
+ {
126
+ open,
127
+ onCancel: (e) => {
128
+ e.stopPropagation();
129
+ e.preventDefault();
130
+ onClose();
131
+ },
132
+ header: false,
133
+ footer: null,
134
+ destroyOnClose: true,
135
+ bodyStyle: { padding: 0 },
136
+ width: "90vw",
137
+ className: "pisell-camera-modal"
138
+ },
139
+ /* @__PURE__ */ import_react.default.createElement(
140
+ "div",
141
+ {
142
+ className: "pisell-camera-container",
143
+ onClick: (e) => {
144
+ e.stopPropagation();
145
+ e.preventDefault();
146
+ }
147
+ },
148
+ cameraAvailable === null ? (
149
+ // 检测中
150
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-loading" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-loading-text" }, (0, import_locales.getText)("pisell-camera-checking")))
151
+ ) : cameraAvailable === false ? (
152
+ // 无摄像头
153
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-no-camera" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-no-camera-icon" }, "📷"), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-no-camera-text" }, (0, import_locales.getText)("pisell-camera-no-camera-accessible")), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-no-camera-desc" }, (0, import_locales.getText)("pisell-camera-no-camera-desc")))
154
+ ) : null,
155
+ /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
156
+ import_react_camera_pro.Camera,
157
+ {
158
+ ref: cameraRef,
159
+ facingMode: "environment",
160
+ errorMessages: {
161
+ // noCameraAccessible: getText('pisell-camera-no-camera-accessible'),
162
+ // permissionDenied: getText('pisell-camera-permission-denied'),
163
+ // switchCamera: getText('pisell-camera-switch-camera'),
164
+ // canvas: getText('pisell-camera-canvas'),
165
+ },
166
+ numberOfCamerasCallback: (numberOfCameras) => {
167
+ console.log("numberOfCameras", numberOfCameras);
168
+ if (!cameraRef.current) {
169
+ return;
170
+ }
171
+ if (numberOfCameras <= 0) {
172
+ setTimeout(() => {
173
+ setCameraAvailable((pre) => {
174
+ if (pre === true) {
175
+ return true;
176
+ }
177
+ return false;
178
+ });
179
+ }, 5e3);
180
+ } else {
181
+ setCameraAvailable(true);
182
+ }
183
+ }
184
+ }
185
+ ), cameraAvailable === true && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-action" }, /* @__PURE__ */ import_react.default.createElement(
186
+ "div",
187
+ {
188
+ className: "pisell-camera-action-item-wrap",
189
+ onClick: (e) => {
190
+ e.stopPropagation();
191
+ e.preventDefault();
192
+ takePhoto();
193
+ }
194
+ },
195
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-action-item" }, /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { type: "pisell2-camera-01", style: { fontSize: 32 } }))
196
+ )), photo && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-photo-container" }, /* @__PURE__ */ import_react.default.createElement("img", { src: photo, alt: "photo", className: "pisell-camera-photo" })), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-camera-photo-img-action" }, /* @__PURE__ */ import_react.default.createElement(
197
+ "div",
198
+ {
199
+ className: "pisell-camera-photo-img-action-item",
200
+ onClick: (e) => {
201
+ e.stopPropagation();
202
+ e.preventDefault();
203
+ onRetakePhoto();
204
+ }
205
+ },
206
+ (0, import_locales.getText)("pisell-upload-camera-retake")
207
+ ), /* @__PURE__ */ import_react.default.createElement(
208
+ "div",
209
+ {
210
+ className: "pisell-camera-photo-img-action-item",
211
+ onClick: (e) => {
212
+ e.stopPropagation();
213
+ e.preventDefault();
214
+ onUsePhoto();
215
+ }
216
+ },
217
+ (0, import_locales.getText)("pisell-upload-camera-use")
218
+ ))))
219
+ )
220
+ );
221
+ });
222
+ var pisellCamera_default = PisellCamera;