var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// src/components/pisellScan/index.tsx
var pisellScan_exports = {};
__export(pisellScan_exports, {
  default: () => pisellScan_default
});
module.exports = __toCommonJS(pisellScan_exports);
var import_react = __toESM(require("react"));
var import_library = require("@zxing/library");
var import_index = require("./index.less");
var PisellScan = (0, import_react.forwardRef)((props, ref) => {
  const { width, height, borderRadius, style, children, onChange, timeBetweenScansMillis = 500, ...others } = props;
  const videoRef = (0, import_react.useRef)(null);
  const codeReaderRef = (0, import_react.useRef)(null);
  (0, import_react.useImperativeHandle)(ref, () => {
    return {
      codeReader: codeReaderRef.current
    };
  });
  (0, import_react.useEffect)(() => {
    const codeReader = new import_library.BrowserMultiFormatReader(void 0, timeBetweenScansMillis);
    codeReaderRef.current = codeReader;
    let selectedDeviceId;
    codeReaderRef.current.listVideoInputDevices().then((videoInputDevices) => {
      selectedDeviceId = videoInputDevices[0].deviceId;
      codeReader.decodeFromVideoDevice(
        null,
        videoRef.current,
        (result, err) => {
          if (result) {
            onChange == null ? void 0 : onChange(result.getText());
          }
          if (err && !(err instanceof import_library.NotFoundException)) {
            console.error(err);
          }
        }
      );
    }).catch((err) => {
      console.error(err);
    });
    return () => {
      codeReaderRef.current.reset();
    };
  }, []);
  return /* @__PURE__ */ import_react.default.createElement(
    "div",
    {
      className: "pisell-scan-wrap",
      style: {
        width,
        height,
        borderRadius,
        ...style
      }
    },
    /* @__PURE__ */ import_react.default.createElement(
      "video",
      {
        ...others,
        ref: videoRef,
        style: {
          width,
          height,
          borderRadius,
          background: "#000",
          ...style
        }
      }
    ),
    /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-scan-action" }, children)
  );
});
var pisellScan_default = PisellScan;
