@metamask/design-system-react-native
Version:
1 lines • 32.4 kB
Source Map (JSON)
{"version":3,"file":"Blockies.utilities.mjs","sourceRoot":"","sources":["../../../../src/components/temp-components/Blockies/Blockies.utilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH;;;;;;GAMG;AACH,SAAS,KAAK,CAAC,MAAgB,EAAE,IAAY,EAAE,GAAG,IAAc;IAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACtC,uCAAuC;YACvC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC;KACF;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,CAAS;IACtB,sCAAsC;IACtC,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,MAAM,CAAC,YAAY;IACxB,sCAAsC;IACtC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG;IACf,sCAAsC;IACtC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG;IACf,sCAAsC;IACtC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG;IACd,sCAAsC;IACtC,CAAC,GAAG,GAAG,CACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,CAAS;IACzB,sCAAsC;IACtC,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,GAAG;IAyCP,YAAY,KAAa,EAAE,MAAc,EAAE,KAAa;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAErC,4DAA4D;QAC5D,IAAI,CAAC,SAAS;YACZ,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE5E,kCAAkC;QAClC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,uBAAuB;QAC3C,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,uBAAuB;QACzE,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,uBAAuB;QACzE,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,uBAAuB;QACzE,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,uBAAuB;QACzE,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,iBAAiB;QAErE,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7B,oCAAoC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;SACzB;QAED,+BAA+B;QAC/B,KAAK,CACH,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAC1B,MAAM,EACN,KAAK,CAAC,KAAK,CAAC,EACZ,KAAK,CAAC,MAAM,CAAC,EACb,UAAU,CACX,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAEvE,4BAA4B;QAC5B,sCAAsC;QACtC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAE7B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtD,mCAAmC;QACnC,sCAAsC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;YACrD,IAAI,IAAY,CAAC;YACjB,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;gBAC9B,IAAI,GAAG,MAAM,CAAC;gBACd,IAAI,GAAG,MAAM,CAAC;aACf;iBAAM;gBACL,sCAAsC;gBACtC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,GAAG,MAAM,CAAC;aACf;YACD,KAAK,CACH,IAAI,CAAC,MAAM;YACX,sCAAsC;YACtC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAC7C,IAAI,EACJ,QAAQ,CAAC,IAAI,CAAC;YACd,sCAAsC;YACtC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAChB,CAAC;SACH;QAED,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC7B,sCAAsC;gBACtC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACT,sCAAsC;oBACtC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;iBAC1C;qBAAM;oBACL,sCAAsC;oBACtC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;iBAC3B;aACF;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACpB;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,CAAS,EAAE,CAAS;QAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CACV,GAAW,EACX,KAAa,EACb,IAAY,EACZ,QAAgB,GAAG;QAEnB,sCAAsC;QACtC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAElE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;gBAC9B,OAAO,MAAM,CAAC;aACf;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAE7B,uCAAuC;YACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAEzB,MAAM,EAAE,GACN,mEAAmE,CAAC;QACtE,IAAI,EAAU,CAAC;QACf,IAAI,EAAU,CAAC;QACf,IAAI,EAAU,CAAC;QACf,IAAI,EAAU,CAAC;QACf,IAAI,EAAU,CAAC;QACf,IAAI,EAAU,CAAC;QACf,IAAI,EAAU,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,EAAE,CAAC;QAEX,GAAG;YACD,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrB,sCAAsC;YACtC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACb,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,sCAAsC;YACtC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACjC,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACb,EAAE,GAAG,EAAE,CAAC;aACT;iBAAM;gBACL,sCAAsC;gBACtC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACb,EAAE,GAAG,EAAE,CAAC;aACT;iBAAM;gBACL,sCAAsC;gBACtC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;aAChB;YACD,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC,IAAI,CAAC,CAAC;SACR,QAAQ,CAAC,GAAG,CAAC,EAAE;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACI,OAAO;QACZ,sDAAsD;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,sCAAsC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,2EAA2E;QAC9F,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;gBACvC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAClD,EAAE,IAAI,EAAE,CAAC;gBACT,CAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,EAAE,IAAI,IAAI,CAAC;oBACX,EAAE,IAAI,IAAI,CAAC;oBACX,CAAC,GAAG,IAAI,CAAC;iBACV;aACF;SACF;QACD,EAAE,IAAI,IAAI,CAAC;QACX,EAAE,IAAI,IAAI,CAAC;QACX,KAAK,CACH,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;QACnC,sCAAsC;QACtC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CACvB,CAAC;QAEF,kCAAkC;QAClC,MAAM,KAAK,GAAG,CAAC,GAAa,EAAE,IAAY,EAAE,IAAY,EAAQ,EAAE;YAChE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACpC,GAAG;oBACD,sCAAsC;oBACtC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;wBACvD,sCAAsC;wBACtC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;aAC7B;YACD,sCAAsC;YACtC,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnD,wBAAwB;QACxB,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;;;OAQG;IACI,QAAQ,CACb,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,KAAa;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC/C;SACF;IACH,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC9C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAI,CAAC,CAAC;KACb;IACD,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAI,CAAC,CAAC;KACb;IACD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;KACjC;IACD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,CAAC,CAAC;KACV;IACD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3C;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC9C,IAAI,CAAS,CAAC;IACd,IAAI,CAAS,CAAC;IACd,IAAI,CAAS,CAAC;IAEd,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa;KACrB;SAAM;QACL,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,2BAA2B;AAC3B,MAAM,QAAQ,GAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;AAEhF;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC3C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACjB;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,sCAAsC;YACtC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACjE;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,IAAI;IACX,gEAAgE;IAChE,sCAAsC;IACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5C,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW;IAClB,yCAAyC;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;IACnC,2DAA2D;IAC3D,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC3B,yFAAyF;IACzF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;IAEnD,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,oCAAoC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;IAEtC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAClC,IAAI,GAAG,GAAa,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;YACrC,+EAA+E;YAC/E,4BAA4B;YAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;SACnC;QACD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC,OAAO,EAAE,CAAC;QACZ,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,IAA8B;IAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpB,OAAO;QACL,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,WAAW,EAAE;QACpB,OAAO,EAAE,WAAW,EAAE;QACtB,SAAS,EAAE,WAAW,EAAE;QACxB,GAAG,IAAI;QACP,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,QAAQ;;AACZ,cAAK,GAA2B,EAAE,CAAC;AAG5C;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,KAAK,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrE,4EAA4E;IAC5E,2EAA2E;IAC3E,sEAAsE;IACtE,6DAA6D;IAC7D,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,qCAAqC;QACrC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;YAChB,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,CAAC,CAAC,QAAQ,CACR,GAAG,GAAG,IAAI,CAAC,KAAK,EAChB,GAAG,GAAG,IAAI,CAAC,KAAK,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,QAAQ,CACT,CAAC;SACH;KACF;IACD,MAAM,GAAG,GAAG,yBAAyB,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;IACrD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["/**\n * A handy class to calculate color values and generate PNG images.\n *\n * @version 1.0.0\n * @author Robert Eisele <robert@xarg.org>\n * @copyright Copyright (c) 2010, Robert Eisele\n * @see {@link http://www.xarg.org/2010/03/generate-client-side-png-files-using-javascript/}\n * @license BSD-3-Clause\n */\n\n// Type definitions\ntype BlockiesOptions = {\n seed: string;\n size?: number;\n scale?: number;\n color?: [number, number, number];\n bgcolor?: [number, number, number];\n spotcolor?: [number, number, number];\n};\n\ntype PaletteEntry = {\n [color: number]: string;\n};\n\ntype RGBAColor = [number, number, number, number];\ntype HSLColor = [number, number, number];\n\n/**\n * Writes string arguments to a buffer starting at the specified offset.\n *\n * @param buffer - The buffer to write to\n * @param offs - The offset to start writing at\n * @param args - The string arguments to write\n */\nfunction write(buffer: string[], offs: number, ...args: string[]): void {\n for (const arg of args) {\n for (let j = 0; j < arg.length; j += 1) {\n // eslint-disable-next-line no-plusplus\n buffer[offs++] = arg.charAt(j);\n }\n }\n}\n\n/**\n * Converts a 16-bit number to a 2-byte string.\n *\n * @param w - The number to convert\n * @returns A 2-byte string representation\n */\nfunction byte2(w: number): string {\n // eslint-disable-next-line no-bitwise\n return String.fromCharCode((w >> 8) & 255, w & 255);\n}\n\n/**\n * Converts a 32-bit number to a 4-byte string.\n *\n * @param w - The number to convert\n * @returns A 4-byte string representation\n */\nfunction byte4(w: number): string {\n return String.fromCharCode(\n // eslint-disable-next-line no-bitwise\n (w >> 24) & 255,\n // eslint-disable-next-line no-bitwise\n (w >> 16) & 255,\n // eslint-disable-next-line no-bitwise\n (w >> 8) & 255,\n // eslint-disable-next-line no-bitwise\n w & 255,\n );\n}\n\n/**\n * Converts a 16-bit number to a 2-byte string in little-endian format.\n *\n * @param w - The number to convert\n * @returns A 2-byte string representation in little-endian format\n */\nfunction byte2lsb(w: number): string {\n // eslint-disable-next-line no-bitwise\n return String.fromCharCode(w & 255, (w >> 8) & 255);\n}\n\n/**\n * PNG class for generating PNG images\n */\nclass PNG {\n public width: number;\n\n public height: number;\n\n public depth: number;\n\n public pix_size: number;\n\n public data_size: number;\n\n public ihdr_offs: number;\n\n public ihdr_size: number;\n\n public plte_offs: number;\n\n public plte_size: number;\n\n public trns_offs: number;\n\n public trns_size: number;\n\n public idat_offs: number;\n\n public idat_size: number;\n\n public iend_offs: number;\n\n public iend_size: number;\n\n public buffer_size: number;\n\n public buffer: string[];\n\n public palette: PaletteEntry;\n\n public pindex: number;\n\n private readonly _crc32: number[];\n\n constructor(width: number, height: number, depth: number) {\n this.width = width;\n this.height = height;\n this.depth = depth;\n\n // pixel data and row filter identifier size\n this.pix_size = height * (width + 1);\n\n // deflate header, pix_size, block headers, adler32 checksum\n this.data_size =\n 2 + this.pix_size + 5 * Math.floor((0xfffe + this.pix_size) / 0xffff) + 4;\n\n // offsets and sizes of Png chunks\n this.ihdr_offs = 0; // IHDR offset and size\n this.ihdr_size = 4 + 4 + 13 + 4;\n this.plte_offs = this.ihdr_offs + this.ihdr_size; // PLTE offset and size\n this.plte_size = 4 + 4 + 3 * depth + 4;\n this.trns_offs = this.plte_offs + this.plte_size; // tRNS offset and size\n this.trns_size = 4 + 4 + depth + 4;\n this.idat_offs = this.trns_offs + this.trns_size; // IDAT offset and size\n this.idat_size = 4 + 4 + this.data_size + 4;\n this.iend_offs = this.idat_offs + this.idat_size; // IEND offset and size\n this.iend_size = 4 + 4 + 4;\n this.buffer_size = this.iend_offs + this.iend_size; // total PNG size\n\n this.buffer = new Array(this.buffer_size);\n this.palette = {};\n this.pindex = 0;\n this._crc32 = new Array(256);\n\n // initialize buffer with zero bytes\n for (let i = 0; i < this.buffer_size; i += 1) {\n this.buffer[i] = '\\x00';\n }\n\n // initialize non-zero elements\n write(\n this.buffer,\n this.ihdr_offs,\n byte4(this.ihdr_size - 12),\n 'IHDR',\n byte4(width),\n byte4(height),\n '\\x08\\x03',\n );\n write(this.buffer, this.plte_offs, byte4(this.plte_size - 12), 'PLTE');\n write(this.buffer, this.trns_offs, byte4(this.trns_size - 12), 'tRNS');\n write(this.buffer, this.idat_offs, byte4(this.idat_size - 12), 'IDAT');\n write(this.buffer, this.iend_offs, byte4(this.iend_size - 12), 'IEND');\n\n // initialize deflate header\n // eslint-disable-next-line no-bitwise\n let header = ((8 + (7 << 4)) << 8) | (3 << 6);\n header += 31 - (header % 31);\n\n write(this.buffer, this.idat_offs + 8, byte2(header));\n\n // initialize deflate block headers\n // eslint-disable-next-line no-bitwise\n for (let i = 0; (i << 16) - 1 < this.pix_size; i += 1) {\n let size: number;\n let bits: string;\n if (i + 0xffff < this.pix_size) {\n size = 0xffff;\n bits = '\\x00';\n } else {\n // eslint-disable-next-line no-bitwise\n size = this.pix_size - (i << 16) - i;\n bits = '\\x01';\n }\n write(\n this.buffer,\n // eslint-disable-next-line no-bitwise\n this.idat_offs + 8 + 2 + (i << 16) + (i << 2),\n bits,\n byte2lsb(size),\n // eslint-disable-next-line no-bitwise\n byte2lsb(~size),\n );\n }\n\n /* Create crc32 lookup table */\n for (let i = 0; i < 256; i += 1) {\n let c = i;\n for (let j = 0; j < 8; j += 1) {\n // eslint-disable-next-line no-bitwise\n if (c & 1) {\n // eslint-disable-next-line no-bitwise\n c = -306674912 ^ ((c >> 1) & 0x7fffffff);\n } else {\n // eslint-disable-next-line no-bitwise\n c = (c >> 1) & 0x7fffffff;\n }\n }\n this._crc32[i] = c;\n }\n }\n\n /**\n * Computes the index into a png for a given pixel.\n *\n * @param x - The x coordinate\n * @param y - The y coordinate\n * @returns The buffer index for the pixel\n */\n public index(x: number, y: number): number {\n const i = y * (this.width + 1) + x + 1;\n const j = this.idat_offs + 8 + 2 + 5 * Math.floor(i / 0xffff + 1) + i;\n return j;\n }\n\n /**\n * Converts a color and builds up the palette.\n *\n * @param red - Red component (0-255)\n * @param green - Green component (0-255)\n * @param blue - Blue component (0-255)\n * @param alpha - Alpha component (0-255)\n * @returns The palette color string\n */\n public color(\n red: number,\n green: number,\n blue: number,\n alpha: number = 255,\n ): string {\n // eslint-disable-next-line no-bitwise\n const color = (((((alpha << 8) | red) << 8) | green) << 8) | blue;\n\n if (typeof this.palette[color] === 'undefined') {\n if (this.pindex === this.depth) {\n return '\\x00';\n }\n\n const ndx = this.plte_offs + 8 + 3 * this.pindex;\n\n this.buffer[ndx + 0] = String.fromCharCode(red);\n this.buffer[ndx + 1] = String.fromCharCode(green);\n this.buffer[ndx + 2] = String.fromCharCode(blue);\n this.buffer[this.trns_offs + 8 + this.pindex] =\n String.fromCharCode(alpha);\n\n // eslint-disable-next-line no-plusplus\n this.palette[color] = String.fromCharCode(this.pindex++);\n }\n return this.palette[color];\n }\n\n /**\n * Outputs a PNG string, Base64 encoded.\n *\n * @returns A Base64 encoded PNG string\n */\n public getBase64(): string {\n const s = this.getDump();\n\n const ch =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let c1: number;\n let c2: number;\n let c3: number;\n let e1: number;\n let e2: number;\n let e3: number;\n let e4: number;\n const l = s.length;\n let i = 0;\n let r = '';\n\n do {\n c1 = s.charCodeAt(i);\n // eslint-disable-next-line no-bitwise\n e1 = c1 >> 2;\n c2 = s.charCodeAt(i + 1);\n // eslint-disable-next-line no-bitwise\n e2 = ((c1 & 3) << 4) | (c2 >> 4);\n c3 = s.charCodeAt(i + 2);\n if (l < i + 2) {\n e3 = 64;\n } else {\n // eslint-disable-next-line no-bitwise\n e3 = ((c2 & 0xf) << 2) | (c3 >> 6);\n }\n if (l < i + 3) {\n e4 = 64;\n } else {\n // eslint-disable-next-line no-bitwise\n e4 = c3 & 0x3f;\n }\n r += ch.charAt(e1) + ch.charAt(e2) + ch.charAt(e3) + ch.charAt(e4);\n i += 3;\n } while (i < l);\n return r;\n }\n\n /**\n * Outputs a PNG string.\n *\n * @returns A PNG string\n */\n public getDump(): string {\n // compute adler32 of output pixels + row filter bytes\n const BASE = 65521; /* largest prime smaller than 65536 */\n const NMAX = 5552; /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */\n let s1 = 1;\n let s2 = 0;\n let n = NMAX;\n\n for (let y = 0; y < this.height; y += 1) {\n for (let x = -1; x < this.width; x += 1) {\n s1 += this.buffer[this.index(x, y)].charCodeAt(0);\n s2 += s1;\n n -= 1;\n if (n === 0) {\n s1 %= BASE;\n s2 %= BASE;\n n = NMAX;\n }\n }\n }\n s1 %= BASE;\n s2 %= BASE;\n write(\n this.buffer,\n this.idat_offs + this.idat_size - 8,\n // eslint-disable-next-line no-bitwise\n byte4((s2 << 16) | s1),\n );\n\n // compute crc32 of the PNG chunks\n const crc32 = (png: string[], offs: number, size: number): void => {\n let crc = -1;\n for (let i = 4; i < size - 4; i += 1) {\n crc =\n // eslint-disable-next-line no-bitwise\n this._crc32[(crc ^ png[offs + i].charCodeAt(0)) & 0xff] ^\n // eslint-disable-next-line no-bitwise\n ((crc >> 8) & 0x00ffffff);\n }\n // eslint-disable-next-line no-bitwise\n write(png, offs + size - 4, byte4(crc ^ -1));\n };\n\n crc32(this.buffer, this.ihdr_offs, this.ihdr_size);\n crc32(this.buffer, this.plte_offs, this.plte_size);\n crc32(this.buffer, this.trns_offs, this.trns_size);\n crc32(this.buffer, this.idat_offs, this.idat_size);\n crc32(this.buffer, this.iend_offs, this.iend_size);\n\n // convert PNG to string\n return `\\x89PNG\\r\\n\\x1A\\n${this.buffer.join('')}`;\n }\n\n /**\n * Fills a rectangle with the specified color.\n *\n * @param x - The x coordinate\n * @param y - The y coordinate\n * @param w - The width\n * @param h - The height\n * @param color - The color to fill with\n */\n public fillRect(\n x: number,\n y: number,\n w: number,\n h: number,\n color: string,\n ): void {\n for (let i = 0; i < w; i += 1) {\n for (let j = 0; j < h; j += 1) {\n this.buffer[this.index(x + i, y + j)] = color;\n }\n }\n }\n}\n\n/**\n * Converts HSL color to RGB helper function.\n *\n * @param p - First parameter\n * @param q - Second parameter\n * @param t - Third parameter\n * @returns RGB value component\n */\nfunction hue2rgb(p: number, q: number, t: number): number {\n let tValue = t;\n if (tValue < 0) {\n tValue += 1;\n }\n if (tValue > 1) {\n tValue -= 1;\n }\n if (tValue < 1 / 6) {\n return p + (q - p) * 6 * tValue;\n }\n if (tValue < 1 / 2) {\n return q;\n }\n if (tValue < 2 / 3) {\n return p + (q - p) * (2 / 3 - tValue) * 6;\n }\n return p;\n}\n\n/**\n * Converts HSL color values to RGBA.\n *\n * @param h - Hue (0-1)\n * @param s - Saturation (0-1)\n * @param l - Lightness (0-1)\n * @returns RGBA color array\n */\nfunction hsl2rgb(h: number, s: number, l: number): RGBAColor {\n let r: number;\n let g: number;\n let b: number;\n\n if (s === 0) {\n r = l;\n g = l;\n b = l; // achromatic\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), 255];\n}\n\n// Random number generation\nconst randseed: number[] = new Array(4); // Xorshift: [x, y, z, w] 32 bit values\n\n/**\n * Seeds the random number generator.\n *\n * @param seed - The seed string\n */\nfunction seedrand(seed: string): void {\n for (let i = 0; i < randseed.length; i += 1) {\n randseed[i] = 0;\n }\n for (let i = 0; i < seed.length; i += 1) {\n randseed[i % 4] =\n // eslint-disable-next-line no-bitwise\n (randseed[i % 4] << 5) - randseed[i % 4] + seed.charCodeAt(i);\n }\n}\n\n/**\n * Generates a random number using Xorshift algorithm.\n *\n * @returns A random number between 0 and 1\n */\nfunction rand(): number {\n // based on Java's String.hashCode(), expanded to 4 32bit values\n // eslint-disable-next-line no-bitwise\n const t = randseed[0] ^ (randseed[0] << 11);\n\n randseed[0] = randseed[1];\n randseed[1] = randseed[2];\n randseed[2] = randseed[3];\n // eslint-disable-next-line no-bitwise\n randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8);\n\n // eslint-disable-next-line no-bitwise\n return (randseed[3] >>> 0) / ((1 << 31) >>> 0);\n}\n\n/**\n * Creates a random HSL color.\n *\n * @returns HSL color array\n */\nfunction createColor(): HSLColor {\n // saturation is the whole color spectrum\n const h = Math.floor(rand() * 360);\n // saturation goes from 40 to 100, it avoids greyish colors\n const s = rand() * 60 + 40;\n // lightness can be anything from 0 to 100, but probabilities are a bell curve around 50%\n const l = (rand() + rand() + rand() + rand()) * 25;\n\n return [h / 360, s / 100, l / 100];\n}\n\n/**\n * Creates image data for the Blockies pattern.\n *\n * @param size - The size of the image\n * @returns Array of pixel data\n */\nfunction createImageData(size: number): number[] {\n const width = size; // Only support square icons for now\n const height = size;\n\n const dataWidth = Math.ceil(width / 2);\n const mirrorWidth = width - dataWidth;\n\n const data: number[] = [];\n for (let y = 0; y < height; y += 1) {\n let row: number[] = [];\n for (let x = 0; x < dataWidth; x += 1) {\n // this makes foreground and background color to have a 43% (1/2.3) probability\n // spot color has 13% chance\n row[x] = Math.floor(rand() * 2.3);\n }\n const r = row.slice(0, mirrorWidth);\n r.reverse();\n row = row.concat(r);\n\n for (const value of row) {\n data.push(value);\n }\n }\n\n return data;\n}\n\n/**\n * Builds options for Blockies generation with defaults.\n *\n * @param opts - Partial options object\n * @returns Complete options object\n */\nfunction buildOpts(opts: Partial<BlockiesOptions>): Required<BlockiesOptions> {\n if (!opts.seed) {\n throw new Error('No seed provided');\n }\n\n seedrand(opts.seed);\n\n return {\n size: 8,\n scale: 16,\n color: createColor(),\n bgcolor: createColor(),\n spotcolor: createColor(),\n ...opts,\n seed: opts.seed,\n };\n}\n\n/**\n * Utility class with the single responsibility\n * of caching Blockies Data URIs\n */\nexport class Blockies {\n static cache: Record<string, string> = {};\n}\n\n/**\n * Generate a Blockies data URL for a given address\n *\n * @param address The address to generate a Blockies for\n * @returns A data URL string containing the Blockies image\n */\nexport function toDataUrl(address: string): string {\n const cache = Blockies.cache[address];\n if (address && cache) {\n return cache;\n }\n\n const opts = buildOpts({ seed: address.toLowerCase() });\n\n const imageData = createImageData(opts.size);\n const width = Math.sqrt(imageData.length);\n\n const p = new PNG(opts.size * opts.scale, opts.size * opts.scale, 3);\n // Register background color in PNG palette (needed for pixels with value 0)\n // This call adds the background color as the first palette entry, which is\n // essential for proper rendering of background pixels in the Blockies\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const bgcolor = p.color(...hsl2rgb(...opts.bgcolor));\n const color = p.color(...hsl2rgb(...opts.color));\n const spotcolor = p.color(...hsl2rgb(...opts.spotcolor));\n\n for (let i = 0; i < imageData.length; i += 1) {\n const row = Math.floor(i / width);\n const col = i % width;\n // if data is 0, leave the background\n if (imageData[i]) {\n // if data is 2, choose spot color, if 1 choose foreground\n const pngColor = imageData[i] === 1 ? color : spotcolor;\n p.fillRect(\n col * opts.scale,\n row * opts.scale,\n opts.scale,\n opts.scale,\n pngColor,\n );\n }\n }\n const ret = `data:image/png;base64,${p.getBase64()}`;\n Blockies.cache[address] = ret;\n return ret;\n}\n"]}