@jaak.ai/stamps 2.5.1-dev.1 → 2.5.2

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.
@@ -986,6 +986,7 @@ export class JaakStamps {
986
986
  this.detectFrame();
987
987
  }
988
988
  catch (err) {
989
+ console.error('[jaak-stamps] Error al preparar captura:', err);
989
990
  this.updateStatus('Error al iniciar', 'No se pudo preparar la captura', 'error');
990
991
  this.stateManager.updateCaptureState({ isLoading: false });
991
992
  }
@@ -1235,7 +1236,7 @@ export class JaakStamps {
1235
1236
  isCapturing: false
1236
1237
  };
1237
1238
  const cameraInfo = this.cameraInfoWithAutofocus;
1238
- return (h("div", { key: '9f2c1f21e7c18a77f519444bad87d29b2dfd2e6c', class: "detector-container" }, !this.licenseValid && this.licenseError && (h("div", { key: 'd2965c6d859e8dd36f6a883288f086b9a39f236d', class: "license-error-container" }, h("div", { key: '0db457c58ba390892ecc1046f410f35781d534fb', class: "license-error-card" }, h("svg", { key: '9d5bb7a635157c8515323e0506f5f5add50e07dc', class: "license-error-icon", width: "64", height: "64", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '938b6fd1b4c3f574c47d1678a87db8db7053945c', d: "M12 22C12 22 20 18 20 12V5L12 2L4 5V12C4 18 12 22 12 22Z", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '8e5eb1966fa88e7f0a6f799cd8ce96fc86f0c291', d: "M12 8V12", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("circle", { key: 'd4f798caf065b269d9d246cd099499f9a9e86008', cx: "12", cy: "16", r: "0.5", fill: "currentColor", stroke: "currentColor", "stroke-width": "1" })), h("h2", { key: '109fcd76d9b0c27f33f037ed1c16031a3e9a7966', class: "license-error-title" }, "Licencia Requerida"), h("p", { key: 'c4d582a8e950498c80980faf25d50d3dea71ee8e', class: "license-error-message" }, this.licenseError), h("p", { key: '6b15b08047124e4cec49f8b6b02d5938c2071c9b', class: "license-error-help" }, "Contacte a soporte: ", h("a", { key: '0a6fd5acce763c068fe2ae929e16a3b90223a4b5', href: "mailto:support@jaak.ai" }, "support@jaak.ai")), h("div", { key: 'bb7a438b6d8f506334086ee511c7deaa37ab59aa', class: "license-error-footer" }, "JAAK Stamps")))), this.licenseValid && (h("div", { key: '1fd31d4721feb0c4cd8ff1621646d2b20211b22f', class: "video-container" }, h("video", { key: 'ec228d91b0e2a8e18a0acb898198983685c97572', ref: el => this.videoRef = el, autoplay: true, muted: true, playsinline: true, class: this.shouldMirrorVideo ? 'mirror' : '', style: { display: captureState.isVideoActive ? 'block' : 'none' } }), h("div", { key: 'e1711ea66777df0e482d93a82b82bff63c9fe9f0', ref: el => this.detectionContainer = el, class: `detection-overlay ${this.shouldMirrorVideo ? 'mirror' : ''}` }, this.debug && this.detectionBoxes.map((box, index) => (h("div", { key: index, class: "detection-box", style: {
1239
+ return (h("div", { key: '688ceafa324ab0d67de00440e6381710f3785f5a', class: "detector-container" }, !this.licenseValid && this.licenseError && (h("div", { key: 'f4eb75c9da36ce781535c477be56b16d7270dcf6', class: "license-error-container" }, h("div", { key: '712e3b2e048f22d62890ad8ca6db458a8400f87b', class: "license-error-card" }, h("svg", { key: 'e1e86cc112c183729b537e8b94b9f9409c4f7969', class: "license-error-icon", width: "64", height: "64", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '4f8376df61e8ad8105d84b767c663c24fcfb47af', d: "M12 22C12 22 20 18 20 12V5L12 2L4 5V12C4 18 12 22 12 22Z", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '45ca99e068518901a5d332cfdcb25b774b8e4159', d: "M12 8V12", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("circle", { key: '5f9561c5b3b1ca6bf8a9c0daeb92594f25e144ba', cx: "12", cy: "16", r: "0.5", fill: "currentColor", stroke: "currentColor", "stroke-width": "1" })), h("h2", { key: 'da86ee4ac849d76c4bbe19f135e5f8e0793a22f6', class: "license-error-title" }, "Licencia Requerida"), h("p", { key: 'ca3bc193e7145e2b68c82b56d92f6a07a4986469', class: "license-error-message" }, this.licenseError), h("p", { key: 'd802523e06804557a8df11c78de70317056db746', class: "license-error-help" }, "Contacte a soporte: ", h("a", { key: '9ace3ca5c198b95899a3128af4da3a46a7038421', href: "mailto:support@jaak.ai" }, "support@jaak.ai")), h("div", { key: '07f7de4b3c21a0c30f39126e8afd73da323c42e5', class: "license-error-footer" }, "JAAK Stamps")))), this.licenseValid && (h("div", { key: '2ef7e0747e644563b358667a328b0859e969ced2', class: "video-container" }, h("video", { key: 'fd4c30c9faa0029b145453a54dd1e4e72c99decc', ref: el => this.videoRef = el, autoplay: true, muted: true, playsinline: true, class: this.shouldMirrorVideo ? 'mirror' : '', style: { display: captureState.isVideoActive ? 'block' : 'none' } }), h("div", { key: '08ae5cc6d6a643a33251cd03bb16e2e298ff8ea2', ref: el => this.detectionContainer = el, class: `detection-overlay ${this.shouldMirrorVideo ? 'mirror' : ''}` }, this.debug && this.detectionBoxes.map((box, index) => (h("div", { key: index, class: "detection-box", style: {
1239
1240
  position: 'absolute',
1240
1241
  left: `${box.x}px`,
1241
1242
  top: `${box.y}px`,
@@ -1244,9 +1245,9 @@ export class JaakStamps {
1244
1245
  border: '2px solid #32406C',
1245
1246
  pointerEvents: 'none',
1246
1247
  boxSizing: 'border-box'
1247
- } })))), this.isMaskReady && (h("div", { key: '00e7b7a30d95f72fff38d37dbad7715262f4bcbc', class: "overlay-mask" }, h("div", { key: '7f2cefac16306c4db77145ff4a2e0c36bbf71b41', class: "card-outline" }, h("div", { key: '6a160a7be2fa6b39a01af7e7ac26612439726a0d', class: "side side-top" }), h("div", { key: '33317ed5d33142557198e315796fe472915988e5', class: "side side-right" }), h("div", { key: '15428b208d96c70da90540ade83ea736829b6cfc', class: "side side-bottom" }), h("div", { key: '615e5c6cd8861921a314372aa522ce678b035297', class: "side side-left" })), !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: '786fdc87ffc5977ccab04e201b68cca6624a3a75', class: `guide-text ${this.showPerformanceMessage ? 'performance-warning-text' : ''}` }, this.getGuideText(captureState.step))), captureState.step === 'back' && !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: '87a0b3460776e267a6288800b4c27d790f874555', class: "back-capture-section" }, h("div", { key: 'f75551d152bc5f1b41d56daaa44c360d42b3c6d7', class: "back-capture-buttons" }, (!this.useDocumentDetector || this.performanceDegradedMode || this.showManualCaptureButton) && (h("button", { key: '798801b00d7be739db78267224193a64813c92be', class: "capture-button primary-button", onClick: () => this.takeManualScreenshot(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'capture-back' && (h("span", { key: '14ecf72110b1583bd8c4e75f669cd8c71c01d074', class: "button-spinner" })), "Capturar Reverso")), h("button", { key: 'ed12d7774f8399244913c468e118a6a9d9a6888b', class: "skip-button", onClick: () => this.skipBackCapture(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'skip-back' && (h("span", { key: 'e75d2a3da9167050fd315b27871eff612f6954ff', class: "button-spinner" })), this.enableBackDocumentTimer && this.backDocumentTimerRemaining > 0
1248
+ } })))), this.isMaskReady && (h("div", { key: '8aed3362a1cba7d4f013221d0f03b74dcf481c9f', class: "overlay-mask" }, h("div", { key: 'f0436ced815a8a5bf640d3b475c6b3214af042ec', class: "card-outline" }, h("div", { key: 'e72e65b5824d791fcc129af00d00f0c11a4ef547', class: "side side-top" }), h("div", { key: '0f6a64d0b63d528b71268d5f8a0d7b462441c3b9', class: "side side-right" }), h("div", { key: 'a855aaeb78ed7b493390f04583fca9fd3f70e26e', class: "side side-bottom" }), h("div", { key: '6b1e6ac88329a096cf22c4f28e61db8cd06e9bbc', class: "side side-left" })), !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: 'b3e66d548cb1ab9d602105f72d8e1bcfec54d33e', class: `guide-text ${this.showPerformanceMessage ? 'performance-warning-text' : ''}` }, this.getGuideText(captureState.step))), captureState.step === 'back' && !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: 'b27c8a1c3e4d3639d27a64e931f436ec8b67063b', class: "back-capture-section" }, h("div", { key: 'a16554331fc9eee781839b959a4c3b8835896b93', class: "back-capture-buttons" }, (!this.useDocumentDetector || this.performanceDegradedMode || this.showManualCaptureButton) && (h("button", { key: '32d16a0f2d01dc62566af7996d222f3427002af5', class: "capture-button primary-button", onClick: () => this.takeManualScreenshot(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'capture-back' && (h("span", { key: 'c58a90f250a0106774383fd7fdf64f3c2bddc31b', class: "button-spinner" })), "Capturar Reverso")), h("button", { key: '4e71900b8792f7ea4f46964b1effa59e8c7c4a1e', class: "skip-button", onClick: () => this.skipBackCapture(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'skip-back' && (h("span", { key: '3fc8bfaf8434457c004fa3176fc8d8d51f12ca2d', class: "button-spinner" })), this.enableBackDocumentTimer && this.backDocumentTimerRemaining > 0
1248
1249
  ? `Saltar reverso (${this.backDocumentTimerRemaining}s)`
1249
- : 'Saltar reverso')))), captureState.isVideoActive && (h("div", { key: '019fdafddac5d9ad093f7d0adaf0f9dda29c8944', class: "camera-controls" }, h("button", { key: 'dbdeac63de4cf5f09f12b1757e87fc5c5c21fc29', class: `camera-selector-button ${this.isSwitchingCamera ? 'loading' : ''}`, onClick: () => this.toggleCameraSelector(), type: "button", title: "Seleccionar c\u00E1mara", disabled: this.isSwitchingCamera }, this.isSwitchingCamera ? (h("div", { class: "button-spinner" })) : ('Cámaras')))), this.showCameraSelector && cameraInfo.availableCameras.length > 0 && (h("div", { key: 'c62b8914fba9dec18ddcecfeccb1cbe0ec59fae2', class: "camera-selector-dropdown" }, h("div", { key: '9a1861c72c2ae75cced3a13b4e3cce28f2f2eff3', class: "camera-selector-header" }, h("span", { key: 'f4d20f3efe85bf727d3cc7bb380b9fa53bfd00e8' }, "Seleccionar C\u00E1mara"), h("button", { key: '2cae8c595fff51108c9a17786350cc42a129bb88', class: "close-selector", onClick: () => this.toggleCameraSelector(), type: "button" }, "\u00D7")), h("div", { key: '643dbb27c6f52372819b9d2daf4b5f2ed67b5dc3', class: "camera-list" }, cameraInfo.availableCameras.map((camera) => (h("button", { key: camera.id, class: `camera-option ${cameraInfo.selectedCameraId === camera.id ? 'selected' : ''}`, onClick: () => this.handleCameraSwitch(camera.id), type: "button" }, h("span", { class: "camera-label" }, camera.label || `Cámara ${cameraInfo.availableCameras.indexOf(camera) + 1}`, camera.hasAutofocus && (h("span", { class: "autofocus-icon", title: "Autofoco disponible" }, "\u29BF"))), cameraInfo.selectedCameraId === camera.id && (h("span", { class: "selected-indicator" }, "\u2713")))))), h("div", { key: '750fe47a0ae0eb1802b3126d8e49e6b8ad536879', class: "device-info" }, h("small", { key: 'a6fa21c1ae530708f830c17774e226c8f06d8b96' }, "Dispositivo: ", cameraInfo.deviceType)))), this.showManualCaptureButton && captureState.step === 'front' && !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: 'a2f91224f2166eb3a8962ba581196d64c7cec2cb', class: "manual-capture-section" }, h("button", { key: '4ce9090a4ed8e0346463ab0a77502a25990a2512', class: "manual-capture-button", onClick: () => this.takeManualScreenshot(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'capture-front' && (h("span", { key: '4e9b12bdc735e86faadcf521083d42080f230183', class: "button-spinner" })), "Capturar Frente"))))), captureState.isCapturing && (h("div", { key: 'd275dd3d3f62cfa943efd2e69d6898981c34f547', class: "capture-animation" })), captureState.showFlipAnimation && (h("div", { key: '038cc4f1b245ff6fad917efb8d558e216de1771b', class: "flip-animation" }, h("div", { key: '61d9097585ed53d9b2798d826aac274b9ea42390', class: "id-card-icon" }), h("div", { key: '90db95f234a9f25aae40d3b2c480e6dc1a580a84', class: "flip-text" }, "\u00A1Voltea tu identificaci\u00F3n!"))), captureState.showSuccessAnimation && (h("div", { key: '586ac9d2e89fdd4bf13610e31c43142c84f4d8c3', class: "success-animation" }, h("div", { key: '8ed80578d1deacd808988d80d9677fb849267b1e', class: "check-icon" }), h("div", { key: '124615b15175f16946c0b3722fcf5a39b9ad4631', class: "success-text" }, "\u00A1Proceso completado!"))), h("div", { key: 'e587fd78705e91f5f3885e514f556288724bbc57', class: `component-status status-${this.currentStatus.type}` }, (this.currentStatus.type === 'loading' || this.currentStatus.type === 'initializing') && (h("div", { key: 'a9a8afa7f3653586778acc95ccecd6927a0350c8', class: "status-spinner" })), h("div", { key: 'db30d1bf772920b111e60ca22ff2fc8150e5d51f', class: "status-content" }, h("div", { key: '3dc8912cc18fc61d2f42173e2605ef9e3b7f906a', class: "status-message" }, this.currentStatus.message), this.currentStatus.description && (h("div", { key: '9025868961082897f19b1c230346a985ea3e0ca2', class: "status-description" }, this.currentStatus.description)))), this.debug && (h("div", { key: '8f18ba02911a3605ed88cb6f93926f9412289e56', class: "performance-monitor" }, h("div", { key: '5531d873b7baed61d17f7b94106a7dd953e079c1', class: "performance-expanded" }, h("div", { key: 'af62b9f0dcfa3f4ecdc1925fe26d36a221d74afd', class: "metrics-row" }, h("div", { key: '230c75005a1c8608d97486063b23897da676f9d6', class: "metric-compact" }, h("span", { key: '48a28744a884124517e5ce55e0e47dd16c207a6f', class: "metric-label" }, "FPS"), h("span", { key: 'e6504c0075f9c730898dc5597a91475e99a5550f', class: `metric-value ${this.performanceData.fps < 15 ? 'warning' : this.performanceData.fps < 10 ? 'danger' : 'good'}` }, this.performanceData.fps)), h("div", { key: 'df732632425cb06d47f14d18f2d87900f2ff293b', class: "metric-compact" }, h("span", { key: 'f32737c081480760714c3224749d67b4dffd6756', class: "metric-label" }, "MEM"), h("span", { key: 'd2d2ff4ed6721bfbc15bf20e41ea452b0a6f6670', class: `metric-value ${this.performanceData.memoryUsage > 100 ? 'warning' : this.performanceData.memoryUsage > 200 ? 'danger' : 'good'}` }, this.performanceData.memoryUsage, "MB"))), h("div", { key: '7d6333691cf92a12c8b2974b68756d2d59df4301', class: "metrics-row" }, h("div", { key: '63f1b39293780e01c6119c14b46febf67ff58a89', class: "metric-compact" }, h("span", { key: '84f4ed08009d3a2414c3a6e097c78b69d8854a3b', class: "metric-label" }, "INF"), h("span", { key: '5512948dcebaadc442fe9161bc4ad05ae0960dbf', class: `metric-value ${this.performanceData.inferenceTime > 100 ? 'warning' : this.performanceData.inferenceTime > 200 ? 'danger' : 'good'}` }, this.performanceData.inferenceTime, "ms")), h("div", { key: '9e523d2a51c36d08748a4fa3c88f0aa48ad4482e', class: "metric-compact" }, h("span", { key: '38593b6e84eadc87f129bfc3d5494845063c936a', class: "metric-label" }, "FRAME"), h("span", { key: '5fcddc82c511360870875c1be5eaaedd1523eb20', class: `metric-value ${this.performanceData.frameProcessingTime > 50 ? 'warning' : this.performanceData.frameProcessingTime > 100 ? 'danger' : 'good'}` }, this.performanceData.frameProcessingTime, "ms"))), h("div", { key: 'ea0ff4f807a7c70fce1938dd9b8036362855b547', class: "metrics-row" }, h("div", { key: '929c04a5bee635a8de0e79208cd4c6fb47fb4120', class: "metric-compact" }, h("span", { key: '5f3b500ede8ffcaf1c824cb0760f18d441dd4c1b', class: "metric-label" }, "DET"), h("span", { key: '050ae9a0f52bc4614f35f16cf8d4f47e96b5d55b', class: "metric-value good" }, this.performanceData.successfulDetections, "/", this.performanceData.totalDetections)), h("div", { key: '8cbee2808ec4355007a9c441495579235415f47b', class: "metric-compact" }, h("span", { key: '769941a75abbc120289c6663d69d3f73c783d79e', class: "metric-label" }, "RATE"), h("span", { key: '64b9954fd29a39bbf560833fdde393e4778fc6ec', class: `metric-value ${this.performanceData.detectionRate < 30 ? 'danger' : this.performanceData.detectionRate < 60 ? 'warning' : 'good'}` }, this.performanceData.detectionRate, "%")))))), h("div", { key: 'bc87799947f87213ff5f781353aa948882bfdce3', class: "watermark" }, h("img", { key: '8ddf884a54af69e548eea8619340ca83cc736acc', src: "https://static.jaak.ai/commons/powered-by-jaak.png", alt: "Powered by Jaak" }))))));
1250
+ : 'Saltar reverso')))), captureState.isVideoActive && (h("div", { key: '9d2bd5f8e2d20758d9ff87b230639a67d8fdae41', class: "camera-controls" }, h("button", { key: '487ff8e5151bde715dd00bd7688b31ba623b4c7f', class: `camera-selector-button ${this.isSwitchingCamera ? 'loading' : ''}`, onClick: () => this.toggleCameraSelector(), type: "button", title: "Seleccionar c\u00E1mara", disabled: this.isSwitchingCamera }, this.isSwitchingCamera ? (h("div", { class: "button-spinner" })) : ('Cámaras')))), this.showCameraSelector && cameraInfo.availableCameras.length > 0 && (h("div", { key: 'eeee411b06c3715613cbb6cf0e93d255fcac1ea6', class: "camera-selector-dropdown" }, h("div", { key: '5a4995c2b7951a19575735c8e768b283798f8280', class: "camera-selector-header" }, h("span", { key: '4b6d72d4b56671ce8c3936ccb15a6aaa27ce220c' }, "Seleccionar C\u00E1mara"), h("button", { key: 'a7caae51ff55e5494cc55bacf5d261a8282a550b', class: "close-selector", onClick: () => this.toggleCameraSelector(), type: "button" }, "\u00D7")), h("div", { key: 'c59e0105c938c60106c2764bb2793633115fdfe5', class: "camera-list" }, cameraInfo.availableCameras.map((camera) => (h("button", { key: camera.id, class: `camera-option ${cameraInfo.selectedCameraId === camera.id ? 'selected' : ''}`, onClick: () => this.handleCameraSwitch(camera.id), type: "button" }, h("span", { class: "camera-label" }, camera.label || `Cámara ${cameraInfo.availableCameras.indexOf(camera) + 1}`, camera.hasAutofocus && (h("span", { class: "autofocus-icon", title: "Autofoco disponible" }, "\u29BF"))), cameraInfo.selectedCameraId === camera.id && (h("span", { class: "selected-indicator" }, "\u2713")))))), h("div", { key: '1b421328878d79031cf5565f2189e72ef5969fb7', class: "device-info" }, h("small", { key: '8eff3bcd2295ee817b164a53f9142d301c0b04f6' }, "Dispositivo: ", cameraInfo.deviceType)))), this.showManualCaptureButton && captureState.step === 'front' && !captureState.showFlipAnimation && !captureState.showSuccessAnimation && (h("div", { key: 'b655bc09a9054682f7a7d7b1bd169a11efac3c45', class: "manual-capture-section" }, h("button", { key: '73650786a96abb2e3883eb411d95aef4fb00821d', class: "manual-capture-button", onClick: () => this.takeManualScreenshot(), type: "button", disabled: this.processingButton !== null }, this.processingButton === 'capture-front' && (h("span", { key: '9af39330393a1dc56dc7adf66d8d2000820ccc3d', class: "button-spinner" })), "Capturar Frente"))))), captureState.isCapturing && (h("div", { key: '619bdc1df901e2321842e9f51765e5f74939d043', class: "capture-animation" })), captureState.showFlipAnimation && (h("div", { key: 'f91616b49f53df94e19c440b04d9334111d059bb', class: "flip-animation" }, h("div", { key: 'da522b17c21022a12f8af69f82aac44d52bbaa71', class: "id-card-icon" }), h("div", { key: '29440e74bf938c11e2f743badf7f2144a986fd8a', class: "flip-text" }, "\u00A1Voltea tu identificaci\u00F3n!"))), captureState.showSuccessAnimation && (h("div", { key: '181817d898e4c2430338884b71f7ab96356972ae', class: "success-animation" }, h("div", { key: '6cb28526b5b9f5aac12d8328552c96233eeb4a0c', class: "check-icon" }), h("div", { key: '20c9a81338d6752448e4bca4c608faa3070fb64a', class: "success-text" }, "\u00A1Proceso completado!"))), h("div", { key: '549a6374d9491e212fd2d9fa4d240c6a348652ad', class: `component-status status-${this.currentStatus.type}` }, (this.currentStatus.type === 'loading' || this.currentStatus.type === 'initializing') && (h("div", { key: '7b077a21197447095a349fd625ca08eca2a9094c', class: "status-spinner" })), h("div", { key: 'fcff47edbac15b6cb5323efc946b7fa177b65658', class: "status-content" }, h("div", { key: 'a3dcdd467791c078cda33b8c75577c4cf7bb6468', class: "status-message" }, this.currentStatus.message), this.currentStatus.description && (h("div", { key: '4d7dd231afeeffb4dbab8a2833fdf79726326ff3', class: "status-description" }, this.currentStatus.description)))), this.debug && (h("div", { key: '854702ca658986c6600abf612a687ad83488f6a0', class: "performance-monitor" }, h("div", { key: '19bd29ac89585dafa0dde90699099b6111e6bb3b', class: "performance-expanded" }, h("div", { key: '08760ca40d44165994ca40b077bef0b1becec629', class: "metrics-row" }, h("div", { key: '5d7cc885bfd45e2d9e48f89e94faad5716870a93', class: "metric-compact" }, h("span", { key: '4a0040ebb932f3d9b4b167b7e91abac925644815', class: "metric-label" }, "FPS"), h("span", { key: '31335bb6758ffb49a267d6eea55f3dab74d3fb20', class: `metric-value ${this.performanceData.fps < 15 ? 'warning' : this.performanceData.fps < 10 ? 'danger' : 'good'}` }, this.performanceData.fps)), h("div", { key: 'c5ddca6673a720ccef6e1ffd431916840eb66f48', class: "metric-compact" }, h("span", { key: 'badf1f2858dfbf1faa4da3f575a7ba7aed19c190', class: "metric-label" }, "MEM"), h("span", { key: '206bf0afefeb7e4f8aec02667c8bb3b91eca2fd6', class: `metric-value ${this.performanceData.memoryUsage > 100 ? 'warning' : this.performanceData.memoryUsage > 200 ? 'danger' : 'good'}` }, this.performanceData.memoryUsage, "MB"))), h("div", { key: '0e12d3c961f7d4a24b860775702c735b046dfbb9', class: "metrics-row" }, h("div", { key: '23c16b7d5b55e2657aeef65d09968ab3279a7866', class: "metric-compact" }, h("span", { key: 'ad5f68534e549bf368e8da8857bb3eda707badcd', class: "metric-label" }, "INF"), h("span", { key: 'f53ed6bd2454f98b4a765f1af65e696ce82eea03', class: `metric-value ${this.performanceData.inferenceTime > 100 ? 'warning' : this.performanceData.inferenceTime > 200 ? 'danger' : 'good'}` }, this.performanceData.inferenceTime, "ms")), h("div", { key: 'bbc9ac7dbe4bb335547cc1a9ee5101c27ab80e71', class: "metric-compact" }, h("span", { key: '8392c0a514a4dc25b60a5843ce9563031a9245d0', class: "metric-label" }, "FRAME"), h("span", { key: 'd3aaca5da2db9e31f5f58d09ef9460eca5cc331c', class: `metric-value ${this.performanceData.frameProcessingTime > 50 ? 'warning' : this.performanceData.frameProcessingTime > 100 ? 'danger' : 'good'}` }, this.performanceData.frameProcessingTime, "ms"))), h("div", { key: 'f294351ea0a26d7309441f68eca0c6fcc048d30e', class: "metrics-row" }, h("div", { key: '97c2f2854b2b799e47ace3449130c7e3952bb673', class: "metric-compact" }, h("span", { key: '17a9e44716640663162a7eafb3bd6471adb62d37', class: "metric-label" }, "DET"), h("span", { key: 'd301a6decf7c25e43aaea9828be7864866fd6cae', class: "metric-value good" }, this.performanceData.successfulDetections, "/", this.performanceData.totalDetections)), h("div", { key: '51d3ca5308396f8e712204c366ea0c4622122dad', class: "metric-compact" }, h("span", { key: '064c7fe006d64de181d9fd707c74ebee11b78519', class: "metric-label" }, "RATE"), h("span", { key: '467e9a5b59051d172134ceab926b69c172338826', class: `metric-value ${this.performanceData.detectionRate < 30 ? 'danger' : this.performanceData.detectionRate < 60 ? 'warning' : 'good'}` }, this.performanceData.detectionRate, "%")))))), h("div", { key: 'ca4f45de99c4e305f872368b1a26983f4e22a368', class: "watermark" }, h("img", { key: 'b3854686a8b5eb959b5516100d4c792d2899db91', src: "https://static.jaak.ai/commons/powered-by-jaak.png", alt: "Powered by Jaak" }))))));
1250
1251
  }
1251
1252
  // Utility methods
1252
1253
  updateDetectionBoxes(boxes) {