@ozdao/prometheus-framework 0.2.238 → 0.2.240

Sign up to get free protection for your applications and to get access to all the features.
package/dist/builder.js CHANGED
@@ -707,7 +707,7 @@ var webpack_config_spa = (projectRoot) => {
707
707
  mode: !isProd ? "development" : "production",
708
708
  devtool: "source-map",
709
709
  entry: {
710
- main: path$1.resolve(projectRoot, "src/app.js")
710
+ main: path$1.resolve(projectRoot, "src/index.js")
711
711
  },
712
712
  output: {
713
713
  filename: "main.js",
package/dist/builder.mjs CHANGED
@@ -684,7 +684,7 @@ var webpack_config_spa = (projectRoot) => {
684
684
  mode: !isProd ? "development" : "production",
685
685
  devtool: "source-map",
686
686
  entry: {
687
- main: path$1.resolve(projectRoot, "src/app.js")
687
+ main: path$1.resolve(projectRoot, "src/index.js")
688
688
  },
689
689
  output: {
690
690
  filename: "main.js",
@@ -48,6 +48,7 @@ const _sfc_main = {
48
48
  }
49
49
  (_a = document.querySelector("body")) == null ? void 0 : _a.classList.add("barcode-scanner-active");
50
50
  (_b = document.querySelector("html")) == null ? void 0 : _b.classList.add("barcode-scanner-active-html");
51
+ index.BarcodeScanner.hideBackground();
51
52
  isScanning.value = true;
52
53
  await index.BarcodeScanner.addListener("barcodeScanned", async (result) => {
53
54
  await processBarcode(result.barcode);
@@ -80,9 +81,11 @@ const _sfc_main = {
80
81
  if (!barcode) {
81
82
  throw new Error("Troubles with barcode reading");
82
83
  }
84
+ console.log("barcode is", barcode);
83
85
  const response = await tickets.actions.update({ _id: barcode, status: "used", check: true });
84
86
  alert("Ticket checked. And it's all right!");
85
87
  } catch (e) {
88
+ console.log(e);
86
89
  alert(`Ticket is not found, already used or deactivated!`);
87
90
  } finally {
88
91
  emits("qrcodecheck");
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonCheck.vue.cjs","sources":["../../../../../../../src/modules/events/components/elements/ButtonCheck.vue"],"sourcesContent":["<template>\n <div>\n <Button @click=\"startScan\" class=\"bg-main button-small radius-extra button\">\n Check Tickets\n </Button>\n <div v-if=\"isScanning\" class=\"barcode-scanner-modal\">\n <div class=\"square\"></div>\n <div class=\"zoom-ratio-wrapper\" v-if=\"minZoomRatio !== undefined && maxZoomRatio !== undefined\">\n <input type=\"range\" :min=\"minZoomRatio\" :max=\"maxZoomRatio\" @input=\"setZoomRatio\" />\n </div>\n <Button @click=\"stopScan\" class=\"stop-scan-button\">Stop Scan</Button>\n <Button v-if=\"isTorchAvailable\" @click=\"toggleTorch\" class=\"torch-button\">\n Toggle Torch\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { BarcodeScanner } from '@capacitor-mlkit/barcode-scanning'\nimport Button from '@pf/src/components/Button/Button.vue'\nimport * as tickets from '@pf/src/modules/events/store/tickets'\n\nconst emits = defineEmits(['qrcodecheck'])\nconst error = ref('')\nconst isScanning = ref(false)\nconst isTorchAvailable = ref(false)\nconst minZoomRatio = ref(undefined)\nconst maxZoomRatio = ref(undefined)\n\nonMounted(async () => {\n const { supported } = await BarcodeScanner.isSupported()\n if (!supported) {\n error.value = 'Barcode scanning is not supported on this device'\n }\n const { available } = await BarcodeScanner.isTorchAvailable()\n isTorchAvailable.value = available\n})\n\nonUnmounted(async () => {\n await stopScan()\n})\n\nasync function startScan() {\n try {\n const { camera } = await BarcodeScanner.checkPermissions()\n\n if (camera !== 'granted') {\n const { camera: newStatus } = await BarcodeScanner.requestPermissions()\n if (newStatus !== 'granted') {\n throw new Error('Camera permission is required to scan barcodes')\n }\n }\n\n document.querySelector('body')?.classList.add('barcode-scanner-active')\n document.querySelector('html')?.classList.add('barcode-scanner-active-html')\n\n isScanning.value = true\n\n await BarcodeScanner.addListener('barcodeScanned', async (result) => {\n await processBarcode(result.barcode)\n })\n\n await BarcodeScanner.startScan()\n\n const { zoomRatio: min } = await BarcodeScanner.getMinZoomRatio()\n const { zoomRatio: max } = await BarcodeScanner.getMaxZoomRatio()\n minZoomRatio.value = min\n maxZoomRatio.value = max\n } catch (e) {\n error.value = e.message\n alert(`Error: ${error.value}`)\n }\n}\n\nasync function stopScan() {\n try {\n document.querySelector('body')?.classList.remove('barcode-scanner-active')\n document.querySelector('html')?.classList.remove('barcode-scanner-active-html')\n isScanning.value = false\n await BarcodeScanner.stopScan()\n await BarcodeScanner.removeAllListeners()\n } catch (e) {\n error.value = e.message\n alert(`Error stopping scan: ${error.value}`)\n }\n}\n\nasync function processBarcode(barcode) {\n try {\n if (!barcode) {\n throw new Error('Troubles with barcode reading')\n }\n const response = await tickets.actions.update({ _id: barcode, status: 'used', check: true })\n alert(\"Ticket checked. And it's all right!\")\n } catch (e) {\n alert(`Ticket is not found, already used or deactivated!`)\n } finally {\n emits('qrcodecheck')\n await stopScan()\n }\n}\n\nasync function setZoomRatio(event) {\n const zoomRatio = parseFloat(event.target.value)\n await BarcodeScanner.setZoomRatio({ zoomRatio })\n}\n\nasync function toggleTorch() {\n await BarcodeScanner.toggleTorch()\n}\n</script>\n\n<style>\n.barcode-scanner-modal {\n visibility: visible;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.square {\n width: 200px;\n height: 200px;\n border: 2px solid white;\n border-radius: 10px;\n}\n\n.zoom-ratio-wrapper {\n width: 80%;\n margin-top: 20px;\n}\n\n.stop-scan-button,\n.torch-button {\n margin-top: 20px;\n}\n\n/* Existing styles */\nbody.barcode-scanner-active {\n visibility: hidden;\n --background: transparent;\n --ion-background-color: transparent;\n}\n\nhtml.barcode-scanner-active-html {\n background: transparent !important;\n}\n\n@media (prefers-color-scheme: dark) {\n .barcode-scanner-modal {\n --background: transparent;\n --ion-background-color: transparent;\n }\n}\n</style>\n"],"names":["ref","onMounted","BarcodeScanner","onUnmounted","tickets.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,UAAM,QAAQ;AACd,UAAM,QAAQA,IAAG,IAAC,EAAE;AACpB,UAAM,aAAaA,IAAG,IAAC,KAAK;AAC5B,UAAM,mBAAmBA,IAAG,IAAC,KAAK;AAClC,UAAM,eAAeA,IAAG,IAAC,MAAS;AAClC,UAAM,eAAeA,IAAG,IAAC,MAAS;AAElCC,QAAAA,UAAU,YAAY;AACpB,YAAM,EAAE,UAAS,IAAK,MAAMC,MAAAA,eAAe,YAAa;AACxD,UAAI,CAAC,WAAW;AACd,cAAM,QAAQ;AAAA,MACf;AACD,YAAM,EAAE,UAAS,IAAK,MAAMA,MAAAA,eAAe,iBAAkB;AAC7D,uBAAiB,QAAQ;AAAA,IAC3B,CAAC;AAEDC,QAAAA,YAAY,YAAY;AACtB,YAAM,SAAU;AAAA,IAClB,CAAC;AAED,mBAAe,YAAY;;AACzB,UAAI;AACF,cAAM,EAAE,OAAM,IAAK,MAAMD,MAAAA,eAAe,iBAAkB;AAE1D,YAAI,WAAW,WAAW;AACxB,gBAAM,EAAE,QAAQ,UAAW,IAAG,MAAMA,MAAAA,eAAe,mBAAoB;AACvE,cAAI,cAAc,WAAW;AAC3B,kBAAM,IAAI,MAAM,gDAAgD;AAAA,UACjE;AAAA,QACF;AAED,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAC9C,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAE9C,mBAAW,QAAQ;AAEnB,cAAMA,qBAAe,YAAY,kBAAkB,OAAO,WAAW;AACnE,gBAAM,eAAe,OAAO,OAAO;AAAA,QACzC,CAAK;AAED,cAAMA,MAAAA,eAAe,UAAW;AAEhC,cAAM,EAAE,WAAW,IAAK,IAAG,MAAMA,MAAAA,eAAe,gBAAiB;AACjE,cAAM,EAAE,WAAW,IAAK,IAAG,MAAMA,MAAAA,eAAe,gBAAiB;AACjE,qBAAa,QAAQ;AACrB,qBAAa,QAAQ;AAAA,MACtB,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,UAAU,MAAM,KAAK,EAAE;AAAA,MAC9B;AAAA,IACH;AAEA,mBAAe,WAAW;;AACxB,UAAI;AACF,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,mBAAW,QAAQ;AACnB,cAAMA,MAAAA,eAAe,SAAU;AAC/B,cAAMA,MAAAA,eAAe,mBAAoB;AAAA,MAC1C,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,wBAAwB,MAAM,KAAK,EAAE;AAAA,MAC5C;AAAA,IACH;AAEA,mBAAe,eAAe,SAAS;AACrC,UAAI;AACF,YAAI,CAAC,SAAS;AACZ,gBAAM,IAAI,MAAM,+BAA+B;AAAA,QAChD;AACD,cAAM,WAAW,MAAME,gBAAgB,OAAO,EAAE,KAAK,SAAS,QAAQ,QAAQ,OAAO,KAAI,CAAE;AAC3F,cAAM,qCAAqC;AAAA,MAC5C,SAAQ,GAAG;AACV,cAAM,mDAAmD;AAAA,MAC7D,UAAY;AACR,cAAM,aAAa;AACnB,cAAM,SAAU;AAAA,MACjB;AAAA,IACH;AAEA,mBAAe,aAAa,OAAO;AACjC,YAAM,YAAY,WAAW,MAAM,OAAO,KAAK;AAC/C,YAAMF,qBAAe,aAAa,EAAE,WAAW;AAAA,IACjD;AAEA,mBAAe,cAAc;AAC3B,YAAMA,MAAAA,eAAe,YAAa;AAAA,IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ButtonCheck.vue.cjs","sources":["../../../../../../../src/modules/events/components/elements/ButtonCheck.vue"],"sourcesContent":["<template>\n <div>\n <Button @click=\"startScan\" class=\"bg-main button-small radius-extra button\">\n Check Tickets\n </Button>\n <div v-if=\"isScanning\" class=\"barcode-scanner-modal\">\n <div class=\"square\"></div>\n <div class=\"zoom-ratio-wrapper\" v-if=\"minZoomRatio !== undefined && maxZoomRatio !== undefined\">\n <input type=\"range\" :min=\"minZoomRatio\" :max=\"maxZoomRatio\" @input=\"setZoomRatio\" />\n </div>\n <Button @click=\"stopScan\" class=\"stop-scan-button\">Stop Scan</Button>\n <Button v-if=\"isTorchAvailable\" @click=\"toggleTorch\" class=\"torch-button\">\n Toggle Torch\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { BarcodeScanner } from '@capacitor-mlkit/barcode-scanning'\nimport Button from '@pf/src/components/Button/Button.vue'\nimport * as tickets from '@pf/src/modules/events/store/tickets'\n\nconst emits = defineEmits(['qrcodecheck'])\nconst error = ref('')\nconst isScanning = ref(false)\nconst isTorchAvailable = ref(false)\nconst minZoomRatio = ref(undefined)\nconst maxZoomRatio = ref(undefined)\n\nonMounted(async () => {\n const { supported } = await BarcodeScanner.isSupported()\n if (!supported) {\n error.value = 'Barcode scanning is not supported on this device'\n }\n const { available } = await BarcodeScanner.isTorchAvailable()\n isTorchAvailable.value = available\n})\n\nonUnmounted(async () => {\n await stopScan()\n})\n\nasync function startScan() {\n try {\n const { camera } = await BarcodeScanner.checkPermissions()\n\n if (camera !== 'granted') {\n const { camera: newStatus } = await BarcodeScanner.requestPermissions()\n if (newStatus !== 'granted') {\n throw new Error('Camera permission is required to scan barcodes')\n }\n }\n\n document.querySelector('body')?.classList.add('barcode-scanner-active')\n document.querySelector('html')?.classList.add('barcode-scanner-active-html')\n BarcodeScanner.hideBackground();\n\n isScanning.value = true\n\n await BarcodeScanner.addListener('barcodeScanned', async (result) => {\n await processBarcode(result.barcode)\n })\n\n await BarcodeScanner.startScan()\n\n const { zoomRatio: min } = await BarcodeScanner.getMinZoomRatio()\n const { zoomRatio: max } = await BarcodeScanner.getMaxZoomRatio()\n minZoomRatio.value = min\n maxZoomRatio.value = max\n } catch (e) {\n error.value = e.message\n alert(`Error: ${error.value}`)\n }\n}\n\nasync function stopScan() {\n try {\n document.querySelector('body')?.classList.remove('barcode-scanner-active')\n document.querySelector('html')?.classList.remove('barcode-scanner-active-html')\n isScanning.value = false\n await BarcodeScanner.stopScan()\n await BarcodeScanner.removeAllListeners()\n } catch (e) {\n error.value = e.message\n alert(`Error stopping scan: ${error.value}`)\n }\n}\n\nasync function processBarcode(barcode) {\n try {\n if (!barcode) {\n throw new Error('Troubles with barcode reading')\n }\n console.log('barcode is', barcode)\n const response = await tickets.actions.update({ _id: barcode, status: 'used', check: true })\n alert(\"Ticket checked. And it's all right!\")\n } catch (e) {\n console.log(e)\n alert(`Ticket is not found, already used or deactivated!`)\n } finally {\n emits('qrcodecheck')\n await stopScan()\n }\n}\n\nasync function setZoomRatio(event) {\n const zoomRatio = parseFloat(event.target.value)\n await BarcodeScanner.setZoomRatio({ zoomRatio })\n}\n\nasync function toggleTorch() {\n await BarcodeScanner.toggleTorch()\n}\n</script>\n\n<style>\n.barcode-scanner-modal {\n visibility: visible;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.square {\n width: 200px;\n height: 200px;\n border: 2px solid white;\n border-radius: 10px;\n}\n\n.zoom-ratio-wrapper {\n width: 80%;\n margin-top: 20px;\n}\n\n.stop-scan-button,\n.torch-button {\n margin-top: 20px;\n}\n\n/* Existing styles */\n/*body.barcode-scanner-active {\n visibility: hidden !important;\n background: transparent !important;\n --background: transparent;\n --ion-background-color: transparent;\n opacity: 0; \n}*/\n\n/*html.barcode-scanner-active-html {\n background: transparent !important;\n}*/\n</style>\n"],"names":["ref","onMounted","BarcodeScanner","onUnmounted","tickets.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,UAAM,QAAQ;AACd,UAAM,QAAQA,IAAG,IAAC,EAAE;AACpB,UAAM,aAAaA,IAAG,IAAC,KAAK;AAC5B,UAAM,mBAAmBA,IAAG,IAAC,KAAK;AAClC,UAAM,eAAeA,IAAG,IAAC,MAAS;AAClC,UAAM,eAAeA,IAAG,IAAC,MAAS;AAElCC,QAAAA,UAAU,YAAY;AACpB,YAAM,EAAE,UAAS,IAAK,MAAMC,MAAAA,eAAe,YAAa;AACxD,UAAI,CAAC,WAAW;AACd,cAAM,QAAQ;AAAA,MACf;AACD,YAAM,EAAE,UAAS,IAAK,MAAMA,MAAAA,eAAe,iBAAkB;AAC7D,uBAAiB,QAAQ;AAAA,IAC3B,CAAC;AAEDC,QAAAA,YAAY,YAAY;AACtB,YAAM,SAAU;AAAA,IAClB,CAAC;AAED,mBAAe,YAAY;;AACzB,UAAI;AACF,cAAM,EAAE,OAAM,IAAK,MAAMD,MAAAA,eAAe,iBAAkB;AAE1D,YAAI,WAAW,WAAW;AACxB,gBAAM,EAAE,QAAQ,UAAW,IAAG,MAAMA,MAAAA,eAAe,mBAAoB;AACvE,cAAI,cAAc,WAAW;AAC3B,kBAAM,IAAI,MAAM,gDAAgD;AAAA,UACjE;AAAA,QACF;AAED,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAC9C,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAC9CA,cAAc,eAAC,eAAc;AAE7B,mBAAW,QAAQ;AAEnB,cAAMA,qBAAe,YAAY,kBAAkB,OAAO,WAAW;AACnE,gBAAM,eAAe,OAAO,OAAO;AAAA,QACzC,CAAK;AAED,cAAMA,MAAAA,eAAe,UAAW;AAEhC,cAAM,EAAE,WAAW,IAAK,IAAG,MAAMA,MAAAA,eAAe,gBAAiB;AACjE,cAAM,EAAE,WAAW,IAAK,IAAG,MAAMA,MAAAA,eAAe,gBAAiB;AACjE,qBAAa,QAAQ;AACrB,qBAAa,QAAQ;AAAA,MACtB,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,UAAU,MAAM,KAAK,EAAE;AAAA,MAC9B;AAAA,IACH;AAEA,mBAAe,WAAW;;AACxB,UAAI;AACF,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,mBAAW,QAAQ;AACnB,cAAMA,MAAAA,eAAe,SAAU;AAC/B,cAAMA,MAAAA,eAAe,mBAAoB;AAAA,MAC1C,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,wBAAwB,MAAM,KAAK,EAAE;AAAA,MAC5C;AAAA,IACH;AAEA,mBAAe,eAAe,SAAS;AACrC,UAAI;AACF,YAAI,CAAC,SAAS;AACZ,gBAAM,IAAI,MAAM,+BAA+B;AAAA,QAChD;AACD,gBAAQ,IAAI,cAAc,OAAO;AACjC,cAAM,WAAW,MAAME,gBAAgB,OAAO,EAAE,KAAK,SAAS,QAAQ,QAAQ,OAAO,KAAI,CAAE;AAC3F,cAAM,qCAAqC;AAAA,MAC5C,SAAQ,GAAG;AACV,gBAAQ,IAAI,CAAC;AACb,cAAM,mDAAmD;AAAA,MAC7D,UAAY;AACR,cAAM,aAAa;AACnB,cAAM,SAAU;AAAA,MACjB;AAAA,IACH;AAEA,mBAAe,aAAa,OAAO;AACjC,YAAM,YAAY,WAAW,MAAM,OAAO,KAAK;AAC/C,YAAMF,qBAAe,aAAa,EAAE,WAAW;AAAA,IACjD;AAEA,mBAAe,cAAc;AAC3B,YAAMA,MAAAA,eAAe,YAAa;AAAA,IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -46,6 +46,7 @@ const _sfc_main = {
46
46
  }
47
47
  (_a = document.querySelector("body")) == null ? void 0 : _a.classList.add("barcode-scanner-active");
48
48
  (_b = document.querySelector("html")) == null ? void 0 : _b.classList.add("barcode-scanner-active-html");
49
+ BarcodeScanner.hideBackground();
49
50
  isScanning.value = true;
50
51
  await BarcodeScanner.addListener("barcodeScanned", async (result) => {
51
52
  await processBarcode(result.barcode);
@@ -78,9 +79,11 @@ const _sfc_main = {
78
79
  if (!barcode) {
79
80
  throw new Error("Troubles with barcode reading");
80
81
  }
82
+ console.log("barcode is", barcode);
81
83
  const response = await actions.update({ _id: barcode, status: "used", check: true });
82
84
  alert("Ticket checked. And it's all right!");
83
85
  } catch (e) {
86
+ console.log(e);
84
87
  alert(`Ticket is not found, already used or deactivated!`);
85
88
  } finally {
86
89
  emits("qrcodecheck");
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonCheck.vue.js","sources":["../../../../../../../src/modules/events/components/elements/ButtonCheck.vue"],"sourcesContent":["<template>\n <div>\n <Button @click=\"startScan\" class=\"bg-main button-small radius-extra button\">\n Check Tickets\n </Button>\n <div v-if=\"isScanning\" class=\"barcode-scanner-modal\">\n <div class=\"square\"></div>\n <div class=\"zoom-ratio-wrapper\" v-if=\"minZoomRatio !== undefined && maxZoomRatio !== undefined\">\n <input type=\"range\" :min=\"minZoomRatio\" :max=\"maxZoomRatio\" @input=\"setZoomRatio\" />\n </div>\n <Button @click=\"stopScan\" class=\"stop-scan-button\">Stop Scan</Button>\n <Button v-if=\"isTorchAvailable\" @click=\"toggleTorch\" class=\"torch-button\">\n Toggle Torch\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { BarcodeScanner } from '@capacitor-mlkit/barcode-scanning'\nimport Button from '@pf/src/components/Button/Button.vue'\nimport * as tickets from '@pf/src/modules/events/store/tickets'\n\nconst emits = defineEmits(['qrcodecheck'])\nconst error = ref('')\nconst isScanning = ref(false)\nconst isTorchAvailable = ref(false)\nconst minZoomRatio = ref(undefined)\nconst maxZoomRatio = ref(undefined)\n\nonMounted(async () => {\n const { supported } = await BarcodeScanner.isSupported()\n if (!supported) {\n error.value = 'Barcode scanning is not supported on this device'\n }\n const { available } = await BarcodeScanner.isTorchAvailable()\n isTorchAvailable.value = available\n})\n\nonUnmounted(async () => {\n await stopScan()\n})\n\nasync function startScan() {\n try {\n const { camera } = await BarcodeScanner.checkPermissions()\n\n if (camera !== 'granted') {\n const { camera: newStatus } = await BarcodeScanner.requestPermissions()\n if (newStatus !== 'granted') {\n throw new Error('Camera permission is required to scan barcodes')\n }\n }\n\n document.querySelector('body')?.classList.add('barcode-scanner-active')\n document.querySelector('html')?.classList.add('barcode-scanner-active-html')\n\n isScanning.value = true\n\n await BarcodeScanner.addListener('barcodeScanned', async (result) => {\n await processBarcode(result.barcode)\n })\n\n await BarcodeScanner.startScan()\n\n const { zoomRatio: min } = await BarcodeScanner.getMinZoomRatio()\n const { zoomRatio: max } = await BarcodeScanner.getMaxZoomRatio()\n minZoomRatio.value = min\n maxZoomRatio.value = max\n } catch (e) {\n error.value = e.message\n alert(`Error: ${error.value}`)\n }\n}\n\nasync function stopScan() {\n try {\n document.querySelector('body')?.classList.remove('barcode-scanner-active')\n document.querySelector('html')?.classList.remove('barcode-scanner-active-html')\n isScanning.value = false\n await BarcodeScanner.stopScan()\n await BarcodeScanner.removeAllListeners()\n } catch (e) {\n error.value = e.message\n alert(`Error stopping scan: ${error.value}`)\n }\n}\n\nasync function processBarcode(barcode) {\n try {\n if (!barcode) {\n throw new Error('Troubles with barcode reading')\n }\n const response = await tickets.actions.update({ _id: barcode, status: 'used', check: true })\n alert(\"Ticket checked. And it's all right!\")\n } catch (e) {\n alert(`Ticket is not found, already used or deactivated!`)\n } finally {\n emits('qrcodecheck')\n await stopScan()\n }\n}\n\nasync function setZoomRatio(event) {\n const zoomRatio = parseFloat(event.target.value)\n await BarcodeScanner.setZoomRatio({ zoomRatio })\n}\n\nasync function toggleTorch() {\n await BarcodeScanner.toggleTorch()\n}\n</script>\n\n<style>\n.barcode-scanner-modal {\n visibility: visible;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.square {\n width: 200px;\n height: 200px;\n border: 2px solid white;\n border-radius: 10px;\n}\n\n.zoom-ratio-wrapper {\n width: 80%;\n margin-top: 20px;\n}\n\n.stop-scan-button,\n.torch-button {\n margin-top: 20px;\n}\n\n/* Existing styles */\nbody.barcode-scanner-active {\n visibility: hidden;\n --background: transparent;\n --ion-background-color: transparent;\n}\n\nhtml.barcode-scanner-active-html {\n background: transparent !important;\n}\n\n@media (prefers-color-scheme: dark) {\n .barcode-scanner-modal {\n --background: transparent;\n --ion-background-color: transparent;\n }\n}\n</style>\n"],"names":["tickets.actions"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,UAAM,QAAQ;AACd,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,mBAAmB,IAAI,KAAK;AAClC,UAAM,eAAe,IAAI,MAAS;AAClC,UAAM,eAAe,IAAI,MAAS;AAElC,cAAU,YAAY;AACpB,YAAM,EAAE,UAAS,IAAK,MAAM,eAAe,YAAa;AACxD,UAAI,CAAC,WAAW;AACd,cAAM,QAAQ;AAAA,MACf;AACD,YAAM,EAAE,UAAS,IAAK,MAAM,eAAe,iBAAkB;AAC7D,uBAAiB,QAAQ;AAAA,IAC3B,CAAC;AAED,gBAAY,YAAY;AACtB,YAAM,SAAU;AAAA,IAClB,CAAC;AAED,mBAAe,YAAY;;AACzB,UAAI;AACF,cAAM,EAAE,OAAM,IAAK,MAAM,eAAe,iBAAkB;AAE1D,YAAI,WAAW,WAAW;AACxB,gBAAM,EAAE,QAAQ,UAAW,IAAG,MAAM,eAAe,mBAAoB;AACvE,cAAI,cAAc,WAAW;AAC3B,kBAAM,IAAI,MAAM,gDAAgD;AAAA,UACjE;AAAA,QACF;AAED,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAC9C,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAE9C,mBAAW,QAAQ;AAEnB,cAAM,eAAe,YAAY,kBAAkB,OAAO,WAAW;AACnE,gBAAM,eAAe,OAAO,OAAO;AAAA,QACzC,CAAK;AAED,cAAM,eAAe,UAAW;AAEhC,cAAM,EAAE,WAAW,IAAK,IAAG,MAAM,eAAe,gBAAiB;AACjE,cAAM,EAAE,WAAW,IAAK,IAAG,MAAM,eAAe,gBAAiB;AACjE,qBAAa,QAAQ;AACrB,qBAAa,QAAQ;AAAA,MACtB,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,UAAU,MAAM,KAAK,EAAE;AAAA,MAC9B;AAAA,IACH;AAEA,mBAAe,WAAW;;AACxB,UAAI;AACF,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,mBAAW,QAAQ;AACnB,cAAM,eAAe,SAAU;AAC/B,cAAM,eAAe,mBAAoB;AAAA,MAC1C,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,wBAAwB,MAAM,KAAK,EAAE;AAAA,MAC5C;AAAA,IACH;AAEA,mBAAe,eAAe,SAAS;AACrC,UAAI;AACF,YAAI,CAAC,SAAS;AACZ,gBAAM,IAAI,MAAM,+BAA+B;AAAA,QAChD;AACD,cAAM,WAAW,MAAMA,QAAgB,OAAO,EAAE,KAAK,SAAS,QAAQ,QAAQ,OAAO,KAAI,CAAE;AAC3F,cAAM,qCAAqC;AAAA,MAC5C,SAAQ,GAAG;AACV,cAAM,mDAAmD;AAAA,MAC7D,UAAY;AACR,cAAM,aAAa;AACnB,cAAM,SAAU;AAAA,MACjB;AAAA,IACH;AAEA,mBAAe,aAAa,OAAO;AACjC,YAAM,YAAY,WAAW,MAAM,OAAO,KAAK;AAC/C,YAAM,eAAe,aAAa,EAAE,WAAW;AAAA,IACjD;AAEA,mBAAe,cAAc;AAC3B,YAAM,eAAe,YAAa;AAAA,IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ButtonCheck.vue.js","sources":["../../../../../../../src/modules/events/components/elements/ButtonCheck.vue"],"sourcesContent":["<template>\n <div>\n <Button @click=\"startScan\" class=\"bg-main button-small radius-extra button\">\n Check Tickets\n </Button>\n <div v-if=\"isScanning\" class=\"barcode-scanner-modal\">\n <div class=\"square\"></div>\n <div class=\"zoom-ratio-wrapper\" v-if=\"minZoomRatio !== undefined && maxZoomRatio !== undefined\">\n <input type=\"range\" :min=\"minZoomRatio\" :max=\"maxZoomRatio\" @input=\"setZoomRatio\" />\n </div>\n <Button @click=\"stopScan\" class=\"stop-scan-button\">Stop Scan</Button>\n <Button v-if=\"isTorchAvailable\" @click=\"toggleTorch\" class=\"torch-button\">\n Toggle Torch\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { BarcodeScanner } from '@capacitor-mlkit/barcode-scanning'\nimport Button from '@pf/src/components/Button/Button.vue'\nimport * as tickets from '@pf/src/modules/events/store/tickets'\n\nconst emits = defineEmits(['qrcodecheck'])\nconst error = ref('')\nconst isScanning = ref(false)\nconst isTorchAvailable = ref(false)\nconst minZoomRatio = ref(undefined)\nconst maxZoomRatio = ref(undefined)\n\nonMounted(async () => {\n const { supported } = await BarcodeScanner.isSupported()\n if (!supported) {\n error.value = 'Barcode scanning is not supported on this device'\n }\n const { available } = await BarcodeScanner.isTorchAvailable()\n isTorchAvailable.value = available\n})\n\nonUnmounted(async () => {\n await stopScan()\n})\n\nasync function startScan() {\n try {\n const { camera } = await BarcodeScanner.checkPermissions()\n\n if (camera !== 'granted') {\n const { camera: newStatus } = await BarcodeScanner.requestPermissions()\n if (newStatus !== 'granted') {\n throw new Error('Camera permission is required to scan barcodes')\n }\n }\n\n document.querySelector('body')?.classList.add('barcode-scanner-active')\n document.querySelector('html')?.classList.add('barcode-scanner-active-html')\n BarcodeScanner.hideBackground();\n\n isScanning.value = true\n\n await BarcodeScanner.addListener('barcodeScanned', async (result) => {\n await processBarcode(result.barcode)\n })\n\n await BarcodeScanner.startScan()\n\n const { zoomRatio: min } = await BarcodeScanner.getMinZoomRatio()\n const { zoomRatio: max } = await BarcodeScanner.getMaxZoomRatio()\n minZoomRatio.value = min\n maxZoomRatio.value = max\n } catch (e) {\n error.value = e.message\n alert(`Error: ${error.value}`)\n }\n}\n\nasync function stopScan() {\n try {\n document.querySelector('body')?.classList.remove('barcode-scanner-active')\n document.querySelector('html')?.classList.remove('barcode-scanner-active-html')\n isScanning.value = false\n await BarcodeScanner.stopScan()\n await BarcodeScanner.removeAllListeners()\n } catch (e) {\n error.value = e.message\n alert(`Error stopping scan: ${error.value}`)\n }\n}\n\nasync function processBarcode(barcode) {\n try {\n if (!barcode) {\n throw new Error('Troubles with barcode reading')\n }\n console.log('barcode is', barcode)\n const response = await tickets.actions.update({ _id: barcode, status: 'used', check: true })\n alert(\"Ticket checked. And it's all right!\")\n } catch (e) {\n console.log(e)\n alert(`Ticket is not found, already used or deactivated!`)\n } finally {\n emits('qrcodecheck')\n await stopScan()\n }\n}\n\nasync function setZoomRatio(event) {\n const zoomRatio = parseFloat(event.target.value)\n await BarcodeScanner.setZoomRatio({ zoomRatio })\n}\n\nasync function toggleTorch() {\n await BarcodeScanner.toggleTorch()\n}\n</script>\n\n<style>\n.barcode-scanner-modal {\n visibility: visible;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.square {\n width: 200px;\n height: 200px;\n border: 2px solid white;\n border-radius: 10px;\n}\n\n.zoom-ratio-wrapper {\n width: 80%;\n margin-top: 20px;\n}\n\n.stop-scan-button,\n.torch-button {\n margin-top: 20px;\n}\n\n/* Existing styles */\n/*body.barcode-scanner-active {\n visibility: hidden !important;\n background: transparent !important;\n --background: transparent;\n --ion-background-color: transparent;\n opacity: 0; \n}*/\n\n/*html.barcode-scanner-active-html {\n background: transparent !important;\n}*/\n</style>\n"],"names":["tickets.actions"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,UAAM,QAAQ;AACd,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,mBAAmB,IAAI,KAAK;AAClC,UAAM,eAAe,IAAI,MAAS;AAClC,UAAM,eAAe,IAAI,MAAS;AAElC,cAAU,YAAY;AACpB,YAAM,EAAE,UAAS,IAAK,MAAM,eAAe,YAAa;AACxD,UAAI,CAAC,WAAW;AACd,cAAM,QAAQ;AAAA,MACf;AACD,YAAM,EAAE,UAAS,IAAK,MAAM,eAAe,iBAAkB;AAC7D,uBAAiB,QAAQ;AAAA,IAC3B,CAAC;AAED,gBAAY,YAAY;AACtB,YAAM,SAAU;AAAA,IAClB,CAAC;AAED,mBAAe,YAAY;;AACzB,UAAI;AACF,cAAM,EAAE,OAAM,IAAK,MAAM,eAAe,iBAAkB;AAE1D,YAAI,WAAW,WAAW;AACxB,gBAAM,EAAE,QAAQ,UAAW,IAAG,MAAM,eAAe,mBAAoB;AACvE,cAAI,cAAc,WAAW;AAC3B,kBAAM,IAAI,MAAM,gDAAgD;AAAA,UACjE;AAAA,QACF;AAED,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAC9C,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,IAAI;AAC9C,uBAAe,eAAc;AAE7B,mBAAW,QAAQ;AAEnB,cAAM,eAAe,YAAY,kBAAkB,OAAO,WAAW;AACnE,gBAAM,eAAe,OAAO,OAAO;AAAA,QACzC,CAAK;AAED,cAAM,eAAe,UAAW;AAEhC,cAAM,EAAE,WAAW,IAAK,IAAG,MAAM,eAAe,gBAAiB;AACjE,cAAM,EAAE,WAAW,IAAK,IAAG,MAAM,eAAe,gBAAiB;AACjE,qBAAa,QAAQ;AACrB,qBAAa,QAAQ;AAAA,MACtB,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,UAAU,MAAM,KAAK,EAAE;AAAA,MAC9B;AAAA,IACH;AAEA,mBAAe,WAAW;;AACxB,UAAI;AACF,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,uBAAS,cAAc,MAAM,MAA7B,mBAAgC,UAAU,OAAO;AACjD,mBAAW,QAAQ;AACnB,cAAM,eAAe,SAAU;AAC/B,cAAM,eAAe,mBAAoB;AAAA,MAC1C,SAAQ,GAAG;AACV,cAAM,QAAQ,EAAE;AAChB,cAAM,wBAAwB,MAAM,KAAK,EAAE;AAAA,MAC5C;AAAA,IACH;AAEA,mBAAe,eAAe,SAAS;AACrC,UAAI;AACF,YAAI,CAAC,SAAS;AACZ,gBAAM,IAAI,MAAM,+BAA+B;AAAA,QAChD;AACD,gBAAQ,IAAI,cAAc,OAAO;AACjC,cAAM,WAAW,MAAMA,QAAgB,OAAO,EAAE,KAAK,SAAS,QAAQ,QAAQ,OAAO,KAAI,CAAE;AAC3F,cAAM,qCAAqC;AAAA,MAC5C,SAAQ,GAAG;AACV,gBAAQ,IAAI,CAAC;AACb,cAAM,mDAAmD;AAAA,MAC7D,UAAY;AACR,cAAM,aAAa;AACnB,cAAM,SAAU;AAAA,MACjB;AAAA,IACH;AAEA,mBAAe,aAAa,OAAO;AACjC,YAAM,YAAY,WAAW,MAAM,OAAO,KAAK;AAC/C,YAAM,eAAe,aAAa,EAAE,WAAW;AAAA,IACjD;AAEA,mBAAe,cAAc;AAC3B,YAAM,eAAe,YAAa;AAAA,IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}