@cniot/android-pda-components 2.0.0-beta.27 → 2.0.0-beta.28

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/es/index.es.js CHANGED
@@ -4449,6 +4449,16 @@ class PreviewItem extends Component {
4449
4449
  }
4450
4450
  render() {
4451
4451
  const { src, deletable, onView, box } = this.props;
4452
+ let isVideo = false;
4453
+ if (typeof src === "string") {
4454
+ const videoPattern = /\.(mp4|mov|avi|wmv|webm|ogg|m4v|3gp|m3u8)(\?.*)?$/i;
4455
+ if (videoPattern.test(src)) {
4456
+ isVideo = true;
4457
+ }
4458
+ if (/^data:video\//.test(src)) {
4459
+ isVideo = true;
4460
+ }
4461
+ }
4452
4462
  return /* @__PURE__ */ React__default.createElement("div", {
4453
4463
  className: "image-space-item"
4454
4464
  }, /* @__PURE__ */ React__default.createElement("div", {
@@ -4457,7 +4467,14 @@ class PreviewItem extends Component {
4457
4467
  }, /* @__PURE__ */ React__default.createElement("div", {
4458
4468
  className: `${classPrefix$r}-cell-image`,
4459
4469
  style: { width: box, height: box }
4460
- }, /* @__PURE__ */ React__default.createElement("img", {
4470
+ }, isVideo ? /* @__PURE__ */ React__default.createElement("video", {
4471
+ className: `${classPrefix$r}-video-thumb`,
4472
+ src,
4473
+ style: { width: "100%", height: "100%", objectFit: "cover" },
4474
+ muted: true,
4475
+ preload: "metadata",
4476
+ onClick: onView
4477
+ }) : /* @__PURE__ */ React__default.createElement("img", {
4461
4478
  className: `${classPrefix$r}-img`,
4462
4479
  src,
4463
4480
  fit: "cover",
@@ -4521,28 +4538,37 @@ class ImageViewer extends Component {
4521
4538
  if (e2.target.getAttribute("class") !== "image-viewer-image-wrapper" && e2.target.getAttribute("class") !== "image-viewer-loading")
4522
4539
  return;
4523
4540
  const { afterClose } = this.props;
4524
- this.setState({
4525
- visible: false
4526
- }, () => {
4527
- afterClose && afterClose();
4528
- });
4541
+ this.setState(
4542
+ {
4543
+ visible: false
4544
+ },
4545
+ () => {
4546
+ afterClose && afterClose();
4547
+ }
4548
+ );
4529
4549
  });
4530
4550
  __publicField(this, "onClose", () => {
4531
4551
  const { onClose, images } = this.props;
4532
4552
  const { currentIndex } = this.state;
4533
4553
  if (images.length === 0) {
4534
- this.setState({
4535
- visible: false
4536
- }, () => {
4537
- onClose && onClose(images[currentIndex], currentIndex);
4538
- });
4554
+ this.setState(
4555
+ {
4556
+ visible: false
4557
+ },
4558
+ () => {
4559
+ onClose && onClose(images[currentIndex], currentIndex);
4560
+ }
4561
+ );
4539
4562
  } else {
4540
- this.setState({
4541
- currentIndex: 0,
4542
- visible: false
4543
- }, () => {
4544
- onClose && onClose(images[currentIndex], currentIndex);
4545
- });
4563
+ this.setState(
4564
+ {
4565
+ currentIndex: 0,
4566
+ visible: false
4567
+ },
4568
+ () => {
4569
+ onClose && onClose(images[currentIndex], currentIndex);
4570
+ }
4571
+ );
4546
4572
  }
4547
4573
  });
4548
4574
  __publicField(this, "onPrev", (e2) => {
@@ -4561,6 +4587,37 @@ class ImageViewer extends Component {
4561
4587
  loading: true
4562
4588
  });
4563
4589
  });
4590
+ __publicField(this, "renderImage", () => {
4591
+ const { currentIndex, visible, loading: loading2 } = this.state;
4592
+ const imageItem = this.props.images[currentIndex];
4593
+ const src = imageItem.url;
4594
+ let isVideo = false;
4595
+ if (typeof src === "string") {
4596
+ const videoPattern = /\.(mp4|mov|avi|wmv|webm|ogg|m4v|3gp|m3u8)(\?.*)?$/i;
4597
+ if (videoPattern.test(src)) {
4598
+ isVideo = true;
4599
+ }
4600
+ if (/^data:video\//.test(src)) {
4601
+ isVideo = true;
4602
+ }
4603
+ }
4604
+ if (isVideo) {
4605
+ return /* @__PURE__ */ React__default.createElement("video", {
4606
+ src,
4607
+ controls: true,
4608
+ autoPlay: true,
4609
+ muted: true,
4610
+ style: { maxWidth: "100%", maxHeight: "100%" },
4611
+ onLoadedData: this.handleImageLoaded
4612
+ });
4613
+ } else {
4614
+ return /* @__PURE__ */ React__default.createElement("img", {
4615
+ src,
4616
+ style: { width: loading2 ? 1 : "auto" },
4617
+ onLoad: this.handleImageLoaded
4618
+ });
4619
+ }
4620
+ });
4564
4621
  this.state = {
4565
4622
  visible: props.defaultVisible || false,
4566
4623
  currentIndex: 0,
@@ -4595,11 +4652,7 @@ class ImageViewer extends Component {
4595
4652
  className: "image-viewer-slides-inner"
4596
4653
  }, /* @__PURE__ */ React__default.createElement("div", {
4597
4654
  className: "image-viewer-image-wrapper"
4598
- }, /* @__PURE__ */ React__default.createElement("img", {
4599
- src: this.props.images[currentIndex].url,
4600
- style: { width: loading2 ? 1 : "auto" },
4601
- onLoad: this.handleImageLoaded
4602
- }))), images.length > 1 ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, currentIndex === 0 ? null : /* @__PURE__ */ React__default.createElement("div", {
4655
+ }, this.renderImage())), images.length > 1 ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, currentIndex === 0 ? null : /* @__PURE__ */ React__default.createElement("div", {
4603
4656
  className: "viewer-image-arrow viewer-prev",
4604
4657
  onClick: this.onPrev
4605
4658
  }, /* @__PURE__ */ React__default.createElement("svg", {
@@ -18738,7 +18791,7 @@ class ImageUploader extends Component {
18738
18791
  onError
18739
18792
  } = this.props;
18740
18793
  const isCameraMode = capture && capture === "camera";
18741
- const uploadPromise = uploadMode === "takePhoto" ? wvCameraTakePhoto(isCameraMode) : takePhotoMethod2(compressSize);
18794
+ const uploadPromise = uploadMode === "takeVideo" ? takeVideo() : uploadMode === "takePhoto" ? wvCameraTakePhoto(isCameraMode) : takePhotoMethod2(compressSize);
18742
18795
  uploadPromise.then((ret) => {
18743
18796
  onBeforeUpload && onBeforeUpload(ret);
18744
18797
  beforeUpload && beforeUpload(ret);
@@ -18889,6 +18942,28 @@ function takePhotoMethod2(compressSize = 200) {
18889
18942
  );
18890
18943
  });
18891
18944
  }
18945
+ function takeVideo(maxDuration = 30) {
18946
+ return new Promise((resolve, reject) => {
18947
+ const params = {
18948
+ domain: "camera",
18949
+ method: "takeVideo",
18950
+ params: { maxDuration }
18951
+ };
18952
+ window.WindVane.call(
18953
+ "WindvanePlugin",
18954
+ "invoke",
18955
+ JSON.stringify(params),
18956
+ (e2) => {
18957
+ console.log("\u89C6\u9891\u6210\u529F:", e2);
18958
+ resolve(e2.data);
18959
+ },
18960
+ (e2) => {
18961
+ console.log("\u89C6\u9891\u5931\u8D25:", e2);
18962
+ reject(e2);
18963
+ }
18964
+ );
18965
+ });
18966
+ }
18892
18967
  var index$m = "";
18893
18968
  var index$l = "";
18894
18969
  var index$k = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cniot/android-pda-components",
3
- "version": "2.0.0-beta.27",
3
+ "version": "2.0.0-beta.28",
4
4
  "description": "",
5
5
  "main": "./es/index.cjs.js",
6
6
  "module": "./es/index.es.js",