UNPKG

w-mousekey

Version:

An operator for mouse and keyboard in nodejs.

8 lines (7 loc) 39.9 kB
/*! * ck-pic v1.0.7 * (c) 2018-2021 yuda-lyu(semisphere) * Released under the MIT License. */ !function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r(require("fs"),require("path"),require("child_process"),require("util"),require("screenshot-desktop"),require("sharp"),require("@u4/opencv4nodejs")):"function"==typeof define&&define.amd?define(["fs","path","child_process","util","screenshot-desktop","sharp","@u4/opencv4nodejs"],r):(t="undefined"!=typeof globalThis?globalThis:t||self)["ck-pic"]=r(t.fs,t.path,t.child_process,t.util,t["screenshot-desktop"],t.sharp,t["@u4/opencv4nodejs"])}(this,function(t,r,e,n,o,i,u){"use strict";var a=Array.isArray,f="object"==typeof global&&global&&global.Object===Object&&global,c="object"==typeof self&&self&&self.Object===Object&&self,l=f||c||Function("return this")(),s=l.Symbol,h=Object.prototype,d=h.hasOwnProperty,g=h.toString,b=s?s.toStringTag:void 0;var p=Object.prototype.toString;var v=s?s.toStringTag:void 0;function y(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":v&&v in Object(t)?function(t){var r=d.call(t,b),e=t[b];try{t[b]=void 0;var n=!0}catch(t){}var o=g.call(t);return n&&(r?t[b]=e:delete t[b]),o}(t):function(t){return p.call(t)}(t)}function w(t){return null!=t&&"object"==typeof t}function m(t){return"symbol"==typeof t||w(t)&&"[object Symbol]"==y(t)}var _=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,j=/^\w*$/;function $(t,r){if(a(t))return!1;var e=typeof t;return!("number"!=e&&"symbol"!=e&&"boolean"!=e&&null!=t&&!m(t))||(j.test(t)||!_.test(t)||null!=r&&t in Object(r))}function S(t){var r=typeof t;return null!=t&&("object"==r||"function"==r)}function k(t){if(!S(t))return!1;var r=y(t);return"[object Function]"==r||"[object GeneratorFunction]"==r||"[object AsyncFunction]"==r||"[object Proxy]"==r}var x,O=l["__core-js_shared__"],E=(x=/[^.]+$/.exec(O&&O.keys&&O.keys.IE_PROTO||""))?"Symbol(src)_1."+x:"";var A=Function.prototype.toString;function P(t){if(null!=t){try{return A.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var H=/^\[object .+?Constructor\]$/,R=Function.prototype,z=Object.prototype,M=R.toString,F=z.hasOwnProperty,T=RegExp("^"+M.call(F).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function q(t){return!(!S(t)||(r=t,E&&E in r))&&(k(t)?T:H).test(P(t));var r}function C(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return q(e)?e:void 0}var B=C(Object,"create");var D=Object.prototype.hasOwnProperty;var N=Object.prototype.hasOwnProperty;function L(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}function I(t,r){return t===r||t!=t&&r!=r}function U(t,r){for(var e=t.length;e--;)if(I(t[e][0],r))return e;return-1}L.prototype.clear=function(){this.__data__=B?B(null):{},this.size=0},L.prototype.delete=function(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r},L.prototype.get=function(t){var r=this.__data__;if(B){var e=r[t];return"__lodash_hash_undefined__"===e?void 0:e}return D.call(r,t)?r[t]:void 0},L.prototype.has=function(t){var r=this.__data__;return B?void 0!==r[t]:N.call(r,t)},L.prototype.set=function(t,r){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=B&&void 0===r?"__lodash_hash_undefined__":r,this};var V=Array.prototype.splice;function G(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}G.prototype.clear=function(){this.__data__=[],this.size=0},G.prototype.delete=function(t){var r=this.__data__,e=U(r,t);return!(e<0)&&(e==r.length-1?r.pop():V.call(r,e,1),--this.size,!0)},G.prototype.get=function(t){var r=this.__data__,e=U(r,t);return e<0?void 0:r[e][1]},G.prototype.has=function(t){return U(this.__data__,t)>-1},G.prototype.set=function(t,r){var e=this.__data__,n=U(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var W=C(l,"Map");function J(t,r){var e,n,o=t.__data__;return("string"==(n=typeof(e=r))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==e:null===e)?o["string"==typeof r?"string":"hash"]:o.map}function K(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r<e;){var n=t[r];this.set(n[0],n[1])}}K.prototype.clear=function(){this.size=0,this.__data__={hash:new L,map:new(W||G),string:new L}},K.prototype.delete=function(t){var r=J(this,t).delete(t);return this.size-=r?1:0,r},K.prototype.get=function(t){return J(this,t).get(t)},K.prototype.has=function(t){return J(this,t).has(t)},K.prototype.set=function(t,r){var e=J(this,t),n=e.size;return e.set(t,r),this.size+=e.size==n?0:1,this};function Q(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new TypeError("Expected a function");var e=function(){var n=arguments,o=r?r.apply(this,n):n[0],i=e.cache;if(i.has(o))return i.get(o);var u=t.apply(this,n);return e.cache=i.set(o,u)||i,u};return e.cache=new(Q.Cache||K),e}Q.Cache=K;var X,Y,Z,tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rt=/\\(\\)?/g,et=(X=function(t){var r=[];return 46===t.charCodeAt(0)&&r.push(""),t.replace(tt,function(t,e,n,o){r.push(n?o.replace(rt,"$1"):e||t)}),r},Y=Q(X,function(t){return 500===Z.size&&Z.clear(),t}),Z=Y.cache,Y),nt=et;function ot(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e<n;)o[e]=r(t[e],e,t);return o}var it=s?s.prototype:void 0,ut=it?it.toString:void 0;function at(t){if("string"==typeof t)return t;if(a(t))return ot(t,at)+"";if(m(t))return ut?ut.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}function ft(t){return null==t?"":at(t)}function ct(t,r){return a(t)?t:$(t,r)?[t]:nt(ft(t))}function lt(t){if("string"==typeof t||m(t))return t;var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}function st(t,r){for(var e=0,n=(r=ct(r,t)).length;null!=t&&e<n;)t=t[lt(r[e++])];return e&&e==n?t:void 0}function ht(t,r,e){var n=null==t?void 0:st(t,r);return void 0===n?e:n}function dt(t){return"[object String]"===Object.prototype.toString.call(t)}function gt(t){return!(!dt(t)||""===t)}function bt(r){return function(t,r={}){let e=ht(r,"fs");return!!e.existsSync(t)&&!e.lstatSync(t).isDirectory()&&!e.lstatSync(t).isSymbolicLink()}(r,{fs:t})}function pt(t,r={}){let e=ht(r,"fs");if(!e.existsSync(t))return!1;let n=e.lstatSync(t);return!n.isFile()&&!n.isSymbolicLink()}function vt(r){return pt(r,{fs:t})}function yt(r){return function(t,r={}){let e=ht(r,"fs");if(pt(t,{fs:e}))return{success:"input folder is already exists: "+t};if(e.existsSync(t))return{error:"input path already exists: "+t};try{e.mkdirSync(t,{recursive:!0})}catch(t){return{error:t}}return{success:"done: "+t}}(r,{fs:t})}let wt=n.promisify(e.execFile),mt=r.resolve(),_t="AutoHotkey64.exe",jt="";{let t=`${mt}/AutoHotkey_2.0.19/`,r=`${mt}/node_modules/w-mousekey/AutoHotkey_2.0.19/`;if(bt(`${t}${_t}`))jt=t;else{if(!bt(`${r}${_t}`))throw new Error("can not find folder for AutoHotkey");jt=r}}let $t=`${jt}/AutoHotkey64.exe`,St=`${jt}/zclick.ahk`,kt=`${jt}/zdrag.ahk`,xt=`${jt}/zsend.ahk`;async function Ot(t,r,e=[]){let n=function(){let t,r,e=new Promise(function(){t=arguments[0],r=arguments[1]});return e.resolve=t,e.reject=r,e}();try{let{stdout:o,stderr:i}=await wt(t,["/force",r,...e]);i?n.reject(i):n.resolve(o)}catch(t){n.reject(t)}return n}let Et={mouseClick:async function(t,r){await Ot($t,St,[t,r])},mouseDrag:async function(t,r,e,n){await Ot($t,kt,[t,r,e,n])},sendKey:async function(t){await Ot($t,xt,[`${t}`])},sendString:async function(t){await Ot($t,xt,[`${t}`])}};let At={screenFull:async function(){return await o({format:"png"})},screen:async function(t,r,e,n){let u=await o({format:"png"});return await i(u).extract({left:t,top:r,width:e,height:n}).toBuffer()},screenFullSave:async function(r){let e=await o({format:"png"});return t.writeFileSync(r,e),e},screenSave:async function(r,e,n,u,a){let f=await o({format:"png"}),c=await i(f).extract({left:r,top:e,width:n,height:u}).toBuffer();return t.writeFileSync(a,c),c}};function Pt(t){return!0===(r=t)||!1===r||w(r)&&"[object Boolean]"==y(r);var r}var Ht=/\s/;var Rt=/^\s+/;function zt(t){return t?t.slice(0,function(t){for(var r=t.length;r--&&Ht.test(t.charAt(r)););return r}(t)+1).replace(Rt,""):t}var Mt=/^[-+]0x[0-9a-f]+$/i,Ft=/^0b[01]+$/i,Tt=/^0o[0-7]+$/i,qt=parseInt;function Ct(t){if("number"==typeof t)return t;if(m(t))return NaN;if(S(t)){var r="function"==typeof t.valueOf?t.valueOf():t;t=S(r)?r+"":r}if("string"!=typeof t)return 0===t?t:+t;t=zt(t);var e=Ft.test(t);return e||Tt.test(t)?qt(t.slice(2),e?2:8):Mt.test(t)?NaN:+t}var Bt=1/0;function Dt(t){return t?(t=Ct(t))===Bt||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function Nt(t){var r=Dt(t),e=r%1;return r==r?e?r-e:r:0}function Lt(t){let r=!1;if(gt(t))r=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(function(t){return t!=t}(t))return!1;r=!0}return r}function It(t){if(!Lt(t))return 0;return Dt(t)}function Ut(t){return!!Lt(t)&&(t=It(t),"number"==typeof(r=t)&&r==Nt(r));var r}var Vt=l.isFinite,Gt=Math.min;var Wt=function(t){var r=Math[t];return function(t,e){if(t=Ct(t),(e=null==e?0:Gt(Nt(e),292))&&Vt(t)){var n=(ft(t)+"e").split("e");return+((n=(ft(r(n[0]+"e"+(+n[1]+e)))+"e").split("e"))[0]+"e"+(+n[1]-e))}return r(t)}}("round"),Jt=Wt;function Kt(t){if(!Lt(t))return 0;t=It(t);let r=Jt(t);return"0"===String(r)?0:r}function Qt(t){if(!Ut(t))return!1;return Kt(t)>0}function Xt(t,r,e){var n=t.length;return e=void 0===e?n:e,!r&&e>=n?t:function(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+r];return i}(t,r,e)}function Yt(t){return t!=t}function Zt(t,r,e){return r==r?function(t,r,e){for(var n=e-1,o=t.length;++n<o;)if(t[n]===r)return n;return-1}(t,r,e):function(t,r,e,n){for(var o=t.length,i=e+(n?1:-1);n?i--:++i<o;)if(r(t[i],i,t))return i;return-1}(t,Yt,e)}var tr=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function rr(t){return tr.test(t)}var er="\\ud800-\\udfff",nr="["+er+"]",or="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ir="\\ud83c[\\udffb-\\udfff]",ur="[^"+er+"]",ar="(?:\\ud83c[\\udde6-\\uddff]){2}",fr="[\\ud800-\\udbff][\\udc00-\\udfff]",cr="(?:"+or+"|"+ir+")"+"?",lr="[\\ufe0e\\ufe0f]?",sr=lr+cr+("(?:\\u200d(?:"+[ur,ar,fr].join("|")+")"+lr+cr+")*"),hr="(?:"+[ur+or+"?",or,ar,fr,nr].join("|")+")",dr=RegExp(ir+"(?="+ir+")|"+hr+sr,"g");function gr(t){return rr(t)?function(t){return t.match(dr)||[]}(t):function(t){return t.split("")}(t)}function br(t,r,e){if((t=ft(t))&&(e||void 0===r))return zt(t);if(!t||!(r=at(r)))return t;var n=gr(t),o=gr(r),i=function(t,r){for(var e=-1,n=t.length;++e<n&&Zt(r,t[e],0)>-1;);return e}(n,o),u=function(t,r){for(var e=t.length;e--&&Zt(r,t[e],0)>-1;);return e}(n,o)+1;return Xt(n,i,u).join("")}function pr(t){var r=this.__data__=new G(t);this.size=r.size}pr.prototype.clear=function(){this.__data__=new G,this.size=0},pr.prototype.delete=function(t){var r=this.__data__,e=r.delete(t);return this.size=r.size,e},pr.prototype.get=function(t){return this.__data__.get(t)},pr.prototype.has=function(t){return this.__data__.has(t)},pr.prototype.set=function(t,r){var e=this.__data__;if(e instanceof G){var n=e.__data__;if(!W||n.length<199)return n.push([t,r]),this.size=++e.size,this;e=this.__data__=new K(n)}return e.set(t,r),this.size=e.size,this};function vr(t){var r=-1,e=null==t?0:t.length;for(this.__data__=new K;++r<e;)this.add(t[r])}function yr(t,r){for(var e=-1,n=null==t?0:t.length;++e<n;)if(r(t[e],e,t))return!0;return!1}function wr(t,r){return t.has(r)}vr.prototype.add=vr.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},vr.prototype.has=function(t){return this.__data__.has(t)};function mr(t,r,e,n,o,i){var u=1&e,a=t.length,f=r.length;if(a!=f&&!(u&&f>a))return!1;var c=i.get(t),l=i.get(r);if(c&&l)return c==r&&l==t;var s=-1,h=!0,d=2&e?new vr:void 0;for(i.set(t,r),i.set(r,t);++s<a;){var g=t[s],b=r[s];if(n)var p=u?n(b,g,s,r,t,i):n(g,b,s,t,r,i);if(void 0!==p){if(p)continue;h=!1;break}if(d){if(!yr(r,function(t,r){if(!wr(d,r)&&(g===t||o(g,t,e,n,i)))return d.push(r)})){h=!1;break}}else if(g!==b&&!o(g,b,e,n,i)){h=!1;break}}return i.delete(t),i.delete(r),h}var _r=l.Uint8Array;function jr(t){var r=-1,e=Array(t.size);return t.forEach(function(t,n){e[++r]=[n,t]}),e}function $r(t){var r=-1,e=Array(t.size);return t.forEach(function(t){e[++r]=t}),e}var Sr=s?s.prototype:void 0,kr=Sr?Sr.valueOf:void 0;function xr(t,r){for(var e=-1,n=r.length,o=t.length;++e<n;)t[o+e]=r[e];return t}var Or=Object.prototype.propertyIsEnumerable,Er=Object.getOwnPropertySymbols,Ar=Er?function(t){return null==t?[]:(t=Object(t),function(t,r){for(var e=-1,n=null==t?0:t.length,o=0,i=[];++e<n;){var u=t[e];r(u,e,t)&&(i[o++]=u)}return i}(Er(t),function(r){return Or.call(t,r)}))}:function(){return[]},Pr=Ar;function Hr(t){return w(t)&&"[object Arguments]"==y(t)}var Rr=Object.prototype,zr=Rr.hasOwnProperty,Mr=Rr.propertyIsEnumerable,Fr=Hr(function(){return arguments}())?Hr:function(t){return w(t)&&zr.call(t,"callee")&&!Mr.call(t,"callee")},Tr=Fr;var qr="object"==typeof exports&&exports&&!exports.nodeType&&exports,Cr=qr&&"object"==typeof module&&module&&!module.nodeType&&module,Br=Cr&&Cr.exports===qr?l.Buffer:void 0,Dr=(Br?Br.isBuffer:void 0)||function(){return!1},Nr=/^(?:0|[1-9]\d*)$/;function Lr(t,r){var e=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==e||"symbol"!=e&&Nr.test(t))&&t>-1&&t%1==0&&t<r}function Ir(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}var Ur={};function Vr(t){return function(r){return t(r)}}Ur["[object Float32Array]"]=Ur["[object Float64Array]"]=Ur["[object Int8Array]"]=Ur["[object Int16Array]"]=Ur["[object Int32Array]"]=Ur["[object Uint8Array]"]=Ur["[object Uint8ClampedArray]"]=Ur["[object Uint16Array]"]=Ur["[object Uint32Array]"]=!0,Ur["[object Arguments]"]=Ur["[object Array]"]=Ur["[object ArrayBuffer]"]=Ur["[object Boolean]"]=Ur["[object DataView]"]=Ur["[object Date]"]=Ur["[object Error]"]=Ur["[object Function]"]=Ur["[object Map]"]=Ur["[object Number]"]=Ur["[object Object]"]=Ur["[object RegExp]"]=Ur["[object Set]"]=Ur["[object String]"]=Ur["[object WeakMap]"]=!1;var Gr="object"==typeof exports&&exports&&!exports.nodeType&&exports,Wr=Gr&&"object"==typeof module&&module&&!module.nodeType&&module,Jr=Wr&&Wr.exports===Gr&&f.process,Kr=function(){try{var t=Wr&&Wr.require&&Wr.require("util").types;return t||Jr&&Jr.binding&&Jr.binding("util")}catch(t){}}(),Qr=Kr&&Kr.isTypedArray,Xr=Qr?Vr(Qr):function(t){return w(t)&&Ir(t.length)&&!!Ur[y(t)]},Yr=Object.prototype.hasOwnProperty;function Zr(t,r){var e=a(t),n=!e&&Tr(t),o=!e&&!n&&Dr(t),i=!e&&!n&&!o&&Xr(t),u=e||n||o||i,f=u?function(t,r){for(var e=-1,n=Array(t);++e<t;)n[e]=r(e);return n}(t.length,String):[],c=f.length;for(var l in t)!r&&!Yr.call(t,l)||u&&("length"==l||o&&("offset"==l||"parent"==l)||i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Lr(l,c))||f.push(l);return f}var te=Object.prototype;var re=function(t,r){return function(e){return t(r(e))}}(Object.keys,Object),ee=re,ne=Object.prototype.hasOwnProperty;function oe(t){if(e=(r=t)&&r.constructor,r!==("function"==typeof e&&e.prototype||te))return ee(t);var r,e,n=[];for(var o in Object(t))ne.call(t,o)&&"constructor"!=o&&n.push(o);return n}function ie(t){return null!=t&&Ir(t.length)&&!k(t)}function ue(t){return ie(t)?Zr(t):oe(t)}function ae(t){return function(t,r,e){var n=r(t);return a(t)?n:xr(n,e(t))}(t,ue,Pr)}var fe=Object.prototype.hasOwnProperty;var ce=C(l,"DataView"),le=C(l,"Promise"),se=C(l,"Set"),he=C(l,"WeakMap"),de="[object Map]",ge="[object Promise]",be="[object Set]",pe="[object WeakMap]",ve="[object DataView]",ye=P(ce),we=P(W),me=P(le),_e=P(se),je=P(he),$e=y;(ce&&$e(new ce(new ArrayBuffer(1)))!=ve||W&&$e(new W)!=de||le&&$e(le.resolve())!=ge||se&&$e(new se)!=be||he&&$e(new he)!=pe)&&($e=function(t){var r=y(t),e="[object Object]"==r?t.constructor:void 0,n=e?P(e):"";if(n)switch(n){case ye:return ve;case we:return de;case me:return ge;case _e:return be;case je:return pe}return r});var Se=$e,ke="[object Arguments]",xe="[object Array]",Oe="[object Object]",Ee=Object.prototype.hasOwnProperty;function Ae(t,r,e,n,o,i){var u=a(t),f=a(r),c=u?xe:Se(t),l=f?xe:Se(r),s=(c=c==ke?Oe:c)==Oe,h=(l=l==ke?Oe:l)==Oe,d=c==l;if(d&&Dr(t)){if(!Dr(r))return!1;u=!0,s=!1}if(d&&!s)return i||(i=new pr),u||Xr(t)?mr(t,r,e,n,o,i):function(t,r,e,n,o,i,u){switch(e){case"[object DataView]":if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=r.byteLength||!i(new _r(t),new _r(r)));case"[object Boolean]":case"[object Date]":case"[object Number]":return I(+t,+r);case"[object Error]":return t.name==r.name&&t.message==r.message;case"[object RegExp]":case"[object String]":return t==r+"";case"[object Map]":var a=jr;case"[object Set]":var f=1&n;if(a||(a=$r),t.size!=r.size&&!f)return!1;var c=u.get(t);if(c)return c==r;n|=2,u.set(t,r);var l=mr(a(t),a(r),n,o,i,u);return u.delete(t),l;case"[object Symbol]":if(kr)return kr.call(t)==kr.call(r)}return!1}(t,r,c,e,n,o,i);if(!(1&e)){var g=s&&Ee.call(t,"__wrapped__"),b=h&&Ee.call(r,"__wrapped__");if(g||b){var p=g?t.value():t,v=b?r.value():r;return i||(i=new pr),o(p,v,e,n,i)}}return!!d&&(i||(i=new pr),function(t,r,e,n,o,i){var u=1&e,a=ae(t),f=a.length;if(f!=ae(r).length&&!u)return!1;for(var c=f;c--;){var l=a[c];if(!(u?l in r:fe.call(r,l)))return!1}var s=i.get(t),h=i.get(r);if(s&&h)return s==r&&h==t;var d=!0;i.set(t,r),i.set(r,t);for(var g=u;++c<f;){var b=t[l=a[c]],p=r[l];if(n)var v=u?n(p,b,l,r,t,i):n(b,p,l,t,r,i);if(!(void 0===v?b===p||o(b,p,e,n,i):v)){d=!1;break}g||(g="constructor"==l)}if(d&&!g){var y=t.constructor,w=r.constructor;y==w||!("constructor"in t)||!("constructor"in r)||"function"==typeof y&&y instanceof y&&"function"==typeof w&&w instanceof w||(d=!1)}return i.delete(t),i.delete(r),d}(t,r,e,n,o,i))}function Pe(t,r,e,n,o){return t===r||(null==t||null==r||!w(t)&&!w(r)?t!=t&&r!=r:Ae(t,r,e,n,Pe,o))}function He(t){return t==t&&!S(t)}function Re(t,r){return function(e){return null!=e&&(e[t]===r&&(void 0!==r||t in Object(e)))}}function ze(t){var r=function(t){for(var r=ue(t),e=r.length;e--;){var n=r[e],o=t[n];r[e]=[n,o,He(o)]}return r}(t);return 1==r.length&&r[0][2]?Re(r[0][0],r[0][1]):function(e){return e===t||function(t,r,e,n){var o=e.length,i=o,u=!n;if(null==t)return!i;for(t=Object(t);o--;){var a=e[o];if(u&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++o<i;){var f=(a=e[o])[0],c=t[f],l=a[1];if(u&&a[2]){if(void 0===c&&!(f in t))return!1}else{var s=new pr;if(n)var h=n(c,l,f,t,r,s);if(!(void 0===h?Pe(l,c,3,n,s):h))return!1}}return!0}(e,t,r)}}function Me(t,r){return null!=t&&r in Object(t)}function Fe(t,r){return null!=t&&function(t,r,e){for(var n=-1,o=(r=ct(r,t)).length,i=!1;++n<o;){var u=lt(r[n]);if(!(i=null!=t&&e(t,u)))break;t=t[u]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&Ir(o)&&Lr(u,o)&&(a(t)||Tr(t))}(t,r,Me)}function Te(t){return t}function qe(t){return function(r){return null==r?void 0:r[t]}}function Ce(t){return $(t)?qe(lt(t)):function(t){return function(r){return st(r,t)}}(t)}function Be(t){return"function"==typeof t?t:null==t?Te:"object"==typeof t?a(t)?function(t,r){return $(t)&&He(r)?Re(lt(t),r):function(e){var n=ht(e,t);return void 0===n&&n===r?Fe(e,t):Pe(r,n,3)}}(t[0],t[1]):ze(t):Ce(t)}var De,Ne=function(t,r,e){for(var n=-1,o=Object(t),i=e(t),u=i.length;u--;){var a=i[De?u:++n];if(!1===r(o[a],a,o))break}return t};var Le=function(t,r){return function(e,n){if(null==e)return e;if(!ie(e))return t(e,n);for(var o=e.length,i=r?o:-1,u=Object(e);(r?i--:++i<o)&&!1!==n(u[i],i,u););return e}}(function(t,r){return t&&Ne(t,r,ue)}),Ie=Le;function Ue(t,r){var e=-1,n=ie(t)?Array(t.length):[];return Ie(t,function(t,o,i){n[++e]=r(t,o,i)}),n}function Ve(t,r){return(a(t)?ot:Ue)(t,Be(r))}function Ge(t,r){for(var e=-1,n=null==t?0:t.length;++e<n&&!1!==r(t[e],e,t););return t}function We(t,r){var e;return(a(t)?Ge:Ie)(t,"function"==typeof(e=r)?e:Te)}var Je=qe("length"),Ke="\\ud800-\\udfff",Qe="["+Ke+"]",Xe="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ye="\\ud83c[\\udffb-\\udfff]",Ze="[^"+Ke+"]",tn="(?:\\ud83c[\\udde6-\\uddff]){2}",rn="[\\ud800-\\udbff][\\udc00-\\udfff]",en="(?:"+Xe+"|"+Ye+")"+"?",nn="[\\ufe0e\\ufe0f]?",on=nn+en+("(?:\\u200d(?:"+[Ze,tn,rn].join("|")+")"+nn+en+")*"),un="(?:"+[Ze+Xe+"?",Xe,tn,rn,Qe].join("|")+")",an=RegExp(Ye+"(?="+Ye+")|"+un+on,"g");function fn(t){return rr(t)?function(t){for(var r=an.lastIndex=0;an.test(t);)++r;return r}(t):Je(t)}function cn(t){if(null==t)return 0;if(ie(t))return"string"==typeof(r=t)||!a(r)&&w(r)&&"[object String]"==y(r)?fn(t):t.length;var r,e=Se(t);return"[object Map]"==e||"[object Set]"==e?t.size:oe(t).length}var ln=s?s.isConcatSpreadable:void 0;function sn(t){return a(t)||Tr(t)||!!(ln&&t&&t[ln])}function hn(t,r,e,n,o){var i=-1,u=t.length;for(e||(e=sn),o||(o=[]);++i<u;){var a=t[i];r>0&&e(a)?r>1?hn(a,r-1,e,n,o):xr(o,a):n||(o[o.length]=a)}return o}function dn(t,r){if(t!==r){var e=void 0!==t,n=null===t,o=t==t,i=m(t),u=void 0!==r,a=null===r,f=r==r,c=m(r);if(!a&&!c&&!i&&t>r||i&&u&&f&&!a&&!c||n&&u&&f||!e&&f||!o)return 1;if(!n&&!i&&!c&&t<r||c&&e&&o&&!n&&!i||a&&e&&o||!u&&o||!f)return-1}return 0}function gn(t,r,e){r=r.length?ot(r,function(t){return a(t)?function(r){return st(r,1===t.length?t[0]:t)}:t}):[Te];var n=-1;return r=ot(r,Vr(Be)),function(t,r){var e=t.length;for(t.sort(r);e--;)t[e]=t[e].value;return t}(Ue(t,function(t,e,o){return{criteria:ot(r,function(r){return r(t)}),index:++n,value:t}}),function(t,r){return function(t,r,e){for(var n=-1,o=t.criteria,i=r.criteria,u=o.length,a=e.length;++n<u;){var f=dn(o[n],i[n]);if(f)return n>=a?f:f*("desc"==e[n]?-1:1)}return t.index-r.index}(t,r,e)})}var bn=Math.max;var pn=function(){try{var t=C(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),vn=pn,yn=vn?function(t,r){return vn(t,"toString",{configurable:!0,enumerable:!1,value:(e=r,function(){return e}),writable:!0});var e}:Te,wn=yn,mn=Date.now;var _n=function(t){var r=0,e=0;return function(){var n=mn(),o=16-(n-e);if(e=n,o>0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(wn),jn=_n;function $n(t,r,e){if(!S(e))return!1;var n=typeof r;return!!("number"==n?ie(e)&&Lr(r,e.length):"string"==n&&r in e)&&I(e[r],t)}var Sn=function(t,r){return jn(function(t,r,e){return r=bn(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,i=bn(n.length-r,0),u=Array(i);++o<i;)u[o]=n[r+o];o=-1;for(var a=Array(r+1);++o<r;)a[o]=n[o];return a[r]=e(u),function(t,r,e){switch(e.length){case 0:return t.call(r);case 1:return t.call(r,e[0]);case 2:return t.call(r,e[0],e[1]);case 3:return t.call(r,e[0],e[1],e[2])}return t.apply(r,e)}(t,this,a)}}(t,r,Te),t+"")}(function(t,r){if(null==t)return[];var e=r.length;return e>1&&$n(t,r[0],r[1])?r=[]:e>2&&$n(r[0],r[1],r[2])&&(r=[r[0]]),gn(t,hn(r,1),[])}),kn=Sn;function xn(t){return ft(t).toLowerCase()}function On(t){return ft(t).toUpperCase()}function En(t){return"[object Object]"===Object.prototype.toString.call(t)}function An(t){if(En(t)){for(let r in t)return!0;return!1}return!1}function Pn(t){if(!Ut(t))return!1;return Kt(t)>=0}function Hn(t,r){return gt(t)&&Pn(r)?0===(r=Kt(r))?"":t.substring(0,r):""}function Rn(t,r){return gt(t)&&Pn(r)?0===(r=Kt(r))?t:function(t,r){if(!gt(t))return"";if(!Pn(r))return"";if(0===(r=Kt(r)))return"";let e=t.length-r;return e<0&&(e=0),t.substring(e,e+r)}(t,t.length-r):""}function zn(t,r,e){if(!gt(t))return"";if(!gt(r))return"";if(!dt(e))return"";return String(t).replaceAll(r,e)}function Mn(t,r){if(!gt(t))return[];if(!gt(r))return[];let e=function(t,r){return gt(t)&&gt(r)?t.split(r):[]}(t,r);e=Ve(e,br);let n=[];return We(e,function(t){gt(t)&&n.push(t)}),n}function Fn(t){if(!gt(t)&&!Lt(t)&&!m(t))return"";let r="";try{r=String(t)}catch(t){}try{r=t.toString()}catch(t){}return r}function Tn(t,r){return!!En(t)&&(!(!gt(r)&&!Lt(r))&&r in t)}function qn(t,r,e=1){return gt(t)&&Pn(r)?(e=Qt(e)?Kt(e):1,t.substring(r,r+e)):""}let Cn={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};function Bn(t){return Nn(t,1)}function Dn(t){return Nn(t,360)}function Nn(t,r=1){if(t.indexOf("%")>=0){if(!Lt(t=zn(t,"%","")))throw new Error("invalid color: value is not a number");t=It(t)/100}else{if(!Lt(t))throw new Error("invalid color: value is not a number");t=It(t)/r}if(t>1)throw new Error("invalid color: value > 1");if(t<0)throw new Error("invalid color: value < 0");return t}function Ln(t){if(!Lt(t))throw new Error("invalid color: value is not a number");if((t=It(t))>1)throw new Error("invalid color: value > 1");if(t<0)throw new Error("invalid color: value < 0");return t}function In(t,r="rgba"){if(e=t,"[object Array]"!==Object.prototype.toString.call(e))throw new Error("invalid colors array");var e;let n=ht(t,0,0),o=ht(t,1,0),i=ht(t,2,0),u=ht(t,3,1);if(4!==cn(r=r.split("")))throw new Error("tar.length !== 4");let a=ht(r,0),f=ht(r,1),c=ht(r,2),l=ht(r,3);return{[a]:n,[f]:o,[c]:i,[l]:u}}function Un(t){let r=(t=Rn(t,1)).length;if(2===r)t=`${t}${t}${t}ff`;else if(3===r){let r=qn(t,0,1),e=qn(t,1,1),n=qn(t,2,1);t=`${r}${r}${e}${e}${n}${n}ff`}else if(6===r)t=`${t}ff`;else if(8!==r)throw new Error("invalid hex color");function e(t){if(2!==t.length)throw new Error("hex.length of color is not equal to 2");if(!Lt(t=parseInt(t,16)))throw new Error("invalid hex of color");return(t=It(t))/255}return{r:e(qn(t,0,2)),g:e(qn(t,2,2)),b:e(qn(t,4,2)),a:e(qn(t,6,2))}}function Vn(t){return t=In(t=Ve(t,(t,r)=>r<=2?Nn(t,255):3===r?Ln(t):null),"rgba")}function Gn(t){return t=to(t=In(t=Ve(t,(t,r)=>0===r?Dn(t):1===r||2===r?Bn(t):3===r?Ln(t):null),"hsla"))}function Wn(t){return t=ro(t=In(t=Ve(t,(t,r)=>0===r?Dn(t):1===r||2===r?Bn(t):3===r?Ln(t):null),"hsva"))}function Jn(t){if("transparent"===t)return{r:0,g:0,b:0,a:0};if(function(t){return Tn(Cn,t)}(t))return Un(t=`#${Cn[t]}`);if(function(t){return"#"===Hn(t,1)&&(!!/[0-9A-Fa-f]{2}/g.test(t)||(!!/[0-9A-Fa-f]{3}/g.test(t)||(!!/[0-9A-Fa-f]{6}/g.test(t)||!!/[0-9A-Fa-f]{8}/g.test(t))))}(t))return Un(t);if(function(t){return"rgb"===Hn(t,3)||"rgba"===Hn(t,4)}(t))return function(t){return t=zn(t,"rgba",""),t=zn(t,"rgb",""),Vn(Mn(t=zn(t=t.replace(/[()]/g,""),","," ")," "))}(t);if(function(t){return"hsl"===Hn(t,3)||"hsla"===Hn(t,4)}(t))return function(t){return t=zn(t,"hsla",""),t=zn(t,"hsl",""),Gn(Mn(t=zn(t=t.replace(/[()]/g,""),","," ")," "))}(t);if(function(t){return"hsv"===Hn(t,3)||"hsva"===Hn(t,4)}(t))return function(t){return t=zn(t,"hsva",""),t=zn(t,"hsv",""),Wn(Mn(t=zn(t=t.replace(/[()]/g,""),","," ")," "))}(t);throw new Error("format of color string is not hex-color, name-color, rgba, hsla, hsva")}function Kn(t,r){return!!Tn(t,r=xn(r))||!!Tn(t,r=On(r))}function Qn(t,r,e){let n;return n=ht(t,r,null),null!==n?n:(n=ht(t,r=On(r),null),null!==n?n:e)}function Xn(t){if(function(t){let r=Kn(t,"r"),e=Kn(t,"g"),n=Kn(t,"b");return r&&e&&n}(t))return function(t){let r=[Qn(t,"r",null),Qn(t,"g",null),Qn(t,"b",null),Qn(t,"a",1)];return r=Ve(r,Fn),Vn(r)}(t);if(function(t){let r=Kn(t,"h"),e=Kn(t,"s"),n=Kn(t,"l");return r&&e&&n}(t))return function(t){let r=[Qn(t,"h",null),Qn(t,"s",null),Qn(t,"l",null),Qn(t,"a",1)];return r=Ve(r,Fn),Gn(r)}(t);if(function(t){let r=Kn(t,"h"),e=Kn(t,"s"),n=Kn(t,"v");return r&&e&&n}(t))return function(t){let r=[Qn(t,"h",null),Qn(t,"s",null),Qn(t,"v",null),Qn(t,"a",1)];return r=Ve(r,Fn),Wn(r)}(t);throw new Error("color object is not one of rgba, hsla, hsva")}function Yn(t){let r,e,n=t.r,o=t.g,i=t.b,u=Math.max(n,o,i),a=Math.min(n,o,i),f=(u+a)/2;if(u===a)r=e=0;else{let t=u-a;switch(e=f>.5?t/(2-u-a):t/(u+a),u){case n:r=(o-i)/t+(o<i?6:0);break;case o:r=(i-n)/t+2;break;case i:r=(n-o)/t+4}r/=6}return{h:r,s:e,l:f,a:t.a}}function Zn(t){let r,e,n=t.r,o=t.g,i=t.b,u=Math.max(n,o,i),a=Math.min(n,o,i),f=u,c=u-a;if(e=0===u?0:c/u,u===a)r=0;else{switch(u){case n:r=(o-i)/c+(o<i?6:0);break;case o:r=(i-n)/c+2;break;case i:r=(n-o)/c+4}r/=6}return{h:r,s:e,v:f,a:t.a}}function to(t){let r,e,n,o=t.h,i=t.s,u=t.l;function a(t,r,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?t+6*(r-t)*e:e<.5?r:e<2/3?t+(r-t)*(2/3-e)*6:t}if(0===i)r=e=n=u;else{let t=u<.5?u*(1+i):u+i-u*i,f=2*u-t;r=a(f,t,o+1/3),e=a(f,t,o),n=a(f,t,o-1/3)}return{r:r,g:e,b:n,a:t.a}}function ro(t){let r,e,n,o=t.h,i=t.s,u=t.v,a=Math.floor(6*o),f=6*o-a,c=u*(1-i),l=u*(1-f*i),s=u*(1-(1-f)*i);switch(a%6){case 0:r=u,e=s,n=c;break;case 1:r=l,e=u,n=c;break;case 2:r=c,e=u,n=s;break;case 3:r=c,e=l,n=u;break;case 4:r=s,e=c,n=u;break;case 5:r=u,e=c,n=l}return{r:r,g:e,b:n,a:t.a}}function eo(t){let r=Math.round(255*t).toString(16);if(1===r.length)return`0${r}`;if(2===r.length)return r;throw new Error("invalid value")}function no(t,r=!0){let e=t.r,n=t.g,o=t.b,i=t.a,u=`${eo(e)}${eo(n)}${eo(o)}`;return r&&(u=`${u}${eo(i)}`),u}function oo(t){return Math.min(1,Math.max(0,t))}function io(t,r){if(!gt(r))throw new Error("fmtOutput is not a string");if(!Do[r])throw console.log(`fmtOutput must be [${ue(Do)}]`),new Error("invalid fmtOutput");return t=Do[r](t)}function uo(t,r,e="toRgbString"){if(r<0||r>1)throw new Error("amount < 0 or > 1");let n=Yn(t);return n.h+=r,n.h=n.h%1,io(to(n),e)}function ao(t,r,e,n,o="toRgbString"){if(r<0||r>1)throw new Error("w1 < 0 or > 1");if(n<0||n>1)throw new Error("w1 < 0 or > 1");return io({r:t.r*r+e.r*n,g:t.g*r+e.g*n,b:t.b*r+e.b*n,a:t.a*r+e.a*n},o)}function fo(t){return`${Jt(100*t,1)}%`}function co(t){return Jt(t,0)}function lo(t){return Jt(t,3)}function so(t){return{r:co(255*t.r),g:co(255*t.g),b:co(255*t.b)}}function ho(t){return`rgb(${co(255*t.r)}, ${co(255*t.g)}, ${co(255*t.b)})`}function go(t){return{r:co(255*t.r),g:co(255*t.g),b:co(255*t.b),a:lo(t.a)}}function bo(t){return`rgba(${co(255*t.r)}, ${co(255*t.g)}, ${co(255*t.b)}, ${lo(t.a)})`}function po(t){let r=Yn(t);return{h:co(360*r.h),s:lo(r.s),l:lo(r.l)}}function vo(t){let r=Yn(t);return`hsl(${co(360*r.h)}, ${lo(r.s)}, ${lo(r.l)})`}function yo(t){let r=Yn(t);return{h:co(360*r.h),s:lo(r.s),l:lo(r.l),a:lo(r.a)}}function wo(t){let r=Yn(t);return`hsla(${co(360*r.h)}, ${lo(r.s)}, ${lo(r.l)}, ${lo(r.a)})`}function mo(t){let r=Zn(t);return{h:co(360*r.h),s:lo(r.s),v:lo(r.v)}}function _o(t){let r=Zn(t);return`hsv(${co(360*r.h)}, ${lo(r.s)}, ${lo(r.v)})`}function jo(t){let r=Zn(t);return{h:co(360*r.h),s:lo(r.s),v:lo(r.v),a:lo(r.a)}}function $o(t){let r=Zn(t);return`hsva(${co(360*r.h)}, ${lo(r.s)}, ${lo(r.v)}, ${lo(r.a)})`}function So(t){return{r:fo(t.r),g:fo(t.g),b:fo(t.b)}}function ko(t){return`rgb(${fo(t.r)}, ${fo(t.g)}, ${fo(t.b)})`}function xo(t){return{r:fo(t.r),g:fo(t.g),b:fo(t.b),a:lo(t.a)}}function Oo(t){return`rgba(${fo(t.r)}, ${fo(t.g)}, ${fo(t.b)}, ${lo(t.a)})`}function Eo(t){let r=Yn(t);return{h:co(360*r.h),s:fo(r.s),l:fo(r.l)}}function Ao(t){let r=Yn(t);return`hsl(${co(360*r.h)}, ${fo(r.s)}, ${fo(r.l)})`}function Po(t){let r=Yn(t);return{h:co(360*r.h),s:fo(r.s),l:fo(r.l),a:lo(r.a)}}function Ho(t){let r=Yn(t);return`hsla(${co(360*r.h)}, ${fo(r.s)}, ${fo(r.l)}, ${lo(r.a)})`}function Ro(t){let r=Zn(t);return{h:co(360*r.h),s:fo(r.s),v:fo(r.v)}}function zo(t){let r=Zn(t);return`hsv(${co(360*r.h)}, ${fo(r.s)}, ${fo(r.v)})`}function Mo(t){let r=Zn(t);return{h:co(360*r.h),s:fo(r.s),v:fo(r.v),a:lo(r.a)}}function Fo(t){let r=Zn(t);return`hsva(${co(360*r.h)}, ${fo(r.s)}, ${fo(r.v)}, ${lo(r.a)})`}function To(t){let r=function(t){return no(t,!1)}(t);return`#${r}`}function qo(t){return`#${no(t)}`}function Co(t){let r=null,e=null,n=null;if(gt(t))r=xn(br(t));else{if(!An(t))throw console.log("color=",t),new Error("color is not a string or an object");e=t}if(null!==r)try{n=Jn(r)}catch(t){throw console.log(t),new Error(`can not parse color: ${r}`)}else if(null!==e)try{n=Xn(e)}catch(t){throw console.log(t),new Error(`can not parse color: ${JSON.stringify(e)}`)}return n}function Bo(t){if(!An(t))return console.log("gradient is not an effective object"),t=>`rgb(${255*(t=Math.min(Math.max(t,0),1))},${255*t},${255*t})`;let r=[];return We(t,(t,e)=>{r.push([It(e),go(Co(t)),t])}),r=kn(r,0),function(t){let e=null;for(let n=1;n<r.length;n++){let o=r[n-1][0],i=r[n-1][1],u=r[n][0],a=r[n][1];if(o<=t&&u>=t){let r=(u-t)/(u-o),n=(t-o)/(u-o);e=ao(Co(i),r,Co(a),n,"toRgbaString");break}}return e}}let Do={toRgb:so,toRgbString:ho,toRgba:go,toRgbaString:bo,toHsl:po,toHslString:vo,toHsla:yo,toHslaString:wo,toHsv:mo,toHsvString:_o,toHsva:jo,toHsvaString:$o,toRgbP:So,toRgbPString:ko,toRgbaP:xo,toRgbaPString:Oo,toHslP:Eo,toHslPString:Ao,toHslaP:Po,toHslaPString:Ho,toHsvP:Ro,toHsvPString:zo,toHsvaP:Mo,toHsvaPString:Fo,toHexString:To,toHex8String:qo};var No={toRgb:t=>so(Co(t)),toRgbString:t=>ho(Co(t)),toRgba:t=>go(Co(t)),toRgbaString:t=>bo(Co(t)),toHsl:t=>po(Co(t)),toHslString:t=>vo(Co(t)),toHsla:t=>yo(Co(t)),toHslaString:t=>wo(Co(t)),toHsv:t=>mo(Co(t)),toHsvString:t=>_o(Co(t)),toHsva:t=>jo(Co(t)),toHsvaString:t=>$o(Co(t)),toRgbP:t=>So(Co(t)),toRgbPString:t=>ko(Co(t)),toRgbaP:t=>xo(Co(t)),toRgbaPString:t=>Oo(Co(t)),toHslP:t=>Eo(Co(t)),toHslPString:t=>Ao(Co(t)),toHslaP:t=>Po(Co(t)),toHslaPString:t=>Ho(Co(t)),toHsvP:t=>Ro(Co(t)),toHsvPString:t=>zo(Co(t)),toHsvaP:t=>Mo(Co(t)),toHsvaPString:t=>Fo(Co(t)),toHexString:t=>To(Co(t)),toHex8String:t=>qo(Co(t)),modSaturate:(t,r,e)=>function(t,r,e="toRgbString"){if(r<0||r>1)throw new Error("amount < 0 or > 1");let n=Yn(t);return n.s+=r,n.s=oo(n.s),io(to(n),e)}(Co(t),r,e),modGrey:(t,r)=>function(t,r="toRgbString"){let e=Yn(t);return e.s=0,io(to(e),r)}(Co(t),r),modLighten:(t,r,e)=>function(t,r,e="toRgbString"){if(r<0||r>1)throw new Error("amount < 0 or > 1");let n=Yn(t);return n.l+=r,n.l=oo(n.l),io(to(n),e)}(Co(t),r,e),modBrighten:(t,r,e)=>function(t,r,e="toRgbString"){if(r<0||r>1)throw new Error("amount < 0 or > 1");return t.r+=r,t.r=oo(t.r),t.g+=r,t.g=oo(t.g),t.b+=r,t.b=oo(t.b),io(t,e)}(Co(t),r,e),modHue:(t,r,e)=>uo(Co(t),r,e),modComplement:(t,r)=>function(t,r="toRgbString"){return uo(t,.5,r)}(Co(t),r),spreadHue:(t,r,e)=>function(t,r,e="toRgbString"){if(!Ut(r))throw new Error("num is not an integer");if((r=Kt(r))<=1)return[t];let n=Yn(t),o=1/r,i=[];for(let t=0;t<r;t++)i.push(io(to(n),e)),n.h+=o,n.h=n.h%1;return i}(Co(t),r,e),spreadMonochromatic:(t,r,e)=>function(t,r,e="toRgbString"){if(!Ut(r))throw new Error("num is not an integer");if((r=Kt(r))<=1)return[t];let n=Zn(t);n.s=1,n.l=1;let o=1/r,i=[];for(let t=0;t<r;t++)i.push(io(ro(n),e)),n.h-=o,n.l-=o;return i}(Co(t),r,e),mix:(t,r,e,n,o)=>ao(Co(t),r,Co(e),n,o),getBrightness:t=>function(t){if(1!==t.a)throw new Error("alpha of color can not be equal to 1");return(299*t.r+587*t.g+114*t.b)/1e3}(Co(t)),getLuminance:t=>function(t){if(1!==t.a)throw new Error("alpha of color can not be equal to 1");let r,e,n,o=t.r,i=t.g,u=t.b;return r=o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4),e=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4),n=u<=.03928?u/12.92:Math.pow((u+.055)/1.055,2.4),.2126*r+.7152*e+.0722*n}(Co(t)),interp:Bo};async function Lo(r){let e=t.readFileSync(r);return u.imdecode(e)}async function Io(r,e){let n=u.imencode(".png",e);t.writeFileSync(r,n)}async function Uo(t,r,e,n={}){let o=ht(n,"useToGray");Pt(o)||(o=!1);let i=t.resize(Math.floor(t.rows*e),Math.floor(t.cols*e));if(i.rows<10||i.cols<10)throw new Error(`縮放後檢測尺寸過小: [imgTarResize:${i.cols}x${i.rows}]`);if(i.rows>r.rows||i.cols>r.cols)throw new Error(`縮放後檢測>截圖尺寸: [imgScreen:${r.cols}x${r.rows}] > [imgTarResize:${i.cols}x${i.rows}]`);o&&(r=r.bgrToGray(),i=i.bgrToGray());let a=r.matchTemplate(i,u.TM_CCOEFF_NORMED),{maxVal:f,maxLoc:c}=a.minMaxLoc();return{similarity:f,x:c.x,y:c.y,width:i.cols,height:i.rows,scale:e}}let Vo={calcSimilarity:async function(t,r,e,n={}){let o=await Lo(r),i=await Lo(t);return await Uo(i,o,e,n)},calcSimilarityAndDraw:async function(t,r,e,n,o={}){let i=ht(o,"drawBorderWidth");Qt(i)||(i=2);let a=ht(o,"drawBorderColor");gt(a)||(a="#f00"),a=No.toRgb(a);let f=await Lo(r),c=await Lo(t),l=await Uo(c,f,e,o),s=new u.Point2(l.x,l.y),h=new u.Point2(l.x+l.width,l.y+l.height);return f.drawRectangle(s,h,new u.Vec3(a.b,a.g,a.r),i,u.LINE_8),await Io(n,f),{...l,fp:n}},screenAndDrawCircle:async function(t,r,e,n,o,i,a,f={}){let c=ht(f,"drawCircleRadius");Qt(c)||(c=5);let l=ht(f,"drawBorderWidth");Qt(l)||(l=2);let s=ht(f,"drawBorderColor");gt(s)||(s="#f00"),s=No.toRgb(s),await At.screenSave(t,r,e,n,a);let h=await Lo(a),d=new u.Point2(o,i);h.drawCircle(d,c,new u.Vec3(s.b,s.g,s.r),l,u.LINE_8),await Io(a,h)}};return async(t,r={})=>{let e=!1,n=ht(r,"fdTar",null);if(gt(n)||(n="./pic"),!vt(n))throw new Error(`opt.fdTar[${r.fdTar}] is not a folder`);let o=ht(r,"fdTmp",null);gt(o)||(o="./_tmp"),vt(o)||yt(o);let i=!0;"color"===ht(r,"modeCompare","gray")&&(i=!1);let u=`${n}/${t}.png`;if(!bt(u))throw new Error(`fpTar[${u}] is not a file`);let a=`${o}/${t}.all.png`,f=`${o}/${t}.det.png`,c=ht(r,"x",0),l=ht(r,"y",0),s=ht(r,"width",1920),h=ht(r,"height",1080),d=ht(r,"threshold",.9),g=ht(r,"withClick",!0),b=ht(r,"withDrag",!1);await At.screenSave(c,l,s,h,a);let p=await Vo.calcSimilarityAndDraw(u,a,1,f,{useToGray:i});console.log(t,"similarity",p.similarity);let v=(t=>({cx:t.x+t.width/2,cy:t.y+t.height/2}))(p);if(p={...p,...v},p.similarity>d){if(g){let t=ht(r,"dx",0),e=ht(r,"dy",0);await Et.mouseClick(p.cx+c+t,p.cy+l+e)}if(b){let t=ht(r,"dx1",0),e=ht(r,"dy1",0),n=ht(r,"dx2",0),o=ht(r,"dy2",0);await Et.mouseDrag(p.cx+c+t,p.cy+l+e,p.cx+c+n,p.cy+l+o)}e=!0}return e}}); //# sourceMappingURL=ck-pic.umd.js.map