templates/components/js/scandit_js.html.twig line 1

Open in your IDE?
  1. <script async src="https://ga.jspm.io/npm:es-module-shims@1.7.3/dist/es-module-shims.js"></script>
  2. <script type="importmap">
  3.     {
  4.         "imports": {
  5.             "scandit-web-datacapture-core": "https://cdn.jsdelivr.net/npm/scandit-web-datacapture-core@6.23.2/build/js/index.js",
  6.             "scandit-web-datacapture-barcode": "https://cdn.jsdelivr.net/npm/scandit-web-datacapture-barcode@6.23.2/build/js/index.js"
  7.         }
  8.     }
  9. </script>
  10. <script type="module">
  11.     import * as SDCCore from "scandit-web-datacapture-core";
  12.     import * as SDCBarcode from "scandit-web-datacapture-barcode";
  13.     // In attesa della chiave corretta
  14.     await SDCCore.configure({
  15.         licenseKey: "{{ SCANDIT_LICENSE_KEY }}",
  16.         libraryLocation: new URL("https://cdn.jsdelivr.net/npm/scandit-web-datacapture-barcode@6.23.2/build/engine/").toString(),
  17.         moduleLoaders: [SDCBarcode.barcodeCaptureLoader()]
  18.     });
  19.     const view = new SDCCore.DataCaptureView();
  20.     //view.addControl();
  21.     view.connectToElement(document.getElementById("data-capture-view"));
  22.     const context = await SDCCore.DataCaptureContext.create();
  23.     await view.setContext(context);
  24.     
  25.     const settings = new SDCBarcode.BarcodeCaptureSettings();
  26.     settings.enableSymbologies([
  27.         SDCBarcode.Symbology.Code128,
  28.         SDCBarcode.Symbology.Code39,
  29.         SDCBarcode.Symbology.EAN8,
  30.         SDCBarcode.Symbology.UPCE,
  31.         SDCBarcode.Symbology.EAN13UPCA
  32.     ]);
  33.     
  34.     const size = new SDCCore.SizeWithUnit(
  35.         new SDCCore.NumberWithUnit(0.25, SDCCore.MeasureUnit.Fraction),
  36.         new SDCCore.NumberWithUnit(0.02, SDCCore.MeasureUnit.Fraction)
  37.     )
  38.     settings.locationSelection = SDCCore.RectangularLocationSelection.withSize(size);
  39.     view.pointOfInterest = new SDCCore.PointWithUnit(
  40.         new SDCCore.NumberWithUnit(0.5, SDCCore.MeasureUnit.Fraction),
  41.         new SDCCore.NumberWithUnit(0.5, SDCCore.MeasureUnit.Fraction)
  42.     );
  43.     view.scanAreaMargins = new SDCCore.MarginsWithUnit(
  44.         new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction),
  45.         new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction),
  46.         new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction),
  47.         new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction)
  48.     );
  49.     const barcodeCapture = await SDCBarcode.BarcodeCapture.forContext(context, settings);
  50.     const listener = {
  51.         didScan: (barcodeCapture, session) => {
  52.             const recognizedBarcodes = session.newlyRecognizedBarcodes;
  53.             {% if action == 'intervention' %}
  54.                 manageBarcode(recognizedBarcodes[0]['_data']);
  55.             {% elseif action == 'download' or action == 'send' %}
  56.                 checkCode(recognizedBarcodes[0]['_data']);
  57.             {% endif %}
  58.             barcodeCapture.setEnabled(false);
  59.             scanditUpdateScan(0);
  60.         }
  61.     };
  62.     barcodeCapture.addListener(listener);
  63.     const cameraSettings = SDCBarcode.BarcodeCapture.recommendedCameraSettings;
  64.     const camera = SDCCore.Camera.default;
  65.     if(camera){
  66.         await camera.applySettings(cameraSettings);
  67.     }
  68.     await context.setFrameSource(camera);
  69.     await camera.switchToDesiredState(SDCCore.FrameSourceState.On);
  70.     const overlay = await SDCBarcode.BarcodeCaptureOverlay.withBarcodeCaptureForViewWithStyle(barcodeCapture, view,  SDCBarcode.BarcodeCaptureOverlayStyle.Frame);
  71.     await overlay.setShouldShowScanAreaGuides(true);
  72.     const viewfinder = new SDCCore.RectangularViewfinder(
  73.         SDCCore.RectangularViewfinderStyle.Square,
  74.         SDCCore.RectangularViewfinderLineStyle.Light
  75.     );
  76.     await overlay.setViewfinder(viewfinder);
  77.     setInterval(activeScandit, 1000);
  78.     function activeScandit(){
  79.         if(document.getElementById('scandit_reader_active').value == 0)
  80.             barcodeCapture.setEnabled(false);
  81.         else
  82.             barcodeCapture.setEnabled(true);
  83.     }
  84. </script>
  85. <script>    
  86.     function scanditUpdateScan(val){
  87.         document.getElementById('scandit_reader_active').value = val;
  88.         var a = document.getElementById('scandit_button_scan');
  89.         var span = document.getElementById('scandit_span_status');
  90.         if(val == 1){
  91.             a.href = "javascript: scanditUpdateScan(0)";
  92.             a.className = 'button button-3d button-mini button-red m_t_none';
  93.             a.innerHTML = 'Disattiva scansione';
  94.             span.innerHTML = 'Attiva';
  95.         }
  96.         else{
  97.             a.href = "javascript: scanditUpdateScan(1)";
  98.             a.className = 'button button-3d button-mini button-green m_t_none';
  99.             a.innerHTML = 'Attiva scansione';
  100.             span.innerHTML = 'Disattiva';
  101.         }
  102.     }
  103. </script>