phaser3-rex-plugins
Version:
2 lines (1 loc) • 16.9 kB
JavaScript
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).rexwebfontloaderplugin=n();}(undefined,(function(){function t(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function n(t,n){for(var e=0;e<n.length;e++){var i=n[e];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,(o=i.key,r=void 0,"symbol"==typeof(r=function(t,n){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,n||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===n?String:Number)(t)}(o,"string"))?r:String(r)),i);}var o,r;}function e(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function i(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),n&&r(t,n);}function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}function r(t,n){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},r(t,n)}function s(t,n){if(n&&("object"==typeof n||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function a(t){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return !1;if(Reflect.construct.sham)return !1;if("function"==typeof Proxy)return !0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return !1}}();return function(){var e,i=o(t);if(n){var r=o(this).constructor;e=Reflect.construct(i,arguments,r);}else e=i.apply(this,arguments);return s(this,e)}}function f(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var c={exports:{}};!function(t){!function(){function n(t,n,e){return t.call.apply(t.bind,arguments)}function e(t,n,e){if(!t)throw Error();if(2<arguments.length){var i=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,i),t.apply(n,e)}}return function(){return t.apply(n,arguments)}}function i(t,o,r){return (i=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?n:e).apply(null,arguments)}var o=Date.now||function(){return +new Date};function r(t,n){this.a=t,this.o=n||t,this.c=this.o.document;}var s=!!window.FontFace;function a(t,n,e,i){if(n=t.c.createElement(n),e)for(var o in e)e.hasOwnProperty(o)&&("style"==o?n.style.cssText=e[o]:n.setAttribute(o,e[o]));return i&&n.appendChild(t.c.createTextNode(i)),n}function f(t,n,e){(t=t.c.getElementsByTagName(n)[0])||(t=document.documentElement),t.insertBefore(e,t.lastChild);}function c(t){t.parentNode&&t.parentNode.removeChild(t);}function l(t,n,e){n=n||[],e=e||[];for(var i=t.className.split(/\s+/),o=0;o<n.length;o+=1){for(var r=!1,s=0;s<i.length;s+=1)if(n[o]===i[s]){r=!0;break}r||i.push(n[o]);}for(n=[],o=0;o<i.length;o+=1){for(r=!1,s=0;s<e.length;s+=1)if(i[o]===e[s]){r=!0;break}r||n.push(i[o]);}t.className=n.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"");}function h(t,n){for(var e=t.className.split(/\s+/),i=0,o=e.length;i<o;i++)if(e[i]==n)return !0;return !1}function u(t,n,e){function i(){l&&o&&r&&(l(c),l=null);}n=a(t,"link",{rel:"stylesheet",href:n,media:"all"});var o=!1,r=!0,c=null,l=e||null;s?(n.onload=function(){o=!0,i();},n.onerror=function(){o=!0,c=Error("Stylesheet failed to load"),i();}):setTimeout((function(){o=!0,i();}),0),f(t,"head",n);}function p(t,n,e,i){var o=t.c.getElementsByTagName("head")[0];if(o){var r=a(t,"script",{src:n}),s=!1;return r.onload=r.onreadystatechange=function(){s||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(s=!0,e&&e(null),r.onload=r.onreadystatechange=null,"HEAD"==r.parentNode.tagName&&o.removeChild(r));},o.appendChild(r),setTimeout((function(){s||(s=!0,e&&e(Error("Script load timeout")));}),i||5e3),r}return null}function d(){this.a=0,this.c=null;}function v(t){return t.a++,function(){t.a--,y(t);}}function g(t,n){t.c=n,y(t);}function y(t){0==t.a&&t.c&&(t.c(),t.c=null);}function w(t){this.a=t||"-";}function m(t,n){this.c=t,this.f=4,this.a="n";var e=(n||"n4").match(/^([nio])([1-9])$/i);e&&(this.a=e[1],this.f=parseInt(e[2],10));}function b(t){var n=[];t=t.split(/,\s*/);for(var e=0;e<t.length;e++){var i=t[e].replace(/['"]/g,"");-1!=i.indexOf(" ")||/^\d/.test(i)?n.push("'"+i+"'"):n.push(i);}return n.join(",")}function x(t){return t.a+t.f}function j(t){var n="normal";return "o"===t.a?n="oblique":"i"===t.a&&(n="italic"),n}function T(t){var n=4,e="n",i=null;return t&&((i=t.match(/(normal|oblique|italic)/i))&&i[1]&&(e=i[1].substr(0,1).toLowerCase()),(i=t.match(/([1-9]00|normal|bold)/i))&&i[1]&&(/bold/i.test(i[1])?n=7:/[1-9]00/.test(i[1])&&(n=parseInt(i[1].substr(0,1),10)))),e+n}function _(t,n){this.c=t,this.f=t.o.document.documentElement,this.h=n,this.a=new w("-"),this.j=!1!==n.events,this.g=!1!==n.classes;}function S(t){if(t.g){var n=h(t.f,t.a.c("wf","active")),e=[],i=[t.a.c("wf","loading")];n||e.push(t.a.c("wf","inactive")),l(t.f,e,i);}k(t,"inactive");}function k(t,n,e){t.j&&t.h[n]&&(e?t.h[n](e.c,x(e)):t.h[n]());}function P(){this.c={};}function O(t,n){this.c=t,this.f=n,this.a=a(this.c,"span",{"aria-hidden":"true"},this.f);}function F(t){f(t.c,"body",t.a);}function E(t){return "display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+b(t.c)+";font-style:"+j(t)+";font-weight:"+t.f+"00;"}function C(t,n,e,i,o,r){this.g=t,this.j=n,this.a=i,this.c=e,this.f=o||3e3,this.h=r||void 0;}function I(t,n,e,i,o,r,s){this.v=t,this.B=n,this.c=e,this.a=i,this.s=s||"BESbswy",this.f={},this.w=o||3e3,this.u=r||null,this.m=this.j=this.h=this.g=null,this.g=new O(this.c,this.s),this.h=new O(this.c,this.s),this.j=new O(this.c,this.s),this.m=new O(this.c,this.s),t=E(t=new m(this.a.c+",serif",x(this.a))),this.g.a.style.cssText=t,t=E(t=new m(this.a.c+",sans-serif",x(this.a))),this.h.a.style.cssText=t,t=E(t=new m("serif",x(this.a))),this.j.a.style.cssText=t,t=E(t=new m("sans-serif",x(this.a))),this.m.a.style.cssText=t,F(this.g),F(this.h),F(this.j),F(this.m);}w.prototype.c=function(t){for(var n=[],e=0;e<arguments.length;e++)n.push(arguments[e].replace(/[\W_]+/g,"").toLowerCase());return n.join(this.a)},C.prototype.start=function(){var t=this.c.o.document,n=this,e=o(),i=new Promise((function(i,r){!function s(){o()-e>=n.f?r():t.fonts.load(function(t){return j(t)+" "+t.f+"00 300px "+b(t.c)}(n.a),n.h).then((function(t){1<=t.length?i():setTimeout(s,25);}),(function(){r();}));}();})),r=null,s=new Promise((function(t,e){r=setTimeout(e,n.f);}));Promise.race([s,i]).then((function(){r&&(clearTimeout(r),r=null),n.g(n.a);}),(function(){n.j(n.a);}));};var A={D:"serif",C:"sans-serif"},N=null;function W(){if(null===N){var t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);N=!!t&&(536>parseInt(t[1],10)||536===parseInt(t[1],10)&&11>=parseInt(t[2],10));}return N}function B(t,n,e){for(var i in A)if(A.hasOwnProperty(i)&&n===t.f[A[i]]&&e===t.f[A[i]])return !0;return !1}function L(t){var n,e=t.g.a.offsetWidth,r=t.h.a.offsetWidth;(n=e===t.f.serif&&r===t.f["sans-serif"])||(n=W()&&B(t,e,r)),n?o()-t.A>=t.w?W()&&B(t,e,r)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?R(t,t.v):R(t,t.B):function(t){setTimeout(i((function(){L(this);}),t),50);}(t):R(t,t.v);}function R(t,n){setTimeout(i((function(){c(this.g.a),c(this.h.a),c(this.j.a),c(this.m.a),n(this.a);}),t),0);}function D(t,n,e){this.c=t,this.a=n,this.f=0,this.m=this.j=!1,this.s=e;}I.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=o(),L(this);};var M=null;function U(t){0==--t.f&&t.j&&(t.m?((t=t.a).g&&l(t.f,[t.a.c("wf","active")],[t.a.c("wf","loading"),t.a.c("wf","inactive")]),k(t,"active")):S(t.a));}function $(t){this.j=t,this.a=new P,this.h=0,this.f=this.g=!0;}function q(t,n,e,o,r){var s=0==--t.h;(t.f||t.g)&&setTimeout((function(){var t=r||null,a=o||{};if(0===e.length&&s)S(n.a);else {n.f+=e.length,s&&(n.j=s);var f,c=[];for(f=0;f<e.length;f++){var h=e[f],u=a[h.c],p=n.a,d=h;if(p.g&&l(p.f,[p.a.c("wf",d.c,x(d).toString(),"loading")]),k(p,"fontloading",d),p=null,null===M)if(window.FontFace){d=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent);var v=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);M=d?42<parseInt(d[1],10):!v;}else M=!1;p=M?new C(i(n.g,n),i(n.h,n),n.c,h,n.s,u):new I(i(n.g,n),i(n.h,n),n.c,h,n.s,t,u),c.push(p);}for(f=0;f<c.length;f++)c[f].start();}}),0);}function G(t,n){this.c=t,this.a=n;}function H(t,n){this.c=t,this.a=n;}function V(t,n){this.c=t||z,this.a=[],this.f=[],this.g=n||"";}D.prototype.g=function(t){var n=this.a;n.g&&l(n.f,[n.a.c("wf",t.c,x(t).toString(),"active")],[n.a.c("wf",t.c,x(t).toString(),"loading"),n.a.c("wf",t.c,x(t).toString(),"inactive")]),k(n,"fontactive",t),this.m=!0,U(this);},D.prototype.h=function(t){var n=this.a;if(n.g){var e=h(n.f,n.a.c("wf",t.c,x(t).toString(),"active")),i=[],o=[n.a.c("wf",t.c,x(t).toString(),"loading")];e||i.push(n.a.c("wf",t.c,x(t).toString(),"inactive")),l(n.f,i,o);}k(n,"fontinactive",t),U(this);},$.prototype.load=function(t){this.c=new r(this.j,t.context||this.j),this.g=!1!==t.events,this.f=!1!==t.classes,function(t,n,e){var i=[],o=e.timeout;!function(t){t.g&&l(t.f,[t.a.c("wf","loading")]),k(t,"loading");}(n);i=function(t,n,e){var i,o=[];for(i in n)if(n.hasOwnProperty(i)){var r=t.c[i];r&&o.push(r(n[i],e));}return o}(t.a,e,t.c);var r=new D(t.c,n,o);for(t.h=i.length,n=0,e=i.length;n<e;n++)i[n].load((function(n,e,i){q(t,r,n,e,i);}));}(this,new _(this.c,t),t);},G.prototype.load=function(t){function n(){if(r["__mti_fntLst"+i]){var e,o=r["__mti_fntLst"+i](),s=[];if(o)for(var a=0;a<o.length;a++){var f=o[a].fontfamily;null!=o[a].fontStyle&&null!=o[a].fontWeight?(e=o[a].fontStyle+o[a].fontWeight,s.push(new m(f,e))):s.push(new m(f));}t(s);}else setTimeout((function(){n();}),50);}var e=this,i=e.a.projectId,o=e.a.version;if(i){var r=e.c.o;p(this.c,(e.a.api||"https://fast.fonts.net/jsapi")+"/"+i+".js"+(o?"?v="+o:""),(function(o){o?t([]):(r["__MonotypeConfiguration__"+i]=function(){return e.a},n());})).id="__MonotypeAPIScript__"+i;}else t([]);},H.prototype.load=function(t){var n,e,i=this.a.urls||[],o=this.a.families||[],r=this.a.testStrings||{},s=new d;for(n=0,e=i.length;n<e;n++)u(this.c,i[n],v(s));var a=[];for(n=0,e=o.length;n<e;n++)if((i=o[n].split(":"))[1])for(var f=i[1].split(","),c=0;c<f.length;c+=1)a.push(new m(i[0],f[c]));else a.push(new m(i[0]));g(s,(function(){t(a,r);}));};var z="https://fonts.googleapis.com/css";function K(t){this.f=t,this.a=[],this.c={};}var X={latin:"BESbswy","latin-ext":"çöüğş",cyrillic:"йяЖ",greek:"αβΣ",khmer:"កខគ",Hanuman:"កខគ"},J={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Q={i:"i",italic:"i",n:"n",normal:"n"},Y=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;function Z(t,n){this.c=t,this.a=n;}var tt={Arimo:!0,Cousine:!0,Tinos:!0};function nt(t,n){this.c=t,this.a=n;}function et(t,n){this.c=t,this.f=n,this.a=[];}Z.prototype.load=function(t){var n=new d,e=this.c,i=new V(this.a.api,this.a.text),o=this.a.families;!function(t,n){for(var e=n.length,i=0;i<e;i++){var o=n[i].split(":");3==o.length&&t.f.push(o.pop());var r="";2==o.length&&""!=o[1]&&(r=":"),t.a.push(o.join(r));}}(i,o);var r=new K(o);!function(t){for(var n=t.f.length,e=0;e<n;e++){var i=t.f[e].split(":"),o=i[0].replace(/\+/g," "),r=["n4"];if(2<=i.length){var s;if(s=[],a=i[1])for(var a,f=(a=a.split(",")).length,c=0;c<f;c++){var l;if((l=a[c]).match(/^[\w-]+$/))if(null==(h=Y.exec(l.toLowerCase())))l="";else {if(l=null==(l=h[2])||""==l?"n":Q[l],null==(h=h[1])||""==h)h="4";else var h=J[h]||(isNaN(h)?"4":h.substr(0,1));l=[l,h].join("");}else l="";l&&s.push(l);}0<s.length&&(r=s),3==i.length&&(s=[],0<(i=(i=i[2])?i.split(","):s).length&&(i=X[i[0]])&&(t.c[o]=i));}for(t.c[o]||(i=X[o])&&(t.c[o]=i),i=0;i<r.length;i+=1)t.a.push(new m(o,r[i]));}}(r),u(e,function(t){if(0==t.a.length)throw Error("No fonts to load!");if(-1!=t.c.indexOf("kit="))return t.c;for(var n=t.a.length,e=[],i=0;i<n;i++)e.push(t.a[i].replace(/ /g,"+"));return n=t.c+"?family="+e.join("%7C"),0<t.f.length&&(n+="&subset="+t.f.join(",")),0<t.g.length&&(n+="&text="+encodeURIComponent(t.g)),n}(i),v(n)),g(n,(function(){t(r.a,r.c,tt);}));},nt.prototype.load=function(t){var n=this.a.id,e=this.c.o;n?p(this.c,(this.a.api||"https://use.typekit.net")+"/"+n+".js",(function(n){if(n)t([]);else if(e.Typekit&&e.Typekit.config&&e.Typekit.config.fn){n=e.Typekit.config.fn;for(var i=[],o=0;o<n.length;o+=2)for(var r=n[o],s=n[o+1],a=0;a<s.length;a++)i.push(new m(r,s[a]));try{e.Typekit.load({events:!1,classes:!1,async:!0});}catch(t){}t(i);}}),2e3):t([]);},et.prototype.load=function(t){var n=this.f.id,e=this.c.o,i=this;n?(e.__webfontfontdeckmodule__||(e.__webfontfontdeckmodule__={}),e.__webfontfontdeckmodule__[n]=function(n,e){for(var o=0,r=e.fonts.length;o<r;++o){var s=e.fonts[o];i.a.push(new m(s.name,T("font-weight:"+s.weight+";font-style:"+s.style)));}t(i.a);},p(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+function(t){return t.o.location.hostname||t.a.location.hostname}(this.c)+"/"+n+".js",(function(n){n&&t([]);}))):t([]);};var it=new $(window);it.a.c.custom=function(t,n){return new H(n,t)},it.a.c.fontdeck=function(t,n){return new et(n,t)},it.a.c.monotype=function(t,n){return new G(n,t)},it.a.c.typekit=function(t,n){return new nt(n,t)},it.a.c.google=function(t,n){return new Z(n,t)};var ot={load:i(it.load,it)};t.exports?t.exports=ot:(window.WebFont=ot,window.WebFontConfig&&it.load(window.WebFontConfig));}();}(c);var l=f(c.exports),h=Phaser.Display.Canvas.CanvasPool,u=function(t,n){var e=h.create(),i=e.getContext("2d",{willReadFrequently:!0}),o="8px ".concat(t);i.font=o;var r=Math.ceil(i.measureText(n).width),s=r,a=2*s;r===e.width&&a===e.height||(e.width=r,e.height=a),i.fillStyle="#000",i.fillRect(0,0,r,a),i.textBaseline="alphabetic",i.fillStyle="#fff",i.font=o,i.fillText(n,0,s);for(var f=i.getImageData(0,0,r,a).data,c=!1,l=0,u=f.length;l<u;l+=4)if(f[l]>0){c=!0;break}return h.remove(e),c},p=Phaser.Loader.FILE_POPULATED,d=Phaser.Utils.Objects.GetValue,v=function(n){i(r,Phaser.Loader.File);var o=a(r);function r(){return t(this,r),o.apply(this,arguments)}return e(r,[{key:"load",value:function(){if(this.state===p)this.loader.nextFile(this,!0);else {var t=this.config;this.testString=d(t,"testString",void 0),void 0!==this.testString&&(this.testInterval=d(t,"testInterval",20),this.fontTests={},delete t.testString,delete t.testInterval),t.active=this.onLoad.bind(this),t.inactive=this.onError.bind(this),t.fontactive=this.onFontActive.bind(this),t.fontinactive=this.onFontInactive.bind(this),l.load(t);}}},{key:"onLoad",value:function(){if(void 0===this.testString)this.loader.nextFile(this,!0);else {var t=function(){this.testFonts()?this.loader.nextFile(this,!0):setTimeout(t,this.testInterval);}.bind(this);t();}}},{key:"onError",value:function(){this.loader.nextFile(this,!1);}},{key:"onFontActive",value:function(t,n){var e;void 0!==this.testString&&(void 0!==(e="string"==typeof this.testString?this.testString:this.testString[t])&&(this.fontTests[t]=e));this.loader.emit("webfontactive",this,t,n);}},{key:"onFontInactive",value:function(t,n){this.loader.emit("webfontinactive",this,t,n);}},{key:"testFonts",value:function(){var t=!0;for(var n in this.fontTests)u(n,this.fontTests[n])?delete this.fontTests[n]:t=!1;return t}}]),r}(),g=Phaser.Utils.Objects.IsPlainObject,y=function(t,n){return g(t)?(n=t).hasOwnProperty("config")?(n.type="webfont",n.url=""):n={key:"webfont",type:"webfont",url:"",config:n}:n={type:"webfont",url:"",key:t,config:n},this.addFile(new v(this,n)),this};return function(n){i(r,Phaser.Plugins.BasePlugin);var o=a(r);function r(n){var e;return t(this,r),e=o.call(this,n),n.registerFileType("rexWebFont",y),e}return e(r,[{key:"addToScene",value:function(t){t.sys.load.rexWebFont=y;}}]),r}()}));