accurafaceplugin 1.0.20 → 1.0.22
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/dist/3cf1d585a9059a23d41c.mp3 +0 -0
- package/dist/7b2cb56e7e2d1cb05b60.js +1 -0
- package/{accura.xml → dist/accura.xml} +0 -0
- package/dist/accuraface1.js +1 -0
- package/dist/accuraface2.js +1 -0
- package/dist/accuramain.js +2 -0
- package/dist/accuramain.js.LICENSE.txt +1 -0
- package/dist/bf5207edb33deb842f58.xml +33314 -0
- package/{accuraface1.js → dist/d272f80c62ec7b0c0c98.js} +1 -45
- package/dist/ding.mp3 +0 -0
- package/dist/ea504920311194527a17.js +1 -0
- package/dist/piexif.js +1 -0
- package/package.json +9 -16
- package/accuraface2.js +0 -267
- package/build/accuramain.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function Utils(errorOutputId){let self=this;this.errorOutput=document.getElementById(errorOutputId),this.apiKey="168508101488d7JV8yvF32yRGRti0hyatBHFwev0KInaUAgtGv";const OPENCV_URL="opencv.js";function onVideoCanPlay(){self.onCameraStartedCallback&&self.onCameraStartedCallback(self.stream,self.video)}this.loadOpenCv=function(e){let t=document.createElement("script");t.setAttribute("async",""),t.setAttribute("type","text/javascript"),t.addEventListener("load",(()=>{cv.getBuildInformation?(console.log(cv.getBuildInformation()),e()):cv.onRuntimeInitialized=()=>{console.log(cv.getBuildInformation()),e()}})),t.addEventListener("error",(()=>{self.printError("Failed to load "+OPENCV_URL)})),t.src=OPENCV_URL;let n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)},this.createFileFromUrl=function(e,t,n){let i=new XMLHttpRequest;i.open("GET",t,!0),i.responseType="arraybuffer",i.onload=function(a){if(4===i.readyState)if(200===i.status){let t=new Uint8Array(i.response);cv.FS_createDataFile("/",e,t,!0,!1,!1),n()}else self.printError("Failed to load "+t+" status: "+i.status)},i.send()},this.loadImageToCanvas=function(e,t){let n=document.getElementById(t),i=n.getContext("2d"),a=new Image;a.crossOrigin="anonymous",a.onload=function(){n.width=a.width,n.height=a.height,i.drawImage(a,0,0,a.width,a.height)},a.src=e},this.executeCode=function(textAreaId){try{this.clearError();let code=document.getElementById(textAreaId).value;eval(code)}catch(e){this.printError(e)}},this.clearError=function(){this.errorOutput.innerHTML=""},this.printError=function(e){if(void 0===e)e="";else if("number"==typeof e)isNaN(e)||"undefined"!=typeof cv&&(e="Exception: "+cv.exceptionFromPtr(e).msg);else if("string"==typeof e){let t=Number(e.split(" ")[0]);isNaN(t)||"undefined"!=typeof cv&&(e="Exception: "+cv.exceptionFromPtr(t).msg)}else e instanceof Error&&(e=e.stack.replace(/\n/g,"<br>"));this.errorOutput.innerHTML=e},this.loadCode=function(e,t){let n=document.getElementById(e),i=document.getElementById(t);if("text/code-snippet"!==n.type)throw Error("Unknown code snippet type");i.value=n.text.replace(/^\n/,"")},this.addFileInputHandler=function(e,t){document.getElementById(e).addEventListener("change",(e=>{let n=e.target.files;if(n.length>0){let e=URL.createObjectURL(n[0]);self.loadImageToCanvas(e,t)}}),!1)},this.startCamera=function(e,t,n){let i=document.getElementById(n);i||(i=document.createElement("video"));let a={qvga:{width:{exact:320},height:{exact:240}},vga:{width:{exact:640},height:{exact:480}}}[e];a||(a=!0),navigator.mediaDevices.getUserMedia({video:a,audio:!1}).then((function(e){i.srcObject=e,i.play(),self.video=i,self.stream=e,self.onCameraStartedCallback=t,i.addEventListener("canplay",onVideoCanPlay,!1)})).catch((function(e){self.printError("Camera Error: "+e.name+" "+e.message)}))},this.stopCamera=function(){this.video&&(this.video.pause(),this.video.srcObject=null,this.video.removeEventListener("canplay",onVideoCanPlay)),this.stream&&this.stream.getVideoTracks()[0].stop()},this.captureImage=function(e){return document.getElementById(e).toDataURL("image/jpeg")},this.stringFunction=function(e){console.log("Dynamic string:",e),document.getElementById("status-text").innerText=e},this.captureAndSend=function(){let e=document.getElementById("cam_input"),t=document.getElementById("canvas_output");e.style.display="none",t.style.display="block",isCanvasVisible=!0;let n=document.createElement("canvas");n.width=e.videoWidth,n.height=e.videoHeight;let i=n.getContext("2d");i.drawImage(e,0,0,n.width,n.height),i.save(),i.beginPath(),i.moveTo(n.width/2,0),i.bezierCurveTo(n.width,0,n.width,n.height,n.width/2,n.height),i.bezierCurveTo(0,n.height,0,0,n.width/2,0),i.clip(),i.drawImage(n,0,0),i.restore();n.toDataURL("image/jpeg")}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see accuramain.js.LICENSE.txt */
|
|
2
|
+
var e={766(e,n,t){e.exports=t.p+"d272f80c62ec7b0c0c98.js"},347(e,n,t){e.exports=t.p+"7b2cb56e7e2d1cb05b60.js"},828(e,n,t){e.exports=t.p+"ea504920311194527a17.js"},146(e,n,t){e.exports=t.p+"bf5207edb33deb842f58.xml"},880(e,n,t){e.exports=t.p+"3cf1d585a9059a23d41c.mp3"}},n={};function t(i){var o=n[i];if(void 0!==o)return o.exports;var r=n[i]={exports:{}};return e[i](r,r.exports,t),r.exports}t.m=e,t.d=(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),t.p=e})(),t.b=new URL("./",import.meta.url);var i={};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function r(e,n,t){return(n=u(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(){var e,n,t="function"==typeof Symbol?Symbol:{},i=t.iterator||"@@iterator",o=t.toStringTag||"@@toStringTag";function r(t,i,o,r){var a=i&&i.prototype instanceof d?i:d,l=Object.create(a.prototype);return s(l,"_invoke",function(t,i,o){var r,a,s,d=0,l=o||[],u=!1,h={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(n,t){return r=n,a=0,s=e,h.n=t,c}};function f(t,i){for(a=t,s=i,n=0;!u&&d&&!o&&n<l.length;n++){var o,r=l[n],f=h.p,p=r[2];t>3?(o=p===i)&&(s=r[(a=r[4])?5:(a=3,3)],r[4]=r[5]=e):r[0]<=f&&((o=t<2&&f<r[1])?(a=0,h.v=i,h.n=r[1]):f<p&&(o=t<3||r[0]>i||i>p)&&(r[4]=t,r[5]=i,h.n=p,a=0))}if(o||t>1)return c;throw u=!0,i}return function(o,l,p){if(d>1)throw TypeError("Generator is already running");for(u&&1===l&&f(l,p),a=l,s=p;(n=a<2?e:s)||!u;){r||(a?a<3?(a>1&&(h.n=-1),f(a,s)):h.n=s:h.v=s);try{if(d=2,r){if(a||(o="next"),n=r[o]){if(!(n=n.call(r,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,a<2&&(a=0)}else 1===a&&(n=r.return)&&n.call(r),a<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),a=1);r=e}else if((n=(u=h.n<0)?s:t.call(i,h))!==c)break}catch(n){r=e,a=1,s=n}finally{d=1}}return{value:n,done:u}}}(t,o,r),!0),l}var c={};function d(){}function l(){}function u(){}n=Object.getPrototypeOf;var h=[][i]?n(n([][i]())):(s(n={},i,(function(){return this})),n),f=u.prototype=d.prototype=Object.create(h);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,s(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return l.prototype=u,s(f,"constructor",u),s(u,"constructor",l),l.displayName="GeneratorFunction",s(u,o,"GeneratorFunction"),s(f),s(f,o,"Generator"),s(f,i,(function(){return this})),s(f,"toString",(function(){return"[object Generator]"})),(a=function(){return{w:r,m:p}})()}function s(e,n,t,i){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}s=function(e,n,t,i){function r(n,t){s(e,n,(function(e){return this._invoke(n,t,e)}))}n?o?o(e,n,{value:t,enumerable:!i,configurable:!i,writable:!i}):e[n]=t:(r("next",0),r("throw",1),r("return",2))},s(e,n,t,i)}function c(e,n,t,i,o,r,a){try{var s=e[r](a),c=s.value}catch(e){return void t(e)}s.done?n(c):Promise.resolve(c).then(i,o)}function d(e){return function(){var n=this,t=arguments;return new Promise((function(i,o){var r=e.apply(n,t);function a(e){c(r,i,o,a,s,"next",e)}function s(e){c(r,i,o,a,s,"throw",e)}a(void 0)}))}}function l(e,n){for(var t=0;t<n.length;t++){var i=n[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,u(i.key),i)}}function u(e){var n=function(e,n){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,n||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==o(n)?n:n+""}t.d(i,{A:()=>h});var h=function(){return e=function e(n,i){var o=this,r=i.threshold,s=i.textSize,c=i.textColor,l=i.textWeight,u=i.textBgColor,h=i.BodyBgColor;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.faceDetectionCount=0,this.onResultReceived=n,this.FPS=30,this.ZOOM_FACTOR=1.5,this.lastFaceDetectionTime=Date.now(),this.opencvLoaded=!1,this.faceThreshold=r,this.instructSize=s,this.instructColor=c,this.instructWeight=l,this.instructBgColor=u,this.bgcolor=h,this.createUI(),this.addStyles(),this.video=document.getElementById("videoInput"),this.canvas=document.getElementById("canvasOutput"),this.instructionText=document.getElementById("instructionText"),this.loader=document.getElementById("loader"),this.haarcascadeUrl=new URL(t(146),t.b).href,this.audioUrl=new URL(t(880),t.b).href,this.audioUnlocked=!1,this.ding=null,d(a().m((function e(){var n;return a().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,o.loadDependencies();case 1:o.ding=new Audio(o.audioUrl),o.ding.preload="auto",o.ding.muted=!0,o.checkOpenCV(),n=function(){!o.audioUnlocked&&o.ding&&(o.ding.play().then((function(){o.ding.pause(),o.ding.currentTime=0,o.ding.muted=!1,o.audioUnlocked=!0})).catch((function(){})),document.removeEventListener("click",n))},document.addEventListener("click",n,{once:!0});case 2:return e.a(2)}}),e)})))()},n=[{key:"createUI",value:function(){var e=document.createElement("div");e.className="accuraContainerBox";var n=document.createElement("div");n.className="camera-input",n.style.position="relative",this.cameraInput=n;var t=document.createElement("video");t.id="videoInput",t.width=640,t.height=480,t.autoplay=!0,t.muted=!0;var i=document.createElement("canvas");i.id="canvasOutput",i.style.display="none";var o=document.createElement("div");o.id="loader",o.className="loader",o.innerHTML='\n <div class="loader-wrapper">\n <div class="spinner"></div>\n <p class="loader-text">Loading...</p>\n </div>\n ';var r=document.createElement("p");r.id="instructionText",n.appendChild(t),n.appendChild(i),n.appendChild(o),e.appendChild(n),e.appendChild(r),document.body.appendChild(e)}},{key:"checkOpenCV",value:function(){var e=this;this.showLoader();var n=function(){var t=window.cv&&"function"==typeof window.cv.Mat,i=window.Utils&&"function"==typeof window.Utils;t&&i?(e.opencvLoaded=!0,e.hideLoader(),e.openCvReady()):setTimeout(n,100)};n()}},{key:"showLoader",value:function(){this.loader&&(this.loader.style.display="flex")}},{key:"hideLoader",value:function(){this.loader&&(this.loader.style.display="none")}},{key:"loadScript",value:(s=d(a().m((function e(n){return a().w((function(e){for(;;)if(0===e.n)return e.a(2,new Promise((function(e,t){if(document.querySelector('script[src="'.concat(n,'"]')))e();else{var i=document.createElement("script");i.src=n,i.async=!0,i.onload=e,i.onerror=t,document.head.appendChild(i)}})))}),e)}))),function(e){return s.apply(this,arguments)})},{key:"loadDependencies",value:(o=d(a().m((function e(){var n,i,o;return a().w((function(e){for(;;)switch(e.n){case 0:return n=new URL(t(766),t.b).href,i=new URL(t(347),t.b).href,o=new URL(t(828),t.b).href,e.n=1,this.loadScript(n);case 1:return e.n=2,this.loadScript(i);case 2:return e.n=3,this.loadScript(o);case 3:return e.a(2)}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"openCvReady",value:function(){var e=this;navigator.mediaDevices.getUserMedia({video:!0,audio:!1}).then((function(n){e.video.srcObject=n,e.video.play(),e.isCanvasVisible=!1,e.video.addEventListener("loadedmetadata",(function(){if(e.video.videoWidth&&e.video.videoHeight){e.video.width=e.video.videoWidth,e.video.height=e.video.videoHeight,e.canvas.width=e.video.videoWidth,e.canvas.height=e.video.videoHeight;var n=new window.cv.Mat(e.video.videoHeight,e.video.videoWidth,window.cv.CV_8UC4),t=new window.cv.Mat(e.video.videoHeight,e.video.videoWidth,window.cv.CV_8UC4),i=new window.cv.VideoCapture(e.video),o=new window.cv.CascadeClassifier,r=new window.Utils("errorMessage"),a=e.haarcascadeUrl;r.createFileFromUrl(a,a,(function(){o.load(a),e.facepluginopencv(i,n,t,o)}))}}))})).catch((function(e){console.error("An error occurred while accessing media devices: ",e)}))}},{key:"isFaceInsideOval",value:function(e,n){var t=n.width/2,i=n.height/2,o=n.width/2,r=n.height/2,a=e.x+e.width/2,s=e.y+e.height/2;return Math.pow(a-t,2)/Math.pow(o,2)+Math.pow(s-i,2)/Math.pow(r,2)<=1}},{key:"facepluginopencv",value:function(e,n,t,i){var o=this,r=Date.now();e.read(n);var a=new window.cv.Rect(n.cols/2-n.cols/(2*this.ZOOM_FACTOR),n.rows/2-n.rows/(2*this.ZOOM_FACTOR),n.cols/this.ZOOM_FACTOR,n.rows/this.ZOOM_FACTOR),s=n.roi(a);window.cv.resize(s,t,new window.cv.Size(n.cols,n.rows),0,0,window.cv.INTER_LINEAR),this.instructionText.textContent="Keep Your Face In The Frame";var c=new window.cv.RectVector;try{if(i.detectMultiScale(n,c,1.5,3,0),1===c.size()){var d=c.get(0),l=(new window.cv.Rect(d.x,d.y,d.width,d.height),.14),u=Math.max(0,d.x-d.width*l),h=Math.max(0,d.y-d.height*l),f=Math.min(n.cols-u,1.28*d.width),p=Math.min(n.rows-h,1.28*d.height),v=new window.cv.Rect(u,h,f,p);window.cv.rectangle(n,new window.cv.Point(v.x,v.y),new window.cv.Point(v.x+v.width,v.y+v.height),[5,255,0,255],2);var m=d.width*d.height/(Math.PI*(this.canvas.width/2)*(this.canvas.height/2))*100;if(this.isFaceInsideOval(d,this.canvas)){if(m<30)this.instructionText.textContent="Stay closer to the window";else if(m>=30&&m<=100&&(this.instructionText.textContent="Processing....",this.faceDetectionCount++,this.faceDetectionCount===this.faceThreshold)){var w=document.createElement("div");return w.id="faceScanSuccess",w.innerHTML='\n <div class="scan-success-wrapper">\n \x3c!-- Viewfinder frame (your provided paths, scaled up a bit for better visibility) --\x3e\n <svg class="face-viewfinder" width="120" height="120" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8 18V8h10" stroke="#ffffff" stroke-width="5" stroke-linecap="round"/>\n <path d="M46 8h10v10" stroke="#ffffff" stroke-width="5" stroke-linecap="round"/>\n <path d="M56 46v10H46" stroke="#ffffff" stroke-width="5" stroke-linecap="round"/>\n <path d="M18 56H8V46" stroke="#ffffff" stroke-width="5" stroke-linecap="round"/>\n \x3c!-- Face representation (small circle + smile) --\x3e\n <circle cx="32" cy="26" r="9" stroke="#ffffff" stroke-width="4" fill="none"/>\n <path d="M22 42c4-8 16-8 20 0" stroke="#ffffff" stroke-width="4" stroke-linecap="round" fill="none"/>\n </svg>\n\n \x3c!-- Black checkmark overlay (appears on success) --\x3e\n <svg class="success-tick" viewBox="0 0 52 52" width="80" height="80">\n <path \n d="M14.1 27.2 L21.2 34.4 L37.9 17.6" \n stroke="green" \n stroke-width="6" \n stroke-linecap="round" \n stroke-linejoin="round" \n fill="none"\n />\n </svg>\n </div>\n',Object.assign(w.style,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:"200",pointerEvents:"none",textAlign:"center"}),this.cameraInput.appendChild(w),setTimeout((function(){return w.remove()}),1500),this.audioUnlocked&&(this.ding.currentTime=0,this.ding.play().catch((function(){}))),void setTimeout((function(){o.convertToBase64WithMetadata(v);var e=o.video.srcObject;e&&e.getTracks().forEach((function(e){return e.stop()}))}),1500)}}else this.instructionText.textContent="Move inside the oval window";this.lastFaceDetectionTime=Date.now()}}catch(e){console.error("Error processing video:",e)}finally{c.delete()}this.isCanvasVisible&&(window.cv.flip(n,n,1),window.cv.imshow(this.canvas.id,n));var g=1e3/this.FPS-(Date.now()-r);setTimeout((function(){return o.facepluginopencv(e,n,t,i)}),g)}},{key:"convertToBase64WithMetadata",value:function(e){var n=document.createElement("canvas");n.width=this.video.videoWidth,n.height=this.video.videoHeight;var t=n.getContext("2d");t.drawImage(this.video,0,0,n.width,n.height);var i=document.createElement("canvas");i.width=e.width,i.height=e.height;var o=i.getContext("2d"),a=t.getImageData(e.x,e.y,e.width,e.height);o.putImageData(a,0,0);var s={"0th":r(r({},piexif.ImageIFD.Make,"AccuraFace"),piexif.ImageIFD.Model,"FaceDetectionCamera")},c=piexif.dump(s),d=piexif.insert(c,i.toDataURL("image/jpeg",.92));this.onResultReceived&&(document.querySelector(".accuraContainerBox").style.display="none",this.onResultReceived({base64:d,metadata:s}))}},{key:"addStyles",value:function(){var e="\n body {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n margin: 0;\n background-color: ".concat(this.bgcolor||"rgb(255, 255, 255)",";\n font-family: Arial, sans-serif;\n flex-direction: column;\n }\n \n .accuraContainerBox {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 20px;\n background-color: transparent;\n border-radius: 10px;\n }\n \n #instructionText {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px;\n background-color: ").concat(this.instructBgColor||"#fff",";\n color: ").concat(this.instructColor||"rgb(10, 18, 131)",";\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border-radius: 5px;\n margin-bottom: 20px;\n font-size: ").concat(this.instructSize||"30px",";\n font-weight: ").concat(this.instructWeight||"bold",";\n }\n \n .camera-input {\n width: 250px;\n height: 370px;\n position: relative;\n overflow: hidden;\n border-radius: 50%;\n transform: scale(1.0); \n }\n \n #videoInput {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.3s ease-in-out;\n transform: scaleX(-1) scale(1.5); \n }\n \n #canvasOutput {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n transform: scale(1.5);\n }\n \n #response-text {\n font-size: 18px;\n color: #333;\n margin-top: 10px;\n }\n\n/* Desktop (default) */\n\n /* Laptop */\n @media (max-width: 1200px) {\n #instructionText {\n font-size: ").concat(this.instructSize||"28px",";\n }\n }\n\n /* iPad / Tablet */\n @media (max-width: 992px) {\n #instructionText {\n font-size: ").concat(this.instructSize||"28px",";\n }\n }\n\n /* Mobile */\n @media (max-width: 768px) {\n #instructionText {\n font-size: 25px;\n }\n }\n\n /* Small Mobile (Extra Small Devices) */\n @media (max-width: 480px) {\n #instructionText {\n font-size: ").concat(this.instructSize||"18px",";\n }\n }\n\n .scan-success-wrapper {\n position: relative;\n width: 140px;\n height: 140px;\n margin: 0 auto;\n}\n\n.face-viewfinder {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0.9;\n animation: pulseFrame 2s ease-in-out forwards;\n}\n\n.success-tick {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.6);\n opacity: 0;\n z-index: 2;\n animation: tickReveal 1.1s ease-out 0.4s forwards;\n}\n\n/* Animations */\n@keyframes pulseFrame {\n 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.92); }\n 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }\n 100% { opacity: 0.85; transform: translate(-50%, -50%) scale(1); }\n}\n\n@keyframes tickReveal {\n 0% { \n transform: translate(-50%, -50%) scale(0.4); \n opacity: 0; \n stroke-dashoffset: 60; \n }\n 40% { \n transform: translate(-50%, -50%) scale(1.15); \n opacity: 1; \n }\n 70% { transform: translate(-50%, -50%) scale(0.95); }\n 100% { \n transform: translate(-50%, -50%) scale(1); \n opacity: 1; \n stroke-dashoffset: 0; \n }\n}\n\n/* Add stroke-dasharray to the tick path via JS or CSS for draw effect */\n.success-tick path {\n stroke-dasharray: 60;\n stroke-dashoffset: 60;\n animation: drawTick 0.8s ease-out 0.5s forwards;\n}\n\n@keyframes drawTick {\n to { stroke-dashoffset: 0; }\n}\n\n/* Fullscreen White Loader */\n#loader {\n position: fixed;\n inset: 0;\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 999999;\n}\n\n.loader-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 18px;\n}\n\n.spinner {\n width: 68px;\n height: 68px;\n border: 6px solid rgba(0, 0, 0, 0.12);\n border-top: 6px solid #111111;\n border-radius: 50%;\n animation: spin 0.9s linear infinite;\n}\n\n.loader-text {\n color: #111111;\n font-size: 20px;\n font-weight: 600;\n text-align: center;\n margin: 0;\n font-family: Arial, sans-serif;\n}\n\n/* Tablet */\n@media (max-width: 768px) {\n .spinner {\n width: 56px;\n height: 56px;\n }\n\n .loader-text {\n font-size: 17px;\n }\n}\n\n/* Mobile */\n@media (max-width: 480px) {\n .spinner {\n width: 48px;\n height: 48px;\n border-width: 5px;\n }\n\n .loader-text {\n font-size: 15px;\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n "),n=document.createElement("style");n.type="text/css",n.innerText=e,document.head.appendChild(n)}}],n&&l(e.prototype,n),i&&l(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n,i,o,s}();const f=i.A;export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|