{"version":3,"file":"coreweb/sm-vend-sm.cdb5b0d9.js","mappings":"iGAEAA,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,QA4FA,SAASE,0BAA0BC,GACjC,IAAIC,EAAoBD,EAAKC,kBAC3BC,EAAWF,EAAKE,SAChBC,EAAgBH,EAAKG,cACrBC,EAAsBJ,EAAKK,eAC3BA,OAAyC,IAAxBD,EAAiC,GAAKA,EACvDE,EAAWN,EAAKO,IAChBA,OAAmB,IAAbD,EAAsB,WAAaA,EACzCE,EAAmBR,EAAKS,YACxBA,QAAmC,IAArBD,EAA8B,GAAKA,EACjDE,GAAuBV,EAAKW,gBAC5BA,QAA2C,IAAzBD,IAAyCA,GAC3DE,GAAwBZ,EAAKa,wBAC7BA,QAAoD,IAA1BD,GAAmC,GAAKA,GAClEE,GAAWd,EAAKc,SACdC,GAAUb,EAASa,QACrBC,GAAad,EAASc,WACpBC,GAAQ,IAAIC,EAAqBC,cAAc,CACjDC,gBAAiBnB,GAAqBA,MACrCoB,QAAQhB,GACPiB,GAAuBb,GAAYc,QACrCA,QAAmC,IAAzBD,GAAkC,GAAKA,GACjDE,GAtDJ,SAASC,yBAAyBC,EAAQC,GACxC,GAAc,MAAVD,EAAgB,MAAO,GAC3B,IACIE,EAAKC,EADLC,EAaN,SAASC,8BAA8BL,EAAQC,GAC7C,GAAc,MAAVD,EAAgB,MAAO,GAC3B,IAEIE,EAAKC,EAFLC,EAAS,GACTE,EAAarC,OAAOsC,KAAKP,GAE7B,IAAKG,EAAI,EAAGA,EAAIG,EAAWE,OAAQL,IACjCD,EAAMI,EAAWH,GACbF,EAASQ,QAAQP,IAAQ,IAC7BE,EAAOF,GAAOF,EAAOE,IAEvB,OAAOE,EAvBMC,CAA8BL,EAAQC,GAEnD,GAAIhC,OAAOyC,sBAAuB,CAChC,IAAIC,EAAmB1C,OAAOyC,sBAAsBV,GACpD,IAAKG,EAAI,EAAGA,EAAIQ,EAAiBH,OAAQL,IACvCD,EAAMS,EAAiBR,GACnBF,EAASQ,QAAQP,IAAQ,GACxBjC,OAAO2C,UAAUC,qBAAqBC,KAAKd,EAAQE,KACxDE,EAAOF,GAAOF,EAAOE,IAGzB,OAAOE,EAyCcL,CAAyBhB,GAAagC,GACvDtC,IACFoB,GAAQ,sBAAwBpB,GAElC,IAAIuC,GAAyB,GAmB7B,IAAIC,GAAO,IAAIC,EAAYC,YAAW,SAAUC,GAC9C,IAAIC,EAAuBC,EAEvBC,EAAaH,MAAAA,GAAyG,QAAlDC,EAAwBD,EAAUI,kBAAkD,IAA1BH,GAAiH,QAApEC,EAAyBD,EAAsBP,KAAKM,UAAmD,IAA3BE,OAA7L,EAA0OA,EAAuBC,WAC3TE,EAAc5C,EAKlB,OAJIM,GAAwBuC,SAASH,KAEnCE,EAAcF,GAzBlB,SAASI,oBACP,IAAIJ,EAAaK,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAKE,EACrF,GAAId,GAAuBO,GACzB,OAAOP,GAAuBO,GAEhC,IAAIN,EAAO,IAAIc,EAAqBC,cAAcC,cAAcA,cAAcA,cAAc,GAAIC,GAAuBpC,IAAmB,GAAI,CAC5IjB,IAAK0C,EACL1B,QAASA,MAMX,OAJIT,IAA2B,aAAfmC,IACdN,EAAO7B,GAAS+C,OAAOlB,IAEzBD,GAAuBO,GAAcN,EAC9BA,EAcAU,CAAkBF,GAAaW,QAAQhB,IAAcF,EAAYmB,WAAWC,QAErF,OAAO,IAAIC,EAAcC,QAAQ,CAC/BC,kBAAmBxD,GACnBM,MAAOA,GACP0B,KAAMA,GACNyB,KAAMrD,GACNsD,QAASrD,MAxJb,IAAIiD,EAKJ,SAASK,uBAAuBC,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnCL,QAASK,GAPOD,CAAuB,EAAQ,MAC/Cb,EAAuB,EAAQ,OAC/BvC,EAAuB,EAAQ,OAC/B0B,EAAc,EAAQ,OACtBH,EAAY,CAAC,WAMjB,SAASgC,QAAQC,EAAQC,GACvB,IAAI1C,EAAOtC,OAAOsC,KAAKyC,GACvB,GAAI/E,OAAOyC,sBAAuB,CAChC,IAAIwC,EAAUjF,OAAOyC,sBAAsBsC,GAC3CC,IAAmBC,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOnF,OAAOoF,yBAAyBL,EAAQI,GAAKE,eACjD/C,EAAKgD,KAAKC,MAAMjD,EAAM2C,GAE7B,OAAO3C,EAET,SAAS0B,cAAc7B,GACrB,IAAK,IAAID,EAAI,EAAGA,EAAIyB,UAAUpB,OAAQL,IAAK,CACzC,IAAIH,EAAS,MAAQ4B,UAAUzB,GAAKyB,UAAUzB,GAAK,GACnDA,EAAI,EAAI4C,QAAQ9E,OAAO+B,IAAS,GAAIyD,SAAQ,SAAUvD,GACpDwD,gBAAgBtD,EAAQF,EAAKF,EAAOE,OACjCjC,OAAO0F,0BAA4B1F,OAAO2F,iBAAiBxD,EAAQnC,OAAO0F,0BAA0B3D,IAAW+C,QAAQ9E,OAAO+B,IAASyD,SAAQ,SAAUvD,GAC5JjC,OAAOC,eAAekC,EAAQF,EAAKjC,OAAOoF,yBAAyBrD,EAAQE,OAG/E,OAAOE,EAET,SAASsD,gBAAgBb,EAAK3C,EAAK9B,GAYjC,OAXA8B,EAaF,SAAS2D,eAAeC,GACtB,IAAI5D,EAGN,SAAS6D,aAAaC,EAAOC,GAC3B,GAAqB,iBAAVD,GAAgC,OAAVA,EAAgB,OAAOA,EACxD,IAAIE,EAAOF,EAAMG,OAAOC,aACxB,QAAavC,IAATqC,EAAoB,CACtB,IAAIG,EAAMH,EAAKpD,KAAKkD,EAAOC,GAAQ,WACnC,GAAmB,iBAARI,EAAkB,OAAOA,EACpC,MAAM,IAAIC,UAAU,gDAEtB,OAAiB,WAATL,EAAoBM,OAASC,QAAQR,GAXnCD,CAAaD,EAAK,UAC5B,MAAsB,iBAAR5D,EAAmBA,EAAMqE,OAAOrE,GAfxC2D,CAAe3D,MACV2C,EACT5E,OAAOC,eAAe2E,EAAK3C,EAAK,CAC9B9B,MAAOA,EACPkF,YAAY,EACZmB,cAAc,EACdC,UAAU,IAGZ7B,EAAI3C,GAAO9B,EAENyE,EA2CT,IAAIf,EAAsB,UACtBI,EAAuB,CACzByC,YAAa,UACbC,cAAe,IAkEjBC,EAAO1G,QAAUA,EAAQqE,S,6BC/JzBvE,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,QAqFA,SAASE,0BAA0BC,GACjC,IAAIwG,EAAgBxG,EAAKwG,cACvBtG,EAAWF,EAAKE,SAChBC,EAAgBH,EAAKG,cACrBC,EAAsBJ,EAAKK,eAC3BA,OAAyC,IAAxBD,EAAiC,GAAKA,EACvDE,EAAWN,EAAKO,IAChBA,OAAmB,IAAbD,EAAsB,WAAaA,EACzCE,EAAmBR,EAAKS,YACxBA,OAAmC,IAArBD,EAA8B,GAAKA,EACjDE,EAAuBV,EAAKW,gBAC5BA,QAA2C,IAAzBD,GAAyCA,EAC3DE,GAAwBZ,EAAKa,wBAC7BA,QAAoD,IAA1BD,GAAmC,GAAKA,GAClEE,GAAWd,EAAKc,SAChB2F,GAAoBzG,EAAK0G,aACzBA,QAAqC,IAAtBD,GAA+B,GAAKA,GACjD1F,GAAUb,EAASa,QACrBC,GAAad,EAASc,WACpBC,GAAQ,IAAI0F,EAAQxF,cAAc,CACpCqF,cAAeA,EACfE,aAAc/C,cAAc,GAAI+C,MAC/BrF,QAAQhB,GACPiB,GAAuBb,EAAYc,QACrCA,QAAmC,IAAzBD,GAAkC,GAAKA,GACjDE,GA1GJ,SAASC,yBAAyBC,EAAQC,GACxC,GAAc,MAAVD,EAAgB,MAAO,GAC3B,IACIE,EAAKC,EADLC,EAaN,SAASC,8BAA8BL,EAAQC,GAC7C,GAAc,MAAVD,EAAgB,MAAO,GAC3B,IAEIE,EAAKC,EAFLC,EAAS,GACTE,EAAarC,OAAOsC,KAAKP,GAE7B,IAAKG,EAAI,EAAGA,EAAIG,EAAWE,OAAQL,IACjCD,EAAMI,EAAWH,GACbF,EAASQ,QAAQP,IAAQ,IAC7BE,EAAOF,GAAOF,EAAOE,IAEvB,OAAOE,EAvBMC,CAA8BL,EAAQC,GAEnD,GAAIhC,OAAOyC,sBAAuB,CAChC,IAAIC,EAAmB1C,OAAOyC,sBAAsBV,GACpD,IAAKG,EAAI,EAAGA,EAAIQ,EAAiBH,OAAQL,IACvCD,EAAMS,EAAiBR,GACnBF,EAASQ,QAAQP,IAAQ,GACxBjC,OAAO2C,UAAUC,qBAAqBC,KAAKd,EAAQE,KACxDE,EAAOF,GAAOF,EAAOE,IAGzB,OAAOE,EA6FcL,CAAyBhB,EAAagC,GACvDtC,IACFoB,GAAQ,sBAAwBpB,GAElC,IAAIuC,GAAyB,GAmB7B,IAAIC,GAAO,IAAIgE,EAAQ9D,YAAW,SAAUC,GAC1C,IAAIC,EAAuBC,EAEvBC,EAAaH,MAAAA,GAAyG,QAAlDC,EAAwBD,EAAUI,kBAAkD,IAA1BH,GAAiH,QAApEC,EAAyBD,EAAsBP,KAAKM,UAAmD,IAA3BE,OAA7L,EAA0OA,EAAuBC,WAC3TE,EAAc5C,EAKlB,OAJIM,GAAwBuC,SAASH,KAEnCE,EAAcF,GAzBlB,SAASI,oBACP,IAAIJ,EAAaK,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAKE,EACrF,GAAId,GAAuBO,GACzB,OAAOP,GAAuBO,GAEhC,IAAIN,EAAO,IAAIiE,EAAWlD,cAAcC,cAAcA,cAAcA,cAAc,GAAIC,GAAuBpC,IAAmB,GAAI,CAClIjB,IAAK0C,EACL1B,QAASA,MAMX,OAJIT,IAA2B,aAAfmC,IACdN,EAAO7B,GAAS+C,OAAOlB,IAEzBD,GAAuBO,GAAcN,EAC9BA,EAcAU,CAAkBF,GAAaW,QAAQhB,IAAc6D,EAAQ5C,WAAWC,QAEjF,OAAO,IAAI2C,EAAQE,aAAa,CAC9B1C,kBAAmBxD,GACnBM,MAAOA,GACP0B,KAAMA,GACNyB,KAAMrD,GACNsD,QAASrD,MApJb,IAAI2F,EAAU,EAAQ,OAClBC,EAAa,EAAQ,OACrBnE,EAAY,CAAC,WA4BjB,SAASgC,QAAQqC,EAAGC,GAClB,IAAIC,EAAIrH,OAAOsC,KAAK6E,GACpB,GAAInH,OAAOyC,sBAAuB,CAChC,IAAI6E,EAAItH,OAAOyC,sBAAsB0E,GACrCC,IAAME,EAAIA,EAAEpC,QAAO,SAAUkC,GAC3B,OAAOpH,OAAOoF,yBAAyB+B,EAAGC,GAAG/B,eAC1CgC,EAAE/B,KAAKC,MAAM8B,EAAGC,GAEvB,OAAOD,EAET,SAASrD,cAAcmD,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIzD,UAAUpB,OAAQ6E,IAAK,CACzC,IAAIC,EAAI,MAAQ1D,UAAUyD,GAAKzD,UAAUyD,GAAK,GAC9CA,EAAI,EAAItC,QAAQ9E,OAAOqH,IAAI,GAAI7B,SAAQ,SAAU4B,GAC/C3B,gBAAgB0B,EAAGC,EAAGC,EAAED,OACrBpH,OAAO0F,0BAA4B1F,OAAO2F,iBAAiBwB,EAAGnH,OAAO0F,0BAA0B2B,IAAMvC,QAAQ9E,OAAOqH,IAAI7B,SAAQ,SAAU4B,GAC7IpH,OAAOC,eAAekH,EAAGC,EAAGpH,OAAOoF,yBAAyBiC,EAAGD,OAGnE,OAAOD,EAET,SAAS1B,gBAAgBb,EAAK3C,EAAK9B,GAYjC,OAXA8B,EAaF,SAAS2D,eAAeC,GACtB,IAAI5D,EAGN,SAAS6D,aAAaC,EAAOC,GAC3B,GAAqB,iBAAVD,GAAgC,OAAVA,EAAgB,OAAOA,EACxD,IAAIE,EAAOF,EAAMG,OAAOC,aACxB,QAAavC,IAATqC,EAAoB,CACtB,IAAIG,EAAMH,EAAKpD,KAAKkD,EAAOC,GAAQ,WACnC,GAAmB,iBAARI,EAAkB,OAAOA,EACpC,MAAM,IAAIC,UAAU,gDAEtB,OAAiB,WAATL,EAAoBM,OAASC,QAAQR,GAXnCD,CAAaD,EAAK,UAC5B,MAAsB,iBAAR5D,EAAmBA,EAAMqE,OAAOrE,GAfxC2D,CAAe3D,MACV2C,EACT5E,OAAOC,eAAe2E,EAAK3C,EAAK,CAC9B9B,MAAOA,EACPkF,YAAY,EACZmB,cAAc,EACdC,UAAU,IAGZ7B,EAAI3C,GAAO9B,EAENyE,EAgBT,IAAIf,EAAsB,UACtBI,EAAuB,CACzByC,YAAa,UACbC,cAAe,IAqEjBC,EAAO1G,QAAUA,EAAQqE,S,6BC3JzBvE,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAET,IAAIoH,EAAe,CACjBC,oBAAoB,EACpBC,yBAAyB,EACzBC,yBAAyB,EACzBC,4BAA4B,GAE9B3H,OAAOC,eAAeC,EAAS,qBAAsB,CACnDmF,YAAY,EACZuC,IAAK,SAASA,MACZ,OAAOC,EAAKtD,WAGhBvE,OAAOC,eAAeC,EAAS,0BAA2B,CACxDmF,YAAY,EACZuC,IAAK,SAASA,MACZ,OAAOC,EAAKC,SAGhB9H,OAAOC,eAAeC,EAAS,0BAA2B,CACxDmF,YAAY,EACZuC,IAAK,SAASA,MACZ,OAAOC,EAAKE,SAGhB/H,OAAOC,eAAeC,EAAS,6BAA8B,CAC3DmF,YAAY,EACZuC,IAAK,SAASA,MACZ,OAAOC,EAAKG,OAGhB,IAAIH,EAqBJ,SAASI,wBAAwBrD,EAAKsD,GACpC,IAAKA,GAAetD,GAAOA,EAAIC,WAC7B,OAAOD,EAET,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EACpD,MAAO,CACLL,QAASK,GAGb,IAAItD,EAAQ6G,yBAAyBD,GACrC,GAAI5G,GAASA,EAAM8G,IAAIxD,GACrB,OAAOtD,EAAMsG,IAAIhD,GAEnB,IAAIyD,EAAS,GACTC,EAAwBtI,OAAOC,gBAAkBD,OAAOoF,yBAC5D,IAAK,IAAInD,KAAO2C,EACd,GAAY,YAAR3C,GAAqBjC,OAAO2C,UAAU4F,eAAe1F,KAAK+B,EAAK3C,GAAM,CACvE,IAAIuG,EAAOF,EAAwBtI,OAAOoF,yBAAyBR,EAAK3C,GAAO,KAC3EuG,IAASA,EAAKZ,KAAOY,EAAKC,KAC5BzI,OAAOC,eAAeoI,EAAQpG,EAAKuG,GAEnCH,EAAOpG,GAAO2C,EAAI3C,GAIxBoG,EAAO9D,QAAUK,EACbtD,GACFA,EAAMmH,IAAI7D,EAAKyD,GAEjB,OAAOA,EAlDEJ,CAAwB,EAAQ,QACvCS,EAAW,EAAQ,OAYvB,SAASP,yBAAyBD,GAChC,GAAuB,mBAAZS,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQR,yBAA2B,SAASA,yBAAyBD,GACnE,OAAOA,EAAcW,EAAmBD,IACvCV,GAjBLlI,OAAOsC,KAAKoG,GAAUlD,SAAQ,SAAUvD,GAC1B,YAARA,GAA6B,eAARA,IACrBjC,OAAO2C,UAAU4F,eAAe1F,KAAK0E,EAActF,IACnDA,KAAO/B,GAAWA,EAAQ+B,KAASyG,EAASzG,IAChDjC,OAAOC,eAAeC,EAAS+B,EAAK,CAClCoD,YAAY,EACZuC,IAAK,SAASA,MACZ,OAAOc,EAASzG,W,6BC1CtBjC,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,QAAkBA,EAAQ6H,MAAQ7H,EAAQ4H,MAAQ5H,EAAQ8H,IAAM9H,EAAQ4I,mBAAgB,EACxF,IAwGIA,EAxGAC,EACJ,SAASpE,uBAAuBC,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnCL,QAASK,GAHID,CAAuB,EAAQ,QAMhD,SAASG,QAAQC,EAAQC,GACvB,IAAI1C,EAAOtC,OAAOsC,KAAKyC,GACvB,GAAI/E,OAAOyC,sBAAuB,CAChC,IAAIwC,EAAUjF,OAAOyC,sBAAsBsC,GAC3CC,IAAmBC,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOnF,OAAOoF,yBAAyBL,EAAQI,GAAKE,eACjD/C,EAAKgD,KAAKC,MAAMjD,EAAM2C,GAE7B,OAAO3C,EAaT,SAASmD,gBAAgBb,EAAK3C,EAAK9B,GAYjC,OAXA8B,EAAM2D,eAAe3D,MACV2C,EACT5E,OAAOC,eAAe2E,EAAK3C,EAAK,CAC9B9B,MAAOA,EACPkF,YAAY,EACZmB,cAAc,EACdC,UAAU,IAGZ7B,EAAI3C,GAAO9B,EAENyE,EAET,SAASoE,mBAAmBC,GAC1B,OAgBF,SAASC,mBAAmBD,GAC1B,GAAIE,MAAMC,QAAQH,GAAM,OAAOI,kBAAkBJ,GAjB1CC,CAAmBD,IAa5B,SAASK,iBAAiBC,GACxB,GAAsB,oBAAXrD,QAAmD,MAAzBqD,EAAKrD,OAAOsD,WAA2C,MAAtBD,EAAK,cAAuB,OAAOJ,MAAMM,KAAKF,GAdlFD,CAAiBL,IAKrD,SAASS,4BAA4BpC,EAAGqC,GACtC,IAAKrC,EAAG,OACR,GAAiB,iBAANA,EAAgB,OAAO+B,kBAAkB/B,EAAGqC,GACvD,IAAIC,EAAI5J,OAAO2C,UAAUkH,SAAShH,KAAKyE,GAAGwC,MAAM,GAAI,GAC1C,WAANF,GAAkBtC,EAAEyC,cAAaH,EAAItC,EAAEyC,YAAYtF,MACvD,GAAU,QAANmF,GAAqB,QAANA,EAAa,OAAOT,MAAMM,KAAKnC,GAClD,GAAU,cAANsC,GAAqB,2CAA2CI,KAAKJ,GAAI,OAAOP,kBAAkB/B,EAAGqC,GAX9CD,CAA4BT,IAEzF,SAASgB,qBACP,MAAM,IAAI5D,UAAU,wIAH2E4D,GAmBjG,SAASZ,kBAAkBJ,EAAKiB,IACnB,MAAPA,GAAeA,EAAMjB,EAAI1G,UAAQ2H,EAAMjB,EAAI1G,QAC/C,IAAK,IAAIL,EAAI,EAAGiI,EAAO,IAAIhB,MAAMe,GAAMhI,EAAIgI,EAAKhI,IAC9CiI,EAAKjI,GAAK+G,EAAI/G,GAEhB,OAAOiI,EAET,SAASC,gBAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIjE,UAAU,qCAGxB,SAASkE,kBAAkBpI,EAAQqI,GACjC,IAAK,IAAItI,EAAI,EAAGA,EAAIsI,EAAMjI,OAAQL,IAAK,CACrC,IAAIuI,EAAaD,EAAMtI,GACvBuI,EAAWpF,WAAaoF,EAAWpF,aAAc,EACjDoF,EAAWjE,cAAe,EACtB,UAAWiE,IAAYA,EAAWhE,UAAW,GACjDzG,OAAOC,eAAekC,EAAQyD,eAAe6E,EAAWxI,KAAMwI,IAGlE,SAASC,aAAaJ,EAAaK,EAAYC,GAM7C,OALID,GAAYJ,kBAAkBD,EAAY3H,UAAWgI,GACrDC,GAAaL,kBAAkBD,EAAaM,GAChD5K,OAAOC,eAAeqK,EAAa,YAAa,CAC9C7D,UAAU,IAEL6D,EAET,SAAS1E,eAAeC,GACtB,IAAI5D,EAGN,SAAS6D,aAAaC,EAAOC,GAC3B,GAAqB,iBAAVD,GAAgC,OAAVA,EAAgB,OAAOA,EACxD,IAAIE,EAAOF,EAAMG,OAAOC,aACxB,QAAavC,IAATqC,EAAoB,CACtB,IAAIG,EAAMH,EAAKpD,KAAKkD,EAAOC,GAAQ,WACnC,GAAmB,iBAARI,EAAkB,OAAOA,EACpC,MAAM,IAAIC,UAAU,gDAEtB,OAAiB,WAATL,EAAoBM,OAASC,QAAQR,GAXnCD,CAAaD,EAAK,UAC5B,MAAsB,iBAAR5D,EAAmBA,EAAMqE,OAAOrE,GAahD/B,EAAQ4I,cAAgBA,EACxB,SAAWA,GACTA,EAAwB,SAAI,aAD9B,CAEGA,IAAkB5I,EAAQ4I,cAAgBA,EAAgB,KAM7D,IAAId,EAAmB,WACrB,SAASA,MACPoC,gBAAgBS,KAAM7C,KACtB6C,KAAKC,MAAQ,GAef,OAbAJ,aAAa1C,IAAK,CAAC,CACjB/F,IAAK,WACL9B,MAAO,SAAS4K,SAASC,GACvB,IAAIC,EAAOD,IAEX,OADAH,KAAKC,MAAMxF,KAAK2F,GACTJ,OAER,CACD5I,IAAK,WACL9B,MAAO,SAAS+K,WACd,OAAOlC,mBAAmB6B,KAAKC,WAG5B9C,IAlBc,GAoBvB9H,EAAQ8H,IAAMA,EACd,IAAID,EAAqB,WACvB,SAASA,QACPqC,gBAAgBS,KAAM9C,OACtB8C,KAAKM,KAAO,GAkBd,OAhBAT,aAAa3C,MAAO,CAAC,CACnB9F,IAAK,UACL9B,MAAO,SAASiL,QAAQC,GACtB,IAAIC,EAAMD,EAAW,IAAIrD,GAEzB,OADA6C,KAAKM,KAAK7F,KAAKgG,GACRT,OAER,CACD5I,IAAK,UACL9B,MAAO,SAASoL,UAEd,OAAOV,KAAKM,KAAKK,KAAI,SAAUpE,GAC7B,OAAO4B,mBAAmB5B,EAAE8D,mBAI3BnD,MArBgB,GAuBzB7H,EAAQ6H,MAAQA,EAChB,IAAID,EAAqB,WACvB,SAASA,MAAM2D,EAASC,EAAQC,GAC9BvB,gBAAgBS,KAAM/C,OACtB+C,KAAKY,QAAUA,EACfZ,KAAKa,OAASA,EACdb,KAAKc,WAAaA,EAwCpB,OAtCAjB,aAAa5C,MAAO,CAAC,CACnB7F,IAAK,WACL9B,MAAO,SAASyL,SAASC,GACvB,IAAIC,EAAUnI,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAElF,OADAkH,KAAKY,QAAQM,QAAQF,EAAMC,GACpBjB,OAER,CACD5I,IAAK,YACL9B,MAAO,SAAS6L,UAAUC,GACxB,GAnEN,SAASC,YAAYC,GACnB,QAASA,EAAIC,KAkELF,CAAYD,KAAkBA,EAAaG,KAAKC,MAAM,0CACxD,MAAM,IAAIC,MAAM,gCAGlB,OADAzB,KAAKY,QAAQc,SAASN,GACfpB,OAER,CACD5I,IAAK,YACL9B,MAAO,SAASqM,UAAUC,EAAWX,GAEnC,OADAjB,KAAKY,QAAQiB,SAAS7B,KAAKa,OAAOe,GAAYX,GACvCjB,OAER,CACD5I,IAAK,YACL9B,MAAO,SAASwM,UAAUC,EAAcd,GACtC,IACIX,EADQyB,EAAa,IAAI7E,GACZwD,UAEjB,OADAV,KAAKY,QAAQoB,SAAS1B,EAjL5B,SAASnH,cAAc7B,GACrB,IAAK,IAAID,EAAI,EAAGA,EAAIyB,UAAUpB,OAAQL,IAAK,CACzC,IAAIH,EAAS,MAAQ4B,UAAUzB,GAAKyB,UAAUzB,GAAK,GACnDA,EAAI,EAAI4C,QAAQ9E,OAAO+B,IAAS,GAAIyD,SAAQ,SAAUvD,GACpDwD,gBAAgBtD,EAAQF,EAAKF,EAAOE,OACjCjC,OAAO0F,0BAA4B1F,OAAO2F,iBAAiBxD,EAAQnC,OAAO0F,0BAA0B3D,IAAW+C,QAAQ9E,OAAO+B,IAASyD,SAAQ,SAAUvD,GAC5JjC,OAAOC,eAAekC,EAAQF,EAAKjC,OAAOoF,yBAAyBrD,EAAQE,OAG/E,OAAOE,EAwKyB6B,CAAc,GAAI8H,IACvCjB,OAER,CACD5I,IAAK,YACL9B,MAAO,SAAS2M,UAAUC,EAAMX,GAC9B,IAAIN,EAAUnI,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAElF,OADAkH,KAAKY,QAAQuB,SAASnC,KAAKc,WAAWoB,GAAOX,EAAMN,GAC5CjB,SAGJ/C,MA7CgB,GA+CzB5H,EAAQ4H,MAAQA,EAChB,IAAIN,EAAkC,WAGpC,SAASA,qBACP,IAAIsE,EAAUnI,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAChFsJ,OAAQnE,EAAcoE,UAExB9C,gBAAgBS,KAAMrD,oBACtBqD,KAAKsC,KAAO,IAAIpE,EAAWxE,QAC3BsG,KAAKuC,OAAS,GACdvC,KAAKsC,KAAKF,OAASnB,EAAQmB,OACvBnB,EAAQuB,SACVxC,KAAKsC,KAAKE,OAASvB,EAAQuB,QAEzBvB,EAAQwB,UACVzC,KAAKsC,KAAKG,QAAUxB,EAAQwB,SAE1BxB,EAAQyB,WACV1C,KAAKsC,KAAKI,SAAWzB,EAAQyB,UAE3BzB,EAAQ0B,UACV3C,KAAKsC,KAAKK,QAAU1B,EAAQ0B,SAE1B1B,EAAQ2B,QACV5C,KAAKsC,KAAKM,MAAQ3B,EAAQ2B,OAoB9B,OAjBA/C,aAAalD,mBAAoB,CAAC,CAChCvF,IAAK,YACL9B,MAAO,SAASuN,UAAUC,GACxB,IAAIC,EAAe/C,KAAKsC,KAAKU,WAEzBC,EAAQ,IAAIhG,EAAM8F,EAAc/C,KAAKsC,KAAKzB,OAAQb,KAAKsC,KAAKY,QAEhE,OADAlD,KAAKuC,OAAO9H,KAAKqI,EAAaG,IACvBjD,OAER,CACD5I,IAAK,OACL9B,MAAO,SAAS6N,KAAKC,GACnBpD,KAAKsC,KAAKe,UAAU,CAClBD,SAAUA,QAITzG,mBA5C6B,GA8CtCtH,EAAA,QAAkBsH,G,4BCjQlBxH,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAClB,IAAIiO,EAAU,EAAQ,OAClBC,EAAW,YAiCXC,EAhCwB,SAASC,sBAAsBC,EAAclO,EAAMmO,GAC7E,IAAIf,EAAQpN,EAAKoN,MACfgB,EAAWpO,EAAKoO,SAClBF,EAAab,WAAU,SAAUI,GA0B/B,OAzBAA,EAAMlC,SAAS6B,EAAO,CACpBW,SAAUA,EACVM,SAAU,GACVC,EAAG,IACHC,EAAG,KACHC,EAAG,IACHC,EAAG,IACHC,MAAM,IACL/C,UAAU,CACXI,KAAM+B,EAAQa,UACdL,EAAG,GACHC,EAAG,KACHC,EAAG,KACHC,EAAG,MAEDL,GACFX,EAAMlC,SAAS6C,EAAU,CACvBL,SAAUA,EACVM,SAAU,EACVC,EAAG,IACHC,EAAG,KACHC,EAAG,IACHC,EAAG,KAGAN,EAAQV,OAInB5N,EAAA,QAAkBmO,EAClBzH,EAAO1G,QAAUA,EAAQqE,S,6BCxCzBvE,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETH,OAAOC,eAAeC,EAAS,wBAAyB,CACtDmF,YAAY,EACZuC,IAAK,SAASA,MACZ,OAAOqH,EAAe1K,WAG1B,IAAI0K,EACJ,SAAStK,uBAAuBC,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnCL,QAASK,GAHQD,CAAuB,EAAQ,Q,2BCTpD3E,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQ8O,eAAY,EAGpB9O,EAAQ8O,UADQ,syc,6BCLhBhP,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQgP,aAAU,EAClB,IAAIC,EAAW,EAAQ,OACnBC,EAAS,EAAQ,OACrB,SAASC,eAAepG,EAAK/G,GAC3B,OAiDF,SAASoN,gBAAgBrG,GACvB,GAAIE,MAAMC,QAAQH,GAAM,OAAOA,EAlDxBqG,CAAgBrG,IAoBzB,SAASsG,sBAAsBtG,EAAK/G,GAClC,IAAIsN,EAAK,MAAQvG,EAAM,KAAO,oBAAsB/C,QAAU+C,EAAI/C,OAAOsD,WAAaP,EAAI,cAC1F,GAAI,MAAQuG,EAAI,CACd,IAAIC,EACFC,EACAC,EACAC,EACAC,EAAO,GACPC,GAAK,EACLC,GAAK,EACP,IACE,GAAIJ,GAAMH,EAAKA,EAAG3M,KAAKoG,IAAM+G,KAAM,IAAM9N,EAAG,CAC1C,GAAIlC,OAAOwP,KAAQA,EAAI,OACvBM,GAAK,OACA,OAASA,GAAML,EAAKE,EAAG9M,KAAK2M,IAAKS,QAAUJ,EAAKvK,KAAKmK,EAAGtP,OAAQ0P,EAAKtN,SAAWL,GAAI4N,GAAK,IAGhG,MAAOI,GACPH,GAAK,EAAIL,EAAKQ,EACd,QACA,IACE,IAAKJ,GAAM,MAAQN,EAAGW,SAAWP,EAAKJ,EAAGW,SAAUnQ,OAAO4P,KAAQA,GAAK,OACvE,QACA,GAAIG,EAAI,MAAML,GAGlB,OAAOG,GA9CsBN,CAAsBtG,EAAK/G,IAK5D,SAASwH,4BAA4BpC,EAAGqC,GACtC,IAAKrC,EAAG,OACR,GAAiB,iBAANA,EAAgB,OAAO+B,kBAAkB/B,EAAGqC,GACvD,IAAIC,EAAI5J,OAAO2C,UAAUkH,SAAShH,KAAKyE,GAAGwC,MAAM,GAAI,GAC1C,WAANF,GAAkBtC,EAAEyC,cAAaH,EAAItC,EAAEyC,YAAYtF,MACvD,GAAU,QAANmF,GAAqB,QAANA,EAAa,OAAOT,MAAMM,KAAKnC,GAClD,GAAU,cAANsC,GAAqB,2CAA2CI,KAAKJ,GAAI,OAAOP,kBAAkB/B,EAAGqC,GAXzCD,CAA4BT,EAAK/G,IAEnG,SAASkO,mBACP,MAAM,IAAI/J,UAAU,6IAHmF+J,GAazG,SAAS/G,kBAAkBJ,EAAKiB,IACnB,MAAPA,GAAeA,EAAMjB,EAAI1G,UAAQ2H,EAAMjB,EAAI1G,QAC/C,IAAK,IAAIL,EAAI,EAAGiI,EAAO,IAAIhB,MAAMe,GAAMhI,EAAIgI,EAAKhI,IAC9CiI,EAAKjI,GAAK+G,EAAI/G,GAEhB,OAAOiI,EAkCT,SAASC,gBAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIjE,UAAU,qCAGxB,SAASkE,kBAAkBpI,EAAQqI,GACjC,IAAK,IAAItI,EAAI,EAAGA,EAAIsI,EAAMjI,OAAQL,IAAK,CACrC,IAAIuI,EAAaD,EAAMtI,GACvBuI,EAAWpF,WAAaoF,EAAWpF,aAAc,EACjDoF,EAAWjE,cAAe,EACtB,UAAWiE,IAAYA,EAAWhE,UAAW,GACjDzG,OAAOC,eAAekC,GAWF0D,EAXyB4E,EAAWxI,IAYtDA,OAAAA,EACkB,iBADlBA,EAGN,SAAS6D,aAAaC,EAAOC,GAC3B,GAAqB,iBAAVD,GAAgC,OAAVA,EAAgB,OAAOA,EACxD,IAAIE,EAAOF,EAAMG,OAAOC,aACxB,QAAavC,IAATqC,EAAoB,CACtB,IAAIG,EAAMH,EAAKpD,KAAKkD,EAAOC,GAAQ,WACnC,GAAmB,iBAARI,EAAkB,OAAOA,EACpC,MAAM,IAAIC,UAAU,gDAEtB,OAAiB,WAATL,EAAoBM,OAASC,QAAQR,GAXnCD,CAAaD,EAAK,WACK5D,EAAMqE,OAAOrE,IAbkBwI,GAWlE,IAAwB5E,EAClB5D,EAaN,IAAIoO,EAAc,SAASA,YAAYC,GAGrC,OADAA,EAAKC,MAAO,EACLD,GAET,SAASE,WAAW3K,GAClB,OAAQsD,MAAMC,QAAQvD,GAExB,IAAI4K,EAAU,SAASA,UAErB,IADA,IAAIC,EAAM,GACDC,EAAOhN,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMwH,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQlN,UAAUkN,GAazB,OAXAD,EAAKpL,SAAQ,SAAUK,GACjB2K,WAAW3K,GACb6K,EAAIpL,KAAKO,GAETA,EAAIL,SAAQ,SAAUsL,GACpBL,QAAQK,GAAMtL,SAAQ,SAAUuL,GAC9BL,EAAIpL,KAAKyL,YAKVL,GAELM,EAAM,SAASA,IAAIC,EAAGC,GACxB,OAAKA,EAGEF,IAAIE,EAAGD,EAAIC,GAFTD,GAIP/B,EAAuB,WACzB,SAASA,UACP,IAAIiC,EAAQtG,KACRuG,EAAMzN,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9EyG,gBAAgBS,KAAMqE,SACtBrE,KAAKwG,GAAKhB,GAAY,SAAUiB,EAAIC,EAAWC,EAAOC,GACpD,OAAIH,EAAGC,GACED,EAAGE,GAELF,EAAGG,MAEZ5G,KAAK6G,KAAOrB,GAAY,SAAUiB,EAAIK,GACpC,QAAiB/N,IAAb+N,EACF,OAAO,KAET,IAAK,IAAIC,EAAQjO,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMyI,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGjB,EAAKiB,EAAQ,GAAKlO,UAAUkO,GAE9B,IAAK,IAAI3P,EAAI,EAAG4P,EAAI,EAAG5H,EAAM0G,EAAKrO,OAAQuP,EAAI5H,EAAK7J,EAAO,CAAC6B,GAAK,EAAG4P,GAAK,GAAI5P,EAAI7B,EAAK,GAAIyR,EAAIzR,EAAK,GAAIA,EAAM,CAC1G,IAAIA,EACA0R,EAAanB,EAAK1O,GACtB,GAAIA,EAAI,EAAI0O,EAAKrO,QAAU+O,EAAG,IAAIlC,EAAO4C,MAAMD,EAAY3C,EAAO6C,GAAGC,GAAIP,IACvE,OAAOL,EAAGV,EAAK1O,EAAI,IAGvB,OAAI0O,EAAKrO,OAAS,GAAKqO,EAAKrO,OAAS,GAAM,EAClC+O,EAAGV,EAAKA,EAAKrO,OAAS,IAExB,QAETsI,KAAKsH,SAAW9B,GAAY,SAAUiB,GACpC,IAAK,IAAIc,EAAQzO,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMiJ,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGzB,EAAKyB,EAAQ,GAAK1O,UAAU0O,GAE9B,GAAGvI,MAAMjH,KAAK+N,GACdA,EAAK9G,MAAM,GACX,IAAK,IAAI5H,EAAI,EAAGA,EAAI0O,EAAKrO,OAAQL,GAAK,EAAG,CACvC,IAAI2D,EAAM+K,EAAK1O,GACXoQ,EAAShB,EAAGzL,GAChB,GAAe,OAAXyM,EACF,OAAOA,EAGX,OAAO,QAETzH,KAAK0H,KAAO,SAAU1M,GACpB,OAAO,EAAIsJ,EAASqD,UAAUrB,EAAMsB,cAAc5M,KAEpDgF,KAAK6H,SAAW,SAAU7M,GACxB,OAAO,EAAIsJ,EAASqD,UAAUrB,EAAMsB,cAAc5M,KAEpDgF,KAAK8H,KAAO,SAAU9M,GACpB,OAAO,EAAIsJ,EAASyD,OAAOzB,EAAMsB,cAAc5M,GAAM,WAAY,IAAIgN,OAEvE7S,OAAO8S,QAAQ1B,GAAK5L,SAAQ,SAAUuN,GACpC,IAAIC,EAAQ3D,eAAe0D,EAAO,GAChC9Q,EAAM+Q,EAAM,GACZ7S,EAAQ6S,EAAM,GAChB7B,EAAMlP,GAAO9B,KAqdjB,OArkBF,SAASuK,aAAaJ,EAAaK,EAAYC,GAM7C,OALID,GAAYJ,kBAAkBD,EAAY3H,UAAWgI,GACrDC,GAAaL,kBAAkBD,EAAaM,GAChD5K,OAAOC,eAAeqK,EAAa,YAAa,CAC9C7D,UAAU,IAEL6D,EA+GPI,CAAawE,QAAS,CAAC,CACrBjN,IAAK,MACL9B,MAAO,SAAS8S,IAAIpN,GAClB,OAAOA,EAAItD,SAIZ,CACDN,IAAK,MACL9B,MAAO,SAAS+S,MACd,IAAK,IAAIC,EAAQxP,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMgK,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxC,EAAKwC,GAASzP,UAAUyP,GAE1B,GAAoB,IAAhBxC,EAAKrO,OACP,OAAO,KAET,IAAI8Q,EAAQ5C,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KAELyN,EAASjE,eAAegE,EAAO,GACjCE,EAAOD,EAAO,GAMhB,OALAD,EAAMvJ,MAAM,GAAGtE,SAAQ,SAAUK,GAC3BA,EAAM0N,IACRA,EAAO1N,MAGJ0N,IAIR,CACDtR,IAAK,MACL9B,MAAO,SAASqT,MACd,IAAK,IAAIC,EAAQ9P,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMsK,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF9C,EAAK8C,GAAS/P,UAAU+P,GAE1B,GAAoB,IAAhB9C,EAAKrO,OACP,OAAO,KAET,IAAI8Q,EAAQ5C,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KAEL8N,EAAUtE,eAAegE,EAAO,GAClCE,EAAOI,EAAQ,GAMjB,OALAN,EAAMO,OAAO,GAAGpO,SAAQ,SAAUK,GAC5BA,EAAM0N,IACRA,EAAO1N,MAGJ0N,IAIR,CACDtR,IAAK,MACL9B,MAAO,SAAS0T,MACd,IAAK,IAAIC,EAAQnQ,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAM2K,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFnD,EAAKmD,GAASpQ,UAAUoQ,GAE1B,IAAIV,EAAQ5C,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KACN2F,KAAI,SAAUqD,GACf,OAAOmF,WAAWnF,MAEpB,OAAOwE,EAAMY,QAAO,SAAUhD,EAAGC,GAC/B,OAAOD,EAAIC,IACV,KAIJ,CACDjP,IAAK,MACL9B,MAAO,SAAS+T,MACd,IAAK,IAAIC,EAAQxQ,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMgL,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxD,EAAKwD,GAASzQ,UAAUyQ,GAE1B,GAAoB,IAAhBxD,EAAKrO,OACP,OAAO,KAET,IAAI8Q,EAAQ5C,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KACN2F,KAAI,SAAUqD,GACf,OAAOmF,WAAWnF,MAEhBwF,EAAMhB,EAAMY,QAAO,SAAUhD,EAAGC,GAClC,OAAOD,EAAIC,IACV,GACH,OAAOmD,EAAMzD,EAAKrO,SAInB,CACDN,IAAK,QACL9B,MAAO,SAASmU,QACd,IAAK,IAAIC,EAAQ5Q,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMoL,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5D,EAAK4D,GAAS7Q,UAAU6Q,GAE1B,GAAI5D,EAAKrO,QAAU,EACjB,OAAO,KAET,IAAI8Q,EAAQ5C,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KACN2F,KAAI,SAAUqD,GACf,OAAOmF,WAAWnF,MAEhBwF,EAAMhB,EAAMY,QAAO,SAAUhD,EAAGC,GAClC,OAAOD,EAAIC,IACV,GACCuD,EAAMJ,EAAMhB,EAAM9Q,OAClBmS,EAAOrB,EAAM7H,KAAI,SAAUqD,GAC7B,OAAO8F,KAAKC,IAAI/F,EAAI4F,EAAK,MAEvBI,EAAOH,EAAKT,QAAO,SAAUhD,EAAGC,GAClC,OAAOD,EAAIC,IACV,GACH,OAAOyD,KAAKG,KAAY,EAAPD,GAAcH,EAAKnS,OAAS,MAI9C,CACDN,IAAK,SACL9B,MAAO,SAAS4U,SACd,IAAK,IAAIC,EAAQrR,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAM6L,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFrE,EAAKqE,GAAStR,UAAUsR,GAE1B,GAAIrE,EAAKrO,QAAU,EACjB,OAAO,KAET,IAAI8Q,EAAQ5C,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KACN2F,KAAI,SAAUqD,GACf,OAAOmF,WAAWnF,MAEhBwF,EAAMhB,EAAMY,QAAO,SAAUhD,EAAGC,GAClC,OAAOD,EAAIC,IACV,GACCuD,EAAMJ,EAAMhB,EAAM9Q,OAClBmS,EAAOrB,EAAM7H,KAAI,SAAUqD,GAC7B,OAAO8F,KAAKC,IAAI/F,EAAI4F,EAAK,MAEvBI,EAAOH,EAAKT,QAAO,SAAUhD,EAAGC,GAClC,OAAOD,EAAIC,IACV,GACH,OAAOyD,KAAKG,KAAY,EAAPD,EAAaH,EAAKnS,UAIpC,CACDN,IAAK,SACL9B,MAEA,SAAS+U,OAAOC,GAEd,IADA,IAAIC,EAAQD,EAAKtL,WACRwL,EAAS1R,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMkM,EAAS,EAAIA,EAAS,EAAI,GAAIC,EAAS,EAAGA,EAASD,EAAQC,IAC9G1E,EAAK0E,EAAS,GAAK3R,UAAU2R,GAS/B,MAPA,GAAGxL,MAAMjH,KAAK+N,GACdA,EAAK9G,MAAM,GACX8G,EAAK1L,QAAO,SAAUW,GACpB,OAAe,OAARA,KACNL,SAAQ,SAAUK,GACnBuP,EAAQ,GAAGlR,OAAOkR,GAAOlR,OAAO2B,EAAIgE,eAE/BuL,IAER,CACDnT,IAAK,MACL9B,MAEA,SAASoV,IAAI1P,GACX,OAAO2P,SAAS3P,EAAK,MAItB,CACD5D,IAAK,OACL9B,MAAO,SAASsV,KAAK5P,GACnB,IAAI6P,EAAO1B,WAAWnO,GAEtB,OAAI8P,MAAMD,GACD,KAEFf,KAAKiB,KAAKF,KAIlB,CACDzT,IAAK,QACL9B,MAAO,SAAS0V,MAAMhQ,GACpB,IAAI6P,EAAO1B,WAAWnO,GAEtB,OAAI8P,MAAMD,GACD,KAEFf,KAAKmB,MAAMJ,KAInB,CACDzT,IAAK,QACL9B,MAAO,SAAS4V,MAAMlQ,GACpB,IAAImQ,EAAUrS,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAC9E+R,EAAO1B,WAAWnO,GAClBoQ,EAAOT,SAASQ,EAAS,IAG7B,GAAIL,MAAMD,IAASC,MAAMM,GACvB,OAAO,KAET,IAAIC,EAASD,EAAO,GAAK,GAAKA,EAC9B,GAAIC,EAAS,EACX,OAAOlC,WAAW0B,EAAKS,QAAQD,IAEjC,IAAIE,EAAUzB,KAAKC,IAAI,GAAID,KAAK0B,IAAIH,IACpC,OAAOvB,KAAK2B,MAAMZ,EAAOU,GAAWA,IAIrC,CACDnU,IAAK,OACL9B,MAAO,SAASoW,KAAK1Q,GACnB,QAASA,IAIV,CACD5D,IAAK,OACL9B,MAAO,SAASqW,KAAK3Q,GACnB,OAAOmO,WAAWnO,KAInB,CACD5D,IAAK,MACL9B,MAAO,SAASsW,IAAI5Q,GAClB,YAAYjC,IAARiC,EACK,KAEG,OAARA,EACK,GAEFA,EAAIgE,aAIZ,CACD5H,IAAK,QACL9B,MAAO,SAASuW,MAAM7Q,GACpB,YAAYjC,IAARiC,EACK,KAEG,OAARA,EACK,GAEFA,EAAIgE,WAAW8M,gBAIvB,CACD1U,IAAK,QACL9B,MAAO,SAASyW,MAAM/Q,GACpB,YAAYjC,IAARiC,EACK,KAEG,OAARA,EACK,GAEFA,EAAIgE,WAAWgN,gBAIvB,CACD5U,IAAK,aACL9B,MAAO,SAAS2W,WAAWjR,GACzB,QAAYjC,IAARiC,EACF,OAAO,KAET,GAAY,OAARA,EACF,MAAO,GAET,IAAIkR,EAAOlR,EAAIgE,WAAW8M,cAC1B,MAAO,GAAGzS,OAAO6S,EAAKC,OAAO,GAAGH,eAAe3S,OAAO6S,EAAKjN,MAAM,MAIlE,CACD7H,IAAK,QACL9B,MAAO,SAAS8W,MAAMpR,GACpB,YAAYjC,IAARiC,EACK,KAEG,OAARA,EACK,GAEFA,EAAIgE,WAAW8M,cAAcO,QAAQ,SAAS,SAAUC,GAC7D,OAAOA,EAAEN,mBAKZ,CACD5U,IAAK,YACL9B,MAAO,SAASiX,UAAUvR,EAAKwR,GAC7B,IAAIC,EAAkB9B,SAAS6B,EAAW,IAC1C,GAAIC,GAAmB,EACrB,MAAM,IAAIhL,MAAM,kEAElB,OAAO0H,WAAWnO,GAAKsQ,QAAQmB,KAIhC,CACDrV,IAAK,SACL9B,MAAO,SAASoX,OAAOC,EAAKC,EAAQlV,GAClC,IAAImV,EAAelC,SAASiC,EAAQ,IAChCE,EAAenC,SAASjT,EAAQ,IACpC,GAAImV,EAAe,EACjB,MAAM,IAAIpL,MAAM,kEAElB,GAAIoL,EAAeF,EAAIjV,OACrB,MAAM,IAAI+J,MAAM,gEAElB,GAAIqL,GAAgB,EAClB,MAAM,IAAIrL,MAAM,sDAElB,GAAIoL,EAAeC,EAAeH,EAAIjV,OACpC,MAAM,IAAI+J,MAAM,yDAElB,OAAOkL,EAAII,OAAOF,EAAcC,KAIjC,CACD1V,IAAK,OACL9B,MAAO,SAAS0X,KAAKhS,GACnB,OAAOA,EAAIiS,SAIZ,CACD7V,IAAK,MACL9B,MAAO,SAAS4X,IAAI9G,EAAGC,GACrB,OAAO8C,WAAW/C,GAAK+C,WAAW9C,KAInC,CACDjP,IAAK,MACL9B,MAAO,SAAS6X,IAAI/G,EAAGC,GACrB,OAAOyD,KAAKC,IAAIZ,WAAW/C,GAAI+C,WAAW9C,MAI3C,CACDjP,IAAK,MACL9B,MAAO,SAAS8X,MACd,IAAK,IAAIC,EAASvU,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAM+O,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFvH,EAAKuH,GAAUxU,UAAUwU,GAG3B,GADA,GAAGrO,MAAMjH,KAAK+N,GACVA,EAAKrO,OAAS,EAChB,MAAM,IAAI+J,MAAM,sCAElB,IAAI8L,EAAQ3H,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KACN2F,KAAI,SAAU3F,GACf,OAAO2P,SAAS3P,EAAK,OAEnBwS,EAAShJ,eAAe+I,EAAO,GACjC1H,EAAM2H,EAAO,GAIf,OAHAD,EAAMtO,MAAM,GAAGtE,SAAQ,SAAUqJ,GAC/B6B,EAAMA,EAAM7B,EAAImC,EAAIN,EAAK7B,MAEpB6B,IAIR,CACDzO,IAAK,MACL9B,MAAO,SAASmY,MACd,IAAK,IAAIC,EAAS5U,UAAUpB,OAAQqO,EAAO,IAAIzH,MAAMoP,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF5H,EAAK4H,GAAU7U,UAAU6U,GAG3B,GADA,GAAG1O,MAAMjH,KAAK+N,GACVA,EAAKrO,OAAS,EAChB,MAAM,IAAI+J,MAAM,sCAElB,IAAI8L,EAAQ3H,EAAQG,GAAM1L,QAAO,SAAUW,GACzC,OAAe,OAARA,KACN2F,KAAI,SAAU3F,GACf,OAAO2P,SAAS3P,EAAK,OAEnB4S,EAAUpJ,eAAe+I,EAAO,GAClC1H,EAAM+H,EAAQ,GAIhB,OAHAL,EAAMtO,MAAM,GAAGtE,SAAQ,SAAUqJ,GAC/B6B,EAAMM,EAAIN,EAAK7B,MAEV6B,IAIR,CACDzO,IAAK,WACL9B,MAAO,SAASuY,SAASlB,GACvB,IAAImB,EAAMhV,UAAUpB,OAAS,QAAsBqB,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAC9E,OAAO6T,EAAIoB,MAAMD,KAIlB,CACD1W,IAAK,UACL9B,MAAO,SAAS0Y,QAAQF,EAAKG,GAC3B,OAAOA,EAAKC,KAAKJ,KAIlB,CACD1W,IAAK,OACL9B,MAAO,SAAS6Y,KAAKF,EAAMG,GACzB,OAAOH,EAAKG,KAIb,CACDhX,IAAK,MACL9B,MAAO,SAAS+Y,IAAIrT,GAClB,IAAI6P,EAAO1B,WAAWnO,GAEtB,OAAI8P,MAAMD,GACD,KAEFf,KAAK0B,IAAIX,KAIjB,CACDzT,IAAK,MACL9B,MAAO,SAASgZ,IAAItT,GAClB,IAAI6P,EAAO1B,WAAWnO,GAGtB,OAAa,IAAT6P,GAAcC,MAAMD,GACf7P,EAEF6P,EAAO,EAAI,GAAK,IAIxB,CACDzT,IAAK,QACL9B,MAAO,SAASiZ,QACd,MAAM,IAAI9M,QAEX,CACDrK,IAAK,gBACL9B,MAEA,SAASsS,cAAc5M,GACrB,OAAIA,aAAeqJ,QACVrJ,EAAIwT,OAENxT,MAGJqJ,QA/gBkB,GAihB3BhP,EAAQgP,QAAUA,G,2BC5oBlB,IAAIoK,EAsBAC,EAQAC,EASAC,EA3CJzZ,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQqZ,aAAerZ,EAAQuZ,gBAAkBvZ,EAAQsZ,eAAiBtZ,EAAQoZ,qBAAkB,EAEpGpZ,EAAQoZ,gBAAkBA,EAC1B,SAAWA,GACTA,EAA4B,WAAI,aAChCA,EAA0B,SAAI,WAC9BA,EAAwB,OAAI,SAC5BA,EAA2B,UAAI,YAC/BA,EAA0B,SAAI,WAC9BA,EAA6B,YAAI,cACjCA,EAA4B,WAAI,aAChCA,EAA0B,SAAI,WAC9BA,EAAyB,QAAI,UAC7BA,EAA8B,aAAI,eAClCA,EAAsB,KAAI,OAC1BA,EAA2B,UAAI,YAC/BA,EAAyB,QAAI,UAC7BA,EAA4B,WAAI,aAChCA,EAA+B,cAAI,gBACnCA,EAAkC,iBAAI,mBACtCA,EAA+B,cAAI,gBACnCA,EAAkC,iBAAI,mBAlBxC,CAmBGA,IAAoBpZ,EAAQoZ,gBAAkBA,EAAkB,KAEnEpZ,EAAQqZ,aAAeA,EACvB,SAAWA,GACTA,EAAqB,OAAI,SACzBA,EAAqB,OAAI,SACzBA,EAAqB,OAAI,SACzBA,EAAoB,MAAI,QAJ1B,CAKGA,IAAiBrZ,EAAQqZ,aAAeA,EAAe,KAE1DrZ,EAAQsZ,eAAiBA,EACzB,SAAWA,GACTA,EAA6B,aAAI,gBACjCA,EAA+B,eAAI,kBACnCA,EAA0B,UAAI,aAC9BA,EAA4B,YAAI,cAChCA,EAAuB,OAAI,SAL7B,CAMGA,IAAmBtZ,EAAQsZ,eAAiBA,EAAiB,KAEhEtZ,EAAQuZ,gBAAkBA,EAC1B,SAAWA,GACTA,EAAwB,OAAI,SAC5BA,EAAuB,MAAI,QAC3BA,EAAuB,MAAI,QAC3BA,EAA2B,UAAI,YAC/BA,EAAwB,OAAI,SAC5BA,EAAyB,QAAI,UAC7BA,EAAsB,KAAI,OAP5B,CAQGA,IAAoBvZ,EAAQuZ,gBAAkBA,EAAkB,M,2BCkBnE,IAAIC,EAAO,WACT,IAAIpS,EAAI,SAAUqS,EAAGC,EAAGtS,EAAGuS,GACvB,IAAKvS,EAAIA,GAAK,GAAIuS,EAAIF,EAAEpX,OAAQsX,IAAKvS,EAAEqS,EAAEE,IAAMD,GAC/C,OAAOtS,GAETwS,EAAM,CAAC,EAAG,GACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,IACVC,EAAM,CAAC,EAAG,GAAI,GAAI,IAClBC,EAAM,CAAC,EAAG,EAAG,GAAI,GAAI,IACrBC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,IACxBC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEC,GAAM,CAAC,EAAG,IACVC,GAAM,CAAC,EAAG,IACVC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC5EC,GAAM,CAAC,EAAG,IACVC,GAAM,CAAC,EAAG,IACVC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACpFC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC5FC,GAAM,CAAC,EAAG,IACVC,GAAM,CAAC,EAAG,IACVC,GAAM,CAAC,GAAI,GAAI,IACbC,GAAS,CACXC,MAAO,SAASA,UAChBC,GAAI,GACJC,SAAU,CACRC,MAAO,EACPC,WAAY,EACZlC,KAAM,EACNmC,IAAK,EACLC,SAAU,EACVC,GAAI,EACJC,SAAU,EACVC,IAAK,EACLC,IAAK,GACLC,SAAU,GACVC,GAAI,GACJC,WAAY,GACZC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,MAAO,GACPC,GAAI,GACJC,MAAO,GACPC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACRC,IAAK,GACLxa,KAAM,GACNya,QAAS,GACTC,OAAQ,GACRC,OAAQ,GACRC,UAAW,GACXC,KAAM,GACNC,UAAW,GACX7E,KAAM,GACN8E,SAAU,GACVC,SAAU,GACVC,MAAO,GACPC,eAAgB,GAChBC,eAAgB,GAChBC,QAAS,GACTC,WAAY,GACZC,WAAY,GACZC,MAAO,GACPC,OAAQ,GACRC,KAAM,GACNC,MAAO,GACPC,KAAM,GACNC,OAAQ,GACRC,QAAS,EACTC,KAAM,GAERC,WAAY,CACV,EAAG,QACH,EAAG,MACH,EAAG,KACH,EAAG,MACH,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,WACJ,GAAI,QACJ,GAAI,iBACJ,GAAI,UACJ,GAAI,aACJ,GAAI,QACJ,GAAI,SACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UAENC,aAAc,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,IAC3dC,cAAe,SAASC,UAAUC,EAAQC,EAAQC,EAAUzD,EAAI0D,EAAyBC,EAAiBC,GAGxG,IAAIC,EAAKF,EAAG7c,OAAS,EACrB,OAAQ4c,GACN,KAAK,EACH,OAAOC,EAAGE,EAAK,GAEjB,KAAK,EACCF,EAAGE,aAAeC,GAAMC,QAAUJ,EAAGE,GAAIG,KAAOF,GAAMtN,GAAGyN,GAC3D7U,KAAK8U,EAAI,IAAIJ,GAAMC,OAAOD,GAAMtN,GAAGyN,GAAI,CAACN,EAAGE,EAAK,IAAIpb,OAAOkb,EAAGE,GAAIM,WAC7D/U,KAAK8U,EAAI,IAAIJ,GAAMC,OAAOD,GAAMtN,GAAGyN,GAAI,CAACN,EAAGE,EAAK,GAAIF,EAAGE,KAC9D,MACF,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACHzU,KAAK8U,EAAIP,EAAGE,GACZ,MACF,KAAK,EACCF,EAAGE,aAAeC,GAAMC,QAAUJ,EAAGE,GAAIG,KAAOF,GAAMtN,GAAG4N,IAC3DhV,KAAK8U,EAAI,IAAIJ,GAAMC,OAAOD,GAAMtN,GAAG4N,IAAK,CAACT,EAAGE,EAAK,IAAIpb,OAAOkb,EAAGE,GAAIM,WAC9D/U,KAAK8U,EAAI,IAAIJ,GAAMC,OAAOD,GAAMtN,GAAG4N,IAAK,CAACT,EAAGE,EAAK,GAAIF,EAAGE,KAC/D,MACF,KAAK,EACHzU,KAAK8U,EAAI,IAAIJ,GAAMO,QAAQP,GAAMtN,GAAG8N,IAAKX,EAAGE,IAC5C,MACF,KAAK,EACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGC,GAAIkN,EAAGE,IACrD,MACF,KAAK,EACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAG+N,GAAIZ,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGgO,GAAIb,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGiO,GAAId,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGkO,GAAIf,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGmO,GAAIhB,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGoO,GAAIjB,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGqO,MAAOlB,EAAGE,IACxD,MACF,KAAK,GACL,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGsO,GAAInB,EAAGE,IACrD,MACF,KAAK,GACL,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGuO,MAAOpB,EAAGE,IACxD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGwO,GAAIrB,EAAGE,IACrD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAGyO,MAAOtB,EAAGE,IACxD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAG0O,IAAKvB,EAAGE,IACtD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAG2O,IAAKxB,EAAGE,IACtD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAG4O,IAAKzB,EAAGE,IACtD,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMvN,MAAMoN,EAAGE,EAAK,GAAIC,GAAMtN,GAAG6O,IAAK1B,EAAGE,IACtD,MACF,KAAK,GACCF,EAAGE,aAAeC,GAAMhZ,OAC1BsE,KAAK8U,EAAI,IAAIJ,GAAMhZ,QAAQ6Y,EAAGE,GAAInf,OAElC0K,KAAK8U,EAAI,IAAIJ,GAAMO,QAAQP,GAAMtN,GAAG2O,IAAKxB,EAAGE,IAE9C,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMwB,KAAK3B,EAAGE,EAAK,GAAI,IACpC,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMwB,KAAK3B,EAAGE,EAAK,GAAIF,EAAGE,EAAK,IAC5C,MACF,KAAK,GACHzU,KAAK8U,EAAIP,EAAGE,EAAK,GACjB,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIJ,GAAMyB,KAAK,IACxB,MACF,KAAK,GACHnW,KAAK8U,EAAI,IAAIJ,GAAMyB,KAAK5B,EAAGE,EAAK,IAChC,MACF,KAAK,GACHzU,KAAK8U,EAAIP,EAAGE,EAAK,GAAGpb,OAAOkb,EAAGE,IAC9B,MACF,KAAK,GACHzU,KAAK8U,EAAI,CAACP,EAAGE,IACb,MACF,KAAK,GACHzU,KAAK8U,EAAI,IAAIsB,GAAQC,eAAelC,EAAOmC,UAAU,IAAIrJ,QACzD,MACF,KAAK,GACHjN,KAAK8U,EAAI,IAAIJ,GAAM6B,UAAUhC,EAAGE,EAAK,GAAIN,EAAOmC,UAAU,GAAGrJ,QAC7D,MACF,KAAK,GACHjN,KAAK8U,EAAI,IAAIJ,GAAM8B,WAAWrC,GAC9B,MACF,KAAK,GACHnU,KAAK8U,EAAI,IAAIJ,GAAM+B,MACnB,MACF,KAAK,GACHzW,KAAK8U,EAAI,IAAIJ,GAAMhZ,OAAOA,OAAOyY,IACjC,MACF,KAAK,GACHnU,KAAK8U,EAAI,IAAIJ,GAAMgC,MAAK,GACxB,MACF,KAAK,GACH1W,KAAK8U,EAAI,IAAIJ,GAAMgC,MAAK,GACxB,MACF,KAAK,GACH1W,KAAK8U,EAAI,IAAIJ,GAAMiC,KACnB,MACF,KAAK,GACH3W,KAAK8U,EAAI,IAAIJ,GAAMjZ,OAAO0Y,EAAOmC,UAAU,EAAGnC,EAAOzc,OAAS,GAAG2U,QAAQ,iBAAiB,SAAUC,GAClG,MAAO,CACLvN,EAAG,KACHvC,EAAG,MACH8P,EAAE,KAAOA,EAAE,MACZD,QAAQ,sBAAsB,SAAUC,GACzC,OAAO7Q,OAAOmb,aAAa,KAAOtK,EAAEgK,UAAU,OAC7CjK,QAAQ,sBAAsB,SAAUC,GACzC,OAAO7Q,OAAOmb,aAAa,KAAOtK,EAAEgK,UAAU,UAKtDO,MAAO,CAAC,CACN,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,GAAI5H,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,EAAG,CAAC,IACH,CACD,EAAG,CAAC,EAAG,KACNlT,EAAEmT,EAAK,CAAC,EAAG,GAAI,CAChB,EAAG,CAAC,EAAG,MACLnT,EAAEoT,EAAK,CAAC,EAAG,GAAI,CACjB,EAAG,CAAC,EAAG,MACL,CACF,EAAG,GACH,GAAIZ,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACHlT,EAAEqT,EAAK,CAAC,EAAG,GAAI,CAChB,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,MACNrT,EAAEsT,EAAK,CAAC,EAAG,IAAK,CAClB,GAAIC,GACJ,GAAIC,KACFxT,EAAEyT,GAAK,CAAC,EAAG,IAAK,CAClB,GAAIC,GACJ,GAAIC,KACF3T,EAAE4T,GAAK,CAAC,EAAG,KAAM,CACnB,GAAInB,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACHlT,EAAE4T,GAAK,CAAC,EAAG,KAAM5T,EAAE4T,GAAK,CAAC,EAAG,IAAK,CAClC,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,MACN5T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM,CACrD,EAAG,GACH,EAAG,EACH,EAAG,EACH,GAAIrB,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACHlT,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM,CACxH,EAAG,GACH,EAAG,EACH,EAAG,EACH,GAAIrB,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACHlT,EAAE6T,GAAK,CAAC,EAAG,KAAM7T,EAAE6T,GAAK,CAAC,EAAG,KAAM,CACnC,EAAG,CAAC,EAAG,IACN,CACD,EAAG,GACH,EAAG,EACH,EAAG,EACH,GAAIrB,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,EAAG,GACH,EAAG,EACH,GAAIV,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACHlT,EAAEqT,EAAK,CAAC,EAAG,IAAK,CACjB,GAAI,GACJ,GAAI,EACJ,GAAIZ,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,GAAI,GACJ,GAAI,EACJ,GAAIT,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,GAAI,GACJ,GAAI,EACJ,GAAIT,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,GAAI,GACJ,GAAI,EACJ,GAAIT,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,GAAI,GACJ,GAAI,EACJ,GAAIT,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,GAAI,GACJ,GAAI,EACJ,GAAIT,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,GACH,CACD,GAAI,GACJ,GAAI,EACJ,GAAIT,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAI,GACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAI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CrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KACrBA,EAAiB,GAAI,KA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CR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,KAAM,MACd,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MACR,IAAO,CAAC,MA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,GAAM,oBACN,GAAM,UACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,uCACN,GAAM,gBACN,GAAM,UACN,GAAM,aACN,GAAM,gCACN,GAAM,mCACN,GAAM,YACN,GAAM,0BACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,iBAEJ98N,GAAY,CAAC,WAAY,UAC7B,SAASg+F,WAYP,OAXAA,SAAW9gG,OAAOknD,OAASlnD,OAAOknD,OAAO/+B,OAAS,SA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","sources":["/app/apps/coreweb/node_modules/@mntv-ml-platform/component-wrapper/node_modules/@sm/apollo-clients/dist/browser.js","/app/apps/coreweb/node_modules/@sm/apollo-clients/dist/browser.js","/app/apps/coreweb/node_modules/@sm/document-export/dist/index.js","/app/apps/coreweb/node_modules/@sm/document-export/dist/ppt/index.js","/app/apps/coreweb/node_modules/@sm/document-export/dist/ppt/presets/headerContent.js","/app/apps/coreweb/node_modules/@sm/document-export/dist/ppt/presets/index.js","/app/apps/coreweb/node_modules/@sm/document-export/dist/ppt/resources/images.js","/app/apps/coreweb/node_modules/@sm/expression/dist/context.js","/app/apps/coreweb/node_modules/@sm/expression/dist/enums.js","/app/apps/coreweb/node_modules/@sm/expression/dist/expr.js","/app/apps/coreweb/node_modules/@sm/expression/dist/index.js","/app/apps/coreweb/node_modules/@sm/expression/dist/nodes.js","/app/apps/coreweb/node_modules/@sm/expression/dist/surveys.js","/app/apps/coreweb/node_modules/@sm/expression/dist/utils.js","/app/apps/coreweb/node_modules/@sm/expression/dist/visitors.js","/app/apps/coreweb/node_modules/@sm/intl/dist/formats.js","/app/apps/coreweb/node_modules/@sm/intl/dist/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/utils/experimentContext.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/constants/plans.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/constants/ippmString.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/utils/appContext.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/utils/logger.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/BackToSurvey/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/experiment/IG2072EduVisibility/EduVisibilityBanner.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/Headline/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/constants/featuresMap.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/utils/recommendationStrategy.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/Feature/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/FeatureSectionHeader/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/CornerRibbon/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/Package/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/utils/featuresUtil.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/PackagesContainer/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/Disclaimer/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/IppmApp/index.js","/app/apps/coreweb/node_modules/@sm/ippm/dist/components/IppmWithData/index.js","/app/apps/coreweb/node_modules/@sm/locale/dist/dataCenters.js","/app/apps/coreweb/node_modules/@sm/locale/dist/index.js","/app/apps/coreweb/node_modules/@sm/locale/dist/languageTags.js","/app/apps/coreweb/node_modules/@sm/locale/dist/languages.js","/app/apps/coreweb/node_modules/@sm/locale/dist/localeSets.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/BaseMetricsTracker.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/MetricsTracker.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/helpers.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/index.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/providers/ComponentMetricsProvider.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/providers/PageMetricsProvider.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/providers/SPARouteMetricsProvider.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/AmplitudeSubscriber.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/DataAnalyticsMetricsSubscriber.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/FacebookPixelSubscriber.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/GTMMeticsSubscriber.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/LoggingMetricsSubscriber.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/amplitude/OneTrust.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/amplitude/index.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/subscribers/anonymous/index.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/types/enums.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/types/types.js","/app/apps/coreweb/node_modules/@sm/metrics/dist/utils.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/box/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/button/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/icons/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/internal-components/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/modal/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/motion/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/progress-circle/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/styles/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/table/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/tooltip/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/typography/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/utils/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/utils/dist/S3Uploader/S3Uploader.js","/app/apps/coreweb/node_modules/@sm/utils/dist/billing/index.js","/app/apps/coreweb/node_modules/@sm/utils/dist/environment/index.js","/app/apps/coreweb/node_modules/@sm/utils/dist/index.js","/app/apps/coreweb/node_modules/@sm/utils/dist/object/deepFreeze.js","/app/apps/coreweb/node_modules/@sm/utils/dist/string/isValidEmail.js","/app/apps/coreweb/node_modules/@sm/utils/dist/string/sanitizeString.js","/app/apps/coreweb/node_modules/@sm/utils/dist/ts-auto-mock/index.js","/app/apps/coreweb/node_modules/@sm/utils/dist/url/createURL.js","/app/apps/coreweb/node_modules/@sm/wds-motion/dist/wds-motion.js","/app/apps/coreweb/node_modules/@sm/question-definitions/esm/index.js","/app/apps/coreweb/node_modules/@sm/question-ui/vendor-e8bcba7c.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/progress-bar/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/list/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/menu/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/tabs/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/label/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/select-menu/node_modules/@wds/menu/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/select-menu/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/slider/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/input-group/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/input-message/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/input/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/popout/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/checkbox/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/button-group/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/pagination/node_modules/@wds/button/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/pagination/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/aggregate-response-customizable-solutions.js","/app/apps/coreweb/node_modules/@sm/question-ui/vendor-1c05ffca.js","/app/apps/coreweb/node_modules/@sm/question-ui/charts.js","/app/apps/coreweb/node_modules/@sm/question-ui/vendor-1535a03e.js","/app/apps/coreweb/node_modules/@sm/question-ui/helpers.js","/app/apps/coreweb/node_modules/@sm/question-ui/vendor-9b603dcf.js","/app/apps/coreweb/node_modules/@sm/question-ui/theme-0294b6d5.js","/app/apps/coreweb/node_modules/@sm/question-ui/respondent-survey.js","/app/apps/coreweb/node_modules/@sm/question-ui/theme-bd08d861.js","/app/apps/coreweb/node_modules/@sm/question-ui/theme-respondent.js","/app/apps/coreweb/node_modules/@sm/question-ui/theme.js","/app/apps/coreweb/node_modules/@sm/question-widgets/aggregate-response-customizable-solutions.js","/app/apps/coreweb/node_modules/@sm/question-ui/vendor-54d5e5ad.js","/app/apps/coreweb/node_modules/@sm/question-ui/node_modules/@wds/card/dist/index.es.js","/app/apps/coreweb/node_modules/@sm/question-ui/aggregate-response-dashboard.js","/app/apps/coreweb/node_modules/@sm/question-widgets/aggregate-response-dashboard.js","/app/apps/coreweb/node_modules/@sm/question-widgets/controllers-8c913634.js","/app/apps/coreweb/node_modules/@sm/question-widgets/utils-5126869e.js","/app/apps/coreweb/node_modules/@sm/question-widgets/vendor-8000eab9.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createBrowserApolloClient;\nvar _apolloClient = _interopRequireDefault(require(\"apollo-client\"));\nvar _apolloLinkBatchHttp = require(\"apollo-link-batch-http\");\nvar _apolloCacheInmemory = require(\"apollo-cache-inmemory\");\nvar _apolloLink = require(\"apollo-link\");\nvar _excluded = [\"headers\"];\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nvar DEFAULT_TARGET_PATH = 'default';\nvar DEFAULT_LINK_OPTIONS = {\n credentials: 'include',\n batchInterval: 30\n};\nfunction createBrowserApolloClient(_ref) {\n var fragmentMatcherFn = _ref.fragmentMatcherFn,\n metadata = _ref.metadata,\n pageRequestId = _ref.pageRequestId,\n _ref$cacheHydration = _ref.cacheHydration,\n cacheHydration = _ref$cacheHydration === void 0 ? {} : _ref$cacheHydration,\n _ref$uri = _ref.uri,\n uri = _ref$uri === void 0 ? '/graphql' : _ref$uri,\n _ref$linkOptions = _ref.linkOptions,\n linkOptions = _ref$linkOptions === void 0 ? {} : _ref$linkOptions,\n _ref$devToolsEnabled = _ref.devToolsEnabled,\n devToolsEnabled = _ref$devToolsEnabled === void 0 ? true : _ref$devToolsEnabled,\n _ref$availableLoggedO = _ref.availableLoggedOutPaths,\n availableLoggedOutPaths = _ref$availableLoggedO === void 0 ? [] : _ref$availableLoggedO,\n authLink = _ref.authLink;\n var appName = metadata.appName,\n appVersion = metadata.appVersion;\n var cache = new _apolloCacheInmemory.InMemoryCache({\n fragmentMatcher: fragmentMatcherFn && fragmentMatcherFn()\n }).restore(cacheHydration);\n var _linkOptions$headers = linkOptions.headers,\n headers = _linkOptions$headers === void 0 ? {} : _linkOptions$headers,\n otherLinkOptions = _objectWithoutProperties(linkOptions, _excluded);\n if (pageRequestId) {\n headers['sm-page-request-id'] = pageRequestId;\n }\n var apolloLinkMemoizeCache = {};\n function apolloLinkFactory() {\n var targetPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_TARGET_PATH;\n if (apolloLinkMemoizeCache[targetPath]) {\n return apolloLinkMemoizeCache[targetPath];\n }\n var link = new _apolloLinkBatchHttp.BatchHttpLink(_objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LINK_OPTIONS), otherLinkOptions), {}, {\n uri: targetPath,\n headers: headers\n }));\n if (authLink && targetPath === '/graphql') {\n link = authLink.concat(link);\n }\n apolloLinkMemoizeCache[targetPath] = link;\n return link;\n }\n\n // custom apollo-link that determines the actual link to use based on the passed\n // `targetPath` context.\n var link = new _apolloLink.ApolloLink(function (operation) {\n var _operation$getContext, _operation$getContext2;\n // if the targetPath is not the default, use an alternate graphql endpoint.\n var targetPath = operation === null || operation === void 0 ? void 0 : (_operation$getContext = operation.getContext) === null || _operation$getContext === void 0 ? void 0 : (_operation$getContext2 = _operation$getContext.call(operation)) === null || _operation$getContext2 === void 0 ? void 0 : _operation$getContext2.targetPath;\n var graphQLPath = uri;\n if (availableLoggedOutPaths.includes(targetPath)) {\n // whitelist for security\n graphQLPath = targetPath;\n }\n return apolloLinkFactory(graphQLPath).request(operation) || _apolloLink.Observable.of();\n });\n return new _apolloClient.default({\n connectToDevTools: devToolsEnabled,\n cache: cache,\n link: link,\n name: appName,\n version: appVersion\n });\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createBrowserApolloClient;\nvar _client = require(\"@apollo/client\");\nvar _batchHttp = require(\"@apollo/client/link/batch-http\");\nvar _excluded = [\"headers\"];\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar DEFAULT_TARGET_PATH = 'default';\nvar DEFAULT_LINK_OPTIONS = {\n credentials: 'include',\n batchInterval: 30\n};\nfunction createBrowserApolloClient(_ref) {\n var possibleTypes = _ref.possibleTypes,\n metadata = _ref.metadata,\n pageRequestId = _ref.pageRequestId,\n _ref$cacheHydration = _ref.cacheHydration,\n cacheHydration = _ref$cacheHydration === void 0 ? {} : _ref$cacheHydration,\n _ref$uri = _ref.uri,\n uri = _ref$uri === void 0 ? '/graphql' : _ref$uri,\n _ref$linkOptions = _ref.linkOptions,\n linkOptions = _ref$linkOptions === void 0 ? {} : _ref$linkOptions,\n _ref$devToolsEnabled = _ref.devToolsEnabled,\n devToolsEnabled = _ref$devToolsEnabled === void 0 ? true : _ref$devToolsEnabled,\n _ref$availableLoggedO = _ref.availableLoggedOutPaths,\n availableLoggedOutPaths = _ref$availableLoggedO === void 0 ? [] : _ref$availableLoggedO,\n authLink = _ref.authLink,\n _ref$typePolicies = _ref.typePolicies,\n typePolicies = _ref$typePolicies === void 0 ? {} : _ref$typePolicies;\n var appName = metadata.appName,\n appVersion = metadata.appVersion;\n var cache = new _client.InMemoryCache({\n possibleTypes: possibleTypes,\n typePolicies: _objectSpread({}, typePolicies)\n }).restore(cacheHydration);\n var _linkOptions$headers = linkOptions.headers,\n headers = _linkOptions$headers === void 0 ? {} : _linkOptions$headers,\n otherLinkOptions = _objectWithoutProperties(linkOptions, _excluded);\n if (pageRequestId) {\n headers['sm-page-request-id'] = pageRequestId;\n }\n var apolloLinkMemoizeCache = {};\n function apolloLinkFactory() {\n var targetPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_TARGET_PATH;\n if (apolloLinkMemoizeCache[targetPath]) {\n return apolloLinkMemoizeCache[targetPath];\n }\n var link = new _batchHttp.BatchHttpLink(_objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LINK_OPTIONS), otherLinkOptions), {}, {\n uri: targetPath,\n headers: headers\n }));\n if (authLink && targetPath === '/graphql') {\n link = authLink.concat(link);\n }\n apolloLinkMemoizeCache[targetPath] = link;\n return link;\n }\n\n // custom apollo-link that determines the actual link to use based on the passed\n // `targetPath` context.\n var link = new _client.ApolloLink(function (operation) {\n var _operation$getContext, _operation$getContext2;\n // if the targetPath is not the default, use an alternate graphql endpoint.\n var targetPath = operation === null || operation === void 0 ? void 0 : (_operation$getContext = operation.getContext) === null || _operation$getContext === void 0 ? void 0 : (_operation$getContext2 = _operation$getContext.call(operation)) === null || _operation$getContext2 === void 0 ? void 0 : _operation$getContext2.targetPath;\n var graphQLPath = uri;\n if (availableLoggedOutPaths.includes(targetPath)) {\n // whitelist for security\n graphQLPath = targetPath;\n }\n return apolloLinkFactory(graphQLPath).request(operation) || _client.Observable.of();\n });\n return new _client.ApolloClient({\n connectToDevTools: devToolsEnabled,\n cache: cache,\n link: link,\n name: appName,\n version: appVersion\n });\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n PresentationExport: true,\n PresentationSlideExport: true,\n PresentationTableExport: true,\n PresentationTableRowExport: true\n};\nObject.defineProperty(exports, \"PresentationExport\", {\n enumerable: true,\n get: function get() {\n return _ppt.default;\n }\n});\nObject.defineProperty(exports, \"PresentationSlideExport\", {\n enumerable: true,\n get: function get() {\n return _ppt.Slide;\n }\n});\nObject.defineProperty(exports, \"PresentationTableExport\", {\n enumerable: true,\n get: function get() {\n return _ppt.Table;\n }\n});\nObject.defineProperty(exports, \"PresentationTableRowExport\", {\n enumerable: true,\n get: function get() {\n return _ppt.Row;\n }\n});\nvar _ppt = _interopRequireWildcard(require(\"./ppt\"));\nvar _presets = require(\"./ppt/presets\");\nObject.keys(_presets).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _presets[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _presets[key];\n }\n });\n});\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Table = exports.Slide = exports.Row = exports.LayoutOptions = void 0;\nvar _pptxgenjs = _interopRequireDefault(require(\"pptxgenjs\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar LayoutOptions;\nexports.LayoutOptions = LayoutOptions;\n(function (LayoutOptions) {\n LayoutOptions[\"standard\"] = \"LAYOUT_4x3\";\n})(LayoutOptions || (exports.LayoutOptions = LayoutOptions = {}));\nfunction isImageData(img) {\n return !!img.data;\n}\n\n// images\nvar Row = /*#__PURE__*/function () {\n function Row() {\n _classCallCheck(this, Row);\n this.cells = [];\n }\n _createClass(Row, [{\n key: \"withCell\",\n value: function withCell(cellCreator) {\n var cell = cellCreator();\n this.cells.push(cell);\n return this;\n }\n }, {\n key: \"getCells\",\n value: function getCells() {\n return _toConsumableArray(this.cells);\n }\n }]);\n return Row;\n}();\nexports.Row = Row;\nvar Table = /*#__PURE__*/function () {\n function Table() {\n _classCallCheck(this, Table);\n this.rows = [];\n }\n _createClass(Table, [{\n key: \"withRow\",\n value: function withRow(rowCreator) {\n var row = rowCreator(new Row());\n this.rows.push(row);\n return this;\n }\n }, {\n key: \"getRows\",\n value: function getRows() {\n // TODO: Fix this cast\n return this.rows.map(function (r) {\n return _toConsumableArray(r.getCells());\n });\n }\n }]);\n return Table;\n}();\nexports.Table = Table;\nvar Slide = /*#__PURE__*/function () {\n function Slide(slideJs, shapes, chartTypes) {\n _classCallCheck(this, Slide);\n this.slideJs = slideJs;\n this.shapes = shapes;\n this.chartTypes = chartTypes;\n }\n _createClass(Slide, [{\n key: \"withText\",\n value: function withText(text) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.slideJs.addText(text, options);\n return this;\n }\n }, {\n key: \"withImage\",\n value: function withImage(imageOptions) {\n if (isImageData(imageOptions) && !imageOptions.data.match(/data:image\\/(png|jpg|jpeg|gif);base64,/)) {\n throw new Error('Data must be a base64 string');\n }\n this.slideJs.addImage(imageOptions);\n return this;\n }\n }, {\n key: \"withShape\",\n value: function withShape(shapeType, options) {\n this.slideJs.addShape(this.shapes[shapeType], options);\n return this;\n }\n }, {\n key: \"withTable\",\n value: function withTable(tableCreator, options) {\n var table = tableCreator(new Table());\n var rows = table.getRows();\n this.slideJs.addTable(rows, _objectSpread({}, options));\n return this;\n }\n }, {\n key: \"withChart\",\n value: function withChart(type, data) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.slideJs.addChart(this.chartTypes[type], data, options);\n return this;\n }\n }]);\n return Slide;\n}();\nexports.Slide = Slide;\nvar PresentationExport = /*#__PURE__*/function () {\n // TODO: find a better way to test without exposing the internals\n\n function PresentationExport() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n layout: LayoutOptions.standard\n };\n _classCallCheck(this, PresentationExport);\n this.pptx = new _pptxgenjs.default();\n this.slides = [];\n this.pptx.layout = options.layout;\n if (options.author) {\n this.pptx.author = options.author;\n }\n if (options.company) {\n this.pptx.company = options.company;\n }\n if (options.revision) {\n this.pptx.revision = options.revision;\n }\n if (options.subject) {\n this.pptx.subject = options.subject;\n }\n if (options.title) {\n this.pptx.title = options.title;\n }\n }\n _createClass(PresentationExport, [{\n key: \"withSlide\",\n value: function withSlide(slideCreator) {\n var pptxGenSlide = this.pptx.addSlide();\n // TODO: remove as any when new upgrading to newer version of PptxGenJS\n var slide = new Slide(pptxGenSlide, this.pptx.shapes, this.pptx.charts);\n this.slides.push(slideCreator(slide));\n return this;\n }\n }, {\n key: \"save\",\n value: function save(fileName) {\n this.pptx.writeFile({\n fileName: fileName\n });\n }\n }]);\n return PresentationExport;\n}();\nexports.default = PresentationExport;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _images = require(\"../resources/images\");\nvar fontFace = 'Helvetica';\nvar addHeaderContentSlide = function addHeaderContentSlide(presentation, _ref, content) {\n var title = _ref.title,\n subtitle = _ref.subtitle;\n presentation.withSlide(function (slide) {\n slide.withText(title, {\n fontFace: fontFace,\n fontSize: 18,\n h: 0.41,\n w: 7.97,\n x: 0.22,\n y: 0.22,\n bold: true\n }).withImage({\n data: _images.logoGreen,\n h: 0.2,\n w: 1.33,\n x: 8.45,\n y: 0.23\n });\n if (subtitle) {\n slide.withText(subtitle, {\n fontFace: fontFace,\n fontSize: 9,\n h: 0.23,\n w: 7.97,\n x: 0.22,\n y: 0.6\n });\n }\n return content(slide);\n });\n};\nvar _default = addHeaderContentSlide;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addHeaderContentSlide\", {\n enumerable: true,\n get: function get() {\n return _headerContent.default;\n }\n});\nvar _headerContent = _interopRequireDefault(require(\"./headerContent\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logoGreen = void 0;\n// eslint-disable-next-line import/prefer-default-export\nvar logoGreen = 'data:image/png;base64,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';\nexports.logoGreen = logoGreen;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Context = void 0;\nvar _dateFns = require(\"date-fns\");\nvar _nodes = require(\"./nodes\");\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar unevaluated = function unevaluated(func) {\n // eslint-disable-next-line no-param-reassign\n func.lazy = true;\n return func;\n};\nfunction isNotArray(arg) {\n return !Array.isArray(arg);\n}\nvar flatten = function flatten() {\n var ret = [];\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n args.forEach(function (arg) {\n if (isNotArray(arg)) {\n ret.push(arg);\n } else {\n arg.forEach(function (item) {\n flatten(item).forEach(function (flat) {\n ret.push(flat);\n });\n });\n }\n });\n return ret;\n};\nvar gcd = function gcd(a, b) {\n if (!b) {\n return a;\n }\n return gcd(b, a % b);\n};\nvar Context = /*#__PURE__*/function () {\n function Context() {\n var _this = this;\n var ctx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Context);\n this.IF = unevaluated(function (fn, condition, ifyes, ifno) {\n if (fn(condition)) {\n return fn(ifyes);\n }\n return fn(ifno);\n });\n this.CASE = unevaluated(function (fn, rootCase) {\n if (rootCase === undefined) {\n return null;\n }\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n for (var i = 0, j = 0, len = args.length; j < len; _ref = [i += 2, j += 2], i = _ref[0], j = _ref[1], _ref) {\n var _ref;\n var comparable = args[i];\n if (i + 1 < args.length && fn(new _nodes.BinOp(comparable, _nodes.Op.Eq, rootCase))) {\n return fn(args[i + 1]);\n }\n }\n if (args.length > 0 && args.length % 2 === 1) {\n return fn(args[args.length - 1]);\n }\n return null;\n });\n this.COALESCE = unevaluated(function (fn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n [].slice.call(args);\n args.slice(1);\n for (var i = 0; i < args.length; i += 1) {\n var arg = args[i];\n var result = fn(arg);\n if (result !== null) {\n return result;\n }\n }\n return null;\n });\n this.DATE = function (arg) {\n return (0, _dateFns.parseISO)(_this.dateTimeParam(arg));\n };\n this.DATETIME = function (arg) {\n return (0, _dateFns.parseISO)(_this.dateTimeParam(arg));\n };\n this.TIME = function (arg) {\n return (0, _dateFns.parse)(_this.dateTimeParam(arg), 'kk:mm:ss', new Date());\n };\n Object.entries(ctx).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n value = _ref3[1];\n _this[key] = value;\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n _createClass(Context, [{\n key: \"LEN\",\n value: function LEN(arg) {\n return arg.length;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"MIN\",\n value: function MIN() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n if (args.length === 0) {\n return null;\n }\n var fargs = flatten(args).filter(function (arg) {\n return arg !== null;\n });\n var _fargs = _slicedToArray(fargs, 1),\n marg = _fargs[0];\n fargs.slice(1).forEach(function (arg) {\n if (arg < marg) {\n marg = arg;\n }\n });\n return marg;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"MAX\",\n value: function MAX() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (args.length === 0) {\n return null;\n }\n var fargs = flatten(args).filter(function (arg) {\n return arg !== null;\n });\n var _fargs2 = _slicedToArray(fargs, 1),\n marg = _fargs2[0];\n fargs.splice(1).forEach(function (arg) {\n if (arg > marg) {\n marg = arg;\n }\n });\n return marg;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"SUM\",\n value: function SUM() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n var fargs = flatten(args).filter(function (arg) {\n return arg !== null;\n }).map(function (x) {\n return parseFloat(x);\n });\n return fargs.reduce(function (a, b) {\n return a + b;\n }, 0);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"AVG\",\n value: function AVG() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (args.length === 0) {\n return null;\n }\n var fargs = flatten(args).filter(function (arg) {\n return arg !== null;\n }).map(function (x) {\n return parseFloat(x);\n });\n var tot = fargs.reduce(function (a, b) {\n return a + b;\n }, 0);\n return tot / args.length;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"STDEV\",\n value: function STDEV() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n if (args.length <= 1) {\n return null;\n }\n var fargs = flatten(args).filter(function (arg) {\n return arg !== null;\n }).map(function (x) {\n return parseFloat(x);\n });\n var tot = fargs.reduce(function (a, b) {\n return a + b;\n }, 0);\n var avg = tot / fargs.length;\n var _var = fargs.map(function (x) {\n return Math.pow(x - avg, 2);\n });\n var svar = _var.reduce(function (a, b) {\n return a + b;\n }, 0);\n return Math.sqrt(svar * 1.0 / (_var.length - 1));\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"STDEVP\",\n value: function STDEVP() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n if (args.length <= 1) {\n return null;\n }\n var fargs = flatten(args).filter(function (arg) {\n return arg !== null;\n }).map(function (x) {\n return parseFloat(x);\n });\n var tot = fargs.reduce(function (a, b) {\n return a + b;\n }, 0);\n var avg = tot / fargs.length;\n var _var = fargs.map(function (x) {\n return Math.pow(x - avg, 2);\n });\n var svar = _var.reduce(function (a, b) {\n return a + b;\n }, 0);\n return Math.sqrt(svar * 1.0 / _var.length);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"CONCAT\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function CONCAT(base) {\n var sbase = base.toString();\n for (var _len10 = arguments.length, args = new Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) {\n args[_key10 - 1] = arguments[_key10];\n }\n [].slice.call(args);\n args.slice(1);\n args.filter(function (arg) {\n return arg !== null;\n }).forEach(function (arg) {\n sbase = \"\".concat(sbase).concat(arg.toString());\n });\n return sbase;\n }\n }, {\n key: \"INT\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function INT(arg) {\n return parseInt(arg, 10);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"CEIL\",\n value: function CEIL(arg) {\n var farg = parseFloat(arg);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(farg)) {\n return null;\n }\n return Math.ceil(farg);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"FLOOR\",\n value: function FLOOR(arg) {\n var farg = parseFloat(arg);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(farg)) {\n return null;\n }\n return Math.floor(farg);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"ROUND\",\n value: function ROUND(arg) {\n var nDigits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';\n var farg = parseFloat(arg);\n var fnum = parseInt(nDigits, 10);\n\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(farg) || isNaN(fnum)) {\n return null;\n }\n var digits = fnum > 20 ? 20 : fnum;\n if (digits > 0) {\n return parseFloat(farg.toFixed(digits));\n }\n var rounder = Math.pow(10, Math.abs(digits));\n return Math.round(farg / rounder) * rounder;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"BOOL\",\n value: function BOOL(arg) {\n return !!arg;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"REAL\",\n value: function REAL(arg) {\n return parseFloat(arg);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"STR\",\n value: function STR(arg) {\n if (arg === undefined) {\n return null;\n }\n if (arg === null) {\n return '';\n }\n return arg.toString();\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"LOWER\",\n value: function LOWER(arg) {\n if (arg === undefined) {\n return null;\n }\n if (arg === null) {\n return '';\n }\n return arg.toString().toLowerCase();\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"UPPER\",\n value: function UPPER(arg) {\n if (arg === undefined) {\n return null;\n }\n if (arg === null) {\n return '';\n }\n return arg.toString().toUpperCase();\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"CAPITALIZE\",\n value: function CAPITALIZE(arg) {\n if (arg === undefined) {\n return null;\n }\n if (arg === null) {\n return '';\n }\n var sarg = arg.toString().toLowerCase();\n return \"\".concat(sarg.charAt(0).toUpperCase()).concat(sarg.slice(1));\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"TITLE\",\n value: function TITLE(arg) {\n if (arg === undefined) {\n return null;\n }\n if (arg === null) {\n return '';\n }\n return arg.toString().toLowerCase().replace(/\\b\\w/g, function (m) {\n return m.toUpperCase();\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"PRECISION\",\n value: function PRECISION(arg, precision) {\n var parsedPrecision = parseInt(precision, 10);\n if (parsedPrecision <= 0) {\n throw new Error('Precision argument must be of type integer and greater than 0.');\n }\n return parseFloat(arg).toFixed(parsedPrecision);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"SUBSTR\",\n value: function SUBSTR(str, offset, length) {\n var parsedOffset = parseInt(offset, 10);\n var parsedLength = parseInt(length, 10);\n if (parsedOffset < 0) {\n throw new Error('Offset must be of type integer and greater than or equal to 0.');\n }\n if (parsedOffset > str.length) {\n throw new Error('Offset cannot be larger than the length of the given string.');\n }\n if (parsedLength <= 0) {\n throw new Error('Length must be of type integer and greater than 0.');\n }\n if (parsedOffset + parsedLength > str.length) {\n throw new Error('The value of length exceeds the length of the string.');\n }\n return str.substr(parsedOffset, parsedLength);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"TRIM\",\n value: function TRIM(arg) {\n return arg.trim();\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"MOD\",\n value: function MOD(a, b) {\n return parseFloat(a) % parseFloat(b);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"POW\",\n value: function POW(a, b) {\n return Math.pow(parseFloat(a), parseFloat(b));\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"LCM\",\n value: function LCM() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n [].slice.call(args);\n if (args.length < 2) {\n throw new Error('LCM requires at least 2 arguments.');\n }\n var iargs = flatten(args).filter(function (arg) {\n return arg !== null;\n }).map(function (arg) {\n return parseInt(arg, 10);\n });\n var _iargs = _slicedToArray(iargs, 1),\n ret = _iargs[0];\n iargs.slice(1).forEach(function (x) {\n ret = ret * x / gcd(ret, x);\n });\n return ret;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"GCD\",\n value: function GCD() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n [].slice.call(args);\n if (args.length < 2) {\n throw new Error('GCD requires at least 2 arguments.');\n }\n var iargs = flatten(args).filter(function (arg) {\n return arg !== null;\n }).map(function (arg) {\n return parseInt(arg, 10);\n });\n var _iargs2 = _slicedToArray(iargs, 1),\n ret = _iargs2[0];\n iargs.slice(1).forEach(function (x) {\n ret = gcd(ret, x);\n });\n return ret;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"STRSPLIT\",\n value: function STRSPLIT(str) {\n var _by = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';\n return str.split(_by);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"STRJOIN\",\n value: function STRJOIN(_by, list) {\n return list.join(_by);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"PART\",\n value: function PART(list, index) {\n return list[index];\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"ABS\",\n value: function ABS(arg) {\n var farg = parseFloat(arg);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(farg)) {\n return null;\n }\n return Math.abs(farg);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"SGN\",\n value: function SGN(arg) {\n var farg = parseFloat(arg);\n\n // eslint-disable-next-line no-restricted-globals\n if (farg === 0 || isNaN(farg)) {\n return arg;\n }\n return farg > 0 ? 1 : -1;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"ERROR\",\n value: function ERROR() {\n throw new Error();\n }\n }, {\n key: \"dateTimeParam\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function dateTimeParam(arg) {\n if (arg instanceof Context) {\n return arg._value;\n }\n return arg;\n }\n }]);\n return Context;\n}(); // eslint-disable-next-line import/prefer-default-export\nexports.Context = Context;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VariableType = exports.QuestionSubtype = exports.QuestionFamily = exports.PredicateOption = void 0;\nvar PredicateOption;\nexports.PredicateOption = PredicateOption;\n(function (PredicateOption) {\n PredicateOption[\"NoResponse\"] = \"noresponse\";\n PredicateOption[\"Response\"] = \"response\";\n PredicateOption[\"Equals\"] = \"equals\";\n PredicateOption[\"NotEquals\"] = \"notequals\";\n PredicateOption[\"Contains\"] = \"contains\";\n PredicateOption[\"NotContains\"] = \"notcontains\";\n PredicateOption[\"StartsWith\"] = \"startswith\";\n PredicateOption[\"EndsWith\"] = \"endswith\";\n PredicateOption[\"Greater\"] = \"greater\";\n PredicateOption[\"GreaterEqual\"] = \"greaterequal\";\n PredicateOption[\"Less\"] = \"less\";\n PredicateOption[\"LessEqual\"] = \"lessequal\";\n PredicateOption[\"IsOneOf\"] = \"isoneof\";\n PredicateOption[\"IsNotOneOf\"] = \"notisoneof\";\n PredicateOption[\"ContainsAnyOf\"] = \"containsanyof\";\n PredicateOption[\"NotContainsAnyOf\"] = \"notcontainsanyof\";\n PredicateOption[\"ContainsAllOf\"] = \"containsallof\";\n PredicateOption[\"NotContainsAllOf\"] = \"notcontainsallof\";\n})(PredicateOption || (exports.PredicateOption = PredicateOption = {}));\nvar VariableType;\nexports.VariableType = VariableType;\n(function (VariableType) {\n VariableType[\"String\"] = \"string\";\n VariableType[\"Number\"] = \"number\";\n VariableType[\"Single\"] = \"single\";\n VariableType[\"Multi\"] = \"multi\";\n})(VariableType || (exports.VariableType = VariableType = {}));\nvar QuestionFamily;\nexports.QuestionFamily = QuestionFamily;\n(function (QuestionFamily) {\n QuestionFamily[\"SingleChoice\"] = \"single_choice\";\n QuestionFamily[\"MultipleChoice\"] = \"multiple_choice\";\n QuestionFamily[\"OpenEnded\"] = \"open_ended\";\n QuestionFamily[\"Demographic\"] = \"demographic\";\n QuestionFamily[\"Matrix\"] = \"matrix\";\n})(QuestionFamily || (exports.QuestionFamily = QuestionFamily = {}));\nvar QuestionSubtype; // eslint-disable-next-line import/prefer-default-export\nexports.QuestionSubtype = QuestionSubtype;\n(function (QuestionSubtype) {\n QuestionSubtype[\"Single\"] = \"single\";\n QuestionSubtype[\"Essay\"] = \"essay\";\n QuestionSubtype[\"Multi\"] = \"multi\";\n QuestionSubtype[\"Numerical\"] = \"numerical\";\n QuestionSubtype[\"Rating\"] = \"rating\";\n QuestionSubtype[\"Ranking\"] = \"ranking\";\n QuestionSubtype[\"Menu\"] = \"menu\";\n})(QuestionSubtype || (exports.QuestionSubtype = QuestionSubtype = {}));","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar expr = function () {\n var o = function (k, v, o, l) {\n for (o = o || {}, l = k.length; l--; o[k[l]] = v);\n return o;\n },\n $V0 = [1, 5],\n $V1 = [1, 10],\n $V2 = [1, 16],\n $V3 = [1, 24],\n $V4 = [1, 25],\n $V5 = [1, 26],\n $V6 = [1, 17],\n $V7 = [1, 18],\n $V8 = [1, 19],\n $V9 = [1, 20],\n $Va = [1, 23],\n $Vb = [5, 33, 39, 40],\n $Vc = [5, 7, 33, 39, 40],\n $Vd = [5, 7, 9, 33, 39, 40],\n $Ve = [5, 7, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 33, 39, 40],\n $Vf = [1, 42],\n $Vg = [1, 43],\n $Vh = [5, 7, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 33, 39, 40],\n $Vi = [1, 44],\n $Vj = [1, 45],\n $Vk = [5, 7, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 29, 33, 39, 40],\n $Vl = [5, 7, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 29, 32, 33, 39, 40, 43],\n $Vm = [1, 66],\n $Vn = [1, 77],\n $Vo = [33, 39, 40];\n var parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n error: 2,\n expression: 3,\n expr: 4,\n EOF: 5,\n and_expr: 6,\n OR: 7,\n not_expr: 8,\n AND: 9,\n NOT: 10,\n cmp_expr: 11,\n EQ: 12,\n arith_expr: 13,\n NE: 14,\n GT: 15,\n LT: 16,\n GE: 17,\n LE: 18,\n IN: 19,\n IS: 20,\n empty: 21,\n CT: 22,\n NOTCT: 23,\n ADD: 24,\n term: 25,\n SUB: 26,\n MUL: 27,\n factor: 28,\n DIV: 29,\n call: 30,\n primary: 31,\n LPAREN: 32,\n RPAREN: 33,\n expr_list: 34,\n atom: 35,\n attribute: 36,\n list: 37,\n LBRACKET: 38,\n RBRACKET: 39,\n COMMA: 40,\n custommetadata: 41,\n CUSTOMMETADATA: 42,\n DOTATTR: 43,\n identifier: 44,\n IDENTIFIER: 45,\n EMPTY: 46,\n NUMBER: 47,\n TRUE: 48,\n FALSE: 49,\n NULL: 50,\n STRING: 51,\n $accept: 0,\n $end: 1\n },\n terminals_: {\n 2: 'error',\n 5: 'EOF',\n 7: 'OR',\n 9: 'AND',\n 10: 'NOT',\n 12: 'EQ',\n 14: 'NE',\n 15: 'GT',\n 16: 'LT',\n 17: 'GE',\n 18: 'LE',\n 19: 'IN',\n 20: 'IS',\n 22: 'CT',\n 23: 'NOTCT',\n 24: 'ADD',\n 26: 'SUB',\n 27: 'MUL',\n 29: 'DIV',\n 32: 'LPAREN',\n 33: 'RPAREN',\n 38: 'LBRACKET',\n 39: 'RBRACKET',\n 40: 'COMMA',\n 42: 'CUSTOMMETADATA',\n 43: 'DOTATTR',\n 45: 'IDENTIFIER',\n 46: 'EMPTY',\n 47: 'NUMBER',\n 48: 'TRUE',\n 49: 'FALSE',\n 50: 'NULL',\n 51: 'STRING'\n },\n productions_: [0, [3, 2], [4, 3], [4, 1], [6, 3], [6, 1], [8, 2], [8, 1], [11, 3], [11, 3], [11, 3], [11, 3], [11, 3], [11, 3], [11, 3], [11, 4], [11, 3], [11, 3], [11, 4], [11, 4], [11, 3], [11, 3], [11, 1], [13, 3], [13, 3], [13, 1], [25, 3], [25, 3], [25, 1], [28, 2], [28, 1], [30, 3], [30, 4], [30, 1], [31, 1], [31, 1], [31, 1], [31, 3], [37, 2], [37, 3], [34, 3], [34, 1], [41, 1], [36, 2], [44, 1], [21, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n /* this == yyval */\n\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n case 2:\n if ($$[$0] instanceof nodes.BoolOp && $$[$0].op === nodes.Op.Or) {\n this.$ = new nodes.BoolOp(nodes.Op.Or, [$$[$0 - 2]].concat($$[$0].operands));\n } else this.$ = new nodes.BoolOp(nodes.Op.Or, [$$[$0 - 2], $$[$0]]);\n break;\n case 3:\n case 5:\n case 7:\n case 22:\n case 25:\n case 28:\n case 30:\n case 33:\n case 34:\n case 35:\n case 36:\n case 50:\n case 51:\n this.$ = $$[$0];\n break;\n case 4:\n if ($$[$0] instanceof nodes.BoolOp && $$[$0].op === nodes.Op.And) {\n this.$ = new nodes.BoolOp(nodes.Op.And, [$$[$0 - 2]].concat($$[$0].operands));\n } else this.$ = new nodes.BoolOp(nodes.Op.And, [$$[$0 - 2], $$[$0]]);\n break;\n case 6:\n this.$ = new nodes.UnaryOp(nodes.Op.Not, $$[$0]);\n break;\n case 8:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Eq, $$[$0]);\n break;\n case 9:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Ne, $$[$0]);\n break;\n case 10:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Gt, $$[$0]);\n break;\n case 11:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Lt, $$[$0]);\n break;\n case 12:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Ge, $$[$0]);\n break;\n case 13:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Le, $$[$0]);\n break;\n case 14:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.In, $$[$0]);\n break;\n case 15:\n this.$ = new nodes.BinOp($$[$0 - 3], nodes.Op.NotIn, $$[$0]);\n break;\n case 16:\n case 17:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Is, $$[$0]);\n break;\n case 18:\n case 19:\n this.$ = new nodes.BinOp($$[$0 - 3], nodes.Op.IsNot, $$[$0]);\n break;\n case 20:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Ct, $$[$0]);\n break;\n case 21:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.NotCt, $$[$0]);\n break;\n case 23:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Add, $$[$0]);\n break;\n case 24:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Sub, $$[$0]);\n break;\n case 26:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Mul, $$[$0]);\n break;\n case 27:\n this.$ = new nodes.BinOp($$[$0 - 2], nodes.Op.Div, $$[$0]);\n break;\n case 29:\n if ($$[$0] instanceof nodes.Number) {\n this.$ = new nodes.Number(-$$[$0].value);\n } else {\n this.$ = new nodes.UnaryOp(nodes.Op.Sub, $$[$0]);\n }\n break;\n case 31:\n this.$ = new nodes.Call($$[$0 - 2], []);\n break;\n case 32:\n this.$ = new nodes.Call($$[$0 - 3], $$[$0 - 1]);\n break;\n case 37:\n this.$ = $$[$0 - 1];\n break;\n case 38:\n this.$ = new nodes.List([]);\n break;\n case 39:\n this.$ = new nodes.List($$[$0 - 1]);\n break;\n case 40:\n this.$ = $$[$0 - 2].concat($$[$0]);\n break;\n case 41:\n this.$ = [$$[$0]];\n break;\n case 42:\n this.$ = new surveys.CustomMetadata(yytext.substring(15).trim());\n break;\n case 43:\n this.$ = new nodes.Attribute($$[$0 - 1], yytext.substring(1).trim());\n break;\n case 44:\n this.$ = new nodes.Identifier(yytext);\n break;\n case 45:\n this.$ = new nodes.Empty();\n break;\n case 46:\n this.$ = new nodes.Number(Number(yytext));\n break;\n case 47:\n this.$ = new nodes.Bool(true);\n break;\n case 48:\n this.$ = new nodes.Bool(false);\n break;\n case 49:\n this.$ = new nodes.Null();\n break;\n case 52:\n this.$ = new nodes.String(yytext.substring(1, yytext.length - 1).replace(/\\\\[nt\\\\\\\"\\']/g, function (m) {\n return {\n n: '\\n',\n t: '\\t'\n }[m[1]] || m[1];\n }).replace(/\\\\x[a-fA-F0-9]{2}/g, function (m) {\n return String.fromCharCode('0x' + m.substring(2));\n }).replace(/\\\\u[a-fA-F0-9]{4}/g, function (m) {\n return String.fromCharCode('0x' + m.substring(2));\n }));\n break;\n }\n },\n table: [{\n 3: 1,\n 4: 2,\n 6: 3,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 1: [3]\n }, {\n 5: [1, 27]\n }, o($Vb, [2, 3], {\n 7: [1, 28]\n }), o($Vc, [2, 5], {\n 9: [1, 29]\n }), {\n 8: 30,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vd, [2, 7], {\n 10: [1, 38],\n 12: [1, 31],\n 14: [1, 32],\n 15: [1, 33],\n 16: [1, 34],\n 17: [1, 35],\n 18: [1, 36],\n 19: [1, 37],\n 20: [1, 39],\n 22: [1, 40],\n 23: [1, 41]\n }), o($Ve, [2, 22], {\n 24: $Vf,\n 26: $Vg\n }), o($Vh, [2, 25], {\n 27: $Vi,\n 29: $Vj\n }), o($Vk, [2, 28]), {\n 26: $V1,\n 28: 46,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vk, [2, 30]), o($Vk, [2, 33], {\n 32: [1, 47],\n 43: [1, 48]\n }), o($Vl, [2, 34]), o($Vl, [2, 35]), o($Vl, [2, 36]), {\n 4: 49,\n 6: 3,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vl, [2, 46]), o($Vl, [2, 47]), o($Vl, [2, 48]), o($Vl, [2, 49]), o($Vl, [2, 50]), o($Vl, [2, 51]), o($Vl, [2, 52]), {\n 4: 52,\n 6: 3,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 34: 51,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 39: [1, 50],\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vl, [2, 42]), o($Vl, [2, 44]), {\n 1: [2, 1]\n }, {\n 4: 53,\n 6: 3,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 6: 54,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vd, [2, 6]), {\n 13: 55,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 56,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 57,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 58,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 59,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 60,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 61,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 19: [1, 62]\n }, {\n 10: [1, 65],\n 13: 63,\n 21: 64,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 46: $Vm,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 67,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 13: 68,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 25: 69,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 25: 70,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 26: $V1,\n 28: 71,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, {\n 26: $V1,\n 28: 72,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vk, [2, 29]), {\n 4: 52,\n 6: 3,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 33: [1, 73],\n 34: 74,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Vl, [2, 43]), {\n 33: [1, 75]\n }, o($Vl, [2, 38]), {\n 39: [1, 76],\n 40: $Vn\n }, o($Vo, [2, 41]), o($Vb, [2, 2]), o($Vc, [2, 4]), o($Ve, [2, 8], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 9], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 10], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 11], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 12], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 13], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 14], {\n 24: $Vf,\n 26: $Vg\n }), {\n 13: 78,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Ve, [2, 16], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 17]), {\n 13: 79,\n 21: 80,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 46: $Vm,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Ve, [2, 45]), o($Ve, [2, 20], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 21], {\n 24: $Vf,\n 26: $Vg\n }), o($Vh, [2, 23], {\n 27: $Vi,\n 29: $Vj\n }), o($Vh, [2, 24], {\n 27: $Vi,\n 29: $Vj\n }), o($Vk, [2, 26]), o($Vk, [2, 27]), o($Vk, [2, 31]), {\n 33: [1, 81],\n 40: $Vn\n }, o($Vl, [2, 37]), o($Vl, [2, 39]), {\n 4: 82,\n 6: 3,\n 8: 4,\n 10: $V0,\n 11: 6,\n 13: 7,\n 25: 8,\n 26: $V1,\n 28: 9,\n 30: 11,\n 31: 12,\n 32: $V2,\n 35: 13,\n 36: 14,\n 37: 15,\n 38: $V3,\n 41: 21,\n 42: $V4,\n 44: 22,\n 45: $V5,\n 47: $V6,\n 48: $V7,\n 49: $V8,\n 50: $V9,\n 51: $Va\n }, o($Ve, [2, 15], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 18], {\n 24: $Vf,\n 26: $Vg\n }), o($Ve, [2, 19]), o($Vk, [2, 32]), o($Vo, [2, 40])],\n defaultActions: {\n 27: [2, 1]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n tstack = [],\n vstack = [null],\n lstack = [],\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = {\n yy: {}\n };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n _token_stack: var lex = function () {\n var token;\n token = lexer.lex() || EOF;\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n };\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var nodes = require('./nodes');\n var surveys = require('./surveys');\n /* generated by jison-lex 0.3.4 */\n var lexer = function () {\n var lexer = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function () {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: '',\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function (n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\\n/g, '');\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, '');\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput() + '\\n' + c + '^';\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function (match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n\n return false;\n },\n // return next match in input\n next: function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === '') {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: '',\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions['INITIAL'].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {\n 'case-insensitive': true\n },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0 /* skip whitespace */:\n break;\n case 1:\n return 47;\n break;\n case 2:\n return 48;\n break;\n case 3:\n return 49;\n break;\n case 4:\n return 50;\n break;\n case 5:\n return 46;\n break;\n case 6:\n return 7;\n break;\n case 7:\n return 9;\n break;\n case 8:\n return 10;\n break;\n case 9:\n return 19;\n break;\n case 10:\n return 20;\n break;\n case 11:\n return 42;\n break;\n case 12:\n return 45;\n break;\n case 13:\n return 51;\n break;\n case 14:\n return 12;\n break;\n case 15:\n return 14;\n break;\n case 16:\n return 17;\n break;\n case 17:\n return 18;\n break;\n case 18:\n return 15;\n break;\n case 19:\n return 16;\n break;\n case 20:\n return 22;\n break;\n case 21:\n return 23;\n break;\n case 22:\n return 24;\n break;\n case 23:\n return 26;\n break;\n case 24:\n return 27;\n break;\n case 25:\n return 29;\n break;\n case 26:\n return 32;\n break;\n case 27:\n return 33;\n break;\n case 28:\n return 38;\n break;\n case 29:\n return 39;\n break;\n case 30:\n return 40;\n break;\n case 31:\n return 43;\n break;\n case 32:\n return 5;\n break;\n case 33:\n return 'INVALID';\n break;\n }\n },\n rules: [/^(?:\\s+)/i, /^(?:[0-9]+\\.?([0-9]+)?)/i, /^(?:TRUE\\b)/i, /^(?:FALSE\\b)/i, /^(?:NULL\\b)/i, /^(?:EMPTY\\b)/i, /^(?:OR\\b)/i, /^(?:AND\\b)/i, /^(?:NOT\\b)/i, /^(?:IN\\b)/i, /^(?:IS\\b)/i, /^(?:(customMetadata\\.)((.*)(?=\\s[^a-zA-Z\\d\\s])|(.*)))/i, /^(?:[A-Za-z_][_A-Za-z0-9]*)/i, /^(?:\"(?:[^\\\\\"]|(?:\\\\.))*\"|'(?:[^\\\\\\']|(?:\\\\.))*')/i, /^(?:=)/i, /^(?:!=)/i, /^(?:>=)/i, /^(?:<=)/i, /^(?:>)/i, /^(?:<)/i, /^(?:~)/i, /^(?:!~)/i, /^(?:\\+)/i, /^(?:-)/i, /^(?:\\*)/i, /^(?:\\/)/i, /^(?:\\()/i, /^(?:\\))/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:,)/i, /^(?:\\.\\s*[_A-Za-z0-9]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: {\n INITIAL: {\n rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33],\n inclusive: true\n }\n }\n };\n return lexer;\n }();\n parser.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser;\n parser.Parser = Parser;\n return new Parser();\n}();\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = expr;\n exports.Parser = expr.Parser;\n exports.parse = function () {\n return expr.parse.apply(expr, arguments);\n };\n exports.main = function commonjsMain(args) {\n if (!args[1]) {\n console.log('Usage: ' + args[0] + ' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), 'utf8');\n return exports.parser.parse(source);\n };\n if (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n parse: true,\n load: true,\n evaluate: true,\n Context: true,\n initializeTranslations: true\n};\nObject.defineProperty(exports, \"Context\", {\n enumerable: true,\n get: function get() {\n return _context.Context;\n }\n});\nexports.evaluate = void 0;\nObject.defineProperty(exports, \"initializeTranslations\", {\n enumerable: true,\n get: function get() {\n return _utils.initializeTranslations;\n }\n});\nexports.parse = exports.load = void 0;\nvar expr = _interopRequireWildcard(require(\"./expr\"));\nvar _visitors = require(\"./visitors\");\nObject.keys(_visitors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _visitors[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _visitors[key];\n }\n });\n});\nvar _context = require(\"./context\");\nvar _nodes = require(\"./nodes\");\nObject.keys(_nodes).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _nodes[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _nodes[key];\n }\n });\n});\nvar _utils = require(\"./utils\");\nvar _surveys = require(\"./surveys\");\nObject.keys(_surveys).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _surveys[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _surveys[key];\n }\n });\n});\nvar _enums = require(\"./enums\");\nObject.keys(_enums).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _enums[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _enums[key];\n }\n });\n});\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nvar parse = function parse(text) {\n return expr.parse(text);\n};\nexports.parse = parse;\nvar load = function load(info) {\n return _nodes.Node.load(info);\n};\nexports.load = load;\nvar evaluate = function evaluate(node, ctx) {\n var context = ctx !== null && ctx !== void 0 ? ctx : new _context.Context();\n return new _visitors.EvaluationVisitor(context).visit(node);\n};\nexports.evaluate = evaluate;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UnaryOp = exports.String = exports.Op = exports.Number = exports.Null = exports.Node = exports.List = exports.Identifier = exports.Expression = exports.Empty = exports.Constant = exports.Call = exports.BoolOp = exports.Bool = exports.BinOp = exports.Attribute = void 0;\nvar _utils = require(\"./utils\");\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar Op = /*#__PURE__*/function () {\n function Op(name, symbol, precedence // eslint-disable-next-line no-empty-function\n ) {\n _classCallCheck(this, Op);\n this.name = name;\n this.symbol = symbol;\n this.precedence = precedence;\n }\n _createClass(Op, [{\n key: \"toString\",\n value: function toString() {\n return this.symbol.toUpperCase();\n }\n }, {\n key: \"toRepr\",\n value: function toRepr() {\n return \"\".concat(this.name, \"()\");\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.name.toLowerCase();\n }\n }], [{\n key: \"create\",\n value: function create(name, symbol, precedence) {\n var op = new Op(name, symbol, precedence);\n this.ops[name.toLowerCase()] = op;\n return op;\n }\n }]);\n return Op;\n}();\nexports.Op = Op;\nOp.ops = {};\nOp.Or = Op.create('Or', 'or', 10);\nOp.And = Op.create('And', 'and', 20);\nOp.Not = Op.create('Not', 'not', 30);\nOp.Eq = Op.create('Eq', '=', 40);\nOp.Ne = Op.create('Ne', '!=', 40);\nOp.Gt = Op.create('Gt', '>', 40);\nOp.Lt = Op.create('Lt', '<', 40);\nOp.Ge = Op.create('Ge', '>=', 40);\nOp.Le = Op.create('Le', '<=', 40);\nOp.In = Op.create('In', 'in', 40);\nOp.NotIn = Op.create('NotIn', 'not in', 40);\nOp.Is = Op.create('Is', 'is', 40);\nOp.IsNot = Op.create('IsNot', 'is not', 40);\nOp.Ct = Op.create('Ct', '~', 40);\nOp.NotCt = Op.create('NotCt', '!~', 40);\nOp.Add = Op.create('Add', '+', 50);\nOp.Sub = Op.create('Sub', '-', 50);\nOp.Mul = Op.create('Mul', '*', 60);\nOp.Div = Op.create('Div', '/', 60);\nvar Node = /*#__PURE__*/function () {\n function Node() {\n _classCallCheck(this, Node);\n }\n _createClass(Node, [{\n key: \"toString\",\n value:\n // TODO: this is VERY MUCH NOT safe, we'll need to refactor into a safer way to work\n\n function toString() {\n return this.toRepr();\n }\n }, {\n key: \"toRepr\",\n value: function toRepr() {\n var _this = this;\n var ctr = this.constructor;\n var attrs = ctr.attrs.map(function (attr) {\n return \"\".concat(attr, \"=\").concat((0, _utils.toRepr)(_this[attr]));\n });\n return \"\".concat(ctr.type, \"(\").concat(attrs.join(', '), \")\");\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var _this2 = this;\n var ctr = this.constructor;\n var result = {\n type: ctr.type.toLowerCase()\n };\n ctr.attrs.forEach(function (attr) {\n result[attr] = _this2[attr];\n });\n return result;\n }\n }], [{\n key: \"load\",\n value: function load(info) {\n var _this3 = this;\n if (info instanceof Array) {\n return new List(info.map(function (item) {\n return _this3.load(item);\n }));\n }\n if (info === null || info === undefined) {\n return new Null();\n }\n if (typeof info === 'boolean') {\n return new Bool(info);\n }\n if (typeof info === 'string') {\n // eslint-disable-next-line no-new-wrappers\n return new _String(info);\n }\n if (typeof info === 'number') {\n // eslint-disable-next-line no-new-wrappers\n return new _Number(info);\n }\n var op = info.op;\n var type = info.type;\n if (type === 'and' || type === 'or') {\n op = type;\n }\n if (info.call || info.func) {\n var _info$args;\n var infoArgs = (_info$args = info.args) !== null && _info$args !== void 0 ? _info$args : [];\n var _args = infoArgs.map(function (arg) {\n return _this3.load(arg);\n });\n if (info.call) {\n return new Call(new Identifier(info.call), _args);\n }\n // TODO: narrow down type of func\n // @ts-ignore\n return new Call(this.load(info.func), _args);\n }\n if (op === 'and' || op === 'or') {\n var _operands = [];\n if (info.operands) {\n _operands = info.operands;\n } else if (info.items) {\n _operands = info.items;\n }\n var items = _operands.map(function (x) {\n return _this3.load(x);\n });\n op = Op.ops[op];\n\n // TODO: narrow down type of op\n // @ts-ignore\n var node = new BoolOp(op, items);\n if (info.negated) {\n return new UnaryOp(Op.Not, node);\n }\n return node;\n }\n if (op === 'not' && info.operand) {\n return new UnaryOp(Op.Not, this.load(info.operand));\n }\n if (op && info.left && info.right && typeof op === 'string' && Op.ops[op]) {\n return new BinOp(this.load(info.left), Op.ops[op], this.load(info.right));\n }\n if ((type === 'predicate' || info.predicate) && this.types.predicate) {\n if (!!info.variable === false || !!info.predicate === false) {\n throw new Error(\"\".concat(info));\n }\n // eslint-disable-next-line new-cap\n return new this.types.predicate(info.variable, info.predicate, info.value);\n }\n if (type === 'identifier' && info.id) {\n return new Identifier(info.id);\n }\n if (type === 'attribute' && info.attr && info.value) {\n return new Attribute(this.load(info.value), info.attr);\n }\n if (type && type in this.types && this.types[type].create) {\n return this.types[type].create(info);\n }\n throw new Error(\"\".concat(info));\n }\n }, {\n key: \"register\",\n value: function register(name, type) {\n // eslint-disable-next-line no-param-reassign\n type.type = name;\n this.types[name.toLowerCase()] = type;\n this.types[name] = this.types[name.toLowerCase()];\n return this.types[name];\n }\n }]);\n return Node;\n}();\nexports.Node = Node;\nNode.attrs = [];\nNode.types = {};\nNode.type = 'Node';\nvar Expression = /*#__PURE__*/function (_Node) {\n _inherits(Expression, _Node);\n var _super = _createSuper(Expression);\n function Expression() {\n _classCallCheck(this, Expression);\n return _super.apply(this, arguments);\n }\n return _createClass(Expression);\n}(Node);\nexports.Expression = Expression;\nExpression.type = 'Expression';\nvar Predicate = /*#__PURE__*/function (_Expression) {\n _inherits(Predicate, _Expression);\n var _super2 = _createSuper(Predicate);\n function Predicate(variable, predicate, value) {\n var _this4;\n _classCallCheck(this, Predicate);\n _this4 = _super2.call(this);\n _this4.variable = variable;\n _this4.predicate = predicate;\n _this4.value = value;\n return _this4;\n }\n return _createClass(Predicate);\n}(Expression);\nPredicate.attrs = ['variable', 'predicate', 'value'];\nvar Attribute = /*#__PURE__*/function (_Expression2) {\n _inherits(Attribute, _Expression2);\n var _super3 = _createSuper(Attribute);\n function Attribute(value, attr) {\n var _this5;\n _classCallCheck(this, Attribute);\n _this5 = _super3.call(this);\n _this5.value = value;\n _this5.attr = attr;\n return _this5;\n }\n _createClass(Attribute, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.value, \".\").concat(this.attr);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n type: 'attribute',\n value: this.value.toJSON(),\n attr: this.attr\n };\n }\n }]);\n return Attribute;\n}(Expression);\nexports.Attribute = Attribute;\nAttribute.attrs = ['value', 'attr'];\nvar Call = /*#__PURE__*/function (_Expression3) {\n _inherits(Call, _Expression3);\n var _super4 = _createSuper(Call);\n function Call(func, args) {\n var _this6;\n _classCallCheck(this, Call);\n _this6 = _super4.call(this);\n _this6.func = func;\n _this6.args = args;\n return _this6;\n }\n _createClass(Call, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.func, \"(\").concat(this.args.join(', '), \")\");\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n if (this.func instanceof Identifier) {\n result.call = this.func.id;\n } else {\n result.func = this.func.toJSON();\n }\n if (this.args.length > 0) {\n result.args = this.args.map(function (arg) {\n return arg.toJSON();\n });\n }\n return result;\n }\n }]);\n return Call;\n}(Expression);\nexports.Call = Call;\nCall.attrs = ['func', 'args'];\nvar BoolOp = /*#__PURE__*/function (_Expression4) {\n _inherits(BoolOp, _Expression4);\n var _super5 = _createSuper(BoolOp);\n function BoolOp(op, operands) {\n var _this7;\n _classCallCheck(this, BoolOp);\n _this7 = _super5.call(this);\n _this7.op = op;\n _this7.operands = operands;\n return _this7;\n }\n _createClass(BoolOp, [{\n key: \"toString\",\n value: function toString() {\n var _this8 = this;\n return this.operands.map(function (op) {\n return (0, _utils.maybeParen)(_this8, op);\n }).join(\" \".concat(this.op, \" \"));\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n op: this.op.toJSON(),\n operands: this.operands.map(function (item) {\n return item.toJSON();\n })\n };\n }\n }]);\n return BoolOp;\n}(Expression);\nexports.BoolOp = BoolOp;\nBoolOp.attrs = ['op', 'operands'];\nvar UnaryOp = /*#__PURE__*/function (_Expression5) {\n _inherits(UnaryOp, _Expression5);\n var _super6 = _createSuper(UnaryOp);\n function UnaryOp(op, operand) {\n var _this9;\n _classCallCheck(this, UnaryOp);\n _this9 = _super6.call(this);\n _this9.op = op;\n _this9.operand = operand;\n return _this9;\n }\n _createClass(UnaryOp, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.op, \" \").concat((0, _utils.maybeParen)(this, this.operand));\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n op: this.op.toJSON(),\n operand: this.operand.toJSON()\n };\n }\n }]);\n return UnaryOp;\n}(Expression);\nexports.UnaryOp = UnaryOp;\nUnaryOp.attrs = ['op', 'operand'];\nvar BinOp = /*#__PURE__*/function (_Expression6) {\n _inherits(BinOp, _Expression6);\n var _super7 = _createSuper(BinOp);\n function BinOp(left, op, right) {\n var _this10;\n _classCallCheck(this, BinOp);\n _this10 = _super7.call(this);\n _this10.left = left;\n _this10.op = op;\n _this10.right = right;\n return _this10;\n }\n _createClass(BinOp, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat((0, _utils.maybeParen)(this, this.left), \" \").concat(this.op, \" \").concat((0, _utils.maybeParen)(this, this.right, true));\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n op: this.op.toJSON(),\n left: this.left.toJSON(),\n right: this.right.toJSON()\n };\n }\n }]);\n return BinOp;\n}(Expression);\nexports.BinOp = BinOp;\nBinOp.attrs = ['left', 'op', 'right'];\nvar Constant = /*#__PURE__*/function (_Expression7) {\n _inherits(Constant, _Expression7);\n var _super8 = _createSuper(Constant);\n function Constant(value) {\n var _this11;\n _classCallCheck(this, Constant);\n _this11 = _super8.call(this);\n _this11.value = value;\n return _this11;\n }\n _createClass(Constant, [{\n key: \"valueOf\",\n value: function valueOf() {\n return this.value;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.value;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.value.toString().toUpperCase();\n }\n }]);\n return Constant;\n}(Expression);\nexports.Constant = Constant;\nConstant.attrs = ['value'];\nvar List = /*#__PURE__*/function (_Expression8) {\n _inherits(List, _Expression8);\n var _super9 = _createSuper(List);\n function List() {\n var _this12;\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n _classCallCheck(this, List);\n _this12 = _super9.call(this);\n _this12.items = items;\n return _this12;\n }\n _createClass(List, [{\n key: \"valueOf\",\n value: function valueOf() {\n return this.items.map(function (item) {\n return item.valueOf();\n });\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"[\".concat(this.items.join(', '), \"]\");\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.items.map(function (item) {\n return item.toJSON();\n });\n }\n }]);\n return List;\n}(Expression);\nexports.List = List;\nList.attrs = ['items'];\nvar Identifier = /*#__PURE__*/function (_Expression9) {\n _inherits(Identifier, _Expression9);\n var _super10 = _createSuper(Identifier);\n function Identifier(id) {\n var _this13;\n _classCallCheck(this, Identifier);\n _this13 = _super10.call(this);\n _this13.id = id;\n return _this13;\n }\n _createClass(Identifier, [{\n key: \"toString\",\n value: function toString() {\n return this.id;\n }\n }]);\n return Identifier;\n}(Expression);\nexports.Identifier = Identifier;\nIdentifier.attrs = ['id'];\nvar Empty = /*#__PURE__*/function (_Expression10) {\n _inherits(Empty, _Expression10);\n var _super11 = _createSuper(Empty);\n function Empty() {\n _classCallCheck(this, Empty);\n return _super11.apply(this, arguments);\n }\n _createClass(Empty, [{\n key: \"toString\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function toString() {\n return 'EMPTY';\n }\n }], [{\n key: \"create\",\n value: function create() {\n return new Empty();\n }\n }]);\n return Empty;\n}(Expression);\nexports.Empty = Empty;\nvar Null = /*#__PURE__*/function (_Expression11) {\n _inherits(Null, _Expression11);\n var _super12 = _createSuper(Null);\n function Null() {\n _classCallCheck(this, Null);\n return _super12.apply(this, arguments);\n }\n _createClass(Null, [{\n key: \"toString\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function toString() {\n return 'NULL';\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"valueOf\",\n value: function valueOf() {\n return null;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return null;\n }\n }]);\n return Null;\n}(Expression);\nexports.Null = Null;\nvar _Number = /*#__PURE__*/function (_Constant) {\n _inherits(_Number, _Constant);\n var _super13 = _createSuper(_Number);\n function _Number() {\n _classCallCheck(this, _Number);\n return _super13.apply(this, arguments);\n }\n return _createClass(_Number);\n}(Constant);\nexports.Number = _Number;\nvar Bool = /*#__PURE__*/function (_Constant2) {\n _inherits(Bool, _Constant2);\n var _super14 = _createSuper(Bool);\n function Bool() {\n _classCallCheck(this, Bool);\n return _super14.apply(this, arguments);\n }\n return _createClass(Bool);\n}(Constant);\nexports.Bool = Bool;\nvar _String = /*#__PURE__*/function (_Constant3) {\n _inherits(_String, _Constant3);\n var _super15 = _createSuper(_String);\n function _String() {\n _classCallCheck(this, _String);\n return _super15.apply(this, arguments);\n }\n _createClass(_String, [{\n key: \"toRepr\",\n value: function toRepr() {\n return \"String(value=\".concat(this.toString(), \")\");\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\\\"\".concat(this.value.replace(/\\\\/g, '\\\\\\\\').replace(/\\n/g, '\\\\n').replace(/\\t/g, '\\\\t').replace(/'/g, \"\\\\'\").replace(/\"/g, '\\\\\"'), \"\\\"\");\n }\n }]);\n return _String;\n}(Constant);\nexports.String = _String;\nObject.entries({\n Attribute: Attribute,\n Call: Call,\n BoolOp: BoolOp,\n UnaryOp: UnaryOp,\n BinOp: BinOp,\n List: List,\n Identifier: Identifier,\n Constant: Constant,\n Null: Null,\n Empty: Empty,\n Number: _Number,\n String: _String,\n Bool: Bool,\n Predicate: Predicate\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n t = _ref2[1];\n Node.register(name, t);\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getVariableType = exports.ReferencedQuestionsVisitor = exports.QuestionReferenceTransformer = exports.Question = exports.PredicateSynthesizer = exports.PredicateConverter = exports.Predicate = exports.ExpressionValidator = exports.DereferenceTransformer = exports.CustomMetadataTransformer = exports.CustomMetadata = exports.ChoiceResolvingTransformer = exports.Choice = void 0;\nvar _nodes = require(\"./nodes\");\nvar _visitors = require(\"./visitors\");\nvar _expr = _interopRequireDefault(require(\"./expr\"));\nvar _enums = require(\"./enums\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nvar _getVariableType = function getVariableType(question, rowId, columnId, choiceId) {\n var _question$display_opt, _question$answer_opti, _question$type;\n var expect1 = function expect1(type) {\n if ((typeof rowId === 'undefined' || rowId === null) && (typeof columnId === 'undefined' || columnId === null)) {\n return type;\n }\n return undefined;\n };\n var expect2 = function expect2(type) {\n if (typeof rowId !== 'undefined' && rowId !== null && (typeof columnId === 'undefined' || columnId === null)) {\n return type;\n }\n return undefined;\n };\n var expect3 = function expect3(type) {\n if (typeof rowId !== 'undefined' && rowId !== null && typeof columnId !== 'undefined' && columnId !== null) {\n return type;\n }\n return undefined;\n };\n if (((_question$display_opt = question.display_options) === null || _question$display_opt === void 0 ? void 0 : _question$display_opt.display_type) === 'slider') {\n return _enums.VariableType.Number;\n }\n if ((_question$answer_opti = question.answer_options) !== null && _question$answer_opti !== void 0 && _question$answer_opti.other) {\n var otherId = question.answer_options.other.id;\n if (rowId === otherId || columnId === otherId || choiceId === otherId) {\n return _enums.VariableType.String;\n }\n }\n switch ((_question$type = question.type) === null || _question$type === void 0 ? void 0 : _question$type.family) {\n case _enums.QuestionFamily.SingleChoice:\n return expect1(_enums.VariableType.Single);\n case _enums.QuestionFamily.MultipleChoice:\n return expect1(_enums.VariableType.Multi);\n case _enums.QuestionFamily.OpenEnded:\n {\n switch (question.type.subtype) {\n case _enums.QuestionSubtype.Single:\n case _enums.QuestionSubtype.Essay:\n return expect1(_enums.VariableType.String);\n case _enums.QuestionSubtype.Multi:\n case _enums.QuestionSubtype.Numerical:\n return expect2(_enums.VariableType.String);\n }\n break;\n }\n case _enums.QuestionFamily.Matrix:\n {\n switch (question.type.subtype) {\n case _enums.QuestionSubtype.Single:\n case _enums.QuestionSubtype.Rating:\n case _enums.QuestionSubtype.Ranking:\n return expect2(_enums.VariableType.Single);\n case _enums.QuestionSubtype.Multi:\n return expect2(_enums.VariableType.Multi);\n case _enums.QuestionSubtype.Menu:\n return expect3(_enums.VariableType.Single);\n }\n break;\n }\n case _enums.QuestionFamily.Demographic:\n {\n return expect2(_enums.VariableType.String);\n }\n }\n return undefined;\n};\nexports.getVariableType = _getVariableType;\nvar Question = /*#__PURE__*/function (_Expression) {\n _inherits(Question, _Expression);\n var _super = _createSuper(Question);\n function Question(id, row, column, choice) {\n var _this;\n _classCallCheck(this, Question);\n _this = _super.call(this);\n _this.id = id;\n _this.row = row;\n _this.column = column;\n _this.choice = choice;\n _this.display_options = void 0;\n _this.display_number = void 0;\n _this.type = void 0;\n _this.answer_options = void 0;\n return _this;\n }\n _createClass(Question, [{\n key: \"toString\",\n value: function toString() {\n var result = \"$Q\".concat(this.id);\n if (this.row != null) {\n result += \"$R\".concat(this.row);\n }\n if (this.column != null) {\n result += \"$C\".concat(this.column);\n }\n if (this.choice != null) {\n result += \"$C\".concat(this.choice);\n }\n return result;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {\n type: 'question',\n id: this.id\n };\n if (this.row) {\n result.row = this.row;\n }\n if (this.column) {\n result.column = this.column;\n }\n if (this.choice) {\n result.choice = this.choice;\n }\n return result;\n }\n }, {\n key: \"getPredicateId\",\n value: function getPredicateId() {\n if (this.row != null && this.column != null) {\n return \"\".concat(this.id, \".\").concat(this.row, \".\").concat(this.column);\n }\n if (this.row != null) {\n return \"\".concat(this.id, \".\").concat(this.row);\n }\n if (this.choice != null) {\n return \"\".concat(this.id, \".\").concat(this.choice);\n }\n return this.id;\n }\n }, {\n key: \"getVariableType\",\n value: function getVariableType(survey) {\n var question = survey.getQuestion(this.id);\n if (!question) {\n return undefined;\n }\n return _getVariableType(question, this.row, this.column, this.choice);\n }\n }, {\n key: \"getQuestionInfo\",\n value: function getQuestionInfo(survey) {\n var question = survey.getQuestion(this.id);\n if (!question) {\n return undefined;\n }\n var info = {\n question: question\n };\n if (this.row) {\n if (question.answer_options) {\n var _question$answer_opti2, _question$answer_opti3;\n for (var i = 0; i < question.answer_options.rows.length; i += 1) {\n var _row = question.answer_options.rows[i];\n if (_row.id.toString() === this.row) {\n info.row = _row;\n break;\n }\n }\n if (this.row === ((_question$answer_opti2 = question.answer_options) === null || _question$answer_opti2 === void 0 ? void 0 : (_question$answer_opti3 = _question$answer_opti2.other) === null || _question$answer_opti3 === void 0 ? void 0 : _question$answer_opti3.id)) {\n info.row = question.answer_options.other;\n }\n if (!info.row) {\n throw new Error('Unknown row');\n }\n }\n }\n if (this.column) {\n var _question$answer_opti4;\n if ((_question$answer_opti4 = question.answer_options) !== null && _question$answer_opti4 !== void 0 && _question$answer_opti4.cols) {\n var _question$answer_opti5;\n for (var _i = 0; _i < question.answer_options.cols.length; _i += 1) {\n var _column = question.answer_options.cols[_i];\n if (_column.id === this.column) {\n info.column = _column;\n break;\n }\n }\n if (this.column === ((_question$answer_opti5 = question.answer_options.other) === null || _question$answer_opti5 === void 0 ? void 0 : _question$answer_opti5.id)) {\n info.column = question.answer_options.other;\n }\n if (!info.column) {\n throw new Error('Unknown column');\n }\n }\n }\n if (this.choice) {\n if (question.answer_options) {\n var _question$answer_opti6;\n for (var _i2 = 0; _i2 < question.answer_options.rows.length; _i2 += 1) {\n var _choice = question.answer_options.rows[_i2];\n if (_choice.id === this.choice) {\n info.choice = _choice;\n break;\n }\n }\n if (this.choice === ((_question$answer_opti6 = question.answer_options.other) === null || _question$answer_opti6 === void 0 ? void 0 : _question$answer_opti6.id)) {\n info.choice = question.answer_options.other;\n }\n if (!info.choice) {\n throw new Error('Unknown choice');\n }\n }\n }\n return info;\n }\n }, {\n key: \"__eval__\",\n value: function __eval__(ctx) {\n return ctx.getQuestionContext(this);\n }\n }], [{\n key: \"create\",\n value: function create(info) {\n if (info.id == null) {\n throw new Error(\"\".concat(info));\n }\n return new Question(info.id, info.row, info.column, info.choice);\n }\n }]);\n return Question;\n}(_nodes.Expression);\nexports.Question = Question;\nQuestion.attrs = ['id', 'row', 'column', 'choice'];\n_nodes.Node.register('Question', Question);\nvar Choice = /*#__PURE__*/function (_Expression2) {\n _inherits(Choice, _Expression2);\n var _super2 = _createSuper(Choice);\n function Choice(question, id) {\n var _this2;\n var ident = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'row_id';\n _classCallCheck(this, Choice);\n _this2 = _super2.call(this);\n _this2.question = question;\n _this2.id = id;\n _this2.ident = ident;\n return _this2;\n }\n _createClass(Choice, [{\n key: \"toString\",\n value: function toString() {\n return \"$C\".concat(this.id);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n type: 'choice',\n question: this.question,\n id: this.id,\n ident: this.ident\n };\n }\n }, {\n key: \"getChoiceInfo\",\n value: function getChoiceInfo(survey) {\n var _question$answer_opti7, _question$answer_opti8, _question$answer_opti9, _question$answer_opti10, _question$answer_opti11, _question$answer_opti12, _question$answer_opti13, _question$answer_opti14;\n var question = survey.getQuestion(this.question);\n if (!question) {\n return undefined;\n }\n var columns = (_question$answer_opti7 = (_question$answer_opti8 = question.answer_options) === null || _question$answer_opti8 === void 0 ? void 0 : _question$answer_opti8.cols) !== null && _question$answer_opti7 !== void 0 ? _question$answer_opti7 : [];\n for (var i = 0; i < columns.length; i += 1) {\n var _column2$col_choices;\n var _column2 = columns[i];\n if (_column2.id === this.id) {\n return _column2;\n }\n var colChoices = (_column2$col_choices = _column2.col_choices) !== null && _column2$col_choices !== void 0 ? _column2$col_choices : [];\n for (var j = 0; j < colChoices.length; j += 1) {\n var colChoice = colChoices[j];\n if (colChoice.id === this.id) {\n return colChoice;\n }\n }\n }\n var choices = (_question$answer_opti9 = (_question$answer_opti10 = question.answer_options) === null || _question$answer_opti10 === void 0 ? void 0 : _question$answer_opti10.rows) !== null && _question$answer_opti9 !== void 0 ? _question$answer_opti9 : [];\n for (var _i3 = 0; _i3 < choices.length; _i3 += 1) {\n var _choice2 = choices[_i3];\n if (_choice2.id.toString() === this.id) {\n return _choice2;\n }\n }\n if (((_question$answer_opti11 = question.answer_options) === null || _question$answer_opti11 === void 0 ? void 0 : (_question$answer_opti12 = _question$answer_opti11.other) === null || _question$answer_opti12 === void 0 ? void 0 : _question$answer_opti12.id) === this.id && question.answer_options.other_type === 'answer_option') {\n return question.answer_options.other;\n }\n if (((_question$answer_opti13 = question.answer_options) === null || _question$answer_opti13 === void 0 ? void 0 : (_question$answer_opti14 = _question$answer_opti13.na_col) === null || _question$answer_opti14 === void 0 ? void 0 : _question$answer_opti14.id) === this.id) {\n return question.answer_options.na_col;\n }\n throw new Error('Unknown choice');\n }\n }, {\n key: \"__eval__\",\n value: function __eval__(ctx) {\n return ctx.getChoiceContext(this);\n }\n }], [{\n key: \"create\",\n value: function create(info) {\n if (!info.id || !info.question) {\n throw new Error(\"\".concat(info));\n }\n return new Choice(info.question, info.id);\n }\n }]);\n return Choice;\n}(_nodes.Expression);\nexports.Choice = Choice;\nChoice.attrs = ['question', 'id', 'ident'];\n_nodes.Node.register('Choice', Choice);\nvar CustomMetadata = /*#__PURE__*/function (_Expression3) {\n _inherits(CustomMetadata, _Expression3);\n var _super3 = _createSuper(CustomMetadata);\n function CustomMetadata(ref) {\n var _this3;\n _classCallCheck(this, CustomMetadata);\n _this3 = _super3.call(this);\n _this3.ref = ref;\n return _this3;\n }\n _createClass(CustomMetadata, [{\n key: \"toString\",\n value: function toString() {\n return \"$customMetadata.\".concat(this.ref);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n type: 'attribute',\n value: {\n type: 'identifier',\n id: 'custommetadata'\n },\n attr: this.ref\n };\n }\n }, {\n key: \"__eval__\",\n value: function __eval__(ctx) {\n return ctx.getCustomMetadataContext(this);\n }\n }], [{\n key: \"create\",\n value: function create(info) {\n if (info.ref == null) {\n throw new Error(\"\".concat(info));\n }\n return new CustomMetadata(info.ref);\n }\n }]);\n return CustomMetadata;\n}(_nodes.Expression);\nexports.CustomMetadata = CustomMetadata;\nCustomMetadata.attrs = ['ref'];\n_nodes.Node.register('CustomMetadata', CustomMetadata);\nvar Predicate = /*#__PURE__*/function (_Expression4) {\n _inherits(Predicate, _Expression4);\n var _super4 = _createSuper(Predicate);\n function Predicate(variable, predicate, value) {\n var _this4;\n _classCallCheck(this, Predicate);\n _this4 = _super4.call(this);\n _this4.variable = variable;\n _this4.predicate = predicate;\n _this4.value = value;\n return _this4;\n }\n _createClass(Predicate, [{\n key: \"isCustomMetadata\",\n value: function isCustomMetadata() {\n return Predicate.customMetadataRegex.test(this.variable);\n }\n }, {\n key: \"isMeta\",\n value: function isMeta() {\n return this.variable in Predicate.metas || /^contact\\.custom/.test(this.variable) || /^custom\\./.test(this.variable) || /^respondent\\./.test(this.variable);\n }\n }, {\n key: \"getQuestionId\",\n value: function getQuestionId() {\n var ref = Predicate.variableRegex.exec(this.variable);\n return ref !== null ? ref[1] : undefined;\n }\n }, {\n key: \"getVariableNode\",\n value: function getVariableNode(survey) {\n var _question$answer_opti15, _question$type2;\n if (typeof _expr.default !== 'undefined' && _expr.default !== null && this.isCustomMetadata()) {\n var _match = Predicate.customMetadataRegex.exec(this.variable);\n var _ref = (_match === null || _match === void 0 ? void 0 : _match[2]) || '';\n return new CustomMetadata(_ref);\n }\n if (typeof _expr.default !== 'undefined' && _expr.default !== null && this.isMeta()) {\n return _expr.default.parse(this.variable);\n }\n var match = Predicate.variableRegex.exec(this.variable);\n var questionId = (match === null || match === void 0 ? void 0 : match[1]) || '',\n rowId = (match === null || match === void 0 ? void 0 : match[3]) || null,\n columnId = (match === null || match === void 0 ? void 0 : match[5]) || null;\n var question = survey.getQuestion(questionId);\n if (question !== null && question !== void 0 && (_question$answer_opti15 = question.answer_options) !== null && _question$answer_opti15 !== void 0 && _question$answer_opti15.other && question.answer_options.other_type === 'comment') {\n if (rowId === question.answer_options.other.id) {\n return new Question(questionId, rowId);\n }\n }\n switch (question === null || question === void 0 ? void 0 : (_question$type2 = question.type) === null || _question$type2 === void 0 ? void 0 : _question$type2.family) {\n case _enums.QuestionFamily.SingleChoice:\n case _enums.QuestionFamily.MultipleChoice:\n return new Question(questionId, undefined, undefined, rowId);\n default:\n return new Question(questionId, rowId, columnId);\n }\n }\n }, {\n key: \"getVariableType\",\n value: function getVariableType(survey) {\n if (this.isMeta() || this.isCustomMetadata()) {\n return _enums.VariableType.String;\n }\n var match = Predicate.variableRegex.exec(this.variable);\n if (match == null) {\n return undefined;\n }\n var _ref2 = [match[1], match[3] || null, match[5] || null],\n questionId = _ref2[0],\n rowId = _ref2[1],\n columnId = _ref2[2];\n var question = survey.getQuestion(questionId);\n if (question == null) {\n return undefined;\n }\n return _getVariableType(question, rowId, columnId);\n }\n }]);\n return Predicate;\n}(_nodes.Expression);\nexports.Predicate = Predicate;\nPredicate.attrs = ['variable', 'predicate', 'value'];\nPredicate.metas = {\n 'contact.name': 'contact.name',\n 'contact.email': 'contact.email',\n 'contact.first_name': 'contact.first_name',\n 'contact.last_name': 'contact.last_name',\n 'contact.custom': 'contact.custom',\n 'metadata.browser': 'metadata.browser',\n 'metadata.ip': 'metadata.ip',\n 'metadata.referrer': 'metadata.referrer'\n};\nPredicate.variableRegex = /^(\\d+)(\\.(\\d+)(\\.(\\d+))?)?$/;\nPredicate.customMetadataRegex = /^(customMetadata\\.)(.*)$/;\n_nodes.Node.register('Predicate', Predicate);\nvar QuestionReferenceTransformer = /*#__PURE__*/function (_Transformer) {\n _inherits(QuestionReferenceTransformer, _Transformer);\n var _super5 = _createSuper(QuestionReferenceTransformer);\n function QuestionReferenceTransformer(mapping) {\n var _this5;\n _classCallCheck(this, QuestionReferenceTransformer);\n _this5 = _super5.call(this);\n _this5.mapping = mapping;\n _this5.questionMap = {};\n return _this5;\n }\n _createClass(QuestionReferenceTransformer, [{\n key: \"transform\",\n value: function transform(node) {\n this.questionMap = {};\n return this.visit(node);\n }\n }, {\n key: \"visit_Attribute\",\n value: function visit_Attribute(node) {\n var value = this.visit(node.value);\n // eslint-disable-next-line no-param-reassign\n node = new _nodes.Attribute(value, node.attr);\n if (/^alias$/i.exec(node.value.id)) {\n var _question = this.mapping[node.attr];\n if (!_question) {\n throw new Error(\"Could not find \".concat(node.attr, \" in mapping\"));\n }\n this.questionMap[_question.id] = _question;\n return new Question(_question.id);\n }\n if (!(value instanceof Question)) {\n return node;\n }\n var question = this.questionMap[value.id];\n var question_type;\n if (question.type != null) {\n question_type = question.type.family;\n }\n if (question_type === 'presentation') {\n return node;\n }\n var options = this.questionMap[value.id].answer_options;\n if (options.other && /^OTHER$/i.exec(node.attr)) {\n // other comment/choice/row\n if (options.other_type === 'comment' && !(value.choice != null || value.row != null || value.column != null)) {\n return new Question(value.id, options.other.id);\n }\n if (options.other_type === 'answer_option' && !(value.choice != null || value.row != null || value.column != null)) {\n return new Question(value.id, undefined, undefined, options.other.id);\n }\n if (options.other_type === 'comment_per_row' && value.row != null && value.column == null) {\n return new Question(value.id, value.row, options.other.id);\n }\n }\n var rmatch = /^R(\\d+)$/i.exec(node.attr);\n var cmatch = /^C(\\d+)$/i.exec(node.attr);\n if (!(rmatch || cmatch)) {\n return node;\n }\n if (rmatch && !(value.choice != null || value.row != null || value.column != null)) {\n // find row\n var _row2 = parseInt(rmatch[1], 10);\n var _ref3 = options.rows[_row2 - 1];\n var rowId = _ref3 != null ? _ref3.id : undefined;\n if (rowId == null) {\n return node;\n }\n return new Question(value.id, rowId);\n }\n if (cmatch && !(value.choice != null || value.row != null || value.column != null || options.cols != null)) {\n // find choice\n var _choice3 = parseInt(cmatch[1], 10);\n var ref1 = options.rows[_choice3 - 1];\n var choiceId = ref1 != null ? ref1.id : undefined;\n if (choiceId == null) {\n return node;\n }\n return new Question(value.id, undefined, undefined, choiceId);\n }\n if (cmatch && value.row != null && options.cols != null && value.column == null) {\n // find column\n var col = parseInt(cmatch[1], 10);\n var ref2 = options.cols[col - 1];\n var colId = ref2 != null ? ref2.id : undefined;\n if (colId == null) {\n return node;\n }\n return new Question(value.id, value.row, colId);\n }\n throw new Error(\"Could not find \".concat(node.attr, \" in mapping\"));\n }\n }, {\n key: \"visit_Identifier\",\n value: function visit_Identifier(node) {\n var match = /^Q(\\d+)$/i.exec(node.id);\n if (!match) {\n return node;\n }\n var number = parseInt(match[1], 10);\n var question = this.mapping[number];\n if (question == null) {\n throw new Error(\"Could not find Q\".concat(number, \" in mapping\"));\n }\n var result = new Question(question.id);\n // tag for finding row/column/choice IDs for attributes\n this.questionMap[question.id] = question;\n return result;\n }\n }]);\n return QuestionReferenceTransformer;\n}(_visitors.Transformer);\nexports.QuestionReferenceTransformer = QuestionReferenceTransformer;\nvar ChoiceResolvingTransformer = /*#__PURE__*/function (_Transformer2) {\n _inherits(ChoiceResolvingTransformer, _Transformer2);\n var _super6 = _createSuper(ChoiceResolvingTransformer);\n function ChoiceResolvingTransformer(survey) {\n var _this6;\n _classCallCheck(this, ChoiceResolvingTransformer);\n _this6 = _super6.call(this);\n _this6.survey = survey;\n _this6.tagged = false;\n return _this6;\n }\n _createClass(ChoiceResolvingTransformer, [{\n key: \"transform\",\n value: function transform(node) {\n this.tagged = false;\n this.visit(node);\n this.tagged = true;\n return this.visit(node, node.tag);\n }\n }, {\n key: \"visit_Question\",\n value: function visit_Question(node, tag) {\n if (!this.tagged) {\n if (node.column) {\n // eslint-disable-next-line no-param-reassign, no-multi-assign\n tag = node.tag = [node.id, node.column];\n } else {\n // eslint-disable-next-line no-param-reassign, no-multi-assign\n tag = node.tag = node.id;\n }\n return tag;\n }\n return node;\n }\n }, {\n key: \"visit_Identifier\",\n value: function visit_Identifier(node, tag) {\n var _question$answer_opti17, _question$type3, _question$answer_opti20;\n if (!this.tagged) {\n return undefined;\n }\n var id;\n var column;\n if (Array.isArray(tag)) {\n var _tag = _slicedToArray(tag, 2);\n id = _tag[0];\n column = _tag[1];\n } else {\n id = tag;\n }\n var question = this.survey.getQuestion(id);\n if (!(id != null && question)) {\n return node;\n }\n if (node.id.toLowerCase() === 'na') {\n var _question$answer_opti16;\n if ((_question$answer_opti16 = question.answer_options) !== null && _question$answer_opti16 !== void 0 && _question$answer_opti16.na_col) {\n return new Choice(question.id, question.answer_options.na_col.id);\n }\n }\n var match = /^C(\\d+)$/i.exec(node.id);\n if (!match) {\n return node;\n }\n var choices = (_question$answer_opti17 = question.answer_options) === null || _question$answer_opti17 === void 0 ? void 0 : _question$answer_opti17.cols;\n if (choices == null) {\n var _question$answer_opti18;\n choices = (_question$answer_opti18 = question.answer_options) === null || _question$answer_opti18 === void 0 ? void 0 : _question$answer_opti18.rows;\n }\n if (choices == null) {\n choices = [];\n }\n if (column && ((_question$type3 = question.type) === null || _question$type3 === void 0 ? void 0 : _question$type3.family) === 'matrix' && question.type.subtype === 'menu') {\n var _question$answer_opti19;\n var _ref4 = ((_question$answer_opti19 = question.answer_options) === null || _question$answer_opti19 === void 0 ? void 0 : _question$answer_opti19.cols) || [];\n for (var i = 0, len = _ref4.length; i < len; i += 1) {\n var col = _ref4[i];\n if (col.id === column) {\n choices = col.col_choices;\n break;\n }\n }\n }\n if (((_question$answer_opti20 = question.answer_options) === null || _question$answer_opti20 === void 0 ? void 0 : _question$answer_opti20.other_type) === 'answer_option') {\n choices = choices.concat([question.answer_options.other]);\n }\n var number = parseInt(match[1], 10);\n var choice = choices[number - 1];\n if (!choice) {\n throw new Error(\"Could not find C\".concat(number, \" in mapping\"));\n }\n return new Choice(question.id, choice.id);\n }\n }, {\n key: \"visit_Node\",\n value: function visit_Node(node, tag) {\n var _this7 = this;\n if (!this.tagged) {\n var qtag;\n var conflict = false;\n // TODO:\n // eslint-disable-next-line consistent-return\n this.recurseChildren(node, function (child) {\n var ctag = _this7.visit(child);\n if (ctag != null && qtag != null && ctag !== qtag) {\n conflict = true;\n }\n if (ctag != null) {\n // eslint-disable-next-line no-return-assign\n return qtag = ctag;\n }\n });\n if (!conflict) {\n // eslint-disable-next-line no-param-reassign\n node.tag = qtag;\n }\n return qtag;\n }\n var changed = false;\n var params = this.recurseChildren(node, function (child) {\n var ref = child.tag;\n var rep = _this7.visit(child, ref != null ? ref : tag);\n if (rep !== child) {\n changed = true;\n }\n return rep;\n });\n if (!changed) {\n return node;\n }\n return this.buildNode(node.constructor, params);\n }\n }]);\n return ChoiceResolvingTransformer;\n}(_visitors.Transformer);\nexports.ChoiceResolvingTransformer = ChoiceResolvingTransformer;\nvar DereferenceTransformer = /*#__PURE__*/function (_Transformer3) {\n _inherits(DereferenceTransformer, _Transformer3);\n var _super7 = _createSuper(DereferenceTransformer);\n function DereferenceTransformer(survey) {\n var _this8;\n _classCallCheck(this, DereferenceTransformer);\n _this8 = _super7.call(this);\n _this8.survey = survey;\n _this8.choiceMap = {};\n return _this8;\n }\n _createClass(DereferenceTransformer, [{\n key: \"transform\",\n value: function transform(node) {\n this.choiceMap = {};\n // transform question references, keeping a mapping\n // eslint-disable-next-line no-param-reassign\n node = this.visit(node);\n // transform choice references using mapping\n return this.visit(node, true);\n }\n }, {\n key: \"visit_Question\",\n value: function visit_Question(node, mapped) {\n var _this$survey$getQuest, _question$answer_opti21, _question$answer_opti23, _question$answer_opti24;\n var info = node.getQuestionInfo(this.survey);\n if (!info) {\n return node;\n }\n var question = info.question;\n var pos = (_this$survey$getQuest = this.survey.getQuestion(question.id)) === null || _this$survey$getQuest === void 0 ? void 0 : _this$survey$getQuest.display_number;\n var choices = (_question$answer_opti21 = question.answer_options) === null || _question$answer_opti21 === void 0 ? void 0 : _question$answer_opti21.cols;\n if (choices == null) {\n var _question$answer_opti22;\n choices = (_question$answer_opti22 = question.answer_options) === null || _question$answer_opti22 === void 0 ? void 0 : _question$answer_opti22.rows;\n }\n if (choices == null) {\n choices = [];\n }\n for (var i = 0; i < choices.length; i += 1) {\n var _choice4$col_choices;\n var _choice4 = choices[i];\n this.choiceMap[_choice4.id] = _choice4;\n this.choiceMap[_choice4.id].index = i;\n var colChoices = (_choice4$col_choices = _choice4.col_choices) !== null && _choice4$col_choices !== void 0 ? _choice4$col_choices : [];\n for (var j = 0; j < colChoices.length; j += 1) {\n var colChoice = colChoices[j];\n this.choiceMap[colChoice.id] = colChoice;\n this.choiceMap[colChoice.id].index = j;\n }\n }\n if ((_question$answer_opti23 = question.answer_options) !== null && _question$answer_opti23 !== void 0 && _question$answer_opti23.other) {\n this.choiceMap[question.answer_options.other.id] = {\n position: choices.length + 1,\n index: choices.length,\n text: question.answer_options.other.text\n };\n }\n if ((_question$answer_opti24 = question.answer_options) !== null && _question$answer_opti24 !== void 0 && _question$answer_opti24.na_col) {\n this.choiceMap[question.answer_options.na_col.id] = {\n is_na_col: true,\n text: question.answer_options.na_col.text\n };\n }\n var id = new _nodes.Identifier(\"Q\".concat(pos));\n if ((info === null || info === void 0 ? void 0 : info.row) != null) {\n if (info.row.type === 'other') {\n id = new _nodes.Attribute(id, 'OTHER');\n } else {\n id = new _nodes.Attribute(id, \"R\".concat(info.row.position));\n }\n }\n if (info.column != null) {\n if (info.column.type === 'other') {\n id = new _nodes.Attribute(id, 'OTHER');\n } else {\n id = new _nodes.Attribute(id, \"C\".concat(info.column.position));\n }\n }\n if (info.choice != null) {\n if (info.choice.type === 'other') {\n id = new _nodes.Attribute(id, 'OTHER');\n } else {\n id = new _nodes.Attribute(id, \"C\".concat(info.choice.position));\n }\n }\n return id;\n }\n }, {\n key: \"visit_Choice\",\n value: function visit_Choice(node, mapped) {\n if (!mapped) {\n return node;\n }\n var info = this.choiceMap[node.id];\n if (info == null) {\n return node;\n }\n var id;\n if (info.is_na_col) {\n id = new _nodes.Identifier('NA');\n } else {\n id = new _nodes.Identifier(\"C\".concat(info.index + 1));\n }\n return id;\n }\n }]);\n return DereferenceTransformer;\n}(_visitors.Transformer);\nexports.DereferenceTransformer = DereferenceTransformer;\nvar CustomMetadataTransformer = /*#__PURE__*/function (_Transformer4) {\n _inherits(CustomMetadataTransformer, _Transformer4);\n var _super8 = _createSuper(CustomMetadataTransformer);\n function CustomMetadataTransformer() {\n _classCallCheck(this, CustomMetadataTransformer);\n return _super8.apply(this, arguments);\n }\n _createClass(CustomMetadataTransformer, [{\n key: \"transform\",\n value: function transform(node) {\n return this.visit(node);\n }\n }, {\n key: \"visit_Attribute\",\n value: function visit_Attribute(node) {\n if (!node.ref) {\n return node;\n }\n return new CustomMetadata(node.ref);\n }\n }]);\n return CustomMetadataTransformer;\n}(_visitors.Transformer);\n/**\n * This transformer converts `Predicate` nodes into their equivalent\n * decomposition with regular expression nodes.\n */\nexports.CustomMetadataTransformer = CustomMetadataTransformer;\nvar PredicateConverter = /*#__PURE__*/function (_Transformer5) {\n _inherits(PredicateConverter, _Transformer5);\n var _super9 = _createSuper(PredicateConverter);\n function PredicateConverter(survey) {\n var _this9;\n _classCallCheck(this, PredicateConverter);\n _this9 = _super9.call(this);\n _this9.survey = survey;\n return _this9;\n }\n _createClass(PredicateConverter, [{\n key: \"visit_Predicate\",\n value: function visit_Predicate(node) {\n var type = node.getVariableType(this.survey);\n var variable = node.getVariableNode(this.survey);\n if (!(variable instanceof _nodes.Node)) {\n return node;\n }\n var value = node.value,\n predicate = node.predicate;\n var empty = function empty(op) {\n return new _nodes.BinOp(variable, op, new _nodes.Empty());\n };\n var string = function string(op, val) {\n return (\n // eslint-disable-next-line no-new-wrappers\n new _nodes.BinOp(variable, op, new _nodes.String(val))\n );\n };\n var number = function number(op, val) {\n return (\n // eslint-disable-next-line no-new-wrappers\n new _nodes.BinOp(variable, op, new _nodes.Number(val))\n );\n };\n var choice = function choice(op) {\n return new _nodes.BinOp(variable, op, new Choice(variable.id, value));\n };\n var choiceList = function choiceList(op) {\n return new _nodes.BinOp(variable, op, new _nodes.List(value.map(function (i) {\n return new Choice(variable.id, i);\n })));\n };\n switch (predicate) {\n case _enums.PredicateOption.Response:\n return empty(_nodes.Op.IsNot);\n case _enums.PredicateOption.NoResponse:\n return empty(_nodes.Op.Is);\n case _enums.PredicateOption.Equals:\n {\n switch (type) {\n case _enums.VariableType.String:\n return string(_nodes.Op.Eq, value);\n case _enums.VariableType.Number:\n return number(_nodes.Op.Eq, value);\n case _enums.VariableType.Single:\n return choice(_nodes.Op.Eq);\n case _enums.VariableType.Multi:\n return choiceList(_nodes.Op.Eq);\n }\n break;\n }\n case _enums.PredicateOption.NotEquals:\n {\n switch (type) {\n case _enums.VariableType.String:\n return string(_nodes.Op.Ne, value);\n case _enums.VariableType.Number:\n return number(_nodes.Op.Ne, value);\n case _enums.VariableType.Single:\n return choice(_nodes.Op.Ne);\n case _enums.VariableType.Multi:\n return choiceList(_nodes.Op.Ne);\n }\n break;\n }\n case _enums.PredicateOption.Greater:\n return number(_nodes.Op.Gt, value);\n case _enums.PredicateOption.GreaterEqual:\n return number(_nodes.Op.Ge, value);\n case _enums.PredicateOption.Less:\n return number(_nodes.Op.Lt, value);\n case _enums.PredicateOption.LessEqual:\n return number(_nodes.Op.Le, value);\n case _enums.PredicateOption.StartsWith:\n if (type === _enums.VariableType.String) {\n return string(_nodes.Op.Ct, \"^\".concat(value));\n }\n break;\n case _enums.PredicateOption.EndsWith:\n if (type === _enums.VariableType.String) {\n return string(_nodes.Op.Ct, \"\".concat(value, \"$\"));\n }\n break;\n case _enums.PredicateOption.IsOneOf:\n if (type === _enums.VariableType.Single) {\n return choiceList(_nodes.Op.In);\n }\n break;\n case _enums.PredicateOption.IsNotOneOf:\n if (type === _enums.VariableType.Single) {\n return choiceList(_nodes.Op.NotIn);\n }\n break;\n case _enums.PredicateOption.Contains:\n switch (type) {\n case _enums.VariableType.String:\n return string(_nodes.Op.Ct, value);\n case _enums.VariableType.Multi:\n return choice(_nodes.Op.Eq);\n }\n break;\n case _enums.PredicateOption.NotContains:\n switch (type) {\n case _enums.VariableType.String:\n return string(_nodes.Op.NotCt, value);\n case _enums.VariableType.Multi:\n return choice(_nodes.Op.Ne);\n }\n break;\n case _enums.PredicateOption.ContainsAnyOf:\n switch (type) {\n case _enums.VariableType.Multi:\n return choiceList(_nodes.Op.In);\n }\n break;\n case _enums.PredicateOption.NotContainsAnyOf:\n switch (type) {\n case _enums.VariableType.Multi:\n return choiceList(_nodes.Op.NotIn);\n }\n break;\n case _enums.PredicateOption.ContainsAllOf:\n switch (type) {\n case _enums.VariableType.Multi:\n return choiceList(_nodes.Op.Ct);\n }\n break;\n case _enums.PredicateOption.NotContainsAllOf:\n switch (type) {\n case _enums.VariableType.Multi:\n return choiceList(_nodes.Op.NotCt);\n }\n break;\n }\n return node;\n }\n }]);\n return PredicateConverter;\n}(_visitors.Transformer);\n/**\n * This transformer attempts to convert expressions into predicate\n * expressions. It does this by pattern matching against certain predefined\n * predicate expression forms. The expression must already have its question\n * and choice references resolved to special nodes. This transformer is the\n * inverse of `PredicateConverter`. If the optional `lenient` parameter is\n * true, then the transformer will return `undefined` instead of throwing\n * an error when it fails to convert into a predicate expression.\n */\nexports.PredicateConverter = PredicateConverter;\nvar PredicateSynthesizer = /*#__PURE__*/function (_Transformer6) {\n _inherits(PredicateSynthesizer, _Transformer6);\n var _super10 = _createSuper(PredicateSynthesizer);\n function PredicateSynthesizer(survey) {\n var _this10;\n var lenient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var allowNested = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n _classCallCheck(this, PredicateSynthesizer);\n _this10 = _super10.call(this);\n _this10.survey = survey;\n _this10.lenient = lenient;\n _this10.allowNested = allowNested;\n return _this10;\n }\n _createClass(PredicateSynthesizer, [{\n key: \"fail\",\n value: function fail(node) {\n if (this.lenient) {\n return undefined;\n }\n throw new Error('Could not convert to predicate expression');\n }\n }, {\n key: \"visit_BoolOp\",\n value: function visit_BoolOp(node) {\n var _this11 = this;\n var operands = [];\n node.operands.forEach(function (child) {\n // eslint-disable-next-line no-param-reassign\n var visitedChild = _this11.visit(child);\n if (!_this11.allowNested && visitedChild instanceof _nodes.BoolOp && visitedChild.op.name !== node.op.name) {\n _this11.fail();\n }\n if (visitedChild) {\n operands.push(visitedChild);\n }\n });\n if (operands.length === 0) {\n return undefined;\n }\n if (operands.length === 1) {\n return operands[0];\n }\n return new _nodes.BoolOp(node.op, operands);\n }\n }, {\n key: \"visit_BinOp\",\n value: function visit_BinOp(node) {\n var left = node.left;\n var variable;\n var type;\n if (left instanceof Question) {\n variable = left.getPredicateId();\n type = left.getVariableType(this.survey);\n } else if (left instanceof _nodes.Attribute && left.value instanceof _nodes.Identifier) {\n variable = left.toString();\n if (this.survey.getMeta != null && !this.survey.getMeta(variable)) {\n return this.fail();\n }\n type = _enums.VariableType.String;\n } else if (left instanceof CustomMetadata) {\n variable = left.toString();\n } else {\n return this.fail();\n }\n var inst = function inst(klass) {\n return function (obj) {\n return obj instanceof klass;\n };\n };\n var instChoiceList = function instChoiceList(obj) {\n if (!(obj instanceof _nodes.List)) {\n return false;\n }\n for (var i = 0; i < obj.items.length; i += 1) {\n var item = obj.items[i];\n if (!(item instanceof Choice)) {\n return false;\n }\n }\n return true;\n };\n var preds = [[_nodes.Op.Is, undefined, inst(_nodes.Empty), _enums.PredicateOption.NoResponse, undefined], [_nodes.Op.IsNot, undefined, inst(_nodes.Empty), _enums.PredicateOption.Response, undefined], [_nodes.Op.Eq, _enums.VariableType.String, inst(_nodes.String), _enums.PredicateOption.Equals, function (v) {\n return v.value;\n }], [_nodes.Op.Eq, _enums.VariableType.Single, inst(Choice), _enums.PredicateOption.Equals, function (v) {\n return v.id;\n }], [_nodes.Op.Eq, _enums.VariableType.Multi, instChoiceList, _enums.PredicateOption.Equals, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.Eq, _enums.VariableType.Number, inst(_nodes.Number), _enums.PredicateOption.Equals, function (v) {\n return v.value;\n }], [_nodes.Op.Ne, _enums.VariableType.String, inst(_nodes.String), _enums.PredicateOption.NotEquals, function (v) {\n return v.value;\n }], [_nodes.Op.Ne, _enums.VariableType.Single, inst(Choice), _enums.PredicateOption.NotEquals, function (v) {\n return v.id;\n }], [_nodes.Op.Ne, _enums.VariableType.Multi, instChoiceList, _enums.PredicateOption.NotEquals, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.Ne, _enums.VariableType.Number, inst(_nodes.Number), _enums.PredicateOption.NotEquals, function (v) {\n return v.value;\n }], [_nodes.Op.Ge, _enums.VariableType.Number, inst(_nodes.Number), _enums.PredicateOption.GreaterEqual, function (v) {\n return v.value;\n }], [_nodes.Op.Gt, _enums.VariableType.Number, inst(_nodes.Number), _enums.PredicateOption.Greater, function (v) {\n return v.value;\n }], [_nodes.Op.Le, _enums.VariableType.Number, inst(_nodes.Number), _enums.PredicateOption.LessEqual, function (v) {\n return v.value;\n }], [_nodes.Op.Lt, _enums.VariableType.Number, inst(_nodes.Number), _enums.PredicateOption.Less, function (v) {\n return v.value;\n }], [_nodes.Op.Ct, _enums.VariableType.String, function (v) {\n return v instanceof _nodes.String && /^\\^/.test(v.value);\n }, _enums.PredicateOption.StartsWith, function (v) {\n return v.value.substring(1);\n }], [_nodes.Op.Ct, _enums.VariableType.String, function (v) {\n return v instanceof _nodes.String && /\\$$/.test(v.value);\n }, _enums.PredicateOption.EndsWith, function (v) {\n return v.value.substring(0, v.value.length - 1);\n }], [_nodes.Op.In, _enums.VariableType.Single, instChoiceList, _enums.PredicateOption.IsOneOf, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.NotIn, _enums.VariableType.Single, instChoiceList, _enums.PredicateOption.IsNotOneOf, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.Ct, _enums.VariableType.String, inst(_nodes.String), _enums.PredicateOption.Contains, function (v) {\n return v.value;\n }], [_nodes.Op.NotCt, _enums.VariableType.String, inst(_nodes.String), _enums.PredicateOption.NotContains, function (v) {\n return v.value;\n }], [_nodes.Op.Eq, _enums.VariableType.Multi, inst(Choice), _enums.PredicateOption.Contains, function (v) {\n return v.id;\n }], [_nodes.Op.Ne, _enums.VariableType.Multi, inst(Choice), _enums.PredicateOption.NotContains, function (v) {\n return v.id;\n }], [_nodes.Op.In, _enums.VariableType.Multi, instChoiceList, _enums.PredicateOption.ContainsAnyOf, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.NotIn, _enums.VariableType.Multi, instChoiceList, _enums.PredicateOption.NotContainsAnyOf, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.Ct, _enums.VariableType.Multi, instChoiceList, _enums.PredicateOption.ContainsAllOf, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }], [_nodes.Op.NotCt, _enums.VariableType.Multi, instChoiceList, _enums.PredicateOption.NotContainsAllOf, function (v) {\n return v.items.map(function (c) {\n return c.id;\n });\n }]];\n for (var i = 0; i < preds.length; i += 1) {\n var _preds$i = _slicedToArray(preds[i], 5),\n op = _preds$i[0],\n vartype = _preds$i[1],\n valpred = _preds$i[2],\n pred = _preds$i[3],\n valfunc = _preds$i[4];\n if (node.op !== op) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (vartype != null && type !== vartype) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (!valpred(node.right)) {\n // eslint-disable-next-line no-continue\n continue;\n }\n return new Predicate(variable, pred, typeof valfunc === 'function' ? valfunc(node.right) : undefined);\n }\n return this.fail();\n }\n }, {\n key: \"visit_Node\",\n value: function visit_Node() {\n return this.fail();\n }\n }]);\n return PredicateSynthesizer;\n}(_visitors.Transformer);\nexports.PredicateSynthesizer = PredicateSynthesizer;\nvar ReferencedQuestionsVisitor = /*#__PURE__*/function (_Visitor) {\n _inherits(ReferencedQuestionsVisitor, _Visitor);\n var _super11 = _createSuper(ReferencedQuestionsVisitor);\n function ReferencedQuestionsVisitor() {\n var _this12;\n var refs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ReferencedQuestionsVisitor);\n _this12 = _super11.call(this);\n _this12.refs = refs;\n return _this12;\n }\n _createClass(ReferencedQuestionsVisitor, [{\n key: \"visit_Question\",\n value: function visit_Question(node) {\n this.refs[node.id] = true;\n }\n }, {\n key: \"visit_Predicate\",\n value: function visit_Predicate(node) {\n var id = node.getQuestionId();\n if (id) {\n this.refs[id] = true;\n }\n }\n }]);\n return ReferencedQuestionsVisitor;\n}(_visitors.Visitor);\n/**\n * Ensures that all question and choice references in an expression are valid.\n * Call `isValid(node)` to check an expression.\n */\nexports.ReferencedQuestionsVisitor = ReferencedQuestionsVisitor;\nvar ExpressionValidator = /*#__PURE__*/function (_Visitor2) {\n _inherits(ExpressionValidator, _Visitor2);\n var _super12 = _createSuper(ExpressionValidator);\n function ExpressionValidator(survey) {\n var _this13;\n _classCallCheck(this, ExpressionValidator);\n _this13 = _super12.call(this);\n _this13.survey = survey;\n return _this13;\n }\n _createClass(ExpressionValidator, [{\n key: \"isValid\",\n value: function isValid(node) {\n try {\n this.visit(node);\n } catch (error) {\n return false;\n }\n return true;\n }\n }, {\n key: \"visit_Question\",\n value: function visit_Question(node) {\n if (node.getQuestionInfo(this.survey) == null) {\n throw new Error('Invalid question');\n }\n }\n }, {\n key: \"visit_Choice\",\n value: function visit_Choice(node) {\n if (node.getChoiceInfo(this.survey) == null) {\n throw new Error('Invalid choice');\n }\n }\n }]);\n return ExpressionValidator;\n}(_visitors.Visitor);\nexports.ExpressionValidator = ExpressionValidator;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.truncate = exports.toRepr = exports.maybeParen = exports.isFunction = exports.initializeTranslations = exports.gettext = exports.escapeHtml = void 0;\nvar _striptags = _interopRequireDefault(require(\"striptags\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar translations = {};\nvar initializeTranslations = function initializeTranslations(translationJson) {\n return _objectSpread(_objectSpread({}, translations), translationJson);\n};\nexports.initializeTranslations = initializeTranslations;\nvar gettext = function gettext(key) {\n if (translations[key]) {\n return translations[key].default;\n }\n return key;\n};\nexports.gettext = gettext;\nvar isFunction = function isFunction(obj) {\n if (typeof /./ !== 'function' && typeof Int8Array !== 'object') {\n return typeof obj === 'function' || false;\n }\n return Object.toString.call(obj) === '[object Function]';\n};\nexports.isFunction = isFunction;\nvar truncate = function truncate(str, maxLength) {\n var stripedString = (0, _striptags.default)(str);\n if (!maxLength || stripedString.length <= maxLength) {\n return str;\n }\n return \"\".concat(str.substr(0, stripedString.lastIndexOf(' ', 20)), \"...\");\n};\nexports.truncate = truncate;\nvar escapeHtml = function escapeHtml(text) {\n return text.replace(/&/g, '&').replace(/>/g, '>').replace(/ 2 && arguments[2] !== undefined ? arguments[2] : false;\n var text = arguments.length > 3 ? arguments[3] : undefined;\n var result = text !== null && text !== void 0 ? text : child.toString();\n if (!child.op) {\n return result;\n }\n if (parent.op && child.op.precedence > parent.op.precedence) {\n return result;\n }\n if (child.op.precedence === ((_parent$op = parent.op) === null || _parent$op === void 0 ? void 0 : _parent$op.precedence) && !right) {\n return result;\n }\n return \"(\".concat(result, \")\");\n};\nexports.maybeParen = maybeParen;\nvar toRepr = function toRepr(obj) {\n if (!obj) {\n return 'null';\n }\n if (obj instanceof Array) {\n return \"[\".concat(obj.map(toRepr).join(', '), \"]\");\n }\n if (typeof obj === 'object' && 'toRepr' in obj) {\n return obj.toRepr();\n }\n return obj.toString();\n};\nexports.toRepr = toRepr;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.visit = exports.Visitor = exports.Transformer = exports.ReferenceVisitor = exports.FormatVisitor = exports.EvaluationVisitor = void 0;\nvar _nodes = require(\"./nodes\");\nvar _utils = require(\"./utils\");\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar Visitor = /*#__PURE__*/function () {\n function Visitor() {\n _classCallCheck(this, Visitor);\n }\n _createClass(Visitor, [{\n key: \"visit\",\n value:\n // TODO: not safe\n\n // TODO: need to type this\n function visit(node) {\n var type = node.constructor;\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n while (type !== _nodes.Node) {\n if (this[\"visit_\".concat(type.type)]) {\n return this[\"visit_\".concat(type.type)](node, args);\n }\n type = Object.getPrototypeOf(type);\n }\n return this.visit_Node(node, args);\n }\n\n // TODO: need to type this\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"recurseChildren\",\n value: function recurseChildren(node, cb) {\n var ctr = node.constructor;\n var results = [];\n ctr.attrs.forEach(function (name) {\n var field = node[name];\n if (field instanceof _nodes.Node) {\n results.push(cb(field));\n } else if (field instanceof Array) {\n var results1 = [];\n field.forEach(function (sub) {\n if (sub instanceof _nodes.Node) {\n results1.push(cb(sub));\n }\n });\n results.push(results1);\n } else {\n results.push(field);\n }\n });\n return results;\n }\n\n // TODO: need to type this\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Node\",\n value: function visit_Node(node) {\n var _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n this.recurseChildren(node, function (child) {\n return _this.visit(child, args);\n });\n }\n }]);\n return Visitor;\n}();\nexports.Visitor = Visitor;\nvar visit = function visit(node, cb) {\n var TempVisitor = /*#__PURE__*/function (_Visitor) {\n _inherits(TempVisitor, _Visitor);\n var _super = _createSuper(TempVisitor);\n function TempVisitor() {\n _classCallCheck(this, TempVisitor);\n return _super.apply(this, arguments);\n }\n _createClass(TempVisitor, [{\n key: \"visit_Node\",\n value:\n // eslint-disable-next-line class-methods-use-this, camelcase\n function visit_Node(n) {\n cb(n);\n _get(_getPrototypeOf(TempVisitor.prototype), \"visit_Node\", this).call(this, n);\n }\n }]);\n return TempVisitor;\n }(Visitor);\n return new TempVisitor().visit(node);\n};\nexports.visit = visit;\nvar Transformer = /*#__PURE__*/function (_Visitor2) {\n _inherits(Transformer, _Visitor2);\n var _super2 = _createSuper(Transformer);\n function Transformer() {\n _classCallCheck(this, Transformer);\n return _super2.apply(this, arguments);\n }\n _createClass(Transformer, [{\n key: \"buildNode\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function buildNode(Type, attrs) {\n return _construct(Type, _toConsumableArray(attrs));\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Node\",\n value: function visit_Node(node) {\n var _this2 = this;\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n var changed = false;\n var async = false;\n var params = this.recurseChildren(node, function (child) {\n var rep = _this2.visit.apply(_this2, [child].concat(args));\n if (rep !== child) {\n changed = true;\n }\n if (rep instanceof Promise) {\n async = true;\n }\n return rep;\n });\n if (!changed) {\n return node;\n }\n if (async) {\n params = params.map(function (param) {\n if (param instanceof Array) {\n return Promise.all(param);\n }\n return param;\n });\n return Promise.all(params).then(function (x) {\n return _this2.buildNode(node.constructor, x);\n });\n }\n return this.buildNode(node.constructor, params);\n }\n }, {\n key: \"transform\",\n value: function transform(node) {\n return this.visit(node);\n }\n }]);\n return Transformer;\n}(Visitor);\nexports.Transformer = Transformer;\nvar ReferenceVisitor = /*#__PURE__*/function (_Visitor3) {\n _inherits(ReferenceVisitor, _Visitor3);\n var _super3 = _createSuper(ReferenceVisitor);\n function ReferenceVisitor() {\n _classCallCheck(this, ReferenceVisitor);\n return _super3.apply(this, arguments);\n }\n _createClass(ReferenceVisitor, [{\n key: \"visit_Identifier\",\n value:\n // eslint-disable-next-line class-methods-use-this, camelcase\n function visit_Identifier(node) {\n return [node.id];\n }\n\n // eslint-disable-next-line class-methods-use-this, camelcase\n }, {\n key: \"visit_Node\",\n value: function visit_Node(node) {\n var _this3 = this;\n var result = [];\n this.recurseChildren(node, function (child) {\n _this3.visit(child).forEach(function (ref) {\n if (!result.includes(ref)) {\n result.push(ref);\n }\n });\n });\n return result;\n }\n }]);\n return ReferenceVisitor;\n}(Visitor);\nexports.ReferenceVisitor = ReferenceVisitor;\nvar FormatVisitor = /*#__PURE__*/function (_Visitor4) {\n _inherits(FormatVisitor, _Visitor4);\n var _super4 = _createSuper(FormatVisitor);\n function FormatVisitor() {\n var _this4;\n _classCallCheck(this, FormatVisitor);\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n _this4 = _super4.call.apply(_super4, [this].concat(args));\n _this4.escape = false;\n return _this4;\n }\n _createClass(FormatVisitor, [{\n key: \"maybeEscape\",\n value: function maybeEscape(str) {\n if (this.escape) {\n return (0, _utils.escapeHtml)(str);\n }\n return str;\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"formatOp\",\n value: function formatOp(op) {\n return op.toString();\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_BinOp\",\n value: function visit_BinOp(node) {\n var left = (0, _utils.maybeParen)(node, node.left, false, this.visit(node.left));\n var right = (0, _utils.maybeParen)(node, node.right, true, this.visit(node.right));\n return \"\".concat(left, \" \").concat(this.formatOp(node.op), \" \").concat(right);\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_UnaryOp\",\n value: function visit_UnaryOp(node) {\n var operand = (0, _utils.maybeParen)(node, node.operand, false, this.visit(node.operand));\n return \"\".concat(this.formatOp(node.op), \" \").concat(operand);\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_BoolOp\",\n value: function visit_BoolOp(node) {\n var _this5 = this;\n var ops = node.operands.map(function (op) {\n return (0, _utils.maybeParen)(node, op, false, _this5.visit(op));\n });\n return ops.join(\" \".concat(this.formatOp(node.op), \" \"));\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Attribute\",\n value: function visit_Attribute(node) {\n return \"\".concat(this.visit(node.value), \".\").concat(this.maybeEscape(node.attr));\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Call\",\n value: function visit_Call(node) {\n var _this6 = this;\n var args = node.args.map(function (arg) {\n return _this6.visit(arg);\n });\n return \"\".concat(this.visit(node.func), \"(\").concat(args.join(', '), \")\");\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_List\",\n value: function visit_List(node) {\n var _this7 = this;\n return \"[\".concat(node.items.map(function (item) {\n return _this7.visit(item);\n }).join(', '), \"]\");\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Node\",\n value: function visit_Node(node) {\n return this.maybeEscape(node.toString());\n }\n }]);\n return FormatVisitor;\n}(Visitor);\nexports.FormatVisitor = FormatVisitor;\nvar EvaluationVisitor = /*#__PURE__*/function (_Visitor5) {\n _inherits(EvaluationVisitor, _Visitor5);\n var _super5 = _createSuper(EvaluationVisitor);\n function EvaluationVisitor(context) {\n var _this8;\n _classCallCheck(this, EvaluationVisitor);\n _this8 = _super5.call(this);\n _this8.context = context;\n return _this8;\n }\n\n // eslint-disable-next-line class-methods-use-this\n _createClass(EvaluationVisitor, [{\n key: \"toNumber\",\n value: function toNumber(arg) {\n return Number(arg);\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"isEmpty\",\n value: function isEmpty(arg) {\n if (arg === null || arg === undefined) {\n return true;\n }\n if (typeof arg === 'string' && arg.trim() === '') {\n return true;\n }\n if (Array.isArray(arg) && arg.length === 0) {\n return true;\n }\n return false;\n }\n }, {\n key: \"isTruthy\",\n value: function isTruthy(arg) {\n return !this.isEmpty(arg) && arg;\n }\n }, {\n key: \"arithOp\",\n value: function arithOp(left, right, func) {\n if (left === null || right === null) {\n return null;\n }\n var result = func(this.toNumber(left), this.toNumber(right));\n if (!Number.isFinite(result) || Number.isNaN(result)) {\n return null;\n }\n return result;\n }\n }, {\n key: \"cmpOp\",\n value: function cmpOp(name,\n // TODO: name can be made more safe with a string literal or enum\n left, right, func) {\n var _left, _right;\n if (left === null || right === null) {\n return null;\n }\n var result = (_left = left[\"__\".concat(name, \"__\")]) === null || _left === void 0 ? void 0 : _left.call(left, right);\n if (result !== undefined) {\n return result;\n }\n result = (_right = right[\"__\".concat(name, \"__\")]) === null || _right === void 0 ? void 0 : _right.call(right, left);\n if (result !== undefined) {\n return result;\n }\n if (typeof left === 'boolean' || typeof right === 'boolean') {\n return func(this.toNumber(left) - this.toNumber(right));\n }\n if (typeof left === 'number' || typeof right === 'number') {\n return func(this.toNumber(left) - this.toNumber(right));\n }\n return func(left.toString().localeCompare(right.toString(), 'en', {\n sensitivity: 'accent'\n }));\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_UnaryOp\",\n value: function visit_UnaryOp(node) {\n var op = this.visit(node.operand);\n if (node.op === _nodes.Op.Not && op !== null) {\n return !this.isTruthy(op);\n }\n return null;\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_BoolOp\",\n value: function visit_BoolOp(node) {\n var result;\n if (node.op === _nodes.Op.And) {\n result = true;\n for (var i = 0; i < node.operands.length; i += 1) {\n var op = node.operands[i];\n var arg = this.visit(op);\n if (arg !== null && !arg) {\n return arg;\n }\n if (result !== null) {\n result = arg;\n }\n }\n }\n if (node.op === _nodes.Op.Or) {\n result = false;\n for (var _i = 0; _i < node.operands.length; _i += 1) {\n var _op = node.operands[_i];\n var _arg = this.visit(_op);\n if (_arg) {\n return _arg;\n }\n if (result !== null && result !== undefined) {\n result = _arg;\n }\n }\n }\n return result;\n }\n\n // TODO: make sure all cases are being handled\n // eslint-disable-next-line camelcase, consistent-return\n }, {\n key: \"visit_BinOp\",\n value: function visit_BinOp(node) {\n var _ref = [this.visit(node.left), this.visit(node.right)],\n left = _ref[0],\n right = _ref[1];\n switch (node.op) {\n case _nodes.Op.Add:\n return this.arithOp(left, right, function (l, r) {\n return l + r;\n });\n case _nodes.Op.Sub:\n return this.arithOp(left, right, function (l, r) {\n return l - r;\n });\n case _nodes.Op.Mul:\n return this.arithOp(left, right, function (l, r) {\n return l * r;\n });\n case _nodes.Op.Div:\n return this.arithOp(left, right, function (l, r) {\n return l / r;\n });\n case _nodes.Op.Eq:\n return this.cmpOp('eq', left, right, function (cmp) {\n return cmp === 0;\n });\n case _nodes.Op.Ne:\n return this.cmpOp('ne', left, right, function (cmp) {\n return cmp !== 0;\n });\n case _nodes.Op.Gt:\n return this.cmpOp('gt', left, right, function (cmp) {\n return cmp > 0;\n });\n case _nodes.Op.Lt:\n return this.cmpOp('lt', left, right, function (cmp) {\n return cmp < 0;\n });\n case _nodes.Op.Ge:\n return this.cmpOp('ge', left, right, function (cmp) {\n return cmp >= 0;\n });\n case _nodes.Op.Le:\n return this.cmpOp('le', left, right, function (cmp) {\n return cmp <= 0;\n });\n case _nodes.Op.In:\n case _nodes.Op.NotIn:\n {\n var _left$__in__;\n var invert = node.op === _nodes.Op.NotIn;\n var result = left === null || left === void 0 ? void 0 : (_left$__in__ = left.__in__) === null || _left$__in__ === void 0 ? void 0 : _left$__in__.call(left, right);\n if (result !== undefined) {\n return result !== invert;\n }\n if (Array.isArray(right)) {\n for (var i = 0; i < right.length; i += 1) {\n var item = right[i];\n if (this.cmpOp('eq', left, item, function (cmp) {\n return cmp === 0;\n })) {\n return invert !== true;\n }\n }\n return invert !== false;\n }\n return null;\n }\n case _nodes.Op.Ct:\n case _nodes.Op.NotCt:\n {\n var _left$__ct__;\n var _invert = node.op === _nodes.Op.NotCt;\n var _result = left === null || left === void 0 ? void 0 : (_left$__ct__ = left.__ct__) === null || _left$__ct__ === void 0 ? void 0 : _left$__ct__.call(left, right);\n if (_result !== undefined) {\n return _result !== _invert;\n }\n if (typeof left === 'string' && typeof right === 'string') {\n var lowerLeft = left.toLowerCase();\n var lowerRight = right.toLowerCase();\n if (/^\\^/.test(right)) {\n var trimmedRight = lowerRight.substring(1);\n return lowerLeft.lastIndexOf(trimmedRight, 0) === 0 !== _invert;\n }\n if (/\\$$/.test(right)) {\n var _trimmedRight = lowerRight.substring(0, lowerRight.length - 1);\n return lowerLeft.indexOf(_trimmedRight, lowerLeft.length - _trimmedRight.length) !== -1 !== _invert;\n }\n return lowerLeft.indexOf(lowerRight) >= 0 !== _invert;\n }\n return null;\n }\n case _nodes.Op.Is:\n case _nodes.Op.IsNot:\n {\n var _invert2 = node.op === _nodes.Op.IsNot;\n if (node.right instanceof _nodes.Null) {\n return left === null !== _invert2;\n }\n if (node.right instanceof _nodes.Empty) {\n return this.isEmpty(left) !== _invert2;\n }\n return left === right !== _invert2;\n }\n default:\n {\n // TODO: turn node.op into a finite type?\n throw new Error(\"Operator not supported: \".concat(node.op));\n }\n }\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Attribute\",\n value: function visit_Attribute(node) {\n var value = this.visit(node.value);\n if (value === null) {\n return null;\n }\n\n // eslint-disable-next-line no-prototype-builtins\n if (value.hasOwnProperty(node.attr)) {\n return value[node.attr];\n }\n return null;\n }\n\n // TODO: what if the context does not have the id?\n // eslint-disable-next-line camelcase, consistent-return\n }, {\n key: \"visit_Identifier\",\n value: function visit_Identifier(node) {\n if (node.id in this.context) {\n return this.context[node.id];\n }\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Call\",\n value: function visit_Call(node) {\n var _this9 = this;\n var func = this.visit(node.func);\n if (typeof func !== 'function') {\n return null;\n }\n if (func.lazy) {\n return func.apply(void 0, [function (arg) {\n return _this9.visit(arg);\n }].concat(_toConsumableArray(node.args)));\n }\n return func.apply(void 0, _toConsumableArray(node.args.map(function (arg) {\n return _this9.visit(arg);\n })));\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_List\",\n value: function visit_List(node) {\n var _this10 = this;\n return node.items.map(function (item) {\n return _this10.visit(item);\n });\n }\n\n // eslint-disable-next-line camelcase, class-methods-use-this\n }, {\n key: \"visit_Null\",\n value: function visit_Null(node) {\n return null;\n }\n\n // eslint-disable-next-line camelcase, class-methods-use-this\n }, {\n key: \"visit_Empty\",\n value: function visit_Empty(node) {\n return null;\n }\n\n // eslint-disable-next-line class-methods-use-this, camelcase\n }, {\n key: \"visit_Constant\",\n value: function visit_Constant(node) {\n return node.valueOf();\n }\n\n // eslint-disable-next-line camelcase\n }, {\n key: \"visit_Node\",\n value: function visit_Node(node) {\n var _node$__eval__;\n var result = (_node$__eval__ = node.__eval__) === null || _node$__eval__ === void 0 ? void 0 : _node$__eval__.call(node, this.context);\n if (result !== undefined) {\n return result;\n }\n return null;\n }\n }]);\n return EvaluationVisitor;\n}(Visitor);\nexports.EvaluationVisitor = EvaluationVisitor;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _environment = require(\"@sm/utils/dist/environment\");\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n// fix for downstream tree-shaking\n\nvar _getClientEnvironment = (0, _environment.getClientEnvironmentDetails)(),\n isBrowser = _getClientEnvironment.isBrowser;\nvar currency = ['AFN', 'EUR', 'ALL', 'DZD', 'USD', 'AOA', 'XCD', 'ARS', 'AMD', 'AWG', 'AUD', 'AZN', 'BSD', 'BHD', 'BDT', 'BBD', 'BYN', 'BZD', 'XOF', 'BMD', 'INR', 'BTN', 'BOB', 'BOV', 'BAM', 'BWP', 'NOK', 'BRL', 'BND', 'BGN', 'BIF', 'CVE', 'KHR', 'XAF', 'CAD', 'KYD', 'CLP', 'CLF', 'CNY', 'COP', 'COU', 'KMF', 'CDF', 'NZD', 'CRC', 'HRK', 'CUP', 'CUC', 'ANG', 'CZK', 'DKK', 'DJF', 'DOP', 'EGP', 'SVC', 'ERN', 'ETB', 'FKP', 'FJD', 'XPF', 'GMD', 'GEL', 'GHS', 'GIP', 'GTQ', 'GBP', 'GNF', 'GYD', 'HTG', 'HNL', 'HKD', 'HUF', 'ISK', 'IDR', 'XDR', 'IRR', 'IQD', 'ILS', 'JMD', 'JPY', 'JOD', 'KZT', 'KES', 'KPW', 'KRW', 'KWD', 'KGS', 'LAK', 'LBP', 'LSL', 'ZAR', 'LRD', 'LYD', 'CHF', 'MOP', 'MKD', 'MGA', 'MWK', 'MYR', 'MVR', 'MRO', 'MUR', 'XUA', 'MXN', 'MXV', 'MDL', 'MNT', 'MAD', 'MZN', 'MMK', 'NAD', 'NPR', 'NIO', 'NGN', 'OMR', 'PKR', 'PAB', 'PGK', 'PYG', 'PEN', 'PHP', 'PLN', 'QAR', 'RON', 'RUB', 'RWF', 'SHP', 'WST', 'STD', 'SAR', 'RSD', 'SCR', 'SLL', 'SGD', 'XSU', 'SBD', 'SOS', 'SSP', 'LKR', 'SDG', 'SRD', 'SZL', 'SEK', 'CHE', 'CHW', 'SYP', 'TWD', 'TJS', 'TZS', 'THB', 'TOP', 'TTD', 'TND', 'TRY', 'TMT', 'UGX', 'UAH', 'AED', 'USN', 'UYU', 'UYI', 'UZS', 'VUV', 'VEF', 'VND', 'YER', 'ZMW', 'ZWL', 'XBA', 'XBB', 'XBC', 'XBD', 'XTS', 'XXX', 'XAU', 'XPD', 'XPT', 'XAG'];\n\n/** List of supported currencies */\n\nvar numberFormat = currency.reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, {\n style: 'currency',\n currency: key\n }));\n}, {});\nvar dateTimeFormat;\nif (isBrowser) {\n var browserTimezone = 'UTC';\n try {\n browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n dateTimeFormat = {\n timeZone: browserTimezone\n };\n } catch (err) {\n // We're throwing in a settimeout because we don't want to break the current tick.\n window.setTimeout(function () {\n throw err;\n }, 1);\n }\n}\nvar _default = {\n number: numberFormat,\n dateTime: dateTimeFormat,\n relativeTime: undefined\n};\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormattedDateTime = FormattedDateTime;\nexports.FormattedNumber = FormattedNumber;\nexports.FormattedRelativeTime = FormattedRelativeTime;\nexports.T = exports.L10nProvider = exports.L10NContext = void 0;\nexports.clearOptionsObject = clearOptionsObject;\nexports.defineMessages = defineMessages;\nexports.getMessageStore = getMessageStore;\nexports.initIntl = initIntl;\nexports.resetMessageStore = resetMessageStore;\nexports.substitute = substitute;\nexports.t = t;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _intlMessageformat = _interopRequireDefault(require(\"intl-messageformat\"));\nvar _escapeHtml = _interopRequireDefault(require(\"escape-html\"));\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.merge\"));\nvar _environment = require(\"@sm/utils/dist/environment\");\nvar _languages = require(\"@sm/locale/dist/languages\");\nvar _intlRelativeformat = _interopRequireDefault(require(\"intl-relativeformat\"));\nvar _formats = _interopRequireDefault(require(\"./formats\"));\nvar _excluded = [\"value\"],\n _excluded2 = [\"value\"];\nvar _jsxFileName = \"/repo/packages/intl/src/index.tsx\";\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nvar _getClientEnvironment = (0, _environment.getClientEnvironmentDetails)(),\n isBrowser = _getClientEnvironment.isBrowser;\nvar INTL_OPT_KEY = 'SM_intlUniqueOptionsObjectKey';\nvar INTL_MSG_STORE_KEY = 'SM_intlUniqueMessageStoreObjectKey';\n\n/** Intl Options */\n\nfunction getDefaultOptions() {\n return {\n currentLocale: null,\n // Current locale such as 'en-US' - `null` is not allowed for IntlMessageFormat and needs to be set\n warningHandler: console.warn.bind(console),\n // eslint-disable-line\n escapeHtml: true // disable escape html in variable mode\n };\n}\n\nfunction getStore() {\n var glob = isBrowser ? window : global;\n if (!glob[INTL_MSG_STORE_KEY]) {\n glob[INTL_MSG_STORE_KEY] = {};\n }\n return glob[INTL_MSG_STORE_KEY];\n}\nfunction getOptionsObject() {\n var glob = isBrowser ? window : global;\n if (!glob[INTL_OPT_KEY]) {\n glob[INTL_OPT_KEY] = getDefaultOptions();\n }\n return glob[INTL_OPT_KEY];\n}\nfunction clearOptionsObject() {\n if (isBrowser) {\n delete window[INTL_OPT_KEY];\n } else {\n delete global[INTL_OPT_KEY];\n }\n}\nvar intlRelativeFormat;\n\n/**\n * @param {string} input\n * @returns {string} hash\n * @private\n */\nfunction hashInput(input) {\n var hash = 0;\n var i;\n var chr;\n if (input.length === 0) return hash;\n for (i = 0; i < input.length; i += 1) {\n chr = input.charCodeAt(i);\n hash = (hash << 5) - hash + chr; // eslint-disable-line no-bitwise\n // Convert to 32bit integer\n hash |= 0; // eslint-disable-line no-bitwise\n }\n\n return hash;\n}\nvar randomStr = function randomStr(N) {\n return _toConsumableArray(Array(N)).map(function () {\n return (~~(Math.random() * 36)).toString(36);\n }).join('');\n}; // eslint-disable-line no-bitwise\n\nvar keysOf = Object.keys;\nvar maybePseudo = function maybePseudo(msg) {\n if (process.env.NODE_ENV !== \"production\" && isBrowser) {\n var pseudoFactor = window.location.href.toString().match(/[&?]intl-pseudo(=([0-9]*\\.[0-9]+|[0-9]+))?/);\n if (pseudoFactor) {\n return msg.replace(/\\S+/g, function (match) {\n return randomStr(parseInt(\"\".concat(match.length * parseFloat(\"\".concat(pseudoFactor[2] || 1))), 10) || 1);\n });\n }\n }\n return msg;\n};\nvar replacer = function replacer(elements) {\n return function (part) {\n var element = elements[part];\n return element || maybePseudo(part);\n };\n};\n\n/** `string` type-guard including check for `instanceof` */\n// work-around as TS does not infer type string for instanceof\nvar isString = function isString(s) {\n return typeof s === 'string' || s instanceof String;\n};\n\n/**\n *\n * @param {string} message\n * @param {Object} variables (Optional)\n * @returns {Object} The substitution\n */\nfunction substitute(message, variables) {\n var vars = _objectSpread({}, variables);\n var msg = message;\n var options = getOptionsObject();\n var uid = Math.abs(hashInput(JSON.stringify({\n msg: msg,\n keys: keysOf(vars)\n }))).toString(16);\n var tokenDelimiter = \"@__\".concat(uid, \"__@\");\n var tokenizedValues = {};\n var elements = {};\n var generateToken = function () {\n var counter = 0;\n return function () {\n counter += 1;\n return \"ELEMENT-\".concat(uid, \"-\").concat(counter);\n };\n }();\n keysOf(vars).forEach(function (name) {\n var value = vars[name];\n if ( /*#__PURE__*/_react.default.isValidElement(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else if (options.escapeHtml === true && isString(value) && value.indexOf('<') >= 0 && value.indexOf('>') >= 0) {\n tokenizedValues[name] = (0, _escapeHtml.default)(value);\n } else {\n // `React.isValidElement` matches `React.ReactElement` so its type can be omitted\n tokenizedValues[name] = value;\n }\n });\n try {\n var msgFormatter = new _intlMessageformat.default(msg, options.currentLocale, options.formats);\n msg = msgFormatter.format(tokenizedValues);\n } catch (err) {\n options.warningHandler({\n context: 'sm/intl',\n error: 'message_formatting_error',\n err: err,\n msg: msg,\n tokenizedValues: tokenizedValues,\n vars: vars,\n currentLocale: options.currentLocale\n });\n return msg;\n }\n try {\n var stack = [];\n var exhausted = false;\n var runningIndex = 0;\n while (!exhausted) {\n // The runningIndex is the pointer in the string at which we want to look right (->).\n var match = msg.substr(runningIndex).match(/]+)\">|<\\/span>/);\n if (match) {\n // eslint-disable-next-line prefer-const\n var _ref = match,\n _ref2 = _slicedToArray(_ref, 2),\n matched = _ref2[0],\n tag = _ref2[1];\n\n // we need to adjust for the running index because match.index is relative to the substring we used\n var matchIndex = (match.index || 0) + runningIndex;\n var isOpening = !!tag;\n if (isOpening) {\n // If it's an opening tag, just push it on the stack and move on.\n stack.push({\n tag: tag,\n index: matchIndex\n });\n runningIndex = matchIndex + matched.length;\n } else {\n // We reached an ending tag.\n\n var popped = stack.pop();\n if (!popped) {\n options.warningHandler({\n context: 'sm/intl',\n error: 'unbalanced_delimiters_extra_closing',\n message: message,\n tokenizedValues: tokenizedValues,\n vars: vars\n });\n return message;\n }\n runningIndex = popped.index;\n // Find the content between the opening tag and the current one\n var content = msg.substring(runningIndex, matchIndex).replace(/]+)\">/, '').replace(/<\\span>/, '');\n var children = void 0;\n // If there are other functional elements saved already, try to split\n // the content and replace them with the right elements.\n if (elements && keysOf(elements).length > 0) {\n children = content.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(replacer(elements));\n } else {\n children = content;\n }\n\n // Build an element by cloning the passed element or calling the\n // passed function.\n var element = vars[popped.tag]({\n children: children\n });\n if ( /*#__PURE__*/_react.default.isValidElement(element)) {\n element = /*#__PURE__*/_react.default.cloneElement(element, {\n key: \"\".concat(popped.tag, \"_\").concat(randomStr(8))\n });\n }\n\n // Build the new string and adjust the running index based on that token.\n var token = generateToken();\n var tokenReplacement = \"\".concat(tokenDelimiter).concat(token).concat(tokenDelimiter);\n msg = \"\".concat(msg.substring(0, popped.index)).concat(tokenReplacement).concat(msg.substring(matchIndex + matched.length, msg.length));\n elements[token] = element;\n }\n } else {\n exhausted = true;\n }\n }\n if (stack.length) {\n options.warningHandler({\n context: 'sm/intl',\n error: 'unbalanced_delimiters_extra_opening',\n message: message,\n tokenizedValues: tokenizedValues,\n vars: vars\n });\n return message;\n }\n // Do a final replace once we're done with matching\n if (elements && keysOf(elements).length > 0) {\n msg = msg.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(replacer(elements));\n } else {\n msg = maybePseudo(msg);\n }\n return msg;\n } catch (err) {\n options.warningHandler({\n context: 'sm/intl',\n error: 'unexpected_tokenization_error',\n message: message,\n err: err\n });\n return message;\n }\n}\n\n/**\n * Retrieves and format a particular message by key. Uses defaultMessage if key is not found in message list.\n * @param {string} key Unique identifier for this string\n * @param {Object} variables (Optional) - Key/values for string substitution\n * @param {string} defaultMessage (Optional) Default message if string isn't found for key\n * @private\n */\nfunction get(key, variables, defaultMessage) {\n var vars = variables;\n var _getOptionsObject = getOptionsObject(),\n currentLocale = _getOptionsObject.currentLocale,\n warningHandler = _getOptionsObject.warningHandler;\n var messages = getStore()[currentLocale];\n if (!key) {\n warningHandler({\n context: 'sm/intl',\n error: 'key_is_undefined',\n currentLocale: currentLocale,\n key: key,\n defaultMessage: defaultMessage\n });\n return '';\n }\n var msg;\n if (!messages) {\n // If currentLocale is not set, return the default message without warning.\n if (currentLocale) {\n warningHandler({\n context: 'sm/intl',\n error: 'locale_not_found_in_message_store',\n currentLocale: currentLocale\n });\n }\n msg = defaultMessage || '';\n }\n msg = msg || messages[key];\n if (!msg && defaultMessage) {\n if (currentLocale !== 'en-US') {\n warningHandler({\n context: 'sm/intl',\n error: 'message_not_found_default_fallback',\n currentLocale: currentLocale,\n key: key\n });\n }\n msg = defaultMessage;\n }\n if (!msg) {\n warningHandler({\n context: 'sm/intl',\n error: 'message_not_found_no_default',\n currentLocale: currentLocale,\n key: key,\n defaultMessage: defaultMessage\n });\n return '';\n }\n return substitute(msg, vars);\n}\n\n/**\n * @param {string} key\n * @param {Object} variables\n * @param {string} defaultMessage\n * @returns {string} html\n * @private\n */\nfunction getHTML(key, variables, defaultMessage) {\n var msg = get(key, variables, defaultMessage);\n if (msg) {\n var el = /*#__PURE__*/_react.default.createElement('span', {\n dangerouslySetInnerHTML: {\n __html: msg\n }\n });\n // when key exists, it should still return element if there's defaultMessage() after getHTML()\n var defaultMsg = function defaultMsg() {\n return el;\n };\n return _objectSpread({\n defaultMessage: defaultMsg,\n d: defaultMsg\n }, el);\n }\n return '';\n}\n\n/**\n *\n * @param {string} currentLocale\n * @param {string} currentLanguage\n * @private\n */\nfunction defineIntlRelativeFormat(currentLocale, currentLanguage) {\n if (window.ReactIntlLocaleData && window.ReactIntlLocaleData[currentLanguage] && Object.keys(window.ReactIntlLocaleData[currentLanguage]).length > 0) {\n window.ReactIntlLocaleData[currentLanguage].forEach(function (localeData) {\n _intlRelativeformat.default.__addLocaleData(localeData);\n });\n }\n intlRelativeFormat = new _intlRelativeformat.default(currentLocale, _objectSpread({}, _formats.default.relativeTime || {}));\n}\n\n// =================== Public API\n\n/**\n * Definition function used by our babel-plugin to extract messages during development.\n * For the description, Type must have one of the following values `Button | Link | Label | Header | Paragraph`. Vis, for visibility, must be one of `low | med | high`.\n *\n * More in the {@link https://code.corp.surveymonkey.com/pages/webplatform/smweb/#/pages/webs/localization?id=definemessages|WebPlatform docs}\n *\n * @param {Object} v Key/Descriptor objects where Descriptor.id, Descriptor.defaultMessage and Descriptor.description are present.\n * @returns {Object} message definition\n *\n */\nfunction defineMessages(v) {\n return v;\n}\n\n/**\n * Translates a message matching a specific Descriptor object.\n * Ref: https://code.corp.surveymonkey.com/pages/webplatform/smweb/#/pages/webs/localization\n *\n * @param {Desc} desc Descriptor object for the current message to translate. ({id: String!, defaultMessage: String!, description: String})\n * @param {Object} values (Optional) - key/values for substitution based on the ICU message format.\n * @param {Object} opts (Optional)\n * @param {Object} opts.html (Optional/Defaults to `false`) - Whether or not to allow for HTML nodes in the message before substitution.\n * @returns {string|React.ReactElement} HTML string or key value\n */\nfunction t(desc, values) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var id = desc.id,\n defaultMessage = desc.defaultMessage;\n var html = opts.html;\n return (html ? getHTML : get)(id, values, defaultMessage); // force return type\n}\n\n/** Props for `T` React component */\n\n/**\n * (React Component) Translates a message matching a specific Descriptor object.\n * Ref: https://code.corp.surveymonkey.com/pages/webplatform/smweb/#/pages/webs/localization\n */\nvar T = function T(props) {\n var desc = props.desc,\n values = props.values,\n id = props.id,\n defaultMessage = props.defaultMessage,\n html = props.html;\n return (html ? getHTML : get)(desc ? desc.id : id, values, desc ? desc.defaultMessage : defaultMessage);\n};\nexports.T = T;\nT.propTypes = {\n desc: _propTypes.default.shape({\n id: _propTypes.default.string.isRequired,\n defaultMessage: _propTypes.default.string.isRequired,\n description: _propTypes.default.string\n }),\n id: _propTypes.default.string,\n // PropTypes.node does not include `true`\n // (see https://github.com/facebook/prop-types/issues/199)\n // elementType is needed for react-based-tokenization - so we can pass in the element to substitute\n values: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.bool, _propTypes.default.elementType])),\n defaultMessage: _propTypes.default.string,\n html: _propTypes.default.bool\n};\nT.defaultProps = {\n desc: undefined,\n id: undefined,\n values: undefined,\n defaultMessage: undefined,\n html: false\n};\n\n/**\n * Initialize the localization framework with the passed messages and set of currentLocale/currentLanguage. Can be called more than once.\n * @param {Object} messages Key/Values where keys are string IDs and values are the translated message for such ID.\n * @param {Options} [opts={}] Options for Intl\n * @returns {void}\n */\nfunction initIntl( /** Key/Values where keys are string IDs and values are the translated message for such ID */\nmessages) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n !opts.currentLocale ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'opts.currentLocale is required') : (0, _invariant.default)(false) : void 0;\n !opts.currentLanguage ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'opts.currentLanguage is required') : (0, _invariant.default)(false) : void 0;\n !messages ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'messages is required') : (0, _invariant.default)(false) : void 0;\n var options = getOptionsObject();\n options.currentLocale = opts.currentLocale;\n options.currentLanguage = opts.currentLanguage;\n options.warningHandler = opts.warningHandler || options.warningHandler;\n var messageStore = getStore();\n var langInited = !!messageStore[options.currentLocale];\n (0, _lodash.default)(messageStore, _defineProperty({}, options.currentLocale, messages));\n options.formats = _objectSpread(_objectSpread(_objectSpread({}, options.formats), opts.formats), _formats.default);\n if (langInited) {\n return;\n }\n if (isBrowser) {\n defineIntlRelativeFormat(options.currentLocale, options.currentLanguage);\n } else {\n // For Node.js, common locales are added in the application\n intlRelativeFormat = new _intlRelativeformat.default(options.currentLocale, _objectSpread({}, _formats.default.relativeTime || {}));\n }\n}\n\n/**\n * Clears the object where we store messages. Useful for testing\n * @returns {undefined}\n */\nfunction resetMessageStore() {\n var messageStore = getStore();\n Object.keys(messageStore).forEach(function (member) {\n return delete messageStore[member];\n });\n}\n\n/**\n * Retrieves a copy of the stored messages.\n * @returns {JSON} JSON Message Store\n */\nfunction getMessageStore() {\n return JSON.parse(JSON.stringify(getStore()));\n}\n/**\n * The FormattedDateTime component uses the Intl.DateTimeFormat API and as such, here are the supported props.\n * All optionals.\n *\n * type DateTimeFormatOptions = {\n * localeMatcher: 'best fit' | 'lookup' = 'best fit',\n * formatMatcher: 'basic' | 'best fit' = 'best fit',\n *\n * timeZone: string,\n * hour12 : boolean,\n *\n * weekday : 'narrow' | 'short' | 'long',\n * era : 'narrow' | 'short' | 'long',\n * year : 'numeric' | '2-digit',\n * month : 'numeric' | '2-digit' | 'narrow' | 'short' | 'long',\n * day : 'numeric' | '2-digit',\n * hour : 'numeric' | '2-digit',\n * minute : 'numeric' | '2-digit',\n * second : 'numeric' | '2-digit',\n * timeZoneName: 'short' | 'long',\n * };\n *\n * @param {Date} props Actual date to format.\n * @returns {string} formatted date\n */\nfunction FormattedDateTime(props) {\n var _options$currentLocal;\n var value = props.value,\n restProps = _objectWithoutProperties(props, _excluded);\n var options = getOptionsObject();\n return new Intl.DateTimeFormat((_options$currentLocal = options.currentLocale) !== null && _options$currentLocal !== void 0 ? _options$currentLocal : undefined, _objectSpread(_objectSpread({}, _formats.default.dateTime || {}), restProps)).format(value);\n}\n/**\n * The FormattedNumber component uses the Intl.NumberFormat API and as such, here are the supported props.\n * All optionals.\n *\n * type NumberFormatOptions = {\n * localeMatcher: 'best fit' | 'lookup' = 'best fit',\n *\n * style: 'decimal' | 'currency' | 'percent' = 'decimal',\n *\n * currency : string,\n * currencyDisplay: 'symbol' | 'code' | 'name' = 'symbol',\n *\n * useGrouping: boolean = true,\n *\n * minimumIntegerDigits : number = 1,\n * minimumFractionDigits : number,\n * maximumFractionDigits : number,\n * minimumSignificantDigits: number = 1,\n * maximumSignificantDigits: number,\n * };\n *\n * @param {number} props Actual number to format.\n * @returns {string} Formatted number\n */\nfunction FormattedNumber(props) {\n var _options$currentLocal2;\n var value = props.value,\n restProps = _objectWithoutProperties(props, _excluded2);\n var options = getOptionsObject();\n restProps.style = restProps.formatStyle;\n return new Intl.NumberFormat((_options$currentLocal2 = options.currentLocale) !== null && _options$currentLocal2 !== void 0 ? _options$currentLocal2 : undefined, _objectSpread(_objectSpread({}, _formats.default.number || {}), restProps)).format(value);\n}\n/**\n * The FormattedRelativeTime component uses the IntlRelativeTime API and as such, here are the supported props.\n * All optionals.\n *\n * type RelativeTimeFormatOptions = {\n * units: 'second' | 'second-short' | 'minute' | 'minute-short' | 'hour' | 'hour-short' | 'day' | 'day-short' | 'month' | 'month-short' | 'year' | 'year-short'\n * style: 'best fit' | 'numeric'\n * };\n *\n * @param {Object} props\n * @param {Date} props.value Actual date to format.\n * @param {Date} props.now (Optional) Fix the value of \"now\" to a certain date.\n * @returns {string} Formatted date\n */\nfunction FormattedRelativeTime(props) {\n var value = props.value,\n now = props.now;\n return intlRelativeFormat.format(value, {\n now: now\n });\n}\n\n/** Context is currently only used to prevent isRTL prop drilling */\nvar L10NContext = /*#__PURE__*/(0, _react.createContext)({\n isRTL: false\n});\nexports.L10NContext = L10NContext;\nvar RTLLanguageCodes = _languages.LANGUAGES.filter(function (l) {\n return l.isRTL;\n}).map(function (l) {\n return l.code;\n});\n/**\n * Configures the global localization context for the whole page.\n * @class\n */\nvar L10nProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(L10nProvider, _React$Component);\n var _super = _createSuper(L10nProvider);\n function L10nProvider(props) {\n var _this;\n _classCallCheck(this, L10nProvider);\n _this = _super.call(this, props);\n _this.state = {\n messages: null,\n isRTL: false\n };\n var currentLocale = props.localeCode;\n var currentLanguage = props.languageCode;\n\n // If the locale is english, we are not expecting any messages; hence, default to {}\n _this.state.messages = _this.getMessages();\n /**\n * `SSR/isNode` - Initialize Intl on the server with the provided messages (if any).\n * `messages ` - We already have the messages (SSR/CSR/en-US), initIntl right away.\n *\n * The above takes care of three scenarios -\n * 1. SSR - Everything is provided on the server; hence, no need to fetch messages.\n * 2. CSR + messages - Messages were fetched before this component; hence, no need to fetch messages.\n * 3. In the case of `en-US`, we really don't need messages.\n */\n var _getClientEnvironment2 = (0, _environment.getClientEnvironmentDetails)(),\n isNode = _getClientEnvironment2.isNode;\n if (isNode || _this.state.messages) {\n initIntl(_this.state.messages, {\n currentLocale: currentLocale,\n currentLanguage: currentLanguage\n });\n }\n if (RTLLanguageCodes.indexOf(currentLanguage) !== -1) {\n _this.state.isRTL = true;\n }\n return _this;\n }\n _createClass(L10nProvider, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Update text-direction\n if (prevProps.languageCode !== this.props.languageCode) {\n var isRTL = RTLLanguageCodes.indexOf(this.props.languageCode) !== -1;\n if (isRTL !== this.state.isRTL) {\n this.setState(function () {\n return {\n isRTL: isRTL\n };\n });\n }\n }\n\n // Update messages at runtime is not yet implemented\n }\n\n /** Picks the correct localized messages */\n }, {\n key: \"getMessages\",\n value: function getMessages() {\n return this.props.localeCode === 'en-US' ? {} : this.props.localeMessages || {};\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.state.messages) {\n return null;\n }\n return /*#__PURE__*/(\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n _react.default.createElement(L10NContext.Provider, {\n value: {\n isRTL: this.state.isRTL\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 907,\n columnNumber: 7\n }\n }, this.props.children)\n );\n }\n }]);\n return L10nProvider;\n}(_react.default.Component);\nexports.L10nProvider = L10nProvider;\nL10nProvider.propTypes = {\n children: _propTypes.default.node.isRequired,\n localeMessages: _propTypes.default.object,\n // eslint-disable-line\n localeCode: _propTypes.default.string,\n languageCode: _propTypes.default.string\n};\nL10nProvider.defaultProps = {\n localeCode: 'en-US',\n languageCode: 'en'\n};","var _jsxFileName = \"/repo/packages/ippm/src/utils/experimentContext.js\",\n _this = this;\nimport React, { useContext, createContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nvar ExperimentContext = /*#__PURE__*/createContext({\n experiments: {},\n config: {}\n});\n\n/*\n Experiments can come from consuming app or we can call for assignments from here.\n We want to avoid multiple calls to ExpSvc if possible so if the consuming app has\n context it can send it down. Otherwise we can configure experiments here if they\n are only needed within IPPM.\n TODO: provide example of calling experimentsvc directly\n*/\n// ExperimentsContext.propTypes = {\n// experiments: PropTypes.objectOf(PropTypes.string),\n// children: PropTypes.node,\n// };\n\n// if this is called from another component use ExperimentsProvider.config - it maps to this\nfunction getExperimentConfig(experiments) {\n return {\n // IG-1374\n IG1374_LIMIT_INDIVIDUAL_PLANS: experiments.ig_1374_limit_individual_plans_customization === 'ig_1374_limit_individual_plans_customization_treatment',\n // IG-1453\n IG1453_REMOVE_TEAM_PREMIER: experiments.ig_1453_remove_team_premier === 'ig_1453_remove_team_premier_treatment',\n // IG-2072\n IG2072_EDU_VISIBILITY: experiments.ig_2072_edu_visibility === 'ig_2072_edu_visibility_treatment',\n // GROW-1898\n GROW_1898_STARTER_ANNUAL_V2: experiments.grow_starter_annual_price_test === 'grow_starter_annual_price_test_treatment1' || experiments.grow_starter_annual_price_test === 'grow_starter_annual_price_test_treatment2',\n // IG-2101\n IG_2101_UPSELL_PAID_COLLECT: experiments.ig_2101_upsell_paid_collect === 'ig_2101_upsell_paid_collect_treatment',\n // IG-2151\n IG_2151_ADVANTAGE_HIDE_FOOTER: experiments.ig_2151_advantage_hide_footer === 'ig_2151_advantage_hide_footer_treatment',\n // Experiment for testing\n TEST_EXPERIMENT_FIXTURE: experiments.test_experiment_fixture === 'test_experiment_fixture_treatment'\n };\n}\nexport var ExperimentProvider = function ExperimentProvider(_ref) {\n var experiments = _ref.experiments,\n children = _ref.children;\n var contextValue = useMemo(function () {\n return {\n experiments: experiments,\n config: getExperimentConfig(experiments)\n };\n }, [experiments]);\n return /*#__PURE__*/React.createElement(ExperimentContext.Provider, {\n value: contextValue,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }\n }, children);\n};\nExperimentProvider.propTypes = {\n experiments: PropTypes.objectOf(PropTypes.string).isRequired,\n children: PropTypes.node.isRequired\n};\nexport function usePassedExperimentContext() {\n return useContext(ExperimentContext).experiments;\n}\nexport function useConfiguredExperimentContext() {\n return useContext(ExperimentContext).config;\n}","export var PLAN_TYPES = {\n INDIVIDUAL: 'INDIVIDUAL',\n TEAMS: 'TEAMS',\n AUDIENCE: 'AUDIENCE'\n};\nexport var PACKAGE_IDS = {\n STANDARD_MONTHLY: 31,\n STANDARD_ANNUAL: 32,\n ADVANTAGE: 34,\n PREMIER: 36,\n TEAMS_ADVANTAGE: 134,\n TEAMS_PREMIER: 136,\n ENTERPRISE: 26,\n ANALYZE: 37\n};\nexport var INDIVIDUAL_PLAN_IDS_WITH_MONTHLY = [PACKAGE_IDS.PREMIER, PACKAGE_IDS.ADVANTAGE, PACKAGE_IDS.STANDARD_MONTHLY];\nexport var INDIVIDUAL_PLAN_IDS_ANNUAL = [PACKAGE_IDS.PREMIER, PACKAGE_IDS.ADVANTAGE, PACKAGE_IDS.STANDARD_ANNUAL];\nexport var TEAMS_PLAN_IDS = [PACKAGE_IDS.ENTERPRISE, PACKAGE_IDS.TEAMS_ADVANTAGE, PACKAGE_IDS.TEAMS_PREMIER];\nexport var STARTER_ANNUAL_V2_INDIVIDUAL = [\n// GROW_1898_STARTER_ANNUAL_V2\nPACKAGE_IDS.PREMIER, PACKAGE_IDS.ADVANTAGE, PACKAGE_IDS.STANDARD_ANNUAL, PACKAGE_IDS.STANDARD_MONTHLY];","import { defineMessages } from '@sm/intl';\nvar IPPM_COPY = defineMessages({\n // In Product Pricing Component\n back_to_survey: {\n id: 'ippmString.backToSurvey',\n defaultMessage: 'Back to survey',\n description: '[Type: Label][Vis.: high] - This is the link back to the survey that closes IPPM.'\n },\n for_you: {\n id: 'ippmString.forYou',\n defaultMessage: 'FOR YOU',\n description: '[Type: Label][Vis.: high] - Highlights which plan is suggested for the user.'\n },\n responses_per_month: {\n id: 'ippmString.responsesPerMonth',\n defaultMessage: '*{overageCostHtml} per additional response. SurveyMonkey Audience responses sold separately.',\n description: '[Type: Paragraph][Vis.: low] - Footer message specifying the cost per additional overage response.'\n },\n display_pricing_represents: {\n id: 'ippmString.displayPricingRepresents',\n defaultMessage: '*Displayed pricing represents a 10% or more savings per user per month compared to individual Advantage and Premier plans.',\n description: '[Type: Paragraph][Vis.: low] - Footer message clarifying savings.'\n },\n add_on_features: {\n id: 'ippmString.addOnFeatures',\n defaultMessage: '**Add-on features available with Enterprise plan must be purchased separately.',\n description: '[Type: Paragraph][Vis.: low] - Footer message clarifying add-on features for Enterprise plans.'\n },\n individual_plans: {\n id: 'ippmString.individualPlans',\n defaultMessage: 'Individual plans',\n description: '[Type: Label][Vis.: high] - This is the label for the individual plans column.'\n },\n team_plans: {\n id: 'ippmString.teamPlans',\n defaultMessage: 'Team plans',\n description: '[Type: Label][Vis.: high] - This is the label for the team plans column.'\n },\n your_survey_includes: {\n id: 'ippmString.yourSurveyIncludes',\n defaultMessage: 'Your survey includes paid features',\n description: '[Type: Header][Vis.: high] - Message in the header about what triggered this modal.'\n },\n choose_a_plan: {\n id: 'ippmString.chooseAPlan',\n defaultMessage: 'Choose a plan to keep your added features. Or and remove paid features to send for free.',\n description: '[Type: Header][Vis.: high] - Instruction in the header for what to do next.'\n },\n do_more: {\n id: 'ippmString.doMore',\n defaultMessage: 'Do more with a paid plan',\n description: '[Type: Header][Vis.: high] - Modal header.'\n },\n get_our_best: {\n id: 'ippmString.getOurBest',\n defaultMessage: 'Get our best features and more responses.',\n description: '[Type: Header][Vis.: high] - Modal subheader.'\n },\n also_included_in: {\n id: 'ippmString.alsoIncludedIn',\n defaultMessage: 'Also included in {label}',\n description: '[Type: Label][Vis.: high] - Section label to indicate features that are included in paid plans.'\n },\n included_in: {\n id: 'ippmString.includedIn',\n defaultMessage: 'Included in {label}',\n description: '[Type: Label][Vis.: high] - Section label to indicate features that are included in paid plans.'\n },\n paid_features_in_your: {\n id: 'ippmString.paidFeaturesInYour',\n defaultMessage: 'Paid features in your survey',\n description: \"[Type: Label][Vis.: high] - Section label to indicate paid features that are in the user's survey.\"\n },\n select_plan: {\n id: 'ippmString.selectPlan',\n defaultMessage: 'SELECT',\n description: '[Type: Button][Vis.: high] - Button to select a plan.'\n },\n contact_us: {\n id: 'ippmString.contactUs',\n defaultMessage: 'CONTACT US',\n description: '[Type: Button][Vis.: high] - Button to select enterprise, which requires contacting sales.'\n },\n edu_discount: {\n id: 'ippmString.eduDiscount',\n defaultMessage: 'We offer discounted pricing for students and educators. See pricing',\n description: '[Type: Header][Vis.: high] - Subheader that is shown to users who are potentially eligible for the educational discount.'\n },\n // headers\n watermark_header: {\n id: 'ippmString.watermarkHeader',\n defaultMessage: 'Remove watermark',\n description: '[Type: Header][Vis.: high] - Header variation for when we are highlighting the watermark feature.'\n },\n watermark_subheader: {\n id: 'ippmString.watermarkSubheader',\n defaultMessage: 'Choose a plan to remove watermark, share, export your results and so much more',\n description: '[Type: Header][Vis.: high] - Subheader variation for when we are highlighting the watermark feature.'\n },\n share_export_header: {\n id: 'ippmString.shareExportHeader',\n defaultMessage: 'Share & export results',\n description: '[Type: Header][Vis.: high] - Header variation for when we are highlighting the share export feature.'\n },\n share_export_subheader: {\n id: 'ippmString.shareExportSubheader',\n defaultMessage: 'Choose a plan to remove watermark, share, export your results and so much more',\n description: '[Type: Header][Vis.: high] - Subheader variation for when we are highlighting the share export feature.'\n },\n dashboard_header: {\n id: 'ippmString.dashboardHeader',\n defaultMessage: 'Publish dashboard',\n description: '[Type: Header][Vis.: high] - Header variation for when we are highlighting the dashboard feature.'\n },\n dashboard_subheader: {\n id: 'ippmString.dashboardSubheader',\n defaultMessage: 'Choose a plan to publish your dashboard, remove watermark and more',\n description: '[Type: Header][Vis.: high] - Subheader variation for when we are highlighting the dashboard feature.'\n },\n // Experiment Strings\n // Headline Component\n ig_1677_header: {\n id: 'ippmString.ig1677Header',\n defaultMessage: 'Unlock more responses',\n description: '[Type: Header][Vis.: high] - Header variation for IG-1677 experiment.'\n },\n ig_1677_sub_header: {\n id: 'ippmString.ig1677Subheader',\n defaultMessage: 'Choose a plan that fits your response needs—a per survey limit, or a monthly account limit.',\n description: '[Type: Header][Vis.: high] - Subheader variation for IG-1677 experiment.'\n },\n ig_1677_standard_monthly_name: {\n id: 'ippmString.ig1677StandardMonthlyName',\n defaultMessage: 'STANDARD MONTHLY 500',\n description: '[Type: Label][Vis.: high] - Plan label for Standard Monthly in IG-1677 experiment.'\n },\n ig_1677_your_current_plan: {\n id: 'ippmString.ig1677YourCurrentPlan',\n defaultMessage: 'YOUR CURRENT PLAN',\n description: '[Type: Label][Vis.: high] - Plan label for current plan in IG-1677 experiment.'\n },\n ig_2066_communicate_response_limits_header: {\n id: 'ippmString.ig2066CommunicateResponseLimitsHeader',\n defaultMessage: 'Get our best features and more responses',\n description: '[Type: Header][Vis.: high] - Header variation for IG-2066 experiment.'\n },\n ig_2066_communicate_response_limits_sub_header: {\n id: 'ippmString.ig2066CommunicateResponseLimitsSubheader',\n defaultMessage: 'Or to send for free, and remove paid features',\n description: '[Type: Header][Vis.: high] - Subheader variation for IG-2066 experiment.'\n },\n ig_2066_communicate_response_limits_warning_b: {\n id: 'ippmString.ig2066CommunicateResponseLimitsWarningB',\n defaultMessage: 'Your Basic plan only allows 40 responses per survey',\n description: '[Type: Header][Vis.: high] - Warning shown at the bottom of the header for IG-2066 experiment.'\n },\n ig_2066_communicate_response_limits_warning_c: {\n id: 'ippmString.ig2066CommunicateResponseLimitsWarningC',\n defaultMessage: 'BASIC plan only has 40 responses per survey',\n description: '[Type: Header][Vis.: high] - Warning shown at the bottom of the header for IG-2066 experiment.'\n },\n all_advantage_features_plus: {\n id: 'ippmString.allAdvantageFeaturesPlus',\n defaultMessage: 'All Advantage features plus:',\n description: '[Type: Paragraph][Vis.: high] - Sentence preceding a list of additional features'\n },\n all_standard_features_plus: {\n id: 'ippmString.allStandardFeaturesPlus',\n defaultMessage: 'All Standard features plus:',\n description: '[Type: Paragraph][Vis.: high] - Sentence preceding a list of additional features'\n },\n all_premier_features_plus: {\n id: 'ippmString.allPremierFeaturesPlus',\n defaultMessage: 'All Premier features plus:',\n description: '[Type: Paragraph][Vis.: high] - Sentence preceding a list of additional features'\n },\n ippm_default_popular_plans_popular_plans: {\n id: 'ippmString.IppmDefaultPopularPlansPopularPlans',\n defaultMessage: 'Most popular',\n description: '[Type: label][Vis.: high] - label to highlite the most popular plan'\n },\n ippm_default_popular_plans_additional_plans: {\n id: 'ippmString.IppmDefaultPopularPlansAdditionalPlans',\n defaultMessage: 'Additional plans',\n description: '[Type: label][Vis.: high] - label to highlite additional plan'\n },\n audience_header: {\n id: 'ippmString.audienceHeader',\n defaultMessage: 'NEED PEOPLE TO TAKE YOUR SURVEY?',\n description: '[Type: Header][Vis.: high] - question to user'\n },\n responses_header: {\n id: 'ippmString.responsesHeader',\n defaultMessage: 'Responses',\n description: '[Type: Header][Vis.: high] - section header, followed by a line item highlighting the number of responses in a particular plan'\n }\n});\nexport default IPPM_COPY;","var _jsxFileName = \"/repo/packages/ippm/src/utils/appContext.js\",\n _this = this;\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nimport React, { useContext, createContext, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@sm/intl';\nimport { PLAN_TYPES } from '../constants/plans';\nimport IPPM_COPY from '../constants/ippmString';\nvar AppContext = /*#__PURE__*/createContext();\n\n// AppContext.propTypes = {\n// appData: PropTypes.shape().isRequired,\n// children: PropTypes.node,\n// };\n\nvar getDisplayedPlanType = function getDisplayedPlanType(addedPaidFeatures) {\n if (addedPaidFeatures && addedPaidFeatures.includes('wall_share_surveys')) {\n return PLAN_TYPES.TEAMS;\n }\n return PLAN_TYPES.INDIVIDUAL;\n};\nvar AppContextProvider = function AppContextProvider(_ref) {\n var appData = _ref.appData,\n strings = _ref.strings,\n children = _ref.children;\n var featureSetId = appData.featureSetId,\n addedPaidFeatures = appData.addedPaidFeatures;\n /*\n For legacy pythonwebs we want to maintain the ability to send strings as\n props into IppmApp for other Apps we will use @sm/intl for translations.\n */\n var getLocalString = function getLocalString(string) {\n return t(IPPM_COPY[string]);\n };\n\n /*\n Passed strings could either be formatted as\n {\n 'string_name': 'string'\n }\n or\n {\n 'string_name': {\n 'id': 'string_id',\n 'defaultMessage': 'string',\n 'description': 'string_description'\n }\n }\n */\n var getPassedString = function getPassedString(string) {\n return typeof strings[string] === 'object' ? strings[string].defaultMessage : strings[string];\n };\n var localStrings = Object.keys(strings).length === 0;\n var getString = localStrings ? getLocalString : getPassedString;\n var _useState = useState(getDisplayedPlanType(addedPaidFeatures, getString)),\n _useState2 = _slicedToArray(_useState, 2),\n displayedPlanType = _useState2[0],\n setDisplayedPlanType = _useState2[1];\n var appContextValue = useMemo(function () {\n var featureFlags = {\n isOnRbpFeatureSet: featureSetId === 67 || featureSetId === 68,\n standardMonthly500: featureSetId === 68,\n standardMonthly100: featureSetId === 67\n };\n var toggleDisplayedPlanType = function toggleDisplayedPlanType() {\n var newDisplayedPlanType = displayedPlanType === PLAN_TYPES.INDIVIDUAL ? PLAN_TYPES.TEAMS : PLAN_TYPES.INDIVIDUAL;\n setDisplayedPlanType(newDisplayedPlanType);\n };\n\n // mocked paidFeatureString in case its needed\n // paidFeatureString = paidFeaturesString;\n return _objectSpread(_objectSpread({}, appData), {}, {\n displayedPlanType: displayedPlanType,\n toggleDisplayedPlanType: toggleDisplayedPlanType,\n getString: getString,\n featureFlags: featureFlags\n });\n }, [appData, displayedPlanType, setDisplayedPlanType, getString, featureSetId]);\n return /*#__PURE__*/React.createElement(AppContext.Provider, {\n value: appContextValue,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 5\n }\n }, children);\n};\nAppContextProvider.defaultProps = {\n strings: {}\n};\nAppContextProvider.propTypes = {\n appData: PropTypes.shape().isRequired,\n strings: PropTypes.shape(),\n children: PropTypes.node.isRequired\n};\nexport function useAppContext() {\n return useContext(AppContext);\n}\nexport default AppContextProvider;","var logEvent = function logEvent(eventName) {\n // TODO: fire events to AMP ?\n return eventName;\n};\nexport function logIPPMInteraction(name) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n logEvent(\"IPPM Interaction Event: \".concat(name), target, value);\n}\nexport function trackPackageSelected(packageData, isRecommended) {\n logEvent(\"trackPackageSelected Event:\", packageData.id, isRecommended);\n\n // SM?.ProductAnalytics?.trackInteraction('pricing selected plan', {\n // pageName: getPageName(),\n // paidFeatures: getPaidFeatures(),\n // selectedPackageId: packageData.id.toString(),\n // selectedPackageName: packageData.class_name,\n // isRecommended,\n // });\n}","var _jsxFileName = \"/repo/packages/ippm/src/components/BackToSurvey/index.js\",\n _this = this;\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconArrowLeft } from '@sm/wds-icons';\nimport { Button } from '@sm/wds-react';\nimport { logIPPMInteraction } from '../../utils/logger';\nimport { useAppContext } from '../../utils/appContext';\nimport './BackToSurvey.scss';\nvar BackToSurvey = function BackToSurvey(_ref) {\n var onBackToSurveyClick = _ref.onBackToSurveyClick;\n var appContext = useAppContext();\n return /*#__PURE__*/React.createElement(Button, {\n variant: \"text\",\n color: \"link\",\n onClick: function onClick() {\n logIPPMInteraction('popup_close', 'back_to_survey_cta');\n onBackToSurveyClick();\n },\n className: \"wds-p-0 bts-button\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 5\n }\n }, /*#__PURE__*/React.createElement(IconArrowLeft, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"wds-m-l-1 link-text\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }\n }, appContext.getString('back_to_survey')));\n};\nBackToSurvey.propTypes = {\n onBackToSurveyClick: PropTypes.func.isRequired\n};\nexport default BackToSurvey;","var _jsxFileName = \"/repo/packages/ippm/src/components/experiment/IG2072EduVisibility/EduVisibilityBanner.js\",\n _this = this;\nimport React from 'react';\nvar EduVisibilityBanner = function EduVisibilityBanner() {\n return /*#__PURE__*/React.createElement(\"p\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 4,\n columnNumber: 10\n }\n }, \"edu visibility banner\");\n};\nexport default EduVisibilityBanner;","var _jsxFileName = \"/repo/packages/ippm/src/components/Headline/index.js\",\n _this = this;\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography, Switch, Grid, Row } from '@sm/wds-react';\nimport { sanitizeString } from '@sm/utils';\nimport { PLAN_TYPES } from '../../constants/plans';\nimport { useConfiguredExperimentContext } from '../../utils/experimentContext';\nimport { useAppContext } from '../../utils/appContext';\nimport { logIPPMInteraction } from '../../utils/logger';\nimport EduVisibilityBanner from '../experiment/IG2072EduVisibility/EduVisibilityBanner';\nimport './Headline.scss';\nvar Headline = function Headline(_ref) {\n var onBackToSurveyClick = _ref.onBackToSurveyClick;\n var experimentsConfig = useConfiguredExperimentContext();\n var appContext = useAppContext();\n var getString = appContext.getString,\n toggleDisplayedPlanType = appContext.toggleDisplayedPlanType,\n displayedPlanType = appContext.displayedPlanType;\n var ACTIVE_COLOR = 'dark';\n var INACTIVE_COLOR = 'light-muted';\n var clickBackToSurvey = function clickBackToSurvey(evt) {\n if (evt.target.id === 'return-to-survey') {\n logIPPMInteraction('popup_close', 'return_to_survey_link');\n onBackToSurveyClick();\n }\n };\n var renderSwitch = function renderSwitch() {\n var leftPlanColor = displayedPlanType === PLAN_TYPES.INDIVIDUAL ? ACTIVE_COLOR : INACTIVE_COLOR;\n var rightPlanColor = displayedPlanType === PLAN_TYPES.TEAMS ? ACTIVE_COLOR : INACTIVE_COLOR;\n return /*#__PURE__*/React.createElement(Grid, {\n className: \"wds-m-t-6 wds-m-b-4 header-switch-container\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(Row, {\n className: \"margin-auto grid-row-ie11\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(Typography, {\n component: \"b\",\n color: leftPlanColor,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }\n }, getString('individual_plans')), /*#__PURE__*/React.createElement(\"span\", {\n className: \"plan-switch-col wds-m-l-4 wds-m-r-4\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(Switch, {\n onChange: toggleDisplayedPlanType,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }\n })), /*#__PURE__*/React.createElement(Typography, {\n component: \"b\",\n color: rightPlanColor,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }\n }, getString('team_plans'))));\n };\n var renderHeader = function renderHeader() {\n var _appContext$addedPaid;\n if ((_appContext$addedPaid = appContext.addedPaidFeatures) !== null && _appContext$addedPaid !== void 0 && _appContext$addedPaid.length) {\n return getString('your_survey_includes');\n }\n return getString('do_more');\n };\n var renderSubHeader = function renderSubHeader() {\n var _appContext$addedPaid2;\n if ((_appContext$addedPaid2 = appContext.addedPaidFeatures) !== null && _appContext$addedPaid2 !== void 0 && _appContext$addedPaid2.length) {\n return getString('choose_a_plan');\n }\n return getString('get_our_best');\n };\n return /*#__PURE__*/React.createElement(Grid, {\n className: \"wds-m-t-1\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 5\n }\n }, /*#__PURE__*/React.createElement(Row, {\n className: \"width-fixed margin-auto\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(\"header\", {\n className: \"wds-type--center width-fixed margin-auto\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(Typography, {\n component: \"h2\",\n className: \"font-size-30 font-weight-medium\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }\n }, renderHeader()), /*#__PURE__*/React.createElement(Typography, {\n onClick: clickBackToSurvey,\n component: \"h3\",\n className: \"font-weight-light subheader\",\n variant: \"cardTitle\",\n dangerouslySetInnerHTML: {\n __html: sanitizeString(renderSubHeader())\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 11\n }\n }), appContext.eduDiscountAvailable && !experimentsConfig.IG2072_EDU_VISIBILITY && /*#__PURE__*/React.createElement(Typography, {\n component: \"h3\",\n className: \"font-weight-light wds-p-t-2\",\n variant: \"cardTitle\",\n dangerouslySetInnerHTML: {\n __html: sanitizeString(getString('edu_discount'))\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 15\n }\n })), renderSwitch(), appContext.eduDiscountAvailable && experimentsConfig.IG2072_EDU_VISIBILITY && appContext.displayedPlanType === 'INDIVIDUAL' && /*#__PURE__*/React.createElement(EduVisibilityBanner, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 13\n }\n })));\n};\nHeadline.propTypes = {\n onBackToSurveyClick: PropTypes.func.isRequired\n};\nexport default Headline;","export var featuresMap = {\n create_question_limit: {\n label: '{limit} questions'\n },\n analyze_response_limit: {\n label: '{limit} responses'\n },\n num_free_responses: {\n label: '{limit} responses'\n },\n create_logo_enabled: {\n label: 'Add your logo'\n },\n create_skip_logic_enabled: {\n label: 'Skip logic'\n },\n analyze_export_enabled: {\n label: 'Export data (CSV, PDF, PPT, XLS)'\n },\n create_randomization_enabled: {\n label: 'Randomize questions and pages'\n },\n analyze_can_ta_search: {\n label: 'View text analysis'\n },\n show_sig_diffs_enabled: {\n label: 'Measure statistical significance'\n },\n analyze_export_spss_enabled: {\n label: 'Export to SPSS'\n },\n create_toggle_footer_enabled: {\n label: 'Hide SurveyMonkey footer'\n },\n phone_support: {\n label: 'Phone support'\n },\n create_piping_enabled: {\n label: 'Pipe questions and answers'\n },\n collaboration: {\n label: 'Share surveys with collaborators'\n },\n extract_data: {\n label: 'Export results'\n },\n extended_piping: {\n label: 'Advanced branching and piping'\n },\n single_sign_on: {\n label: 'Single sign-on (SSO)'\n },\n view_respondent_ip_address: {\n label: 'See response IP addresses'\n },\n admin_dashboard: {\n label: 'Admin dashboard'\n },\n custom_charts: {\n label: 'Create custom charts'\n },\n api_access: {\n label: 'Direct API access'\n },\n collector_friendly_url_enabled: {\n label: 'Custom survey links'\n },\n funneling_enabled: {\n label: 'Carry forward responses'\n },\n custom_templates: {\n label: 'Survey templates'\n },\n create_random_assignment_enabled: {\n label: 'A/B test text and images'\n },\n matrix_question_type: {\n label: 'Matrix/Rating Scale questions'\n },\n analyze_trends_enabled: {\n label: 'See data trends over time'\n },\n enable_ip_blocking: {\n label: 'Block IP addresses'\n },\n analyze_shared_results_enabled: {\n label: 'Share your results'\n },\n record_respondent_email_address: {\n label: 'Track email responses'\n },\n shared_group_library: {\n label: 'Upload brand assets'\n },\n collector_white_label_enabled: {\n label: 'White label collectors'\n },\n menu_matrix_enabled: {\n label: 'Matrix of dropdown menus'\n },\n analyze_can_export_hide_branding: {\n label: 'White label exports'\n },\n create_print_enabled: {\n label: 'Print your survey'\n },\n analyze_password_enabled: {\n label: 'Password-protect shared results'\n },\n create_quotas_enabled: {\n label: 'Response quotas'\n },\n randomize_answer_choices: {\n label: 'Randomize answer choices'\n },\n set_survey_end_date: {\n label: 'Set survey end date'\n },\n analyze_can_ta_tag: {\n label: 'Categorize text responses'\n },\n download_as_csv_xls_pdf: {\n label: 'Export results'\n },\n download_as_ppt: {\n label: 'Export to PowerPoint'\n },\n benchmarks: {\n label: 'Compare with Benchmarks'\n },\n question_library: {\n label: 'Question Bank'\n },\n customize_disqualification_page_enabled: {\n label: 'Disqualify respondents'\n },\n analyze_response_delete_limit: {\n label: 'Delete {limit} responses'\n },\n advanced_logic: {\n label: 'Advanced branching and piping'\n },\n create_custom_html_email_message_enabled: {\n label: 'Custom HTML email invitations'\n },\n analyze_can_export_ta: {\n label: 'Categorize text responses'\n },\n real_time_results: {\n label: 'See results in real time'\n },\n collector_max_responses_delete_count: {\n label: 'Delete {limit} responses'\n },\n '508_accessibility': {\n label: 'Create 508-compliant surveys'\n },\n file_upload: {\n label: 'Let survey takers upload files'\n },\n disable_closed_page_branding_enabled: {\n label: 'Remove SurveyMonkey branding'\n },\n all_languages_supported: {\n label: 'Build multilingual surveys'\n },\n email_tracking_enabled: {\n label: 'Track email invitations'\n },\n shared_library: {\n label: 'Use assets from team Library'\n },\n create_custom_variables_enabled: {\n label: 'Custom variables'\n },\n hide_export_branding_enabled: {\n label: 'White label exports'\n },\n asset_library: {\n label: 'Use assets from team Library'\n },\n priority_email_support: {\n label: 'Priority email support'\n },\n survey_templates_intl: {\n label: 'International survey templates'\n },\n analyze_rule_limit: {\n label: '{limit} filters per survey'\n },\n create_custom_theme_enabled: {\n label: 'Premium themes'\n },\n collector_create_limit: {\n label: '{limit} collectors per survey'\n },\n analyze_delete_respondent_limit: {\n label: 'Delete {limit} respondents'\n },\n pop_up_collector: {\n label: 'Pop up collector'\n },\n mobile_sdk_pull_response_data_enabled: {\n label: 'Mobile SDK'\n },\n analyze_can_share_customize_branding: {\n label: 'Customize shared results'\n },\n track_email_responses: {\n label: 'Track email responses'\n },\n webhooks_read: {\n label: 'Webhooks'\n },\n team_themes: {\n label: 'Share company themes'\n },\n analyze_ta_enabled: {\n label: 'View text analysis'\n },\n multiple_block_rotation_enabled: {\n label: 'Block randomization'\n },\n analyze_access_benchmarking: {\n label: 'Compare with Benchmarks'\n },\n carry_forward: {\n label: 'Carry forward responses'\n },\n disable_footer_branding_enabled: {\n label: 'Hide SurveyMonkey branding'\n },\n maximum_daily_messages: {\n label: '{limit} daily message limit'\n },\n create_templates_enabled: {\n label: 'Custom templates'\n },\n multilingual: {\n label: 'Build multilingual surveys'\n },\n webhooks_write: {\n label: 'Webhooks'\n },\n collector_recipients_limit: {\n label: '{limit} recipients'\n },\n collector_thank_you_enabled: {\n label: 'Custom thank you page'\n },\n email_support: {\n label: 'Email support'\n },\n teams_enabled: {\n label: 'Collaborate with teams'\n },\n collect_email_throttle_limit: {\n label: '{limit} email limit'\n },\n multiple_users: {\n label: 'Multiple users'\n },\n statistical_significance: {\n label: 'Measure statistical significance'\n },\n validate_answer: {\n label: 'Validate answers'\n },\n add_users: {\n label: 'Add users'\n },\n ssl_tls_encryption: {\n label: 'SSL/TLS Encryption'\n },\n filter_crosstab: {\n label: 'Filter and compare responses'\n },\n collector_email_limit: {\n label: '{limit} emails'\n },\n quizzes_pro: {\n label: 'Quizzes with custom feedback'\n },\n password_protection: {\n label: 'Password-protect surveys'\n },\n collector_contact_list_limit: {\n label: '{limit} contacts'\n },\n disable_email_message_branding_enabled: {\n label: 'Hide SurveyMonkey logo in emails'\n },\n collector_completion_url_enabled: {\n label: 'Redirect respondents to another site'\n },\n a_b_testing: {\n label: 'A/B test text and images'\n },\n recurring_surveys: {\n label: 'Send recurring surveys'\n },\n user_management: {\n label: 'User management'\n },\n analyze_can_customize_charts: {\n label: 'Custom charts'\n },\n question_library_intl: {\n label: 'Question library'\n },\n rating_question_type: {\n label: 'Rating question'\n },\n collect_min_daily_messages_limit: {\n label: '{limit} daily messages'\n },\n analyze_can_save_views: {\n label: 'Save filters and views'\n },\n group_templates: {\n label: 'Group templates'\n },\n video_question_type: {\n label: 'Video question'\n },\n team_ownership: {\n label: 'Team ownership'\n },\n consolidated_billing: {\n label: 'Consolidated billing'\n },\n analyze_can_share_customize_domain: {\n label: 'Custom results domain'\n },\n data_ownership: {\n label: 'Data ownership'\n },\n max_collectors_per_survey: {\n label: '{limit} collectors per survey'\n },\n hipaa_enabled: {\n label: 'HIPAA'\n },\n group_contacts_limit: {\n label: '{limit} group contacts'\n },\n payment_qt: {\n label: 'Accept payments'\n },\n click_map_qt: {\n label: 'Click map data visualization'\n },\n create_grayscale_footer: {\n label: 'Subtle SurveyMonkey footer'\n },\n premium_themes: {\n label: 'Premium themes'\n },\n create_custom_chatbot_avatar: {\n label: 'Add your custom avatar'\n },\n comment_box_question_type: {\n label: 'Comment box question'\n },\n collect_contact_information: {\n label: 'Contact information'\n },\n ranking_question_type: {\n label: 'Ranking question'\n },\n star_rating_question_type: {\n label: 'Rating question'\n },\n slider_question_type: {\n label: 'Slider question'\n },\n textbox_multiple_question_type: {\n label: 'Multiple textboxes'\n },\n bulk_survey_share: {\n label: 'Share surveys with team'\n },\n publish_dashboard: {\n label: 'Publish dashboard'\n },\n remove_watermark: {\n label: 'Remove watermark'\n },\n share_and_export: {\n label: 'Share & export results'\n },\n best_worst_qt: {\n label: 'Best worst scale'\n }\n};\nexport var sortedTBYBFeaturesMap = [{\n wall_random_assignment: 'create_random_assignment_enabled'\n}, {\n wall_block_randomization: 'multiple_block_rotation_enabled'\n}, {\n wall_funneling: 'funneling_enabled'\n}, {\n wall_logo: 'create_logo_enabled'\n}, {\n wall_footer: 'create_toggle_footer_enabled'\n}, {\n wall_pageskiplogic: 'create_skip_logic_enabled'\n}, {\n wall_page_randomization: 'create_randomization_enabled'\n}, {\n wall_question_randomization: 'create_randomization_enabled'\n}, {\n wall_quotas: 'create_quotas_enabled'\n}, {\n wall_custom_variables: 'create_custom_variables_enabled'\n}, {\n wall_themes: 'create_custom_theme_enabled'\n}, {\n wall_questionskip_logic: 'create_skip_logic_enabled'\n}, {\n wall_piping: 'create_piping_enabled'\n}, {\n wall_question_matrix: 'matrix_question_type'\n}, {\n wall_question_menu_matrix: 'menu_matrix_enabled'\n}, {\n wall_maxquestions: 'create_question_limit'\n}, {\n wall_question_file_upload: 'file_upload'\n}, {\n wall_multilingual: 'multilingual'\n}, {\n wall_quizzes_pro: 'quizzes_pro'\n}, {\n wall_question_payment: 'payment_qt'\n}, {\n wall_question_click_map: 'click_map_qt'\n}, {\n wall_footer_grayscale: 'create_grayscale_footer'\n}, {\n wall_premium_themes: 'create_custom_theme_enabled'\n}, {\n wall_custom_avatar: 'create_custom_chatbot_avatar'\n}, {\n wall_comment_box: 'comment_box_question_type'\n}, {\n wall_contact_info: 'collect_contact_information'\n}, {\n wall_multiple_textboxes: 'textbox_multiple_question_type'\n}, {\n wall_ranking: 'ranking_question_type'\n}, {\n wall_slider: 'slider_question_type'\n}, {\n wall_star_rating_scale: 'star_rating_question_type'\n}, {\n wall_share_surveys: 'bulk_survey_share'\n}, {\n wall_question_best_worst: 'best_worst_qt'\n}];","function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nimport { PACKAGE_IDS, INDIVIDUAL_PLAN_IDS_WITH_MONTHLY, TEAMS_PLAN_IDS, PLAN_TYPES } from '../constants/plans';\nimport { sortedTBYBFeaturesMap } from '../constants/featuresMap';\nvar RecommendedPackagesStrategy = /*#__PURE__*/function () {\n function RecommendedPackagesStrategy(_ref) {\n var packages = _ref.packages,\n addedPaidFeatures = _ref.addedPaidFeatures;\n _classCallCheck(this, RecommendedPackagesStrategy);\n this.packages = packages;\n this.addedPaidFeatures = addedPaidFeatures;\n this.recommendedPackageIds = [];\n this.tbybFeatureMap = {};\n this._loadTBYBFeatureMap();\n this._loadRecommendations();\n }\n _createClass(RecommendedPackagesStrategy, [{\n key: \"_loadTBYBFeatureMap\",\n value: function _loadTBYBFeatureMap() {\n var _this = this;\n sortedTBYBFeaturesMap.forEach(function (s) {\n // example of s: {wall_logo: create_logo_enabled}\n var tbybKey = Object.keys(s)[0];\n // example: wall_logo -> create_logo_enabled\n _this.tbybFeatureMap[tbybKey] = s[tbybKey];\n });\n }\n }, {\n key: \"_loadRecommendations\",\n value: function _loadRecommendations() {\n throw new Error('Implementation Required');\n }\n }, {\n key: \"isRecommended\",\n value: function isRecommended(packageId) {\n return this.recommendedPackageIds.includes(packageId);\n }\n }]);\n return RecommendedPackagesStrategy;\n}();\nvar IndividualRecommendedPackagesStrategy = /*#__PURE__*/function (_RecommendedPackagesS) {\n _inherits(IndividualRecommendedPackagesStrategy, _RecommendedPackagesS);\n var _super = _createSuper(IndividualRecommendedPackagesStrategy);\n function IndividualRecommendedPackagesStrategy() {\n _classCallCheck(this, IndividualRecommendedPackagesStrategy);\n return _super.apply(this, arguments);\n }\n _createClass(IndividualRecommendedPackagesStrategy, [{\n key: \"_loadRecommendations\",\n value:\n // Find the cheapest package that includes all added paid features.\n function _loadRecommendations() {\n var _this2 = this;\n if (!this.addedPaidFeatures || this.addedPaidFeatures.length === 0) {\n // fall back to advantage package if there is no added paid feature.\n this.recommendedPackageIds.push(PACKAGE_IDS.ADVANTAGE);\n return;\n }\n var minCost = Number.MAX_SAFE_INTEGER;\n var minCostPackageId = 0;\n var candidatePackageIds = INDIVIDUAL_PLAN_IDS_WITH_MONTHLY;\n var packages = this.packages.filter(function (p) {\n return candidatePackageIds.indexOf(p.id) > -1;\n });\n packages.forEach(function (p) {\n var addedPaidFeatureNotIncluded = _this2.addedPaidFeatures.find(function (apf) {\n // example of apf: wall_logo\n var featureLookup = _this2.tbybFeatureMap[apf];\n return featureLookup && p.features[featureLookup] && !p.features[featureLookup].included;\n });\n // if there is no addedPaidFeatureNotIncluded and package's monthly cost is less than current minCost.\n if (!addedPaidFeatureNotIncluded && p.monthly_cost_raw > 0 && p.monthly_cost_raw < minCost) {\n minCost = p.monthly_cost_raw;\n minCostPackageId = p.id;\n }\n });\n this.recommendedPackageIds.push(minCostPackageId);\n }\n }]);\n return IndividualRecommendedPackagesStrategy;\n}(RecommendedPackagesStrategy);\nvar TeamsRecommendedPackagesStrategy = /*#__PURE__*/function (_RecommendedPackagesS2) {\n _inherits(TeamsRecommendedPackagesStrategy, _RecommendedPackagesS2);\n var _super2 = _createSuper(TeamsRecommendedPackagesStrategy);\n function TeamsRecommendedPackagesStrategy() {\n _classCallCheck(this, TeamsRecommendedPackagesStrategy);\n return _super2.apply(this, arguments);\n }\n _createClass(TeamsRecommendedPackagesStrategy, [{\n key: \"_loadRecommendations\",\n value:\n // Find all packages that include all added paid features.\n function _loadRecommendations() {\n var _this3 = this;\n if (!this.addedPaidFeatures || this.addedPaidFeatures.length === 0) {\n // Do not show recommendation if no added paid feature.\n return;\n }\n var packages = this.packages.filter(function (p) {\n return TEAMS_PLAN_IDS.includes(p.id);\n });\n packages.forEach(function (p) {\n var addedPaidFeatureNotIncluded = _this3.addedPaidFeatures.find(function (apf) {\n // example of apf: wall_logo\n var featureLookup = _this3.tbybFeatureMap[apf];\n return featureLookup && p.features[featureLookup] && !p.features[featureLookup].included;\n });\n if (!addedPaidFeatureNotIncluded) {\n _this3.recommendedPackageIds.push(p.id);\n }\n });\n if (this.recommendedPackageIds.length === packages.length) {\n // If all packages are recommended, do not show recommendations.\n this.recommendedPackageIds = [];\n }\n }\n }]);\n return TeamsRecommendedPackagesStrategy;\n}(RecommendedPackagesStrategy);\nvar getRecommendationStrategyClass = function getRecommendationStrategyClass(_ref2) {\n var displayedPlanType = _ref2.displayedPlanType;\n if (displayedPlanType === PLAN_TYPES.INDIVIDUAL) {\n return IndividualRecommendedPackagesStrategy;\n }\n return TeamsRecommendedPackagesStrategy;\n};\nexport default getRecommendationStrategyClass;","var _jsxFileName = \"/repo/packages/ippm/src/components/Feature/index.js\",\n _this = this;\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { IconCheckCircle, IconXCircle } from '@sm/wds-icons';\nimport './feature.scss';\nvar Feature = function Feature(_ref) {\n var label = _ref.label,\n included = _ref.included,\n className = _ref.className,\n customFeature = _ref.customFeature;\n var cls = classNames('plan-feature', 'wds-m-r-3', customFeature ? 'wds-m-b-3' : 'wds-m-b-4', 'wds-m-l-4', 'wds-type--left', className, {\n included: included\n });\n var renderIcon = function renderIcon() {\n return /*#__PURE__*/React.createElement(React.Fragment, null, included ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"wds-type wds-type--primary plan-feature__icon\",\n \"data-testid\": \"check-circle\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(IconCheckCircle, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }\n })) : null, !included ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"wds-type wds-type--dark-muted plan-feature__icon\",\n \"data-testid\": \"x-circle\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(IconXCircle, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 13\n }\n })) : null);\n };\n return /*#__PURE__*/React.createElement(\"li\", {\n className: cls,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 5\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"plan-feature__label\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }\n }, renderIcon(), label));\n};\nFeature.defaultProps = {\n className: '',\n included: false,\n customFeature: false\n};\nFeature.propTypes = {\n label: PropTypes.string.isRequired,\n className: PropTypes.string,\n included: PropTypes.bool,\n customFeature: PropTypes.bool\n};\nexport default Feature;","var _jsxFileName = \"/repo/packages/ippm/src/components/FeatureSectionHeader/index.js\",\n _this = this;\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { Typography } from '@sm/wds-react';\nimport './feature-section-header.scss';\nvar FeatureSectionHeader = function FeatureSectionHeader(_ref) {\n var children = _ref.children,\n className = _ref.className,\n customHeader = _ref.customHeader;\n var cls = classNames('wds-type--left', 'wds-m-l-4', customHeader ? 'wds-m-b-1' : 'wds-m-b-3', 'wds-p-b-1', 'feature-section__header', className);\n return /*#__PURE__*/React.createElement(Typography, {\n component: \"h3\",\n className: cls,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 5\n }\n }, children);\n};\nFeatureSectionHeader.defaultProps = {\n className: '',\n customHeader: false\n};\nFeatureSectionHeader.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n customHeader: PropTypes.bool\n};\nexport default FeatureSectionHeader;","var _jsxFileName = \"/repo/packages/ippm/src/components/CornerRibbon/index.js\",\n _this = this;\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PLAN_TYPES, PACKAGE_IDS } from '../../constants/plans';\nimport { useAppContext } from '../../utils/appContext';\nimport './corner-ribbon.scss';\nvar CornerRibbon = function CornerRibbon(_ref) {\n var packageData = _ref.packageData,\n isRecommended = _ref.isRecommended;\n var _useAppContext = useAppContext(),\n getString = _useAppContext.getString,\n displayedPlanType = _useAppContext.displayedPlanType;\n var isRecommendedIndividualPackage = displayedPlanType === PLAN_TYPES.INDIVIDUAL && isRecommended;\n var ribbonContent;\n if (isRecommendedIndividualPackage) {\n ribbonContent = getString('for_you');\n }\n if (displayedPlanType === PLAN_TYPES.TEAMS && packageData.id !== PACKAGE_IDS.ENTERPRISE) {\n ribbonContent = packageData.savings_message;\n }\n if (ribbonContent) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames('ribbon', {\n 'for-you-ribbon': isRecommendedIndividualPackage,\n 'ribbon-top-right': !isRecommendedIndividualPackage\n }),\n \"data-testid\": \"corner-ribbon\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 9\n }\n }, ribbonContent));\n }\n return null;\n};\nCornerRibbon.defaultProps = {};\nCornerRibbon.propTypes = {\n packageData: PropTypes.shape({\n savings_message: PropTypes.string,\n id: PropTypes.number.isRequired\n }).isRequired,\n isRecommended: PropTypes.bool.isRequired\n};\nexport default CornerRibbon;","var _jsxFileName = \"/repo/packages/ippm/src/components/Package/index.js\",\n _this = this;\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { Col, Typography } from '@sm/wds-react';\nimport { sanitizeString } from '@sm/utils';\nimport { useAppContext } from '../../utils/appContext';\nimport { useConfiguredExperimentContext } from '../../utils/experimentContext';\nimport { logIPPMInteraction, trackPackageSelected } from '../../utils/logger';\nimport matchPaidFeaturesToTBYBFeatures from '../../utils/featuresUtil';\nimport { featuresMap } from '../../constants/featuresMap';\nimport { PLAN_TYPES, PACKAGE_IDS } from '../../constants/plans';\nimport Feature from '../Feature';\nimport FeatureSectionHeader from '../FeatureSectionHeader';\nimport CornerRibbon from '../CornerRibbon';\nimport './package.scss';\nvar Package = function Package(_ref) {\n var packageData = _ref.packageData,\n isRecommended = _ref.isRecommended;\n var NAVIGATE_DELAY = 100;\n var _useAppContext = useAppContext(),\n getString = _useAppContext.getString,\n displayedPlanType = _useAppContext.displayedPlanType,\n featureFlags = _useAppContext.featureFlags,\n addedPaidFeatures = _useAppContext.addedPaidFeatures,\n highlightedFeatures = _useAppContext.highlightedFeatures;\n var _useConfiguredExperim = useConfiguredExperimentContext(),\n IG_2151_ADVANTAGE_HIDE_FOOTER = _useConfiguredExperim.IG_2151_ADVANTAGE_HIDE_FOOTER,\n IG2066_COMMUNICATE_RESPONSE_LIMITS_B = _useConfiguredExperim.IG2066_COMMUNICATE_RESPONSE_LIMITS_B,\n IG2066_COMMUNICATE_RESPONSE_LIMITS_C = _useConfiguredExperim.IG2066_COMMUNICATE_RESPONSE_LIMITS_C,\n GROW_1898_STARTER_ANNUAL_V2 = _useConfiguredExperim.GROW_1898_STARTER_ANNUAL_V2,\n IG_2101_UPSELL_PAID_COLLECT = _useConfiguredExperim.IG_2101_UPSELL_PAID_COLLECT;\n var inIG2066CommunicateResponseLimitsExp = IG2066_COMMUNICATE_RESPONSE_LIMITS_B || IG2066_COMMUNICATE_RESPONSE_LIMITS_C;\n var className = classNames('package', 'package--max-width', packageData.class_name, {\n recommended: isRecommended\n });\n var showRibbon = function showRibbon() {\n return !featureFlags.isOnRbpFeatureSet;\n };\n var btnText = packageData.id !== PACKAGE_IDS.ENTERPRISE ? getString('select_plan') : getString('contact_us');\n var btnClasses = classNames('wds-button wds-button--primary wds-button--solid wds-button--md', 'header-btn wds-m-b-4 wds-m-t-3', 'stretched-88', {\n 'header-btn--individual': displayedPlanType === PLAN_TYPES.INDIVIDUAL,\n 'header-btn--teams-enterprise': packageData.id === PACKAGE_IDS.ENTERPRISE,\n 'header-btn--teams-annual': displayedPlanType === PLAN_TYPES.TEAMS && packageData.id !== PACKAGE_IDS.ENTERPRISE\n });\n var renderHeader = function renderHeader() {\n var renderPackageLabel = function renderPackageLabel() {\n if (featureFlags.standardMonthly500 && packageData.id === PACKAGE_IDS.STANDARD_MONTHLY) {\n // Return updated plan name for Standard Monthly in RBP experiment\n return getString('ig_1677_standard_monthly_name');\n }\n return packageData.package_label;\n };\n var renderPerMonthText = function renderPerMonthText() {\n return /*#__PURE__*/React.createElement(Typography, {\n variant: \"bodySm\",\n className: \"font-size-14 header-frequency font-weight-light\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 9\n }\n }, packageData.per_month_message);\n };\n var renderBillingFrequencyText = function renderBillingFrequencyText() {\n var billingFrequencyTextClasses = classNames('font-size-14', 'font-weight-light', {\n 'wds-m-t-4': displayedPlanType === PLAN_TYPES.TEAMS && packageData.id !== PACKAGE_IDS.ENTERPRISE\n });\n return /*#__PURE__*/React.createElement(Typography, {\n variant: \"bodySm\",\n className: billingFrequencyTextClasses,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: sanitizeString(packageData.billing_frequency)\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 11\n }\n }));\n };\n return /*#__PURE__*/React.createElement(\"header\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }\n }, packageData.is_audience && /*#__PURE__*/React.createElement(Typography, {\n variant: \"bodySm\",\n className: \"audience-header font-weight-medium\",\n component: \"strong\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }\n }, getString('audience_header')), /*#__PURE__*/React.createElement(Typography, {\n className: \"wds-m-t-5 header-label\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 9\n }\n }, renderPackageLabel()), /*#__PURE__*/React.createElement(Typography, {\n variant: \"hero2\",\n className: \"header-cost wds-m-t-1 wds-m-b-2\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: sanitizeString(packageData.cost)\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 11\n }\n })), packageData.id !== PACKAGE_IDS.ENTERPRISE && renderPerMonthText(), packageData.id !== PACKAGE_IDS.ENTERPRISE && renderBillingFrequencyText(), /*#__PURE__*/React.createElement(\"a\", {\n className: btnClasses,\n href: packageData.upgrade_link,\n target: \"_parent\",\n onClick: function onClick(evt) {\n logIPPMInteraction('package_select', 'package_cta', packageData.id);\n trackPackageSelected(packageData, isRecommended);\n // introduce a tiny delay so tracking can get sent\n evt.preventDefault();\n setTimeout(function () {\n window.location.href = packageData.upgrade_link;\n }, NAVIGATE_DELAY);\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 9\n }\n }, btnText));\n };\n var renderFeatureList = function renderFeatureList(features) {\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"feature-list\",\n key: features.length,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 7\n }\n }, features.map(function (_ref2) {\n var name = _ref2.name,\n label = _ref2.label,\n included = _ref2.included;\n return /*#__PURE__*/React.createElement(Feature, {\n key: name,\n label: label,\n included: included,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 11\n }\n });\n }));\n };\n var shouldRenderPaidFeatureSection = ![PACKAGE_IDS.ENTERPRISE, PACKAGE_IDS.TEAMS_ADVANTAGE, PACKAGE_IDS.TEAMS_PREMIER].includes(packageData.id) && (addedPaidFeatures === null || addedPaidFeatures === void 0 ? void 0 : addedPaidFeatures.length) > 0;\n var renderPaidFeatureSection = function renderPaidFeatureSection() {\n var packageFeatures = packageData.features;\n var matchedTBYBFeatures = matchPaidFeaturesToTBYBFeatures(addedPaidFeatures);\n var features;\n if (packageData.id === PACKAGE_IDS.ADVANTAGE && IG_2151_ADVANTAGE_HIDE_FOOTER) {\n features = matchedTBYBFeatures.map(function (name) {\n return {\n name: name,\n label: packageFeatures[name].label,\n included: name === 'create_toggle_footer_enabled' ? true : packageFeatures[name].included\n };\n });\n } else {\n features = matchedTBYBFeatures.map(function (name) {\n return {\n name: name,\n label: packageFeatures[name].label,\n included: packageFeatures[name].included\n };\n });\n }\n return /*#__PURE__*/React.createElement(\"section\", {\n className: \"added-features\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(FeatureSectionHeader, {\n className: \"added-features__header\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }\n }, getString('paid_features_in_your'))), renderFeatureList(features));\n };\n var renderAllFeatures = function renderAllFeatures() {\n var isIndividualPlan = [36, 34, 31, 32].includes(packageData.id);\n var chooseDefaultFeatures = function chooseDefaultFeatures() {\n if (inIG2066CommunicateResponseLimitsExp) {\n return packageData.communicate_response_limit_features;\n }\n // Begin GROW-1898\n if (GROW_1898_STARTER_ANNUAL_V2) {\n return packageData.grow_starter_annual;\n }\n // End GROW-1898\n return packageData.default_features;\n };\n var shouldRenderHighlightedFeatures = isIndividualPlan && highlightedFeatures;\n var packageLabel = function packageLabel() {\n var includedInLabel = getString('included_in').replace('{label}', packageData.package_label);\n var alsoIncludedInLabel = getString('also_included_in').replace('{label}', packageData.package_label);\n if (!shouldRenderHighlightedFeatures && (!shouldRenderPaidFeatureSection || !addedPaidFeatures)) {\n return includedInLabel;\n }\n return alsoIncludedInLabel;\n };\n var renderHighlightedFeatures = function renderHighlightedFeatures() {\n var matchedFeatures = [];\n highlightedFeatures.forEach(function (key) {\n if (featuresMap[key]) {\n matchedFeatures.push(key);\n }\n });\n var features = matchedFeatures.map(function (name) {\n return {\n name: name,\n label: featuresMap[name].label,\n included: true\n };\n });\n return features.length > 0 ? [/*#__PURE__*/React.createElement(FeatureSectionHeader, {\n customHeader: true,\n className: \"wds-p-t-3\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n },\n key: \"0\"\n }, \"Plan highlight\"), renderFeatureList(features)] : null;\n };\n var renderFeaturedResponses = function renderFeaturedResponses() {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FeatureSectionHeader, {\n customHeader: true,\n className: \"wds-p-t-3\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 11\n }\n }, getString('responses_header')), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"feature-list\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 11\n }\n }, chooseDefaultFeatures().map(function (f) {\n var key = Object.keys(f)[0];\n if (key === 'number_of_response') {\n return /*#__PURE__*/React.createElement(Feature, {\n key: key,\n label: f[key].label,\n included: f[key].included,\n customFeature: true,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 19\n }\n });\n }\n return null;\n })), /*#__PURE__*/React.createElement(\"hr\", {\n className: \"highlighted-feature__break wds-m-l-4 wds-m-r-4\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 11\n }\n }));\n };\n return /*#__PURE__*/React.createElement(\"section\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 7\n }\n }, shouldRenderHighlightedFeatures && renderHighlightedFeatures(), isIndividualPlan && !inIG2066CommunicateResponseLimitsExp && IG_2101_UPSELL_PAID_COLLECT && renderFeaturedResponses(), /*#__PURE__*/React.createElement(FeatureSectionHeader, {\n className: \"wds-p-t-4\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: sanitizeString(packageLabel())\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 293,\n columnNumber: 11\n }\n })), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"feature-list\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 9\n }\n }, chooseDefaultFeatures().map(function (f) {\n var key = Object.keys(f)[0];\n if (highlightedFeatures && highlightedFeatures.includes(key)) {\n return null;\n }\n if (key === 'number_of_response' && IG_2101_UPSELL_PAID_COLLECT) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Feature, {\n key: key,\n label: f[key].label,\n included: f[key].included,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 307,\n columnNumber: 15\n }\n });\n })));\n };\n return /*#__PURE__*/React.createElement(Col, {\n className: className\n // for metrics purposes since teasing some of this information out\n // of the raw data is tricky at best, especially for the\n // recommended package\n ,\n\n \"data-package-name\": packageData.class_name,\n \"data-package-id\": packageData.id,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 5\n }\n }, /*#__PURE__*/React.createElement(\"section\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 7\n }\n }, showRibbon() && /*#__PURE__*/React.createElement(CornerRibbon, {\n packageData: packageData,\n isRecommended: isRecommended,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 11\n }\n }), renderHeader(), /*#__PURE__*/React.createElement(\"main\", {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 336,\n columnNumber: 9\n }\n }, shouldRenderPaidFeatureSection && renderPaidFeatureSection(), renderAllFeatures())));\n};\nPackage.defaultProps = {};\nPackage.propTypes = {\n packageData: PropTypes.shape({\n class_name: PropTypes.string.isRequired,\n upgrade_link: PropTypes.string.isRequired,\n cost: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n is_audience: PropTypes.bool,\n package_label: PropTypes.string,\n per_month_message: PropTypes.string,\n billing_frequency: PropTypes.string,\n features: PropTypes.shape().isRequired,\n grow_starter_annual: PropTypes.arrayOf(PropTypes.shape),\n communicate_response_limit_features: PropTypes.arrayOf(PropTypes.shape),\n default_features: PropTypes.arrayOf(PropTypes.shape)\n }).isRequired,\n isRecommended: PropTypes.bool.isRequired\n};\nexport default Package;","import { sortedTBYBFeaturesMap } from '../constants/featuresMap'; /**\n * Get a list of TBYB feature names from a list of paid features that\n * have been added to the survey.\n *\n * Args:\n * addedPaidFeatures:\n * List of paid features (wall_*) added to the survey\n *\n * sortedTBYBFeaturesMap:\n * List of objects mapping {paid_feature_name: tbyb_feature_name}\n *\n * Returns:\n * List of TBYB feature names\n */\n\nexport default function matchPaidFeaturesToTBYBFeatures(addedPaidFeatures) {\n var matchedTBYBFeatures = {};\n sortedTBYBFeaturesMap.forEach(function (tbybFeature) {\n var key = Object.keys(tbybFeature)[0];\n if (addedPaidFeatures !== null && addedPaidFeatures !== void 0 && addedPaidFeatures.includes(key)) {\n matchedTBYBFeatures[tbybFeature[key]] = true;\n }\n });\n return Object.keys(matchedTBYBFeatures);\n}","var _jsxFileName = \"/repo/packages/ippm/src/components/PackagesContainer/index.js\",\n _this = this;\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Grid, Row } from '@sm/wds-react';\nimport { useAppContext } from '../../utils/appContext';\nimport { useConfiguredExperimentContext } from '../../utils/experimentContext';\nimport getRecommendationStrategyClass from '../../utils/recommendationStrategy';\nimport { PLAN_TYPES, INDIVIDUAL_PLAN_IDS_WITH_MONTHLY, STARTER_ANNUAL_V2_INDIVIDUAL, TEAMS_PLAN_IDS, PACKAGE_IDS } from '../../constants/plans';\nimport Package from '../Package';\nimport './PackagesContainer.scss';\nfunction getPackageIdsToDisplay(_ref) {\n var displayedPlanType = _ref.displayedPlanType,\n experimentsConfig = _ref.experimentsConfig;\n if (displayedPlanType === PLAN_TYPES.INDIVIDUAL) {\n // GROW-1898\n if (experimentsConfig.GROW_1898_STARTER_ANNUAL_V2) {\n return STARTER_ANNUAL_V2_INDIVIDUAL;\n }\n return INDIVIDUAL_PLAN_IDS_WITH_MONTHLY;\n }\n if (displayedPlanType === PLAN_TYPES.TEAMS) {\n if (experimentsConfig.IG1453_REMOVE_TEAM_PREMIER) {\n return TEAMS_PLAN_IDS.filter(function (id) {\n return id !== PACKAGE_IDS.TEAMS_PREMIER;\n });\n }\n return TEAMS_PLAN_IDS;\n }\n // TODO: log error to splunk\n // console.error(`Unknown plan type: ${displayedPlanType}`);\n return INDIVIDUAL_PLAN_IDS_WITH_MONTHLY;\n}\nfunction getPackagesToDisplay(_ref2) {\n var packages = _ref2.packages,\n displayedPlanType = _ref2.displayedPlanType,\n experimentsConfig = _ref2.experimentsConfig;\n var getPackageById = function getPackageById(id) {\n return packages.filter(function (x) {\n return x.id === id;\n })[0];\n };\n var packageIds = getPackageIdsToDisplay({\n displayedPlanType: displayedPlanType,\n experimentsConfig: experimentsConfig\n });\n return packageIds.map(function (id) {\n return getPackageById(id);\n }).filter(function (x) {\n return x !== undefined;\n });\n}\nvar PackagesContainer = function PackagesContainer() {\n var _useAppContext = useAppContext(),\n packages = _useAppContext.packages,\n displayedPlanType = _useAppContext.displayedPlanType,\n addedPaidFeatures = _useAppContext.addedPaidFeatures;\n var experimentsConfig = useConfiguredExperimentContext();\n var packagesToDisplay = getPackagesToDisplay({\n packages: packages,\n displayedPlanType: displayedPlanType,\n experimentsConfig: experimentsConfig\n });\n var gridClassNames = classNames('packages-container wds-m-t-4 wds-p-b-6', \"packages--\".concat(packagesToDisplay.length));\n var rowClassNames = classNames('margin-auto', 'space-between', 'width-fixed', {\n center_content: packagesToDisplay.length < 3\n });\n var isPackageRecommended = function () {\n var RecommendedPackagesStrategy = getRecommendationStrategyClass({\n displayedPlanType: displayedPlanType\n });\n var recommendationStrategy = new RecommendedPackagesStrategy({\n packages: packages,\n addedPaidFeatures: addedPaidFeatures\n });\n return function (packageId) {\n return recommendationStrategy.isRecommended(packageId);\n };\n }();\n return /*#__PURE__*/React.createElement(Grid, {\n className: gridClassNames,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 5\n }\n }, /*#__PURE__*/React.createElement(Row, {\n className: rowClassNames,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 7\n }\n }, packagesToDisplay.map(function (packageData) {\n return /*#__PURE__*/React.createElement(Package, {\n packageData: packageData,\n isRecommended: isPackageRecommended(packageData.id),\n key: packageData.id,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 13\n }\n });\n })));\n};\nexport default PackagesContainer;","var _jsxFileName = \"/repo/packages/ippm/src/components/Disclaimer/index.js\";\nimport React from 'react';\nimport { sanitizeString } from '@sm/utils';\nimport { Typography } from '@sm/wds-react';\nimport { useAppContext } from '../../utils/appContext';\nimport { PLAN_TYPES } from '../../constants/plans';\nexport default function Disclaimer() {\n var _this = this;\n var _useAppContext = useAppContext(),\n overageCostInfo = _useAppContext.overageCostInfo,\n displayedPlanType = _useAppContext.displayedPlanType,\n getString = _useAppContext.getString;\n var individualDisclaimers = function individualDisclaimers() {\n var overageCostHtml = overageCostInfo !== null && overageCostInfo !== void 0 && overageCostInfo.has_overage_cost ? overageCostInfo.overage_cost : '';\n var responses = getString('responses_per_month').replace('{overageCostHtml}', overageCostHtml);\n return overageCostInfo !== null && overageCostInfo !== void 0 && overageCostInfo.has_overage_cost ? /*#__PURE__*/React.createElement(\"aside\", {\n className: \"disclaimer wds-m-l-6 wds-p-b-4\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(Typography, {\n component: \"p\",\n variant: \"bodySm\",\n color: \"dark-muted\",\n dangerouslySetInnerHTML: {\n __html: sanitizeString(responses)\n },\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }\n })) : null;\n };\n var teamsDisclaimers = function teamsDisclaimers() {\n return /*#__PURE__*/React.createElement(\"aside\", {\n className: \"disclaimer wds-m-l-6 wds-p-b-4\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(Typography, {\n component: \"p\",\n variant: \"bodySm\",\n color: \"dark-muted\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }\n }, getString('display_pricing_represents')), /*#__PURE__*/React.createElement(Typography, {\n component: \"p\",\n variant: \"bodySm\",\n color: \"dark-muted\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }\n }, getString('add_on_features')));\n };\n return displayedPlanType === PLAN_TYPES.INDIVIDUAL ? individualDisclaimers() : teamsDisclaimers();\n}","var _jsxFileName = \"/repo/packages/ippm/src/components/IppmApp/index.js\",\n _this = this;\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { ExperimentProvider } from '../../utils/experimentContext';\nimport AppContextProvider from '../../utils/appContext';\nimport BackToSurvey from '../BackToSurvey';\nimport Headline from '../Headline';\nimport PackagesContainer from '../PackagesContainer';\nimport Disclaimer from '../Disclaimer';\nimport './IppmApp.scss';\nvar IppmApp = function IppmApp(_ref) {\n var strings = _ref.strings,\n appData = _ref.appData,\n handleCloseIPPM = _ref.handleCloseIPPM;\n var cls = classNames({\n ie: false,\n ippmApp: true\n });\n var handleBackToSurveyClick = function handleBackToSurveyClick() {\n handleCloseIPPM();\n };\n return /*#__PURE__*/React.createElement(AppContextProvider, {\n appData: appData,\n strings: strings,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 5\n }\n }, /*#__PURE__*/React.createElement(ExperimentProvider, {\n experiments: appData.experiments,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n \"data-ucs-render-id\": 1234,\n \"data-ucs-module-name\": \"ippm\",\n \"data-testid\": \"IppmApp\",\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }\n }, handleCloseIPPM ? /*#__PURE__*/React.createElement(BackToSurvey, {\n onBackToSurveyClick: handleBackToSurveyClick,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 13\n }\n }) : null, /*#__PURE__*/React.createElement(Headline, {\n onBackToSurveyClick: handleBackToSurveyClick,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }\n }), /*#__PURE__*/React.createElement(PackagesContainer, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }\n }), /*#__PURE__*/React.createElement(Disclaimer, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }\n }))));\n};\nIppmApp.defaultProps = {\n strings: {},\n handleCloseIPPM: undefined\n};\nIppmApp.propTypes = {\n strings: PropTypes.objectOf(PropTypes.string),\n handleCloseIPPM: PropTypes.func,\n appData: PropTypes.shape({\n // Experiments is an object mapping experiment IDs to treatment IDs, or null\n experiments: PropTypes.objectOf(PropTypes.string).isRequired,\n packages: PropTypes.arrayOf(PropTypes.shape({\n // Package ID, as a number\n id: PropTypes.number.isRequired,\n // Label describing the billing frquency\n billing_frequency: PropTypes.string.isRequired,\n // Cost as a formatted string (cont. HTML)\n cost: PropTypes.string.isRequired,\n // Monthly cost in cents\n monthly_cost_raw: PropTypes.number.isRequired,\n // Default features is passed in a relatively odd format in the original appData:\n // { feature_name: { label: ..., included: ... }}\n // This should eventually refactored into something more sensible\n default_features: PropTypes.arrayOf(PropTypes.objectOf(PropTypes.shape({\n label: PropTypes.string.isRequired,\n included: PropTypes.bool.isRequired\n }))),\n // Label for \"included in this plan\"\n included_in_label: PropTypes.string.isRequired,\n // Maps IDs to feature definitions.\n // It looks like the ID is matching the name, so this should\n // probably be returned as a graphql-friendly array of objects\n // instead, and built into a map as / if needed.\n features: PropTypes.objectOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n level: PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.number.isRequired, PropTypes.bool.isRequired]).isRequired,\n label: PropTypes.string.isRequired,\n included: PropTypes.bool.isRequired\n }).isRequired),\n // Versions data\n package_label: PropTypes.string.isRequired,\n price_display: PropTypes.string.isRequired,\n swap_link: PropTypes.string,\n upgrade_link: PropTypes.string,\n tier: PropTypes.number,\n associated_package: PropTypes.number,\n class_name: PropTypes.string,\n savings_percentage: PropTypes.number,\n // \"Per month message\", usually either one of:\n // - '/ month' (for individual plans)\n // - '/ user / month' (for team plans)\n per_month_message: PropTypes.string\n\n // grow_starter_annual -> should not be passed\n // communicate_response_limit_features -> also get rid of this\n })),\n\n eduDiscountAvailable: PropTypes.bool.isRequired,\n // Paid features that were added to TBYB, as wall_* features\n addedPaidFeatures: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\n // List of highlighed feature IDs\n highlightedFeatures: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\n overageCostInfo: PropTypes.shape({\n has_overage_cost: PropTypes.bool.isRequired,\n overage_cost: PropTypes.string // Formatted string\n }),\n\n // Current feature set ID for the user\n featureSetId: PropTypes.number.isRequired\n }).isRequired\n};\nexport default IppmApp;","var _jsxFileName = \"/repo/packages/ippm/src/components/IppmWithData/index.js\",\n _this = this;\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n catch: function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nimport * as React from 'react';\nimport IppmApp from '../IppmApp';\nfunction fetchIppmAppData() {\n return _fetchIppmAppData.apply(this, arguments);\n}\nfunction _fetchIppmAppData() {\n _fetchIppmAppData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var response, result;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return fetch('/core/api/ucs/ippm-app-data');\n case 2:\n response = _context2.sent;\n _context2.next = 5;\n return response.json();\n case 5:\n result = _context2.sent;\n return _context2.abrupt(\"return\", result);\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _fetchIppmAppData.apply(this, arguments);\n}\nfunction useIppmAppData() {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n result = _React$useState2[0],\n setResult = _React$useState2[1];\n var fetchData = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var data;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetchIppmAppData();\n case 2:\n data = _context.sent;\n setResult(data);\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return function fetchData() {\n return _ref.apply(this, arguments);\n };\n }();\n React.useEffect(function () {\n fetchData();\n }, []);\n return result;\n}\nvar IppmWithData = function IppmWithData(props) {\n var appData = useIppmAppData();\n if (!appData) {\n // Should we return a placeholder instead?\n return null;\n }\n var strings = appData.strings;\n return /*#__PURE__*/React.createElement(IppmApp, Object.assign({\n appData: appData,\n strings: strings\n }, props, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 10\n }\n }));\n};\nexport default IppmWithData;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DataCenterIds = exports.DC_SPECIFIC_SUBDOMAINS = void 0;\nexports.getDataCenterById = getDataCenterById;\nexports.getDataCenterIdFromCurrentUrl = getDataCenterIdFromCurrentUrl;\nexports.getDefaultSubdomainForDataCenter = getDefaultSubdomainForDataCenter;\nvar _parseDomain = require(\"parse-domain\");\nvar _dataCenters = _interopRequireDefault(require(\"./data/dataCenters.json\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar DataCenterIds;\nexports.DataCenterIds = DataCenterIds;\n(function (DataCenterIds) {\n DataCenterIds[\"US\"] = \"0\";\n DataCenterIds[\"CA\"] = \"1\";\n DataCenterIds[\"EU\"] = \"2\";\n})(DataCenterIds || (exports.DataCenterIds = DataCenterIds = {}));\nvar DC_SPECIFIC_SUBDOMAINS;\n/**\n * Returns the data center by id\n * @param {string} dataCenterId\n * @returns {Object} data center details\n * @memberof module:@sm/locale\n */\nexports.DC_SPECIFIC_SUBDOMAINS = DC_SPECIFIC_SUBDOMAINS;\n(function (DC_SPECIFIC_SUBDOMAINS) {\n DC_SPECIFIC_SUBDOMAINS[DC_SPECIFIC_SUBDOMAINS[\"eu\"] = DataCenterIds.EU] = \"eu\";\n})(DC_SPECIFIC_SUBDOMAINS || (exports.DC_SPECIFIC_SUBDOMAINS = DC_SPECIFIC_SUBDOMAINS = {}));\nfunction getDataCenterById(dataCenterId) {\n return _dataCenters.default.dataCenters[dataCenterId];\n}\n\n/**\n * Returns the data center id from the url\n * @param {string} url\n * @param {string} dataCenterAffinityCookie\n * @returns {string} data center id\n * @memberof module:@sm/locale\n */\nfunction getDataCenterIdFromCurrentUrl(url, dataCenterAffinityCookie) {\n var parseResult = (0, _parseDomain.parseDomain)((0, _parseDomain.fromUrl)(url)) || {};\n var subdomain;\n var dataCenterId = DataCenterIds.US;\n if (parseResult.type === _parseDomain.ParseResultType.Listed) {\n subdomain = parseResult.subDomains.join('.');\n if (subdomain) {\n var dcSub = Object.keys(_dataCenters.default.dataCenterSpecificSubdomains).find(function (subSpecific) {\n return subSpecific === subdomain || subdomain.endsWith(\".\".concat(subSpecific));\n });\n if (dcSub) {\n dataCenterId = _dataCenters.default.dataCenterSpecificSubdomains[dcSub];\n }\n }\n }\n if (dataCenterId === DataCenterIds.US && \"\".concat(dataCenterAffinityCookie) === DataCenterIds.CA) {\n dataCenterId = DataCenterIds.CA;\n }\n return dataCenterId;\n}\n\n// This is currently being used in UserWeb here https://code.corp.surveymonkey.com/devmonkeys/userweb/blob/e7646369dfae9fef0c8d1fa3c23f1bde61a9c906/userweb/lib/language.py#L31\n// So I'm leaving this function for when we port the corresponding code in UserWeb.\n/**\n * Returns the default subdomain for a data center\n * @param {string} dataCenterId\n * @returns {string} subdomain\n * @memberof module:@sm/locale\n */\nfunction getDefaultSubdomainForDataCenter(dataCenterId) {\n var dc = getDataCenterById(dataCenterId);\n return dc && dc.defaultSubdomain || 'www';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"LANGUAGES\", {\n enumerable: true,\n get: function get() {\n return _languages.LANGUAGES;\n }\n});\nObject.defineProperty(exports, \"LANGUAGES_BY_CODE\", {\n enumerable: true,\n get: function get() {\n return _languages.LANGUAGES_BY_CODE;\n }\n});\nObject.defineProperty(exports, \"LANGUAGES_BY_ID\", {\n enumerable: true,\n get: function get() {\n return _languages.LANGUAGES_BY_ID;\n }\n});\nObject.defineProperty(exports, \"LanguageCode\", {\n enumerable: true,\n get: function get() {\n return _languages.LanguageCode;\n }\n});\nObject.defineProperty(exports, \"MULTILINGUAL_SURVEYS_LOCALE_CODES\", {\n enumerable: true,\n get: function get() {\n return _languages.MULTILINGUAL_SURVEYS_LOCALE_CODES;\n }\n});\nObject.defineProperty(exports, \"MultilingualSurveysLocaleCode\", {\n enumerable: true,\n get: function get() {\n return _languages.MultilingualSurveysLocaleCode;\n }\n});\nObject.defineProperty(exports, \"SITE_WIDE_LOCALE_CODES\", {\n enumerable: true,\n get: function get() {\n return _languages.SITE_WIDE_LOCALE_CODES;\n }\n});\nObject.defineProperty(exports, \"SURVEY_CREATION_LOCALE_CODES\", {\n enumerable: true,\n get: function get() {\n return _languages.SURVEY_CREATION_LOCALE_CODES;\n }\n});\nObject.defineProperty(exports, \"SiteWideLocaleCode\", {\n enumerable: true,\n get: function get() {\n return _languages.SiteWideLocaleCode;\n }\n});\nObject.defineProperty(exports, \"SupportLevels\", {\n enumerable: true,\n get: function get() {\n return _languages.SupportLevels;\n }\n});\nObject.defineProperty(exports, \"SurveyCreationLocaleCode\", {\n enumerable: true,\n get: function get() {\n return _languages.SurveyCreationLocaleCode;\n }\n});\nObject.defineProperty(exports, \"convertLanguageTag\", {\n enumerable: true,\n get: function get() {\n return _languageTags.convertLanguageTag;\n }\n});\nexports.getAudienceSupportedCountries = getAudienceSupportedCountries;\nexports.getBenchmarksSupportedCountries = getBenchmarksSupportedCountries;\nexports.getCookieTransportTLDs = getCookieTransportTLDs;\nObject.defineProperty(exports, \"getDataCenterById\", {\n enumerable: true,\n get: function get() {\n return _dataCenters.getDataCenterById;\n }\n});\nObject.defineProperty(exports, \"getDataCenterIdFromCurrentUrl\", {\n enumerable: true,\n get: function get() {\n return _dataCenters.getDataCenterIdFromCurrentUrl;\n }\n});\nObject.defineProperty(exports, \"getDefaultSubdomainForDataCenter\", {\n enumerable: true,\n get: function get() {\n return _dataCenters.getDefaultSubdomainForDataCenter;\n }\n});\nexports.getEUCountries = getEUCountries;\nexports.getLanguageCodeFromCountryCode = getLanguageCodeFromCountryCode;\nexports.getLanguageCodeFromSubdomain = getLanguageCodeFromSubdomain;\nObject.defineProperty(exports, \"getLanguageTagByCode\", {\n enumerable: true,\n get: function get() {\n return _languageTags.getLanguageTagByCode;\n }\n});\nObject.defineProperty(exports, \"getLanguageTagById\", {\n enumerable: true,\n get: function get() {\n return _languageTags.getLanguageTagById;\n }\n});\nObject.defineProperty(exports, \"getLanguageTags\", {\n enumerable: true,\n get: function get() {\n return _languageTags.getLanguageTags;\n }\n});\nexports.getSMSupportedCountries = getSMSupportedCountries;\nexports.getSiteSupportedLanguageCodes = getSiteSupportedLanguageCodes;\nexports.getSiteSupportedLanguages = getSiteSupportedLanguages;\nexports.getSubdomainFromLanguageCodeAndDataCenter = getSubdomainFromLanguageCodeAndDataCenter;\nexports.getTldLanguageInfo = getTldLanguageInfo;\nexports.isDACHCountry = isDACHCountry;\nexports.isEUCountry = isEUCountry;\nexports.isEUDC = isEUDC;\nexports.isEUSubdomain = isEUSubdomain;\nexports.isGBCountry = isGBCountry;\nexports.isGDPRCountry = isGDPRCountry;\nexports.isUSTerritory = isUSTerritory;\nexports.localeSets = void 0;\nObject.defineProperty(exports, \"normalizeLanguageTag\", {\n enumerable: true,\n get: function get() {\n return _languageTags.normalizeLanguageTag;\n }\n});\nObject.defineProperty(exports, \"parseLanguageTag\", {\n enumerable: true,\n get: function get() {\n return _languageTags.parseLanguageTag;\n }\n});\nexports.sanitizeCountryCode = sanitizeCountryCode;\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\nvar _tlds = _interopRequireDefault(require(\"./data/tlds.json\"));\nvar _localeSets = require(\"./localeSets\");\nvar _languages = require(\"./languages\");\nvar _dataCenters = require(\"./dataCenters\");\nvar _languageTags = require(\"./languageTags\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n// This is for backward compatibility. Remove for 2.0\nvar localeSets = {\n GDPR_COUNTRIES: _localeSets.GDPRCountryCodes,\n SM_SUPPORTED_COUNTRIES: _localeSets.SMSupportedCountryCodes,\n EU_COUNTRIES: _localeSets.EUCountryCodes,\n US_TERRITORIES: _localeSets.USTerritoryCountryCodes,\n GB_COUNTRIES: _localeSets.GBCountryCodes,\n DASH_COUNTRIES: _localeSets.DASHCountryCodes\n};\nexports.localeSets = localeSets;\n/**\n * @param {string} country - code\n * @param {string} fallBackCountry - default country code\n * @returns {string} two letter country code, default to US if a fallback is not provided\n */\nfunction sanitizeCountryCode(country) {\n var fallBackCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _localeSets.CountryCodes.US;\n var isString = typeof country === 'string';\n if (!isString) {\n // TODO log this\n !false ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'Country code is not a string.') : (0, _invariant.default)(false) : void 0;\n return fallBackCountry;\n }\n var isTwoLetterCode = country.length === 2;\n if (!isTwoLetterCode) {\n // TODO log this\n !false ? process.env.NODE_ENV !== \"production\" ? (0, _invariant.default)(false, 'Country code is not a 2 letter code') : (0, _invariant.default)(false) : void 0;\n return fallBackCountry;\n }\n return _localeSets.SMSupportedCountryCodes.find(function (c) {\n return c === country.toUpperCase();\n }) || fallBackCountry.toUpperCase();\n}\n\n/**\n * @param {string} country - Two-letter country code\n * @returns {bool} if that country has GDPR laws\n */\nfunction isGDPRCountry(country) {\n // if we cannot determine the country, assume GDPR country ie GB\n return _localeSets.GDPRCountryCodes.includes(sanitizeCountryCode(country, _localeSets.CountryCodes.GB));\n}\n\n/**\n * @param {string} country - Two-letter country code\n * @returns {bool} if country is in DASH country set\n */\nfunction isDACHCountry(country) {\n // if we cannot determine the country, assume non Dash ie. US\n return _localeSets.DASHCountryCodes.includes(sanitizeCountryCode(country, _localeSets.CountryCodes.US));\n}\n\n/**\n * @param {string} country - Two-letter country code\n * @returns {bool} if country is in the United Kingdoms\n * @public\n */\nfunction isGBCountry(country) {\n // if we cannot determine the country, assume GB country\n return _localeSets.GBCountryCodes.includes(sanitizeCountryCode(country, _localeSets.CountryCodes.GB));\n}\n\n/**\n * @param {string} country - Two-letter country code\n * @returns {bool} if country is a US Territory\n * @public\n */\nfunction isUSTerritory(country) {\n // if we cannot determine the country, assume Non US\n return _localeSets.USTerritoryCountryCodes.includes(sanitizeCountryCode(country, _localeSets.CountryCodes.GB));\n}\n\n/**\n * @param {string} country - Two-letter country code\n * @returns {bool} if country is in European Union\n * @public\n */\nfunction isEUCountry(country) {\n // if we cannot determine the country, assume EU. (joelm: WHY?!?!?!)\n return _localeSets.EUCountryCodes.includes(sanitizeCountryCode(country, _localeSets.CountryCodes.GB));\n}\n\n/**\n * @param {string} hostname\n * @returns {bool} if host is a EUDC\n * @public\n */\nfunction isEUDC(hostname) {\n return (0, _dataCenters.getDataCenterIdFromCurrentUrl)(hostname) === _dataCenters.DataCenterIds.EU;\n}\n\n/**\n * @param {string} subdomain\n * @returns {bool} if EU Subdomain\n * @public\n */\nfunction isEUSubdomain(subdomain) {\n return !!(subdomain && subdomain.indexOf('eu') !== -1);\n}\n\n/**\n * @returns {Array} list of European Union Countries\n * @public\n */\nfunction getEUCountries() {\n return _toConsumableArray(_localeSets.EUCountryCodes);\n}\n\n/**\n * @returns {Array} List of SM supported TLDs\n * @public\n */\nfunction getCookieTransportTLDs() {\n return _tlds.default.filter(function (tld) {\n return tld.enabled;\n }).map(function (tld) {\n return tld.tld;\n });\n}\n\n/**\n * @returns {Array} Countries that SM Audience supports\n * @public\n */\nfunction getAudienceSupportedCountries() {\n // TODO change this to just return list of country codes\n return {\n US: 'United States',\n AU: 'Australia',\n CA: 'Canada',\n NZ: 'New Zealand',\n SG: 'Singapore',\n GB: 'United Kingdom',\n IE: 'Ireland'\n };\n}\n\n/**\n * @returns {Array} Countries that SM Benchmarks supports\n * @public\n */\nfunction getBenchmarksSupportedCountries() {\n // TODO change this to jst return a list of country codes\n return {\n US: 'United States'\n };\n}\n\n/**\n * @returns {Array} Countries that SM supports\n * @public\n */\nfunction getSMSupportedCountries() {\n return _toConsumableArray(_localeSets.SMSupportedCountryCodes);\n}\n\n/**\n * @returns {Object} Language Object that SM Supports\n * @public\n */\nfunction getSiteSupportedLanguages() {\n return _languages.LANGUAGES.filter(function (language) {\n return language.supportLevel === _languages.SupportLevels.SITE_WIDE;\n });\n}\n\n/**\n * @param {string} country - Two-letter country code\n * @returns {string} language code\n */\nfunction getLanguageCodeFromCountryCode(country) {\n var language = _languages.LANGUAGES.find(function (lang) {\n return lang.countries.includes(sanitizeCountryCode(country));\n });\n return language ? language.code : 'en';\n}\n\n/**\n * Returns the language code from the subdomain\n * @param {string} subdomain\n * @returns {string} language code\n */\nfunction getLanguageCodeFromSubdomain(subdomain) {\n if (subdomain === 'eu' || subdomain === 'www') {\n return 'en';\n }\n var language = _languages.LANGUAGES_WITH_SUBDOMAINS.find(function (lang) {\n return lang.subdomain === subdomain || \"\".concat(lang.subdomain, \".eu\") === subdomain;\n });\n if (language) {\n return language.code;\n }\n return 'en';\n}\n\n/**\n * Returns the subdomain from the language code and data center combination\n * @param {string} languageCode\n * @param {string} dataCenterId\n * @returns {string} subdomain\n */\nfunction getSubdomainFromLanguageCodeAndDataCenter(languageCode, dataCenterId) {\n var language = _languages.LANGUAGES_BY_CODE[languageCode];\n var result = language.subdomain;\n if (dataCenterId === _dataCenters.DataCenterIds.EU) {\n result = \"\".concat(language.subdomain, \".eu\");\n }\n return result === 'www.eu' ? 'eu' : result;\n}\n\n/**\n * @returns {Array} Language codes that SM Supports\n * @public\n */\nfunction getSiteSupportedLanguageCodes() {\n return _languages.SITE_WIDE_LOCALE_CODES;\n}\n/**\n * Returns the tld language info\n * @param {string} tld\n * @returns {string} language info\n */\nfunction getTldLanguageInfo(tld) {\n var data = _tlds.default.find(function (i) {\n return i.tld === tld;\n });\n if (!data) {\n return _tlds.default.find(function (i) {\n return i.tld === 'com';\n });\n }\n return data;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertLanguageTag = convertLanguageTag;\nexports.getLanguageTagByCode = getLanguageTagByCode;\nexports.getLanguageTagById = getLanguageTagById;\nexports.getLanguageTags = getLanguageTags;\nexports.normalizeLanguageTag = normalizeLanguageTag;\nexports.parseLanguageTag = parseLanguageTag;\nvar _languageTags = _interopRequireDefault(require(\"./data/language-tags.json\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function _wrapRegExp(re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n function buildGroups(result, re) {\n var g = _groups.get(re);\n return Object.keys(g).reduce(function (groups, name) {\n var i = g[name];\n if (\"number\" == typeof i) groups[name] = result[i];else {\n for (var k = 0; void 0 === result[i[k]] && k + 1 < i.length;) {\n k++;\n }\n groups[name] = result[i[k]];\n }\n return groups;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n if (result) {\n result.groups = buildGroups(result, this);\n var indices = result.indices;\n indices && (indices.groups = buildGroups(indices, this));\n }\n return result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n var group = groups[name];\n return \"$\" + (Array.isArray(group) ? group.join(\"$\") : group);\n }));\n }\n if (\"function\" == typeof substitution) {\n var _this = this;\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nvar tagRegEx = /*#__PURE__*/_wrapRegExp(/^([a-z]{2,3})(_([A-Z]{1}[a-z]{3}))?(_([A-Z]{2}|[0-9]{3}))?(_([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))?$/, {\n primary: 1,\n script: 3,\n region: 5,\n variant: 7\n});\nvar LANGUAGE_TAGS = _languageTags.default;\n\n/**\n * Break a sting Language Tag into it's components based on IETF BCP 47\n *\n * @param tag - (_casing sensitive_) the language tag to be parsed, e.g.:\n * - `pt` for portuguese\n * - `pt_BR` for brasilia portuguese\n * - `zh_Hant_TW` for _Chinese (Traditional, Taiwan)_\n * - `en_US_POSIX` for _English (United States, Computer)_\n */\nfunction parseLanguageTag(tag) {\n var matches = tagRegEx.exec(tag);\n return matches === null || matches === void 0 ? void 0 : matches.groups;\n}\n\n/**\n * Replace the delimiter of the string Language Tag, by default to the ISO standard `-`\n *\n * @param tag - the language tag to be converted, e.g.:\n * - `pt` for portuguese\n * - `pt_BR` for brasilia portuguese\n * - `zh_Hant_TW` for _Chinese (Traditional, Taiwan)_\n * - `en_US_POSIX` for _English (United States, Computer)_\n */\nfunction convertLanguageTag(tag) {\n var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return tag.replace(/[_-]/gi, delimiter);\n}\n\n/**\n * Convert the string Language Tag to all lowercase hyphenated representation\n *\n * @example `zh_Hant_TW` becomes `zh-hant-tw`\n *\n * @param tag - the language tag to be normalized, e.g.:\n * - `pt` for portuguese\n * - `pt_BR` for brasilia portuguese\n * - `zh_Hant_TW` for _Chinese (Traditional, Taiwan)_\n * - `en_US_POSIX` for _English (United States, Computer)_\n */\nfunction normalizeLanguageTag(tag) {\n return convertLanguageTag(tag).toLowerCase();\n}\n\n/** Get array of all possible `LanguageTagDefinition` */\nfunction getLanguageTags() {\n return LANGUAGE_TAGS;\n}\n\n/**\n * Get a specific `LanguageTagDefinition` by its id\n *\n * @param id example `\"1\"` for _English_ or `\"361\"` for _Croatian (Bosnia and Herzegovina)_\n * @returns\n */\nfunction getLanguageTagById(id) {\n return LANGUAGE_TAGS.find(function (def) {\n return def.id === id;\n });\n}\n\n/**\n * Convert the string Language Tag to all lowercase hyphenated representation\n *\n * @example `zh_Hant_TW` becomes `zh-hant-tw`\n *\n * @param code - the code (aka. language tag) to be searched for, e.g.:\n * - `pt` for portuguese\n * - `pt_BR` for brasilia portuguese\n * - `zh_Hant_TW` for _Chinese (Traditional, Taiwan)_\n * - `en_US_POSIX` for _English (United States, Computer)_\n */\nfunction getLanguageTagByCode(code) {\n var nt = normalizeLanguageTag;\n return LANGUAGE_TAGS.find(function (def) {\n return nt(def.code) === nt(code);\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SupportLevels = exports.SURVEY_CREATION_LOCALE_CODES = exports.SITE_WIDE_LOCALE_CODES = exports.MULTILINGUAL_SURVEYS_LOCALE_CODES = exports.LANGUAGES_WITH_SUBDOMAINS = exports.LANGUAGES_BY_ID = exports.LANGUAGES_BY_CODE = exports.LANGUAGES = void 0;\n/*\nSM has the language data recorded in a number of places. There is DB table sm_Localization_D_Languages present in multiple schemas.\nHere are some examples of the sources that support createweb languages. There are many more references to the top 17 languages supported SM-wide.\nhttps://code.corp.surveymonkey.com/devmonkeys/smlib.locale/blob/master/smlib/locale/locale.yml#L330\nhttps://code.corp.surveymonkey.com/devmonkeys/createweb/blob/develop/createweb/lib/translations.py\nhttps://code.corp.surveymonkey.com/devmonkeys/smsdk.surveysvc/blob/master/smsdk/surveysvc/lib/languages.yml\nhttps://code.corp.surveymonkey.com/devmonkeys/AnWeb/blob/develop/anweb/lib/languages.py\n*/\n/**\n * @constant\n * @default\n * @memberof module:@sm/locale\n */\nvar SupportLevels;\n/**\n * The locale codes has been broken down into three lists so that we can\n * expose all the locales for a SupportLevel as an argument to a function (or React Component prop)\n */\nexports.SupportLevels = SupportLevels;\n(function (SupportLevels) {\n SupportLevels[SupportLevels[\"SITE_WIDE\"] = 1] = \"SITE_WIDE\";\n SupportLevels[SupportLevels[\"SURVEY_CREATION\"] = 2] = \"SURVEY_CREATION\";\n SupportLevels[SupportLevels[\"MULTILINGUAL_SURVEYS\"] = 3] = \"MULTILINGUAL_SURVEYS\";\n})(SupportLevels || (exports.SupportLevels = SupportLevels = {}));\nvar SITE_WIDE_LOCALE_CODES = ['zh-tw', 'pt-br', 'da', 'nl', 'en', 'fi', 'fr', 'de', 'it', 'ja', 'ko', 'no', 'ru', 'es', 'sv', 'tr', 'gb'];\nexports.SITE_WIDE_LOCALE_CODES = SITE_WIDE_LOCALE_CODES;\nvar SURVEY_CREATION_LOCALE_CODES = ['sq', 'ar', 'hy', 'eu', 'bn', 'bs', 'bg', 'ca', 'zh-cn', 'pt', 'hr', 'cs', 'et', 'tl', 'ka', 'el', 'he', 'hi', 'hu', 'is', 'id', 'ga', 'ku', 'lv', 'lt', 'mk', 'ms', 'ml', 'fa', 'pl', 'pa', 'ro', 'sr', 'sk', 'sl', 'sw', 'ta', 'te', 'th', 'uk', 'vi', 'cy'];\nexports.SURVEY_CREATION_LOCALE_CODES = SURVEY_CREATION_LOCALE_CODES;\nvar MULTILINGUAL_SURVEYS_LOCALE_CODES = [];\nexports.MULTILINGUAL_SURVEYS_LOCALE_CODES = MULTILINGUAL_SURVEYS_LOCALE_CODES;\n/**\n * An array of available languages.\n *\n * The language codes in the database do not follow IETF language tag standard https://en.wikipedia.org/wiki/IETF_language_tag\n * or confuse regional locale with language dialect. That causes issues when working with internationalization libraries like ICU.\n * The field code is the \"code\" as in the SM database and python packages. The \"codeIETF\" is the correct code. This API accepts both.\n * For the output choose \"code\" unless you are sure that the consumer supports IETF codes (e.g, uses this library).\n * @type {Array}\n * @memberof module:@sm/locale\n */\nvar LANGUAGES = [{\n code: 'sq',\n name: 'Albanian',\n id: 24,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ar',\n name: 'Arabic',\n id: 25,\n countries: [],\n isRTL: true,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'hy',\n name: 'Armenian',\n id: 26,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'eu',\n name: 'Basque',\n id: 27,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'bn',\n name: 'Bengali',\n id: 28,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'bs',\n name: 'Bosnian',\n id: 29,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'bg',\n name: 'Bulgarian',\n id: 30,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ca',\n name: 'Catalan',\n id: 31,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'zh-cn',\n codeIETF: 'zh-Hans',\n name: 'Chinese (Simplified)',\n id: 2,\n countries: [],\n isRTL: false,\n subdomain: 'www',\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'zh-tw',\n codeIETF: 'zh-Hant',\n name: 'Chinese (Traditional)',\n displayName: '中文(繁體)',\n id: 3,\n helplink: 'zh_TW',\n helpCenterLangCode: 'zh',\n tld: 'com',\n subdomain: 'zh',\n countries: ['TW'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 14\n}, {\n code: 'pt-br',\n name: 'Portuguese (Brazilian)',\n id: 17,\n displayName: 'Português',\n helplink: 'pt_BR',\n helpCenterLangCode: 'pt-br',\n tld: 'com',\n subdomain: 'pt',\n countries: ['BR', 'PT', 'AO', 'CV'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 2\n}, {\n code: 'pt',\n name: 'Portuguese (Iberian)',\n id: 16,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'hr',\n name: 'Croatian',\n id: 32,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'cs',\n name: 'Czech',\n id: 33,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'da',\n name: 'Danish',\n displayName: 'Dansk',\n tld: 'com',\n helplink: 'en_US',\n subdomain: 'da',\n id: 4,\n countries: ['DK', 'GL'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 10\n}, {\n code: 'nl',\n name: 'Dutch',\n id: 5,\n displayName: 'Nederlands',\n helplink: 'nl_NL',\n helpCenterLangCode: 'nl',\n subdomain: 'nl',\n tld: 'com',\n countries: ['NL', 'BE'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 4\n}, {\n code: 'en',\n name: 'English',\n id: 1,\n tld: 'com',\n subdomain: 'www',\n displayName: 'English',\n helplink: 'en_US',\n helpCenterLangCode: 'en',\n countries: ['US', 'AU', 'IE', 'CA', 'GG', 'NZ'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 5\n}, {\n code: 'gb',\n name: 'English (UK)',\n id: 60,\n tld: 'com',\n subdomain: 'uk',\n displayName: 'English (UK)',\n helplink: 'en_US',\n helpCenterLangCode: 'en',\n countries: ['GB'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 6\n}, {\n code: 'et',\n name: 'Estonian',\n id: 34,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'tl',\n codeIETF: 'fil',\n name: 'Filipino',\n id: 35,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'fi',\n name: 'Finnish',\n id: 6,\n displayName: 'Suomi',\n helplink: 'en_US',\n tld: 'com',\n subdomain: 'fi',\n countries: ['FI'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 17\n}, {\n code: 'fr',\n name: 'French',\n id: 7,\n displayName: 'Français',\n helplink: 'fr',\n helpCenterLangCode: 'fr',\n tld: 'com',\n subdomain: 'fr',\n countries: ['FR', 'MA', 'DZ', 'TN', 'RE', 'CI', 'SN', 'TG', 'MQ', 'GP', 'PF', 'CG', 'CM', 'BJ', 'CD'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 7\n}, {\n code: 'ka',\n name: 'Georgian',\n id: 36,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'de',\n name: 'German',\n id: 8,\n displayName: 'Deutsch',\n helplink: 'de',\n helpCenterLangCode: 'de',\n tld: 'com',\n subdomain: 'de',\n countries: ['DE', 'AT', 'CH', 'LI'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 3\n}, {\n code: 'el',\n name: 'Greek',\n id: 9,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'he',\n name: 'Hebrew',\n id: 37,\n countries: [],\n isRTL: true,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'hi',\n name: 'Hindi',\n id: 38,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'hu',\n name: 'Hungarian',\n id: 39,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'is',\n name: 'Icelandic',\n id: 40,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'id',\n name: 'Indonesian',\n id: 41,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ga',\n name: 'Irish',\n id: 42,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'it',\n name: 'Italian',\n id: 10,\n displayName: 'Italiano',\n helplink: 'it',\n helpCenterLangCode: 'it',\n tld: 'com',\n subdomain: 'it',\n countries: ['IT'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 9\n}, {\n code: 'ja',\n name: 'Japanese',\n id: 11,\n displayName: '日本語',\n helplink: 'ja',\n helpCenterLangCode: 'ja',\n tld: 'com',\n subdomain: 'jp',\n countries: ['JP'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 12\n}, {\n code: 'ko',\n name: 'Korean',\n id: 12,\n displayName: '한국어',\n helplink: 'ko',\n helpCenterLangCode: 'ko',\n tld: 'com',\n subdomain: 'ko',\n countries: ['KP', 'KR'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 13\n}, {\n code: 'ku',\n name: 'Kurdish',\n id: 43,\n countries: [],\n /** Kurdish can be written in two scripts - it may or may not be RTL */\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'lv',\n name: 'Latvian',\n id: 44,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'lt',\n name: 'Lithuanian',\n id: 45,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'mk',\n name: 'Macedonian',\n id: 46,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ms',\n name: 'Malay',\n id: 13,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ml',\n name: 'Malayalam',\n id: 47,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'no',\n codeIETF: 'nb',\n name: 'Norwegian',\n id: 14,\n displayName: 'Norsk',\n helplink: 'en_US',\n tld: 'com',\n subdomain: 'no',\n countries: ['NO', 'SJ'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 16\n}, {\n code: 'fa',\n name: 'Persian',\n id: 48,\n countries: [],\n isRTL: true,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'pl',\n name: 'Polish',\n id: 15,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'pa',\n name: 'Punjabi',\n id: 49,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ro',\n name: 'Romanian',\n id: 50,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'ru',\n name: 'Russian',\n id: 18,\n displayName: 'Русский',\n helplink: 'ru',\n helpCenterLangCode: 'ru',\n tld: 'com',\n subdomain: 'ru',\n countries: ['RU', 'BY', 'UA', 'KZ', 'UZ', 'TJ', 'AZ', 'TM', 'AM', 'MD', 'KG'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 8\n}, {\n code: 'sr',\n name: 'Serbian',\n id: 51,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'sk',\n name: 'Slovak',\n id: 52,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'sl',\n name: 'Slovenian',\n id: 53,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'es',\n name: 'Spanish',\n id: 19,\n displayName: 'Español',\n helplink: 'es',\n helpCenterLangCode: 'es-la',\n tld: 'com',\n subdomain: 'es',\n countries: ['MX', 'ES', 'AR', 'GT', 'HN', 'SV', 'NI', 'CR', 'PA', 'GQ', 'CU', 'DO', 'PR', 'VE', 'CO', 'EC', 'PE', 'BO', 'PY', 'CL', 'UY'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 1\n}, {\n code: 'sw',\n name: 'Swahili',\n id: 54,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'sv',\n name: 'Swedish',\n id: 20,\n displayName: 'Svenska',\n helplink: 'en_US',\n tld: 'com',\n subdomain: 'sv',\n countries: ['SE'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 11\n}, {\n code: 'ta',\n name: 'Tamil',\n id: 55,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'te',\n name: 'Telugu',\n id: 56,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'th',\n name: 'Thai',\n id: 57,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'tr',\n name: 'Turkish',\n id: 21,\n displayName: 'Türkçe',\n helplink: 'tr',\n helpCenterLangCode: 'tr',\n tld: 'com',\n subdomain: 'tr',\n countries: ['TR'],\n isRTL: false,\n supportLevel: SupportLevels.SITE_WIDE,\n displayOrder: 15\n}, {\n code: 'uk',\n name: 'Ukrainian',\n id: 22,\n countries: ['UA'],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'vi',\n name: 'Vietnamese',\n id: 58,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}, {\n code: 'cy',\n name: 'Welsh',\n id: 59,\n countries: [],\n isRTL: false,\n supportLevel: SupportLevels.SURVEY_CREATION\n}];\n\n/**\n * Languages by ID\n * @memberof module:@sm/locale\n */\nexports.LANGUAGES = LANGUAGES;\nvar LANGUAGES_BY_ID_REC = {};\n/**\n * Languages by code\n * @memberof module:@sm/locale\n */\nvar LANGUAGES_BY_CODE_REC = {};\n/**\n * Languages with sub-domains\n * @memberof module:@sm/locale\n */\nvar LANGUAGES_WITH_SUBDOMAINS_REC = [];\nLANGUAGES.forEach(function (language) {\n LANGUAGES_BY_ID_REC[language.id] = language;\n LANGUAGES_BY_CODE_REC[language.code] = language;\n if (language.codeIETF) {\n LANGUAGES_BY_CODE_REC[language.codeIETF] = language;\n }\n if (language.subdomain) {\n LANGUAGES_WITH_SUBDOMAINS_REC.push(language);\n }\n});\nvar LANGUAGES_BY_ID = Object.freeze(LANGUAGES_BY_ID_REC);\nexports.LANGUAGES_BY_ID = LANGUAGES_BY_ID;\nvar LANGUAGES_BY_CODE = Object.freeze(LANGUAGES_BY_CODE_REC);\nexports.LANGUAGES_BY_CODE = LANGUAGES_BY_CODE;\nvar LANGUAGES_WITH_SUBDOMAINS = Object.freeze(LANGUAGES_WITH_SUBDOMAINS_REC);\nexports.LANGUAGES_WITH_SUBDOMAINS = LANGUAGES_WITH_SUBDOMAINS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.USTerritoryCountryCodes = exports.SMSupportedCountryCodes = exports.GDPRCountryCodes = exports.GBCountryCodes = exports.EUCountryCodes = exports.DASHCountryCodes = exports.CountryCodes = void 0;\nvar CountryCodes;\nexports.CountryCodes = CountryCodes;\n(function (CountryCodes) {\n CountryCodes[\"AE\"] = \"AE\";\n CountryCodes[\"AR\"] = \"AR\";\n CountryCodes[\"AU\"] = \"AU\";\n CountryCodes[\"BR\"] = \"BR\";\n CountryCodes[\"CA\"] = \"CA\";\n CountryCodes[\"CH\"] = \"CH\";\n CountryCodes[\"LI\"] = \"LI\";\n CountryCodes[\"DK\"] = \"DK\";\n CountryCodes[\"FO\"] = \"FO\";\n CountryCodes[\"GL\"] = \"GL\";\n CountryCodes[\"AD\"] = \"AD\";\n CountryCodes[\"AL\"] = \"AL\";\n CountryCodes[\"AT\"] = \"AT\";\n CountryCodes[\"AX\"] = \"AX\";\n CountryCodes[\"BA\"] = \"BA\";\n CountryCodes[\"BE\"] = \"BE\";\n CountryCodes[\"BG\"] = \"BG\";\n CountryCodes[\"BY\"] = \"BY\";\n CountryCodes[\"CY\"] = \"CY\";\n CountryCodes[\"CZ\"] = \"CZ\";\n CountryCodes[\"DE\"] = \"DE\";\n CountryCodes[\"EE\"] = \"EE\";\n CountryCodes[\"ES\"] = \"ES\";\n CountryCodes[\"FI\"] = \"FI\";\n CountryCodes[\"FR\"] = \"FR\";\n CountryCodes[\"GF\"] = \"GF\";\n CountryCodes[\"GP\"] = \"GP\";\n CountryCodes[\"GR\"] = \"GR\";\n CountryCodes[\"HR\"] = \"HR\";\n CountryCodes[\"HU\"] = \"HU\";\n CountryCodes[\"IE\"] = \"IE\";\n CountryCodes[\"IS\"] = \"IS\";\n CountryCodes[\"IT\"] = \"IT\";\n CountryCodes[\"LT\"] = \"LT\";\n CountryCodes[\"LU\"] = \"LU\";\n CountryCodes[\"LV\"] = \"LV\";\n CountryCodes[\"MC\"] = \"MC\";\n CountryCodes[\"MD\"] = \"MD\";\n CountryCodes[\"ME\"] = \"ME\";\n CountryCodes[\"MF\"] = \"MF\";\n CountryCodes[\"MK\"] = \"MK\";\n CountryCodes[\"MQ\"] = \"MQ\";\n CountryCodes[\"MT\"] = \"MT\";\n CountryCodes[\"NL\"] = \"NL\";\n CountryCodes[\"PL\"] = \"PL\";\n CountryCodes[\"PM\"] = \"PM\";\n CountryCodes[\"PT\"] = \"PT\";\n CountryCodes[\"RE\"] = \"RE\";\n CountryCodes[\"RO\"] = \"RO\";\n CountryCodes[\"RS\"] = \"RS\";\n CountryCodes[\"RU\"] = \"RU\";\n CountryCodes[\"SI\"] = \"SI\";\n CountryCodes[\"SK\"] = \"SK\";\n CountryCodes[\"SM\"] = \"SM\";\n CountryCodes[\"TF\"] = \"TF\";\n CountryCodes[\"TR\"] = \"TR\";\n CountryCodes[\"UA\"] = \"UA\";\n CountryCodes[\"VA\"] = \"VA\";\n CountryCodes[\"YT\"] = \"YT\";\n CountryCodes[\"GB\"] = \"GB\";\n CountryCodes[\"GG\"] = \"GG\";\n CountryCodes[\"GI\"] = \"GI\";\n CountryCodes[\"GS\"] = \"GS\";\n CountryCodes[\"IM\"] = \"IM\";\n CountryCodes[\"JE\"] = \"JE\";\n CountryCodes[\"HK\"] = \"HK\";\n CountryCodes[\"IN\"] = \"IN\";\n CountryCodes[\"JP\"] = \"JP\";\n CountryCodes[\"KR\"] = \"KR\";\n CountryCodes[\"MX\"] = \"MX\";\n CountryCodes[\"NO\"] = \"NO\";\n CountryCodes[\"NZ\"] = \"NZ\";\n CountryCodes[\"SE\"] = \"SE\";\n CountryCodes[\"SG\"] = \"SG\";\n CountryCodes[\"TW\"] = \"TW\";\n CountryCodes[\"AF\"] = \"AF\";\n CountryCodes[\"AG\"] = \"AG\";\n CountryCodes[\"AI\"] = \"AI\";\n CountryCodes[\"AM\"] = \"AM\";\n CountryCodes[\"AN\"] = \"AN\";\n CountryCodes[\"AO\"] = \"AO\";\n CountryCodes[\"AQ\"] = \"AQ\";\n CountryCodes[\"AS\"] = \"AS\";\n CountryCodes[\"AW\"] = \"AW\";\n CountryCodes[\"AZ\"] = \"AZ\";\n CountryCodes[\"BB\"] = \"BB\";\n CountryCodes[\"BD\"] = \"BD\";\n CountryCodes[\"BF\"] = \"BF\";\n CountryCodes[\"BH\"] = \"BH\";\n CountryCodes[\"BI\"] = \"BI\";\n CountryCodes[\"BJ\"] = \"BJ\";\n CountryCodes[\"BL\"] = \"BL\";\n CountryCodes[\"BM\"] = \"BM\";\n CountryCodes[\"BN\"] = \"BN\";\n CountryCodes[\"BO\"] = \"BO\";\n CountryCodes[\"BS\"] = \"BS\";\n CountryCodes[\"BT\"] = \"BT\";\n CountryCodes[\"BV\"] = \"BV\";\n CountryCodes[\"BW\"] = \"BW\";\n CountryCodes[\"BZ\"] = \"BZ\";\n CountryCodes[\"CC\"] = \"CC\";\n CountryCodes[\"CD\"] = \"CD\";\n CountryCodes[\"CF\"] = \"CF\";\n CountryCodes[\"CG\"] = \"CG\";\n CountryCodes[\"CI\"] = \"CI\";\n CountryCodes[\"CK\"] = \"CK\";\n CountryCodes[\"CL\"] = \"CL\";\n CountryCodes[\"CM\"] = \"CM\";\n CountryCodes[\"CN\"] = \"CN\";\n CountryCodes[\"CO\"] = \"CO\";\n CountryCodes[\"CR\"] = \"CR\";\n CountryCodes[\"CV\"] = \"CV\";\n CountryCodes[\"CX\"] = \"CX\";\n CountryCodes[\"DJ\"] = \"DJ\";\n CountryCodes[\"DM\"] = \"DM\";\n CountryCodes[\"DO\"] = \"DO\";\n CountryCodes[\"DZ\"] = \"DZ\";\n CountryCodes[\"EC\"] = \"EC\";\n CountryCodes[\"EG\"] = \"EG\";\n CountryCodes[\"EH\"] = \"EH\";\n CountryCodes[\"ER\"] = \"ER\";\n CountryCodes[\"ET\"] = \"ET\";\n CountryCodes[\"FJ\"] = \"FJ\";\n CountryCodes[\"FK\"] = \"FK\";\n CountryCodes[\"FM\"] = \"FM\";\n CountryCodes[\"GA\"] = \"GA\";\n CountryCodes[\"GD\"] = \"GD\";\n CountryCodes[\"GE\"] = \"GE\";\n CountryCodes[\"GH\"] = \"GH\";\n CountryCodes[\"GM\"] = \"GM\";\n CountryCodes[\"GN\"] = \"GN\";\n CountryCodes[\"GQ\"] = \"GQ\";\n CountryCodes[\"GT\"] = \"GT\";\n CountryCodes[\"GU\"] = \"GU\";\n CountryCodes[\"GW\"] = \"GW\";\n CountryCodes[\"GY\"] = \"GY\";\n CountryCodes[\"HM\"] = \"HM\";\n CountryCodes[\"HN\"] = \"HN\";\n CountryCodes[\"HT\"] = \"HT\";\n CountryCodes[\"ID\"] = \"ID\";\n CountryCodes[\"IL\"] = \"IL\";\n CountryCodes[\"IO\"] = \"IO\";\n CountryCodes[\"IQ\"] = \"IQ\";\n CountryCodes[\"JM\"] = \"JM\";\n CountryCodes[\"JO\"] = \"JO\";\n CountryCodes[\"KE\"] = \"KE\";\n CountryCodes[\"KG\"] = \"KG\";\n CountryCodes[\"KH\"] = \"KH\";\n CountryCodes[\"KI\"] = \"KI\";\n CountryCodes[\"KM\"] = \"KM\";\n CountryCodes[\"KN\"] = \"KN\";\n CountryCodes[\"KP\"] = \"KP\";\n CountryCodes[\"KW\"] = \"KW\";\n CountryCodes[\"KY\"] = \"KY\";\n CountryCodes[\"KZ\"] = \"KZ\";\n CountryCodes[\"LA\"] = \"LA\";\n CountryCodes[\"LB\"] = \"LB\";\n CountryCodes[\"LC\"] = \"LC\";\n CountryCodes[\"LK\"] = \"LK\";\n CountryCodes[\"LR\"] = \"LR\";\n CountryCodes[\"LS\"] = \"LS\";\n CountryCodes[\"LY\"] = \"LY\";\n CountryCodes[\"MA\"] = \"MA\";\n CountryCodes[\"MG\"] = \"MG\";\n CountryCodes[\"MH\"] = \"MH\";\n CountryCodes[\"ML\"] = \"ML\";\n CountryCodes[\"MM\"] = \"MM\";\n CountryCodes[\"MN\"] = \"MN\";\n CountryCodes[\"MO\"] = \"MO\";\n CountryCodes[\"MP\"] = \"MP\";\n CountryCodes[\"MR\"] = \"MR\";\n CountryCodes[\"MS\"] = \"MS\";\n CountryCodes[\"MU\"] = \"MU\";\n CountryCodes[\"MV\"] = \"MV\";\n CountryCodes[\"MW\"] = \"MW\";\n CountryCodes[\"MY\"] = \"MY\";\n CountryCodes[\"MZ\"] = \"MZ\";\n CountryCodes[\"NA\"] = \"NA\";\n CountryCodes[\"NC\"] = \"NC\";\n CountryCodes[\"NE\"] = \"NE\";\n CountryCodes[\"NF\"] = \"NF\";\n CountryCodes[\"NG\"] = \"NG\";\n CountryCodes[\"NI\"] = \"NI\";\n CountryCodes[\"NP\"] = \"NP\";\n CountryCodes[\"NR\"] = \"NR\";\n CountryCodes[\"NU\"] = \"NU\";\n CountryCodes[\"OM\"] = \"OM\";\n CountryCodes[\"PA\"] = \"PA\";\n CountryCodes[\"PE\"] = \"PE\";\n CountryCodes[\"PF\"] = \"PF\";\n CountryCodes[\"PG\"] = \"PG\";\n CountryCodes[\"PH\"] = \"PH\";\n CountryCodes[\"PK\"] = \"PK\";\n CountryCodes[\"PN\"] = \"PN\";\n CountryCodes[\"PR\"] = \"PR\";\n CountryCodes[\"PS\"] = \"PS\";\n CountryCodes[\"PW\"] = \"PW\";\n CountryCodes[\"PY\"] = \"PY\";\n CountryCodes[\"QA\"] = \"QA\";\n CountryCodes[\"RW\"] = \"RW\";\n CountryCodes[\"SA\"] = \"SA\";\n CountryCodes[\"SB\"] = \"SB\";\n CountryCodes[\"SC\"] = \"SC\";\n CountryCodes[\"SH\"] = \"SH\";\n CountryCodes[\"SJ\"] = \"SJ\";\n CountryCodes[\"SL\"] = \"SL\";\n CountryCodes[\"SN\"] = \"SN\";\n CountryCodes[\"SO\"] = \"SO\";\n CountryCodes[\"SR\"] = \"SR\";\n CountryCodes[\"ST\"] = \"ST\";\n CountryCodes[\"SV\"] = \"SV\";\n CountryCodes[\"SY\"] = \"SY\";\n CountryCodes[\"SZ\"] = \"SZ\";\n CountryCodes[\"TC\"] = \"TC\";\n CountryCodes[\"TD\"] = \"TD\";\n CountryCodes[\"TG\"] = \"TG\";\n CountryCodes[\"TH\"] = \"TH\";\n CountryCodes[\"TJ\"] = \"TJ\";\n CountryCodes[\"TK\"] = \"TK\";\n CountryCodes[\"TL\"] = \"TL\";\n CountryCodes[\"TM\"] = \"TM\";\n CountryCodes[\"TN\"] = \"TN\";\n CountryCodes[\"TO\"] = \"TO\";\n CountryCodes[\"TT\"] = \"TT\";\n CountryCodes[\"TV\"] = \"TV\";\n CountryCodes[\"TZ\"] = \"TZ\";\n CountryCodes[\"UG\"] = \"UG\";\n CountryCodes[\"UM\"] = \"UM\";\n CountryCodes[\"US\"] = \"US\";\n CountryCodes[\"UY\"] = \"UY\";\n CountryCodes[\"UZ\"] = \"UZ\";\n CountryCodes[\"VC\"] = \"VC\";\n CountryCodes[\"VE\"] = \"VE\";\n CountryCodes[\"VG\"] = \"VG\";\n CountryCodes[\"VI\"] = \"VI\";\n CountryCodes[\"VN\"] = \"VN\";\n CountryCodes[\"VU\"] = \"VU\";\n CountryCodes[\"WF\"] = \"WF\";\n CountryCodes[\"WS\"] = \"WS\";\n CountryCodes[\"YE\"] = \"YE\";\n CountryCodes[\"ZM\"] = \"ZM\";\n CountryCodes[\"ZW\"] = \"ZW\";\n CountryCodes[\"ZA\"] = \"ZA\";\n})(CountryCodes || (exports.CountryCodes = CountryCodes = {}));\nvar GDPRCountryCodes = [CountryCodes.AT, CountryCodes.BE, CountryCodes.BG, CountryCodes.CH, CountryCodes.CY, CountryCodes.CZ, CountryCodes.DE, CountryCodes.DK, CountryCodes.EE, CountryCodes.ES, CountryCodes.FI, CountryCodes.FR, CountryCodes.GB, CountryCodes.GR, CountryCodes.HR, CountryCodes.HU, CountryCodes.IE, CountryCodes.IM, CountryCodes.IT, CountryCodes.LT, CountryCodes.LU, CountryCodes.LV, CountryCodes.MC, CountryCodes.MT, CountryCodes.NL, CountryCodes.PL, CountryCodes.PT, CountryCodes.RO, CountryCodes.SE, CountryCodes.SI, CountryCodes.SK, CountryCodes.IS, CountryCodes.LI, CountryCodes.NO];\nexports.GDPRCountryCodes = GDPRCountryCodes;\nvar DASHCountryCodes = [CountryCodes.DE, CountryCodes.AT, CountryCodes.CH];\nexports.DASHCountryCodes = DASHCountryCodes;\nvar GBCountryCodes = [CountryCodes.GB, CountryCodes.GG, CountryCodes.GI, CountryCodes.GS, CountryCodes.IM, CountryCodes.JE];\nexports.GBCountryCodes = GBCountryCodes;\nvar USTerritoryCountryCodes = [CountryCodes.GU, CountryCodes.PR, CountryCodes.UM, CountryCodes.US, CountryCodes.VI];\nexports.USTerritoryCountryCodes = USTerritoryCountryCodes;\nvar EUCountryCodes = [CountryCodes.AT, CountryCodes.BE, CountryCodes.BG, CountryCodes.CY, CountryCodes.CZ, CountryCodes.DE, CountryCodes.DK, CountryCodes.EE, CountryCodes.ES, CountryCodes.FI, CountryCodes.FR, CountryCodes.GB, CountryCodes.GR, CountryCodes.HR, CountryCodes.HU, CountryCodes.IE, CountryCodes.IM, CountryCodes.IT, CountryCodes.LT, CountryCodes.LU, CountryCodes.LV, CountryCodes.MC, CountryCodes.MT, CountryCodes.NL, CountryCodes.PL, CountryCodes.PT, CountryCodes.RO, CountryCodes.SE, CountryCodes.SI, CountryCodes.SK];\nexports.EUCountryCodes = EUCountryCodes;\nvar SMSupportedCountryCodes = [CountryCodes.AE, CountryCodes.AR, CountryCodes.AU, CountryCodes.BR, CountryCodes.CA, CountryCodes.CH, CountryCodes.LI, CountryCodes.DK, CountryCodes.FO, CountryCodes.GL, CountryCodes.AD, CountryCodes.AL, CountryCodes.AT, CountryCodes.AX, CountryCodes.BA, CountryCodes.BE, CountryCodes.BG, CountryCodes.BY, CountryCodes.CY, CountryCodes.CZ, CountryCodes.DE, CountryCodes.EE, CountryCodes.ES, CountryCodes.FI, CountryCodes.FR, CountryCodes.GF, CountryCodes.GP, CountryCodes.GR, CountryCodes.HR, CountryCodes.HU, CountryCodes.IE, CountryCodes.IS, CountryCodes.IT, CountryCodes.LT, CountryCodes.LU, CountryCodes.LV, CountryCodes.MC, CountryCodes.MD, CountryCodes.ME, CountryCodes.MF, CountryCodes.MK, CountryCodes.MQ, CountryCodes.MT, CountryCodes.NL, CountryCodes.PL, CountryCodes.PM, CountryCodes.PT, CountryCodes.RE, CountryCodes.RO, CountryCodes.RS, CountryCodes.RU, CountryCodes.SI, CountryCodes.SK, CountryCodes.SM, CountryCodes.TF, CountryCodes.TR, CountryCodes.UA, CountryCodes.VA, CountryCodes.YT, CountryCodes.GB, CountryCodes.GG, CountryCodes.GI, CountryCodes.GS, CountryCodes.IM, CountryCodes.JE, CountryCodes.HK, CountryCodes.IN, CountryCodes.JP, CountryCodes.KR, CountryCodes.MX, CountryCodes.NO, CountryCodes.NZ, CountryCodes.SE, CountryCodes.SG, CountryCodes.TW, CountryCodes.AF, CountryCodes.AG, CountryCodes.AI, CountryCodes.AM, CountryCodes.AN, CountryCodes.AO, CountryCodes.AQ, CountryCodes.AS, CountryCodes.AW, CountryCodes.AZ, CountryCodes.BB, CountryCodes.BD, CountryCodes.BF, CountryCodes.BH, CountryCodes.BI, CountryCodes.BJ, CountryCodes.BL, CountryCodes.BM, CountryCodes.BN, CountryCodes.BO, CountryCodes.BS, CountryCodes.BT, CountryCodes.BV, CountryCodes.BW, CountryCodes.BZ, CountryCodes.CC, CountryCodes.CD, CountryCodes.CF, CountryCodes.CG, CountryCodes.CI, CountryCodes.CK, CountryCodes.CL, CountryCodes.CM, CountryCodes.CN, CountryCodes.CO, CountryCodes.CR, CountryCodes.CV, CountryCodes.CX, CountryCodes.DJ, CountryCodes.DM, CountryCodes.DO, CountryCodes.DZ, CountryCodes.EC, CountryCodes.EG, CountryCodes.EH, CountryCodes.ER, CountryCodes.ET, CountryCodes.FJ, CountryCodes.FK, CountryCodes.FM, CountryCodes.GA, CountryCodes.GD, CountryCodes.GE, CountryCodes.GH, CountryCodes.GM, CountryCodes.GN, CountryCodes.GQ, CountryCodes.GT, CountryCodes.GU, CountryCodes.GW, CountryCodes.GY, CountryCodes.HM, CountryCodes.HN, CountryCodes.HT, CountryCodes.ID, CountryCodes.IL, CountryCodes.IO, CountryCodes.IQ, CountryCodes.JM, CountryCodes.JO, CountryCodes.KE, CountryCodes.KG, CountryCodes.KH, CountryCodes.KI, CountryCodes.KM, CountryCodes.KN, CountryCodes.KP, CountryCodes.KW, CountryCodes.KY, CountryCodes.KZ, CountryCodes.LA, CountryCodes.LB, CountryCodes.LC, CountryCodes.LK, CountryCodes.LR, CountryCodes.LS, CountryCodes.LY, CountryCodes.MA, CountryCodes.MG, CountryCodes.MH, CountryCodes.ML, CountryCodes.MM, CountryCodes.MN, CountryCodes.MO, CountryCodes.MP, CountryCodes.MR, CountryCodes.MS, CountryCodes.MU, CountryCodes.MV, CountryCodes.MW, CountryCodes.MY, CountryCodes.MZ, CountryCodes.NA, CountryCodes.NC, CountryCodes.NE, CountryCodes.NF, CountryCodes.NG, CountryCodes.NI, CountryCodes.NP, CountryCodes.NR, CountryCodes.NU, CountryCodes.OM, CountryCodes.PA, CountryCodes.PE, CountryCodes.PF, CountryCodes.PG, CountryCodes.PH, CountryCodes.PK, CountryCodes.PN, CountryCodes.PR, CountryCodes.PS, CountryCodes.PW, CountryCodes.PY, CountryCodes.QA, CountryCodes.RW, CountryCodes.SA, CountryCodes.SB, CountryCodes.SC, CountryCodes.SH, CountryCodes.SJ, CountryCodes.SL, CountryCodes.SN, CountryCodes.SO, CountryCodes.SR, CountryCodes.ST, CountryCodes.SV, CountryCodes.SY, CountryCodes.SZ, CountryCodes.TC, CountryCodes.TD, CountryCodes.TG, CountryCodes.TH, CountryCodes.TJ, CountryCodes.TK, CountryCodes.TL, CountryCodes.TM, CountryCodes.TN, CountryCodes.TO, CountryCodes.TT, CountryCodes.TV, CountryCodes.TZ, CountryCodes.UG, CountryCodes.UM, CountryCodes.US, CountryCodes.UY, CountryCodes.UZ, CountryCodes.VC, CountryCodes.VE, CountryCodes.VG, CountryCodes.VI, CountryCodes.VN, CountryCodes.VU, CountryCodes.WF, CountryCodes.WS, CountryCodes.YE, CountryCodes.ZM, CountryCodes.ZW, CountryCodes.ZA];\nexports.SMSupportedCountryCodes = SMSupportedCountryCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createMetricsTracker = void 0;\nexports.getCleanDigitalData = getCleanDigitalData;\nexports.getRoot = getRoot;\nexports.setupRoot = setupRoot;\nvar _enums = _interopRequireDefault(require(\"./types/enums\"));\nvar _helpers = require(\"./helpers\");\nvar _utils = _interopRequireDefault(require(\"./utils\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar DEFAULT_USER_ID = '1';\nvar GLOBAL_KEY = 'sm_metrics_tracker_do_not_touch_this';\n\n/**\n * Creates a new DigitalData object and populates default values for the user\n *\n * @param userId The ID of the current user\n * @returns A DigitalData object populated only with default values\n */\nfunction getCleanDigitalData() {\n var userId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_USER_ID;\n return {\n page: {\n pageInfo: {\n pageId: '',\n attributes: {},\n pathname: ''\n }\n },\n events: [],\n components: [],\n user: {\n ep201: (0, _utils.default)('ep201'),\n ep202: (0, _utils.default)('ep202'),\n id: userId\n }\n };\n}\n\n/**\n * Returns the MetricsTracker root object. If it doesn't exist, creates it.\n *\n * @param glob A reference to the global object that MetricsTrackerRoot will by saved to\n * @returns The MetricsTrackerRoot\n */\nfunction setupRoot(glob) {\n if (!glob[GLOBAL_KEY]) {\n var root = {\n subscribers: [],\n automaticSubscribers: [],\n config: {\n user: {\n id: '',\n isAuthenticated: false\n },\n dataAnalyticsAPIPath: null,\n loggingAPIPath: null,\n country: 'GB',\n legacyWeb: '',\n gtmId: ''\n },\n digitalData: getCleanDigitalData(DEFAULT_USER_ID)\n };\n glob[GLOBAL_KEY] = root;\n }\n return glob[GLOBAL_KEY];\n}\n\n/**\n * Returns the global MetricsTrackerRoot object\n *\n * @param glob A reference to the global object on which the MetricsTrackerRoot object exists\n * @returns\n */\nfunction getRoot(glob) {\n if (!glob[GLOBAL_KEY]) {\n throw new Error('Please initialize MetricsTracker with a userId before tracking events.');\n }\n return glob[GLOBAL_KEY];\n}\n\n/**\n * Creates a MetricsTrackerType object with common level functionality that is wrapped\n * in scope by the provided global object reference.\n *\n * @param glob A reference to the global namespace that the metrics tracker will be added to\n * @returns A MetricsTrackerType object with it's context bound to the passed in `glob` ref\n */\nvar createMetricsTracker = exports.createMetricsTracker = function createMetricsTracker(glob) {\n return {\n initialize: function initialize(config) {\n throw new Error('initialize not implemented');\n },\n reset: function reset() {\n throw new Error('reset not implemented');\n },\n update: function update(config) {\n // for some data points within an SPA, the configuration must be\n // updated post initialization\n var root = getRoot(glob);\n root.config = _objectSpread(_objectSpread({}, root.config), config);\n return root;\n },\n /**\n * Convenience method to update parts of the user config that can be decorated post-initialization\n *\n * @param userConfig The updated user configuration\n */\n updateUserConfig: function updateUserConfig(userConfigUpdate) {\n var root = getRoot(glob);\n root.config.user = _objectSpread(_objectSpread({}, root.config.user), userConfigUpdate);\n return root;\n },\n getSubscribers: function getSubscribers() {\n var _getRoot = getRoot(glob),\n subscribers = _getRoot.subscribers;\n return subscribers;\n },\n getAutomaticSubscribers: function getAutomaticSubscribers() {\n var _getRoot2 = getRoot(glob),\n automaticSubscribers = _getRoot2.automaticSubscribers;\n return automaticSubscribers;\n },\n track: function track(event) {\n var _event$data, _event$data2, _event$data2$data;\n var root = getRoot(glob);\n if (root.config.user.id === '') {\n throw new Error('Please initialize MetricsTracker with a userId before tracking events.');\n }\n var maskedEvent = event;\n\n // mask email addresses\n if (event !== null && event !== void 0 && (_event$data = event.data) !== null && _event$data !== void 0 && _event$data.email) {\n maskedEvent.data.email = (0, _helpers.maskEmail)(event.data.email);\n }\n if (event !== null && event !== void 0 && (_event$data2 = event.data) !== null && _event$data2 !== void 0 && (_event$data2$data = _event$data2.data) !== null && _event$data2$data !== void 0 && _event$data2$data.email) {\n maskedEvent.data.data.email = (0, _helpers.maskEmail)(event.data.data.email);\n }\n if (_enums.default[event.name]) {\n root.digitalData.events.push(event);\n if (_enums.default.COMPONENT_ADD === event.name) {\n root.digitalData.components.push(event.data);\n }\n if (event.name === _enums.default.PAGE_VIEW || event.name === _enums.default.VIRTUAL_PAGE_VIEW) {\n root.digitalData = (0, _helpers.pageViewMutation)(event, root.digitalData);\n }\n root.subscribers.forEach(function (subscriber) {\n subscriber(event, root.config);\n });\n }\n },\n automaticTrack: function automaticTrack(event) {\n var root = getRoot(glob);\n root.automaticSubscribers.forEach(function (subscriber) {\n subscriber(event, root.config);\n });\n },\n addSubscriber: function addSubscriber(subscriber) {\n /**\n * We always want to allow the subscribers to subscribe. If the user\n * did not accept GDPR, we don't fire events; hence, we never violate GDPR.\n * If, however, the user does allow tracking, we don't want to subscribers\n * to re-subscribe.\n */\n var root = getRoot(glob);\n root.subscribers.push(subscriber);\n },\n addAutomaticSubscriber: function addAutomaticSubscriber(subscriber) {\n var root = getRoot(glob);\n root.automaticSubscribers.push(subscriber);\n },\n getConfig: function getConfig() {\n return getRoot(glob).config;\n },\n getDigitalData: function getDigitalData() {\n return getRoot(glob).digitalData;\n }\n };\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MetricsTracker = void 0;\nexports.generateMetricsAttribute = generateMetricsAttribute;\nvar _utils = require(\"@sm/utils\");\nvar _enums = _interopRequireDefault(require(\"./types/enums\"));\nvar _BaseMetricsTracker = require(\"./BaseMetricsTracker\");\nvar _DataAnalyticsMetricsSubscriber = _interopRequireDefault(require(\"./subscribers/DataAnalyticsMetricsSubscriber\"));\nvar _LoggingMetricsSubscriber = _interopRequireDefault(require(\"./subscribers/LoggingMetricsSubscriber\"));\nvar _GTMMeticsSubscriber = _interopRequireDefault(require(\"./subscribers/GTMMeticsSubscriber\"));\nvar _FacebookPixelSubscriber = _interopRequireDefault(require(\"./subscribers/FacebookPixelSubscriber\"));\nvar _AmplitudeSubscriber = _interopRequireDefault(require(\"./subscribers/AmplitudeSubscriber\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar _getClientEnvironment = (0, _utils.getClientEnvironmentDetails)(),\n isBrowser = _getClientEnvironment.isBrowser;\nvar glob = isBrowser ? window : global;\n\n// Import/require only in the browser\nvar delegatedEvents = isBrowser ? require('delegated-events') : null;\n\n/**\n * Generates a string of event data that can be used in an HTML attribute\n *\n * @param eventData The name and data of the event\n * @returns A formatted strong of the eventData passed in\n */\nfunction generateMetricsAttribute(eventData) {\n return JSON.stringify({\n name: eventData.name || _enums.default.ELEMENT_INTERACTION,\n data: eventData.data\n });\n}\nvar MetricsTracker = exports.MetricsTracker = _objectSpread(_objectSpread({}, (0, _BaseMetricsTracker.createMetricsTracker)(glob)), {}, {\n /**\n * Initializes the events and configuration of the MetricsTracker\n *\n * @override\n * @param config\n * @returns\n */\n initialize: function initialize(config) {\n var root = (0, _BaseMetricsTracker.setupRoot)(glob);\n root.config = config;\n root.digitalData = (0, _BaseMetricsTracker.getCleanDigitalData)(config.user.id);\n setupEvents();\n return root;\n },\n reset: function reset() {\n var root = (0, _BaseMetricsTracker.getRoot)(glob);\n root.digitalData = (0, _BaseMetricsTracker.getCleanDigitalData)(root.config.user.id);\n root.subscribers = [];\n root.automaticSubscribers = [];\n\n // Add the mandatory dataAnalytics subscriber\n this.addSubscriber(_DataAnalyticsMetricsSubscriber.default);\n // Add the mandatory logging subscriber\n this.addSubscriber(_LoggingMetricsSubscriber.default);\n // Add Google Tag Manager dataLayer subscriber\n MetricsTracker.addSubscriber(_GTMMeticsSubscriber.default);\n // Add Facebook Pixel subscriber\n MetricsTracker.addSubscriber(_FacebookPixelSubscriber.default);\n // Add Amplitude Subscriber\n MetricsTracker.addSubscriber(_AmplitudeSubscriber.default);\n return root;\n }\n});\nfunction setupEvents() {\n if (!isBrowser) {\n return;\n }\n if (window && window.SM && window.SM.MetricsTracker) {\n // only create one event listener on the document\n // this makes it safe for consumer apps to call initialize multiple times\n return;\n }\n\n /**\n * Add on click event listener\n * Note - this is done in the getInstance method; hence, until this\n * method is called, the event handler would never be bound.\n */\n delegatedEvents.on('click', '[data-sm-metrics]', function gce(event) {\n if (event && event.currentTarget) {\n var metricsData = event.currentTarget.getAttribute('data-sm-metrics');\n if (metricsData) {\n var metricsDataJSON = JSON.parse(metricsData);\n var eventData = metricsDataJSON.data;\n MetricsTracker.track({\n name: metricsDataJSON.name || _enums.default.ELEMENT_INTERACTION,\n data: eventData\n });\n }\n }\n });\n // Add the mandatory dataAnalytics subscriber\n MetricsTracker.addSubscriber(_DataAnalyticsMetricsSubscriber.default);\n // Add the mandatory logging subscriber\n MetricsTracker.addSubscriber(_LoggingMetricsSubscriber.default);\n // Add Google Tag Manager dataLayer subscriber\n MetricsTracker.addSubscriber(_GTMMeticsSubscriber.default);\n // Add Facebook Pixel subscriber\n MetricsTracker.addSubscriber(_FacebookPixelSubscriber.default);\n // Add Amplitude Subscriber\n MetricsTracker.addSubscriber(_AmplitudeSubscriber.default);\n setupAutomaticEvents();\n window.SM = window.SM || {};\n window.SM.MetricsTracker = MetricsTracker;\n}\nfunction setupAutomaticEvents() {\n var clickableLinks = ['.wds-button', '.wds-link', 'a', 'wds-switch__native', 'wds-checkbox__native', 'wds-radio__native', 'wds-list__item', 'wds-close', 'wds-popout__trigger', 'wds-has-menu', 'wds-slider__handle', 'wds-tab__tab-btn'];\n delegatedEvents.on('click', clickableLinks.join(','), function gce(event) {\n if (!event.target) {\n return;\n }\n var name = event.type;\n var target = event.target;\n var inputTarget = target;\n MetricsTracker.automaticTrack({\n name: _enums.default.ELEMENT_INTERACTION,\n data: {\n actionType: name,\n actionFlow: 'automatic',\n class: target.className,\n text: target.innerText,\n checked: inputTarget.checked || undefined,\n value: inputTarget.value || undefined\n }\n });\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cloneDigitalData = cloneDigitalData;\nexports.maskEmail = maskEmail;\nexports.maskString = maskString;\nexports.pageViewMutation = pageViewMutation;\nvar _enums = _interopRequireDefault(require(\"./types/enums\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction cloneDigitalData(digitalData) {\n return JSON.parse(JSON.stringify(digitalData));\n}\nfunction pageViewMutation(event, digitalData) {\n if (event.name !== _enums.default.PAGE_VIEW && event.name !== _enums.default.VIRTUAL_PAGE_VIEW) {\n return digitalData;\n }\n var newDigitalData = cloneDigitalData(digitalData);\n var _event$data = event.data,\n pageId = _event$data.pageId,\n pathname = _event$data.pathname,\n attributes = _event$data.attributes;\n newDigitalData.page.pageInfo = {\n pageId: pageId,\n pathname: pathname,\n attributes: attributes\n };\n return newDigitalData;\n}\nfunction maskString(str) {\n if (!str) return '';\n if (str.length === 1) return '*';\n if (str.length === 2) return '**';\n return str.replace(/^(.)(.*)(.)$/, function (_, a, b, c) {\n return a + b.replace(/./g, '*') + c;\n });\n}\nfunction maskEmail(email) {\n if (!email) return '';\n return email.replace(/^(.*)(@.*)$/, function (_, a, b) {\n return a.replace(/./g, '*') + b;\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ComponentMetricsProvider\", {\n enumerable: true,\n get: function get() {\n return _ComponentMetricsProvider.default;\n }\n});\nObject.defineProperty(exports, \"GTMEventData\", {\n enumerable: true,\n get: function get() {\n return _types.GTMEventData;\n }\n});\nObject.defineProperty(exports, \"MetricsTracker\", {\n enumerable: true,\n get: function get() {\n return _MetricsTracker.MetricsTracker;\n }\n});\nObject.defineProperty(exports, \"MetricsTrackerType\", {\n enumerable: true,\n get: function get() {\n return _types.MetricsTrackerType;\n }\n});\nObject.defineProperty(exports, \"PageMetricsProvider\", {\n enumerable: true,\n get: function get() {\n return _PageMetricsProvider.default;\n }\n});\nObject.defineProperty(exports, \"SPARouteMetricsProvider\", {\n enumerable: true,\n get: function get() {\n return _SPARouteMetricsProvider.default;\n }\n});\nObject.defineProperty(exports, \"USER_EVENTS\", {\n enumerable: true,\n get: function get() {\n return _enums.default;\n }\n});\nObject.defineProperty(exports, \"generateMetricsAttribute\", {\n enumerable: true,\n get: function get() {\n return _MetricsTracker.generateMetricsAttribute;\n }\n});\nvar _MetricsTracker = require(\"./MetricsTracker\");\nvar _PageMetricsProvider = _interopRequireDefault(require(\"./providers/PageMetricsProvider\"));\nvar _ComponentMetricsProvider = _interopRequireDefault(require(\"./providers/ComponentMetricsProvider\"));\nvar _SPARouteMetricsProvider = _interopRequireDefault(require(\"./providers/SPARouteMetricsProvider\"));\nvar _enums = _interopRequireDefault(require(\"./types/enums\"));\nvar _types = require(\"./types/types\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _utils = require(\"@sm/utils\");\nvar _ = require(\"..\");\nvar ComponentMetricsProvider = function ComponentMetricsProvider(_ref) {\n var name = _ref.name,\n _ref$attributes = _ref.attributes,\n attributes = _ref$attributes === void 0 ? null : _ref$attributes,\n _ref$disableDA = _ref.disableDA,\n disableDA = _ref$disableDA === void 0 ? false : _ref$disableDA,\n actionFlow = _ref.actionFlow,\n actionType = _ref.actionType,\n children = _ref.children;\n var envDetails = (0, _utils.getClientEnvironmentDetails)();\n if (envDetails.isBrowser) {\n _.MetricsTracker.track({\n name: _.USER_EVENTS.COMPONENT_ADD,\n data: {\n componentName: name,\n attributes: attributes,\n disableDA: disableDA,\n actionType: actionType,\n actionFlow: actionFlow\n }\n });\n }\n return children;\n};\nvar _default = exports.default = ComponentMetricsProvider;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = require(\"react\");\nvar _ = require(\"..\");\nvar PageMetricsProvider = function PageMetricsProvider(_ref) {\n var pageId = _ref.pageId,\n pathname = _ref.pathname,\n attributes = _ref.attributes,\n GDPR = _ref.GDPR,\n user = _ref.user,\n country = _ref.country,\n children = _ref.children;\n var _GDPR$hasGDPRConsent = GDPR.hasGDPRConsent,\n hasGDPRConsent = _GDPR$hasGDPRConsent === void 0 ? false : _GDPR$hasGDPRConsent;\n var _user$id = user.id,\n userId = _user$id === void 0 ? '1' : _user$id,\n _user$package = user.package,\n packageId = _user$package === void 0 ? '1' : _user$package,\n _user$email = user.email,\n email = _user$email === void 0 ? '' : _user$email,\n _user$packageCanonica = user.packageCanonicalName,\n packageName = _user$packageCanonica === void 0 ? 'undefined' : _user$packageCanonica;\n (0, _react.useEffect)(function () {\n _.MetricsTracker.track({\n name: _.USER_EVENTS.PAGE_VIEW,\n data: {\n actionType: _.USER_EVENTS.PAGE_VIEW,\n actionFlow: pageId,\n pathname: pathname,\n pageId: pageId,\n attributes: attributes,\n data: {\n hasGDPRConsent: hasGDPRConsent,\n userId: userId,\n packageId: packageId,\n email: email,\n country: country,\n packageName: packageName\n }\n }\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n /**\n * Adding an empty array ensures that this is always and only called\n * on first page renders/reloads. SPA will never call this.\n */\n ]);\n return children;\n};\nvar _default = exports.default = PageMetricsProvider;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = require(\"react\");\nvar _ = require(\"..\");\nvar SPARouteMetricsProvider = function SPARouteMetricsProvider(_ref) {\n var pageId = _ref.pageId,\n pathname = _ref.pathname,\n legacyWeb = _ref.legacyWeb,\n attributes = _ref.attributes,\n GDPR = _ref.GDPR,\n user = _ref.user,\n country = _ref.country,\n children = _ref.children;\n var _GDPR$hasGDPRConsent = GDPR.hasGDPRConsent,\n hasGDPRConsent = _GDPR$hasGDPRConsent === void 0 ? false : _GDPR$hasGDPRConsent;\n var _user$id = user.id,\n userId = _user$id === void 0 ? '1' : _user$id,\n _user$package = user.package,\n packageId = _user$package === void 0 ? '1' : _user$package,\n _user$email = user.email,\n email = _user$email === void 0 ? '' : _user$email;\n (0, _react.useEffect)(function () {\n // update the global config\n _.MetricsTracker.update({\n pageId: pageId,\n legacyWeb: legacyWeb\n });\n\n /*\n // TODO: This shouldn't fire on intital render, but it needs to right now\n // to ensure all page metrics for SPA are accurately recorded. For example\n // in the SPA, PAGE_VIEW only knows about the SPA container, not the page within\n // the container. So the VIRTUAL_PAGE_VIEW is needed to track the actual page content\n */\n _.MetricsTracker.track({\n name: _.USER_EVENTS.VIRTUAL_PAGE_VIEW,\n data: {\n actionType: _.USER_EVENTS.VIRTUAL_PAGE_VIEW,\n actionFlow: pageId,\n pageId: pageId,\n attributes: attributes,\n pathname: pathname,\n data: {\n hasGDPRConsent: hasGDPRConsent,\n userId: userId,\n packageId: packageId,\n email: email,\n countryCode: country\n }\n }\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageId, legacyWeb, pathname]);\n return children;\n};\nvar _default = exports.default = SPARouteMetricsProvider;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _amplitude = _interopRequireDefault(require(\"./amplitude\"));\nvar _anonymous = require(\"./anonymous\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar AmplitudeSubscriberSingleton = function () {\n var smAmplitude = null;\n return function (digitalDataEvent, metricsTrackerConfig) {\n if (metricsTrackerConfig.forceAnonymous) {\n // Call track() for anonymous users (no need to initialize)\n (0, _anonymous.anonymousTrack)(metricsTrackerConfig, digitalDataEvent);\n } else {\n // Initialize (if needed) and then track for regular, non anonymous users\n if (!smAmplitude) {\n smAmplitude = new _amplitude.default(metricsTrackerConfig);\n }\n smAmplitude.track(digitalDataEvent);\n }\n };\n}();\nvar _default = exports.default = AmplitudeSubscriberSingleton;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dataAnalyticsMetricsSubscriber;\nfunction dataAnalyticsMetricsSubscriber(digitalDataEvent, metricsTrackerConfig) {\n // Verify that the required values are present and we're not being\n // bypassed before continuing. If not, exit quietly.\n if (digitalDataEvent.data.disableDA === true || !digitalDataEvent.data.actionFlow || !digitalDataEvent.data.actionType) {\n return;\n }\n var eventData = JSON.parse(JSON.stringify(digitalDataEvent.data));\n var dataAnalyticsAPIPath = metricsTrackerConfig.dataAnalyticsAPIPath,\n legacyWeb = metricsTrackerConfig.legacyWeb;\n var eventMeta = {\n ui_event: '',\n ui_goal: '',\n url: '',\n origin: '',\n legacy_web: legacyWeb\n };\n eventMeta.ui_event = eventData.actionType;\n eventMeta.ui_goal = eventData.actionFlow;\n eventMeta.url = window.location.href;\n eventMeta.origin = eventData.origin || 'user';\n delete eventData.actionType;\n delete eventData.actionFlow;\n delete eventData.origin;\n // FUTURE: The listener should implement experiments metrics.\n\n // Send the event to the data analytics api\n if (dataAnalyticsAPIPath) {\n fetch(dataAnalyticsAPIPath, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify({\n data: eventData,\n meta: eventMeta\n })\n });\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = facebookPixelSubscriber;\nvar _enums = _interopRequireDefault(require(\"../types/enums\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar whiteListedURLs = [/\\/collect\\/audience\\/.*\\/status/];\nvar isValidURL = function isValidURL(url) {\n return whiteListedURLs.some(function (pattern) {\n return url.match(pattern) !== null;\n });\n};\nfunction facebookPixelSubscriber(digitalDataEvent) {\n // eslint-disable-next-line global-require\n var ReactPixel = require('react-facebook-pixel');\n var _JSON$parse = JSON.parse(JSON.stringify(digitalDataEvent.data)),\n name = _JSON$parse.name,\n data = _JSON$parse.data,\n key = _JSON$parse.key;\n var actionType = digitalDataEvent.name;\n if (isValidURL(window.location.href) && key) {\n ReactPixel.init(key);\n if (actionType === _enums.default.USER_METADATA && name && data) {\n ReactPixel.track(name, data);\n }\n if (actionType === _enums.default.PAGE_VIEW) ReactPixel.pageView();\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gtmMetricsSubscriber;\nvar _utils = require(\"@sm/utils\");\nvar _helpers = require(\"../helpers\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction gtmMetricsSubscriber(digitalDataEvent) {\n var data = digitalDataEvent.data,\n name = digitalDataEvent.name;\n var actionType = data.actionType,\n actionFlow = data.actionFlow;\n if (!actionType || !actionFlow) {\n return;\n }\n\n // flatten the data object\n var gtmDataLayer = _objectSpread(_objectSpread({}, data), data.data);\n delete gtmDataLayer.data;\n var envDetails = (0, _utils.getClientEnvironmentDetails)();\n if (envDetails.isBrowser) {\n var pagePath = window.location.pathname;\n window.dataLayer = window.dataLayer || [];\n var eventObj = function eventObj(_ref) {\n var hasGDPRConsent = _ref.hasGDPRConsent,\n userId = _ref.userId,\n packageId = _ref.packageId,\n email = _ref.email,\n countryCode = _ref.countryCode;\n return {\n PAGE_VIEW: {\n event: 'pageView',\n loadMarketingContainer: hasGDPRConsent,\n user_id: userId,\n package_id: packageId,\n email: (0, _helpers.maskEmail)(email),\n country_code: countryCode\n },\n VIRTUAL_PAGE_VIEW: {\n event: 'virtualPageView',\n virtualPageUrl: pagePath,\n virtualPageTitle: actionFlow\n },\n GDPR_ACTION: {\n event: actionFlow,\n loadMarketingContainer: actionFlow !== 'denyConsent'\n }\n };\n };\n var gtm = eventObj(gtmDataLayer)[actionType] || _objectSpread({\n event: name\n }, gtmDataLayer);\n if (Object.keys(gtm).length) {\n window.dataLayer.push(gtm);\n }\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = loggingMetricsSubscriber;\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction loggingMetricsSubscriber(digitalDataEvent, metricsTrackerConfig) {\n var eventData = JSON.parse(JSON.stringify(digitalDataEvent.data));\n var logEventData = eventData ? eventData.log : null;\n var loggingAPIPath = metricsTrackerConfig.loggingAPIPath;\n if (typeof loggingAPIPath !== 'undefined' && typeof logEventData !== 'undefined' && logEventData !== null && loggingAPIPath) {\n delete eventData.log;\n var bodyRequestObject = _objectSpread({\n data: eventData\n }, logEventData);\n fetch(loggingAPIPath, {\n method: 'POST',\n cache: 'no-cache',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify(bodyRequestObject)\n });\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.parseOneTrustCookie = parseOneTrustCookie;\nvar _utils = _interopRequireDefault(require(\"../../utils\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar ONETRUST_COOKIE = 'OptanonConsent';\nvar ONETRUST_FUNCTIONAL_COOKIE_GROUP = 'C0003';\n\n/**\n * Checks for and parses the information stored in the OneTrust cookie\n *\n * @returns Whether the OneTrust cookie exists and the information stored within it\n */\nfunction parseOneTrustCookie() {\n var cookieValue = (0, _utils.default)(ONETRUST_COOKIE, '');\n var retVal = {\n hasOneTrustCookie: !!cookieValue,\n keyValues: {},\n groups: {}\n };\n if (retVal.hasOneTrustCookie) {\n cookieValue.split('&').forEach(function (token) {\n var keyVal = token.split('=').map(function (piece) {\n return decodeURIComponent(piece);\n });\n var key = keyVal.shift();\n var value = keyVal.length ? keyVal.shift() : true;\n if (key) {\n retVal.keyValues[key] = value;\n }\n });\n\n // fix up groups to be cleaner\n if (typeof retVal.keyValues.groups === 'string') {\n retVal.keyValues.groups.split(',').forEach(function (group) {\n var tokens = group.split(':');\n retVal.groups[tokens[0]] = tokens[1] === '1';\n });\n }\n }\n return retVal;\n}\nvar blockedByOneTrust = function blockedByOneTrust() {\n var overrideOneTrust = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var _parseOneTrustCookie = parseOneTrustCookie(),\n hasOneTrustCookie = _parseOneTrustCookie.hasOneTrustCookie,\n oneTrustGroups = _parseOneTrustCookie.groups;\n\n // we are blocked by OneTrust if...\n return (\n // we're not overridden to _ignore_ OneTrust...\n !overrideOneTrust &&\n // the OneTrust cookie is not present or does not have\n // functional cookies accepted\n !(hasOneTrustCookie && oneTrustGroups[ONETRUST_FUNCTIONAL_COOKIE_GROUP] === true)\n );\n};\nvar _default = exports.default = blockedByOneTrust;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar amplitude = _interopRequireWildcard(require(\"@amplitude/marketing-analytics-browser\"));\nvar _OneTrust = _interopRequireDefault(require(\"./OneTrust\"));\nvar _utils = _interopRequireDefault(require(\"../../utils\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != typeof e && \"function\" != typeof e) return {\n default: e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) {\n if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n }\n return n.default = e, t && t.set(e, n), n;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) {\n ;\n }\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar UTM_TO_AMP_PROP = {\n utm_adgroup: 'utmAdGroup',\n utm_bu: 'utmBu',\n utm_network: 'utmNetwork',\n ut_source: 'utSource',\n ut_source2: 'utSource2',\n ut_source3: 'utSource3'\n};\nvar DEFAULT_AMPLITUDE_CONFIG = {\n trackingOptions: {\n ip_address: false\n },\n transport: amplitude.Types.TransportType.SendBeacon,\n minIdLength: 1\n};\nvar conditionallyAddKey = function conditionallyAddKey(keyName, value, out) {\n if (value) {\n // the whole point of this method is to populate a single object with props,\n // so passing that object around by reference is the most performant\n // eslint-disable-next-line no-param-reassign\n out[keyName] = value;\n }\n};\nvar SMAmplitude = exports.default = /*#__PURE__*/function () {\n function SMAmplitude(config) {\n var _this = this;\n _classCallCheck(this, SMAmplitude);\n this.userProps = {};\n this.config = void 0;\n this.initialized = false;\n this.queuedEvents = [];\n this.config = config;\n this.initialize();\n\n // we'll listen in on OneTrust's global event for if the consent changes. this way,\n // we don't have to worry about race conditions should this library initialize before\n // the OneTrust one is available\n window.addEventListener('consent.onetrust', function () {\n return _this.handleConsentChange();\n });\n }\n\n /**\n * Initializes the Amplitude SDK\n */\n _createClass(SMAmplitude, [{\n key: \"enabled\",\n get:\n /**\n * Returns whether Amplitude events are enabled, either by configuration\n * or cookie acceptance through the OneTrust banner\n */\n function get() {\n var _user$session;\n var _this$config = this.config,\n amplitudeToken = _this$config.amplitudeToken,\n user = _this$config.user,\n overrideOneTrust = _this$config.overrideOneTrust;\n return (\n // we need an amplitude token...\n !!amplitudeToken &&\n // ...to not be impersonating a user...\n !(user !== null && user !== void 0 && (_user$session = user.session) !== null && _user$session !== void 0 && _user$session.isAdminImpersonation) &&\n // ...and to not be opted out of functional cookies\n !(0, _OneTrust.default)(overrideOneTrust)\n );\n }\n }, {\n key: \"initialize\",\n value: function initialize() {\n var _this2 = this;\n if (!this.initialized && this.enabled) {\n var _this$config2 = this.config,\n amplitudeDeviceId = _this$config2.amplitudeDeviceId,\n amplitudeSessionId = _this$config2.amplitudeSessionId,\n amplitudeToken = _this$config2.amplitudeToken,\n user = _this$config2.user;\n var isAuthenticated = user.isAuthenticated,\n userId = user.id,\n group = user.group;\n var config = _objectSpread({}, DEFAULT_AMPLITUDE_CONFIG);\n conditionallyAddKey('deviceId', amplitudeDeviceId, config);\n conditionallyAddKey('sessionId', amplitudeSessionId, config);\n try {\n // due to the enabled check above, amplitudeToken is definitely not undefined\n amplitude.init(amplitudeToken, undefined, config);\n if (isAuthenticated) {\n var _group$membership;\n amplitude.setUserId(userId);\n if (group !== null && group !== void 0 && (_group$membership = group.membership) !== null && _group$membership !== void 0 && _group$membership.groupId) {\n var _group$membership2;\n amplitude.setGroup('teamId', group === null || group === void 0 ? void 0 : (_group$membership2 = group.membership) === null || _group$membership2 === void 0 ? void 0 : _group$membership2.groupId);\n }\n }\n this.hydrateDefaultUserProps();\n this.sendUserProperties();\n\n // add a bevy of event listeners to detect if the user is leaving the page in\n // some way. this will allow us to flush the event queue and prevent events\n // from being stuck in limbo. why so many events? because different browsers\n // act differently :|\n document.addEventListener('visibilitychange', function () {\n return _this2.flushCache();\n });\n window.addEventListener('pagehide', function () {\n return _this2.flushCache();\n });\n window.addEventListener('beforeunload', function () {\n return _this2.flushCache();\n });\n } catch (err) {\n // silently fail\n }\n this.initialized = true;\n }\n }\n\n /**\n * Sends a tracking event to Amplitude\n *\n * @param event The event and properties to send to Amplitude\n */\n }, {\n key: \"track\",\n value: function track(event) {\n var _window;\n var data = event.data;\n var amplitudeEvent = data.amplitudeEvent,\n amplitudeUserProperties = data.amplitudeUserProperties;\n\n // no amplitude event, nothing to do\n if (!amplitudeEvent) {\n return;\n }\n\n // if amplitude is disabled for any reason, stash the event for later\n // in the event it gets re-enabled so unsent events can get fired\n if (!this.enabled) {\n this.queuedEvents.push(event);\n return;\n }\n var eventData = _objectSpread({}, data);\n\n // remove values we don't want to pass along as event properties\n delete eventData.amplitudeEvent;\n delete eventData.amplitudeUserProperties;\n delete eventData.actionType;\n delete eventData.actionFlow;\n\n // if extra user props were in this event, send those along\n if (amplitudeUserProperties) {\n this.sendUserProperties(amplitudeUserProperties);\n }\n\n // \"page viewed\" events are a special event and we expect any event with those\n // words (in that order) to also send the current URL path as `urlPath`. we do\n // want to ensure we're in a browser environment before doing anything rash, though\n if (amplitudeEvent.indexOf('page viewed') > -1 && !eventData.urlPath && typeof window === 'object' && typeof ((_window = window) === null || _window === void 0 ? void 0 : _window.location) === 'object') {\n eventData.urlPath = window.location.pathname;\n // Add ut parameters and hostname to page viewed events\n this.extractUTParameters(eventData, window.location.href);\n }\n amplitude.track(amplitudeEvent, _objectSpread({}, eventData));\n }\n\n /**\n * Pulls out all of the ut_source* parameters and hostname in a browser environment\n * and adds them to the property dictionary that is eventually sent to Amplitude.\n *\n * @param eventData is the property dictionary that the ut sources and host get added to\n * @param url is the url of the event\n *\n */\n }, {\n key: \"extractUTParameters\",\n value: function extractUTParameters(eventData, url) {\n // Create Url Object for easier parsing\n var urlObject = new URL(url || '');\n\n // Extract the hostName\n var host = urlObject.hostname;\n eventData.hostName = host;\n\n // Extract ut params and add them to eventData\n var urlParams = urlObject.searchParams;\n for (var _key in UTM_TO_AMP_PROP) {\n if (urlParams.has(_key)) {\n eventData[UTM_TO_AMP_PROP[_key]] = urlParams.get(_key);\n }\n }\n }\n\n /**\n * Pulls out the default user properties that should be sent upon initialization\n *\n * @param user The user configuration from initialization\n */\n }, {\n key: \"hydrateDefaultUserProps\",\n value: function hydrateDefaultUserProps() {\n var user = this.config.user;\n var userProps = {};\n\n // decorate logged in user information\n if (user.isAuthenticated) {\n var _user$group, _user$group$membershi;\n conditionallyAddKey('languageId', user === null || user === void 0 ? void 0 : user.languageId, userProps);\n conditionallyAddKey('userPackageId', user === null || user === void 0 ? void 0 : user.package, userProps);\n conditionallyAddKey('userPackageName', (user === null || user === void 0 ? void 0 : user.packageCanonicalName) || (user === null || user === void 0 ? void 0 : user.packageName), userProps);\n conditionallyAddKey('userSubscriptionStatus', user === null || user === void 0 ? void 0 : user.subscriptionStatus, userProps);\n conditionallyAddKey('dateJoined', user === null || user === void 0 ? void 0 : user.joinedAt, userProps);\n conditionallyAddKey('dateSubscribed', user === null || user === void 0 ? void 0 : user.subscribedAt, userProps);\n conditionallyAddKey('userRole', (_user$group = user.group) === null || _user$group === void 0 ? void 0 : (_user$group$membershi = _user$group.membership) === null || _user$group$membershi === void 0 ? void 0 : _user$group$membershi.type, userProps);\n conditionallyAddKey('userDataCenter', user === null || user === void 0 ? void 0 : user.dataCenter, userProps);\n if (user.email) {\n var _user$email$split = user.email.split('@'),\n _user$email$split2 = _slicedToArray(_user$email$split, 2),\n emailDomain = _user$email$split2[1];\n if (emailDomain && emailDomain.indexOf('.') > -1) {\n userProps.emailDomain = emailDomain;\n }\n }\n }\n\n // EP-1743: decorate with EP cookie values\n userProps.userSMSessionId = (0, _utils.default)('ep201');\n userProps.userSMPersistentId = (0, _utils.default)('ep202');\n this.userProps = userProps;\n }\n\n /**\n * Sends default user properties on initialization and additional user properties\n * any time via an Amplitude identify event.\n *\n * @param extraUserProps Additional user properties to send with the defaults\n */\n }, {\n key: \"sendUserProperties\",\n value: function sendUserProperties(extraUserProps) {\n // only send user props on initialization or if there are extra props to be sent\n if (!this.initialized || extraUserProps) {\n var identify = new amplitude.Identify();\n var userProps = _objectSpread(_objectSpread({}, this.userProps), extraUserProps || {});\n Object.keys(userProps).forEach(function (key) {\n identify.set(key, userProps[key]);\n });\n amplitude.identify(identify);\n }\n }\n\n /**\n * Event handler for when a user changes OneTrust cookie consent\n */\n }, {\n key: \"handleConsentChange\",\n value: function handleConsentChange() {\n var _this3 = this;\n // bail if amplitude cookies are now rejected\n if (!this.enabled) {\n return;\n }\n\n // if consent has been granted where it wasn't before, initialize everything and send any queued events\n if (!this.initialized) {\n this.initialize();\n }\n this.queuedEvents.forEach(function (event) {\n return _this3.track(event);\n });\n this.queuedEvents = [];\n }\n\n /**\n * Event handler for when the user navigates to a new URL\n */\n }, {\n key: \"flushCache\",\n value: function flushCache() {\n if (this.enabled) {\n amplitude.flush();\n }\n }\n }]);\n return SMAmplitude;\n}();\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.anonymousTrack = anonymousTrack;\nvar _uuid = require(\"uuid\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar UTM_TO_AMP_PROP = {\n utm_adgroup: 'utmAdGroup',\n utm_bu: 'utmBu',\n utm_network: 'utmNetwork',\n ut_source: 'utSource',\n ut_source2: 'utSource2',\n ut_source3: 'utSource3'\n};\nfunction extractUTParameters(eventData, url) {\n // Create Url Object for easier parsing\n var urlObject = new URL(url || '');\n\n // Extract the hostName\n var host = urlObject.hostname;\n eventData.hostName = host;\n\n // Extract ut params and add them to eventData\n var urlParams = urlObject.searchParams;\n for (var _key in UTM_TO_AMP_PROP) {\n if (urlParams.has(_key)) {\n eventData[UTM_TO_AMP_PROP[_key]] = urlParams.get(_key);\n }\n }\n}\nfunction anonymousTrack(config, event) {\n var _user$session, _window;\n var amplitudeToken = config.amplitudeToken,\n user = config.user;\n var data = event.data;\n var amplitudeEvent = data.amplitudeEvent,\n amplitudeUserProperties = data.amplitudeUserProperties;\n\n // Bail if no Amplitude token, admin impersonation, or no amplitude event in data\n if (!amplitudeToken || user !== null && user !== void 0 && (_user$session = user.session) !== null && _user$session !== void 0 && _user$session.isAdminImpersonation || !amplitudeEvent) {\n return;\n }\n\n // Make a shallow copy of the data to eventually send to Amplitude\n var eventData = _objectSpread({}, data);\n var amplitudeEventName = eventData.amplitudeEvent;\n\n // remove values we don't want to pass along as event properties\n delete eventData.amplitudeEvent;\n delete eventData.amplitudeUserProperties;\n delete eventData.actionType;\n delete eventData.actionFlow;\n\n // Add page viewed properties for a page viewed event\n if (amplitudeEvent.indexOf('page viewed') > -1 && !eventData.urlPath && typeof window === 'object' && typeof ((_window = window) === null || _window === void 0 ? void 0 : _window.location) === 'object') {\n eventData.urlPath = window.location.pathname;\n extractUTParameters(eventData, window.location.href);\n }\n\n // Generate unique uuid for device ID\n var deviceId = (0, _uuid.v4)();\n\n // Send the event via beacon to avoid any built in cookie Action\n try {\n navigator.sendBeacon('https://api2.amplitude.com/2/httpapi', JSON.stringify({\n api_key: amplitudeToken,\n events: [{\n device_id: deviceId,\n user_id: '',\n event_type: amplitudeEventName,\n event_properties: eventData,\n user_properties: amplitudeUserProperties\n }]\n }));\n } catch (error) {\n console.error(error);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.USER_SUBSCRIPTION_STATUS = void 0;\nvar USER_EVENTS; // Adding information about the user\n(function (USER_EVENTS) {\n USER_EVENTS[\"PAGE_VIEW\"] = \"PAGE_VIEW\";\n USER_EVENTS[\"VIRTUAL_PAGE_VIEW\"] = \"VIRTUAL_PAGE_VIEW\";\n USER_EVENTS[\"COMPONENT_ADD\"] = \"COMPONENT_ADD\";\n USER_EVENTS[\"COMPONENT_ERROR\"] = \"COMPONENT_ERROR\";\n USER_EVENTS[\"DATA_FETCH_ERROR\"] = \"DATA_FETCH_ERROR\";\n USER_EVENTS[\"ELEMENT_INTERACTION\"] = \"ELEMENT_INTERACTION\";\n USER_EVENTS[\"GDPR_ACTION\"] = \"GDPR_ACTION\";\n USER_EVENTS[\"NAVIGATION\"] = \"NAVIGATION\";\n USER_EVENTS[\"USER_METADATA\"] = \"USER_METADATA\";\n})(USER_EVENTS || (USER_EVENTS = {}));\nvar USER_SUBSCRIPTION_STATUS;\n(function (USER_SUBSCRIPTION_STATUS) {\n USER_SUBSCRIPTION_STATUS[\"NEW\"] = \"new\";\n USER_SUBSCRIPTION_STATUS[\"CHURNED\"] = \"churned\";\n USER_SUBSCRIPTION_STATUS[\"ACTIVE\"] = \"active\";\n})(USER_SUBSCRIPTION_STATUS || (exports.USER_SUBSCRIPTION_STATUS = USER_SUBSCRIPTION_STATUS = {}));\nvar _default = exports.default = USER_EVENTS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getCookieValue;\nfunction getCookieValue(cname, defaultValue) {\n // `getClientEnvironmentDetails` could provide this information, but imports\n // the \"bowser\" package to decorate a bunch of details we don't need (that's ~5k minified)\n // As such, we'll just lift the line we actually want:\n // https://github.com/mntv-webplatform/smpackages/blob/master/packages/utils/src/environment/index.ts#L83\n var isBrowser = typeof window === 'object';\n if (!isBrowser) return '';\n var name = \"\".concat(cname, \"=\");\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i += 1) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) === 0) {\n return c.substring(name.length, c.length);\n }\n }\n return defaultValue || '';\n}\nmodule.exports = exports.default;","import { createMemoStyles, removeUndefinedProperties, createSpacingStyles, clsx } from '@wds/utils';\nimport React from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (_a) {\n var spacing = _a.spacing,\n border = _a.border;\n return {\n wrenchBox: function (_a) {\n var _b, _c;\n var display = _a.display,\n flexProperties = _a.flexProperties,\n gridProperties = _a.gridProperties,\n borderColor = _a.borderColor;\n var gap = gridProperties.gap,\n gridStyleProperties = __rest(gridProperties, [\"gap\"]);\n var flexItemGrow = flexProperties.flexItemGrow,\n flexWrap = flexProperties.flexWrap,\n flexStyleProperties = __rest(flexProperties, [\"flexItemGrow\", \"flexWrap\"]);\n return removeUndefinedProperties(__assign(__assign(__assign({}, gridStyleProperties), flexStyleProperties), {\n justifyContent: (_b = gridStyleProperties.justifyContent) !== null && _b !== void 0 ? _b : flexStyleProperties.justifyContent,\n alignItems: (_c = gridStyleProperties.alignItems) !== null && _c !== void 0 ? _c : flexStyleProperties.alignItems,\n flexGrow: flexItemGrow && 1,\n flexWrap: flexWrap && 'wrap',\n display: display !== null && display !== void 0 ? display : null,\n gap: gap ? spacing[gap] : null,\n border: borderColor && border[borderColor]\n }));\n }\n };\n});\n\n/**\n * [IMPORTANT]\n * We have to call createSpacingStyles at the component level\n * Otherwise, the styles will be overridden by the global styles\n * This happens because JSS loads the styles in sequence\n */\nvar useSpacingStyles = createSpacingStyles();\nvar Box = function (props) {\n var containerRef = props.containerRef,\n borderColor = props.borderColor,\n className = props.className,\n children = props.children,\n _a = props.element,\n element = _a === void 0 ? 'div' : _a,\n display = props.display,\n alignItems = props.alignItems,\n alignContent = props.alignContent,\n justifyContent = props.justifyContent,\n flexDirection = props.flexDirection,\n flexItemGrow = props.flexItemGrow,\n flexJustify = props.flexJustify,\n flexAlign = props.flexAlign,\n flexWrap = props.flexWrap,\n gridTemplateColumns = props.gridTemplateColumns,\n gridTemplateRows = props.gridTemplateRows,\n gridAutoFlow = props.gridAutoFlow,\n placeItems = props.placeItems,\n gap = props.gap,\n m = props.m,\n mx = props.mx,\n my = props.my,\n mt = props.mt,\n mb = props.mb,\n ml = props.ml,\n mr = props.mr,\n p = props.p,\n px = props.px,\n py = props.py,\n pt = props.pt,\n pb = props.pb,\n pl = props.pl,\n pr = props.pr,\n rest = __rest(props, [\"containerRef\", \"borderColor\", \"className\", \"children\", \"element\", \"display\", \"alignItems\", \"alignContent\", \"justifyContent\", \"flexDirection\", \"flexItemGrow\", \"flexJustify\", \"flexAlign\", \"flexWrap\", \"gridTemplateColumns\", \"gridTemplateRows\", \"gridAutoFlow\", \"placeItems\", \"gap\", \"m\", \"mx\", \"my\", \"mt\", \"mb\", \"ml\", \"mr\", \"p\", \"px\", \"py\", \"pt\", \"pb\", \"pl\", \"pr\"]);\n var flexProperties = {\n alignItems: alignItems !== null && alignItems !== void 0 ? alignItems : flexAlign,\n alignContent: alignContent,\n justifyContent: justifyContent !== null && justifyContent !== void 0 ? justifyContent : flexJustify,\n flexDirection: flexDirection,\n flexItemGrow: flexItemGrow,\n flexWrap: flexWrap\n };\n var gridProperties = {\n justifyContent: justifyContent,\n alignItems: alignItems,\n alignContent: alignContent,\n gridTemplateColumns: gridTemplateColumns,\n gridTemplateRows: gridTemplateRows,\n gridAutoFlow: gridAutoFlow,\n placeItems: placeItems,\n gap: gap\n };\n var wrenchSpacing = useSpacingStyles({\n m: m,\n mx: mx,\n my: my,\n mt: mt,\n mb: mb,\n ml: ml,\n mr: mr,\n p: p,\n px: px,\n py: py,\n pt: pt,\n pb: pb,\n pl: pl,\n pr: pr\n }).wrenchSpacing;\n var wrenchBox = useStyles({\n flexProperties: flexProperties,\n gridProperties: gridProperties,\n display: display,\n borderColor: borderColor\n }).wrenchBox;\n // TODO: remove this type coercion when upgrading to React v18\n var Element = element;\n var classNames = clsx(className, wrenchBox, wrenchSpacing);\n return React.createElement(Element, __assign({\n className: classNames,\n ref: containerRef\n }, rest), children);\n};\nexport { Box };","import React, { useState, useEffect } from 'react';\nimport { useTheme } from 'react-jss';\nimport { createMemoStyles, darken, lighten, getDisplayName, clsx, conditionGuard, safeRest, getContrastColor } from '@wds/utils';\nimport { ProgressCircle } from '@wds/progress-circle';\nimport { SEMANTIC_COLORS } from '@wds/styles';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar useStyles = createMemoStyles(function (theme) {\n var type = theme.type,\n radius = theme.radius,\n shadow = theme.shadow,\n palette = theme.palette,\n spacing = theme.spacing;\n var button = {\n height: {\n sm: 32,\n md: 40,\n lg: 48\n },\n fontSize: {\n sm: type.fontSize.bodySm,\n md: type.fontSize.body,\n lg: type.fontSize.body\n },\n padding: {\n sm: spacing[4],\n md: spacing[5],\n lg: spacing[6]\n },\n borderRadius: radius.small,\n boxShadow: shadow.none\n };\n var hoverFocus = function () {\n return {\n transition: 'none',\n textDecoration: 'none'\n };\n };\n var active = function () {\n return {\n transition: 'none',\n outline: 'none'\n };\n };\n var variantSolid = function (textColor, color, pressedColor, loading) {\n return {\n color: loading ? 'transparent' : textColor,\n borderColor: pressedColor,\n backgroundColor: pressedColor,\n '&:hover': {\n boxShadow: shadow.sky\n },\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n borderColor: lighten(0.03, color),\n backgroundColor: lighten(0.03, color)\n }),\n '&:active': __assign(__assign({}, active()), {\n borderColor: color,\n backgroundColor: color\n })\n };\n };\n var variantGhost = function (backgroundColor, pressedColor, loading) {\n return {\n color: loading ? 'transparent' : pressedColor,\n borderColor: pressedColor,\n backgroundColor: 'transparent',\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n backgroundColor: backgroundColor\n }),\n '&:active': __assign(__assign({}, active()), {\n borderColor: pressedColor\n })\n };\n };\n var variantText = function (backgroundColor, pressedColor, loading) {\n return {\n color: loading ? 'transparent' : pressedColor,\n borderColor: 'transparent',\n backgroundColor: 'transparent',\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n borderColor: backgroundColor,\n backgroundColor: backgroundColor\n })\n };\n };\n var colorAlt = function (loading, variant) {\n var borderColor = variant === 'text' ? 'transparent' : palette.text.dark;\n return {\n color: loading ? 'transparent' : palette.text.dark,\n borderColor: borderColor,\n backgroundColor: palette.background.light,\n '&:hover': {\n boxShadow: shadow.sky\n },\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n borderColor: borderColor,\n backgroundColor: palette.background.main\n }),\n '&:active': __assign(__assign({}, active()), {\n borderColor: borderColor,\n backgroundColor: palette.background.light\n })\n };\n };\n var svgMargin = function (leftIcon, rightIcon, size) {\n var iconMargin = function (s) {\n return {\n sm: '8px',\n md: '16px',\n lg: '16px'\n }[s];\n };\n return {\n '& > svg:first-child': __assign({}, leftIcon && {\n marginRight: \"\".concat(iconMargin(size))\n }),\n '& > svg:last-child': __assign({}, rightIcon && {\n marginLeft: \"\".concat(iconMargin(size))\n })\n };\n };\n var iconPadding = function (size) {\n return {\n sm: spacing[2],\n md: spacing[4],\n lg: spacing[5]\n }[size];\n };\n return {\n wrenchButton: function (_a) {\n var _b, _c, _d, _e;\n var color = _a.color,\n onDark = _a.onDark,\n variant = _a.variant,\n _f = _a.size,\n size = _f === void 0 ? 'md' : _f,\n pressed = _a.pressed,\n stretched = _a.stretched,\n iconOnly = _a.iconOnly,\n leftIcon = _a.leftIcon,\n rightIcon = _a.rightIcon,\n _g = _a.loading,\n loading = _g === void 0 ? false : _g;\n var buttonColor = onDark && ((_b = palette[color]) === null || _b === void 0 ? void 0 : _b.onDark) || ((_c = palette[color]) === null || _c === void 0 ? void 0 : _c.main) || palette.text[color] || palette.text.dark;\n var pressedColor = pressed ? darken(0.03, buttonColor) : buttonColor;\n var isStretched = stretched ? {\n display: 'flex',\n width: '100%'\n } : {\n display: 'inline-flex'\n };\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isStretched), {\n boxSizing: 'border-box',\n fontWeight: type.fontWeight.medium,\n fontFamily: type.fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: 'pointer',\n position: 'relative',\n borderRadius: button.borderRadius,\n textDecoration: 'none',\n border: '1px solid transparent',\n boxShadow: button.boxShadow,\n transition: 'color 0.4s, border-color 0.4s, background-color 0.4s, box-shadow 0.4s',\n padding: [0, iconOnly ? iconPadding(size) : button.padding[size]],\n fontSize: size ? button.fontSize[size] : null,\n height: size ? button.height[size] : null,\n '&:hover, &:focus': hoverFocus(),\n '&:active': active(),\n '&[disabled], &[aria-disabled=\"true\"]': {\n pointerEvents: 'none',\n opacity: '0.4'\n }\n }), variant === 'solid' && variantSolid(onDark ? palette.text.dark : (_e = (_d = palette[color]) === null || _d === void 0 ? void 0 : _d.contrast) !== null && _e !== void 0 ? _e : '', buttonColor, pressedColor, loading)), variant === 'ghost' && variantGhost(onDark ? darken(0.03, palette.text.dark) : palette.background.accent, pressedColor, loading)), variant === 'text' && variantText(onDark ? darken(0.03, palette.text.dark) : palette.background.accent, pressedColor, loading)), (leftIcon || rightIcon) && svgMargin(leftIcon, rightIcon, size)), color === 'alt' && colorAlt(loading, variant));\n },\n wrenchButtonLoading: function () {\n return {\n position: 'absolute',\n display: 'flex'\n };\n }\n };\n});\nvar Button = function (_a) {\n var ariaPressed = _a.ariaPressed,\n buttonType = _a.buttonType,\n children = _a.children,\n _b = _a.color,\n color = _b === void 0 ? 'primary' : _b,\n _c = _a.onDark,\n onDark = _c === void 0 ? false : _c,\n _d = _a.loading,\n loading = _d === void 0 ? false : _d,\n _e = _a.disabled,\n disabled = _e === void 0 ? false : _e,\n href = _a.href,\n label = _a.label,\n size = _a.size,\n stretched = _a.stretched,\n variant = _a.variant,\n rest = __rest(_a, [\"ariaPressed\", \"buttonType\", \"children\", \"color\", \"onDark\", \"loading\", \"disabled\", \"href\", \"label\", \"size\", \"stretched\", \"variant\"]);\n var _f = useState(ariaPressed !== null && ariaPressed !== void 0 ? ariaPressed : false),\n pressed = _f[0],\n setPressed = _f[1];\n useEffect(function () {\n if (ariaPressed !== pressed) setPressed(!pressed);\n }, [ariaPressed, pressed]);\n var numberOfChildren = React.Children.count(children);\n var reactChildren = React.Children.toArray(children);\n var iconOnly = !!(numberOfChildren === 1 && getDisplayName(reactChildren[0]).includes('WithIcon'));\n var leftIcon = !!(numberOfChildren > 1 && getDisplayName(reactChildren[0]).includes('WithIcon'));\n var rightIcon = !!(numberOfChildren > 1 && getDisplayName(reactChildren[reactChildren.length - 1]).includes('WithIcon'));\n if (iconOnly && !label) {\n console.warn('A label is required when the child of a Button is an icon');\n }\n var rel;\n if (href) {\n // https://mathiasbynens.github.io/rel-noopener/\n var autoAddRel = rest.target && rest.target === '_blank' && !rest.rel;\n rel = autoAddRel ? 'noopener noreferrer' : undefined;\n }\n var theme = useTheme();\n var _g = useStyles({\n color: color,\n onDark: onDark,\n variant: variant,\n size: size,\n stretched: stretched,\n pressed: pressed,\n theme: theme,\n iconOnly: iconOnly,\n leftIcon: leftIcon,\n rightIcon: rightIcon,\n loading: loading\n }),\n wrenchButton = _g.wrenchButton,\n wrenchButtonLoading = _g.wrenchButtonLoading;\n var classNames = clsx(wrenchButton,\n // Static class used for internal reference\n // Ex. ButtonGroup conditional styles\n variant ? \"wrenchButton--\".concat(variant) : null, color ? \"wrenchButton--\".concat(color) : null);\n var isDisabled = loading || disabled;\n if (conditionGuard(rest, !!href)) {\n return React.createElement(\"a\", __assign({}, safeRest(rest), {\n className: classNames,\n href: !isDisabled ? href : undefined,\n role: isDisabled ? 'link' : undefined,\n \"aria-disabled\": isDisabled ? 'true' : undefined,\n title: label,\n rel: rel\n }), children);\n }\n var colorValue = color === 'alt' ? theme.palette.background.light : theme.palette[color].main;\n var contrastColor = getContrastColor(colorValue);\n return React.createElement(\"button\", __assign({}, safeRest(rest), {\n className: classNames,\n // eslint-disable-next-line react/button-has-type\n type: buttonType,\n disabled: isDisabled,\n \"aria-pressed\": ariaPressed,\n \"aria-label\": label\n }), loading && React.createElement(\"span\", {\n className: wrenchButtonLoading\n }, React.createElement(ProgressCircle, {\n color: contrastColor,\n size: 'xs',\n continuous: true\n })), children);\n};\nButton.defaultProps = {\n ariaPressed: false,\n buttonType: 'button',\n color: 'primary',\n loading: false,\n disabled: false,\n href: undefined,\n label: undefined,\n size: 'md',\n stretched: false,\n variant: 'solid'\n};\nvar BUTTON_COLORS = __spreadArray(['alt', 'link'], SEMANTIC_COLORS, true);\nvar VARIANTS = ['solid', 'ghost', 'text'];\nvar BUTTON_TYPES = ['button', 'reset', 'submit'];\nvar BUTTON_SIZES = ['sm', 'md', 'lg'];\nvar guardAnchor = function (rest, href) {\n return !!href;\n};\nexport { BUTTON_COLORS, BUTTON_SIZES, BUTTON_TYPES, Button, VARIANTS, guardAnchor };","import React from 'react';\nimport { createMemoStyles, safeRest } from '@wds/utils';\nimport { getColor } from '@wds/styles';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (_a) {\n var palette = _a.palette,\n type = _a.type,\n iconSize = _a.iconSize;\n return {\n wrenchIcons: {\n display: 'inline-block',\n fill: function (_a) {\n var color = _a.color,\n onDark = _a.onDark;\n return getColor(palette, color, undefined, onDark);\n },\n fontFamily: type.fontFamily.base,\n fontSize: function (_a) {\n var size = _a.size;\n return size ? iconSize[size] : 'inherit';\n },\n '-webkit-font-smoothing': 'antialiased',\n margin: '0 auto',\n height: '1em',\n textAlign: 'center',\n verticalAlign: 'middle',\n width: '1em'\n }\n };\n});\nfunction withIcon(Component) {\n var WithIcon = function (_a) {\n var color = _a.color,\n _b = _a.onDark,\n onDark = _b === void 0 ? false : _b,\n title = _a.title,\n size = _a.size,\n rest = __rest(_a, [\"color\", \"onDark\", \"title\", \"size\"]);\n var wrenchIcons = useStyles({\n color: color,\n onDark: onDark,\n size: size\n }).wrenchIcons;\n return React.createElement(\"svg\", __assign({\n className: wrenchIcons,\n viewBox: \"0 0 16 16\",\n preserveAspectRatio: \"xMidYMid\",\n \"aria-label\": title,\n role: \"img\"\n }, safeRest(rest)), React.createElement(Component, null));\n };\n WithIcon.displayName = \"WithIcon(\".concat(Component.name, \")\");\n WithIcon.getOriginalComponent = function () {\n return Component;\n };\n return WithIcon;\n}\nvar IconAirplane = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m15.996.82-.016.102-2.926 12.534a1.25 1.25 0 0 1-1.765.84l-.12-.066-2.031-1.275-2.214 2.603a1.25 1.25 0 0 1-2.196-.682l-.006-.128-.001-4.567L.586 7.584a1.25 1.25 0 0 1 .109-2.178l.117-.05L14.985.048a.75.75 0 0 1 1.011.77zM6.221 11.122v2.946l1.633-1.92-1.633-1.026zm7.72-8.075L6.897 9.775l4.774 2.998 2.27-9.726zm-1.839-.317L1.812 6.582l3.775 2.37 6.515-6.222z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Airplane = /* #__PURE__ */withIcon(IconAirplane);\nvar IconArrow180 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.75 1a.75.75 0 0 1 .102 1.493l-.102.007h-9a4.25 4.25 0 0 0-.206 8.495L5.75 11h7.748l-1.286-1.277-.07-.08a.712.712 0 0 1 .07-.933.727.727 0 0 1 .932-.076l.09.076 2.555 2.533a.72.72 0 0 1 .102.127l.032.057.038.09.03.12.009.091-.005.112-.009.052a.71.71 0 0 1-.063.18l-.032.058-.032.046-.07.08-2.555 2.534a.727.727 0 0 1-1.022 0 .712.712 0 0 1-.07-.933l.07-.08 1.285-1.277H5.75a5.75 5.75 0 0 1-.22-11.496L5.75 1h9z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Arrow180 = /* #__PURE__ */withIcon(IconArrow180);\nvar IconArrow360 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m6.217 1.147.084.073 2.23 2.23a.75.75 0 0 1 .072.977l-.073.084-2.229 2.23a.75.75 0 0 1-1.133-.977l.073-.085.948-.949h-.306A4.383 4.383 0 0 0 1.5 9.115a4.384 4.384 0 0 0 4.17 4.38l.213.004h4.243A4.375 4.375 0 0 0 14.5 9.124a4.387 4.387 0 0 0-4.004-4.371.75.75 0 0 1 .128-1.495A5.887 5.887 0 0 1 16 9.124a5.875 5.875 0 0 1-5.654 5.872l-.22.004H5.883A5.884 5.884 0 0 1 0 9.115a5.884 5.884 0 0 1 5.662-5.881l.22-.004.306-.001-.947-.948a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.073z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Arrow360 = /* #__PURE__ */withIcon(IconArrow360);\nvar IconArrowBox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 2 4.2.006A.75.75 0 0 1 5.354 3.5l-.102.007L1.5 3.5V14.5h11v-3.75a.75.75 0 0 1 1.5 0v4.2c0 .541-.41.987-.936 1.044L12.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V3.05c0-.54.41-.986.936-1.043L1.05 2zM15.3 0a.7.7 0 0 1 .7.7v6.55a.75.75 0 1 1-1.5 0V2.561L9.27 7.789a.75.75 0 0 1-1.133-.976l.073-.084L13.438 1.5H8.75a.75.75 0 0 1 0-1.5h6.55z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowBox = /* #__PURE__ */withIcon(IconArrowBox);\nvar IconArrowCombine = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M2.5 1a2.5 2.5 0 0 1 1.916 4.106L4.336 5c1.16 1.572 2.242 2.195 3.93 2.247l.202.002H10V5.5a.75.75 0 0 1 1.02-.7l.094.044 4.5 2.5a.75.75 0 0 1 0 1.312l-4.5 2.5A.75.75 0 0 1 10 10.5V8.75H8.468l-.202.003c-1.65.05-2.72.646-3.85 2.14a2.5 2.5 0 1 1-1.266-.808C3.85 9.143 4.56 8.46 5.361 8 4.56 7.54 3.85 6.857 3.15 5.916A2.5 2.5 0 1 1 2.5 1zm0 10.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm9-4.726v2.451L13.705 8 11.5 6.774zM2.5 2.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowCombine = /* #__PURE__ */withIcon(IconArrowCombine);\nvar IconArrowDashed = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m10.452 2.147.084.073 5.245 5.248a.75.75 0 0 1 .072.977l-.072.084-5.249 5.251a.75.75 0 0 1-1.133-.977l.073-.084 4.717-4.721L9.475 3.28a.75.75 0 0 1-.072-.977l.072-.084a.75.75 0 0 1 .977-.073zM5 7.997a.75.75 0 0 1-.75.751H.74a.745.745 0 0 1-.74-.75c0-.38.278-.694.64-.743l.1-.007h3.51a.75.75 0 0 1 .75.75zm5.76-.75c.409 0 .74.337.74.751 0 .38-.278.694-.64.744l-.1.007H7.25a.75.75 0 0 1 0-1.502h3.51z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowDashed = /* #__PURE__ */withIcon(IconArrowDashed);\nvar IconArrowDown = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.001 1a.75.75 0 0 1 .744.648l.005 10.791 3.964-3.968a.749.749 0 0 1 .976-.073l.084.073c.266.266.29.683.073.977l-.073.084-5.243 5.251a.749.749 0 0 1-.976.073l-.084-.073L2.225 9.53A.752.752 0 0 1 3.2 8.394l.084.073 3.964 3.968L7.25 1.75A.75.75 0 0 1 8.001 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowDown = /* #__PURE__ */withIcon(IconArrowDown);\nvar IconArrowExit = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.999 2a.75.75 0 0 1 .102 1.493l-.102.007H2.501v8.998H6a.75.75 0 0 1 .744.649l.007.101a.75.75 0 0 1-.65.744L6 13.998H2.051c-.542 0-.988-.41-1.045-.935L1 12.948V3.05c0-.541.41-.987.937-1.044L2.05 2H6zm4.45 1.15.084.073 4.248 4.247a.75.75 0 0 1 .072.976l-.072.084-4.25 4.25a.75.75 0 0 1-1.134-.976l.072-.084 2.969-2.97H4.749a.75.75 0 0 1-.101-1.493l.101-.007h7.691L9.473 4.283a.75.75 0 0 1-.073-.976l.073-.084a.75.75 0 0 1 .976-.073z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowExit = /* #__PURE__ */withIcon(IconArrowExit);\nvar IconArrowForward = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m10.442 2.147.085.073 5.253 5.248a.75.75 0 0 1 .073.977l-.073.084-5.257 5.251a.752.752 0 0 1-1.135-.977l.073-.084 3.969-3.97-7.415.001C2.693 8.75 0 6.063 0 2.75a.75.75 0 0 1 1.503 0 4.505 4.505 0 0 0 4.3 4.495l.212.005h7.419v-.003l-3.97-3.966a.75.75 0 0 1-.072-.977l.072-.084a.752.752 0 0 1 .978-.073z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowForward = /* #__PURE__ */withIcon(IconArrowForward);\nvar IconArrowIntegrate = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m9.486 5.04 1.763 1.697-.005-1.156.007-.108a.732.732 0 0 1 .733-.624c.377.002.69.281.742.64l.007.1.017 2.983-.004.08-.021.114-.037.104-.036.07-.042.064-.043.054-.093.087-.092.062-.07.036-.07.026-.075.02-.078.011-.08.004-3.018-.016a.75.75 0 0 1-.749-.74.729.729 0 0 1 .63-.725l.11-.007 1.239.006-.188-.184L8.59 6.25c-1.666-1.647-4.315-1.687-5.915-.105-1.552 1.533-1.56 4.04-.04 5.692l.146.153 1.764 1.743c.294.29.294.76 0 1.05a.758.758 0 0 1-.985.066l-.077-.066-1.764-1.743c-2.246-2.22-2.3-5.777-.106-7.945C3.756 2.976 7.24 2.979 9.486 5.04zm2.954-3.889.077.066 1.764 1.743c2.246 2.22 2.3 5.777.106 7.945-2.143 2.119-5.627 2.116-7.873.055L4.751 9.263l.005 1.156-.007.108a.732.732 0 0 1-.733.624.752.752 0 0 1-.742-.64l-.007-.1-.017-2.983.004-.08.021-.114.037-.104.036-.07.042-.064.043-.054.093-.087.092-.062.07-.036.07-.026.075-.02.078-.011.08-.004 3.018.016a.75.75 0 0 1 .749.74.729.729 0 0 1-.63.725l-.11.007-1.239-.006.188.184L7.41 9.75c1.666 1.647 4.315 1.687 5.915.105 1.552-1.533 1.56-4.04.04-5.692l-.146-.153-1.764-1.743a.736.736 0 0 1 0-1.05.758.758 0 0 1 .985-.066z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowIntegrate = /* #__PURE__ */withIcon(IconArrowIntegrate);\nvar IconArrowLeft = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.545 2.147-.084.073L.22 7.468a.751.751 0 0 0-.073.977l.073.084 5.244 5.251a.749.749 0 0 0 1.133-.977l-.073-.084-3.962-3.971H15.25a.75.75 0 0 0 .102-1.493l-.102-.007H2.56L6.52 3.28a.751.751 0 0 0 .073-.977l-.072-.084a.749.749 0 0 0-.976-.073z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowLeft = /* #__PURE__ */withIcon(IconArrowLeft);\nvar IconArrowRandom = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 3a.75.75 0 0 1 .102 1.494L8 4.501H4.25a.25.25 0 0 0-.243.193L4 4.75v7.746l1.277-1.285.08-.07a.712.712 0 0 1 .933.07c.252.254.277.65.076.932l-.076.09-2.533 2.554a.72.72 0 0 1-.127.102l-.057.033-.09.038-.12.03-.107.009-.087-.005-.06-.01a.71.71 0 0 1-.182-.062l-.057-.032-.046-.033-.08-.07L.21 12.234a.727.727 0 0 1 0-1.022.712.712 0 0 1 .933-.07l.08.07L2.5 12.499V4.751a1.75 1.75 0 0 1 1.606-1.744L4.25 3H8zm4.772-2 .09.009.122.03.089.038.057.033.065.046.062.056 2.533 2.554.076.09a.727.727 0 0 1-.076.932.712.712 0 0 1-.835.132l-.098-.062-.08-.07L13.5 3.501v7.744a1.75 1.75 0 0 1-1.606 1.744l-.144.006H8a.75.75 0 0 1-.102-1.493L8 11.495h3.75a.25.25 0 0 0 .243-.193l.007-.057V3.5l-1.277 1.288-.08.07a.712.712 0 0 1-.933-.07.727.727 0 0 1-.076-.932l.076-.09 2.533-2.554.08-.07.047-.033.057-.032.09-.038.091-.025.052-.008.112-.006zM10 7.25a.75.75 0 0 1 .102 1.493L10 8.75H6a.75.75 0 0 1-.102-1.493L6 7.25h4z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowRandom = /* #__PURE__ */withIcon(IconArrowRandom);\nvar IconArrowRefresh = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.75 7.25A.75.75 0 0 1 2.5 8a5.5 5.5 0 0 0 9.937 3.251l-1.187-.001a.75.75 0 1 1 0-1.5h2.95a.8.8 0 0 1 .8.8v2.95a.75.75 0 1 1-1.5 0l.001-1.17A7 7 0 0 1 1 8a.75.75 0 0 1 .75-.75zM8 1a7 7 0 0 1 7 7 .75.75 0 1 1-1.5 0 5.5 5.5 0 0 0-9.938-3.25H4.75a.75.75 0 0 1 0 1.5H1.8a.8.8 0 0 1-.8-.8V2.5a.75.75 0 0 1 1.5 0v1.169A6.996 6.996 0 0 1 8 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowRefresh = /* #__PURE__ */withIcon(IconArrowRefresh);\nvar IconArrowRight = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m10.455 2.147.084.073 5.241 5.248c.267.266.29.683.073.977l-.073.084-5.244 5.251a.749.749 0 0 1-1.133-.977l.073-.084 3.962-3.971H.75a.75.75 0 0 1-.102-1.493l.102-.007h12.69L9.48 3.28a.751.751 0 0 1-.073-.977l.072-.084a.749.749 0 0 1 .976-.073z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowRight = /* #__PURE__ */withIcon(IconArrowRight);\nvar IconArrowSkip = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M7.75 2c3.368 0 6.125 2.56 6.246 5.78L14 8v3.504l.785-.793.08-.07a.706.706 0 0 1 .927.07c.25.253.275.647.075.928l-.075.09-2.039 2.06-.079.067.007-.005-.008.008a.712.712 0 0 1-.006.005l.001-.003-.032.024a.706.706 0 0 1-.341.114h-.02l-.03.001-.04-.001a.707.707 0 0 1-.34-.113l-.034-.025.002.003a.712.712 0 0 1-.006-.005l-.007-.006-.016-.012a.721.721 0 0 1-.057-.052l-2.039-2.06a.725.725 0 0 1 0-1.018.706.706 0 0 1 .927-.07l.08.07.785.793V8c0-2.477-2.119-4.5-4.75-4.5-2.558 0-4.632 1.912-4.745 4.295L3 8v1.628a2.25 2.25 0 1 1-1.5 0V8c0-3.322 2.806-6 6.25-6zm0 7.5a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5zm0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowSkip = /* #__PURE__ */withIcon(IconArrowSkip);\nvar IconArrowSpread = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m8.586 1 .098.009.094.021.05.017.104.05.077.05.094.086.062.077.035.057.037.074.028.079 1.054 3.524.025.117a.744.744 0 0 1-.512.806.72.72 0 0 1-.819-.293l-.051-.092-.039-.102-.52-1.74C7.52 5.46 6.558 6.734 5.5 7.56c-.206.162-.428.307-.664.436.236.13.458.274.664.435 1.06.828 2.022 2.105 2.902 3.828v.002l.521-1.741.039-.102a.721.721 0 0 1 .87-.385.744.744 0 0 1 .512.806l-.025.117-1.054 3.524a.74.74 0 0 1-.065.153l-.035.057-.062.077-.094.086-.077.05-.104.05-.05.017a.715.715 0 0 1-.192.03l-.066-.002-.058-.006-.105-.025-3.489-1.09a.745.745 0 0 1-.487-.924.723.723 0 0 1 .803-.511l.106.024 1.823.568c-.8-1.589-1.65-2.728-2.537-3.42-.59-.461-1.406-.756-2.464-.873l.076.009H.75a.75.75 0 0 1-.102-1.493L.75 7.25h1.37l.275-.035c.922-.136 1.645-.417 2.181-.836.885-.691 1.733-1.827 2.532-3.411l-1.818.566-.106.024a.723.723 0 0 1-.803-.511.746.746 0 0 1 .395-.887l.092-.036 3.489-1.09.105-.026.058-.006L8.586 1zm4.558 3.885.09.075 2.554 2.533.07.08.033.048.032.056.038.09.025.091.008.052.006.112-.009.09-.03.122-.038.09-.033.056-.046.066-.056.06-2.554 2.534-.09.076a.727.727 0 0 1-.932-.076.712.712 0 0 1-.132-.835l.062-.098.07-.08 1.283-1.277H8.751a.75.75 0 0 1-.102-1.493l.102-.007h4.747l-1.286-1.276-.07-.08a.712.712 0 0 1 .07-.934.727.727 0 0 1 .932-.075z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowSpread = /* #__PURE__ */withIcon(IconArrowSpread);\nvar IconArrowUp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.005 14.998a.75.75 0 0 0 .744-.648l.006-10.79 3.967 3.965a.75.75 0 0 0 .978.072l.084-.072a.75.75 0 0 0 .072-.977l-.072-.084-5.248-5.246a.75.75 0 0 0-.977-.073l-.084.073-5.252 5.25A.75.75 0 0 0 3.2 7.6l.085-.073 3.97-3.966v10.686c0 .414.336.75.75.75z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArrowUp = /* #__PURE__ */withIcon(IconArrowUp);\nvar IconArtificialIntelligence = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M0 2.25a2.25 2.25 0 0 1 4.372-.75h8.378c.965 0 1.75.78 1.75 1.749v8.379a2.251 2.251 0 1 1-1.5 0v-8.38A.249.249 0 0 0 12.75 3H4.372A2.25 2.25 0 0 1 0 2.25ZM2.25 3a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM14.5 13.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z\"\n }), React.createElement(\"path\", {\n d: \"M1.5 7.25a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM5.25 6.5a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5ZM1.5 10.5a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM5.25 9.75a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5ZM1.5 13.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM5.25 13a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ArtificialIntelligence = /* #__PURE__ */withIcon(IconArtificialIntelligence);\nvar IconBadge = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.5 1A1.5 1.5 0 0 1 10 2.5V3h4a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4v-.5A1.5 1.5 0 0 1 7.5 1h1zM6 4.5H2a.5.5 0 0 0-.492.41L1.5 5v8a.5.5 0 0 0 .41.492L2 13.5h12a.5.5 0 0 0 .492-.41L14.5 13V5a.5.5 0 0 0-.41-.492L14 4.5h-4A1.5 1.5 0 0 1 8.5 6h-1A1.5 1.5 0 0 1 6 4.5zm0 2A1.5 1.5 0 0 1 7.5 8v3A1.5 1.5 0 0 1 6 12.5H4A1.5 1.5 0 0 1 2.5 11V8A1.5 1.5 0 0 1 4 6.5h2zM6 8H4v3h2V8zm6.25 1a.75.75 0 1 1 0 1.5h-2.5a.75.75 0 1 1 0-1.5h2.5zm0-2.5a.75.75 0 1 1 0 1.5h-2.5a.75.75 0 0 1 0-1.5h2.5zm-3.75-4h-1v2h1v-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Badge = /* #__PURE__ */withIcon(IconBadge);\nvar IconBalloon = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.502 0c3.047 0 5.502 2.583 5.502 5.75 0 2.416-1.428 4.492-3.458 5.34l.653 1.631a.75.75 0 0 1-.593 1.022l-.103.007h-.846c.466.74 1.07.908 1.921.609l.147-.055c3.077-1.23 5.078-1.238 7.006.372a.75.75 0 1 1-.962 1.151c-1.417-1.183-2.868-1.178-5.487-.13-1.94.775-3.453.052-4.299-1.946l-1.482-.001a.75.75 0 0 1-.728-.93l.032-.099.653-1.63C1.428 10.24 0 8.166 0 5.75 0 2.583 2.454 0 5.502 0zm.58 11.469a5.337 5.337 0 0 1-1.16 0l-.313.781h1.785l-.312-.781zM5.502 1.5C3.3 1.5 1.5 3.394 1.5 5.75S3.3 10 5.5 10c2.202 0 4.002-1.894 4.002-4.25S7.703 1.5 5.502 1.5zm0 .75a.75.75 0 1 1 0 1.5c-.95 0-1.75.88-1.75 2a.75.75 0 0 1-1.501 0c0-1.918 1.439-3.5 3.25-3.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Balloon = /* #__PURE__ */withIcon(IconBalloon);\nvar IconBell = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M7.995 0a.75.75 0 0 1 .743.649l.007.102v.785a5.754 5.754 0 0 1 5 5.47l.005.237v2.353l1.188 2.897a.751.751 0 0 1-.506 1.012l-.094.018-.098.006-3.74-.023-.005.156a2.501 2.501 0 0 1-4.99 0l-.005-.184-3.758-.02a.75.75 0 0 1-.72-.951l.033-.093L2.25 9.59V7.243a5.754 5.754 0 0 1 4.994-5.706l.001-.786A.75.75 0 0 1 7.995 0zM7 13.487v.01a1 1 0 0 0 2 .002l-2-.012zM8 2.989l-.206.005a4.252 4.252 0 0 0-4.039 4.043l-.005.206v2.502a.751.751 0 0 1-.027.198l-.032.095-.816 1.923 10.248.06-.817-1.991-.03-.093-.02-.095-.006-.097V7.243a4.252 4.252 0 0 0-4.044-4.249L8 2.99z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Bell = /* #__PURE__ */withIcon(IconBell);\nvar IconBlocks = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M16 15.253a.747.747 0 0 1-.747.747H.747A.747.747 0 0 1 0 15.253v-4.906C0 9.934.334 9.6.747 9.6H4.8V5.547c0-.413.334-.747.747-.747H9.6V.747c0-.413.334-.747.747-.747h4.906c.413 0 .747.334.747.747v14.506zM4.8 11.2H1.6v3.2h3.2v-3.2zm4.8 0H6.4v3.2h3.2v-3.2zm4.8 0h-3.2v3.2h3.2v-3.2zM9.6 6.4H6.4v3.2h3.2V6.4zm4.8 0h-3.2v3.2h3.2V6.4zm0-4.8h-3.2v3.2h3.2V1.6z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Blocks = /* #__PURE__ */withIcon(IconBlocks);\nvar IconBooks = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.25 14.5a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5h14.5zM2.25 0A.75.75 0 0 1 3 .75v11.5a.75.75 0 1 1-1.5 0V.75A.75.75 0 0 1 2.25 0zm4.5 0a.75.75 0 0 1 .75.75v11.5a.75.75 0 1 1-1.5 0V.75A.75.75 0 0 1 6.75 0zm4.87.476.03.098 2.81 11.493a.75.75 0 0 1-1.426.457l-.03-.098L10.194.933A.75.75 0 0 1 11.62.476z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Books = /* #__PURE__ */withIcon(IconBooks);\nvar IconBrush = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.136 12.02c-.352-.517.024-1.209.606-1.2l.24.025c.604.04 1.372-.254 2.297-.922l.376-.278a3.924 3.924 0 0 1 1.525-.657l7.061-7.32a2.148 2.148 0 0 1 3.114 0c.824.854.858 2.217.103 3.113l-.103.114-6.823 7.074c-.175 1.725-1.873 3.094-3.985 3.029-1.64-.05-3.113-1.071-4.41-2.978zm2.033.176.052.055c.773.803 1.562 1.201 2.37 1.226 1.545.048 2.618-.971 2.475-1.998-.138-.99-1.333-1.438-2.563-.592l-.136.099c-.639.488-1.248.851-1.83 1.083l-.247.09-.12.037zm4.875-2.99c.458.218.843.558 1.11 1.001l6.163-6.387a.78.78 0 0 0 0-1.076.715.715 0 0 0-.963-.068l-.075.068-6.235 6.462z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Brush = /* #__PURE__ */withIcon(IconBrush);\nvar IconCalendar = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M11.75 1a.75.75 0 0 1 .75.75V3H14a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h1.5V1.75a.75.75 0 0 1 1.5 0V3h6V1.75a.75.75 0 0 1 .75-.75zm1.75 6.5h-11v6h11v-6zm0-3h-11V6h11V4.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Calendar = /* #__PURE__ */withIcon(IconCalendar);\nvar IconCamera = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M10.246 1c.474 0 .883.316 1.01.763l.026.114.354 2.122L15 4a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1l3.364-.001.354-2.122a1.05 1.05 0 0 1 .92-.87L5.753 1h4.492zM14.5 5.5h-13v8h13v-8zM8 6.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6zM8 8a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm1.865-5.5H6.134L5.885 4h4.229l-.249-1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Camera = /* #__PURE__ */withIcon(IconCamera);\nvar IconCaretDown = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.254 4c.19.001.38.088.526.26.267.316.29.81.073 1.158l-.073.1L8.53 11.74l-.084.086a.66.66 0 0 1-.901-.007l-.076-.08L2.22 5.523l-.073-.1a1.024 1.024 0 0 1 0-1.058l.073-.1.084-.085a.674.674 0 0 1 .446-.175V4h10.504z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CaretDown = /* #__PURE__ */withIcon(IconCaretDown);\nvar IconCaretLeft = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12 13.254a.695.695 0 0 1-.26.526c-.316.267-.81.29-1.158.073l-.1-.073L4.26 8.53l-.086-.084a.66.66 0 0 1 .007-.901l.08-.076 6.217-5.248.1-.073a1.024 1.024 0 0 1 1.058 0l.1.073.085.084c.117.132.175.29.175.446L12 13.254z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CaretLeft = /* #__PURE__ */withIcon(IconCaretLeft);\nvar IconCaretRight = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M4 13.254c.001.19.088.38.26.526.316.267.81.29 1.158.073l.1-.073L11.74 8.53l.086-.084a.66.66 0 0 0-.007-.901l-.08-.076L5.523 2.22l-.1-.073a1.024 1.024 0 0 0-1.058 0l-.1.073-.085.084a.674.674 0 0 0-.175.446H4v10.504z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CaretRight = /* #__PURE__ */withIcon(IconCaretRight);\nvar IconCaretUp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.254 12a.695.695 0 0 0 .526-.26c.267-.316.29-.81.073-1.158l-.073-.1L8.53 4.26l-.084-.086a.66.66 0 0 0-.901.007l-.076.08-5.248 6.217-.073.1a1.024 1.024 0 0 0 0 1.058l.073.1.084.085c.132.117.29.175.446.175V12h10.504z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CaretUp = /* #__PURE__ */withIcon(IconCaretUp);\nvar IconCaretUpDown = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.254 9c.19.001.38.077.526.228a.8.8 0 0 1 .073 1.013l-.073.087-5.251 5.444-.084.075a.73.73 0 0 1-.901-.006l-.076-.069-5.248-5.44-.073-.087a.802.802 0 0 1 0-.926l.073-.087.084-.076a.73.73 0 0 1 .446-.152V9h10.504zM7.544.159a.73.73 0 0 1 .9-.006l.085.075 5.251 5.444.073.087a.8.8 0 0 1-.073 1.013.735.735 0 0 1-.526.228H2.75a.76.76 0 0 1-.446-.156l-.084-.076-.073-.087a.802.802 0 0 1 0-.926l.073-.087L7.468.228z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CaretUpDown = /* #__PURE__ */withIcon(IconCaretUpDown);\nvar IconCart = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M6.75 11.5a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5zm6 0a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5zm-6 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm6 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zM2.471 0c.782 0 1.465.506 1.69 1.234l.04.148.354 1.644H14.99a1.004 1.004 0 0 1 1 1.14l-.722 5.477a1.006 1.006 0 0 1-1 .857H5.35c-.476 0-.888-.329-.988-.789L3.194 3.9l-.476-2.206a.25.25 0 0 0-.178-.188l-.069-.01-1.713.025A.753.753 0 0 1 0 .773C0 .393.285.08.655.03L.758.024 2.47 0zm11.594 4.523H5.257a.3.3 0 0 0-.295.357l.75 3.88a.3.3 0 0 0 .295.243h7.558a.3.3 0 0 0 .297-.261l.5-3.88a.3.3 0 0 0-.258-.336l-.039-.003z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Cart = /* #__PURE__ */withIcon(IconCart);\nvar IconChartBarHorz = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.75 0a.75.75 0 0 1 .75.75V2h5.546a.95.95 0 0 1 .944.84l.006.11V5.5h3.052a.95.95 0 0 1 .944.84l.006.11V9h3.052a.95.95 0 0 1 .944.84l.006.11v3.1a.95.95 0 0 1-.84.944l-.11.006H1.5v1.25a.75.75 0 0 1-.648.743L.75 16a.75.75 0 0 1-.75-.75V.75A.75.75 0 0 1 .648.007L.751 0zM14.5 10.5H1.75v2h12.748v-2zM10.497 7H1.751v2h8.746V7zM6.495 3.5H1.751v2h4.744v-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartBarHorz = /* #__PURE__ */withIcon(IconChartBarHorz);\nvar IconChartBarVert = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M0 15.246a.75.75 0 0 1 .75-.75l1.252.001L2 8.954a.95.95 0 0 1 .84-.944l.11-.006H5.5v-3.05a.95.95 0 0 1 .84-.944l.11-.006H9V.954A.95.95 0 0 1 9.84.01l.11-.006h3.1a.95.95 0 0 1 .944.839l.006.11.003 13.544h1.247a.75.75 0 1 1 0 1.5h-1.247V16h-12v-.003H.75a.75.75 0 0 1-.75-.75zM10.5 1.504l.003 12.993h2L12.5 1.504h-2zm-3.5 4 .003 8.993h2L9 5.504H7zm-3.5 4 .003 4.993h2L5.5 9.504h-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartBarVert = /* #__PURE__ */withIcon(IconChartBarVert);\nvar IconChartConfidenceLevel = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.75.015a.75.75 0 0 1 .743.648L1.5.765V14.5h13.752a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V.765a.75.75 0 0 1 .75-.75zM9.307 2.75l.563.004c1.382.058 2.07.823 2.798 2.661l.091.236.185.505.331.948.123.335.112.287.111.262c.468 1.058 1.002 1.609 1.593 1.745l.229.043c.36.097.6.445.55.822a.756.756 0 0 1-.848.646c-1.251-.163-2.217-1.086-2.91-2.654l-.064-.146-.062-.15-.124-.315-.132-.362-.33-.945-.16-.437-.187-.474-.18-.4c-.372-.766-.713-1.067-1.19-1.107l-.5-.004c-.536 0-.902.286-1.302 1.111l-.143.314-.074.175-.15.385-.16.437-.33.945-.132.362-.124.316c-.041.1-.083.198-.126.295-.693 1.568-1.659 2.49-2.91 2.654a.756.756 0 0 1-.848-.646.75.75 0 0 1 .55-.822l.101-.02c.643-.083 1.22-.635 1.72-1.768l.112-.262.112-.287.123-.335.33-.948.186-.505c.762-2.009 1.45-2.837 2.89-2.897l.176-.004z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartConfidenceLevel = /* #__PURE__ */withIcon(IconChartConfidenceLevel);\nvar IconChartDonut = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM1.5 8a6.5 6.5 0 0 0 11.302 4.38.2.2 0 0 0-.038-.302l-1.778-1.184a.2.2 0 0 0-.248.021A3.985 3.985 0 0 1 8 12a4 4 0 0 1-.907-7.896.2.2 0 0 0 .155-.195l.001-2.136a.2.2 0 0 0-.229-.198A6.502 6.502 0 0 0 1.5 8zm12.583-1.536-1.995.767a.2.2 0 0 0-.127.216c.007.043.011.08.015.108a4.044 4.044 0 0 1-.23 1.85.2.2 0 0 0 .075.238L13.6 10.83a.2.2 0 0 0 .291-.08l.02-.044a6.528 6.528 0 0 0 .439-4.099.2.2 0 0 0-.267-.143zM9.833 6.3l-.128-.128-.122-.106-.067-.053-.137-.098-.132-.082-.117-.062-.136-.065-.145-.057-.127-.042-.181-.047-.116-.023-.168-.023-.128-.01-.135-.003-.249.013-.1.012-.191.035-.047.01A2.501 2.501 0 1 0 9.735 9.8l.1-.102.11-.128.11-.147c.075-.107.142-.221.2-.34l.097-.232c.096-.266.148-.552.148-.851l-.006-.157a2.485 2.485 0 0 0-.322-1.081l-.085-.138-.043-.064a2.512 2.512 0 0 0-.212-.26zm2.246-3.064-1.185 1.778a.2.2 0 0 0 .022.249l.03.032c.133.145.256.3.366.463.052.076.15.107.235.073l1.997-.767a.2.2 0 0 0 .1-.289 6.527 6.527 0 0 0-1.265-1.577.2.2 0 0 0-.3.038zm-3.33-1.464V3.91a.2.2 0 0 0 .156.195c.1.023.179.043.237.06.067.02.155.05.265.092a.2.2 0 0 0 .236-.076l1.188-1.78a.2.2 0 0 0-.096-.3 6.453 6.453 0 0 0-1.757-.528.2.2 0 0 0-.229.198z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartDonut = /* #__PURE__ */withIcon(IconChartDonut);\nvar IconChartDonutFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5A.75.75 0 0 0 8 3a5 5 0 1 1-5 5 .75.75 0 0 0-1.5 0A6.5 6.5 0 1 0 8 1.5zm0 3a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartDonutFilled = /* #__PURE__ */withIcon(IconChartDonutFilled);\nvar IconChartHorzStacked = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m.75 0 .102.007a.75.75 0 0 1 .642.641L1.5.75 1.5 2h13.55l.11.006a.95.95 0 0 1 .834.833L16 2.95v3.1l-.006.11a.95.95 0 0 1-.834.834L15.05 7h-3.052v2.55l-.006.11a.95.95 0 0 1-.834.834l-.11.006H8.996v2.55l-.006.11a.95.95 0 0 1-.833.834L8.046 14H1.5v1.25a.75.75 0 0 1-.648.743L.751 16l-.103-.007a.75.75 0 0 1-.641-.641L0 15.25V.75A.75.75 0 0 1 .648.007L.75 0zm3.249 10.5H1.751v2h2.248v-2zm3.496 0H5.496v2h2v-2zM6 7H1.751v2h4.248V7zm4.498 0H7.496v2h3.001V7zM7.999 3.5H1.751v2h6.248v-2zm6.5 0H9.496v2h5.003v-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartHorzStacked = /* #__PURE__ */withIcon(IconChartHorzStacked);\nvar IconChartLine = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.75 1a2.25 2.25 0 1 1-.375 4.469l-2.72 4.895a.75.75 0 0 1-1.106.235l-.08-.069-3.297-3.297-2.236 4.027a2.25 2.25 0 1 1-1.312-.729l2.72-4.895A.75.75 0 0 1 6.451 5.4l.08.069 3.296 3.296 2.237-4.026A2.25 2.25 0 0 1 13.75 1zM2.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm11.5-9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartLine = /* #__PURE__ */withIcon(IconChartLine);\nvar IconChartPie = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 0 1 6.833 12.162.77.77 0 0 1-.062.202l-.054.097a.747.747 0 0 1-.234.226A8 8 0 1 1 8 0zm-.75 1.543A6.501 6.501 0 1 0 12.962 12.2L7.586 8.647l-.027-.019a.75.75 0 0 1-.044-.034l-.013-.012-.004-.003-.02-.018a.746.746 0 0 1-.017-.017l-.017-.02a.75.75 0 0 1-.024-.027l-.007-.008a.744.744 0 0 1-.1-.168l-.005-.01a.764.764 0 0 1-.007-.018l-.011-.03a.75.75 0 0 1-.019-.063l.03.093A.755.755 0 0 1 7.25 8zm7.047 4.84L9.624 8.195l4.168 2.757c.42-.82.67-1.742.704-2.719L14.5 8c0-.558-.07-1.1-.203-1.617zm-2.102-3.348L9.924 6.47l3.834-1.488a6.527 6.527 0 0 0-1.563-1.947zM8.75 1.543v3.983l2.197-3.321a6.456 6.456 0 0 0-2.197-.662z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartPie = /* #__PURE__ */withIcon(IconChartPie);\nvar IconChartSegment = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.693 1.084a.75.75 0 0 1-.373.992 6.5 6.5 0 1 0 8.6 8.614.75.75 0 0 1 1.364.621A8 8 0 1 1 4.7.71a.75.75 0 0 1 .993.374zm1.626.324A1.636 1.636 0 0 1 9.174.016l.273.043a8.012 8.012 0 0 1 6.543 6.867l.008.101.002.078c0 .874-.709 1.583-1.583 1.583H9.053a1.75 1.75 0 0 1-1.75-1.75V1.632c0-.075.006-.15.016-.224zm1.636.092a.133.133 0 0 0-.15.113l-.002.019v5.306c0 .138.112.25.25.25h5.364c.046 0 .083-.037.085-.064l-.04-.283A6.502 6.502 0 0 0 9.2 1.539z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartSegment = /* #__PURE__ */withIcon(IconChartSegment);\nvar IconChartTracker = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.75 0a.75.75 0 0 1 .743.649L1.5.75v13.748h13.752a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.744l-.101.007H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.949V.751A.75.75 0 0 1 .75 0zm15.032 3.64c.266.266.29.683.073.977l-.073.084-5.31 5.316a.75.75 0 0 1-.977.073l-.084-.073-2.963-2.965-2.718 2.72a.75.75 0 0 1-.976.074l-.084-.073a.751.751 0 0 1-.073-.978l.073-.084L5.918 5.46a.75.75 0 0 1 .977-.073l.084.073L9.94 8.425l4.78-4.785a.75.75 0 0 1 1.061 0z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartTracker = /* #__PURE__ */withIcon(IconChartTracker);\nvar IconChartVertStacked = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m6.05.004.11.006a.95.95 0 0 1 .834.833L7 .953v3.051h2.55l.11.006a.95.95 0 0 1 .834.833l.006.11v2.051h2.55l.11.006a.95.95 0 0 1 .834.833l.006.11-.001 2.547.005 1.5-.006 2.497h1.252a.75.75 0 0 1 .102 1.492l-.102.007-1.253.001V16h-12v-.003H.75a.75.75 0 0 1-.102-1.494l.102-.007 1.247.001L2 .954l.006-.111A.95.95 0 0 1 2.84.01L2.95.004h3.1zM5.499 8h-2l-.002 6.497h2L5.499 8zm3.499 2h-2l-.001 4.497h2L8.998 10zm3.5 2h-2l-.001 2.497h2L12.498 12zm.002-3.496h-2l-.001 1.996h2l.001-1.996zm-3.5-3H7V6.5L7.004 8l-.005.5h2L9 5.504zm-3.5-4h-2L3.499 6.5h2L5.5 1.504z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChartVertStacked = /* #__PURE__ */withIcon(IconChartVertStacked);\nvar IconChat = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.75 0a1.75 1.75 0 0 1 1.744 1.606l.006.144v2.249L14.25 4c.966 0 1.75.784 1.75 1.75v6l-.006.144A1.75 1.75 0 0 1 14.25 13.5H14v1.75l-.007.103a.75.75 0 0 1-1.223.473L9.979 13.5H7.25a1.75 1.75 0 0 1-1.75-1.75V9.934l-2.27 1.892a.751.751 0 0 1-1.204-.375l-.02-.098L2 11.25V9.5h-.25A1.75 1.75 0 0 1 .024 8.042l-.018-.148L0 7.75v-6A1.75 1.75 0 0 1 1.606.006L1.75 0h8zM7 11.75c0 .138.112.25.25.25h3l.104.007a.75.75 0 0 1 .376.167l1.77 1.473v-.897a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25v-6a.25.25 0 0 0-.25-.25h-7a.25.25 0 0 0-.25.25v6zM9.75 1.5h-8a.25.25 0 0 0-.243.193L1.5 1.75v6a.25.25 0 0 0 .193.243L1.75 8h1a.75.75 0 0 1 .743.648l.007.102v.897l1.77-1.473a.75.75 0 0 1 .23-.131V5.75C5.5 4.784 6.284 4 7.25 4L10 3.999V1.75a.25.25 0 0 0-.193-.243L9.75 1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Chat = /* #__PURE__ */withIcon(IconChat);\nvar IconCheck = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.716 2.226a.747.747 0 0 1 1.06-.01.757.757 0 0 1 .082.98l-.072.086-10.25 10.492a.747.747 0 0 1-.98.079l-.085-.074L.224 9.51a.757.757 0 0 1 0-1.066.747.747 0 0 1 .976-.073l.084.073 3.712 3.732 9.72-9.95z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Check = /* #__PURE__ */withIcon(IconCheck);\nvar IconCheckBox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 1 10.201.01a.75.75 0 0 1-.001 1.5L1.5 2.5v10.999h13V7.752a.75.75 0 0 1 .648-.743l.102-.007a.75.75 0 0 1 .743.648l.007.102v6.198c0 .541-.41.987-.936 1.044L14.95 15H1.05a1.05 1.05 0 0 1-1.044-.936L0 13.95V2.05c0-.54.41-.986.936-1.043L1.051 1zm14.733 1.718a.72.72 0 0 1 .069.955l-.073.082-7.263 7.033a.766.766 0 0 1-.98.067l-.083-.071-3.234-3.18a.72.72 0 0 1 .004-1.037.766.766 0 0 1 .979-.068l.084.072L7.99 9.23l6.73-6.516a.765.765 0 0 1 1.063.004z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CheckBox = /* #__PURE__ */withIcon(IconCheckBox);\nvar IconCheckCircle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.976.06a7.97 7.97 0 0 1 3.447 1.272.75.75 0 0 1-.83 1.25 6.5 6.5 0 1 0 2.877 4.775.75.75 0 1 1 1.493-.147A8 8 0 1 1 8.976.06zm6.807 2.658a.72.72 0 0 1 .069.955l-.073.082-7.263 7.033a.766.766 0 0 1-.98.067l-.083-.071-3.234-3.18a.72.72 0 0 1 .004-1.037.766.766 0 0 1 .979-.068l.084.072L7.99 9.23l6.73-6.516a.765.765 0 0 1 1.063.004z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CheckCircle = /* #__PURE__ */withIcon(IconCheckCircle);\nvar IconCheckEnclosed = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0Zm4.197 4.391-6.076 6.22L3.8 8.278l-.053-.046a.467.467 0 0 0-.61.046.473.473 0 0 0 0 .666l2.654 2.67.053.045a.467.467 0 0 0 .613-.049l6.408-6.559.045-.053a.473.473 0 0 0-.051-.613.467.467 0 0 0-.663.006Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CheckEnclosed = /* #__PURE__ */withIcon(IconCheckEnclosed);\nvar IconChevronDown = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.709 4.23a.75.75 0 0 1 1.151.956l-.07.085-6.25 6.499a.75.75 0 0 1-.995.076l-.085-.076L1.212 5.27a.751.751 0 0 1 .999-1.115l.082.074L8 10.166l5.709-5.936z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChevronDown = /* #__PURE__ */withIcon(IconChevronDown);\nvar IconChevronLeft = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M11.77 13.708a.75.75 0 0 1-.955 1.151l-.085-.07-6.499-6.25a.75.75 0 0 1-.076-.995l.076-.085L10.73 1.21a.751.751 0 0 1 1.115.999l-.074.082L5.835 8l5.936 5.709z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChevronLeft = /* #__PURE__ */withIcon(IconChevronLeft);\nvar IconChevronRight = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M4.231 13.708a.75.75 0 0 0 .956 1.151l.085-.07 6.499-6.25a.75.75 0 0 0 .076-.995l-.076-.085L5.272 1.21a.751.751 0 0 0-1.115.999l.074.082L10.167 8 4.23 13.708z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChevronRight = /* #__PURE__ */withIcon(IconChevronRight);\nvar IconChevronUp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.709 11.77a.75.75 0 0 0 1.151-.956l-.07-.085L8.54 4.23a.75.75 0 0 0-.995-.076l-.085.076-6.248 6.499a.751.751 0 0 0 .999 1.115l.082-.074L8 5.834l5.709 5.936z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ChevronUp = /* #__PURE__ */withIcon(IconChevronUp);\nvar IconCircle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm0 1.5a6.5 6.5 0 1 1 0 13 6.5 6.5 0 0 1 0-13z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Circle = /* #__PURE__ */withIcon(IconCircle);\nvar IconClock = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm0 1.505a.75.75 0 0 1 .743.648l.007.102v3.791l2.6 1.359a.75.75 0 0 1 .36.918l-.042.094a.75.75 0 0 1-.919.358l-.093-.041-3.003-1.57a.75.75 0 0 1-.396-.56L7.25 8V3.755a.75.75 0 0 1 .75-.75z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Clock = /* #__PURE__ */withIcon(IconClock);\nvar IconClone = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12 1a1 1 0 0 1 1 1v2h2a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-2H1a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h11zm2.5 4.5h-10v8h10v-8zm-3-1.5V2.5h-10v8H3V5a1 1 0 0 1 1-1h7.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Clone = /* #__PURE__ */withIcon(IconClone);\nvar IconCloud = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 1c3.176 0 5.75 2.569 5.75 5.737 0 .357-.033.709-.097 1.052A3.742 3.742 0 0 1 16 11.259c0 2-1.573 3.633-3.553 3.736l-.2.005h-7.25C2.243 15 0 12.89 0 10.26c0-1.665.904-3.123 2.267-3.968A5.745 5.745 0 0 1 8 1zm0 1.497a4.25 4.25 0 0 0-4.106 3.142 5.05 5.05 0 0 1 .593-.093l.1-.005.49-.011.926-.009a.75.75 0 1 1 0 1.497l-.974.016-.45.016-.171.014c-1.657.263-2.907 1.602-2.907 3.197 0 1.722 1.451 3.145 3.302 3.238l.193.004h7.252a2.248 2.248 0 0 0 2.251-2.245c0-.89-.525-1.681-1.313-2.041a5.738 5.738 0 0 1-1.298 1.747.751.751 0 0 1-1.06-.045.747.747 0 0 1 .045-1.057 4.222 4.222 0 0 0 1.377-3.125A4.245 4.245 0 0 0 8 2.497z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Cloud = /* #__PURE__ */withIcon(IconCloud);\nvar IconCloudArrow = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m8.446 6.397.084.073 2.5 2.5a.75.75 0 0 1-.976 1.133l-.084-.073-1.22-1.219v5.439a.75.75 0 0 1-1.493.102l-.007-.102V8.811l-1.22 1.22a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084 2.5-2.5a.75.75 0 0 1 .976-.073zM9.5 1a4.75 4.75 0 0 1 4.677 5.586l-.057.271-.013.046.113.06a3.499 3.499 0 0 1 1.757 2.64l.018.213.005.193a3.491 3.491 0 0 1-3.3 3.486l-.191.005H10.75a.75.75 0 1 1 0-1.5h1.759c1.05 0 1.91-.812 1.986-1.843l.005-.148c0-.922-.63-1.717-1.511-1.936a.75.75 0 0 1-.507-1.027 3.25 3.25 0 1 0-6.1-2.213.75.75 0 0 1-1.07.453l-.217-.136a1.25 1.25 0 0 0-1.716 1.654l.12.212a.75.75 0 0 1-.494 1.048 1.998 1.998 0 0 0 .346 3.93L3.5 12h1.75a.75.75 0 1 1 0 1.5H3.5a3.5 3.5 0 0 1-3.495-3.308L0 10c0-1.217.626-2.308 1.597-2.936l.175-.107.063-.034-.02-.08-.036-.195-.022-.198-.007-.2a2.75 2.75 0 0 1 3.18-2.717l.209.042.12.033.094-.177a4.753 4.753 0 0 1 3.692-2.41l.236-.016L9.5 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CloudArrow = /* #__PURE__ */withIcon(IconCloudArrow);\nvar IconComment = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.759.004 6.244 0A6.247 6.247 0 0 0 0 6.25l.004.229a6.253 6.253 0 0 0 6.247 6.027h.999v2.742a.75.75 0 0 0 1.075.677l2.302-1.11A9.498 9.498 0 0 0 16 6.259 6.251 6.251 0 0 0 9.759.004zm-3.51 1.497 3.508.005A4.75 4.75 0 0 1 14.5 6.258l-.005.288a7.996 7.996 0 0 1-4.519 6.917l-1.226.59v-2.298a.75.75 0 0 0-.75-.75H6.25a4.753 4.753 0 0 1 0-9.504z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Comment = /* #__PURE__ */withIcon(IconComment);\nvar IconCommentCheck = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m6.252 0 3.507.004a.75.75 0 0 1 .1 1.495l-.102.007L6.265 1.5l-.212.004A4.753 4.753 0 0 0 6.033 11l.218.005H8a.75.75 0 0 1 .743.648l.007.102v2.298l1.226-.59a7.996 7.996 0 0 0 4.519-6.917l.005-.288a.75.75 0 1 1 1.5 0 9.498 9.498 0 0 1-5.102 8.422l-.271.136-2.302 1.109a.75.75 0 0 1-1.068-.575l-.007-.102v-2.742h-1A6.253 6.253 0 0 1 .005 6.479L0 6.249A6.25 6.25 0 0 1 5.78.019L6.01.004 6.252 0zm9.53.718a.72.72 0 0 1 .07.955l-.073.082-7.263 7.033a.766.766 0 0 1-.98.067l-.083-.071-3.234-3.18a.72.72 0 0 1 .004-1.037.766.766 0 0 1 .979-.068l.084.072L7.99 7.23 14.72.714a.765.765 0 0 1 1.063.004z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CommentCheck = /* #__PURE__ */withIcon(IconCommentCheck);\nvar IconCommentFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.759.004 6.244 0A6.247 6.247 0 0 0 0 6.25l.004.229a6.253 6.253 0 0 0 6.247 6.027h.999v2.742a.75.75 0 0 0 1.075.677l2.302-1.11A9.498 9.498 0 0 0 16 6.259 6.251 6.251 0 0 0 9.759.004z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CommentFilled = /* #__PURE__ */withIcon(IconCommentFilled);\nvar IconCopyright = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm0 2.25c.868 0 1.698.261 2.4.742a4.27 4.27 0 0 1 1.082 1.07.75.75 0 0 1-1.228.862 2.77 2.77 0 0 0-.702-.695 2.75 2.75 0 1 0 .818 3.667.75.75 0 1 1 1.292.763A4.254 4.254 0 0 1 8 12.25a4.25 4.25 0 1 1 0-8.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Copyright = /* #__PURE__ */withIcon(IconCopyright);\nvar IconCreditCard = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15 2a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14Zm-.5 6h-13v4.5h13V8Zm0-4.5h-13v2h13v-2Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar CreditCard = /* #__PURE__ */withIcon(IconCreditCard);\nvar IconDanger = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM2.904 3.965a6.5 6.5 0 0 0 9.131 9.131L2.904 3.965zM8 1.5a6.472 6.472 0 0 0-4.035 1.404l9.131 9.131A6.5 6.5 0 0 0 8 1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Danger = /* #__PURE__ */withIcon(IconDanger);\nvar IconDashboard = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M0 9a8 8 0 0 1 15.996-.25L16 14a1 1 0 0 1-.998 1H1a1 1 0 0 1-1-1V9zm8.75-6.457v.906a.742.742 0 0 1-.75.734.745.745 0 0 1-.743-.634l-.007-.1v-.906c-.951.11-1.84.424-2.62.898l.5.562a.724.724 0 0 1-.071 1.037.762.762 0 0 1-.98.007L4 4.971l-.548-.614A6.508 6.508 0 0 0 1.9 6.75l.86.121c.41.058.695.43.636.831a.745.745 0 0 1-.747.631l-.101-.007-.998-.14c-.024.192-.04.387-.047.585l-.002.134.002.095-.004 4.499h12.999l-.003-4.732a6.545 6.545 0 0 0-.046-.58l-.994.139-.102.007a.745.745 0 0 1-.746-.63.735.735 0 0 1 .536-.811l.1-.02.856-.122a6.505 6.505 0 0 0-1.543-2.385l-.543.606-.079.076a.762.762 0 0 1-.979-.007.724.724 0 0 1-.137-.95l.067-.087.496-.555a6.46 6.46 0 0 0-2.632-.905zm.799 2.75a.75.75 0 0 1 .49.855l-.028.099-.606 1.746A2.25 2.25 0 1 1 7.988 7.5l.606-1.746a.75.75 0 0 1 .955-.462zM8 9a.75.75 0 1 0 0 1.5A.75.75 0 0 0 8 9z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Dashboard = /* #__PURE__ */withIcon(IconDashboard);\nvar IconDesktop = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15 1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-4.663l.781 1.561h1.163a.72.72 0 1 1 0 1.439H3.719a.72.72 0 1 1 0-1.439h1.162L5.661 12H1a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h14zM8.66 12H7.337l-.781 1.561h2.885L8.66 12zm5.84-9.5h-13v8h13v-8z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Desktop = /* #__PURE__ */withIcon(IconDesktop);\nvar IconDistribute = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.9748 4.39855L15.9848 4.28264L16 0.711365L15.9925 0.605835L15.9821 0.55038L15.9647 0.487962L15.9282 0.398944L15.8805 0.316522L15.85 0.274639L15.7736 0.191884L15.7031 0.134502L15.5947 0.0705967L15.5041 0.0346882L15.4406 0.0175047L15.3604 0.00428639L15.2773 0L11.6494 0.0149626L11.5316 0.0247978C11.1866 0.081583 10.9221 0.377237 10.9206 0.732313C10.9193 1.05112 11.1303 1.32028 11.4228 1.41098L11.5361 1.43637L11.6433 1.44368L13.4619 1.43771L8.06535 6.74999H0.761903C0.341116 6.74999 0 7.08579 0 7.5C0 7.91421 0.341116 8.25 0.761903 8.25H8.33886C8.56787 8.25 8.7875 8.16043 8.94944 8.00103L14.5404 2.49741L14.5334 4.28863L14.5408 4.39416C14.5912 4.73842 14.8917 5.0015 15.256 4.99999C15.6167 4.99851 15.9171 4.73821 15.9748 4.39855Z\"\n }), React.createElement(\"path\", {\n d: \"M15.9748 11.6015L15.9848 11.7174L16 15.2886L15.9926 15.3942L15.9822 15.4496L15.9647 15.512L15.9283 15.6011L15.8805 15.6835L15.85 15.7254L15.7736 15.8081L15.7032 15.8655L15.5947 15.9294L15.5041 15.9653L15.4407 15.9825L15.3604 15.9957L15.2773 16L11.6494 15.985L11.5316 15.9752C11.1866 15.9184 10.9222 15.6228 10.9207 15.2677C10.9193 14.9489 11.1303 14.6797 11.4228 14.589L11.5361 14.5636L11.6433 14.5563L13.4623 14.5623L10.0799 11.2327C9.78237 10.9398 9.78237 10.465 10.0799 10.1721C10.3527 9.90358 10.7807 9.8812 11.0794 10.1049L11.1574 10.1721L14.5404 13.5022L14.5334 11.7114L14.5408 11.6058C14.5912 11.2616 14.8917 10.9985 15.2561 11C15.6168 11.0015 15.9171 11.2618 15.9748 11.6015Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Distribute = /* #__PURE__ */withIcon(IconDistribute);\nvar IconDivisions = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 1a2 2 0 0 1 .751 3.854L8.75 7.25H14a.75.75 0 0 1 .743.648L14.75 8l.001 3.146a2 2 0 1 1-1.501 0V8.75h-4.5l.001 2.396a2 2 0 1 1-1.501 0V4.854A2.007 2.007 0 0 1 6.146 3.75L2.75 3.75l.001 7.396a2 2 0 1 1-1.501 0V3a.75.75 0 0 1 .648-.743L2 2.25h4.145A2 2 0 0 1 8 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Divisions = /* #__PURE__ */withIcon(IconDivisions);\nvar IconDocument = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.94 0 8.012.012C14.53.013 15 .483 15 1.062v13.883c0 .58-.47 1.05-1.05 1.05H2.05c-.58 0-1.05-.47-1.05-1.05V4.935L5.94 0zM7 1.5v3.445c0 .541-.41.987-.936 1.044l-.114.006H2.5v8.5h11V1.51L7 1.5zM5.5 2.558 3.561 4.495H5.5V2.557z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Document = /* #__PURE__ */withIcon(IconDocument);\nvar IconDocumentArrow = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM9.25 4.5a.75.75 0 0 1 .75.75v5.439l1.22-1.22.084-.072a.75.75 0 0 1 .976 1.133l-2.5 2.5-.084.073a.75.75 0 0 1-.976-.073l-2.5-2.5-.073-.084a.75.75 0 0 1 .073-.976l.084-.073a.75.75 0 0 1 .976.073l1.22 1.219V5.25l.007-.102A.75.75 0 0 1 9.25 4.5zM5.5 2.563 3.561 4.5H5.5V2.562z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentArrow = /* #__PURE__ */withIcon(IconDocumentArrow);\nvar IconDocumentClone = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m4.94.005 5.013.012c.54.001.984.41 1.04.936l.007.114v1.94l3.953.01c.54.001.984.41 1.04.936l.007.114V14.95c0 .541-.41.987-.936 1.044L14.95 16h-8.9a1.05 1.05 0 0 1-1.044-.936L5 14.95V13H1.05a1.05 1.05 0 0 1-1.044-.936L0 11.95V4.94L4.94.004zm6.06 4.5v7.445c0 .541-.41.987-.936 1.044L9.95 13H6.5v1.5h8V4.514l-3.5-.01zm-5-3V4.95c0 .541-.41.987-.936 1.044L4.95 6H1.5v5.5h8V1.514L6 1.505zM4.5 2.565 2.562 4.5H4.5V2.563z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentClone = /* #__PURE__ */withIcon(IconDocumentClone);\nvar IconDocumentDocx = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.953 11.962c1.16 0 1.99.777 1.99 2.02 0 1.242-.83 2.018-1.99 2.018-1.16 0-1.99-.776-1.99-2.019 0-1.242.83-2.019 1.99-2.019zm4.144 0c.83 0 1.327.31 1.658 1.087l-.829.31c0-.31-.331-.62-.663-.62-.497 0-.829.466-.829 1.242 0 .777.332 1.243.83 1.243.33 0 .662-.311.662-.622l.995.31c-.166.622-.829 1.088-1.658 1.088-1.16 0-1.99-.776-1.99-2.019 0-1.242.664-2.019 1.824-2.019zm-8.455.156c1.16 0 1.99.62 1.99 1.863 0 1.243-.83 1.864-1.99 1.864H.15v-3.727h1.492zm11.44-.156.829 1.087.828-1.087H15.9l-1.326 1.864 1.326 2.019h-1.16l-.83-1.243-.828 1.243h-1.16l1.325-2.02-1.326-1.863h1.16zm-6.964.777c-.663 0-.994.466-.994 1.242 0 .777.331 1.243.829 1.243.497 0 .829-.466.829-1.243 0-.776-.166-1.242-.664-1.242zm-4.476.155h-.497v2.174h.497c.663 0 .995-.31.995-1.087 0-.776-.498-1.087-.995-1.087zM4.94 0l10.011.012c.541.001.986.414 1.043.945l.006.115v8.967a.754.754 0 0 1-.75.757.753.753 0 0 1-.743-.654l-.007-.103V1.525l-8.25-.011v3.73c0 .546-.41.996-.936 1.054l-.114.006H1.5v3.735c0 .383-.282.7-.648.75l-.102.007a.753.753 0 0 1-.743-.654L0 10.039V4.98L4.94 0zm-.19 2.33L2.311 4.789H4.75V2.33z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentDocx = /* #__PURE__ */withIcon(IconDocumentDocx);\nvar IconDocumentList = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m2.05 0 11.901.017c.58.001 1.049.47 1.049 1.05V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V1.05C1 .47 1.47 0 2.05 0zm.45 1.501V14.5h11V1.516l-11-.015zM5.25 10.5a.75.75 0 1 1 0 1.5h-.5a.75.75 0 1 1 0-1.5h.5zm6 0a.75.75 0 1 1 0 1.5h-3.5a.75.75 0 1 1 0-1.5h3.5zm-6-3.25a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h.5zm6 0a.75.75 0 1 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5h3.5zM5.25 4a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5h.5zm6 0a.75.75 0 1 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5h3.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentList = /* #__PURE__ */withIcon(IconDocumentList);\nvar IconDocumentPdf = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13 12v.8h-1.719v.96h1.406v.8h-1.406V16h-.937v-4H13zM4.94 0l10.011.012c.541 0 .986.41 1.043.936l.006.114V15.25a.75.75 0 0 1-1.493.102l-.007-.102V1.51L6.25 1.5v3.695c0 .541-.41.987-.936 1.044l-.114.006H1.5v9.004a.75.75 0 0 1-.648.743L.75 16a.75.75 0 0 1-.743-.648L0 15.249V4.934L4.94 0zm-.378 12c.938 0 1.407.48 1.407 1.28s-.625 1.28-1.407 1.28h-.625v1.28H3V12h1.563zm3.282 0c1.093 0 1.875.64 1.875 1.92 0 1.28-.781 1.92-1.875 1.92H6.437V12h1.407zm0 .8h-.469v2.24h.469c.625 0 .937-.32.937-1.12s-.469-1.12-.937-1.12zm-3.438 0h-.468v1.12h.468c.469 0 .625-.16.625-.48 0-.48-.156-.64-.625-.64zM4.75 2.308 2.311 4.745H4.75V2.307z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentPdf = /* #__PURE__ */withIcon(IconDocumentPdf);\nvar IconDocumentPlus = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM8 6.5a.75.75 0 0 1 .75.75v2h2a.75.75 0 1 1 0 1.5h-2v2a.75.75 0 1 1-1.5 0v-2h-2a.75.75 0 1 1 0-1.5h2v-2A.75.75 0 0 1 8 6.5zM5.5 2.563 3.561 4.5H5.5V2.562z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentPlus = /* #__PURE__ */withIcon(IconDocumentPlus);\nvar IconDocumentPPTX = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"m4.94 0 10.011.012c.541.001.986.414 1.043.945l.006.115v8.967a.754.754 0 0 1-.75.757.753.753 0 0 1-.743-.654l-.007-.103V1.525l-8.25-.011v3.73c0 .546-.41.996-.936 1.054l-.114.006H1.5v3.735c0 .383-.282.7-.648.75l-.102.007a.753.753 0 0 1-.743-.654L0 10.039V4.98L4.94 0Zm-.19 2.33L2.311 4.789H4.75V2.33ZM0 16h.967v-1.242h.656c.916 0 1.488-.543 1.488-1.373 0-.822-.56-1.385-1.459-1.385H0v4Zm.967-2.004V12.78h.476c.434 0 .666.235.666.606 0 .369-.232.611-.666.611H.967ZM4.086 16h.967v-1.242h.656c.916 0 1.488-.543 1.488-1.373 0-.822-.56-1.385-1.459-1.385H4.086v4Zm.967-2.004V12.78h.476c.434 0 .666.235.666.606 0 .369-.232.611-.666.611h-.476Zm2.988-1.21h1.215V16h.953v-3.215h1.213V12H8.04v.785ZM13.375 12h-1.09l1.21 2-1.241 2h1.101l.75-1.277h.032l.75 1.277h1.11l-1.247-2 1.207-2h-1.082l-.738 1.264h-.032L13.375 12Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentPPTX = /* #__PURE__ */withIcon(IconDocumentPPTX);\nvar IconDocumentSearch = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m4.942.005 7.014.012c.54.001.985.41 1.042.936l.006.114.002 3.997A4.244 4.244 0 0 1 14.755 8.5a4.23 4.23 0 0 1-.761 2.427l1.786 1.788a.75.75 0 0 1-.977 1.133l-.084-.073-1.715-1.714v2.889c0 .541-.41.987-.936 1.044l-.114.006H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V4.94L4.942.004zM6 1.505V4.95c0 .541-.409.987-.935 1.044L4.952 6H1.5v8.5h10.004v-1.868a4.25 4.25 0 1 1 0-8.263V1.514L6 1.505zm4.502 4.245a2.75 2.75 0 1 0 0 5.5 2.75 2.75 0 0 0 0-5.5zM4.501 2.563 2.562 4.5h1.94L4.5 2.562z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentSearch = /* #__PURE__ */withIcon(IconDocumentSearch);\nvar IconDocumentUser = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.94 0 8.012.012c.54.001.985.41 1.042.936l.006.114v13.883c0 .541-.41.987-.936 1.044l-.114.006h-1.334l-.06.005H5.444l-.06-.004H2.05a1.05 1.05 0 0 1-1.044-.936L1 14.945V4.935L5.94 0zM7 1.5v3.445c0 .541-.41.987-.936 1.044l-.114.006H2.5v8.5l2.591-.001.14-1.614.095-1.192.029-.246.01-.058a.05.05 0 0 1 .006-.012c.209-.32.443-.483.843-.63l.14-.048.317-.101.164-.056.131-.05.11-.049.099-.054.1-.063c.087-.057.169-.122.248-.198a.434.434 0 0 1 .617.01l.054.069.805.818.823-.842c.036-.051.081-.09.131-.117a.434.434 0 0 1 .524.062c.08.076.161.141.247.198l.101.063.1.054.109.05.13.05.165.055.209.066c.558.174.842.332 1.091.713l.012.038.021.138.044.447.081 1.08.138 1.419h.575V1.51L7 1.5zm3.464 10.373-.913.869a.8.8 0 0 1-1.103 0l-.913-.869-.036.017-.183.068-.524.171-.102 1.414-.125.951h4.87l-.138-1.227-.085-1.139-.363-.114-.217-.075-.168-.066zM9.089 5.001c.797-.02 1.53.42 1.863 1.118.667 1.411-.204 3.925-1.863 3.925-1.66 0-2.53-2.514-1.864-3.925a2.005 2.005 0 0 1 1.864-1.118zm.036 1.5h-.073c-.212-.006-.397.105-.47.259-.129.27-.112.806.083 1.265.16.373.332.52.424.52.092 0 .264-.147.423-.52.195-.46.212-.994.087-1.259a.493.493 0 0 0-.385-.261L9.125 6.5zM5.5 2.557 3.561 4.495H5.5V2.557z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentUser = /* #__PURE__ */withIcon(IconDocumentUser);\nvar IconDocumentUserFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m4.94.005 8.012.012c.54.001.985.41 1.042.936l.006.114V14.95c0 .541-.41.987-.936 1.044L12.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V4.94L4.94.004zM6 1.505V4.95c0 .541-.41.987-.936 1.044L4.95 6H1.5v8.5l1.898-.001.037-.128C3.744 13.32 4.48 12 6.078 12h2.844c1.665 0 2.394 1.433 2.679 2.5h.899V1.514L6 1.505zM7.5 6.5c1.105 0 2 .824 2 1.84 0 1.018-.895 2.66-2 2.66s-2-1.642-2-2.66c0-1.016.895-1.84 2-1.84zm-3-3.937L2.561 4.5H4.5V2.562z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentUserFilled = /* #__PURE__ */withIcon(IconDocumentUserFilled);\nvar IconDocumentX = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM6.557 7.53 8 8.973 9.443 7.53a.765.765 0 0 1 1.083 1.082l-1.444 1.443 1.444 1.444a.765.765 0 0 1-1.083 1.082L8 11.138 6.557 12.58A.765.765 0 1 1 5.474 11.5l1.444-1.444-1.444-1.443A.765.765 0 1 1 6.557 7.53zM5.5 2.563 3.561 4.5H5.5V2.562z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar DocumentX = /* #__PURE__ */withIcon(IconDocumentX);\nvar IconEmail = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 2 13.901.017c.541 0 .986.41 1.043.936l.006.114v9.883c0 .541-.41.987-.936 1.044L14.95 14H1.05a1.05 1.05 0 0 1-1.044-.936L0 12.95v-9.9c0-.54.41-.986.936-1.043L1.05 2zM14.5 4.346 8.463 9.09a.75.75 0 0 1-.832.063l-.094-.063L1.5 4.346V12.5h13V4.346zM2.854 3.502 8 7.546l5.131-4.033-10.277-.01z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Email = /* #__PURE__ */withIcon(IconEmail);\nvar IconError = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 10.7546C7.6203 10.7546 7.30651 11.034 7.25685 11.3965L7.25 11.4973V11.7573L7.25685 11.8581C7.30651 12.2206 7.6203 12.5 8 12.5C8.3797 12.5 8.69349 12.2206 8.74315 11.8581L8.75 11.7573V11.4973L8.74315 11.3965C8.69349 11.034 8.3797 10.7546 8 10.7546ZM7.25685 4.1419C7.30651 3.7794 7.6203 3.5 8 3.5C8.3797 3.5 8.69349 3.7794 8.74315 4.1419L8.75 4.24268V8.78661L8.74315 8.88739C8.69349 9.24989 8.3797 9.52929 8 9.52929C7.6203 9.52929 7.30651 9.24989 7.25685 8.88739L7.25 8.78661V4.24268L7.25685 4.1419Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Error = /* #__PURE__ */withIcon(IconError);\nvar IconEye = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M7.999 2c2.65 0 5.258 1.889 7.86 5.567a.75.75 0 0 1-.002.871C13.212 12.114 10.607 14 7.999 14 5.39 14 2.786 12.114.14 8.438a.75.75 0 0 1-.003-.871C2.74 3.889 5.348 2 7.998 2zm0 1.5c-1.862 0-3.857 1.315-5.958 4.017l-.225.295-.138.184.142.188c2.064 2.703 4.003 4.114 5.785 4.296l.198.015.196.005c1.824 0 3.819-1.317 5.95-4.021l.23-.295.14-.188-.137-.184C12.15 5.11 10.213 3.702 8.4 3.52l-.201-.015-.2-.005zM8 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Eye = /* #__PURE__ */withIcon(IconEye);\nvar IconFaceHappy = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.5 8.00001C14.5 11.5899 11.5898 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00001C1.5 4.41015 4.41015 1.5 8 1.5C11.5898 1.5 14.5 4.41015 14.5 8.00001ZM8 16C12.4183 16 16 12.4183 16 8.00001C16 3.58173 12.4183 0 8 0C3.58172 0 0 3.58173 0 8.00001C0 12.4183 3.58172 16 8 16ZM6.12454 10.0848C6.5289 10.6929 7.21811 11.0911 7.99999 11.0911C8.78188 11.0911 9.47109 10.6929 9.87545 10.0848C10.1048 9.73983 10.5703 9.64613 10.9153 9.87546C11.2602 10.1048 11.3539 10.5703 11.1246 10.9153C10.454 11.9238 9.30508 12.5911 7.99999 12.5911C6.69491 12.5911 5.546 11.9238 4.87544 10.9153C4.6461 10.5703 4.73981 10.1048 5.08474 9.87546C5.42967 9.64613 5.8952 9.73983 6.12454 10.0848ZM5 7.87399C5.55228 7.87399 6 7.42628 6 6.87399C6 6.32171 5.55228 5.87399 5 5.87399C4.44772 5.87399 4 6.32171 4 6.87399C4 7.42628 4.44772 7.87399 5 7.87399ZM12 6.87399C12 7.42628 11.5523 7.87399 11 7.87399C10.4477 7.87399 10 7.42628 10 6.87399C10 6.32171 10.4477 5.87399 11 5.87399C11.5523 5.87399 12 6.32171 12 6.87399Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FaceHappy = /* #__PURE__ */withIcon(IconFaceHappy);\nvar IconFaceNeutral = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.5 8.00001C14.5 11.5899 11.5898 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00001C1.5 4.41015 4.41015 1.5 8 1.5C11.5898 1.5 14.5 4.41015 14.5 8.00001ZM8 16C12.4183 16 16 12.4183 16 8.00001C16 3.58173 12.4183 0 8 0C3.58172 0 0 3.58173 0 8.00001C0 12.4183 3.58172 16 8 16ZM5 9.5242C4.58579 9.5242 4.25 9.85999 4.25 10.2742C4.25 10.6884 4.58579 11.0242 5 11.0242H11C11.4142 11.0242 11.75 10.6884 11.75 10.2742C11.75 9.85999 11.4142 9.5242 11 9.5242H5ZM5 7.87399C5.55228 7.87399 6 7.42628 6 6.87399C6 6.32171 5.55228 5.87399 5 5.87399C4.44772 5.87399 4 6.32171 4 6.87399C4 7.42628 4.44772 7.87399 5 7.87399ZM12 6.87399C12 7.42628 11.5523 7.87399 11 7.87399C10.4477 7.87399 10 7.42628 10 6.87399C10 6.32171 10.4477 5.87399 11 5.87399C11.5523 5.87399 12 6.32171 12 6.87399Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FaceNeutral = /* #__PURE__ */withIcon(IconFaceNeutral);\nvar IconFaceSad = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.5 8.00001C14.5 11.5899 11.5898 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00001C1.5 4.41015 4.41015 1.5 8 1.5C11.5898 1.5 14.5 4.41015 14.5 8.00001ZM8 16C12.4183 16 16 12.4183 16 8.00001C16 3.58173 12.4183 0 8 0C3.58172 0 0 3.58173 0 8.00001C0 12.4183 3.58172 16 8 16ZM6.12454 11.2564C6.5289 10.6482 7.21811 10.25 7.99999 10.25C8.78188 10.25 9.47109 10.6482 9.87545 11.2564C10.1048 11.6013 10.5703 11.695 10.9153 11.4657C11.2602 11.2363 11.3539 10.7708 11.1246 10.4259C10.454 9.41731 9.30508 8.75 7.99999 8.75C6.69491 8.75 5.546 9.41731 4.87544 10.4259C4.6461 10.7708 4.73981 11.2363 5.08474 11.4657C5.42967 11.695 5.8952 11.6013 6.12454 11.2564ZM5 7.87399C5.55228 7.87399 6 7.42628 6 6.87399C6 6.32171 5.55228 5.87399 5 5.87399C4.44772 5.87399 4 6.32171 4 6.87399C4 7.42628 4.44772 7.87399 5 7.87399ZM12 6.87399C12 7.42628 11.5523 7.87399 11 7.87399C10.4477 7.87399 10 7.42628 10 6.87399C10 6.32171 10.4477 5.87399 11 5.87399C11.5523 5.87399 12 6.32171 12 6.87399Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FaceSad = /* #__PURE__ */withIcon(IconFaceSad);\nvar IconFaceVeryHappy = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.5 8.00001C14.5 11.5899 11.5898 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00001C1.5 4.41015 4.41015 1.5 8 1.5C11.5898 1.5 14.5 4.41015 14.5 8.00001ZM8 16C12.4183 16 16 12.4183 16 8.00001C16 3.58173 12.4183 0 8 0C3.58172 0 0 3.58173 0 8.00001C0 12.4183 3.58172 16 8 16ZM10.5818 11.3255C11.3106 10.7355 11.8116 9.91404 12 9H4C4.18838 9.91404 4.68937 10.7355 5.41824 11.3255C6.14711 11.9154 7.05912 12.2377 8 12.2377C8.94088 12.2377 9.85289 11.9154 10.5818 11.3255ZM5.24999 6.25C4.98985 6.25 4.76017 6.38182 4.62454 6.58581C4.39521 6.93074 3.92967 7.02445 3.58474 6.79512C3.23981 6.56578 3.1461 6.10024 3.37544 5.75531C3.77727 5.15094 4.46664 4.75 5.24999 4.75C6.03334 4.75 6.72272 5.15094 7.12455 5.75531C7.35389 6.10024 7.26018 6.56578 6.91525 6.79512C6.57032 7.02445 6.10478 6.93074 5.87544 6.58581C5.73982 6.38182 5.51013 6.25 5.24999 6.25ZM10.1245 6.58581C10.2602 6.38182 10.4899 6.25 10.75 6.25C11.0101 6.25 11.2398 6.38182 11.3754 6.58581C11.6048 6.93074 12.0703 7.02445 12.4152 6.79512C12.7602 6.56578 12.8539 6.10024 12.6245 5.75531C12.2227 5.15094 11.5333 4.75 10.75 4.75C9.96664 4.75 9.27727 5.15094 8.87544 5.75531C8.6461 6.10024 8.73981 6.56578 9.08474 6.79512C9.42967 7.02445 9.89521 6.93074 10.1245 6.58581Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FaceVeryHappy = /* #__PURE__ */withIcon(IconFaceVeryHappy);\nvar IconVerySad = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.5 8.00001C14.5 11.5899 11.5898 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00001C1.5 4.41015 4.41015 1.5 8 1.5C11.5898 1.5 14.5 4.41015 14.5 8.00001ZM8 16C12.4183 16 16 12.4183 16 8.00001C16 3.58173 12.4183 0 8 0C3.58172 0 0 3.58173 0 8.00001C0 12.4183 3.58172 16 8 16ZM4.83314 4.82807C4.46203 4.64407 4.01203 4.79576 3.82804 5.16686C3.64405 5.53797 3.79573 5.98797 4.16684 6.17196L4.70313 6.43785L4.17121 6.69728C3.79892 6.87885 3.64431 7.32785 3.82589 7.70015C4.00746 8.07244 4.45647 8.22705 4.82876 8.04547L6.73148 7.11747C6.98842 6.99216 7.15177 6.73168 7.1527 6.44581C7.15363 6.15995 6.99197 5.89841 6.73586 5.77143L4.83314 4.82807ZM12.172 5.16686C11.988 4.79576 11.538 4.64407 11.1669 4.82807L9.26414 5.77143C9.00803 5.89841 8.84637 6.15995 8.8473 6.44581C8.84823 6.73168 9.01158 6.99216 9.26852 7.11747L11.1712 8.04547C11.5435 8.22705 11.9925 8.07244 12.1741 7.70015C12.3557 7.32785 12.2011 6.87885 11.8288 6.69728L11.2969 6.43785L11.8332 6.17196C12.2043 5.98797 12.356 5.53797 12.172 5.16686ZM6.12454 11.2564C6.5289 10.6482 7.21811 10.25 7.99999 10.25C8.78188 10.25 9.47109 10.6482 9.87545 11.2564C10.1048 11.6013 10.5703 11.695 10.9153 11.4657C11.2602 11.2363 11.3539 10.7708 11.1246 10.4259C10.454 9.41731 9.30508 8.75 7.99999 8.75C6.69491 8.75 5.546 9.41731 4.87544 10.4259C4.6461 10.7708 4.73981 11.2363 5.08474 11.4657C5.42967 11.695 5.8952 11.6013 6.12454 11.2564Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FaceVerySad = /* #__PURE__ */withIcon(IconVerySad);\nvar IconFilter = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.752 0 .646.007a.75.75 0 0 0-.444 1.254l5.804 6.243v7.745a.75.75 0 0 0 1.04.692l2.489-1.04.1-.052a.75.75 0 0 0 .36-.641V7.493l5.802-6.231A.75.75 0 0 0 15.248 0H.752zm12.772 1.5L8.696 6.688l-.07.088a.75.75 0 0 0-.131.423l-.001 6.51-.987.412v-6.91L7.5 7.097a.75.75 0 0 0-.192-.399L2.472 1.5h11.052z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Filter = /* #__PURE__ */withIcon(IconFilter);\nvar IconFlag = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.75 0a.75.75 0 0 1 .744.648l.007.102C3.258.402 4.183.23 5.266.23c1.018 0 1.686.254 2.861.953l.475.287.386.224c.721.402 1.154.536 1.737.536 1.303 0 2.321-.289 3.076-.851a.751.751 0 0 1 1.192.495L15 1.98v7a.75.75 0 0 1-.302.601c-1.034.771-2.366 1.149-3.973 1.149-1.018 0-1.687-.254-2.861-.953l-.475-.287-.387-.224c-.72-.403-1.153-.536-1.736-.536-1.28 0-2.192.278-2.765.8v5.721a.75.75 0 0 1-1.494.102L1 15.25V.75A.75.75 0 0 1 1.75 0zm3.516 1.73c-1.28 0-2.192.278-2.765.8v5.225c.757-.353 1.682-.525 2.765-.525 1.018 0 1.686.254 2.861.953l.475.287.386.224c.721.402 1.154.536 1.737.536 1.103 0 2.001-.207 2.709-.611l.065-.041V3.247l-.183.072c-.677.244-1.436.379-2.273.406l-.318.005c-1.018 0-1.687-.254-2.861-.953l-.475-.287-.387-.224c-.72-.403-1.153-.536-1.736-.536z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Flag = /* #__PURE__ */withIcon(IconFlag);\nvar IconFlask = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M11.29 0a.71.71 0 0 1 0 1.418h-.79v3.126a6.001 6.001 0 1 1-5 0V1.418h-.79A.71.71 0 0 1 4.71 0h6.58zM9 1.418H7v4.044a.2.2 0 0 1-.143.191c-.368.111-.643.21-.823.298a4.519 4.519 0 0 0-2.066 2.05L6.25 8a.75.75 0 0 1 0 1.5H3.527a4.55 4.55 0 0 0 0 1H6.25a.75.75 0 1 1 0 1.5l-2.282.001a4.5 4.5 0 1 0 6.048-6.025 5.915 5.915 0 0 0-.873-.322A.2.2 0 0 1 9 5.463L9 1.418z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Flask = /* #__PURE__ */withIcon(IconFlask);\nvar IconFolder = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 1.001 4.743.016c.396.001.754.224.931.57l.052.12.84 2.301 7.335.01c.541 0 .986.41 1.043.935l.006.114v8.883c0 .541-.41.987-.936 1.044L14.95 15H1.05a1.05 1.05 0 0 1-1.044-.936L0 13.95v-8.9c0-.104.015-.206.044-.301H0V2.051c0-.45.284-.84.76-1l.135-.037L1.05 1zm.45 4.5V13.5h13V5.516l-13-.015zm0-2.999-.001 1.499 4.518.005-.543-1.491L1.5 2.502z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Folder = /* #__PURE__ */withIcon(IconFolder);\nvar IconFolderArrow = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.064 5.01 4.57.007c.384 0 .7.283.751.648l.007.102v.673l5.546-.012c.505 0 .928.35 1.036.816l.02.119.006.114V9l1.938.023c.548.001.999.41 1.056.936l.006.115c0 .131-.026.261-.074.383l-.057.119-2.706 4.879a1.064 1.064 0 0 1-.805.537l-.129.008H1.064c-.549 0-1-.41-1.058-.935L0 14.951V6.059c0-.54.415-.985.948-1.042l.116-.007zm3.185 5.494-2.21 3.997h9.92l2.208-3.98-9.918-.017zM1.519 6.51v5.8l1.526-2.757c.166-.3.468-.499.807-.539l.129-.007 7.5-.009V7.925l-5.85.013a.758.758 0 0 1-.731-.55l-.02-.098-.008-.101v-.675L1.52 6.51zM12.25 0a.75.75 0 0 1 .743.648L13 .749v2.52l.72-.719.084-.072a.75.75 0 0 1 1.049 1.048l-.073.084-1.92 1.919-.084.072a.747.747 0 0 1-.382.144l-.144.003-.057-.002-.092-.013-.073-.018-.067-.025-.072-.034-.085-.055a.785.785 0 0 1-.084-.072L9.8 3.61a.749.749 0 0 1 .976-1.132l.084.072.64.64V.75a.75.75 0 0 1 .75-.75z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FolderArrow = /* #__PURE__ */withIcon(IconFolderArrow);\nvar IconFolderPencil = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 1.001 4.743.016c.396.001.754.224.931.57l.052.12.839 2.301 1.087.001a.75.75 0 0 1 .1 1.493L8.7 5.51l-7.2-.008v7.998h13V9.046a.75.75 0 0 1 .648-.743l.102-.007a.75.75 0 0 1 .743.649l.007.101v4.904c0 .541-.41.987-.936 1.044L14.95 15H1.05a1.05 1.05 0 0 1-1.044-.936L0 13.95v-8.9L.003 5H0V2.051c0-.45.284-.84.76-1l.135-.037L1.05 1zm12.815 1.19.084.074 1.827 1.827a.753.753 0 0 1 .073.98l-.073.085-5.222 5.183a.747.747 0 0 1-.276.174l-.106.03-2.277.45a.756.756 0 0 1-.9-.79l.013-.097.45-2.278a.748.748 0 0 1 .134-.301l.073-.084 5.223-5.184a.751.751 0 0 1 .977-.068zM11.602 5.66 8.889 8.353l-.188.947.95-.188 2.71-2.69-.76-.763zm1.816-1.803-.75.743.76.763.751-.745-.76-.76zM1.5 2.502v1.499l4.518.005-.544-1.491L1.5 2.502z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FolderPencil = /* #__PURE__ */withIcon(IconFolderPencil);\nvar IconFolderUser = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.05 15a1.05 1.05 0 0 1-1.044-.936L0 13.95v-8.9c0-.104.015-.206.044-.301H0V2.051c0-.45.284-.84.76-1l.135-.037L1.05 1l4.743.016c.396.001.754.224.931.57l.052.12.84 2.301 7.335.01c.541 0 .986.41 1.043.935l.006.114v8.883c0 .541-.41.987-.936 1.044L14.95 15H1.05zm.45-9.499V13.5h2.81c.364-.965 1.103-2 2.518-2h2.844c1.415 0 2.154 1.035 2.519 2H14.5V5.516l-13-.015zm6.75.999c1.105 0 2 .824 2 1.84 0 1.018-.895 2.66-2 2.66s-2-1.642-2-2.66c0-1.016.895-1.84 2-1.84zM1.5 2.502l-.001 1.499 4.518.005-.543-1.491L1.5 2.502z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar FolderUser = /* #__PURE__ */withIcon(IconFolderUser);\nvar IconFootprint = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.178 11.968c.16-.517.685-.824 1.208-.725l.112.028 2.425.736c.558.17.872.757.701 1.312l-.042.113-.055.109-.77 1.312A2.338 2.338 0 0 1 9.062 15.9a1.988 1.988 0 0 1-1.368-2.341l.039-.144.445-1.448zm1.313.87-.314 1.017a.488.488 0 0 0 .171.532l.073.046.083.033c.327.1.678-.014.885-.276l.063-.093.483-.82-1.444-.439zM4.93 9.445c.584 0 1.058.47 1.058 1.05v1.515c0 1.099-.897 1.99-2.003 1.99-1.082 0-2.02-.74-2.269-1.786l-.35-1.478a1.054 1.054 0 0 1 1.029-1.291h2.535zm-.454 1.501h-1.51l.22.925a.82.82 0 0 0 .799.628l.088-.008a.49.49 0 0 0 .404-.481v-1.064zm4.735-5.16c.626-2.037 2.806-3.626 4.134-3.223 1.305.396 2.054 2.89 1.431 4.913a31.233 31.233 0 0 1-1.336 3.554 1.06 1.06 0 0 1-1.157.608l-.118-.029-2.43-.737-.121-.046a1.051 1.051 0 0 1-.608-.767c-.28-1.492-.212-2.92.205-4.273zm3.693-1.788c-.405-.123-1.716.815-2.188 2.048l-.061.178-.087.307-.072.31a7.27 7.27 0 0 0-.105 2.264l.043.338.013.075 1.77.538.131-.302c.374-.893.702-1.799.984-2.717.408-1.324-.075-2.931-.428-3.039zM3.815 0C5.203 0 6.82 2.153 6.82 4.283c0 1.415-.356 2.8-1.062 4.146a1.057 1.057 0 0 1-.807.557l-.13.008H2.28c-.534 0-.984-.397-1.049-.924A31.158 31.158 0 0 1 1 4.283C1 2.167 2.45 0 3.815 0zm0 1.5c-.37 0-1.305 1.398-1.305 2.783 0 .96.047 1.921.142 2.884l.036.326h1.85l.036-.068a7.393 7.393 0 0 0 .707-2.507l.022-.317.007-.318c0-1.38-1.053-2.782-1.495-2.782z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Footprint = /* #__PURE__ */withIcon(IconFootprint);\nvar IconGear = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9 0a.75.75 0 0 1 .744.648l.118.851.112.031c.419.128.823.296 1.207.502l.098.054.686-.518a.75.75 0 0 1 .9-.005l.084.072 1.416 1.416a.75.75 0 0 1 .068.983l-.522.69.056.098c.204.384.371.787.498 1.205l.03.11.857.119a.75.75 0 0 1 .641.642L16 7v2.002a.75.75 0 0 1-.648.743l-.86.119-.031.11a6.718 6.718 0 0 1-.5 1.202l-.055.096.526.694a.75.75 0 0 1 .005.9l-.072.084-1.416 1.416a.75.75 0 0 1-.984.067l-.696-.528-.095.054c-.383.204-.785.371-1.201.498l-.11.03-.119.866a.75.75 0 0 1-.643.641l-.1.007H6.999a.75.75 0 0 1-.743-.648l-.12-.866-.108-.03a6.718 6.718 0 0 1-1.201-.497l-.096-.055-.696.528a.75.75 0 0 1-.9.005l-.084-.072-1.416-1.416a.75.75 0 0 1-.067-.984l.525-.694-.054-.096a6.718 6.718 0 0 1-.5-1.201l-.032-.111-.86-.119a.75.75 0 0 1-.64-.643L0 9.001V6.999a.75.75 0 0 1 .648-.743l.855-.119.032-.11c.127-.418.294-.821.498-1.205l.055-.099-.52-.689a.75.75 0 0 1-.005-.9l.072-.083 1.416-1.416a.75.75 0 0 1 .984-.067l.685.519.098-.055c.385-.206.79-.374 1.208-.502l.112-.032.118-.85a.75.75 0 0 1 .642-.641L7 0zm-.654 1.5h-.693l-.097.708a.75.75 0 0 1-.495.605l-.101.028a5.22 5.22 0 0 0-1.87.776.75.75 0 0 1-.87-.026l-.57-.432-.491.49.433.574a.75.75 0 0 1 .084.765l-.057.103a5.22 5.22 0 0 0-.772 1.867.75.75 0 0 1-.633.597l-.714.098v.693l.717.1a.75.75 0 0 1 .605.494l.028.1a5.22 5.22 0 0 0 .774 1.862.75.75 0 0 1-.027.87l-.438.578.49.49.58-.439a.75.75 0 0 1 .766-.084l.103.057a5.22 5.22 0 0 0 1.86.77.75.75 0 0 1 .596.634l.099.72h.693l.101-.721a.75.75 0 0 1 .494-.605l.102-.028a5.22 5.22 0 0 0 1.86-.77.75.75 0 0 1 .868.027l.579.44.49-.491-.437-.579a.75.75 0 0 1-.084-.766l.057-.103a5.22 5.22 0 0 0 .774-1.861.75.75 0 0 1 .633-.595l.716-.1v-.693l-.713-.098a.75.75 0 0 1-.605-.495l-.028-.102a5.22 5.22 0 0 0-.772-1.867.75.75 0 0 1 .027-.868l.432-.574-.49-.49-.57.432a.75.75 0 0 1-.767.084l-.103-.058a5.22 5.22 0 0 0-1.87-.776.75.75 0 0 1-.595-.632L8.346 1.5zM8 4.24a3.753 3.753 0 1 1 0 7.506A3.753 3.753 0 0 1 8 4.24zM8 5.74a2.252 2.252 0 1 0 0 4.504A2.252 2.252 0 0 0 8 5.74z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Gear = /* #__PURE__ */withIcon(IconGear);\nvar IconGlobe = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm2.191 11.002H5.81C6.262 13.094 7.148 14.5 8 14.5c.852 0 1.738-1.406 2.191-3.498zM4.273 11h-2.04a6.527 6.527 0 0 0 3.001 2.883c-.376-.708-.676-1.564-.886-2.52L4.273 11zm9.494 0h-2.04c-.21 1.102-.538 2.086-.96 2.883a6.531 6.531 0 0 0 2.864-2.634l.136-.249zm-9.702-4.5H1.674a6.518 6.518 0 0 0 0 3h2.392a17.003 17.003 0 0 1 0-3zm6.36-.001h-4.85a15.066 15.066 0 0 0 0 3.001h4.85a15.065 15.065 0 0 0 0-3.001zm3.901 0h-2.391a17.004 17.004 0 0 1 0 3h2.39a6.518 6.518 0 0 0 .001-3zM5.234 2.116l-.064.03A6.528 6.528 0 0 0 2.232 5h2.04c.212-1.103.539-2.087.962-2.884zM8 1.5l-.096.006c-.822.1-1.659 1.479-2.095 3.493h4.382C9.756 2.99 8.923 1.614 8.102 1.507L8 1.5zm2.766.616.077.148c.386.77.686 1.701.884 2.736h2.04a6.527 6.527 0 0 0-3.001-2.884z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Globe = /* #__PURE__ */withIcon(IconGlobe);\nvar IconGovBuilding = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.143 14.5c.41 0 .744.336.744.75s-.333.75-.744.75H.746a.747.747 0 0 1-.744-.75c0-.414.333-.75.744-.75h14.397zM11.17 6h1.49v6h.992c.411 0 .745.336.745.75s-.334.75-.745.75H2.235a.747.747 0 0 1-.744-.75c0-.414.333-.75.744-.75h.993V6h1.49v6H7.2V6h1.489v6h2.482V6zM7.552.113a.74.74 0 0 1 .675-.057l.106.054 7.31 4.5c.61.376.387 1.297-.285 1.383L15.254 6H.746C.032 6-.256 5.103.269 4.673l.084-.06 7.2-4.5zm.396 1.517L3.358 4.5h9.252L7.948 1.63z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar GovBuilding = /* #__PURE__ */withIcon(IconGovBuilding);\nvar IconGraduationHat = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M7.693 2.068a.75.75 0 0 1 .494-.042l.12.042 7.252 3.248a.75.75 0 0 1 .104 1.312l-.104.056-.31.138.001 3.204a.75.75 0 0 1-1.493.102l-.007-.102V7.494L13 7.83v3.929C13 12.903 10.38 14 8 14c-2.298 0-4.836-1.037-4.992-2.135L3 11.759v-3.93L.446 6.684a.75.75 0 0 1-.104-1.312l.104-.056 7.247-3.248zM4.5 8.5v3.036l.03.024c.14.103.337.216.573.325l.184.082c.79.332 1.75.538 2.713.538.965 0 1.926-.204 2.715-.535.254-.106.473-.22.64-.326l.113-.079.032-.026V8.502l-3.193 1.43a.75.75 0 0 1-.494.043l-.12-.042L4.5 8.5zM8 3.573 2.586 6 8 8.427 13.417 6 8 3.573z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar GraduationHat = /* #__PURE__ */withIcon(IconGraduationHat);\nvar IconGrid = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 0 13.901.017c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L14.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .51.41.064.936.007L1.051 0zm3.7 11.25H1.5v3.25h3.25v-3.25zm5 0h-3.5v3.25h3.5v-3.25zm4.75 0h-3.25v3.25h3.25v-3.25zM4.75 6.253H1.5V9.75h3.25V6.254zm5 0h-3.5V9.75h3.5V6.254zm4.75 0h-3.25V9.75h3.25V6.254zm-13-4.753v3.253h3.25v-3.25L1.5 1.501zm4.75.004v3.25h3.5V1.508l-3.5-.004zm5 .006v3.243h3.25V1.516l-3.25-.005z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Grid = /* #__PURE__ */withIcon(IconGrid);\nvar IconGridCarets = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M6.565 9c.111 0 .222.055.307.163.155.197.17.506.042.723l-.042.063-3.063 3.888-.05.054a.366.366 0 0 1-.525-.004l-.045-.05L.13 9.951.085 9.89a.68.68 0 0 1 0-.661l.042-.063.05-.053a.379.379 0 0 1 .26-.11V9h6.127zm9 0c.111 0 .222.055.307.163.155.197.17.506.042.723l-.042.063-3.063 3.888-.05.054a.366.366 0 0 1-.525-.004l-.045-.05-3.06-3.886-.043-.062a.68.68 0 0 1 0-.661l.042-.063.05-.053a.379.379 0 0 1 .26-.11V9h6.127zm-9-7c.111 0 .222.055.307.163.155.197.17.506.042.723l-.042.063-3.063 3.888-.05.054a.366.366 0 0 1-.525-.004l-.045-.05L.13 2.951.085 2.89a.68.68 0 0 1 0-.661l.042-.063.05-.053a.379.379 0 0 1 .26-.11V2h6.127zm9 0c.111 0 .222.055.307.163.155.197.17.506.042.723l-.042.063-3.063 3.888-.05.054a.366.366 0 0 1-.525-.004l-.045-.05-3.06-3.886-.043-.062a.68.68 0 0 1 0-.661l.042-.063.05-.053a.379.379 0 0 1 .26-.11V2h6.127z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar GridCarets = /* #__PURE__ */withIcon(IconGridCarets);\nvar IconGridCircles = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.5 11a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm-11 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 11a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm5.5 1.667a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zm-11 0a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zm5.5 0a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zM2.5 5.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm11 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 5.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM2.5 7.167a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zm11 0a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zm-5.5 0a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zM2.5 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm11 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM8 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM2.5 1.667a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zm11 0a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666zm-5.5 0a.833.833 0 1 0 0 1.666.833.833 0 0 0 0-1.666z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar GridCircles = /* #__PURE__ */withIcon(IconGridCircles);\nvar IconGroup = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 9 4.903.016c.54.001.984.41 1.04.936l.007.114v4.883c0 .541-.41.987-.936 1.044l-.114.006h-4.9a1.05 1.05 0 0 1-1.044-.936L0 14.95V10.05c0-.541.41-.987.936-1.044L1.051 9zm9 0 4.903.016c.54.001.984.41 1.04.936l.007.114v4.883c0 .541-.41.987-.936 1.044l-.114.006h-4.9a1.05 1.05 0 0 1-1.044-.936L9 14.95V10.05c0-.541.41-.987.936-1.044L10.05 9zM1.5 10.5v3.999h4v-3.985l-4-.014zm9 0v3.999h4v-3.985l-4-.014zM1.05 0l4.903.016c.54.001.984.41 1.04.936L7 1.066v4.883c0 .541-.41.987-.936 1.044l-.114.006h-4.9a1.05 1.05 0 0 1-1.044-.936L0 5.95V1.05C0 .509.41.063.936.006L1.05 0zm9 0 4.903.016c.54.001.984.41 1.04.936l.007.114v4.883c0 .541-.41.987-.936 1.044l-.114.006h-4.9a1.05 1.05 0 0 1-1.044-.936L9 5.95V1.05c0-.541.41-.987.936-1.044L10.05 0zM1.5 1.5v3.999h4V1.514l-4-.014zm9 0v3.999h4V1.514l-4-.014z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Group = /* #__PURE__ */withIcon(IconGroup);\nvar IconHappy = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm3.738 7.315a.75.75 0 0 1 .386.988 4.5 4.5 0 0 1-8.248 0A.75.75 0 1 1 5.25 9.2a3 3 0 0 0 5.5 0 .75.75 0 0 1 .988-.386zM4.5 5.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm7 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Happy = /* #__PURE__ */withIcon(IconHappy);\nvar IconHappyFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm3.738 8.815a.75.75 0 0 0-.988.386 3 3 0 0 1-5.5 0 .75.75 0 1 0-1.374.602 4.5 4.5 0 0 0 8.248 0 .75.75 0 0 0-.386-.988zM4.5 5.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm7 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar HappyFilled = /* #__PURE__ */withIcon(IconHappyFilled);\nvar IconHealth = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M3.75 0a.75.75 0 0 1 0 1.5H2.528v3.765a3.985 3.985 0 0 0 7.966.199l.005-.2-.001-3.764H9.25a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 .707 1.001L11.999 1v4.265A5.486 5.486 0 0 1 7.25 10.7v1.549a2.25 2.25 0 0 0 4.07 1.323 2.125 2.125 0 1 1 1.358.668 3.75 3.75 0 0 1-6.923-1.792l-.005-.199v-1.553a5.487 5.487 0 0 1-4.717-5.211l-.005-.221V1l.015.001A.749.749 0 0 1 1.75 0h2zm9.125 11.5a.625.625 0 1 0 0 1.25.625.625 0 0 0 0-1.25z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Health = /* #__PURE__ */withIcon(IconHealth);\nvar IconHeart = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M11.834 1c1.105 0 2.164.453 2.945 1.259A4.362 4.362 0 0 1 16 5.296a4.37 4.37 0 0 1-1.058 2.86l-.163.177-6.244 6.438a.74.74 0 0 1-.986.076l-.085-.076L1.22 8.333c-1.627-1.678-1.627-4.397 0-6.074A4.075 4.075 0 0 1 6.95 2.1l.161.158.889.915.888-.915A4.102 4.102 0 0 1 11.834 1zm0 1.5c-.634 0-1.247.237-1.729.668l-.14.135L8.502 4.81a.7.7 0 0 1-1.005 0L6.034 3.303a2.578 2.578 0 0 0-3.737 0c-1.018 1.05-1.06 2.741-.127 3.845l.127.14 5.702 5.881 5.704-5.881a2.854 2.854 0 0 0 .79-1.789l.007-.203c0-.751-.288-1.469-.798-1.993a2.602 2.602 0 0 0-1.868-.803z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Heart = /* #__PURE__ */withIcon(IconHeart);\nvar IconHeartFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.78 2.259A4.102 4.102 0 0 0 11.833 1a4.102 4.102 0 0 0-2.946 1.259L8 3.174l-.889-.915a4.077 4.077 0 0 0-5.89 0c-1.628 1.677-1.628 4.396 0 6.074l6.243 6.438a.741.741 0 0 0 1.071 0l6.244-6.438A4.362 4.362 0 0 0 16 5.296c0-1.14-.44-2.232-1.22-3.037z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar HeartFilled = /* #__PURE__ */withIcon(IconHeartFilled);\nvar IconHeartHand = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.206 7.517.148.015c1.126.226 2.032.723 2.691 1.487l.037.045 1.213.001c.838 0 1.553.524 1.835 1.261l.042.122 1.95-1.018a1.973 1.973 0 0 1 2.531.62l.089.14c.532.92.215 2.096-.707 2.627l-.722.412-.687.382-.967.521-.601.312-.568.283-.534.254-.255.117-.485.211c-1.093.462-1.921.691-2.504.691-.557 0-1.178-.12-1.885-.342-.157-.05-.316-.103-.481-.162l-.512-.191-1.512-.624-.199-.078-.278-.101H.752a.752.752 0 0 1-.745-.649L0 13.752V8.268c0-.38.283-.694.65-.744l.102-.007h4.454zm-1.461 1.5v4.219l.206.08 1.174.49c.432.174.804.31 1.153.42.574.18 1.055.273 1.434.273.204 0 .483-.054.835-.163l.32-.106c.112-.04.23-.085.354-.133l.39-.16.424-.186.459-.212.492-.239.526-.265.559-.291.592-.318.624-.344.996-.565a.423.423 0 0 0 .156-.578.467.467 0 0 0-.535-.214l-.085.035-3.095 1.616-.018.007-.023.027a1.96 1.96 0 0 1-1.242.568l-.147.005H6.476a.751.751 0 0 1-.102-1.493l.102-.007h2.818a.46.46 0 0 0 .083-.91l-.083-.007H7.712a.753.753 0 0 1-.62-.326c-.404-.587-.995-.98-1.807-1.185l-.165-.038H3.745zm-1.504 0h-.737v3.984h.737V9.016zM11.905 0a2.61 2.61 0 0 1 1.986 4.302l-.14.152-3.913 3.91a.475.475 0 0 1-.597.061l-.075-.06-3.913-3.911a2.607 2.607 0 0 1 0-3.69A2.612 2.612 0 0 1 8.81.637l.136.127.557.556.557-.556A2.61 2.61 0 0 1 11.905 0zm0 1.5c-.251 0-.493.086-.689.242l-.093.083-1.125 1.123a.703.703 0 0 1-.905.074l-.087-.074L7.88 1.825a1.105 1.105 0 0 0-1.563 0 1.11 1.11 0 0 0-.086 1.472l.086.096L9.5 6.575l3.186-3.182c.178-.178.29-.41.318-.659l.007-.125a1.109 1.109 0 0 0-1.107-1.108z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar HeartHand = /* #__PURE__ */withIcon(IconHeartHand);\nvar IconHelp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm-.035 10.09c.375 0 .686.28.735.643l.006.101v.321a.743.743 0 0 1-.74.745.743.743 0 0 1-.735-.644l-.007-.101v-.32c0-.412.332-.746.741-.746zm0-8.94C9.603 2.65 11 4.052 11 5.697c0 .597-.258 1.285-.62 1.812a2.06 2.06 0 0 1-.381.407l-.134.107-.478.367c-.466.377-.669.714-.68 1.282a.743.743 0 0 1-.758.728.743.743 0 0 1-.725-.76c.021-.988.395-1.676 1.071-2.274l.215-.179.534-.41a.73.73 0 0 0 .116-.115c.204-.297.357-.706.357-.965 0-.822-.732-1.557-1.552-1.557-.76 0-1.407.626-1.476 1.401l-.006.138a.743.743 0 0 1-.742.745A.743.743 0 0 1 5 5.68C5 4.03 6.332 2.65 7.965 2.65z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Help = /* #__PURE__ */withIcon(IconHelp);\nvar IconHelpFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm-.035 11.59a.743.743 0 0 0-.741.744v.321l.007.101c.049.364.359.644.734.644.41 0 .741-.334.741-.745v-.32l-.006-.102a.743.743 0 0 0-.735-.644zm0-8.94C6.332 2.65 5 4.029 5 5.68c0 .41.332.744.741.744.41 0 .742-.333.742-.745l.006-.138c.07-.775.716-1.401 1.476-1.401.82 0 1.552.735 1.552 1.557 0 .26-.153.668-.357.965a.73.73 0 0 1-.116.115l-.534.41-.215.18c-.676.597-1.05 1.285-1.071 2.273a.743.743 0 0 0 .725.76.743.743 0 0 0 .757-.728c.012-.568.215-.905.681-1.282l.478-.367.134-.107c.156-.132.28-.26.38-.407.363-.527.621-1.215.621-1.812C11 4.052 9.603 2.65 7.965 2.65z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar HelpFilled = /* #__PURE__ */withIcon(IconHelpFilled);\nvar IconHouse = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M4.245 1a.75.75 0 0 1 .102 1.494l-.102.007h-.741v2.135l4.012-3.454a.75.75 0 0 1 .881-.072l.098.072L15.74 7.43a.75.75 0 0 1-.891 1.203l-.09-.066-.752-.65v6.034c0 .541-.409.987-.935 1.044l-.115.006H3.054a1.05 1.05 0 0 1-1.045-.936l-.006-.114V7.909l-.763.657a.75.75 0 0 1-.98 0l-.078-.08a.75.75 0 0 1 0-.979l.079-.078 1.742-1.501V1.75a.75.75 0 0 1 .649-.743L2.754 1h1.491zm3.76 1.74L3.503 6.616V13.5h2.001V7.757a.75.75 0 0 1 .65-.744l.101-.006h3.501a.75.75 0 0 1 .744.648l.006.102v5.742h2.001V6.692l.005-.066L8.005 2.74zm1 5.767h-2v4.992h2V8.507z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar House = /* #__PURE__ */withIcon(IconHouse);\nvar IconImage = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15 0a1 1 0 0 1 1 1v11.939l.03.03L16 13V15a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h14zM5.5 9.061l-4 3.999v1.44h13v-.939l-3.056-3.056-1.975 1.58a.75.75 0 0 1-.914.019l-.085-.074L5.5 9.061zm9-7.561h-13v9.438L4.97 7.47a.75.75 0 0 1 .976-.073l.084.073 3.025 3.024 1.976-1.58a.75.75 0 0 1 .914-.018l.085.074 2.47 2.469V1.5zm-5 2a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm0 1.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Image = /* #__PURE__ */withIcon(IconImage);\nvar IconImageArrow = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15 0a1 1 0 0 1 1 1v8.204l-1.5-.3V1.5h-13v9.438L4.97 7.47a.75.75 0 0 1 .976-.073l.084.073 1.828 1.827.531 2.653L5.5 9.061l-4 3.999v1.44h7.199l.3 1.5H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h14zm-4.998 9.504 4.52.883a.423.423 0 0 1 .217.714l-.926.926 2.059 2.058a.423.423 0 0 1 0 .598l-1.187 1.187a.423.423 0 0 1-.598 0l-2.059-2.059-.925.927a.423.423 0 0 1-.714-.218L9.506 10a.423.423 0 0 1 .496-.496zM9.5 3.5a2.5 2.5 0 0 1 1.263 4.658L8.122 7.63a.423.423 0 0 0-.396.13A2.5 2.5 0 0 1 9.5 3.5zm0 1.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ImageArrow = /* #__PURE__ */withIcon(IconImageArrow);\nvar IconInbox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12.074 1a.75.75 0 0 1 .614.32l.054.09 3.177 6.25c.035.084.06.173.072.266l.009.141v4.883a2.05 2.05 0 0 1-1.897 2.044L13.95 15H2.05a2.05 2.05 0 0 1-2.044-1.897L0 12.95v-4.9c0-.198.055-.383.15-.541l2.805-6.073a.75.75 0 0 1 .572-.428L3.636 1h8.438zM1.5 8.5v4.45c0 .273.2.5.46.543l.09.007h11.9c.273 0 .5-.2.543-.46l.007-.09V8.516l-3.045-.005a4.004 4.004 0 0 1-3.287 2.467l-.212.017L7.75 11a4.002 4.002 0 0 1-3.549-2.152l-.091-.187-.068-.158L1.5 8.5zm10.113-6.001H4.115L2.036 7.001l2.553.003a.75.75 0 0 1 .698.478l.03.099a2.501 2.501 0 0 0 4.864.005.75.75 0 0 1 .628-.568l.103-.007 2.996.004-2.295-4.516z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Inbox = /* #__PURE__ */withIcon(IconInbox);\nvar IconInfo = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm.775 5.16.007.104v4.034l.26-.289a.753.753 0 0 1 .969-.128l.088.067a.74.74 0 0 1 .129.962l-.068.088-1.567 1.748c-.434.483-1.22.22-1.302-.39l-.007-.105v-4.03l-.225.25a.753.753 0 0 1-.97.13l-.087-.068a.74.74 0 0 1-.13-.961l.067-.088 1.534-1.713c.434-.484 1.22-.222 1.302.388zM8.033 2.5c.38 0 .693.28.742.642l.007.101v1.045c0 .41-.335.744-.749.744a.747.747 0 0 1-.742-.643l-.007-.1V3.242c0-.41.335-.743.75-.743z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Info = /* #__PURE__ */withIcon(IconInfo);\nvar IconInfoFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm.775 6.632c-.081-.613-.868-.877-1.302-.39L5.94 7.963l-.067.088a.746.746 0 0 0 .13.967l.088.067c.305.2.72.15.969-.13l.224-.252.001 4.498.007.106c.082.613.868.877 1.302.39l1.567-1.756.068-.088a.746.746 0 0 0-.129-.967l-.088-.067a.75.75 0 0 0-.97.128l-.26.29.001-4.5zm-.742-4.181a.748.748 0 0 0-.749.747v1.05l.007.102a.749.749 0 0 0 1.491-.101V3.198l-.007-.101a.749.749 0 0 0-.742-.646z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar InfoFilled = /* #__PURE__ */withIcon(IconInfoFilled);\nvar IconInsights = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.134.003h-5.29c-.318 0-.601.198-.709.495L.045 9.012l-.028.098c-.1.459.25.91.737.91l2.51-.001-1.566 4.368c-.158.522.02 1.036.424 1.344a1.35 1.35 0 0 0 1.771-.128l7.951-10.387.06-.089a.752.752 0 0 0-.66-1.118H8.472L9.82 1.066A.752.752 0 0 0 9.134.003zM7.96 1.505 6.613 4.449l-.036.094a.752.752 0 0 0 .722.97l2.423-.001-6.101 7.976L5.046 9.52l.028-.098a.752.752 0 0 0-.738-.907H1.828l2.544-7.011h3.589z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Insights = /* #__PURE__ */withIcon(IconInsights);\nvar IconJumpToQuestion = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm4.286 7.465c.26.261.283.67.07.957l-.07.083-2.519 2.53-.082.07a.73.73 0 0 1-.86.008l-.092-.078-2.519-2.53-.07-.083a.738.738 0 0 1-.008-.865l.078-.092.082-.07a.73.73 0 0 1 .861-.008l.092.078 2 2.011 2.002-2.01.082-.072a.73.73 0 0 1 .953.071zm-5.1-5.57.081.07 2.519 2.53a.737.737 0 0 1 0 1.04.73.73 0 0 1-.953.07l-.082-.07L6.75 5.024l-2.001 2.01a.73.73 0 0 1-.953.072l-.082-.071a.738.738 0 0 1-.07-.957l.07-.083 2.519-2.53a.73.73 0 0 1 .952-.07z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar JumpToQuestion = /* #__PURE__ */withIcon(IconJumpToQuestion);\nvar IconJumpToQuestionFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm3.333 8.894-.082.071-2.001 2.011-2.001-2.01a.73.73 0 0 0-.953-.072l-.082.071a.738.738 0 0 0-.07.957l.07.083 2.519 2.53a.73.73 0 0 0 .952.07l.082-.07 2.519-2.53a.737.737 0 0 0 0-1.04.73.73 0 0 0-.953-.07zm-4.148-5.5a.73.73 0 0 0-.952.071l-2.519 2.53-.07.083a.738.738 0 0 0 .07.957l.082.07a.73.73 0 0 0 .953-.07l2-2.011 2.002 2.01.082.072a.73.73 0 0 0 .953-.071.737.737 0 0 0 0-1.04l-2.519-2.53z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar JumpToQuestionFilled = /* #__PURE__ */withIcon(IconJumpToQuestionFilled);\nvar IconKey = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.622 0c3.106 0 5.623 2.44 5.623 5.45a5.29 5.29 0 0 1-.567 2.386l4.836 4.807a.728.728 0 0 1 .19.328l.019.095.27 2.065a.777.777 0 0 1-.753.869l-.114-.006-2.078-.27a.74.74 0 0 1-.353-.144l-.072-.063-5.004-4.972a5.768 5.768 0 0 1-1.997.353C2.517 10.898 0 8.458 0 5.45 0 2.44 2.517 0 5.622 0zm3.404 9.787 4.504 4.477.83.107-.107-.826-4.464-4.437a5.594 5.594 0 0 1-.763.679zm-3.404-8.3c-2.258 0-4.089 1.773-4.089 3.962s1.831 3.963 4.09 3.963c2.258 0 4.088-1.774 4.088-3.963s-1.83-3.963-4.089-3.963zm-.51 1.485c1.128 0 2.044.887 2.044 1.982 0 1.094-.916 1.981-2.045 1.981s-2.044-.887-2.044-1.981c0-1.095.915-1.982 2.044-1.982zm0 1.486a.503.503 0 0 0-.512.496c0 .273.229.495.511.495a.503.503 0 0 0 .511-.495.503.503 0 0 0-.51-.496z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Key = /* #__PURE__ */withIcon(IconKey);\nvar IconKeyboard = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 2 13.901.017c.541 0 .986.41 1.043.936l.006.114v9.883c0 .541-.41.987-.936 1.044L14.95 14H1.05a1.05 1.05 0 0 1-1.044-.936L0 12.95v-9.9c0-.54.41-.986.936-1.043L1.051 2zm.45 1.501V12.5h13V3.516l-13-.015zM11.25 9.5a.75.75 0 1 1 0 1.5h-6.5a.75.75 0 1 1 0-1.5h6.5zM8 7a.75.75 0 1 1 0 1.5A.75.75 0 0 1 8 7zm2.75 0a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5zm-5.5 0a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5zm1.5-2a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5zm-2.5 0a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5zm5 0a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5zm2.5 0a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Keyboard = /* #__PURE__ */withIcon(IconKeyboard);\nvar IconLaunchpad = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M3.333 12c.369 0 .667.299.667.667v2.666a.667.667 0 0 1-.667.667H.667A.667.667 0 0 1 0 15.333v-2.666A.667.667 0 0 1 .667 12h2.666zm6 0a.667.667 0 0 1 .667.667v2.666a.667.667 0 0 1-.667.667H6.667A.667.667 0 0 1 6 15.333v-2.666A.667.667 0 0 1 6.667 12h2.666zm6 0c.369 0 .667.299.667.667v2.666a.667.667 0 0 1-.667.667h-2.666a.667.667 0 0 1-.667-.667v-2.666a.667.667 0 0 1 .667-.667h2.666zm-12-6c.369 0 .667.299.667.667v2.666a.667.667 0 0 1-.667.667H.667A.667.667 0 0 1 0 9.333V6.667C0 6.299.298 6 .667 6h2.666zm6 0a.667.667 0 0 1 .667.667v2.666a.667.667 0 0 1-.667.667H6.667A.667.667 0 0 1 6 9.333V6.667C6 6.299 6.298 6 6.667 6h2.666zm6 0c.369 0 .667.299.667.667v2.666a.667.667 0 0 1-.667.667h-2.666A.667.667 0 0 1 12 9.333V6.667c0-.368.299-.667.667-.667h2.666zm-12-6C3.702 0 4 .298 4 .667v2.666A.667.667 0 0 1 3.333 4H.667A.667.667 0 0 1 0 3.333V.667C0 .298.298 0 .667 0h2.666zm6 0A.667.667 0 0 1 10 .667v2.666A.667.667 0 0 1 9.333 4H6.667A.667.667 0 0 1 6 3.333V.667C6 .298 6.298 0 6.667 0h2.666zm6 0c.369 0 .667.298.667.667v2.666a.667.667 0 0 1-.667.667h-2.666A.667.667 0 0 1 12 3.333V.667C12 .298 12.3 0 12.667 0h2.666z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Launchpad = /* #__PURE__ */withIcon(IconLaunchpad);\nvar IconLightbulb = function () {\n return React.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 1.5a4 4 0 0 0-3.633 5.675c.265.574.537.808 1.011 1.214.18.154.387.332.634.563a.75.75 0 0 1-1.024 1.096 13.166 13.166 0 0 0-.45-.396c-.549-.467-1.12-.954-1.533-1.85a5.5 5.5 0 1 1 9.99 0c-.444.963-1.001 1.427-1.623 1.944-.124.103-.252.209-.38.32a.75.75 0 0 1-.984-1.132c.172-.15.323-.276.459-.39.586-.492.872-.733 1.166-1.37A4.001 4.001 0 0 0 8 1.5ZM6.5 11a1 1 0 0 0-1 1v1.5a2.5 2.5 0 0 0 4.95.5h-2.7a.75.75 0 1 1 0-1.5h2.75V12a1 1 0 0 0-1-1h-3Z\"\n })));\n};\n// pure annotation needed for tree-shaking\nvar Lightbulb = /* #__PURE__ */withIcon(IconLightbulb);\nvar IconLighting = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m11.6086 7.25h-5.4067l5.937-5.9365a.75.75 0 0 0 -1.0605-1.0606l-7.2173 7.2171a.75.75 0 0 0 .53 1.28h5.407l-5.937 5.9365a.75.75 0 1 0 1.0605 1.0605l7.2173-7.217a.75.75 0 0 0 -.53-1.28z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Lighting = /* #__PURE__ */withIcon(IconLighting);\nvar IconLink = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.43 1.1a3.843 3.843 0 0 1 5.388.004l.1.103a3.965 3.965 0 0 1 .037 5.404l-.14.145-2.69 2.656a3.843 3.843 0 0 1-5.387-.003l-.1-.104a.744.744 0 0 1 .04-1.06.767.767 0 0 1 1.073.041l.06.062a2.311 2.311 0 0 0 3.125.108l.114-.106 2.69-2.656c.922-.91.986-2.355.175-3.341l-.148-.166-.023-.022a2.311 2.311 0 0 0-3.124-.108l-.115.105-2.69 2.657a.767.767 0 0 1-1.074 0 .744.744 0 0 1-.069-.985l.068-.077L9.43 1.1zM3.874 6.588a3.843 3.843 0 0 1 5.388.003l.1.104a.744.744 0 0 1-.04 1.06.767.767 0 0 1-1.073-.041l-.06-.062a2.311 2.311 0 0 0-3.125-.108l-.114.106-2.69 2.656a2.477 2.477 0 0 0-.175 3.341l.148.166.023.022a2.311 2.311 0 0 0 3.124.108l.115-.105 2.69-2.657a.767.767 0 0 1 1.074 0c.272.27.295.691.069.985l-.068.077L6.57 14.9a3.843 3.843 0 0 1-5.388-.004l-.1-.103a3.965 3.965 0 0 1-.037-5.404l.14-.145 2.69-2.656z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Link = /* #__PURE__ */withIcon(IconLink);\nvar IconList = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.254 13.5c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 14.254v-.008c0-.412.334-.746.746-.746h14.508zm0-4.15c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 10.104v-.008c0-.412.334-.746.746-.746h14.508zm0-4.2c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 5.904v-.008c0-.412.334-.746.746-.746h14.508zm0-4.15c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 1.754v-.008C0 1.334.334 1 .746 1h14.508z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar List = /* #__PURE__ */withIcon(IconList);\nvar IconListBulleted = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.25 12.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm14.004.5c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H5.746A.746.746 0 0 1 5 13.754v-.008c0-.412.334-.746.746-.746h9.508zM1.25 6.75a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm14.004.5c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H5.746A.746.746 0 0 1 5 8.004v-.008c0-.412.334-.746.746-.746h9.508zM1.25 1a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm14.004.5c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H5.746A.746.746 0 0 1 5 2.254v-.008c0-.412.334-.746.746-.746h9.508z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ListBulleted = /* #__PURE__ */withIcon(IconListBulleted);\nvar IconListChecks = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M2.5 12a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm12.75.75a.75.75 0 1 1 0 1.5h-7.5a.75.75 0 1 1 0-1.5h7.5zM5.766 6.708c.274.26.309.68.097.98l-.07.086-2.84 2.991a.752.752 0 0 1-1.042.047l-.077-.08-1.656-1.96A.755.755 0 0 1 .267 7.71a.752.752 0 0 1 .983.008l.078.08L2.44 9.116l2.262-2.381a.752.752 0 0 1 1.064-.027zm9.484.542a.75.75 0 1 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h7.5zM5.766 1.208c.274.26.309.68.097.98l-.07.086-2.84 2.991a.752.752 0 0 1-1.042.047l-.077-.08-1.656-1.96A.755.755 0 0 1 .267 2.21a.752.752 0 0 1 .983.008l.078.08L2.44 3.616l2.262-2.381a.752.752 0 0 1 1.064-.027zm9.484.542a.75.75 0 1 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h7.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ListChecks = /* #__PURE__ */withIcon(IconListChecks);\nvar IconLocation = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n id: \"a\",\n d: \"M7 0a6.3 6.3 0 0 1 4.42 1.802 6.106 6.106 0 0 1 1.83 4.352C13.25 11.077 7 16 7 16S.75 11.077.75 6.154c0-1.632.658-3.198 1.83-4.352A6.3 6.3 0 0 1 7 0Zm.002 1.5A4.803 4.803 0 0 0 3.63 2.873a4.607 4.607 0 0 0-1.38 3.281c0 3.269 3.14 6.469 4.75 7.895 1.61-1.426 4.75-4.626 4.75-7.895a4.605 4.605 0 0 0-1.38-3.281A4.8 4.8 0 0 0 7.002 1.5ZM7 3.25a2.73 2.73 0 0 1 1.947.814c.516.521.805 1.226.803 1.958 0 .167-.015.335-.05.544a2.79 2.79 0 0 1-.967 1.569c-1.01.819-2.456.819-3.467-.001a2.81 2.81 0 0 1-.973-1.606 3.15 3.15 0 0 1-.043-.508c0-.731.288-1.433.803-1.956A2.75 2.75 0 0 1 7 3.25ZM7 4.749l-.14.01c-.28.032-.542.159-.74.36a1.287 1.287 0 0 0-.368.985l.013.14c.062.286.22.542.445.725.46.373 1.118.373 1.578 0 .225-.182.382-.438.438-.688.015-.091.023-.178.023-.261a1.275 1.275 0 0 0-.37-.902A1.237 1.237 0 0 0 7 4.749Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Location = /* #__PURE__ */withIcon(IconLocation);\nvar IconLock = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.002 0a4.01 4.01 0 0 1 3.993 3.811l.005.2v1.997l1.951.004c.541 0 .986.41 1.043.936l.006.114v7.887c0 .542-.41.988-.936 1.045L13.95 16H2.05a1.05 1.05 0 0 1-1.044-.936L1 14.949V7.046c0-.542.41-.988.936-1.045l.114-.006L4 5.997V3.993A3.993 3.993 0 0 1 7.792.005L8.002 0zM2.5 7.496V14.5h11V7.511l-11-.015zM8 8.984a.75.75 0 0 1 .743.649l.007.102v2.503a.75.75 0 0 1-1.493.102l-.007-.102V9.735a.75.75 0 0 1 .75-.75zm0-7.483A2.494 2.494 0 0 0 5.505 3.83l-.005.163V6l5 .007V4.011a2.51 2.51 0 0 0-2.336-2.504L8 1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Lock = /* #__PURE__ */withIcon(IconLock);\nvar IconLogoDrive = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M16 10.673 13.51 15H3.801l2.49-4.327H16zM4.792 2.1 7.34 6.538 2.509 14.92 0 10.6 4.792 2.1zm5.72-1.1 5.178 8.872h-5.007L5.505 1h5.007z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoDrive = /* #__PURE__ */withIcon(IconLogoDrive);\nvar IconLogoFacebook = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M16,8c0-4.4-3.6-8-8-8S0,3.6,0,8c0,4,2.9,7.3,6.8,7.9v-5.6h-2V8h2V6.3c0-2,1.2-3.1,3-3.1 c0.9,0,1.8,0.2,1.8,0.2v2h-1c-1,0-1.3,0.6-1.3,1.2V8h2.2l-0.4,2.3H9.2V16C13.1,15.4,16,12,16,8z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoFacebook = /* #__PURE__ */withIcon(IconLogoFacebook);\nvar IconLogoGmail = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.398 2H1.602C.718 2.001.002 2.673 0 3.501V12.5c.003.828.719 1.499 1.602 1.501h12.796c.883-.002 1.6-.673 1.602-1.501V3.5c-.002-.828-.718-1.5-1.602-1.501zm0 10.5h-1.597V5.9L8 8.749 3.199 5.9v6.6H1.602V3.5h.957L8 6.651l5.441-3.15h.957V12.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoGmail = /* #__PURE__ */withIcon(IconLogoGmail);\nvar IconLogoGoldie = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.11 8.848a1.78 1.78 0 0 0-.451.06c-.563-2.38-2.366-4.186-4.613-4.622-.1-.02-.191-.034-.293-.048-.06-.75.267-1.476.852-1.89L9.476 2s-1.577.527-1.76 1.979c-.078-.395-.814-.89-1.178-.983l-.181.314c.326.212.546.57.6.976-2.246.436-4.049 2.243-4.611 4.622-.793-.212-1.622.148-2.057.892a2.156 2.156 0 0 0 .147 2.38c.522.676 1.388.914 2.148.592.161.432.367.845.614 1.228l1.568-1.137-.013-.019a4.366 4.366 0 0 1-.711-2.258 3.155 3.155 0 0 1 .713-2.388 2.005 2.005 0 0 1 1.663-.554 2.087 2.087 0 0 1 1.48.984h.208a2.087 2.087 0 0 1 1.48-.984 2.005 2.005 0 0 1 1.663.554c.55.646.81 1.519.713 2.388a4.366 4.366 0 0 1-.71 2.258l-.014.019L12.806 14c.247-.383.453-.796.614-1.228.708.298 1.512.112 2.043-.473.53-.585.684-1.455.389-2.208-.296-.754-.982-1.243-1.741-1.243zM1.859 11.48c-.308 0-.558-.269-.558-.6 0-.331.25-.6.558-.6.111 0 .22.037.312.104.005.315.025.63.06.942a.536.536 0 0 1-.372.153zm12.29 0a.536.536 0 0 1-.372-.154c.034-.313.054-.627.059-.942a.524.524 0 0 1 .574-.034.606.606 0 0 1 .296.531.622.622 0 0 1-.164.424.537.537 0 0 1-.394.174z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoGoldie = /* #__PURE__ */withIcon(IconLogoGoldie);\nvar IconLogoGoogle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.269.001a8.072 8.072 0 0 1 5.515 2.037l.153.14-1.564 1.579A5.876 5.876 0 0 0 8.35 2.184 5.959 5.959 0 0 0 4.14 3.89a5.656 5.656 0 0 0-1.692 3.947v.178a5.643 5.643 0 0 0 1.7 4.1 5.949 5.949 0 0 0 4.194 1.694c2.415 0 4.972-1.256 5.312-4.192l.017-.162H8.267V7.28h7.593c.1.475.146.959.136 1.443a6.946 6.946 0 0 1-2.163 5.265 7.333 7.333 0 0 1-5.445 2.003C3.802 16.03.049 12.444 0 7.976.084 3.575 3.75.04 8.269.001z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoGoogle = /* #__PURE__ */withIcon(IconLogoGoogle);\nvar IconLogoGooglePlus = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.09 3a4.93 4.93 0 0 1 3.412 1.307L7.12 5.614a2.895 2.895 0 0 0-2.03-.771c-1.752.03-3.157 1.434-3.157 3.156 0 1.72 1.405 3.125 3.158 3.155 1.378.095 2.613-.828 2.887-2.156H5.091V7.284h4.807c.052.273.08.55.08.828a4.562 4.562 0 0 1-1.337 3.509 4.743 4.743 0 0 1-3.55 1.375C2.279 12.996 0 10.758 0 7.998 0 5.238 2.28 3 5.09 3zm9.455 2.857v1.427H16v1.428h-1.455v1.427h-1.454V8.712h-1.455V7.284h1.455V5.857h1.454z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoGooglePlus = /* #__PURE__ */withIcon(IconLogoGooglePlus);\nvar IconLogoLinkedIn = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.816 0H1.18A1.168 1.168 0 0 0 0 1.154v13.691A1.168 1.168 0 0 0 1.18 16h13.636A1.17 1.17 0 0 0 16 14.845V1.154A1.17 1.17 0 0 0 14.816 0zM4.746 13.633H2.37V5.998h2.376v7.635zM3.559 4.955a1.376 1.376 0 1 1-.002-2.752 1.376 1.376 0 0 1 .002 2.752zm10.076 8.679h-2.373V9.92c0-.886-.015-2.025-1.233-2.025-1.235 0-1.423.965-1.423 1.961v3.777H6.235V5.998H8.51v1.044h.032a2.493 2.493 0 0 1 2.246-1.233c2.402 0 2.846 1.581 2.846 3.637v4.188z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoLinkedIn = /* #__PURE__ */withIcon(IconLogoLinkedIn);\nvar IconLogoMailChimp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.498 8.641C-2.06 6.608 5.938-1.766 8.494.336c.013.01.87.802.872.804.003-.001.473-.19.476-.19 2.243-.875 4.063-.452 4.065.944 0 .726-.49 1.572-1.277 2.34.285.25.514.64.645 1.085.11.329.13.662.14.877.013.296.028.985.03.997l.316.083c.602.16 1.03.372 1.24.579.21.207.314.408.352.643.035.189.03.524-.235.899 0 0 .067.141.134.34.067.2.114.367.122.391.244 0 .626.264.626.9 0 .634-.28 1.352-.345 1.511-1.006 2.27-3.406 3.535-6.265 3.454-2.665-.074-4.938-1.399-5.933-3.559-.602 0-1.221-.248-1.693-.642-.497-.414-.803-.95-.863-1.51a2.45 2.45 0 0 1 .156-1.195zm11.54-3.74c-.113-.004-.169.015-.192.019-.215.033-.343.142-.502.267-.471.37-.869.43-1.311.412-.265-.01-.545-.05-.866-.067l-.188-.01c-.74-.036-1.536.566-1.668 1.423-.183 1.191.733 1.807.997 2.168.034.044.073.104.073.162 0 .07-.048.125-.094.17v.002l-.136.142c-.648.735-.844 1.814-.577 2.723.035.121.08.237.134.348.668 1.47 2.741 2.156 4.767 1.533.271-.084.528-.187.77-.306.454-.21.85-.499 1.178-.83.537-.53.857-1.105.98-1.813.062-.379-.027-.526-.149-.596-.129-.076-.283-.05-.283-.05s-.07-.453-.27-.865c-.59.44-1.35.747-1.929.904-.668.18-1.571.32-2.58.263-.56-.043-.93-.197-1.069.23 1.279.44 2.631.252 2.631.252a.047.047 0 0 1 .052.04.048.048 0 0 1-.03.047s-1.039.455-2.687-.025c.046.365.423.528.603.594.228.083.476.121.476.121 2.044.331 3.956-.77 4.387-1.047.032-.02.053 0 .027.036-.025.036-.026.038-.042.057-.527.64-1.943 1.381-3.786 1.381-.803 0-1.606-.266-1.901-.676-.457-.636-.023-1.564.74-1.468l.334.036c.953.1 2.332-.026 3.47-.523 1.04-.455 1.432-.956 1.373-1.36a.57.57 0 0 0-.18-.332c-.186-.172-.483-.306-.983-.439-.165-.043-.277-.072-.398-.109-.214-.066-.32-.12-.344-.5a82.886 82.886 0 0 1-.053-.986c-.02-.42-.073-.993-.45-1.23a.659.659 0 0 0-.324-.097zM3.25 8.324a1.655 1.655 0 0 0-.387.026c-.922.175-1.443.914-1.34 1.874.093.869 1.025 1.601 1.889 1.623.09.002.178-.004.265-.018.934-.15 1.179-1.106 1.024-2.045-.174-1.06-.935-1.434-1.451-1.46zm-.168.615.111.006c.27.032.494.186.632.433.183.329.02.673-.077.879l-.029.061c-.06.137-.064.256-.009.336a.25.25 0 0 0 .207.099c.042 0 .08-.008.113-.015.048-.01.097-.022.128.014.011.012.028.039.009.083-.035.075-.17.179-.365.171-.2-.015-.423-.151-.452-.492-.015-.169.052-.374.094-.48a.435.435 0 0 0-.18-.54.513.513 0 0 0-.372-.066.478.478 0 0 0-.304.198c-.058.084-.093.19-.112.247l-.012.034c-.042.107-.11.139-.155.133-.022-.003-.052-.016-.07-.065-.053-.134-.01-.514.258-.793a.841.841 0 0 1 .696-.237zm8.095-.534c.054-.103.218-.13.368-.061.149.07.226.208.173.31-.053.103-.218.13-.367.061-.15-.069-.228-.208-.174-.31zM7.862.62C6.569.29 3.777 2.105 1.994 4.502 1.272 5.472.24 7.19.734 8.073c.06.11.404.391.59.536.309-.423.815-.73 1.389-.834.73-1.848 1.95-3.55 3.564-4.722 1.199-.942 2.49-1.617 2.49-1.617S8.073.676 7.863.62zm4.45 7.304c.12.002.217.13.214.287-.002.157-.103.282-.224.28-.122-.002-.218-.13-.215-.287.003-.157.103-.282.224-.28zm-2.644.12c.303-.034.526.099.576.179.022.033.013.055.007.066-.025.036-.077.029-.188.017a1.483 1.483 0 0 0-.708.07s-.111.041-.16.041a.054.054 0 0 1-.037-.013.048.048 0 0 1-.017-.038c0-.042.041-.103.108-.158a.823.823 0 0 1 .42-.164zm-.964-.442a1.253 1.253 0 0 1 1.158-.132.981.981 0 0 1 .437.331c.04.063.049.11.022.136-.04.04-.144-.006-.313-.076a1.449 1.449 0 0 0-.654-.132c-.375.022-.7.176-.794.167-.039-.006-.056-.021-.061-.043-.015-.065.092-.174.205-.251zm3.266-1.245c.235-.036.35.195.434.575.057.256.046.491-.017.628a1.47 1.47 0 0 0-.351 0 1.245 1.245 0 0 1-.226-.51c-.085-.382-.077-.657.16-.693zM9.857 2.763c-.663.039-1.42.338-1.855.617-.021.014-.049-.004-.043-.028.034-.154.14-.356.196-.451.013-.022-.013-.047-.037-.035-.699.337-1.48.936-2.113 1.626-.022.025.011.06.038.04.547-.376 1.298-.725 2.281-.95 1.102-.254 2.162-.148 2.81-.008.032.007.053-.046.024-.061-.428-.226-1.085-.38-1.55-.383-.024 0-.037-.025-.023-.042.08-.102.19-.203.292-.276.023-.016.009-.05-.02-.049z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoMailChimp = /* #__PURE__ */withIcon(IconLogoMailChimp);\nvar IconLogoMessenger = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 .003C3.703-.112.123 3.227 0 7.466a7.263 7.263 0 0 0 2.896 5.747V16l2.723-1.407A8.53 8.53 0 0 0 8 14.929c4.297.115 7.877-3.225 8-7.463-.123-4.239-3.703-7.578-8-7.463zm.833 10.07-2.1-2.214L2.679 10l4.344-4.57 2.1 2.07 4.053-2.142-4.343 4.714z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoMessenger = /* #__PURE__ */withIcon(IconLogoMessenger);\nvar IconLogoOffice = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M10.007 0 1 3.322v9.598l.004.001 3.223-1.284v-7.56l5.835-1.287v11.259l-9.047-1.123L10.007 16 15 14.46V1.607z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoOffice = /* #__PURE__ */withIcon(IconLogoOffice);\nvar IconLogoOutlook = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.39 0v16L0 14.165V1.615L9.39 0zM16 5.205l-.004 5.499c.065 1.016-.712 1.124-.712 1.124h-5.31V7.619c.54.631 1.483.724 2.136.21L16 5.205zm-11.282-.18c-1.18 0-2.138 1.27-2.138 2.837 0 1.568.958 2.838 2.138 2.838 1.181 0 2.138-1.27 2.138-2.838 0-1.567-.957-2.838-2.138-2.838zm-.025 1.151c.568 0 1.028.753 1.028 1.682 0 .928-.46 1.681-1.028 1.681-.568 0-1.028-.753-1.028-1.681 0-.93.46-1.682 1.028-1.682zm10.634-2.928a.589.589 0 0 1 .63.64l-4.84 3.216-1.144-.728V3.248z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoOutlook = /* #__PURE__ */withIcon(IconLogoOutlook);\nvar IconLogoPinterest = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 0 0-3.21 15.327 7.026 7.026 0 0 1 .138-1.837l1.03-4.359a3.073 3.073 0 0 1-.255-1.265c0-1.186.687-2.071 1.542-2.071a1.071 1.071 0 0 1 1.08 1.201 17.22 17.22 0 0 1-.708 2.838 1.238 1.238 0 0 0 1.263 1.541c1.516 0 2.536-1.947 2.536-4.253a2.995 2.995 0 0 0-3.328-3.066A3.788 3.788 0 0 0 4.15 7.888a2.31 2.31 0 0 0 .527 1.569.388.388 0 0 1 .115.446l-.163.642a.276.276 0 0 1-.4.2A3.081 3.081 0 0 1 2.59 7.688c0-2.272 1.917-4.997 5.717-4.997a4.78 4.78 0 0 1 5.064 4.582c0 3.138-1.744 5.483-4.316 5.483a2.294 2.294 0 0 1-1.954-.997s-.464 1.843-.563 2.199a6.697 6.697 0 0 1-.805 1.714A8 8 0 1 0 8 0z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoPinterest = /* #__PURE__ */withIcon(IconLogoPinterest);\nvar IconLogoTwitter = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M16 3.537c-.6.265-1.235.44-1.885.517a3.292 3.292 0 0 0 1.443-1.816 6.572 6.572 0 0 1-2.084.796A3.286 3.286 0 0 0 7.88 6.028a9.32 9.32 0 0 1-6.766-3.43A3.286 3.286 0 0 0 2.13 6.981a3.27 3.27 0 0 1-1.487-.41v.04a3.284 3.284 0 0 0 2.633 3.22c-.484.13-.99.15-1.483.055a3.286 3.286 0 0 0 3.067 2.28A6.586 6.586 0 0 1 0 13.525 9.291 9.291 0 0 0 5.032 15a9.276 9.276 0 0 0 9.34-9.34c0-.142-.004-.283-.01-.424A6.67 6.67 0 0 0 16 3.536z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoTwitter = /* #__PURE__ */withIcon(IconLogoTwitter);\nvar IconLogoWhatsApp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.103 0a7.883 7.883 0 0 1 6.838 3.891 7.739 7.739 0 0 1 0 7.815 7.883 7.883 0 0 1-6.838 3.891 8.033 8.033 0 0 1-3.791-.963L0 16l1.376-4.153A8.934 8.934 0 0 1 .234 7.799C.234 3.492 3.757 0 8.103 0zm0 1.248c-3.65 0-6.61 2.933-6.61 6.55a7.403 7.403 0 0 0 1.288 3.887l-.806 2.385 2.485-.804a7.271 7.271 0 0 0 3.643 1.084c3.65 0 6.61-2.933 6.61-6.551 0-3.618-2.96-6.551-6.61-6.551zM6.049 4.27c.109.025.198.1.243.2.077.172.6 1.39.638 1.483a.51.51 0 0 1-.022.534c-.163.208-.503.597-.503.597a.239.239 0 0 0-.018.312c.294.478.652.916 1.064 1.3a5.08 5.08 0 0 0 1.523.935c.328.106.4-.036.525-.196l.167-.211.139-.174.21-.265a.31.31 0 0 1 .4-.076c.1.045.344.16.61.287l.267.128.678.324c.096.02.165.103.166.2.078.43-.051.872-.35 1.194-.52.478-1.23.7-1.931.6a7.592 7.592 0 0 1-3.041-1.47A9.905 9.905 0 0 1 4.64 7.317a2.549 2.549 0 0 1-.298-1.363 2.15 2.15 0 0 1 .763-1.551.927.927 0 0 1 .324-.134z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoWhatsApp = /* #__PURE__ */withIcon(IconLogoWhatsApp);\nvar IconLogoYahooMail = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M0 4.408h3.052l1.776 4.474 1.8-4.474H9.6L5.126 15h-2.99l1.224-2.807L0 4.408zm13.059 3.575H9.73L12.685 1H16l-2.941 6.983zm-2.456.669c1.02 0 1.848.814 1.848 1.819s-.827 1.82-1.848 1.82c-1.021 0-1.848-.815-1.848-1.82 0-1.005.827-1.82 1.848-1.82z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoYahooMail = /* #__PURE__ */withIcon(IconLogoYahooMail);\nvar IconLogoYouTube = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.665 3.876c-.184-.737-.722-1.314-1.414-1.515A44.68 44.68 0 0 0 8 2.004a44.68 44.68 0 0 0-6.25.358c-.692.2-1.231.778-1.415 1.515C.105 5.237-.008 6.617 0 8a23.834 23.834 0 0 0 .335 4.123c.184.738.723 1.315 1.414 1.515A44.68 44.68 0 0 0 8 13.996a44.68 44.68 0 0 0 6.25-.358c.693-.2 1.231-.778 1.415-1.515.23-1.36.343-2.74.335-4.123a23.834 23.834 0 0 0-.335-4.124zM6.42 10.518V5.482L10.581 8l-4.16 2.518z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar LogoYouTube = /* #__PURE__ */withIcon(IconLogoYouTube);\nvar IconMegaphone = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.25 1a.75.75 0 0 1 .75.75v12.49a.75.75 0 0 1-1.5 0l-.001-1.091-3.76-.816v1.917a.75.75 0 0 1-.81.747l-.1-.014-4.995-1.085a.75.75 0 0 1-.584-.628l-.007-.104-.001-2.243-.909-.197a.75.75 0 0 1-.55-.49l-1.672.914a.75.75 0 0 1-1.104-.553L0 10.493V5.497a.75.75 0 0 1 1.016-.702l.095.044 1.671.915a.75.75 0 0 1 .551-.49l11.166-2.425V1.75a.75.75 0 0 1 .75-.75h.001zM5.743 11.248v1.313l3.496.759-.001-1.313-3.495-.759zm8.506-6.82L4.243 6.6v2.789l10.006 2.172V4.427zM1.499 6.76v2.469l1.242-.679V7.438L1.5 6.76z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Megaphone = /* #__PURE__ */withIcon(IconMegaphone);\nvar IconMenu = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.254 12.5c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 13.254v-.008c0-.412.334-.746.746-.746h14.508zm0-5.25c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 8.004v-.008c0-.412.334-.746.746-.746h14.508zm0-5.25c.412 0 .746.334.746.746v.008a.746.746 0 0 1-.746.746H.746A.746.746 0 0 1 0 2.754v-.008C0 2.334.334 2 .746 2h14.508z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Menu = /* #__PURE__ */withIcon(IconMenu);\nvar IconMinus = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.75 7.25h12.5a.75.75 0 1 1 0 1.5H1.75a.75.75 0 0 1 0-1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Minus = /* #__PURE__ */withIcon(IconMinus);\nvar IconMinusCircle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm3.75 5.75a.75.75 0 1 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h7.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar MinusCircle = /* #__PURE__ */withIcon(IconMinusCircle);\nvar IconMobile = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m4.05 0 7.902.017A1.05 1.05 0 0 1 13 1.067V14.95c0 .58-.47 1.05-1.05 1.05h-7.9C3.47 16 3 15.53 3 14.95V1.05C3 .47 3.47 0 4.05 0zm7.45 12h-7v2.5h7V12zm-2.75.5a.75.75 0 1 1 0 1.5h-1.5a.75.75 0 1 1 0-1.5h1.5zM11.5 4h-7v6.5h7V4zM4.5 1.5V2.5h7v-.985l-7-.014z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Mobile = /* #__PURE__ */withIcon(IconMobile);\nvar IconMore = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M2 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm12 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4zM8 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar More = /* #__PURE__ */withIcon(IconMore);\nvar IconMoreAndroid = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 12a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm0-6a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm0-6a2 2 0 1 1 0 4 2 2 0 0 1 0-4z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar MoreAndroid = /* #__PURE__ */withIcon(IconMoreAndroid);\nvar IconMove = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5 12a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm6 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4zM5 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm6 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4zM5 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm6 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Move = /* #__PURE__ */withIcon(IconMove);\nvar IconMoveToGroup = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m8.304.008 6.649.016c.54.002.984.41 1.04.936l.007.114v6.63c0 .108-.016.211-.046.31.02.064.034.131.04.2l.006.107v6.63c0 .54-.41.986-.935 1.043L14.95 16H1.057a1.05 1.05 0 0 1-1.043-.935l-.006-.114V8.304c0-.54.409-.986.935-1.043l.114-.006 6.197.006V1.058c0-.541.41-.987.935-1.043l.115-.007zM1.507 8.754v5.747h5.747V8.76l-5.747-.007zm7.246.008V14.5H14.5V8.77l-5.748-.008zm0-7.254v5.746h5.748V1.522l-5.748-.014zM1.196.147 1.28.22l3.225 3.225V1.757a.75.75 0 1 1 1.5 0v3.748a.5.5 0 0 1-.41.492l-.09.008H1.757a.75.75 0 1 1 0-1.5h1.688L.22 1.28A.75.75 0 0 1 1.196.147z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar MoveToGroup = /* #__PURE__ */withIcon(IconMoveToGroup);\nvar IconNest = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 0 13.901.015c.54 0 .986.41 1.043.936l.006.114V5.95c0 .541-.41.987-.936 1.044L14.95 7H4.483l-.001 4.75H9v-1.7c0-.54.41-.986.936-1.043l.114-.006 4.903.014c.54.001.984.41 1.04.935l.007.115v4.885c0 .541-.41.987-.936 1.044L14.95 16h-4.9a1.05 1.05 0 0 1-1.044-.936L9 14.95v-1.7H3.733a.75.75 0 0 1-.743-.648l-.007-.102V7H1.05a1.05 1.05 0 0 1-1.044-.936L0 5.95v-4.9C0 .51.41.063.936.006L1.051 0zm9.45 10.501V14.5h4v-3.987l-4-.012zM1.5 1.5v4h13V1.515L1.5 1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Nest = /* #__PURE__ */withIcon(IconNest);\nvar IconNews = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m4.55 1 10.402.017c.54.001.985.41 1.042.936l.006.114V12.25a2.75 2.75 0 0 1-2.582 2.745L13.25 15H3.499l-.001-.002L2.25 15A2.25 2.25 0 0 1 0 12.75V5.298a.75.75 0 0 1 .747-.75l2.751-.012V2.05c0-.54.41-.986.937-1.043L4.549 1zm.448 1.501V13.5h8.252a1.25 1.25 0 0 0 1.225-.998l.019-.124.006-.128V2.516l-9.502-.015zm-1.5 3.533L1.5 6.045v6.705l.007.102a.75.75 0 0 0 .743.648l1.248-.002V6.034zM12.254 10c.378 0 .69.28.74.645l.006.11a.746.746 0 0 1-.746.745H7.246a.746.746 0 0 1-.74-.645l-.006-.11c0-.411.334-.745.746-.745h5.008zm0-3c.378 0 .69.28.74.645l.006.11a.746.746 0 0 1-.746.745H7.246a.746.746 0 0 1-.74-.645l-.006-.11c0-.411.334-.745.746-.745h5.008zm0-3c.378 0 .69.28.74.645l.006.11a.746.746 0 0 1-.746.745H7.246a.746.746 0 0 1-.74-.645l-.006-.11c0-.411.334-.745.746-.745h5.008z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar News = /* #__PURE__ */withIcon(IconNews);\nvar IconNoWifi = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M6.26 10.216 8 11.956l1.74-1.74a.738.738 0 1 1 1.044 1.044L9.044 13l1.74 1.74a.738.738 0 1 1-1.044 1.044L8 14.044l-1.74 1.74a.738.738 0 1 1-1.044-1.044L6.956 13l-1.74-1.74a.738.738 0 1 1 1.044-1.044zm1.756-6.205a7.694 7.694 0 0 1 5.9 2.75.755.755 0 0 1-.088 1.06.745.745 0 0 1-1.054-.087 6.202 6.202 0 0 0-4.758-2.219c-1.78 0-3.438.754-4.612 2.053a.745.745 0 0 1-1.057.05.755.755 0 0 1-.05-1.062 7.69 7.69 0 0 1 5.72-2.545zm0-4.011c2.98 0 5.768 1.23 7.779 3.362a.755.755 0 0 1-.028 1.063.745.745 0 0 1-1.057-.028 9.17 9.17 0 0 0-6.694-2.893 9.31 9.31 0 0 0-6.728 2.87.745.745 0 0 1-1.057.025.755.755 0 0 1-.024-1.064C2.208 1.231 5.04 0 8.017 0z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar NoWifi = /* #__PURE__ */withIcon(IconNoWifi);\nvar IconNumber1 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm.994 11.902h-1.47V5.547l-1.765.436V4.677l3.236-.766v7.99z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number1 = /* #__PURE__ */withIcon(IconNumber1);\nvar IconNumber10 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm2.156 3.974c-1.913 0-2.96 1.689-2.96 3.895 0 2.195 1.047 3.895 2.96 3.895 1.914 0 2.961-1.7 2.961-3.895 0-2.207-1.047-3.895-2.96-3.895zm-4.31.012-3.096.731v1.25l1.688-.416v6.078h1.407V3.986zm4.31 1.17c1.103 0 1.565 1.125 1.565 2.713 0 1.587-.462 2.713-1.565 2.713-1.092 0-1.553-1.126-1.553-2.713 0-1.587.461-2.713 1.553-2.713z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number10 = /* #__PURE__ */withIcon(IconNumber10);\nvar IconNumber2 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm2.872 11.902H5.35v-1.083C7.599 9.1 9.2 7.994 9.2 6.463a1.218 1.218 0 0 0-1.271-1.377 1.171 1.171 0 0 0-1.213 1.247c.002.273.084.539.235.765l-1.224.495a2.145 2.145 0 0 1-.4-1.342 2.44 2.44 0 0 1 2.649-2.354 2.43 2.43 0 0 1 2.684 2.53c0 1.813-1.919 3.296-3.32 4.215h3.532v1.26z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number2 = /* #__PURE__ */withIcon(IconNumber2);\nvar IconNumber3 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm-.202 12.043a2.636 2.636 0 0 1-2.85-2.036l1.26-.483c.078.805.77 1.41 1.579 1.378A1.267 1.267 0 0 0 9.21 9.63c0-.777-.588-1.2-1.47-1.2h-.802V7.38h.743c.918 0 1.318-.482 1.318-1.236a1.086 1.086 0 0 0-1.19-1.072 1.384 1.384 0 0 0-1.388 1.284l-1.237-.495a2.582 2.582 0 0 1 2.673-1.965c1.554 0 2.543.812 2.543 2.13a1.727 1.727 0 0 1-1.495 1.825v.024a1.81 1.81 0 0 1 1.706 1.836c0 1.46-1.236 2.33-2.813 2.33z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number3 = /* #__PURE__ */withIcon(IconNumber3);\nvar IconNumber4 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm1.518 4.037H8.094L4.598 8.57V9.7h3.507v2.202h1.413V9.7h1.507V8.63H9.518V4.036zm-1.412 1.65v2.942H5.869v-.047l2.19-2.896h.047z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number4 = /* #__PURE__ */withIcon(IconNumber4);\nvar IconNumber5 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm-.03 12.043A2.674 2.674 0 0 1 5.12 9.959l1.283-.458A1.54 1.54 0 0 0 7.97 10.89a1.375 1.375 0 0 0 1.436-1.531 1.297 1.297 0 0 0-1.33-1.436 1.4 1.4 0 0 0-1.084.458H5.804l.211-4.343h4.392v1.236h-3.25l-.105 2.072c.394-.326.889-.505 1.4-.506a2.325 2.325 0 0 1 2.379 2.496 2.659 2.659 0 0 1-2.861 2.707z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number5 = /* #__PURE__ */withIcon(IconNumber5);\nvar IconNumber6 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm.527 3.89-.183.007c-1.997 0-3.263 1.646-3.34 4.039L5 8.17a4.675 4.675 0 0 0 .695 2.626 2.722 2.722 0 0 0 2.39 1.247 2.56 2.56 0 0 0 2.719-2.66 2.36 2.36 0 0 0-2.278-2.51l-.182.001a2.038 2.038 0 0 0-1.89 1.149l-.065.147h-.035v-.2c0-1.66.707-2.908 1.978-2.908a1.452 1.452 0 0 1 1.364.873l.049.127 1.035-.682a2.456 2.456 0 0 0-2.253-1.49zm-.501 4.104a1.368 1.368 0 0 1 1.437 1.303l-.001.145a1.369 1.369 0 0 1-1.436 1.448 1.36 1.36 0 0 1-1.401-1.448 1.36 1.36 0 0 1 1.4-1.448z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number6 = /* #__PURE__ */withIcon(IconNumber6);\nvar IconNumber7 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm2.953 5.12-2.755 6.782H6.667l2.755-6.651H6.608v1.258H5.337V4.038h5.616V5.12z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number7 = /* #__PURE__ */withIcon(IconNumber7);\nvar IconNumber8 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm-.05 3.897c-1.612 0-2.648.882-2.648 2.13a1.823 1.823 0 0 0 1.17 1.775l.149.05v.024c-.907.196-1.56.99-1.578 1.918 0 1.378 1.154 2.249 2.908 2.249 1.766 0 2.92-.871 2.92-2.249a2.003 2.003 0 0 0-1.42-1.877l-.158-.041v-.024a1.823 1.823 0 0 0 1.319-1.825c0-1.248-1.036-2.13-2.661-2.13zm0 4.52c.884 0 1.473.459 1.473 1.271 0 .813-.589 1.26-1.472 1.26-.872 0-1.46-.448-1.46-1.26s.588-1.27 1.46-1.27zm0-3.46a1.13 1.13 0 0 1 1.283 1.05l.001.126a1.145 1.145 0 0 1-1.283 1.19 1.136 1.136 0 0 1-1.27-1.065v-.125a1.121 1.121 0 0 1 1.27-1.177z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number8 = /* #__PURE__ */withIcon(IconNumber8);\nvar IconNumber9 = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM7.94 3.897a2.562 2.562 0 0 0-2.72 2.66 2.36 2.36 0 0 0 2.279 2.51l.182-.002a2.036 2.036 0 0 0 1.89-1.148l.064-.147h.036v.2c0 1.66-.707 2.908-1.979 2.908a1.45 1.45 0 0 1-1.364-.873l-.048-.128-1.036.683a2.457 2.457 0 0 0 2.253 1.49l.184-.007c1.995 0 3.262-1.646 3.339-4.04l.004-.233a4.664 4.664 0 0 0-.695-2.625 2.72 2.72 0 0 0-2.39-1.248zm.059 1.153a1.36 1.36 0 0 1 1.4 1.448 1.36 1.36 0 0 1-1.4 1.449A1.37 1.37 0 0 1 6.56 6.643v-.145A1.37 1.37 0 0 1 7.999 5.05z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Number9 = /* #__PURE__ */withIcon(IconNumber9);\nvar IconOpenMinimizeLeft = function () {\n return React.createElement(\"g\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }, React.createElement(\"path\", {\n d: \"M0 13.25a.75.75 0 0 1 .746-.75h8.508a.75.75 0 0 1 0 1.5H.746A.75.75 0 0 1 0 13.25ZM0 2.75A.75.75 0 0 1 .746 2h8.508a.75.75 0 0 1 0 1.5H.746A.75.75 0 0 1 0 2.75ZM0 8a.75.75 0 0 1 .746-.75h4.508a.75.75 0 0 1 0 1.5H.746A.75.75 0 0 1 0 8ZM15.772 13.708a.75.75 0 0 1-.956 1.151l-.085-.07-6.499-6.25a.75.75 0 0 1-.076-.995l.076-.085 6.499-6.248a.751.751 0 0 1 1.115.999l-.074.082L9.836 8l5.936 5.709Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar OpenMinimizeLeft = /* #__PURE__ */withIcon(IconOpenMinimizeLeft);\nvar OpenMinimizeRight = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M6 13.25a.75.75 0 0 1 .746-.75h8.508a.75.75 0 0 1 0 1.5H6.746A.75.75 0 0 1 6 13.25ZM6 2.75A.75.75 0 0 1 6.746 2h8.508a.75.75 0 0 1 0 1.5H6.746A.75.75 0 0 1 6 2.75ZM10 8a.75.75 0 0 1 .746-.75h4.508a.75.75 0 0 1 0 1.5h-4.508A.75.75 0 0 1 10 8ZM.23 13.708a.75.75 0 0 0 .956 1.151l.085-.07 6.499-6.25a.75.75 0 0 0 .076-.995l-.076-.085L1.27 1.21a.751.751 0 0 0-1.115.999l.074.082L6.166 8 .23 13.708Z\",\n clipRule: \"evenodd\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar OpenMinimizeRight$1 = /* #__PURE__ */withIcon(OpenMinimizeRight);\nvar IconParagraph = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M11.75 0c.05 0 .098.005.145.014l2.354.005a.75.75 0 0 1 .1 1.493l-.102.007-1.747-.004V15.25a.75.75 0 1 1-1.5 0V8.994H8.5v6.256a.75.75 0 1 1-1.5 0V8.994H5.497A4.497 4.497 0 0 1 1 4.497 4.492 4.492 0 0 1 5.28.011l.218-.005 2.139.002a.756.756 0 0 1 .227 0l3.743.006A.754.754 0 0 1 11.75 0zM11 1.513l-2.5-.004v5.985H11V1.513zm-5.504-.007A2.992 2.992 0 0 0 2.5 4.497c0 1.596 1.247 2.901 2.82 2.992l.177.005H7V1.507l-1.504-.001z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Paragraph = /* #__PURE__ */withIcon(IconParagraph);\nvar IconPencilBox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.052 3.004 6.199.01a.75.75 0 0 1 .1 1.493l-.103.007L1.5 4.505V14.5h10.004V8.758a.75.75 0 0 1 .649-.743l.102-.007a.75.75 0 0 1 .743.648l.007.102v6.192c0 .541-.41.987-.936 1.044l-.114.006H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V4.054c0-.54.41-.986.936-1.043l.116-.007zM13.656.22l2.124 2.124a.751.751 0 0 1 0 1.062l-6.27 6.27a.751.751 0 0 1-.424.212l-2.479.354a.751.751 0 0 1-.85-.85l.355-2.478a.751.751 0 0 1 .212-.424l6.27-6.27a.751.751 0 0 1 1.062 0zM11.31 3.626 7.563 7.374l-.177 1.24 1.239-.178 3.747-3.748-1.062-1.062zm1.814-1.813-.752.751 1.062 1.062.752-.75-1.062-1.063z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar PencilBox = /* #__PURE__ */withIcon(IconPencilBox);\nvar IconPencilPaper = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.25 14.5a.75.75 0 1 1 0 1.5H1.75a.75.75 0 1 1 0-1.5h12.5zM9.981.223l4.296 4.296a.76.76 0 0 1 0 1.073l-7.685 7.686a.759.759 0 0 1-.536.222l-4.295-.001a.76.76 0 0 1-.76-.76L1 8.444c0-.201.08-.394.222-.536L8.908.222a.76.76 0 0 1 1.073 0zM2.537 8.74l-.019.02.001 3.22h3.222l.018-.018L2.537 8.74zm4.778-4.778L3.61 7.666l3.222 3.222 3.704-3.704-3.222-3.222zm2.13-2.129L8.388 2.888l3.222 3.222 1.056-1.055-3.223-3.222z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar PencilPaper = /* #__PURE__ */withIcon(IconPencilPaper);\nvar IconPhone = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M4.112.001c.327-.014.647.103.888.325.16.15.295.324.4.516l1.48 2.589a1.79 1.79 0 0 1-.289 2.154l-.822.823.31.419c.105.138.213.275.323.41l.335.399.639.71c.688.689 1.43 1.32 2.22 1.891l.822-.823a1.79 1.79 0 0 1 2.154-.289l2.586 1.48c.192.105.367.24.516.4.222.242.338.561.324.889-.019.403-.166.867-.354 1.3a7.81 7.81 0 0 1-.774 1.367c-1.149 1.63-3.23 1.712-4.802 1.048-2.476-1.046-4.455-2.862-5.441-3.766a18.444 18.444 0 0 0-.37-.336l-.018-.016L4 11.252l-.011-.013-.302-.327C2.681 9.822 1.33 8.359.364 5.93c-.626-1.574-.545-3.65 1.082-4.799A7.865 7.865 0 0 1 2.812.356c.433-.188.896-.335 1.3-.355Zm-.054 1.516-.001.001c-.222.049-.438.12-.645.215-.386.171-.755.38-1.1.624-.836.59-1.042 1.791-.554 3.02.859 2.16 2.036 3.437 3.035 4.52l.293.32.18.18c.115.101.249.224.4.361 1.008.921 2.774 2.535 4.986 3.469 1.205.509 2.404.305 2.993-.53.255-.362.47-.75.623-1.101.12-.274.186-.494.215-.646a1.256 1.256 0 0 0-.069-.042l-2.587-1.479a.29.29 0 0 0-.348.047l-1.672 1.673-.502-.301-.001-.001-.002-.001-.005-.003-.014-.009a14.45 14.45 0 0 1-.887-.615A19.755 19.755 0 0 1 6.3 9.394l-.014-.014-.674-.75-.005-.005c-.38-.437-.738-.892-1.074-1.364-.12-.169-.235-.34-.346-.515l-.02-.032-.005-.01c-.002-.003-.002-.003.003-.006L4.16 6.7l-.301-.503L5.53 4.524a.29.29 0 0 0 .046-.349L4.1 1.587a1.328 1.328 0 0 0-.042-.07Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Phone = /* #__PURE__ */withIcon(IconPhone);\nvar IconPin = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.632 4a1.255 1.255 0 0 1-.355 2.024l-.135.054-1.401.467-.057.026-.05.04-2.096 2.096.042.137c.149.555.221 1.127.215 1.702l-.013.344-.031.344c-.032.266-.163.604-.401 1.056l-.11.201-.226.394-.27.443a1.146 1.146 0 0 1-1.577.371l-.108-.076-.099-.088-2.669-2.67-2.894 2.895a.819.819 0 0 1-1.23-1.074l.073-.083 2.893-2.895L.47 7.046a1.146 1.146 0 0 1-.083-1.528l.083-.093.108-.095.118-.08.476-.277c.825-.466 1.388-.708 1.793-.744a6.304 6.304 0 0 1 1.923.126l.312.078.095.027L7.41 2.342l.018-.026.026-.057.467-1.4A1.255 1.255 0 0 1 9.892.27L10 .368 13.632 4zM12 4.765 9.23 2l-.273.818c-.056.17-.136.33-.236.476l-.107.141-.12.132-2.845 2.841-.501-.196a4.683 4.683 0 0 0-2.116-.302l-.025.004-.073.021-.212.087-.303.147L2 6.392 7.616 12l.214-.38.113-.215.077-.163.042-.107.008-.032c.08-.669.016-1.348-.19-1.988l-.097-.271-.196-.5 2.845-2.842c.168-.169.366-.304.583-.399l.167-.064.818-.274z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Pin = /* #__PURE__ */withIcon(IconPin);\nvar IconPlus = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 1a.75.75 0 0 1 .75.75v5.5h5.5a.75.75 0 1 1 0 1.5h-5.5v5.5a.75.75 0 1 1-1.5 0v-5.5h-5.5a.75.75 0 0 1 0-1.5h5.5v-5.5A.75.75 0 0 1 8 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Plus = /* #__PURE__ */withIcon(IconPlus);\nvar IconPlusCircle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm0 2a.75.75 0 0 1 .75.75v3h3a.75.75 0 1 1 0 1.5h-3v3a.75.75 0 1 1-1.5 0v-3h-3a.75.75 0 0 1 0-1.5h3v-3A.75.75 0 0 1 8 3.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar PlusCircle = /* #__PURE__ */withIcon(IconPlusCircle);\nvar IconPrinter = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m3.55 0 8.902.018c.54.001.985.41 1.042.936l.006.114v2.948l1.451.003c.541 0 .986.41 1.043.935L16 5.07v6.381c0 .541-.41.987-.936 1.044l-.114.006-1.45-.001v2.451c0 .541-.41.987-.936 1.044L12.45 16h-8.9a1.05 1.05 0 0 1-1.044-.936L2.5 14.95v-2.451l-1.45.001a1.05 1.05 0 0 1-1.044-.936L0 11.45v-6.4c0-.54.41-.986.936-1.043L1.051 4l1.449.002V1.05c0-.542.41-.987.936-1.044L3.55 0zM4 10.002V14.5h8v-4.483l-8-.016zm-2.5-4.5V11h1V9.55c0-.54.41-.986.936-1.043L3.55 8.5l8.902.017c.54.001.985.41 1.042.936l.006.114V11h1V5.517l-13-.016zM3 6.25a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5zm1-4.749v2.503l8 .01V1.517l-8-.016z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Printer = /* #__PURE__ */withIcon(IconPrinter);\nvar IconPulse = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.956 1.548C6.154.82 7.157.82 7.387 1.49l.03.112 1.792 9.197 1.695-6.732c.163-.647 1.008-.762 1.353-.234l.055.1 1.666 3.57h1.271a.75.75 0 0 1 .744.649l.007.102a.75.75 0 0 1-.649.743l-.102.007h-1.748a.75.75 0 0 1-.628-.339l-.052-.094-.976-2.092-2 7.95c-.185.738-1.202.748-1.434.073l-.03-.113-1.823-9.346-1.612 5.907a.751.751 0 0 1-1.262.327l-.07-.083-1.593-2.191H.751a.75.75 0 0 1-.744-.648L0 8.254a.75.75 0 0 1 .649-.744l.102-.006h1.652c.206 0 .401.084.542.23l.065.079.899 1.234 2.047-7.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Pulse = /* #__PURE__ */withIcon(IconPulse);\nvar IconQuestionBank = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M11 1a5 5 0 0 1 5 5v8a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V6a5 5 0 0 1 5-5h6ZM4 8.5H1.5v5h13v-5H12v1.75a.75.75 0 0 1-1.5 0V8.5h-5v1.75a.75.75 0 0 1-1.5 0V8.5Zm7-6H5a3.5 3.5 0 0 0-3.495 3.308L1.5 6v1h13V6a3.5 3.5 0 0 0-3.308-3.495L11 2.5Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar QuestionBank = /* #__PURE__ */withIcon(IconQuestionBank);\nvar IconScatterPlot = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M.75 0a.75.75 0 0 1 .743.649L1.5.75v13.748h13.752a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.744l-.101.007H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.949V.751A.75.75 0 0 1 .75 0zm3.5 10a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm7-1a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm-4-3a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm2-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm5.5-2a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ScatterPlot = /* #__PURE__ */withIcon(IconScatterPlot);\nvar IconScreenReader = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.349.095A9.031 9.031 0 0 1 16 7.999a9.031 9.031 0 0 1-4.656 7.907.752.752 0 1 1-.73-1.32A7.524 7.524 0 0 0 14.495 8a7.524 7.524 0 0 0-3.876-6.586.754.754 0 0 1 .73-1.318ZM9.6 2.723a5.893 5.893 0 0 1 3.262 5.276 5.893 5.893 0 0 1-3.276 5.283.752.752 0 1 1-.668-1.35 4.385 4.385 0 0 0 2.439-3.933c0-1.68-.953-3.19-2.429-3.927a.754.754 0 0 1 .672-1.35Z\"\n }), React.createElement(\"path\", {\n d: \"m4.202 9.563-1.08 3.032a.608.608 0 0 1-.31.347.594.594 0 0 1-.664-.103.615.615 0 0 1-.159-.662l.752-2.119c.06-.16.107-.323.141-.49.03-.17.053-.341.066-.513.029-.31.049-.646.065-.969.015-.322.026-.635.035-.894.01-.322-.075-.343-.33-.404l-.053-.013-2.17-.415a.597.597 0 0 1-.39-.253.62.62 0 0 1 .261-.91.594.594 0 0 1 .348-.039l2.332.445.279.03c.287.04.576.063.866.066.36-.007.72-.035 1.078-.082.108-.013.21-.026.313-.036l2.2-.42a.595.595 0 0 1 .453.088.608.608 0 0 1 .255.396.623.623 0 0 1-.267.63.597.597 0 0 1-.218.088l-2.103.403c-.07.016-.133.027-.188.035-.22.038-.328.058-.315.375.01.232.037.51.074.799.042.34.097.7.155 1.03.037.217.072.39.12.558.049.166.096.337.168.542l.737 2.072a.623.623 0 0 1-.16.662.599.599 0 0 1-.973-.244L4.437 9.569l-.12-.225-.121.219h.006ZM4.249 3c.246 0 .485.086.675.245a1.099 1.099 0 0 1 .265 1.347 1.071 1.071 0 0 1-.531.49c-.228.097-.481.11-.717.037a1.066 1.066 0 0 1-.576-.434 1.097 1.097 0 0 1 .131-1.367A1.059 1.059 0 0 1 4.25 3Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ScreenReader = /* #__PURE__ */withIcon(IconScreenReader);\nvar IconSearch = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M6.5 0C10.09 0 13 2.912 13 6.503a6.477 6.477 0 0 1-1.404 4.037l4.183 4.18a.75.75 0 0 1-1.06 1.061l-4.183-4.18A6.502 6.502 0 0 1 0 6.503 6.502 6.502 0 0 1 6.5 0zm0 1.5c-2.761 0-5 2.24-5 5.003a5.001 5.001 0 1 0 10 0 5.001 5.001 0 0 0-5-5.002z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Search = /* #__PURE__ */withIcon(IconSearch);\nvar IconShapes = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m10.055 9 4.897.006c.58.001 1.048.47 1.048 1.05v4.894c0 .58-.47 1.05-1.049 1.05h-4.896a1.05 1.05 0 0 1-1.049-1.05v-4.9c0-.58.47-1.05 1.05-1.05zm-6.692-.123a.749.749 0 0 1 1.296 0l3.225 5.545A1.05 1.05 0 0 1 6.977 16H1.049a1.05 1.05 0 0 1-.907-1.578zm7.142 1.624V14.5H14.5v-3.995l-3.996-.004zm-6.494.244L1.83 14.5h4.364L4.01 10.745zM8.007 0a3.748 3.748 0 0 1 3.747 3.75A3.748 3.748 0 0 1 8.007 7.5a3.748 3.748 0 0 1-3.746-3.75A3.748 3.748 0 0 1 8.007 0zm0 1.5A2.249 2.249 0 0 0 5.76 3.75 2.249 2.249 0 1 0 8.007 1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Shapes = /* #__PURE__ */withIcon(IconShapes);\nvar IconShare = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 1.97 5.925.008a.751.751 0 0 1 .1 1.497l-.102.007-5.474-.009v10.023h9.992v-2.483c0-.38.282-.695.648-.745l.102-.006a.75.75 0 0 1 .742.65l.007.101v2.934c0 .543-.41.99-.935 1.047l-.114.006H1.049c-.54 0-.986-.41-1.043-.938L0 13.947V3.022c0-.543.41-.99.935-1.047l.116-.006zm11.408-.809.082.075 3.256 3.47c.245.26.27.652.074.94l-.074.09-3.253 3.466a.748.748 0 0 1-1.059.032.754.754 0 0 1-.102-.976l.07-.086 2.062-2.199h-5.52A3.252 3.252 0 0 0 4.75 9.046l-.005.185v1.788a.75.75 0 0 1-1.492.102l-.006-.102V9.231a4.755 4.755 0 0 1 4.529-4.757l.217-.005h5.522l-2.067-2.202a.754.754 0 0 1-.044-.98l.075-.083a.748.748 0 0 1 .978-.043z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Share = /* #__PURE__ */withIcon(IconShare);\nvar IconShareAndroid = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12.75 0a3.25 3.25 0 1 1-2.477 5.354L6.417 7.268a3.26 3.26 0 0 1-.003 1.478l3.842 1.92a3.25 3.25 0 1 1-.67 1.341l-3.844-1.92a3.25 3.25 0 1 1 .01-4.163L9.59 4.017A3.25 3.25 0 0 1 12.75 0zm0 11a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5zm-9.5-4.75a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5zm9.5-4.75a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ShareAndroid = /* #__PURE__ */withIcon(IconShareAndroid);\nvar IconShareIOS = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m2.051 6.52 3.201.004a.75.75 0 0 1 .1 1.491l-.102.007-2.75-.004v6.483h11V8.033l-2.736-.002a.75.75 0 0 1-.742-.649l-.007-.102a.75.75 0 0 1 .649-.741l.102-.007 3.185.004c.541 0 .986.41 1.043.935l.006.114v7.366c0 .54-.41.986-.936 1.043L13.95 16H2.05a1.05 1.05 0 0 1-1.044-.935L1 14.951V7.568c0-.54.41-.985.936-1.042l.115-.007zM8.423.13l.091.074 3.457 3.252a.749.749 0 0 1-.942 1.161l-.086-.07L8.75 2.484v7.825a.75.75 0 0 1-1.493.102l-.007-.102V2.483L5.053 4.551a.75.75 0 0 1-.978.043l-.082-.075a.749.749 0 0 1-.043-.978l.075-.081L7.485.204A.75.75 0 0 1 8.424.13z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ShareIOS = /* #__PURE__ */withIcon(IconShareIOS);\nvar IconShuffle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m6.758 5.866.156.248.137.234.126.236.123.253.196.449.234.578.092.231c.602 1.527 1.061 2.127 2.405 2.77.607.29 1.665.49 3.15.581l-.646-.644-.075-.086a.758.758 0 0 1 .075-.993.773.773 0 0 1 1-.073l.087.073 1.957 1.942.074.085a.756.756 0 0 1 .149.395v.105a.757.757 0 0 1-.149.5l-.074.085-1.957 1.942a.773.773 0 0 1-1.087 0 .758.758 0 0 1-.075-.993l.075-.086.747-.743c-1.768-.096-3.058-.336-3.897-.737-1.66-.795-2.36-1.644-3.053-3.326l-.33-.826-.127-.305-.167-.37-.105-.209-.11-.197-.188-.304C4.446 5.05 2.918 4.333.807 4.498a.75.75 0 0 1-.116-1.496c2.646-.207 4.706.76 6.067 2.864zm-1.694 4.02a.748.748 0 0 1 1.055-.087.75.75 0 0 1 .087 1.057C4.86 12.445 2.995 13.153.691 12.973a.75.75 0 0 1 .116-1.496c1.842.144 3.234-.384 4.257-1.592zm8.668-8.736.086.073 1.957 1.942.074.085a.756.756 0 0 1 .149.395v.105a.757.757 0 0 1-.149.5l-.074.085-1.957 1.942a.773.773 0 0 1-1.087 0 .758.758 0 0 1-.075-.993l.075-.086.674-.67c-1.5.09-2.567.29-3.178.582-.548.262-.965.547-1.292.865a.748.748 0 0 1-1.058-.014.75.75 0 0 1 .013-1.06c.448-.437 1.001-.814 1.691-1.144.835-.4 2.118-.639 3.874-.736l-.724-.72-.075-.085a.758.758 0 0 1 .075-.993.773.773 0 0 1 1-.073z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Shuffle = /* #__PURE__ */withIcon(IconShuffle);\nvar IconShuffleBox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 0 13.901.017c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L14.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .47.47 0 1.05 0zm.45 1.501V14.5h13V1.516l-13-.015zm9.952 1.152.084.072L13.28 4.47a.75.75 0 0 1 .074.975l-.072.084-1.745 1.754a.75.75 0 0 1-1.135-.974l.072-.084.426-.432c-.719.062-1.238.187-1.547.36-.687.385-1.013.763-1.38 1.567l-.12.277.035.084c.407.942.73 1.35 1.473 1.766.308.172.822.297 1.533.36l-.419-.421a.75.75 0 0 1-.072-.977l.072-.084a.75.75 0 0 1 .977-.072l.084.072 1.744 1.745a.75.75 0 0 1 .074.975l-.072.084-1.745 1.754a.75.75 0 0 1-1.135-.974l.072-.084.503-.507c-1.016-.07-1.794-.252-2.349-.563-.722-.404-1.188-.829-1.575-1.431l-.025.045c-.872 1.435-2.19 2.112-3.846 1.96a.75.75 0 0 1 .136-1.494c1.064.098 1.833-.284 2.408-1.211l.105-.18.116-.216.102-.212.121-.277.058-.141-.059-.141-.12-.276-.103-.21-.115-.214C5.246 6.099 4.449 5.66 3.318 5.765a.75.75 0 1 1-.136-1.494c1.671-.153 2.998.537 3.87 1.999.384-.6.848-1.022 1.568-1.425.554-.31 1.333-.492 2.35-.563l-.495-.496a.75.75 0 0 1-.072-.977l.072-.084a.75.75 0 0 1 .977-.072z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ShuffleBox = /* #__PURE__ */withIcon(IconShuffleBox);\nvar IconShuffleBoxFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 0 13.901.017c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L14.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .51.41.064.936.007L1.05 0zm10.402 2.653a.75.75 0 0 0-.883-.007l-.094.08-.072.083a.75.75 0 0 0-.007.883l.08.094.495.496c-1.018.071-1.797.252-2.351.563-.72.403-1.184.826-1.568 1.426-.872-1.462-2.198-2.153-3.87-2a.75.75 0 0 0 .136 1.494c1.064-.098 1.833.284 2.408 1.211l.105.18.115.215.102.21.121.276.059.142-.058.14-.12.277-.103.212-.116.215-.105.18c-.575.928-1.344 1.31-2.408 1.212a.75.75 0 0 0-.136 1.494c1.577.144 2.847-.462 3.718-1.76l.128-.2.025-.045c.387.602.853 1.027 1.575 1.431.5.28 1.18.455 2.051.538l.298.025-.503.507-.072.084a.75.75 0 0 0 1.051 1.046l.084-.072 1.745-1.754.072-.084a.75.75 0 0 0 .006-.882l-.08-.093-1.744-1.745-.084-.072a.75.75 0 0 0-.883-.007l-.094.08-.072.083a.75.75 0 0 0-.007.883l.08.094.417.42c-.71-.062-1.225-.187-1.532-.36-.69-.385-1.017-.765-1.386-1.571l-.122-.277.12-.278c.367-.804.693-1.182 1.38-1.567.274-.153.716-.27 1.315-.337l.233-.023-.427.432-.072.084a.75.75 0 0 0 1.051 1.046l.084-.072 1.745-1.754.072-.084a.75.75 0 0 0 .006-.882l-.08-.093-1.744-1.745-.084-.072z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ShuffleBoxFilled = /* #__PURE__ */withIcon(IconShuffleBoxFilled);\nvar IconSlider = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M7.23 4c1.377 0 2.591.694 3.312 1.75h3.205A2.252 2.252 0 0 1 16 8c0 1.19-.927 2.166-2.099 2.245l-.154.005h-3.205A4.003 4.003 0 0 1 7.23 12a4.003 4.003 0 0 1-3.312-1.75H2.253A2.252 2.252 0 0 1 .005 8.154L0 8c0-1.19.927-2.166 2.099-2.245l.154-.005h1.664A4.003 4.003 0 0 1 7.23 4zm0 1.5A2.502 2.502 0 0 0 4.726 8c0 1.38 1.121 2.5 2.504 2.5A2.502 2.502 0 0 0 9.733 8c0-1.38-1.12-2.5-2.503-2.5zm3.935 1.75a4.016 4.016 0 0 1 0 1.5h2.582a.75.75 0 0 0 .744-.648L14.498 8a.75.75 0 0 0-.65-.743l-.101-.007h-2.582zM3.224 8c0-.256.024-.507.07-.75h-1.04a.75.75 0 0 0-.745.648L1.502 8c0 .38.283.693.65.743l.101.007h1.041a4.016 4.016 0 0 1-.07-.75z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Slider = /* #__PURE__ */withIcon(IconSlider);\nvar IconSlidersVert = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M3.897 8c.4 0 .724.336.724.75v6.5c0 .414-.325.75-.724.75a.737.737 0 0 1-.725-.75v-6.5c0-.414.325-.75.725-.75zm8.206 4c.4 0 .725.336.725.75v2.5c0 .414-.325.75-.725.75a.737.737 0 0 1-.724-.75v-2.5c0-.414.325-.75.724-.75zm-2.172-1.5a.737.737 0 0 1-.724-.75c0-.414.324-.75.724-.75h1.448V.75c0-.414.325-.75.724-.75.4 0 .725.336.725.75V9h1.448c.4 0 .724.336.724.75s-.324.75-.724.75H9.93zM3.897 0c.4 0 .724.336.724.75V5h1.448c.4 0 .724.336.724.75s-.324.75-.724.75H1.724A.737.737 0 0 1 1 5.75c0-.414.324-.75.724-.75h1.448V.75c0-.414.325-.75.725-.75z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar SlidersVert = /* #__PURE__ */withIcon(IconSlidersVert);\nvar IconStar = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.738 5.528-4.999.008-.103.007c-.634.085-.878.933-.34 1.345l4.06 3.105-1.548 5.028-.023.094c-.12.65.623 1.149 1.17.732L8 12.772l4.044 3.075.08.053c.564.332 1.272-.215 1.068-.879l-1.55-5.028 4.062-3.105.078-.069c.457-.454.152-1.282-.521-1.283l-5-.008L8.704.525a.735.735 0 0 0-1.408 0L5.738 5.528zm2.261-2.285 1.016 3.262.04.1a.738.738 0 0 0 .664.425l3.334.005-2.714 2.077-.078.069a.76.76 0 0 0-.183.756l1.02 3.314-2.656-2.018-.09-.06a.729.729 0 0 0-.794.06L4.9 13.25l1.022-3.314.024-.102a.757.757 0 0 0-.285-.723L2.946 7.035l3.335-.005a.74.74 0 0 0 .704-.525l1.014-3.262z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Star = /* #__PURE__ */withIcon(IconStar);\nvar IconStarFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m5.738 5.528-4.999.008-.103.007c-.634.085-.878.933-.34 1.345l4.06 3.105-1.548 5.028-.023.094c-.12.65.623 1.149 1.17.732L8 12.772l4.044 3.075.08.053c.564.332 1.272-.215 1.068-.879l-1.55-5.028 4.062-3.105.078-.069c.457-.454.152-1.282-.521-1.283l-5-.008L8.704.525a.735.735 0 0 0-1.408 0L5.738 5.528z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar StarFilled = /* #__PURE__ */withIcon(IconStarFilled);\nvar IconTableCol = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5.5 0v.005l9.451.012c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L14.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .51.41.064.936.007L1.05 0 4 .004V0h1.5zm-4 13.144V14.5h2.194L1.5 13.144zm4-11.638V14.5h9V1.516l-9-.01zm-4 8.287v1.709L4 13.047v-1.709L1.5 9.793zm0-3.299v1.657L4 9.696V8.039L1.5 6.494zm0-3.35v1.708L4 6.397V4.689L1.5 3.144zM4 1.504l-2.5-.003L4 3.047V1.504z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar TableCol = /* #__PURE__ */withIcon(IconTableCol);\nvar IconTableRow = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M16 5.5h-.005l-.012 9.451c0 .541-.41.986-.936 1.043l-.114.006H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .509.41.063.936.006L1.05 0h13.9c.54 0 .986.41 1.043.936L16 1.05 15.996 4H16v1.5zm-13.144-4H1.5v2.194L2.856 1.5zm11.638 4H1.5v9h12.984l.01-9zm-8.287-4H4.498L2.953 4h1.709l1.545-2.5zm3.299 0H7.849L6.304 4h1.657l1.545-2.5zm3.35 0h-1.708L9.603 4h1.708l1.545-2.5zm1.64 2.5.003-2.5L12.953 4h1.543z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar TableRow = /* #__PURE__ */withIcon(IconTableRow);\nvar IconTablet = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m2.05 0 11.901.017c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L13.95 16H2.05a1.05 1.05 0 0 1-1.044-.936L1 14.95V1.05c0-.54.41-.986.936-1.043L2.05 0zM13.5 12h-11v2.5h11V12zm-4.75.5a.75.75 0 1 1 0 1.5h-1.5a.75.75 0 1 1 0-1.5h1.5zM13.5 4h-11v6.5h11V4zM2.5 1.5v.998h11v-.983l-11-.015z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Tablet = /* #__PURE__ */withIcon(IconTablet);\nvar IconTabletCheck = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15 14.95c0 .541-.41.987-.936 1.044L13.95 16H2.05a1.05 1.05 0 0 1-1.044-.936L1 14.95V1.05c0-.54.41-.986.936-1.043L2.05 0l11.901.017c.541 0 .986.41 1.043.936l.006.114V14.95zm-1.5-1.45h-11v1h11v-1zm0-9.5h-11v8h11V4zm-2.424 1.672a.75.75 0 0 1 .072.977l-.072.084-3.486 3.486a.75.75 0 0 1-.977.072l-.084-.072-1.634-1.634A.75.75 0 0 1 5.87 7.45l.084.073L7.06 8.627l2.956-2.955a.75.75 0 0 1 1.06 0zM2.5 1.501v.998h11v-.983l-11-.015z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar TabletCheck = /* #__PURE__ */withIcon(IconTabletCheck);\nvar IconTag = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.78.22c.269.269.291.69.067.985l-.067.077-1.66 1.66.695.696a.75.75 0 0 1 .208.398l.012.115.101 4.166a.751.751 0 0 1-.14.456l-.08.093-6.912 6.914a.75.75 0 0 1-.977.073l-.084-.073L.22 9.055a.751.751 0 0 1-.073-.978l.073-.084L7.132 1.08a.75.75 0 0 1 .426-.213L7.679.86l4.156.092a.75.75 0 0 1 .426.145l.088.075.71.709 1.66-1.66a.75.75 0 0 1 1.061 0zm-2.239 4.266-.482-.483-.709.71c.377.792.265 1.759-.336 2.447l-.105.113a2.251 2.251 0 1 1-3.185-3.186 2.252 2.252 0 0 1 2.567-.438l.706-.708-.496-.496-3.533-.078-6.156 6.157 5.662 5.663 6.153-6.156-.086-3.545zm-2.694.663A.75.75 0 1 0 9.786 6.21a.75.75 0 0 0 1.061-1.06z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Tag = /* #__PURE__ */withIcon(IconTag);\nvar IconTemplate = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m2.089 0 11.824.017c.56 0 1.022.41 1.08.936l.007.114V14.95c0 .541-.425.987-.97 1.044L13.91 16H2.09c-.561 0-1.023-.41-1.083-.936L1 14.95V1.05c0-.54.425-.986.97-1.043L2.09 0zM8 10.5H2.556v4H8v-4zm5.444 0H9.556v4h3.888v-4zM8 5.5H2.556V9H8V5.5zm5.444 0H9.556V9h3.888V5.5zM2.556 1.5v2.498h10.888V1.516L2.556 1.501z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Template = /* #__PURE__ */withIcon(IconTemplate);\nvar IconTextbox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.3 5a.7.7 0 0 1 .694.605L16 5.7v4.6a.7.7 0 0 1-.605.694L15.3 11H.7a.7.7 0 0 1-.694-.605L0 10.3V5.7a.7.7 0 0 1 .605-.694L.7 5h14.6zm-.85 1.55H1.55v2.9h12.9v-2.9z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Textbox = /* #__PURE__ */withIcon(IconTextbox);\nvar IconTextboxMultiple = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.3 9a.7.7 0 0 1 .694.605L16 9.7v4.6a.7.7 0 0 1-.605.694L15.3 15H.7a.7.7 0 0 1-.694-.605L0 14.3V9.7a.7.7 0 0 1 .605-.694L.7 9h14.6zm-.85 1.55H1.55v2.9h12.9v-2.9zM15.3 1a.7.7 0 0 1 .694.605L16 1.7v4.6a.7.7 0 0 1-.605.694L15.3 7H.7a.7.7 0 0 1-.694-.605L0 6.3V1.7a.7.7 0 0 1 .605-.694L.7 1h14.6zm-.85 1.55H1.55v2.9h12.9v-2.9z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar TextboxMultiple = /* #__PURE__ */withIcon(IconTextboxMultiple);\nvar IconThumbsUp = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.76 1c1.721 0 2.224 1.5 1.997 3.442a3.652 3.652 0 0 1-.087.466l-.049.169h3.54c.965 0 1.756.743 1.833 1.687l.006.15c0 .57-.26 1.08-.668 1.417a1.83 1.83 0 0 1-.359 2.039 1.796 1.796 0 0 1-.619 2.37 1.742 1.742 0 0 1-1.52 2.255l-.142.005H7.128a4.998 4.998 0 0 1-2.529-.698c-.142.111-.314.186-.501.212l-.144.01H1.051a1.05 1.05 0 0 1-1.045-.936L0 13.474V6.302c0-.45.285-.841.762-1l.134-.038.155-.012 2.909.014c.257.001.493.095.675.25.64-.135 1.374-.685 2.019-1.418a.592.592 0 0 0 .054-.075l.063-.111.074-.154.087-.203.16-.405.25-.65.136-.337.125-.284C7.926 1.185 8.183 1 8.759 1zm.202 1.553-.068.138-.083.185-.153.383-.245.641-.128.314-.113.257c-.127.27-.24.448-.39.618-.83.94-1.767 1.656-2.777 1.886v5.806l.12.083c.577.38 1.166.587 1.774.628l.23.008h5.563a.24.24 0 0 0 .064-.473l-.064-.009h-.907a.75.75 0 0 1-.101-1.493l.101-.007h1.605a.298.298 0 0 0 .069-.587l-.069-.007h-1.598a.75.75 0 0 1-.102-1.494l.102-.006h1.865a.337.337 0 0 0 .068-.667l-.05-.006h-.661l-.029-.002-.81.001a.75.75 0 0 1-.103-1.493l.102-.007 1.987.001a.337.337 0 0 0 .068-.667l-.068-.006H9.5a.75.75 0 0 1-.665-1.1c.25-.475.392-.881.43-1.21.103-.883.008-1.45-.238-1.667l-.065-.048zm-7.46 4.2v6.27h2.002V6.764l-2.002-.011z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ThumbsUp = /* #__PURE__ */withIcon(IconThumbsUp);\nvar IconThumbsUpFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M10 2.509c.125.598.06 1.217-.048 1.737l-.068.298-.073.269-.166.567c-.02.08-.022.122 0 .122h5.105a1.249 1.249 0 1 1 0 2.494h-.5a1.249 1.249 0 1 1 0 2.494l-.5.001a1.249 1.249 0 1 1 0 2.494H13a.999.999 0 1 1 0 1.997L8.078 15l-1.526-.013-.13-.005c-.378-.023-.8-.155-1.263-.397A.3.3 0 0 1 5 14.32V6.172a.3.3 0 0 1 .122-.242c1.113-.812 1.834-1.54 2.162-2.182.15-.303.245-.653.328-1l.12-.51c.148-.606.32-1.117.769-1.226.33-.08 1.23.205 1.5 1.497zM2.8 6.001a.7.7 0 0 1 .7.699v7.084a.7.7 0 0 1-.7.699H.7a.7.7 0 0 1-.7-.699V6.7A.7.7 0 0 1 .7 6h2.1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar ThumbsUpFilled = /* #__PURE__ */withIcon(IconThumbsUpFilled);\nvar IconTimer = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.75 0a.75.75 0 1 1 0 1.5h-1v.54a7.001 7.001 0 1 1-1.5 0V1.5h-1a.75.75 0 0 1 0-1.5h3.5zM8 3.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11zm3.224 2.526a.75.75 0 0 1 .073.976l-.073.084L9.842 8.47a2 2 0 1 1-1.06-1.06l1.382-1.383a.75.75 0 0 1 1.06 0zM8 8.75a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zm5.14-7.192c.513.344.991.738 1.426 1.177a.75.75 0 1 1-1.064 1.057 7.792 7.792 0 0 0-1.197-.987.75.75 0 1 1 .835-1.247z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Timer = /* #__PURE__ */withIcon(IconTimer);\nvar IconToggle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M5 13A5 5 0 0 1 5 3h6a5 5 0 0 1 .217 9.995L11 13H5zm2.43-8.5H5a3.5 3.5 0 0 0-.192 6.995L5 11.5l2.43.001A4.984 4.984 0 0 1 6 8c0-1.363.545-2.598 1.43-3.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Toggle = /* #__PURE__ */withIcon(IconToggle);\nvar IconToolbox = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m6.053.001 3.901.015c.54.003.983.412 1.04.936l.006.114V3.29h4.3a.7.7 0 0 1 .694.605L16 3.99V15.3a.7.7 0 0 1-.605.694L15.3 16H.7a.7.7 0 0 1-.694-.605L0 15.3V3.99a.7.7 0 0 1 .605-.693L.7 3.29H5V1.051c0-.541.41-.987.938-1.044l.115-.006zM4 9.5H1.55v4.951h12.9V9.5H12v1.25a.75.75 0 1 1-1.5 0V9.5h-5v1.25a.75.75 0 1 1-1.5 0V9.5zM14.45 4.84H1.55V8h12.9V4.84zM6.5 1.503V3.29h3V1.514l-3-.011z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Toolbox = /* #__PURE__ */withIcon(IconToolbox);\nvar IconTranslation = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M6.01.784a.784.784 0 1 0-1.568 0V1.5H.785C.351 1.5 0 1.836 0 2.25S.351 3 .784 3h6.55a7.022 7.022 0 0 1-.754 2.03 7.23 7.23 0 0 1-1.016 1.394 7.229 7.229 0 0 1-1.322-2.01l-1.563.298a8.731 8.731 0 0 0 1.727 2.723 7.705 7.705 0 0 1-2.58 1.18c-.474.118-.774.6-.602 1.039.13.33.488.532.845.45l.153-.037a9.29 9.29 0 0 0 3.342-1.59A9.253 9.253 0 0 0 8.23 9.87l.55-1.405a7.678 7.678 0 0 1-2.058-1.03 8.73 8.73 0 0 0 1.24-1.698A8.469 8.469 0 0 0 8.927 3h1.266c.433 0 .784-.336.784-.75s-.35-.75-.784-.75H6.011V.784Z\",\n fillRule: \"nonzero\"\n }), React.createElement(\"path\", {\n d: \"M7.903 14.988c-.19.49.188 1.012.735 1.012.327 0 .62-.195.734-.489l.61-1.566h3.889l.61 1.566a.784.784 0 0 0 .734.489c.547 0 .926-.522.735-1.012L13.266 8.09a1.428 1.428 0 0 0-1.34-.89c-.597 0-1.13.355-1.339.89l-2.684 6.898Zm2.663-2.543 1.36-3.497 1.361 3.497h-2.721Z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Translation = /* #__PURE__ */withIcon(IconTranslation);\nvar IconTrash = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.583 0a1.25 1.25 0 0 1 1.2.902l.03.125L11.171 3 15.25 3a.75.75 0 1 1 0 1.5h-1.298l-.673 10.335a1.25 1.25 0 0 1-1.117 1.162l-.13.006H3.968a1.25 1.25 0 0 1-1.232-1.039l-.015-.13L2.048 4.5.75 4.5a.75.75 0 0 1 0-1.5h4.079l.359-1.973A1.25 1.25 0 0 1 6.289.007L6.417 0h3.166zm2.867 4.5H3.551l.651 10.002h7.595L12.45 4.5zm-6.226 2c.4 0 .724.324.724.724v4.552a.724.724 0 0 1-1.448 0V7.224c0-.4.324-.724.724-.724zm3.526 0a.75.75 0 0 1 .75.75v4.5a.75.75 0 1 1-1.5 0v-4.5a.75.75 0 0 1 .75-.75zm-.376-5H6.626L6.352 3h3.294l-.272-1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Trash = /* #__PURE__ */withIcon(IconTrash);\nvar IconTruck = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m8.001 1 6.95.009c.541 0 .986.41 1.043.936L16 2.06v10.388c0 .542-.41.988-.936 1.045l-.114.006h-1.328a2.251 2.251 0 0 1-4.244 0H6.872a2.251 2.251 0 0 1-4.244 0H1.05a1.05 1.05 0 0 1-1.044-.936L0 12.448V7.995c0-.138.037-.267.102-.378l2.584-4.495c.288-.5.8-.823 1.368-.872l.156-.006 3.04.012V1.75a.75.75 0 0 1 .65-.743L8 1zM4.75 11.998a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm6.75 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zM8.75 2.501v5.494a.75.75 0 0 1-.648.744L8 8.746H1.5v3.252h1.128a2.251 2.251 0 0 1 4.247.01h2.5a2.251 2.251 0 0 1 4.247-.01h.878V2.51l-5.75-.008zM4.204 3.745a.25.25 0 0 0-.177.073l-.04.053-1.94 3.373 5.203.001V3.757l-3.046-.012z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Truck = /* #__PURE__ */withIcon(IconTruck);\nvar IconUngroup = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.05 0 13.901.017c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L14.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .51.41.064.936.007L1.05 0zm6.2 8.75H1.5v5.75h5.75V8.75zm7.25 0H8.75v5.75h5.75V8.75zM1.5 1.5v5.748h5.75V1.507L1.5 1.501zm7.25.007V7.25h5.75V1.516l-5.75-.008z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Ungroup = /* #__PURE__ */withIcon(IconUngroup);\nvar IconUnlock = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12.002 0a4.009 4.009 0 0 1 3.993 3.81l.005.199V6.94a.75.75 0 0 1-1.493.102l-.007-.102V4.01a2.509 2.509 0 0 0-2.336-2.503L12 1.5a2.494 2.494 0 0 0-2.495 2.327l-.005.164v2.022l2.452.004c.54.001.985.41 1.042.936l.006.114v7.883c0 .541-.41.987-.936 1.044L11.95 16H1.05a1.05 1.05 0 0 1-1.044-.936L0 14.95v-7.9c0-.54.41-.986.936-1.043L1.05 6 8 6.011v-2.02A3.991 3.991 0 0 1 11.792.005l.21-.005zM1.5 7.501V14.5h10V7.516l-10-.015zM6.5 9a.75.75 0 0 1 .75.75v2.5a.75.75 0 1 1-1.5 0v-2.5A.75.75 0 0 1 6.5 9z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Unlock = /* #__PURE__ */withIcon(IconUnlock);\nvar IconUnnest = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m10.05 9 4.903.015c.54.001.984.41 1.04.935l.007.115v4.885c0 .541-.41.987-.936 1.044L14.95 16h-4.9a1.05 1.05 0 0 1-1.044-.936L9 14.95v-4.9c0-.54.41-.986.936-1.043l.114-.006zm-6.18.471a.759.759 0 0 1 0 1.07l-1.197 1.203h4.575c.415 0 .752.339.752.756 0 .38-.278.694-.64.748l-.112.008H2.673l1.196 1.204a.759.759 0 0 1 0 1.069.75.75 0 0 1-1.063 0l-2.66-2.673a.506.506 0 0 1-.057-.643l.058-.07 2.659-2.672a.75.75 0 0 1 1.063 0zm6.63 1.03V14.5h4v-3.987l-4-.012zM1.05.001l13.901.014c.54 0 .986.41 1.043.936l.006.114V5.95c0 .541-.41.987-.936 1.044L14.95 7H1.05a1.05 1.05 0 0 1-1.044-.936L0 5.95v-4.9C0 .51.41.063.936.006L1.051 0zM1.5 1.5v4h13V1.515L1.5 1.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Unnest = /* #__PURE__ */withIcon(IconUnnest);\nvar IconUser = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m10.383 9 .123.014c.162.029.319.103.449.223.158.147.321.273.493.384l.202.122.199.104.219.095.262.097.328.107.417.128c1.117.337 1.685.641 2.184 1.378.162.24.295.638.417 1.24l.081.43.079.496.078.56.08.631a.886.886 0 0 1-.762.983l-.12.008H.888l-.121-.008A.887.887 0 0 1 0 15.121l.006-.112.08-.63.078-.561.079-.495.08-.432c.123-.601.256-.999.418-1.239.465-.688.992-.999 1.968-1.31l.633-.196.328-.107.262-.097.219-.095.199-.104.202-.122c.172-.11.335-.237.493-.384a.886.886 0 0 1 .538-.234L5.699 9a.89.89 0 0 1 .581.257l.107.132L8 11.609l1.645-2.265a.747.747 0 0 1 .263-.226c.11-.063.23-.101.353-.113L10.383 9zm.256 1.884-.174-.119-1.9 2.616a.7.7 0 0 1-1.132 0l-1.898-2.616-.204.138-.286.17-.199.103-.097.047-.3.127-.313.114-.352.115-.618.19c-.729.234-.947.376-1.182.723l-.011.023-.037.1-.05.17-.057.239-.03.143-.075.392-.074.466-.068.475 12.834.003-.061-.45-.073-.455-.075-.407-.057-.256-.05-.2-.043-.14-.037-.095c-.217-.322-.42-.474-1.027-.679l-.358-.113-.443-.136-.38-.125-.343-.13-.218-.094-.097-.047-.283-.15-.232-.142zM8 0c2.21 0 3.731 1.79 3.731 4 0 2.144-1.434 4.836-3.538 4.993L8 9C5.79 9 4.268 6.21 4.268 4c0-2.14 1.43-3.888 3.527-3.995L8 0zm0 1.5C6.705 1.5 5.768 2.532 5.768 4c0 1.744 1.185 3.5 2.232 3.5 1.047 0 2.231-1.756 2.231-3.5 0-1.468-.936-2.5-2.231-2.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar User = /* #__PURE__ */withIcon(IconUser);\nvar IconUserArrow = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.243 9.271c.133.124.272.231.417.325l.17.104.168.088.184.08.221.082.277.09.352.11c.942.285 1.422.542 1.842 1.167.137.203.25.54.353 1.05l.068.365.067.42.066.475.067.534a.75.75 0 0 1-.643.832L12.75 15h-12l-.102-.007a.75.75 0 0 1-.648-.73l.005-.102.067-.534.066-.476.067-.419.068-.366c.104-.509.216-.846.353-1.049.388-.577.826-.84 1.632-1.102l.562-.174.277-.091.22-.082.185-.08.168-.088.17-.104c.145-.094.284-.2.417-.325a.75.75 0 0 1 1.199.25 1.992 1.992 0 0 0 2.591 0 .675.675 0 0 1 .137-.212.75.75 0 0 1 1.06-.038zM6.75 11.5a3.49 3.49 0 0 1-2.06-.67l-.039.027a4.138 4.138 0 0 1-.806.418l-.19.07-.336.111-.58.18c-.455.146-.664.258-.815.445l-.055.074-.027.066-.036.137-.044.204-.05.266-.107.671h10.29l-.107-.671-.05-.266-.044-.204-.036-.137-.016-.043-.011-.023c-.157-.233-.358-.355-.87-.52l-.58-.179-.336-.111a4.148 4.148 0 0 1-.831-.385l-.205-.129a3.49 3.49 0 0 1-2.059.669zm0-9.75C8.548 1.75 10 3.176 10 4.968c0 1.89-1.49 3.985-3.25 3.985-1.761 0-3.25-2.094-3.25-3.985 0-1.792 1.452-3.218 3.25-3.218zm0 1.5C5.774 3.25 5 4.01 5 4.968c0 1.15.949 2.485 1.75 2.485.8 0 1.75-1.335 1.75-2.485 0-.958-.774-1.718-1.75-1.718zm7.03-2.103.083.073 1.92 1.92.073.084a.747.747 0 0 1 .145.382l.002.144-.002.057-.012.092-.019.073-.024.067-.035.072-.055.085a.785.785 0 0 1-.072.084l-1.92 1.92a.75.75 0 0 1-1.134-.976l.073-.084.639-.64H11.5a.75.75 0 0 1-.102-1.493L11.5 3h2.022l-.72-.72-.072-.084a.75.75 0 0 1 1.05-1.049z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar UserArrow = /* #__PURE__ */withIcon(IconUserArrow);\nvar IconUserFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M10.955 9.237c.158.147.321.273.493.384l.202.122.199.104.219.095.262.097.328.107.417.128c1.117.337 1.685.641 2.184 1.378.162.24.295.638.417 1.24l.081.43.079.496.078.56.08.631a.886.886 0 0 1-.762.983l-.12.008H.888l-.121-.008A.887.887 0 0 1 0 15.121l.006-.112.08-.63.078-.561.079-.495.08-.432c.123-.601.256-.999.418-1.239.465-.688.992-.999 1.968-1.31l.633-.196.328-.107.262-.097.219-.095.199-.104.202-.122c.172-.11.335-.237.493-.384a.891.891 0 0 1 1.235.021l.107.132L8 11.609l1.645-2.265a.747.747 0 0 1 .263-.226.89.89 0 0 1 1.048.12zM8 0c2.21 0 3.731 1.79 3.731 4S10.21 9 8 9C5.79 9 4.268 6.21 4.268 4S5.791 0 8 0z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar UserFilled = /* #__PURE__ */withIcon(IconUserFilled);\nvar IconUserPlus = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.243 9.271c.133.124.272.231.417.325l.17.104.168.088.184.08.221.082.277.09.352.11c.942.285 1.422.542 1.842 1.167.137.203.25.54.353 1.05l.068.365.067.42.066.475.067.534a.75.75 0 0 1-.643.832L12.75 15h-12l-.102-.007a.75.75 0 0 1-.648-.73l.005-.102.067-.534.066-.476.067-.419.068-.366c.104-.509.216-.846.353-1.049.388-.577.826-.84 1.632-1.102l.562-.174.277-.091.22-.082.185-.08.168-.088.17-.104c.145-.094.284-.2.417-.325a.75.75 0 0 1 1.199.25 1.992 1.992 0 0 0 2.591 0 .675.675 0 0 1 .137-.212.75.75 0 0 1 1.06-.038zM6.75 11.5a3.49 3.49 0 0 1-2.06-.67l-.039.027a4.138 4.138 0 0 1-.806.418l-.19.07-.336.111-.58.18c-.455.146-.664.258-.815.445l-.055.074-.027.066-.036.137-.044.204-.05.266-.107.671h10.29l-.107-.671-.05-.266-.044-.204-.036-.137-.016-.043-.011-.023c-.157-.233-.358-.355-.87-.52l-.58-.179-.336-.111a4.148 4.148 0 0 1-.831-.385l-.205-.129a3.49 3.49 0 0 1-2.059.669zm0-9.75C8.548 1.75 10 3.176 10 4.968c0 1.89-1.49 3.985-3.25 3.985-1.761 0-3.25-2.094-3.25-3.985 0-1.792 1.452-3.218 3.25-3.218zm0 1.5C5.774 3.25 5 4.01 5 4.968c0 1.15.949 2.485 1.75 2.485.8 0 1.75-1.335 1.75-2.485 0-.958-.774-1.718-1.75-1.718zM13.5 1a.75.75 0 0 1 .75.75v1h1a.75.75 0 1 1 0 1.5h-1v1a.75.75 0 1 1-1.5 0v-1h-1a.75.75 0 1 1 0-1.5h1v-1A.75.75 0 0 1 13.5 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar UserPlus = /* #__PURE__ */withIcon(IconUserPlus);\nvar IconUsers = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M3.455 7.717a.43.43 0 0 1 .078.07l.06.082.577.882a.2.2 0 0 1-.09.294l-1.182.501-.119.057-.202.081-.211.076-.36.126a.3.3 0 0 0-.192.21l-.06.235-.115.945a.2.2 0 0 0 .198.224H5.28l.122-1.114.065-.457.02-.108.017-.065a.088.088 0 0 1 .007-.017c.287-.464.61-.7 1.16-.913l.192-.07.436-.147.225-.08.18-.072.15-.072.137-.078.14-.091c.117-.083.23-.178.339-.288a.574.574 0 0 1 .753-.068.522.522 0 0 1 .096.084l.073.099L10.5 9.707l1.131-1.7a.529.529 0 0 1 .181-.169.573.573 0 0 1 .72.09c.11.11.222.205.34.288l.139.091.136.078.15.072.18.072.226.08.287.097c.768.252 1.159.48 1.501 1.033l.01.021.021.082.039.222.03.214.113.96.146 1.45.147 1.57c.04.364-.199.688-.524.736l-.083.006H5.611l-.083-.006c-.3-.044-.527-.324-.528-.654l.004-.083L5.126 13H.5l-.068-.005c-.245-.037-.43-.27-.432-.545l.004-.07.225-1.943.075-.563.06-.379.024-.12.025-.084c.266-.438.562-.633 1.11-.828l.357-.122.185-.067.147-.06.123-.06.112-.064.113-.077c.097-.069.189-.148.278-.24a.463.463 0 0 1 .617-.056zm8.882 1.934-.59.887a1.5 1.5 0 0 1-2.411.116l-.085-.116-.59-.887-.064.037-.1.053-.235.108-.235.093-.251.09-.397.132-.167.061c-.06.023-.11.043-.151.062l-.104.054-.041.028-.051.41-.088.788-.195 1.933h7.837l-.14-1.451-.113-1.06-.077-.614-.021-.017a1.193 1.193 0 0 0-.294-.14l-.26-.09-.315-.106-.28-.1-.266-.11-.15-.071-.1-.053-.066-.037zM10.5 1c1.628 0 2.75 1.343 2.75 3s-1.122 3.75-2.75 3.75S7.75 5.657 7.75 4s1.122-3 2.75-3zM5.05 2C6.382 2 7.3 3.12 7.3 4.5s-.918 3.125-2.25 3.125C3.718 7.625 2.8 5.881 2.8 4.5c0-1.38.918-2.5 2.25-2.5zm5.45.5c-.72 0-1.25.593-1.25 1.5 0 1.127.744 2.25 1.25 2.25S11.75 5.127 11.75 4c0-.907-.529-1.5-1.25-1.5zm-5.45 1c-.425 0-.75.371-.75 1 0 .406.148.902.383 1.262.175.269.313.363.367.363.054 0 .192-.094.367-.363.235-.36.383-.856.383-1.262 0-.629-.325-1-.75-1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Users = /* #__PURE__ */withIcon(IconUsers);\nvar IconUsersFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12.531 6.928c.11.11.222.205.34.288l.139.092.136.077.15.072.18.072.226.08.287.097c.768.252 1.159.48 1.501 1.033.112.18.203.478.288.93l.055.323.054.371.054.421.055.473c.04.365-.199.69-.524.737l-.083.006H5.611l-.083-.006c-.3-.044-.527-.324-.528-.654l.004-.083.055-.473.054-.42.054-.372.055-.324.037-.184c.074-.35.155-.59.25-.745.288-.464.61-.7 1.16-.913l.193-.07.436-.147.225-.08.18-.072.15-.072.137-.077.14-.092c.117-.083.23-.178.339-.288a.574.574 0 0 1 .753-.068.522.522 0 0 1 .096.084l.073.099L10.5 8.707l1.131-1.7a.529.529 0 0 1 .181-.169.573.573 0 0 1 .72.09zm-9.076-.211a.43.43 0 0 1 .078.07l.06.082.906 1.387c.03.11.028.205-.005.285a4.328 4.328 0 0 0-.214.739l-.04.204-.059.34-.058.395-.056.438-.04.343H.5l-.068-.005c-.245-.037-.43-.27-.432-.545l.004-.07.044-.393.044-.351.045-.31.045-.269c.07-.376.144-.624.235-.774.262-.43.558-.625 1.107-.82l.356-.122.185-.067.147-.06.123-.06.112-.064.113-.077c.097-.069.189-.148.278-.24a.463.463 0 0 1 .617-.056zM10.5 0c1.519 0 2.565 1.343 2.565 3S12.02 6.75 10.5 6.75 7.934 4.657 7.934 3 8.981 0 10.5 0zm-6 1c1.243 0 2.099 1.12 2.099 2.5s-.857 3.125-2.1 3.125c-1.242 0-2.098-1.744-2.098-3.125C2.4 2.12 3.257 1 4.5 1z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar UsersFilled = /* #__PURE__ */withIcon(IconUsersFilled);\nvar IconUsersGroup = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M9.461 8.123c.08.076.161.141.247.198l.1.063.1.054.109.05.13.05.164.055.209.066c.557.174.841.332 1.09.713l.011.038.021.138.044.447.081 1.08.089 1.425h2.31a.2.2 0 0 0 .012 0l.012-.001a.2.2 0 0 0 .174-.223l-.116-.945-.06-.242a.3.3 0 0 0-.18-.206l-1.51-.6a.2.2 0 0 1-.093-.295l.573-.878.06-.082a.43.43 0 0 1 .078-.07.462.462 0 0 1 .616.057c.089.092.271.224.747.448s.844.39 1.109.828l.025.085.024.12.06.378.075.563.224 1.944.004.07c-.001.274-.186.507-.431.544L15.5 14H11.98l-.035-.051.032.539a.455.455 0 0 1-.38.508l-.06.004h-7.1l-.06-.004a.454.454 0 0 1-.384-.45l.035-.558L4.02 14H.5l-.068-.005c-.245-.037-.43-.27-.431-.545l.004-.07.224-1.943.075-.563.06-.379.024-.12.025-.084c.265-.438.633-.604 1.109-.828.476-.224.658-.356.747-.448a.462.462 0 0 1 .616-.056.43.43 0 0 1 .078.07l.06.081.573.878a.2.2 0 0 1-.094.296l-1.508.599a.3.3 0 0 0-.18.206l-.061.242-.116.945a.2.2 0 0 0 .198.224h2.288l.102-1.62.095-1.192.028-.246.011-.058a.05.05 0 0 1 .005-.012c.21-.32.443-.483.843-.63l.14-.048.316-.101.163-.056.131-.05.11-.049.098-.054.101-.063c.086-.057.168-.122.247-.198a.433.433 0 0 1 .616.01l.054.069.804 1.147.821-1.171c.036-.051.081-.09.131-.117a.433.433 0 0 1 .523.062zm-.013 1.75-.807 1.152a.8.8 0 0 1-1.31 0l-.807-1.152-.036.017-.183.068-.523.171-.102 1.414-.124 1.957h4.863l-.14-2.233-.084-1.139-.363-.114-.216-.075-.168-.066zM7.993 1.001c1.097-.027 2.105.58 2.564 1.542.14.294.23.624.275.971a2.043 2.043 0 0 1 1.057-.263 2 2 0 0 1 1.86 1.119c.665 1.41-.204 3.925-1.86 3.925-.864 0-1.514-.684-1.844-1.538-.495.71-1.198 1.195-2.052 1.195-.86 0-1.566-.492-2.063-1.21-.328.861-.98 1.553-1.848 1.553-1.657 0-2.526-2.515-1.86-3.925a2 2 0 0 1 1.86-1.12c.385-.008.755.09 1.072.273.044-.35.135-.683.275-.98C5.889 1.58 6.896.974 7.993 1zM4.118 4.75h-.073c-.211-.006-.396.106-.47.26-.127.27-.11.805.084 1.264.159.374.331.52.423.52.092 0 .264-.146.422-.52.195-.46.212-.994.087-1.259a.492.492 0 0 0-.384-.26l-.089-.006zm7.807 0h-.073c-.211-.006-.397.106-.47.26-.128.27-.11.805.084 1.264.158.374.33.52.423.52.091 0 .264-.146.422-.52.195-.46.212-.994.087-1.259a.492.492 0 0 0-.384-.26l-.09-.006zM8.029 2.5h-.072c-.513-.013-.975.265-1.174.682-.567 1.202.31 3.269 1.21 3.269.9 0 1.777-2.067 1.213-3.263-.202-.423-.664-.701-1.177-.689z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar UsersGroup = /* #__PURE__ */withIcon(IconUsersGroup);\nvar IconUsersGroupFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M2.687 5.002c.022.013.042.03.06.049l.047.057.706.97.048.076a.572.572 0 0 1 .091.329l-.009.087-.042.26-.04.29-.04.322-.007.09.007.122a.991.991 0 0 0 .108.347L.39 8l-.053-.004A.388.388 0 0 1 0 7.616l.003-.05.034-.275.035-.246.034-.216.036-.19c.053-.262.111-.436.182-.541.204-.301.434-.437.861-.574l.277-.085.144-.047.114-.042.096-.042.087-.045.088-.054c.076-.048.147-.103.216-.168a.39.39 0 0 1 .48-.04zm11.106.04c.069.064.14.119.216.167l.088.054.087.045.096.042.114.042.144.047.182.056c.489.147.738.28.956.603.07.105.129.279.182.542l.036.189.034.216.035.246.034.276a.388.388 0 0 1-.333.43L15.611 8l-3.224.001a.92.92 0 0 0 .113-.437l-.007-.119-.04-.318-.04-.287-.04-.257a.602.602 0 0 1 .08-.427l.047-.077.72-.991a.39.39 0 0 1 .573-.046zm-4.316-.423c.08.073.161.136.247.191l.101.062.1.052.109.047.13.048.374.118c.558.168.842.32 1.091.69.081.12.148.318.21.619l.04.215.039.248.04.28.039.316a.443.443 0 0 1-.381.491l-.06.004H4.444l-.06-.004A.443.443 0 0 1 4 7.56l.003-.055.04-.316.04-.28.039-.248.04-.215c.061-.301.128-.5.209-.62.232-.344.495-.5.983-.655l.317-.098.164-.054.131-.048.11-.047.099-.052.1-.062c.087-.055.169-.118.248-.191a.446.446 0 0 1 .617.01l.054.066.805 1.11.823-1.133a.445.445 0 0 1 .655-.053zM3.5 1c.966 0 1.632.784 1.632 1.75S4.466 4.938 3.5 4.938c-.967 0-1.633-1.222-1.633-2.188C1.867 1.784 2.533 1 3.5 1zm9 0c.966 0 1.632.784 1.632 1.75s-.666 2.188-1.632 2.188c-.967 0-1.633-1.222-1.633-2.188 0-.966.666-1.75 1.633-1.75zM8 0c1.105 0 1.866.895 1.866 2S9.104 4.5 8 4.5C6.895 4.5 6.134 3.105 6.134 2S6.895 0 8 0z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar UsersGroupFilled = /* #__PURE__ */withIcon(IconUsersGroupFilled);\nvar IconVariable = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"m1.051 0 4.95.006A.75.75 0 0 1 6.1 1.5l-.102.006L1.5 1.501V14.5H6a.75.75 0 0 1 .743.647l.007.102a.75.75 0 0 1-.648.744L6 15.999 1.05 16a1.05 1.05 0 0 1-1.044-.936L0 14.95V1.05C0 .51.41.064.936.007L1.05 0zm8.95.01 4.95.007c.541 0 .986.41 1.043.936l.006.114V14.95c0 .541-.41.987-.936 1.044L14.95 16H10a.75.75 0 0 1-.102-1.494L10 14.5l4.5.001V1.516L9.999 1.51a.75.75 0 0 1-.742-.649L9.25.76a.75.75 0 0 1 .751-.749z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Variable = /* #__PURE__ */withIcon(IconVariable);\nvar IconVideo = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M15.994 2.643 16 2.75v10.494a.75.75 0 0 1-1.121.652l-.09-.06L11 10.892V12.8a.7.7 0 0 1-.7.7H.7a.7.7 0 0 1-.7-.7V3.2a.7.7 0 0 1 .7-.7h9.6a.7.7 0 0 1 .7.7v1.904l3.79-2.946a.75.75 0 0 1 1.204.485zM9.5 4h-8v8h8V4zm5 .284L11 7.004V8.99l3.5 2.721V4.284z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Video = /* #__PURE__ */withIcon(IconVideo);\nvar IconVideoEnd = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.25 0a.75.75 0 0 1 .75.75v14.5a.75.75 0 1 1-1.5 0V9.268l-11.385 6.63a.752.752 0 0 1-1.008-.237.682.682 0 0 1-.107-.365V.704C1 .315 1.329 0 1.734 0c.134 0 .266.035.38.102L13.5 6.731V.75a.75.75 0 0 1 .75-.75zM2.5 2.062v11.875L12.699 8 2.5 2.062z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar VideoEnd = /* #__PURE__ */withIcon(IconVideoEnd);\nvar IconVideoNext = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.734 0c.134 0 .266.035.38.102l12.533 7.296a.688.688 0 0 1 0 1.204L2.115 15.898a.752.752 0 0 1-1.008-.237.682.682 0 0 1-.107-.365V.704C1 .315 1.329 0 1.734 0zM2.5 2.062v11.875L12.699 8 2.5 2.062z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar VideoNext = /* #__PURE__ */withIcon(IconVideoNext);\nvar IconVideoPrev = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.266 0a.758.758 0 0 0-.38.102L1.352 7.398a.688.688 0 0 0 0 1.204l12.532 7.296a.752.752 0 0 0 1.008-.237.682.682 0 0 0 .107-.365V.704C15 .315 14.671 0 14.266 0zM13.5 2.062v11.875L3.301 7.999 13.5 2.062z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar VideoPrev = /* #__PURE__ */withIcon(IconVideoPrev);\nvar IconVideoStart = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M1.75 16a.75.75 0 0 1-.75-.75V.75a.75.75 0 1 1 1.5 0v5.982L13.885.102a.752.752 0 0 1 1.008.237c.07.11.107.236.107.365v14.592c0 .389-.329.704-.734.704a.758.758 0 0 1-.38-.102L2.5 9.269v5.981a.75.75 0 0 1-.75.75zm11.75-2.062V2.063L3.301 8 13.5 13.938z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar VideoStart = /* #__PURE__ */withIcon(IconVideoStart);\nvar IconVideoStop = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M14.951.017 1.051 0C.47 0 0 .47 0 1.05v13.9C0 15.53.47 16 1.05 16h13.9c.58 0 1.05-.47 1.05-1.05V1.067c0-.58-.47-1.05-1.049-1.05zM1.5 1.501l13 .015V14.5h-13V1.501z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar VideoStop = /* #__PURE__ */withIcon(IconVideoStop);\nvar IconWarning = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.496 1.136a1 1 0 0 1 .361.36l7.005 12.002A.998.998 0 0 1 14.998 15H1a1 1 0 0 1-.864-1.502L7.129 1.497a1 1 0 0 1 1.367-.361zm-.503 1.856L1.87 13.5h12.256L7.993 2.992zM8 10.5c.38 0 .693.26.743.596l.007.093v.489l-.007.226c-.05.337-.363.596-.743.596s-.693-.26-.743-.596l-.007-.226v-.489l.007-.093c.05-.337.363-.596.743-.596zM8 5c.38 0 .693.279.743.64l.007.1v3.52l-.007.1A.747.747 0 0 1 8 10a.747.747 0 0 1-.743-.64l-.007-.1V5.74l.007-.1A.747.747 0 0 1 8 5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Warning = /* #__PURE__ */withIcon(IconWarning);\nvar IconWarningFilled = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.496.136a1 1 0 0 1 .361.36l7.005 12.002A.998.998 0 0 1 14.998 14H1a1 1 0 0 1-.864-1.502L7.129.497A1 1 0 0 1 8.496.136zM8 10.755c-.38 0-.693.279-.743.641l-.007.101v.26l.007.101c.05.363.363.642.743.642s.693-.28.743-.642l.007-.1v-.26l-.007-.102A.748.748 0 0 0 8 10.755zM8 3.5c-.38 0-.693.28-.743.642l-.007.1v4.545l.007.1c.05.363.363.642.743.642s.693-.28.743-.642l.007-.1V4.243l-.007-.101A.748.748 0 0 0 8 3.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar WarningFilled = /* #__PURE__ */withIcon(IconWarningFilled);\nvar IconWorkgroup = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8.25 0a2.75 2.75 0 0 1 2.716 3.186 6.747 6.747 0 0 1 3.77 6.5 2.75 2.75 0 0 1-2.543 4.854A6.716 6.716 0 0 1 8 16a6.721 6.721 0 0 1-4.195-1.461 2.75 2.75 0 0 1-2.54-4.854A6.752 6.752 0 0 1 5.51 2.974 2.75 2.75 0 0 1 8.25 0zM6.036 4.382l-.024.009A5.248 5.248 0 0 0 2.75 9.25a2.75 2.75 0 0 1 2.262 4.315A5.21 5.21 0 0 0 8 14.5a5.226 5.226 0 0 0 2.99-.934 2.75 2.75 0 0 1 2.092-4.31l.168-.006a5.25 5.25 0 0 0-2.918-4.705 2.746 2.746 0 0 1-4.296-.163zM2.75 10.75a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5zm10.5 0a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5zm-5-9.25a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Workgroup = /* #__PURE__ */withIcon(IconWorkgroup);\nvar IconWrench = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M13.372.514a.756.756 0 0 1 .26 1.132l-.066.076-2.352 2.35.713.713 2.351-2.35a.756.756 0 0 1 1.209.194 4.787 4.787 0 0 1-5.651 6.74l-3.797 3.798a3.022 3.022 0 1 1-3.206-3.206L6.63 6.164a4.787 4.787 0 0 1 6.741-5.65zM4.091 11.909a1.511 1.511 0 1 0-2.137 2.137A1.511 1.511 0 0 0 4.09 11.91zm4.316-3.247a4.82 4.82 0 0 1-1.069-1.069l-2.78 2.78a3.028 3.028 0 0 1 1.068 1.07l2.78-2.781zm3.209-7.128-.18-.015A3.274 3.274 0 1 0 14.49 4.76l-.007-.197-.018-.178-2.003 2.003a.756.756 0 0 1-.908.122l-.083-.055-.078-.067-1.78-1.781a.756.756 0 0 1-.068-.992l.068-.077 2.004-2.005z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar Wrench = /* #__PURE__ */withIcon(IconWrench);\nvar IconX = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M12.802 2.147a.75.75 0 0 1 1.05 1.05l-.072.084L9.06 7.999l4.719 4.72a.75.75 0 0 1-.978 1.133l-.084-.072L8 9.06 3.281 13.78l-.085.072a.75.75 0 0 1-1.05-1.05l.073-.084L6.938 8 2.219 3.281a.75.75 0 0 1 .977-1.134l.085.072 4.718 4.719 4.72-4.719.083-.072z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar X = /* #__PURE__ */withIcon(IconX);\nvar IconXCircle = function () {\n return React.createElement(\"g\", null, React.createElement(\"path\", {\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm6.5 8a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0zm-3.318-3.182a.75.75 0 0 1 0 1.06L9.061 8l2.121 2.121a.75.75 0 0 1-1.06 1.061L8 9.061l-2.121 2.121a.75.75 0 0 1-1.061-1.06L6.939 8 4.818 5.879a.75.75 0 0 1 1.06-1.061L8 6.939l2.121-2.121a.75.75 0 0 1 1.061 0z\"\n }));\n};\n// pure annotation needed for tree-shaking\nvar XCircle = /* #__PURE__ */withIcon(IconXCircle);\nexport { Airplane as IconAirplane, Arrow180 as IconArrow180, Arrow360 as IconArrow360, ArrowBox as IconArrowBox, ArrowCombine as IconArrowCombine, ArrowDashed as IconArrowDashed, ArrowDown as IconArrowDown, ArrowExit as IconArrowExit, ArrowForward as IconArrowForward, ArrowIntegrate as IconArrowIntegrate, ArrowLeft as IconArrowLeft, ArrowRandom as IconArrowRandom, ArrowRefresh as IconArrowRefresh, ArrowRight as IconArrowRight, ArrowSkip as IconArrowSkip, ArrowSpread as IconArrowSpread, ArrowUp as IconArrowUp, ArtificialIntelligence as IconArtificialIntelligence, Badge as IconBadge, Balloon as IconBalloon, Bell as IconBell, Blocks as IconBlocks, Books as IconBooks, Brush as IconBrush, Calendar as IconCalendar, Camera as IconCamera, CaretDown as IconCaretDown, CaretLeft as IconCaretLeft, CaretRight as IconCaretRight, CaretUp as IconCaretUp, CaretUpDown as IconCaretUpDown, Cart as IconCart, ChartBarHorz as IconChartBarHorz, ChartBarVert as IconChartBarVert, ChartConfidenceLevel as IconChartConfidenceLevel, ChartDonut as IconChartDonut, ChartDonutFilled as IconChartDonutFilled, ChartHorzStacked as IconChartHorzStacked, ChartLine as IconChartLine, ChartPie as IconChartPie, ChartSegment as IconChartSegment, ChartTracker as IconChartTracker, ChartVertStacked as IconChartVertStacked, Chat as IconChat, Check as IconCheck, CheckBox as IconCheckBox, CheckCircle as IconCheckCircle, CheckEnclosed as IconCheckEnclosed, ChevronDown as IconChevronDown, ChevronLeft as IconChevronLeft, ChevronRight as IconChevronRight, ChevronUp as IconChevronUp, Circle as IconCircle, Clock as IconClock, Clone as IconClone, Cloud as IconCloud, CloudArrow as IconCloudArrow, Comment as IconComment, CommentCheck as IconCommentCheck, CommentFilled as IconCommentFilled, Copyright as IconCopyright, CreditCard as IconCreditCard, Danger as IconDanger, Dashboard as IconDashboard, Desktop as IconDesktop, Distribute as IconDistribute, Divisions as IconDivisions, Document as IconDocument, DocumentArrow as IconDocumentArrow, DocumentClone as IconDocumentClone, DocumentDocx as IconDocumentDocx, DocumentList as IconDocumentList, DocumentPPTX as IconDocumentPPTX, DocumentPdf as IconDocumentPdf, DocumentPlus as IconDocumentPlus, DocumentSearch as IconDocumentSearch, DocumentUser as IconDocumentUser, DocumentUserFilled as IconDocumentUserFilled, DocumentX as IconDocumentX, Email as IconEmail, Error as IconError, Eye as IconEye, FaceHappy as IconFaceHappy, FaceNeutral as IconFaceNeutral, FaceSad as IconFaceSad, FaceVeryHappy as IconFaceVeryHappy, FaceVerySad as IconFaceVerySad, Filter as IconFilter, Flag as IconFlag, Flask as IconFlask, Folder as IconFolder, FolderArrow as IconFolderArrow, FolderPencil as IconFolderPencil, FolderUser as IconFolderUser, Footprint as IconFootprint, Gear as IconGear, Globe as IconGlobe, GovBuilding as IconGovBuilding, GraduationHat as IconGraduationHat, Grid as IconGrid, GridCarets as IconGridCarets, GridCircles as IconGridCircles, Group as IconGroup, Happy as IconHappy, HappyFilled as IconHappyFilled, Health as IconHealth, Heart as IconHeart, HeartFilled as IconHeartFilled, HeartHand as IconHeartHand, Help as IconHelp, HelpFilled as IconHelpFilled, House as IconHouse, Image as IconImage, ImageArrow as IconImageArrow, Inbox as IconInbox, Info as IconInfo, InfoFilled as IconInfoFilled, Insights as IconInsights, JumpToQuestion as IconJumpToQuestion, JumpToQuestionFilled as IconJumpToQuestionFilled, Key as IconKey, Keyboard as IconKeyboard, Launchpad as IconLaunchpad, Lightbulb as IconLightbulb, Lighting as IconLighting, Link as IconLink, List as IconList, ListBulleted as IconListBulleted, ListChecks as IconListChecks, Location as IconLocation, Lock as IconLock, LogoDrive as IconLogoDrive, LogoFacebook as IconLogoFacebook, LogoGmail as IconLogoGmail, LogoGoldie as IconLogoGoldie, LogoGoogle as IconLogoGoogle, LogoGooglePlus as IconLogoGooglePlus, LogoLinkedIn as IconLogoLinkedIn, LogoMailChimp as IconLogoMailChimp, LogoMessenger as IconLogoMessenger, LogoOffice as IconLogoOffice, LogoOutlook as IconLogoOutlook, LogoPinterest as IconLogoPinterest, LogoTwitter as IconLogoTwitter, LogoWhatsApp as IconLogoWhatsApp, LogoYahooMail as IconLogoYahooMail, LogoYouTube as IconLogoYouTube, Megaphone as IconMegaphone, Menu as IconMenu, Minus as IconMinus, MinusCircle as IconMinusCircle, Mobile as IconMobile, More as IconMore, MoreAndroid as IconMoreAndroid, Move as IconMove, MoveToGroup as IconMoveToGroup, Nest as IconNest, News as IconNews, NoWifi as IconNoWifi, Number1 as IconNumber1, Number10 as IconNumber10, Number2 as IconNumber2, Number3 as IconNumber3, Number4 as IconNumber4, Number5 as IconNumber5, Number6 as IconNumber6, Number7 as IconNumber7, Number8 as IconNumber8, Number9 as IconNumber9, OpenMinimizeLeft as IconOpenMinimizeLeft, OpenMinimizeRight$1 as IconOpenMinimizeRight, Paragraph as IconParagraph, PencilBox as IconPencilBox, PencilPaper as IconPencilPaper, Phone as IconPhone, Pin as IconPin, Plus as IconPlus, PlusCircle as IconPlusCircle, Printer as IconPrinter, Pulse as IconPulse, QuestionBank as IconQuestionBank, ScatterPlot as IconScatterPlot, ScreenReader as IconScreenReader, Search as IconSearch, Shapes as IconShapes, Share as IconShare, ShareAndroid as IconShareAndroid, ShareIOS as IconShareIOS, Shuffle as IconShuffle, ShuffleBox as IconShuffleBox, ShuffleBoxFilled as IconShuffleBoxFilled, Slider as IconSlider, SlidersVert as IconSlidersVert, Star as IconStar, StarFilled as IconStarFilled, TableCol as IconTableCol, TableRow as IconTableRow, Tablet as IconTablet, TabletCheck as IconTabletCheck, Tag as IconTag, Template as IconTemplate, Textbox as IconTextbox, TextboxMultiple as IconTextboxMultiple, ThumbsUp as IconThumbsUp, ThumbsUpFilled as IconThumbsUpFilled, Timer as IconTimer, Toggle as IconToggle, Toolbox as IconToolbox, Translation as IconTranslation, Trash as IconTrash, Truck as IconTruck, Ungroup as IconUngroup, Unlock as IconUnlock, Unnest as IconUnnest, User as IconUser, UserArrow as IconUserArrow, UserFilled as IconUserFilled, UserPlus as IconUserPlus, Users as IconUsers, UsersFilled as IconUsersFilled, UsersGroup as IconUsersGroup, UsersGroupFilled as IconUsersGroupFilled, Variable as IconVariable, Video as IconVideo, VideoEnd as IconVideoEnd, VideoNext as IconVideoNext, VideoPrev as IconVideoPrev, VideoStart as IconVideoStart, VideoStop as IconVideoStop, Warning as IconWarning, WarningFilled as IconWarningFilled, Workgroup as IconWorkgroup, Wrench as IconWrench, X as IconX, XCircle as IconXCircle, withIcon };","import React from 'react';\nimport { createMemoStyles, safeRest, visuallyHidden, defaultFonts } from '@wds/utils';\nimport { IconX } from '@wds/icons';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles$1 = createMemoStyles(function (_a) {\n var spacing = _a.spacing,\n type = _a.type;\n return {\n wrenchCloseButton: function (_a) {\n var component = _a.component,\n disabled = _a.disabled;\n var componentSpecificStyles = {\n badge: {\n position: 'relative',\n top: 'none',\n right: 'none',\n padding: 0,\n marginLeft: spacing[3]\n },\n banner: {\n position: 'absolute',\n top: spacing[2],\n right: spacing[2],\n padding: 0\n },\n alert: {\n padding: [spacing[2], 0, spacing[2], spacing[5]],\n textAlign: 'right'\n },\n default: {\n position: 'absolute',\n right: spacing[1],\n top: spacing[1],\n padding: spacing[2]\n }\n };\n return __assign(__assign({}, componentSpecificStyles[component !== null && component !== void 0 ? component : 'default']), {\n fontSize: type.fontSize.body,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: !disabled && 'pointer',\n borderRadius: '0',\n textDecoration: 'none',\n background: 'transparent',\n border: 'none',\n '&:hover': {\n transition: 'none',\n textDecoration: 'none'\n },\n '&:active': {\n transition: 'none',\n outline: 'none'\n }\n });\n }\n };\n});\nvar CloseButton = function (_a) {\n _a.children;\n var component = _a.component,\n label = _a.label,\n _c = _a.variant,\n variant = _c === void 0 ? 'light' : _c,\n _d = _a.disabled,\n disabled = _d === void 0 ? false : _d,\n rest = __rest(_a, [\"children\", \"component\", \"label\", \"variant\", \"disabled\"]);\n var wrenchCloseButton = useStyles$1({\n component: component,\n disabled: disabled\n }).wrenchCloseButton;\n return React.createElement(\"button\", __assign({\n type: \"button\",\n className: wrenchCloseButton,\n \"aria-label\": label,\n disabled: disabled\n }, safeRest(rest)), React.createElement(IconX, {\n title: \"close\",\n color: variant\n }));\n};\n\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nvar Overlay = function (_a) {\n var className = _a.className,\n onClick = _a.onClick;\n return React.createElement(\"div\", {\n className: className,\n onClick: onClick,\n \"data-testid\": \"Overlay__WDS\"\n });\n};\nvar useStyles = createMemoStyles(function (_a) {\n var palette = _a.palette,\n spacing = _a.spacing,\n theme = __rest(_a, [\"palette\", \"spacing\"]);\n var pane = {\n bgColor: palette.background.accent,\n padding: spacing[5]\n };\n return {\n wrenchPane: function (_a) {\n var hide = _a.hide,\n transparent = _a.transparent;\n return __assign(__assign(__assign({}, hide && visuallyHidden), defaultFonts(theme)), {\n background: transparent ? 'none' : pane.bgColor\n });\n },\n wrenchPaneBody: function () {\n return {\n padding: pane.padding\n };\n }\n };\n});\nvar Pane = function (_a) {\n var children = _a.children,\n _b = _a.hide,\n hide = _b === void 0 ? false : _b,\n id = _a.id,\n _c = _a.padding,\n padding = _c === void 0 ? false : _c,\n labelledBy = _a.labelledBy,\n role = _a.role,\n _d = _a.transparent,\n transparent = _d === void 0 ? false : _d,\n rest = __rest(_a, [\"children\", \"hide\", \"id\", \"padding\", \"labelledBy\", \"role\", \"transparent\"]);\n var _e = useStyles({\n hide: hide,\n transparent: transparent\n }),\n wrenchPane = _e.wrenchPane,\n wrenchPaneBody = _e.wrenchPaneBody;\n return React.createElement(\"div\", __assign({\n className: wrenchPane,\n role: role,\n id: id,\n \"aria-labelledby\": labelledBy,\n \"aria-hidden\": hide\n }, safeRest(rest)), padding ? React.createElement(\"div\", {\n className: wrenchPaneBody\n }, children) : children);\n};\nexport { CloseButton, Overlay, Pane };","import React, { forwardRef, useState, createRef, useEffect, useMemo, Children } from 'react';\nimport { Fade, Slide } from '@wds/motion';\nimport { createMemoStyles, safeRest, KEYS, defaultFonts, useIsomorphicLayoutEffect, isBrowser, usePreviousState, uniqueId } from '@wds/utils';\nimport { SIZES } from '@wds/styles';\nimport { Overlay, CloseButton } from '@wds/internal-components';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar useStyles$3 = createMemoStyles(function (theme) {\n var spacing = theme.spacing;\n return {\n wrenchModalBody: function (_a) {\n var padding = _a.padding;\n return __assign({\n overflowY: 'auto',\n flexGrow: 1\n }, padding && {\n padding: [spacing[4], spacing[6], spacing[6], spacing[6]]\n });\n }\n };\n});\nvar ModalBody = forwardRef(function (_a, ref) {\n _a.className;\n var children = _a.children,\n handleClick = _a.handleClick,\n id = _a.id,\n _b = _a.padding,\n padding = _b === void 0 ? true : _b,\n rest = __rest(_a, [\"className\", \"children\", \"handleClick\", \"id\", \"padding\"]);\n var wrenchModalBody = useStyles$3({\n padding: padding\n }).wrenchModalBody;\n var handleKeyDown = function (e) {\n if (e.key === KEYS.ESC) {\n handleClick === null || handleClick === void 0 ? void 0 : handleClick(e);\n e.preventDefault();\n }\n };\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n React.createElement(\"section\", __assign({\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex: 0,\n ref: ref,\n id: id,\n className: wrenchModalBody,\n onKeyDown: handleKeyDown\n }, safeRest(rest)), children)\n );\n});\nModalBody.displayName = 'ModalBody';\nvar useStyles$2 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n spacing = theme.spacing;\n return {\n wrenchModalFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n flexShrink: 0,\n padding: spacing[6],\n background: palette.background.light,\n borderTop: \"1px solid \".concat(palette.border.muted),\n color: palette.text.dark\n },\n wrenchModalActions: function (_a) {\n var align = _a.align;\n return __assign(__assign(__assign({\n display: 'flex',\n flexGrow: 1,\n flexWrap: 'wrap'\n }, align === 'right' && {\n justifyContent: 'flex-end'\n }), align === 'left' && {\n justifyContent: 'flex-start'\n }), {\n '&:not([class^=\"wrenchButtonGroup\"])': {\n '& > button, & > a': {\n marginLeft: spacing[2]\n }\n }\n });\n }\n };\n});\nvar ModalFooter = function (_a) {\n var _b = _a.align,\n align = _b === void 0 ? 'left' : _b,\n children = _a.children;\n var _c = useStyles$2({\n align: align\n }),\n wrenchModalActions = _c.wrenchModalActions,\n wrenchModalFooter = _c.wrenchModalFooter;\n return React.createElement(\"footer\", {\n className: wrenchModalFooter\n }, React.createElement(\"div\", {\n className: wrenchModalActions\n }, children));\n};\nvar useStyles$1 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n spacing = theme.spacing,\n _a = theme.type,\n fontWeight = _a.fontWeight,\n fontSize = _a.fontSize;\n return {\n wrenchModalHeader: function (_a) {\n var stretched = _a.stretched;\n return {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n padding: [spacing[6], spacing[6], spacing[2], spacing[6]],\n background: palette.background.light,\n flexShrink: 0,\n flexDirection: stretched ? 'column' : 'row'\n };\n },\n wrenchModalText: {\n fontSize: 24,\n fontWeight: fontWeight.medium,\n color: palette.text.dark,\n marginTop: 0,\n marginBottom: spacing[2]\n },\n wrenchModalTitle: {\n flexGrow: 1,\n width: '100%'\n },\n wrenchModalSubText: {\n fontSize: fontSize.bodySm,\n fontWeight: fontWeight.regular,\n color: palette.text.dark,\n margin: [spacing[1], 0, 0]\n },\n wrenchModalAddOn: {\n flexGrow: 1,\n marginTop: spacing[3],\n width: '100%',\n minWidth: '33%',\n textAlign: 'right',\n // In the case that an addon is the first child (modal title was omitted)\n // we do not want a margin top\n '& :first-child': {\n marginTop: 0\n }\n }\n };\n});\nvar ModalHeader = function (_a) {\n var addOn = _a.addOn,\n header = _a.header,\n id = _a.id,\n subHeader = _a.subHeader,\n _b = _a.stretched,\n stretched = _b === void 0 ? false : _b;\n if (subHeader && addOn) {\n throw new Error('You cannot have both subHeader and addon');\n } else if (!header && subHeader) {\n throw new Error('You must provide a header if you provide a subHeader');\n }\n var _c = useStyles$1({\n stretched: stretched\n }),\n wrenchModalAddOn = _c.wrenchModalAddOn,\n wrenchModalHeader = _c.wrenchModalHeader,\n wrenchModalSubText = _c.wrenchModalSubText,\n wrenchModalText = _c.wrenchModalText,\n wrenchModalTitle = _c.wrenchModalTitle;\n return React.createElement(\"section\", {\n className: wrenchModalHeader\n }, React.createElement(\"div\", {\n className: wrenchModalTitle\n }, header && React.createElement(\"h2\", {\n className: wrenchModalText,\n id: id\n }, header), subHeader && React.createElement(\"p\", {\n className: wrenchModalSubText\n }, subHeader)), addOn && React.createElement(\"div\", {\n className: wrenchModalAddOn\n }, addOn));\n};\nvar modalWidth = {\n sm: '443px',\n md: '676px',\n lg: '909px',\n xl: '1300px',\n full: '100%'\n};\nvar useStyles = createMemoStyles(function (theme) {\n var _a;\n var breakpoints = theme.breakpoints,\n palette = theme.palette,\n shadow = theme.shadow,\n spacing = theme.spacing;\n return {\n wrenchModalWrapper: function (_a) {\n var elevation = _a.elevation,\n size = _a.size,\n showWrapper = _a.showWrapper;\n return {\n overflow: 'auto',\n position: 'fixed',\n inset: showWrapper ? 0 : null,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n pointerEvents: 'none',\n zIndex: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space,\n '& > div': {\n width: size === 'full' ? '100%' : undefined,\n height: size === 'full' ? '100%' : undefined\n }\n };\n },\n wrenchModal: function (_a) {\n var size = _a.size;\n return {\n width: size === 'full' ? '100%' : undefined,\n height: size === 'full' ? '100%' : undefined\n };\n },\n wrenchModalContainer: __assign(__assign({}, defaultFonts(theme)), (_a = {\n boxSizing: 'border-box',\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n color: palette.text.dark,\n background: palette.text.light,\n zIndex: function (_a) {\n var elevation = _a.elevation;\n return (elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space) + 1;\n },\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto',\n whiteSpace: 'normal',\n outline: 'none',\n pointerEvents: 'all'\n }, _a[\"@media (min-width: \".concat(breakpoints.sm, \"px)\")] = {\n maxWidth: function (_a) {\n var size = _a.size;\n return {\n sm: '80vw',\n md: '80vw',\n lg: '80vw',\n xl: '96vw',\n full: '100vw'\n }[size];\n },\n maxHeight: function (_a) {\n var size = _a.size;\n return {\n sm: '90vh',\n md: '90vh',\n lg: '90vh',\n xl: '96vh',\n full: '100vh'\n }[size];\n },\n borderRadius: function (_a) {\n var fullPage = _a.fullPage;\n return fullPage ? 0 : spacing[4];\n },\n boxShadow: shadow.space,\n position: 'relative',\n top: 'auto',\n left: 'auto',\n right: 'auto',\n bottom: 'auto',\n height: function (_a) {\n var fullPage = _a.fullPage;\n return fullPage ? '100%' : 'auto';\n },\n width: function (_a) {\n var size = _a.size;\n return modalWidth[size];\n }\n }, _a)),\n wrenchModalOverlayContainer: function (_a) {\n var elevation = _a.elevation;\n return {\n zIndex: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space,\n position: 'relative'\n };\n },\n wrenchModalOverlay: {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n position: 'fixed',\n backgroundColor: palette.background.overlay\n }\n };\n});\n__spreadArray(__spreadArray([], SIZES.filter(function (x) {\n return x !== 'xs';\n}), true), ['full'], false);\nvar Modal = function (_a) {\n var children = _a.children,\n _b = _a.closeButtonLabel,\n closeButtonLabel = _b === void 0 ? 'Close Modal' : _b,\n _c = _a.dismissible,\n dismissible = _c === void 0 ? true : _c,\n onClose = _a.onClose,\n _d = _a.show,\n show = _d === void 0 ? false : _d,\n _e = _a.size,\n size = _e === void 0 ? 'sm' : _e,\n title = _a.title,\n elevation = _a.elevation,\n _f = _a.role,\n role = _f === void 0 ? 'dialog' : _f,\n rest = __rest(_a, [\"children\", \"closeButtonLabel\", \"dismissible\", \"onClose\", \"show\", \"size\", \"title\", \"elevation\", \"role\"]);\n var _g = useState(show),\n showWrapper = _g[0],\n setShowWrapper = _g[1];\n useIsomorphicLayoutEffect(function () {\n if (isBrowser) {\n if (show) {\n document.body.style.overflowY = 'hidden';\n } else {\n document.body.style.overflowY = 'auto';\n }\n }\n return function () {\n if (isBrowser) {\n document.body.style.overflowY = 'auto';\n }\n };\n });\n var modalBodyRef = createRef();\n var prevShow = usePreviousState(show);\n var fullPage = size === 'full';\n var _h = useStyles({\n size: size,\n elevation: elevation,\n fullPage: fullPage,\n showWrapper: showWrapper\n }),\n wrenchModal = _h.wrenchModal,\n wrenchModalContainer = _h.wrenchModalContainer,\n wrenchModalOverlay = _h.wrenchModalOverlay,\n wrenchModalOverlayContainer = _h.wrenchModalOverlayContainer,\n wrenchModalWrapper = _h.wrenchModalWrapper;\n useEffect(function () {\n if (modalBodyRef.current && prevShow !== show) {\n modalBodyRef.current.focus({\n preventScroll: true\n });\n }\n }, [modalBodyRef, prevShow, show]);\n var titleId = useMemo(function () {\n return uniqueId('modal-title-');\n }, []);\n var bodyId = useMemo(function () {\n return uniqueId('modal-body-');\n }, []);\n var handleClick = function () {\n if (dismissible) {\n if (onClose) {\n onClose();\n }\n }\n };\n /**\n * ModalHeader exists show aria-labelledby\n * @type {boolean}\n */\n var hasModalHeader = Children.toArray(children).some(function (child) {\n return React.isValidElement(child) && child.type === ModalHeader;\n });\n if (!showWrapper && show) {\n setShowWrapper(true);\n }\n return React.createElement(React.Fragment, null, React.createElement(\"div\", {\n className: fullPage ? '' : wrenchModalOverlayContainer\n }, React.createElement(Fade, {\n in: show\n }, React.createElement(\"div\", null, React.createElement(Overlay, {\n onClick: handleClick,\n className: fullPage ? '' : wrenchModalOverlay\n })))), React.createElement(\"div\", {\n className: wrenchModalWrapper\n }, React.createElement(Slide, {\n in: show,\n direction: \"up\",\n onEnter: function () {\n return setShowWrapper(true);\n },\n onExited: function () {\n return setShowWrapper(false);\n }\n }, React.createElement(\"div\", null, React.createElement(\"div\", __assign({\n className: wrenchModal\n }, safeRest(rest)), React.createElement(\"div\", {\n className: wrenchModalContainer,\n \"aria-label\": title,\n \"aria-labelledby\": hasModalHeader ? titleId : undefined,\n \"aria-describedby\": bodyId,\n role: role,\n \"aria-modal\": \"true\",\n tabIndex: -1\n }, dismissible && React.createElement(CloseButton, {\n variant: \"dark\",\n onClick: handleClick,\n label: closeButtonLabel\n }), Children.map(children, function (child) {\n if (React.isValidElement(child)) {\n var additionalProps = void 0;\n if (child.type === ModalHeader) {\n additionalProps = {\n id: titleId\n };\n } else if (child.type === ModalBody) {\n additionalProps = {\n id: bodyId,\n handleClick: handleClick,\n ref: modalBodyRef\n };\n }\n if (additionalProps) {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, additionalProps);\n }\n }\n }\n return child;\n })))))));\n};\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\nModal.Header = ModalHeader;\nvar MODAL_SIZES = ['sm', 'md', 'lg', 'xl', 'full'];\nexport { MODAL_SIZES, Modal };","import React from 'react';\nimport { createMemoStyles, safeRest } from '@wds/utils';\nimport { CSSTransition } from 'react-transition-group';\nimport { useTheme } from 'react-jss';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles$2 = createMemoStyles({\n wrenchFade: function (_a) {\n var transitionTime = _a.transitionTime;\n return {\n '&$enter, &$exit': {\n transition: \"opacity \".concat(transitionTime, \"ms linear\")\n }\n };\n },\n enter: {\n opacity: '0'\n },\n enterActive: {\n opacity: '1'\n },\n exit: {\n opacity: '1'\n },\n exitActive: {\n opacity: '0'\n }\n});\nvar Fade = function (_a) {\n var children = _a.children,\n _b = _a.speed,\n speed = _b === void 0 ? 'normal' : _b,\n timeout = _a.timeout,\n rest = __rest(_a, [\"children\", \"speed\", \"timeout\"]);\n var motion = useTheme().motion;\n var transitionTime = timeout !== null && timeout !== void 0 ? timeout : motion.fade.speed[speed];\n var _c = useStyles$2({\n transitionTime: transitionTime\n }),\n wrenchFade = _c.wrenchFade,\n animationClasses = __rest(_c, [\"wrenchFade\"]);\n return React.createElement(CSSTransition, __assign({\n className: wrenchFade,\n classNames: __assign({}, animationClasses),\n timeout: transitionTime,\n unmountOnExit: true\n }, safeRest(rest)), children);\n};\nvar speedAnimation = function (isEnter, speed) {\n var curveEntrance = 'cubic-bezier(0, 0, 0, 1)';\n var curveEase = 'cubic-bezier(0.2, 0, 0.1, 1)';\n var bezier = isEnter ? curveEntrance : curveEase;\n var transform = \"transform \".concat(speed, \"ms \").concat(bezier);\n var opacity = \"opacity \".concat(speed / (isEnter ? 5 : 2), \"ms linear \").concat(speed / (isEnter ? 10 : 2), \"ms\");\n return \"\".concat(transform, \", \").concat(opacity);\n};\nvar directionAnimation = function (direction, distance, isZero) {\n return {\n up: \"translateY(\".concat(isZero ? 0 : distance, \"%)\"),\n down: \"translateY(-\".concat(isZero ? 0 : distance, \"%)\"),\n left: \"translateX(\".concat(isZero ? 0 : distance, \"%)\"),\n right: \"translateX(-\".concat(isZero ? 0 : distance, \"%)\")\n }[direction];\n};\nvar useStyles$1 = createMemoStyles({\n wrenchSlide: function (_a) {\n var slideSpeed = _a.slideSpeed,\n direction = _a.direction,\n slideDistance = _a.slideDistance;\n return {\n '&$enter': {\n transform: directionAnimation(direction, slideDistance, false)\n },\n '&$enterActive': {\n transition: speedAnimation(true, slideSpeed),\n transform: directionAnimation(direction, slideDistance, true)\n },\n '&$exit': {\n transform: directionAnimation(direction, slideDistance, true)\n },\n '&$exitActive': {\n transition: speedAnimation(false, slideSpeed),\n transform: directionAnimation(direction, slideDistance, false)\n }\n };\n },\n enter: {\n opacity: '0'\n },\n enterActive: {\n opacity: '1'\n },\n exit: {\n opacity: '1'\n },\n exitActive: {\n opacity: '0'\n }\n});\nvar Slide = function (_a) {\n var children = _a.children,\n timeout = _a.timeout,\n _b = _a.direction,\n direction = _b === void 0 ? 'up' : _b,\n _c = _a.speed,\n speed = _c === void 0 ? 'normal' : _c,\n _d = _a.distance,\n distance = _d === void 0 ? 'normal' : _d,\n rest = __rest(_a, [\"children\", \"timeout\", \"direction\", \"speed\", \"distance\"]);\n var motion = useTheme().motion;\n var slideSpeed = timeout !== null && timeout !== void 0 ? timeout : motion.slide.speed[speed];\n var slideDistance = motion.slide.distance[distance];\n var _e = useStyles$1({\n slideSpeed: slideSpeed,\n direction: direction,\n slideDistance: slideDistance\n }),\n wrenchSlide = _e.wrenchSlide,\n animationClasses = __rest(_e, [\"wrenchSlide\"]);\n return React.createElement(CSSTransition, __assign({\n className: wrenchSlide,\n classNames: __assign({}, animationClasses),\n timeout: slideSpeed,\n unmountOnExit: true\n }, safeRest(rest)), children);\n};\nvar bezier = 'cubic-bezier(0, 0, 0, 1)';\nvar useStyles = createMemoStyles({\n wrenchZoom: function (_a) {\n var timeout = _a.timeout;\n return {\n '&$enterActive': {\n transition: \"transform \".concat(timeout, \"ms \").concat(bezier, \", opacity 100ms linear\")\n },\n '&$exitActive': {\n transition: \"transform \".concat(timeout, \"ms \").concat(bezier, \", opacity 50ms linear 50ms\")\n }\n };\n },\n enter: {\n opacity: '0',\n transform: 'scale(0.8)'\n },\n enterActive: {\n opacity: '1',\n transform: 'scale(1)'\n },\n exit: {\n opacity: '1',\n transform: 'scale(1)'\n },\n exitActive: {\n opacity: '0',\n transform: 'scale(0.8)'\n }\n});\nvar Zoom = function (_a) {\n var children = _a.children,\n _b = _a.timeout,\n timeout = _b === void 0 ? 250 : _b,\n rest = __rest(_a, [\"children\", \"timeout\"]);\n var _c = useStyles({\n timeout: timeout\n }),\n wrenchZoom = _c.wrenchZoom,\n animationClasses = __rest(_c, [\"wrenchZoom\"]);\n return React.createElement(CSSTransition, __assign({\n className: wrenchZoom,\n classNames: __assign({}, animationClasses),\n timeout: timeout,\n unmountOnExit: true\n }, safeRest(rest)), children);\n};\nvar MOTION_SPEEDS = ['slow', 'normal', 'fast'];\nvar MOTION_DIRECTIONS = ['up', 'right', 'down', 'left'];\nvar MOTION_DISTANCES = ['normal', 'near', 'far'];\nexport { Fade, MOTION_DIRECTIONS, MOTION_DISTANCES, MOTION_SPEEDS, Slide, Zoom };","import React, { useState, useEffect } from 'react';\nimport { createMemoStyles, safeRest } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n palette = theme.palette,\n type = theme.type,\n motion = theme.motion;\n var width = function (s) {\n return {\n xs: spacing[4],\n sm: spacing[6],\n md: spacing[8],\n lg: spacing[10]\n }[s];\n };\n var font = function (s) {\n return {\n xs: type.fontSize.bodySm,\n sm: type.fontSize.bodySm,\n md: type.fontSize.body,\n lg: type.fontSize.pageTitle\n }[s];\n };\n var fontWeight = function (s) {\n return {\n xs: type.fontWeight.regular,\n sm: type.fontWeight.regular,\n md: type.fontWeight.medium,\n lg: type.fontWeight.medium\n }[s];\n };\n var height = width;\n var rotate = {\n '@keyframes rotate': {\n '100%': {\n transform: 'rotate(360deg)'\n }\n }\n };\n var stretch = {\n '@keyframes stretch': {\n '0%': {\n strokeDasharray: '339.292, 339.292',\n strokeDashoffset: '203.57519999999997',\n animationTimingFunction: 'cubic-bezier(0.3, 0, 1, 1)'\n },\n '40%': {\n strokeDasharray: '339.292, 339.292',\n strokeDashoffset: '253.57519999999997',\n animationTimingFunction: 'cubic-bezier(0, 0, 0.9, 1)'\n },\n '65%': {\n strokeDashoffset: '303.57519999999997'\n },\n '100%': {\n strokeDashoffset: '203.57519999999997'\n }\n }\n };\n var fillColor = function (color) {\n return color === 'dark' || color === 'light' ? palette.text[color] : palette[color].main;\n };\n var bgColor = function (color) {\n if (color === 'dark') {\n return palette.transparent.dark;\n }\n return color === 'light' ? palette.transparent.light : palette.muted.main;\n };\n var progressCircleStyles = __assign(__assign(__assign({}, rotate), stretch), {\n wrenchProgressCircle: function (_a) {\n var size = _a.size,\n continuous = _a.continuous;\n return {\n display: 'inline-block',\n position: 'relative',\n width: width(size),\n height: height(size),\n fill: 'none',\n '-webkit-transform': continuous && 'translate3d(0,0,0)'\n };\n },\n wrenchCirclePath: function () {\n return {\n transform: 'rotate(-90deg)'\n };\n },\n wrenchCirclePathGroup: function (_a) {\n var continuous = _a.continuous;\n return {\n animation: continuous && '$rotate 1s linear infinite',\n transformOrigin: continuous && 'center center'\n };\n },\n wrenchCirclePathBorder: function (_a) {\n var color = _a.color;\n return {\n stroke: bgColor(color)\n };\n },\n wrenchCirclePathFill: function (_a) {\n var color = _a.color,\n continuous = _a.continuous,\n animateOnLoad = _a.animateOnLoad;\n return {\n transition: animateOnLoad && \"all 1s \".concat(motion.curve.ease),\n stroke: fillColor(color),\n strokeLinecap: 'round',\n strokeDasharray: continuous && '339.292, 339.292',\n strokeDashoffset: continuous && '203.57519999999997',\n animation: continuous && '$stretch 1s infinite',\n transformOrigin: continuous && 'center center'\n };\n },\n wrenchCircleDisplay: function (_a) {\n var size = _a.size;\n return {\n position: 'absolute',\n top: '0',\n left: '0',\n width: width(size),\n height: height(size),\n fontSize: font(size),\n fontWeight: fontWeight(size),\n display: 'inline-flex',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center'\n };\n }\n });\n return progressCircleStyles;\n});\nvar ProgressCircle = function (_a) {\n var children = _a.children,\n _b = _a.size,\n size = _b === void 0 ? 'md' : _b,\n percent = _a.percent,\n _c = _a.color,\n color = _c === void 0 ? 'success' : _c,\n _d = _a.continuous,\n continuous = _d === void 0 ? false : _d,\n valueMax = _a.valueMax,\n valueMin = _a.valueMin,\n valueText = _a.valueText,\n _e = _a.animateOnLoad,\n animateOnLoad = _e === void 0 ? false : _e,\n rest = __rest(_a, [\"children\", \"size\", \"percent\", \"color\", \"continuous\", \"valueMax\", \"valueMin\", \"valueText\", \"animateOnLoad\"]);\n var initialPercent = animateOnLoad ? 0 : percent;\n var _f = useState(initialPercent),\n p = _f[0],\n setPercent = _f[1];\n useEffect(function () {\n return setPercent(percent);\n }, [percent]);\n var _g = useStyles({\n color: color,\n size: size,\n continuous: continuous,\n animateOnLoad: animateOnLoad\n }),\n wrenchProgressCircle = _g.wrenchProgressCircle,\n wrenchCirclePath = _g.wrenchCirclePath,\n wrenchCirclePathGroup = _g.wrenchCirclePathGroup,\n wrenchCirclePathBorder = _g.wrenchCirclePathBorder,\n wrenchCirclePathFill = _g.wrenchCirclePathFill,\n wrenchCircleDisplay = _g.wrenchCircleDisplay;\n var circleOptions = {\n lg: {\n strokeWidth: 8,\n radius: 56\n },\n sm: {\n strokeWidth: 16,\n radius: 52\n },\n md: {\n strokeWidth: 12,\n radius: 54\n },\n xs: {\n strokeWidth: 20,\n radius: 50\n }\n };\n var _h = circleOptions[size],\n strokeWidth = _h.strokeWidth,\n radius = _h.radius;\n var circumference = radius * 2 * Math.PI;\n var valueNow = p != null ? p : undefined;\n var strokeDasharray = !continuous ? \"\".concat(circumference, \" \").concat(circumference) : undefined;\n var strokeDashoffset = !continuous && p != null ? circumference * ((100 - p) / 100) : undefined;\n return React.createElement(\"div\", __assign({\n className: wrenchProgressCircle,\n role: \"progressbar\",\n \"aria-valuenow\": valueNow,\n \"aria-valuemax\": valueMax,\n \"aria-valuemin\": valueMin,\n \"aria-valuetext\": valueText\n }, safeRest(rest)), React.createElement(\"svg\", {\n className: wrenchCirclePath,\n role: \"img\",\n \"aria-label\": \"Progress\",\n viewBox: \"0 0 120 120\"\n }, React.createElement(\"g\", {\n className: wrenchCirclePathGroup\n }, React.createElement(\"circle\", {\n className: wrenchCirclePathBorder,\n cx: \"60\",\n cy: \"60\",\n r: radius,\n strokeWidth: strokeWidth\n }), React.createElement(\"circle\", {\n className: wrenchCirclePathFill,\n cx: \"60\",\n cy: \"60\",\n r: radius,\n strokeWidth: strokeWidth,\n strokeDasharray: strokeDasharray,\n strokeDashoffset: strokeDashoffset\n }))), children && React.createElement(\"div\", {\n className: wrenchCircleDisplay\n }, children));\n};\nvar PROGRESS_CIRCLE_COLORS = ['primary', 'secondary', 'success', 'warning', 'error', 'upgrade', 'info', 'dark', 'light'];\nvar PROGRESS_CIRCLE_SIZES = ['xs', 'sm', 'md', 'lg'];\nexport { PROGRESS_CIRCLE_COLORS, PROGRESS_CIRCLE_SIZES, ProgressCircle };","import { createMemoStyles } from '@wds/utils';\n\n/// ///////////////////////// GENERIC START ////////////////////////////\nvar SIZES = ['xs', 'sm', 'md', 'lg', 'xl'];\n/// ///////////////////////// PALETTE START ////////////////////////////\nvar SEMANTIC_COLORS = ['primary', 'secondary', 'success', 'warning', 'upgrade', 'error', 'info', 'muted'];\nvar LINK_COLORS = ['link'];\nvar TYPE_COLORS = ['dark', 'light', 'darkMuted', 'lightMuted', 'link'];\nvar BACKGROUND_COLORS = ['main', 'light', 'dark', 'overlay', 'accent'];\nvar BACKGROUND_SEMANTIC_COLORS = ['primary', 'success', 'warning', 'error', 'info', 'upgrade', 'muted'];\nvar BORDER_COLORS = ['main', 'active', 'hover', 'muted'];\nvar DATA_COLORS = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];\n/// ///////////////////////// FONT TYPE START ////////////////////////////\nvar FONT_FAMILY_KEYS = ['base', 'headings', 'icon'];\nvar FONT_SIZES = ['caption', 'bodySm', 'body', 'cardTitle', 'sectionTitleSm', 'sectionTitle', 'pageTitle', 'hero2', 'hero1'];\nvar FONT_WEIGHTS = ['light', 'regular', 'medium'];\nvar FONT_ASSETS = ['base', 'path', 'name', 'versions'];\n/// ///////////////////////// SPACING START ////////////////////////////\nvar SPACING_KEYS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar BORDER_KEYS = ['main', 'hover', 'active', 'muted', 'dark', 'light'];\n/// ///////////////////////// RADIUS START ////////////////////////////\nvar RADIUS_KEYS = ['zero', 'small', 'medium', 'large'];\n/// ///////////////////////// SHADOW START ////////////////////////////\nvar SHADOW_KEYS = ['none', 'sky', 'space'];\n/// ///////////////////////// ELEVATION START ////////////////////////////\nvar ELEVATION_KEYS = ['none', 'sky', 'space'];\n/// ///////////////////////// DATA VIS ////////////////////////////\nvar dataTransform = function (arr) {\n return Object.freeze(arr.map(function (x) {\n return \"data-\".concat(x);\n }));\n};\nvar DATA_VIS_COLORS = dataTransform(DATA_COLORS);\nvar getDataColor = function (s) {\n return s.split('-')[1];\n};\n/// ///////////////////////// HELPERS ////////////////////////////\nvar readOnlyIncludes = function (arr, el) {\n return arr.includes(el);\n};\n/// ///////////////////////// TYPE GUARDS ////////////////////////////\nvar isColorShape = function (c) {\n return typeof c === 'object' && 'main' in c;\n};\nvar isSemanticColor = function (c) {\n return readOnlyIncludes(SEMANTIC_COLORS, c);\n};\nvar isLinkColor = function (c) {\n return c === 'link';\n};\nvar isTypeColor = function (c) {\n return readOnlyIncludes(TYPE_COLORS, c);\n};\nvar isBackgroundColor = function (c) {\n return readOnlyIncludes(BACKGROUND_COLORS, c);\n};\nvar isBackgroundSemanticColor = function (c) {\n return readOnlyIncludes(BACKGROUND_SEMANTIC_COLORS, c);\n};\nvar isBorderColor = function (c) {\n return readOnlyIncludes(BORDER_COLORS, c);\n};\nvar isDataColor = function (c) {\n return readOnlyIncludes(DATA_COLORS, c);\n};\nvar isDataVisColor = function (c) {\n return readOnlyIncludes(DATA_VIS_COLORS, c);\n};\nvar getColor = function (palette, color, _a, onDark) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.semanticKey,\n semanticKey = _c === void 0 ? 'main' : _c,\n _d = _b.semanticBackgroundKey,\n semanticBackgroundKey = _d === void 0 ? 'light' : _d,\n _e = _b.colorType,\n colorType = _e === void 0 ? 'semantic' : _e,\n _f = _b.semanticOnDarkKey,\n semanticOnDarkKey = _f === void 0 ? 'onDark' : _f,\n fallback = _b.fallback;\n var c = fallback !== null && fallback !== void 0 ? fallback : 'currentcolor';\n if (!color) return c;\n var cType = colorType;\n // if passed a portion of the Pallette that is the semantic color use that.\n if (isColorShape(color)) {\n c = color[semanticKey];\n } else {\n // Check Semantic\n if (cType === 'semantic') {\n if (onDark && isSemanticColor(color)) {\n c = palette[color][semanticOnDarkKey];\n } else if (isSemanticColor(color)) {\n c = palette[color][semanticKey];\n } else {\n cType = 'link';\n }\n }\n // Check type and get Color\n if (cType === 'link') {\n if (isLinkColor(color)) {\n c = palette[color][semanticKey];\n } else {\n cType = 'text';\n }\n }\n if (cType === 'text') {\n if (isTypeColor(color)) {\n c = palette[cType][color];\n } else {\n cType = 'background';\n }\n }\n if (cType === 'background') {\n if (isBackgroundColor(color)) {\n c = palette[cType][color];\n } else if (isBackgroundSemanticColor(color)) {\n c = palette[cType][color][semanticBackgroundKey];\n } else {\n cType = 'border';\n }\n }\n if (cType === 'border') {\n if (isBorderColor(color)) {\n c = palette[cType][color];\n } else {\n cType = 'data';\n }\n }\n if (cType === 'data') {\n if (isDataVisColor(color)) {\n c = palette[cType][getDataColor(color)];\n } else if (isDataColor(color)) {\n c = palette[cType][color];\n }\n }\n }\n return c;\n};\nvar name$1 = 'Wrench';\nvar basePath$1 = process.env.NODE_ENV !== 'production' ? 'cdn.mtassets.net' : 'cdn.smassets.net';\nvar fontSize = {\n caption: 12,\n bodySm: 14,\n body: 16,\n cardTitle: 20,\n sectionTitleSm: 24,\n sectionTitle: 28,\n pageTitle: 32,\n hero1: 48,\n hero2: 40\n};\nvar fontWeight = {\n light: 300,\n regular: 400,\n medium: 500\n};\nvar fontFamily = {\n base: \"'National 2', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', '游ゴシック', '游ゴシック体', YuGothic, 'Yu Gothic', 'MS ゴシック', 'MS Gothic', sans-serif\",\n headings: \"'National 2', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', '游ゴシック', '游ゴシック体', YuGothic, 'Yu Gothic', 'MS ゴシック', 'MS Gothic', sans-serif\",\n icon: 'Mateo'\n};\nvar assets = {\n base: \"https://\".concat(basePath$1, \"/assets/wds-core_4_20_1\"),\n path: '/fonts/National2Web',\n name: \"'National 2'\",\n version: 2\n};\nvar type$1 = {\n assets: assets,\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight\n};\nvar palette$1 = {\n transparent: {\n clear: 'transparent',\n dark: 'rgba(51,62,72,0.2)',\n light: 'rgba(255, 255, 255, 0.2)'\n },\n primary: {\n main: '#00BF6F',\n contrast: '#FFFFFF',\n onDark: '#00BF6F'\n },\n secondary: {\n main: '#6B787F',\n contrast: '#FFFFFF',\n onDark: '#D0D2D3'\n },\n success: {\n main: '#00BF6F',\n contrast: '#FFFFFF',\n onDark: '#00BF6F'\n },\n warning: {\n main: '#F05B24',\n contrast: '#FFFFFF',\n onDark: '#F48B64'\n },\n error: {\n main: '#AC145A',\n contrast: '#FFFFFF',\n onDark: '#D993B3'\n },\n info: {\n main: '#2DCCD3',\n contrast: '#333E48',\n onDark: '#2DCCD3'\n },\n upgrade: {\n main: '#F9BE00',\n contrast: '#333E48',\n onDark: '#F9BE00'\n },\n muted: {\n main: '#D0D2D3',\n contrast: '#333E48',\n onDark: '#D0D2D3'\n },\n link: {\n main: '#007FAA',\n contrast: '#FFFFFF',\n onDark: '#63B1CB'\n },\n text: {\n dark: '#333E48',\n light: '#FFFFFF',\n darkMuted: '#6B787F',\n lightMuted: '#D0D2D3',\n link: '#007FAA'\n },\n background: {\n main: '#F7F8FA',\n light: '#FFFFFF',\n dark: '#333E48',\n overlay: 'rgba(107, 120, 127, .86)',\n accent: '#EDEEEE',\n primary: {\n light: '#E5F9F1',\n medium: '#ADEBD1'\n },\n success: {\n light: '#E5F9F1',\n medium: '#ADEBD1'\n },\n warning: {\n light: '#FDEBE5',\n medium: '#FBD8CA'\n },\n error: {\n light: '#F5E3EB',\n medium: '#EBC7D7'\n },\n info: {\n light: '#E6F9FA',\n medium: '#CDF3F4'\n },\n upgrade: {\n light: '#FEF2CC',\n medium: '#FDE599'\n },\n muted: {\n light: '#EDEEEE',\n medium: '#EDEEEE'\n }\n },\n border: {\n main: '#D0D2D3',\n active: '#404040',\n hover: '#757575',\n muted: '#EDEEEE'\n },\n data: {\n one: '#507CB6',\n two: '#00BF6F',\n three: '#6BC8CD',\n four: '#F9BE00',\n five: '#7D5E90',\n six: '#DB4D5C',\n seven: '#768086',\n eight: '#D25F90',\n nine: '#A38364',\n ten: '#FF8B4F'\n }\n};\nvar spacing$1 = {\n 1: 4,\n 2: 8,\n 3: 12,\n 4: 16,\n 5: 24,\n 6: 32,\n 7: 48,\n 8: 64,\n 9: 96,\n 10: 128\n};\nvar motion$1 = {\n curve: {\n enter: 'cubic-bezier(0, 0, 0, 1)',\n exit: 'cubic-bezier(1, 0, 1, 1)',\n ease: 'cubic-bezier(.2, 0, .1, 1)',\n easeReverse: 'cubic-bezier(.9, 0, .8, 1)',\n bounceStart: 'cubic-bezier(0, 0, .1, 1)',\n bounceEnd: 'cubic-bezier(.2, 0, 0, 1)'\n },\n fade: {\n speed: {\n slow: 300,\n normal: 200,\n fast: 100\n }\n },\n slide: {\n speed: {\n slow: 450,\n normal: 350,\n fast: 250\n },\n distance: {\n normal: 25,\n near: 5,\n far: 75\n }\n }\n};\nvar border$1 = {\n main: [1, 'solid', getColor(palette$1, 'main', {\n colorType: 'border'\n })],\n hover: [1, 'solid', getColor(palette$1, 'hover', {\n colorType: 'border'\n })],\n active: [1, 'solid', getColor(palette$1, 'active', {\n colorType: 'border'\n })],\n muted: [1, 'solid', getColor(palette$1, 'muted', {\n colorType: 'border'\n })],\n dark: [1, 'solid', getColor(palette$1, 'dark', {\n colorType: 'background'\n })],\n light: [2, 'solid', getColor(palette$1, 'light', {\n colorType: 'background'\n })]\n};\nvar radius$1 = {\n zero: 0,\n small: 4,\n medium: 24,\n large: '50%'\n};\nvar shadow$1 = {\n none: 'none',\n sky: '0 2px 4px 0 rgba(0, 0, 0, 0.14)',\n space: '0 2px 8px 0 rgba(0,0,0,0.14)'\n};\nvar breakpoints$1 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\nvar iconSize$1 = {\n sm: 13,\n md: 16,\n lg: 24,\n xl: 32\n};\nvar elevation$1 = {\n none: 0,\n sky: 999,\n space: 9999\n};\n/**\n * Exported theme is the Surveymonkey theme.\n * See our storybook for more info on the theme shape/breakdown\n * @see {@link [Storybook](http://storybook.jungle.tech/wrench/index.html?path=/story/intro-theme-breakdown--page)}\n */\nvar theme$1 = {\n name: name$1,\n type: type$1,\n palette: palette$1,\n spacing: spacing$1,\n motion: motion$1,\n border: border$1,\n radius: radius$1,\n shadow: shadow$1,\n breakpoints: breakpoints$1,\n iconSize: iconSize$1,\n elevation: elevation$1\n};\nvar name = 'Elevate';\nvar basePath = process.env.NODE_ENV !== 'production' ? 'cdn.mtassets.net' : 'cdn.smassets.net';\nvar type = {\n fontFamily: {\n base: \"'National 2', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', '游ゴシック', '游ゴシック体', YuGothic, 'Yu Gothic', 'MS ゴシック', 'MS Gothic', sans-serif\",\n headings: \"'National 2', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', '游ゴシック', '游ゴシック体', YuGothic, 'Yu Gothic', 'MS ゴシック', 'MS Gothic', sans-serif\",\n icon: 'Mateo'\n },\n fontSize: {\n caption: 12,\n bodySm: 14,\n body: 16,\n cardTitle: 20,\n sectionTitleSm: 24,\n sectionTitle: 28,\n pageTitle: 32,\n hero1: 48,\n hero2: 40\n },\n fontWeight: {\n light: 300,\n regular: 400,\n medium: 500\n },\n assets: {\n base: \"https://\".concat(basePath, \"/assets/wds-core_4_20_1\"),\n path: '/fonts/National2Web',\n name: \"'National 2'\",\n version: 2\n }\n};\nvar palette = {\n transparent: {\n clear: 'transparent',\n dark: 'rgba(64,64,64,0.2)',\n light: 'rgba(255, 255, 255, 0.2)'\n },\n primary: {\n main: '#008323',\n contrast: '#FFFFFF',\n onDark: '#73BB86'\n },\n secondary: {\n main: '#757575',\n contrast: '#FFFFFF',\n onDark: '#D0D0D0'\n },\n success: {\n main: '#008323',\n contrast: '#FFFFFF',\n onDark: '#73BB86'\n },\n warning: {\n main: '#F7B500',\n contrast: '#404040',\n onDark: '#FAD366'\n },\n error: {\n main: '#CC0000',\n contrast: '#FFFFFF',\n onDark: '#EA9494'\n },\n info: {\n main: '#2CB2F1',\n contrast: '#000000',\n onDark: '#56C1F4'\n },\n upgrade: {\n main: '#FFE11B',\n contrast: '#404040',\n onDark: '#FFF3A4'\n },\n muted: {\n main: '#D0D0D0',\n contrast: '#404040',\n onDark: '#D0D0D0'\n },\n link: {\n main: '#0A7CC1',\n contrast: '#FFFFFF',\n onDark: '#71B3DB'\n },\n text: {\n dark: '#404040',\n light: '#FFFFFF',\n darkMuted: '#757575',\n lightMuted: '#EFEFEF',\n link: '#0A7CC1'\n },\n background: {\n main: '#f7f7f7',\n light: '#ffffff',\n dark: '#404040',\n overlay: 'rgba(117, 117, 117, .86)',\n accent: '#EFEFEF',\n primary: {\n light: '#E5F3E9',\n medium: '#C2E1CA'\n },\n success: {\n light: '#E5F3E9',\n medium: '#C2E1CA'\n },\n warning: {\n light: '#FFEEC0',\n medium: '#FCE39E'\n },\n error: {\n light: '#FBEAEA',\n medium: '#F4C7C7'\n },\n info: {\n light: '#DCF0FF',\n medium: '#C4E0F0'\n },\n upgrade: {\n light: '#FFF9D1',\n medium: '#FFF3A4'\n },\n muted: {\n light: '#EFEFEF',\n medium: '#EFEFEF'\n }\n },\n border: {\n main: '#d0d0d0',\n active: '#404040',\n hover: '#757575',\n muted: '#EDEEEE'\n },\n data: {\n one: '#507CB6',\n two: '#00BF6F',\n three: '#6BC8CD',\n four: '#F9BE00',\n five: '#7D5E90',\n six: '#DB4D5C',\n seven: '#768086',\n eight: '#D25F90',\n nine: '#A38364',\n ten: '#FF8B4F'\n }\n};\nvar spacing = {\n 1: 4,\n 2: 8,\n 3: 12,\n 4: 16,\n 5: 24,\n 6: 32,\n 7: 48,\n 8: 64,\n 9: 96,\n 10: 128\n};\nvar motion = {\n curve: {\n enter: 'cubic-bezier(0, 0, 0, 1)',\n exit: 'cubic-bezier(1, 0, 1, 1)',\n ease: 'cubic-bezier(.2, 0, .1, 1)',\n easeReverse: 'cubic-bezier(.9, 0, .8, 1)',\n bounceStart: 'cubic-bezier(0, 0, .1, 1)',\n bounceEnd: 'cubic-bezier(.2, 0, 0, 1)'\n },\n fade: {\n speed: {\n slow: 300,\n normal: 200,\n fast: 100\n }\n },\n slide: {\n speed: {\n slow: 450,\n normal: 350,\n fast: 250\n },\n distance: {\n normal: 25,\n near: 5,\n far: 75\n }\n }\n};\ngetColor(palette, 'main', {\n colorType: 'border'\n});\nvar border = {\n main: [1, 'solid', getColor(palette, 'main', {\n colorType: 'border'\n })],\n hover: [1, 'solid', getColor(palette, 'hover', {\n colorType: 'border'\n })],\n active: [1, 'solid', getColor(palette, 'active', {\n colorType: 'border'\n })],\n muted: [1, 'solid', getColor(palette, 'muted', {\n colorType: 'border'\n })],\n dark: [1, 'solid', getColor(palette, 'dark', {\n colorType: 'background'\n })],\n light: [2, 'solid', getColor(palette, 'light', {\n colorType: 'background'\n })]\n};\nvar radius = {\n zero: 0,\n small: 4,\n medium: 24,\n large: '50%'\n};\nvar shadow = {\n none: 'none',\n sky: '0 2px 4px 0 rgba(0, 0, 0, 0.14)',\n space: '0 2px 8px 0 rgba(0, 0, 0, 0.14)'\n};\nvar breakpoints = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\nvar iconSize = {\n sm: 13,\n md: 16,\n lg: 24,\n xl: 32\n};\nvar elevation = {\n none: 0,\n sky: 999,\n space: 9999\n};\n/**\n * Exported theme is the Momentive theme.\n * See our storybook for more info on the theme shape/breakdown\n * @see {@link [Storybook](http://storybook.jungle.tech/wrench/index.html?path=/story/intro-theme-breakdown--page)}\n */\nvar theme = {\n name: name,\n type: type,\n palette: palette,\n spacing: spacing,\n motion: motion,\n border: border,\n radius: radius,\n shadow: shadow,\n breakpoints: breakpoints,\n iconSize: iconSize,\n elevation: elevation\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nvar react = {\n exports: {}\n};\nvar react_production_min = {};\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\nvar objectAssign;\nvar hasRequiredObjectAssign;\nfunction requireObjectAssign() {\n if (hasRequiredObjectAssign) return objectAssign;\n hasRequiredObjectAssign = 1;\n /* eslint-disable no-unused-vars */\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n\n // Detect buggy property enumeration order in older V8 versions.\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n }\n objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n return objectAssign;\n}\n\n/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReact_production_min;\nfunction requireReact_production_min() {\n if (hasRequiredReact_production_min) return react_production_min;\n hasRequiredReact_production_min = 1;\n var l = requireObjectAssign(),\n n = 60103,\n p = 60106;\n react_production_min.Fragment = 60107;\n react_production_min.StrictMode = 60108;\n react_production_min.Profiler = 60114;\n var q = 60109,\n r = 60110,\n t = 60112;\n react_production_min.Suspense = 60113;\n var u = 60115,\n v = 60116;\n if (\"function\" === typeof Symbol && Symbol.for) {\n var w = Symbol.for;\n n = w(\"react.element\");\n p = w(\"react.portal\");\n react_production_min.Fragment = w(\"react.fragment\");\n react_production_min.StrictMode = w(\"react.strict_mode\");\n react_production_min.Profiler = w(\"react.profiler\");\n q = w(\"react.provider\");\n r = w(\"react.context\");\n t = w(\"react.forward_ref\");\n react_production_min.Suspense = w(\"react.suspense\");\n u = w(\"react.memo\");\n v = w(\"react.lazy\");\n }\n var x = \"function\" === typeof Symbol && Symbol.iterator;\n function y(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = x && a[x] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n }\n function z(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n }\n var A = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n B = {};\n function C(a, b, c) {\n this.props = a;\n this.context = b;\n this.refs = B;\n this.updater = c || A;\n }\n C.prototype.isReactComponent = {};\n C.prototype.setState = function (a, b) {\n if (\"object\" !== typeof a && \"function\" !== typeof a && null != a) throw Error(z(85));\n this.updater.enqueueSetState(this, a, b, \"setState\");\n };\n C.prototype.forceUpdate = function (a) {\n this.updater.enqueueForceUpdate(this, a, \"forceUpdate\");\n };\n function D() {}\n D.prototype = C.prototype;\n function E(a, b, c) {\n this.props = a;\n this.context = b;\n this.refs = B;\n this.updater = c || A;\n }\n var F = E.prototype = new D();\n F.constructor = E;\n l(F, C.prototype);\n F.isPureReactComponent = !0;\n var G = {\n current: null\n },\n H = Object.prototype.hasOwnProperty,\n I = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n };\n function J(a, b, c) {\n var e,\n d = {},\n k = null,\n h = null;\n if (null != b) for (e in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = \"\" + b.key), b) H.call(b, e) && !I.hasOwnProperty(e) && (d[e] = b[e]);\n var g = arguments.length - 2;\n if (1 === g) d.children = c;else if (1 < g) {\n for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2];\n d.children = f;\n }\n if (a && a.defaultProps) for (e in g = a.defaultProps, g) void 0 === d[e] && (d[e] = g[e]);\n return {\n $$typeof: n,\n type: a,\n key: k,\n ref: h,\n props: d,\n _owner: G.current\n };\n }\n function K(a, b) {\n return {\n $$typeof: n,\n type: a.type,\n key: b,\n ref: a.ref,\n props: a.props,\n _owner: a._owner\n };\n }\n function L(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === n;\n }\n function escape(a) {\n var b = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + a.replace(/[=:]/g, function (a) {\n return b[a];\n });\n }\n var M = /\\/+/g;\n function N(a, b) {\n return \"object\" === typeof a && null !== a && null != a.key ? escape(\"\" + a.key) : b.toString(36);\n }\n function O(a, b, c, e, d) {\n var k = typeof a;\n if (\"undefined\" === k || \"boolean\" === k) a = null;\n var h = !1;\n if (null === a) h = !0;else switch (k) {\n case \"string\":\n case \"number\":\n h = !0;\n break;\n case \"object\":\n switch (a.$$typeof) {\n case n:\n case p:\n h = !0;\n }\n }\n if (h) return h = a, d = d(h), a = \"\" === e ? \".\" + N(h, 0) : e, Array.isArray(d) ? (c = \"\", null != a && (c = a.replace(M, \"$&/\") + \"/\"), O(d, b, c, \"\", function (a) {\n return a;\n })) : null != d && (L(d) && (d = K(d, c + (!d.key || h && h.key === d.key ? \"\" : (\"\" + d.key).replace(M, \"$&/\") + \"/\") + a)), b.push(d)), 1;\n h = 0;\n e = \"\" === e ? \".\" : e + \":\";\n if (Array.isArray(a)) for (var g = 0; g < a.length; g++) {\n k = a[g];\n var f = e + N(k, g);\n h += O(k, b, c, f, d);\n } else if (f = y(a), \"function\" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) k = k.value, f = e + N(k, g++), h += O(k, b, c, f, d);else if (\"object\" === k) throw b = \"\" + a, Error(z(31, \"[object Object]\" === b ? \"object with keys {\" + Object.keys(a).join(\", \") + \"}\" : b));\n return h;\n }\n function P(a, b, c) {\n if (null == a) return a;\n var e = [],\n d = 0;\n O(a, e, \"\", \"\", function (a) {\n return b.call(c, a, d++);\n });\n return e;\n }\n function Q(a) {\n if (-1 === a._status) {\n var b = a._result;\n b = b();\n a._status = 0;\n a._result = b;\n b.then(function (b) {\n 0 === a._status && (b = b.default, a._status = 1, a._result = b);\n }, function (b) {\n 0 === a._status && (a._status = 2, a._result = b);\n });\n }\n if (1 === a._status) return a._result;\n throw a._result;\n }\n var R = {\n current: null\n };\n function S() {\n var a = R.current;\n if (null === a) throw Error(z(321));\n return a;\n }\n var T = {\n ReactCurrentDispatcher: R,\n ReactCurrentBatchConfig: {\n transition: 0\n },\n ReactCurrentOwner: G,\n IsSomeRendererActing: {\n current: !1\n },\n assign: l\n };\n react_production_min.Children = {\n map: P,\n forEach: function (a, b, c) {\n P(a, function () {\n b.apply(this, arguments);\n }, c);\n },\n count: function (a) {\n var b = 0;\n P(a, function () {\n b++;\n });\n return b;\n },\n toArray: function (a) {\n return P(a, function (a) {\n return a;\n }) || [];\n },\n only: function (a) {\n if (!L(a)) throw Error(z(143));\n return a;\n }\n };\n react_production_min.Component = C;\n react_production_min.PureComponent = E;\n react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = T;\n react_production_min.cloneElement = function (a, b, c) {\n if (null === a || void 0 === a) throw Error(z(267, a));\n var e = l({}, a.props),\n d = a.key,\n k = a.ref,\n h = a._owner;\n if (null != b) {\n void 0 !== b.ref && (k = b.ref, h = G.current);\n void 0 !== b.key && (d = \"\" + b.key);\n if (a.type && a.type.defaultProps) var g = a.type.defaultProps;\n for (f in b) H.call(b, f) && !I.hasOwnProperty(f) && (e[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);\n }\n var f = arguments.length - 2;\n if (1 === f) e.children = c;else if (1 < f) {\n g = Array(f);\n for (var m = 0; m < f; m++) g[m] = arguments[m + 2];\n e.children = g;\n }\n return {\n $$typeof: n,\n type: a.type,\n key: d,\n ref: k,\n props: e,\n _owner: h\n };\n };\n react_production_min.createContext = function (a, b) {\n void 0 === b && (b = null);\n a = {\n $$typeof: r,\n _calculateChangedBits: b,\n _currentValue: a,\n _currentValue2: a,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n a.Provider = {\n $$typeof: q,\n _context: a\n };\n return a.Consumer = a;\n };\n react_production_min.createElement = J;\n react_production_min.createFactory = function (a) {\n var b = J.bind(null, a);\n b.type = a;\n return b;\n };\n react_production_min.createRef = function () {\n return {\n current: null\n };\n };\n react_production_min.forwardRef = function (a) {\n return {\n $$typeof: t,\n render: a\n };\n };\n react_production_min.isValidElement = L;\n react_production_min.lazy = function (a) {\n return {\n $$typeof: v,\n _payload: {\n _status: -1,\n _result: a\n },\n _init: Q\n };\n };\n react_production_min.memo = function (a, b) {\n return {\n $$typeof: u,\n type: a,\n compare: void 0 === b ? null : b\n };\n };\n react_production_min.useCallback = function (a, b) {\n return S().useCallback(a, b);\n };\n react_production_min.useContext = function (a, b) {\n return S().useContext(a, b);\n };\n react_production_min.useDebugValue = function () {};\n react_production_min.useEffect = function (a, b) {\n return S().useEffect(a, b);\n };\n react_production_min.useImperativeHandle = function (a, b, c) {\n return S().useImperativeHandle(a, b, c);\n };\n react_production_min.useLayoutEffect = function (a, b) {\n return S().useLayoutEffect(a, b);\n };\n react_production_min.useMemo = function (a, b) {\n return S().useMemo(a, b);\n };\n react_production_min.useReducer = function (a, b, c) {\n return S().useReducer(a, b, c);\n };\n react_production_min.useRef = function (a) {\n return S().useRef(a);\n };\n react_production_min.useState = function (a) {\n return S().useState(a);\n };\n react_production_min.version = \"17.0.2\";\n return react_production_min;\n}\nvar react_development = {};\n\n/** @license React v17.0.2\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReact_development;\nfunction requireReact_development() {\n if (hasRequiredReact_development) return react_development;\n hasRequiredReact_development = 1;\n (function (exports) {\n if (process.env.NODE_ENV !== \"production\") {\n (function () {\n var _assign = requireObjectAssign();\n\n // TODO: this is special because it gets imported during build.\n var ReactVersion = '17.0.2';\n\n // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n var REACT_ELEMENT_TYPE = 0xeac7;\n var REACT_PORTAL_TYPE = 0xeaca;\n exports.Fragment = 0xeacb;\n exports.StrictMode = 0xeacc;\n exports.Profiler = 0xead2;\n var REACT_PROVIDER_TYPE = 0xeacd;\n var REACT_CONTEXT_TYPE = 0xeace;\n var REACT_FORWARD_REF_TYPE = 0xead0;\n exports.Suspense = 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = 0xead8;\n var REACT_MEMO_TYPE = 0xead3;\n var REACT_LAZY_TYPE = 0xead4;\n var REACT_BLOCK_TYPE = 0xead9;\n var REACT_SERVER_BLOCK_TYPE = 0xeada;\n var REACT_FUNDAMENTAL_TYPE = 0xead5;\n var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\n var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n if (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n exports.StrictMode = symbolFor('react.strict_mode');\n exports.Profiler = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n exports.Suspense = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n symbolFor('react.scope');\n symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n }\n var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n function getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n return null;\n }\n\n /**\n * Keeps track of the current dispatcher.\n */\n var ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n };\n\n /**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\n var ReactCurrentBatchConfig = {\n transition: 0\n };\n\n /**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\n var ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n };\n var ReactDebugCurrentFrame = {};\n var currentExtraStackFrame = null;\n function setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n }\n {\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n if (impl) {\n stack += impl() || '';\n }\n return stack;\n };\n }\n\n /**\n * Used by act() to track whether you're inside an act() scope.\n */\n var IsSomeRendererActing = {\n current: false\n };\n var ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n };\n {\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n }\n\n // by calls to these methods by a Babel plugin.\n //\n // In PROD (or in packages without access to React internals),\n // they are left as they are instead.\n\n function warn(format) {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n printWarning('warn', format, args);\n }\n }\n function error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n printWarning('error', format, args);\n }\n }\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n var didWarnStateUpdateForUnmountedComponent = {};\n function warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n }\n /**\n * This is the abstract API for an update queue.\n */\n\n var ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n };\n var emptyObject = {};\n {\n Object.freeze(emptyObject);\n }\n /**\n * Base class helpers for the updating state of a component.\n */\n\n function Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n }\n Component.prototype.isReactComponent = {};\n /**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\n Component.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");\n }\n }\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n };\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n };\n /**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n }\n function ComponentDummy() {}\n ComponentDummy.prototype = Component.prototype;\n /**\n * Convenience component with default shallow equality check for sCU.\n */\n\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\n pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n _assign(pureComponentPrototype, Component.prototype);\n pureComponentPrototype.isPureReactComponent = true;\n\n // an immutable object with a single mutable value\n function createRef() {\n var refObject = {\n current: null\n };\n {\n Object.seal(refObject);\n }\n return refObject;\n }\n function getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n }\n function getContextName(type) {\n return type.displayName || 'Context';\n }\n function getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n if (typeof type === 'string') {\n return type;\n }\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n case REACT_PORTAL_TYPE:\n return 'Portal';\n case exports.Profiler:\n return 'Profiler';\n case exports.StrictMode:\n return 'StrictMode';\n case exports.Suspense:\n return 'Suspense';\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n return null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n };\n var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n {\n didWarnAboutStringRefs = {};\n }\n function hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n }\n function hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n function defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n function warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n }\n /**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n var ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n return element;\n };\n /**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\n function createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n } // Resolve default props\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n }\n /**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\n function cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n }\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n return ReactElement(element.type, key, ref, self, source, owner, props);\n }\n /**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n function isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n var SEPARATOR = '.';\n var SUBSEPARATOR = ':';\n /**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\n function escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n }\n /**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n var didWarnAboutMaps = false;\n var userProvidedKeyEscapeRegex = /\\/+/g;\n function escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n }\n /**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n function getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n return index.toString(36);\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n var invokeCallback = false;\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n }\n }\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n if (Array.isArray(mappedChild)) {\n var escapedChildKey = '';\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + (\n // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ?\n // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n array.push(mappedChild);\n }\n return 1;\n }\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n didWarnAboutMaps = true;\n }\n }\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = '' + children;\n {\n {\n throw Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). If you meant to render a collection of children, use an array instead.\");\n }\n }\n }\n }\n return subtreeCount;\n }\n\n /**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\n function mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n /**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n function countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n\n return n;\n }\n\n /**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\n function forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n }\n /**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n function toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n }\n /**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n function onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error(\"React.Children.only expected to receive a single React element child.\");\n }\n }\n return children;\n }\n function createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n error('Rendering is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?');\n }\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n error('Rendering is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?');\n }\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n return context;\n }\n var Uninitialized = -1;\n var Pending = 0;\n var Resolved = 1;\n var Rejected = 2;\n function lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n thenable.then(function (moduleObject) {\n if (payload._status === Pending) {\n var defaultExport = moduleObject.default;\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' +\n // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n } // Transition to the next state.\n\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = defaultExport;\n }\n }, function (error) {\n if (payload._status === Pending) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n }\n if (payload._status === Resolved) {\n return payload._result;\n } else {\n throw payload._result;\n }\n }\n function lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: -1,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n return lazyType;\n }\n function forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n if (render.displayName == null) {\n render.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n\n // Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n\n function isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) {\n return true;\n }\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n return false;\n }\n function memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n if (type.displayName == null) {\n type.displayName = name;\n }\n }\n });\n }\n return elementType;\n }\n function resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n if (!(dispatcher !== null)) {\n {\n throw Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n return dispatcher;\n }\n function useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n return dispatcher.useContext(Context, unstable_observedBits);\n }\n function useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n }\n function useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n }\n function useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n }\n function useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n }\n function useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n }\n function useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n }\n function useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n }\n function useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n }\n function useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n }\n\n // Helpers to patch console.logs to avoid logging during side-effect free\n // replaying on render function. This currently only patches the object\n // lazily which won't cover if the log function was extracted eagerly.\n // We could also eagerly patch the method.\n var disabledDepth = 0;\n var prevLog;\n var prevInfo;\n var prevWarn;\n var prevError;\n var prevGroup;\n var prevGroupCollapsed;\n var prevGroupEnd;\n function disabledLog() {}\n disabledLog.__reactDisabledLog = true;\n function disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n }\n function reenableLogs() {\n {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n }\n var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\n var prefix;\n function describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n return '\\n' + prefix + name;\n }\n }\n var reentry = false;\n var componentFrameCache;\n {\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n }\n function describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n {\n var frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally {\n reentry = false;\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n }\n function describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n }\n function shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n }\n function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n if (type == null) {\n return '';\n }\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n switch (type) {\n case exports.Suspense:\n return describeBuiltInComponentFrame('Suspense');\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n return '';\n }\n var loggedTypeFailures = {};\n var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n function setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n }\n function checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n setCurrentlyValidatingElement(null);\n }\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n error('Failed %s type: %s', location, error$1.message);\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n }\n function setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n }\n var propTypesMisspellWarningShown;\n {\n propTypesMisspellWarningShown = false;\n }\n function getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n return '';\n }\n function getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n return '';\n }\n function getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n return '';\n }\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n var ownerHasKeyUseWarning = {};\n function getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n return info;\n }\n /**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n function validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n {\n setCurrentlyValidatingElement$1(element);\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n setCurrentlyValidatingElement$1(null);\n }\n }\n /**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n function validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n /**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n function validatePropTypes(element) {\n {\n var type = element.type;\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n var propTypes;\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE ||\n // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n }\n /**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n function validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n function createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n var typeString;\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n return element;\n }\n var didWarnAboutDeprecatedCreateFactory = false;\n function createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n return validatedFactory;\n }\n function cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n {\n try {\n var frozenObject = Object.freeze({});\n /* eslint-disable no-new */\n\n new Map([[frozenObject, null]]);\n new Set([frozenObject]);\n /* eslint-enable no-new */\n } catch (e) {}\n }\n var createElement$1 = createElementWithValidation;\n var cloneElement$1 = cloneElementWithValidation;\n var createFactory = createFactoryWithValidation;\n var Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n };\n exports.Children = Children;\n exports.Component = Component;\n exports.PureComponent = PureComponent;\n exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\n exports.cloneElement = cloneElement$1;\n exports.createContext = createContext;\n exports.createElement = createElement$1;\n exports.createFactory = createFactory;\n exports.createRef = createRef;\n exports.forwardRef = forwardRef;\n exports.isValidElement = isValidElement;\n exports.lazy = lazy;\n exports.memo = memo;\n exports.useCallback = useCallback;\n exports.useContext = useContext;\n exports.useDebugValue = useDebugValue;\n exports.useEffect = useEffect;\n exports.useImperativeHandle = useImperativeHandle;\n exports.useLayoutEffect = useLayoutEffect;\n exports.useMemo = useMemo;\n exports.useReducer = useReducer;\n exports.useRef = useRef;\n exports.useState = useState;\n exports.version = ReactVersion;\n })();\n }\n })(react_development);\n return react_development;\n}\nif (process.env.NODE_ENV === 'production') {\n react.exports = requireReact_production_min();\n} else {\n react.exports = requireReact_development();\n}\nvar reactExports = react.exports;\nvar React = /*@__PURE__*/getDefaultExportFromCjs(reactExports);\nvar useStyles = createMemoStyles(function (_a) {\n var _b = _a.type,\n assets = _b.assets,\n fontFamily = _b.fontFamily,\n fontWeight = _b.fontWeight,\n fontSize = _b.fontSize;\n var fontPath = \"\".concat(assets.base).concat(assets.path);\n var fontFaces = FONT_WEIGHTS.map(function (name) {\n // we need this because the font file names are all National2-.2.ext\n var upperCaseName = \"\".concat(name[0].toUpperCase()).concat(name.slice(1));\n var weight = fontWeight[name];\n return {\n fontFamily: assets.name,\n fontWeight: weight,\n fontDisplay: 'swap',\n src: \"url(\".concat(fontPath, \"-\").concat(upperCaseName, \".\").concat(assets.version, \".woff2) format('woff2')\"),\n fallbacks: [{\n src: \"url(\".concat(fontPath, \"-\").concat(upperCaseName, \".\").concat(assets.version, \".woff) format('woff')\")\n }, {\n src: \"url(\".concat(fontPath, \"-\").concat(upperCaseName, \".\").concat(assets.version, \".eot#iefix) format('embedded-opentype')\")\n }]\n };\n });\n return {\n '@font-face': fontFaces,\n '@global': {\n \"[class*='wrench'], [class*='wrench']::before, [class*='wrench']::after\": {\n fontFamily: fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n fontSize: fontSize.body,\n boxSizing: 'border-box',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n }\n }\n };\n});\nvar GlobalStyles = function () {\n useStyles();\n // return null here for linting rule requirements\n return React.createElement(React.Fragment, null, null);\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar blueprintBoxStyle = {\n border: '2px dashed #2dccd3',\n backgroundColor: 'rgba(45,204,211,.6)',\n padding: '16px',\n fontFamily: 'Roboto, Helvetica, Arial'\n};\nvar blueprintBoxStyleXl = {\n border: '2px dashed #2dccd3',\n backgroundColor: 'rgba(45,204,211,.6)',\n padding: '40px 16px'\n};\nvar innerBoxStyle = {\n border: '2px dashed #2dccd3',\n backgroundColor: 'rgba(45,204,211,.6)',\n fontFamily: 'Roboto, Helvetica, Arial'\n};\nvar outerBoxStyle = __assign(__assign({}, innerBoxStyle), {\n marginBottom: '16px'\n});\nvar paddingBoxStyle = __assign(__assign({}, innerBoxStyle), {\n backgroundColor: '#ffffff',\n border: 'none'\n});\nvar flexBoxStyle = __assign(__assign({}, innerBoxStyle), {\n padding: 8,\n margin: 8\n});\nvar flexBoxStyleSm = __assign(__assign({}, innerBoxStyle), {\n padding: 8,\n margin: 8,\n height: 40\n});\nvar flexBoxStyleMd = __assign(__assign({}, innerBoxStyle), {\n padding: 8,\n margin: 8,\n height: 80\n});\nvar flexBoxStyleLg = __assign(__assign({}, innerBoxStyle), {\n padding: 8,\n margin: 8,\n height: 120\n});\nexport { BACKGROUND_COLORS, BACKGROUND_SEMANTIC_COLORS, BORDER_COLORS, BORDER_KEYS, DATA_COLORS, DATA_VIS_COLORS, ELEVATION_KEYS, theme as ElevateTheme, FONT_ASSETS, FONT_FAMILY_KEYS, FONT_SIZES, FONT_WEIGHTS, GlobalStyles, LINK_COLORS, RADIUS_KEYS, SEMANTIC_COLORS, SHADOW_KEYS, SIZES, SPACING_KEYS, TYPE_COLORS, theme$1 as WrenchTheme, blueprintBoxStyle, blueprintBoxStyleXl, flexBoxStyle, flexBoxStyleLg, flexBoxStyleMd, flexBoxStyleSm, getColor, getDataColor, innerBoxStyle, isBackgroundColor, isBackgroundSemanticColor, isBorderColor, isColorShape, isDataColor, isDataVisColor, isLinkColor, isSemanticColor, isTypeColor, outerBoxStyle, paddingBoxStyle };","import React, { useContext, useMemo } from 'react';\nimport { createMemoStyles, safeRest, defaultBaseline, defaultFonts } from '@wds/utils';\nimport { IconArrowDown, IconArrowUp } from '@wds/icons';\nimport { getColor, BACKGROUND_SEMANTIC_COLORS, BACKGROUND_COLORS as BACKGROUND_COLORS$1 } from '@wds/styles';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar useStyles$5 = createMemoStyles(function (theme) {\n var palette = theme.palette;\n var tableHeaderStyles = {\n wrenchTableHeader: function (_a) {\n var sticky = _a.sticky;\n return {\n position: sticky ? 'sticky' : null,\n top: sticky ? 0 : null,\n zIndex: sticky ? 1 : null,\n backgroundColor: sticky ? palette.background.light : null,\n boxShadow: sticky ? \"1px 0 0 \".concat(palette.border.muted) : 'none'\n };\n }\n };\n return tableHeaderStyles;\n});\nvar TableHeader = function (_a) {\n var children = _a.children,\n _b = _a.sticky,\n sticky = _b === void 0 ? false : _b,\n rest = __rest(_a, [\"children\", \"sticky\"]);\n var wrenchTableHeader = useStyles$5({\n sticky: sticky\n }).wrenchTableHeader;\n return React.createElement(\"thead\", __assign({\n className: wrenchTableHeader\n }, safeRest(rest)), children);\n};\nvar TableBody = function (_a) {\n var children = _a.children,\n rest = __rest(_a, [\"children\"]);\n return React.createElement(\"tbody\", __assign({}, safeRest(rest)), children);\n};\n\n/** Resolves the correct color */\nvar getMarkedColor$1 = function (color, palette) {\n if (!color || typeof color !== 'string') {\n return palette.primary.main;\n }\n if (color.startsWith('data-')) {\n return palette.data[color.replace('data-', '')];\n }\n return palette[color].main;\n};\nvar useStyles$4 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n border = theme.border,\n spacing = theme.spacing;\n var tableRowStyles = {\n wrenchTableRow: function (_a) {\n var color = _a.color,\n disabled = _a.disabled,\n marked = _a.marked,\n selected = _a.selected;\n return {\n opacity: disabled ? '0.5' : null,\n pointerEvents: disabled ? 'none' : null,\n backgroundColor: selected ? palette.background.main : null,\n '&:last-child': {\n '& > td': {\n borderBottom: 'none'\n }\n },\n '& > td': {\n '&:first-child': {\n position: marked ? 'relative' : null,\n '&:before': {\n content: marked ? '\"\"' : null,\n position: marked ? 'absolute' : null,\n left: marked ? '0' : null,\n top: marked ? '0' : null,\n bottom: marked ? '0' : null,\n width: marked ? spacing[1] : null,\n backgroundColor: marked && color ? getMarkedColor$1(color, palette) : 'none',\n borderRight: border.muted\n }\n }\n }\n };\n }\n };\n return tableRowStyles;\n});\nvar TableRow = function (_a) {\n var children = _a.children,\n _b = _a.color,\n color = _b === void 0 ? undefined : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n _d = _a.marked,\n marked = _d === void 0 ? false : _d,\n _e = _a.onClick,\n onClick = _e === void 0 ? undefined : _e,\n _f = _a.selected,\n selected = _f === void 0 ? false : _f,\n rest = __rest(_a, [\"children\", \"color\", \"disabled\", \"marked\", \"onClick\", \"selected\"]);\n var wrenchTableRow = useStyles$4({\n color: color,\n disabled: disabled,\n marked: marked,\n selected: selected\n }).wrenchTableRow;\n return React.createElement(\"tr\", __assign({\n onClick: onClick,\n className: wrenchTableRow\n }, safeRest(rest)), children);\n};\nvar getCellPadding = function (spacing, density) {\n switch (density) {\n case 'sm':\n return [spacing[2], spacing[4]];\n case 'lg':\n return [spacing[5], spacing[5]];\n default:\n return [spacing[4], spacing[4]];\n }\n};\nvar useStyles$3 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n fontSize = theme.type.fontSize,\n border = theme.border,\n spacing = theme.spacing;\n var table = {\n thTypeColor: palette.text.dark,\n thBgColor: palette.transparent.clear,\n thDividerLineColor: palette.transparent.clear,\n tdTypeColor: palette.text.dark,\n tdBgColor: palette.transparent.clear,\n cellMinHeight: 50,\n fontSize: fontSize.bodySm\n };\n var cellStyles = {\n fontSize: table.fontSize,\n color: table.tdTypeColor,\n backgroundColor: table.tdBgColor,\n minHeight: table.cellMinHeight,\n verticalAlign: 'top',\n borderBottom: border.muted,\n '& > *': {\n verticalAlign: 'middle'\n }\n };\n var tableStyles = {\n wrenchTableCell: function (_a) {\n var numeric = _a.numeric,\n variant = _a.variant,\n noWrap = _a.noWrap,\n density = _a.density,\n maxWidth = _a.maxWidth,\n align = _a.align;\n return __assign(__assign(__assign(__assign(__assign(__assign({}, cellStyles), {\n textAlign: numeric ? 'right' : align,\n width: variant ? '1%' : null,\n padding: getCellPadding(spacing, density)\n }), variant === 'bulkActions' && {\n paddingRight: '0'\n }), {\n whiteSpace: noWrap ? 'nowrap' : null\n }), maxWidth && {\n maxWidth: maxWidth\n }), {\n '& > a': {\n color: palette.text.link\n }\n });\n }\n };\n return tableStyles;\n});\nvar TableContext = React.createContext({\n density: 'md'\n});\nvar TableCell = function (_a) {\n var children = _a.children,\n _b = _a.numeric,\n numeric = _b === void 0 ? false : _b,\n variant = _a.variant,\n scopeProp = _a.scope,\n parent = _a.parent,\n color = _a.color,\n _c = _a.marked,\n marked = _c === void 0 ? false : _c,\n _d = _a.noWrap,\n noWrap = _d === void 0 ? false : _d,\n maxWidth = _a.maxWidth,\n _e = _a.align,\n align = _e === void 0 ? 'left' : _e,\n rest = __rest(_a, [\"children\", \"numeric\", \"variant\", \"scope\", \"parent\", \"color\", \"marked\", \"noWrap\", \"maxWidth\", \"align\"]);\n var density = useContext(TableContext).density;\n var wrenchTableCell = useStyles$3({\n numeric: numeric,\n variant: variant,\n color: color,\n marked: marked,\n density: density,\n noWrap: noWrap,\n maxWidth: maxWidth,\n align: align\n }).wrenchTableCell;\n var isHeaderChild = parent === 'Table.Header';\n var Component = isHeaderChild ? 'th' : 'td';\n var scope = !scopeProp && isHeaderChild ? 'col' : scopeProp;\n return React.createElement(Component, __assign({\n className: wrenchTableCell,\n scope: scope\n }, safeRest(rest)), children);\n};\n\n/** Resolves the correct color */\nvar getMarkedColor = function (color, palette) {\n if (!color || typeof color !== 'string') {\n return palette.primary.main;\n }\n if (color.startsWith('data-')) {\n return palette.data[color.replace('data-', '')];\n }\n return palette[color].main;\n};\nvar useStyles$2 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n _a = theme.type,\n fontWeight = _a.fontWeight,\n fontSize = _a.fontSize,\n border = theme.border,\n spacing = theme.spacing;\n var table = {\n thTypeColor: palette.background.dark,\n thBgColor: palette.transparent.clear,\n thDividerLineColor: palette.transparent.clear,\n tdTypeColor: palette.text.dark,\n tdBgColor: palette.transparent.clear,\n cellMinHeight: 50,\n cellPadding: [spacing[4], spacing[4]],\n fontSize: fontSize.body\n };\n var cellStyles = {\n fontSize: table.fontSize,\n color: table.tdTypeColor,\n padding: table.cellPadding,\n minHeight: table.cellMinHeight,\n verticalAlign: 'top',\n borderBottom: border.muted,\n '& > *': {\n verticalAlign: 'middle'\n }\n };\n var stickyBorder = function (sticky) {\n return {\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n left: sticky === 'right' ? '0' : null,\n right: sticky === 'left' ? '0' : null,\n top: '0',\n height: '100%',\n width: '1px',\n backgroundColor: palette.border.muted\n }\n };\n };\n var tableStyles = {\n wrenchTableHeaderCell: function (_a) {\n var numeric = _a.numeric,\n noWrap = _a.noWrap,\n maxWidth = _a.maxWidth,\n marked = _a.marked,\n color = _a.color,\n isSortable = _a.isSortable,\n isSorted = _a.isSorted,\n sticky = _a.sticky,\n elevation = _a.elevation,\n backgroundColor = _a.backgroundColor,\n align = _a.align;\n var headerCellPosition = function () {\n if (sticky) {\n return 'sticky';\n }\n if (marked) {\n return 'relative';\n }\n return null;\n };\n return __assign(__assign(__assign(__assign(__assign(__assign({}, cellStyles), {\n textAlign: numeric ? 'right' : align,\n fontWeight: fontWeight.medium,\n backgroundColor: getColor(palette, backgroundColor, {\n colorType: 'background'\n }),\n color: backgroundColor !== 'dark' ? table.thTypeColor : palette.text.light,\n borderLeft: \"1px solid \".concat(table.thDividerLineColor),\n position: headerCellPosition(),\n left: sticky === 'left' ? 0 : null,\n right: sticky === 'right' ? 0 : null,\n cursor: isSortable ? 'pointer' : null,\n userSelect: isSortable ? 'none' : null,\n whiteSpace: noWrap ? 'nowrap' : null,\n zIndex: elevation || sticky ? 1 : null\n }), maxWidth && {\n maxWidth: maxWidth\n }), {\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n left: '0',\n top: '0',\n width: '100%',\n height: spacing[1],\n backgroundColor: marked && color ? getMarkedColor(color, palette) : 'none'\n }\n }), sticky && stickyBorder(sticky)), {\n '&:first-child': {\n borderLeft: 'none'\n },\n '&:hover, &:focus': {\n '& > span': {\n opacity: 1,\n color: isSorted ? palette.text.dark : palette.text.lightMuted\n }\n }\n });\n },\n wrenchTableSortIcon: function (_a) {\n var isSorted = _a.isSorted;\n return {\n display: 'inline-flex',\n pointerEvents: 'none',\n width: '0.9em',\n height: '0.9em',\n marginLeft: spacing[2],\n marginTop: -spacing[1],\n opacity: isSorted ? '1' : '0',\n color: palette.text.dark\n };\n }\n };\n return tableStyles;\n});\nvar SortArrow = function (_a) {\n var sortDirection = _a.sortDirection,\n wrenchTableSortIcon = _a.wrenchTableSortIcon;\n var sortIcon;\n if (sortDirection === 'descending') {\n sortIcon = React.createElement(IconArrowDown, {\n title: \"Sort rows in descending order.\"\n });\n } else {\n sortIcon = React.createElement(IconArrowUp, {\n title: \"Sort rows in descending order.\"\n });\n }\n return React.createElement(\"span\", {\n className: wrenchTableSortIcon\n }, sortIcon);\n};\nvar KEYS = {\n DOWN: 'ArrowDown',\n END: 'End',\n ESC: 'Escape',\n HOME: 'Home',\n LEFT: 'ArrowLeft',\n PAGE_DOWN: 'PageDown',\n PAGE_UP: 'PageUp',\n RIGHT: 'ArrowRight',\n UP: 'ArrowUp',\n ENTER: 'Enter',\n SPACE: ' ',\n BACKSPACE: 'Backspace',\n TAB: 'Tab'\n};\nvar TableHeaderCell = function (_a) {\n var _b = _a.children,\n children = _b === void 0 ? undefined : _b,\n _c = _a.numeric,\n numeric = _c === void 0 ? false : _c,\n _d = _a.scope,\n scopeProp = _d === void 0 ? undefined : _d,\n _e = _a.parent,\n parent = _e === void 0 ? undefined : _e,\n _f = _a.color,\n color = _f === void 0 ? undefined : _f,\n _g = _a.backgroundColor,\n backgroundColor = _g === void 0 ? 'main' : _g,\n _h = _a.marked,\n marked = _h === void 0 ? false : _h,\n _j = _a.isSortable,\n isSortable = _j === void 0 ? false : _j,\n _k = _a.isSorted,\n isSorted = _k === void 0 ? false : _k,\n _l = _a.sortDirection,\n sortDirection = _l === void 0 ? 'ascending' : _l,\n _m = _a.noWrap,\n noWrap = _m === void 0 ? false : _m,\n _o = _a.labelSort,\n labelSort = _o === void 0 ? 'Sort' : _o,\n maxWidth = _a.maxWidth,\n _p = _a.sticky,\n sticky = _p === void 0 ? undefined : _p,\n _q = _a.elevation,\n elevation = _q === void 0 ? undefined : _q,\n _r = _a.onClick,\n onClick = _r === void 0 ? undefined : _r,\n _s = _a.align,\n align = _s === void 0 ? 'left' : _s,\n rest = __rest(_a, [\"children\", \"numeric\", \"scope\", \"parent\", \"color\", \"backgroundColor\", \"marked\", \"isSortable\", \"isSorted\", \"sortDirection\", \"noWrap\", \"labelSort\", \"maxWidth\", \"sticky\", \"elevation\", \"onClick\", \"align\"]);\n var _t = useStyles$2({\n numeric: numeric,\n noWrap: noWrap,\n maxWidth: maxWidth,\n marked: marked,\n color: color,\n isSortable: isSortable,\n isSorted: isSorted,\n sticky: sticky,\n backgroundColor: backgroundColor,\n align: align,\n elevation: elevation\n }),\n wrenchTableHeaderCell = _t.wrenchTableHeaderCell,\n wrenchTableSortIcon = _t.wrenchTableSortIcon;\n var handleKeyDown = function (e) {\n if (onClick && e.key === KEYS.ENTER) {\n onClick(e);\n }\n };\n var isHeaderChild = parent === 'Table.Header';\n var scope = !scopeProp && isHeaderChild ? 'col' : scopeProp;\n return React.createElement(\"th\", __assign({\n className: wrenchTableHeaderCell,\n scope: scope,\n tabIndex: 0,\n role: \"columnheader\",\n \"aria-sort\": isSortable ? sortDirection : undefined,\n onKeyDown: handleKeyDown,\n title: isSortable ? labelSort : undefined,\n onClick: function (e) {\n return onClick === null || onClick === void 0 ? void 0 : onClick(e);\n }\n }, safeRest(rest)), children, isSortable && React.createElement(SortArrow, {\n sortDirection: sortDirection,\n wrenchTableSortIcon: wrenchTableSortIcon\n }));\n};\nvar useStyles$1 = createMemoStyles(function (theme) {\n var palette = theme.palette;\n var tableFooterStyles = {\n wrenchTableFooter: function (_a) {\n var sticky = _a.sticky;\n return {\n position: sticky ? 'sticky' : null,\n bottom: sticky ? 0 : null,\n zIndex: sticky ? 1 : null,\n backgroundColor: sticky ? palette.background.light : null,\n boxShadow: sticky ? \"0 -1px 0 \".concat(palette.border.muted) : 'none'\n };\n }\n };\n return tableFooterStyles;\n});\nvar TableFooter = function (_a) {\n var children = _a.children,\n _b = _a.sticky,\n sticky = _b === void 0 ? false : _b,\n rest = __rest(_a, [\"children\", \"sticky\"]);\n var wrenchTableFooter = useStyles$1({\n sticky: sticky\n }).wrenchTableFooter;\n return React.createElement(\"tfoot\", __assign({\n className: wrenchTableFooter\n }, safeRest(rest)), children);\n};\nvar useStyles = createMemoStyles(function (theme) {\n var tableStyles = {\n wrenchTableContainer: function (_a) {\n var xScroll = _a.xScroll,\n maxHeight = _a.maxHeight;\n return __assign(__assign({}, defaultBaseline), {\n overflowX: xScroll ? 'auto' : null,\n maxHeight: maxHeight !== null && maxHeight !== void 0 ? maxHeight : null,\n overflowY: maxHeight ? 'auto' : null\n });\n },\n wrenchTable: function () {\n return __assign(__assign({}, defaultFonts(theme)), {\n width: '100%',\n borderCollapse: 'collapse'\n });\n }\n };\n return tableStyles;\n});\nvar Table = function (_a) {\n var children = _a.children,\n _b = _a.xScroll,\n xScroll = _b === void 0 ? false : _b,\n _c = _a.density,\n density = _c === void 0 ? 'md' : _c,\n _d = _a.maxHeight,\n maxHeight = _d === void 0 ? undefined : _d,\n rest = __rest(_a, [\"children\", \"xScroll\", \"density\", \"maxHeight\"]);\n var _e = useStyles({\n xScroll: xScroll,\n maxHeight: maxHeight\n }),\n wrenchTableContainer = _e.wrenchTableContainer,\n wrenchTable = _e.wrenchTable;\n var value = useMemo(function () {\n return {\n density: density\n };\n }, [density]);\n return React.createElement(TableContext.Provider, {\n value: value\n }, React.createElement(\"div\", {\n className: wrenchTableContainer\n }, React.createElement(\"table\", __assign({\n className: wrenchTable\n }, safeRest(rest)), children)));\n};\nTable.Header = TableHeader;\nTable.Body = TableBody;\nTable.Row = TableRow;\nTable.Cell = TableCell;\nTable.HeaderCell = TableHeaderCell;\nTable.Footer = TableFooter;\nvar STICKY_SIDES = ['left', 'right'];\nvar DENSITIES = ['sm', 'md', 'lg'];\nvar ALIGNMENTS = ['left', 'center', 'right'];\nvar BACKGROUND_COLORS = __spreadArray(__spreadArray([], BACKGROUND_SEMANTIC_COLORS, true), BACKGROUND_COLORS$1, true);\nexport { ALIGNMENTS, BACKGROUND_COLORS, DENSITIES, STICKY_SIDES, Table };","import React, { useState, useRef, useMemo, useEffect } from 'react';\nimport { useTheme } from 'react-jss';\nimport { createMemoStyles, visuallyHidden, uniqueId, clsx, isBrowser, getDisplayName, safeRest, handlePortal } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar TOOLTIP_PLACEMENTS = ['bottom', 'left', 'right', 'top'];\nvar useStyles = createMemoStyles(function (theme) {\n var _a, _b;\n var breakpoints = theme.breakpoints,\n motion = theme.motion,\n spacing = theme.spacing,\n palette = theme.palette,\n shadow = theme.shadow,\n type = theme.type,\n radius = theme.radius;\n var tooltip = {\n bgColor: palette.background.dark,\n typeColor: palette.text.light,\n borderRadius: radius.small,\n pipSize: 12,\n fontSize: type.fontSize.bodySm,\n padding: [spacing[4]],\n fontWeight: type.fontWeight.regular,\n boxShadow: shadow.none\n };\n var halfPipSize = tooltip.pipSize / 2;\n var tooltipTransform = function (placement) {\n return {\n top: 'translate(-50%, 0)',\n bottom: \"translate(-50%, \".concat(spacing[1], \"px)\"),\n left: 'translate(0, -50%)',\n right: 'translate(0, -50%)'\n }[placement];\n };\n var tooltipTop = function (placement) {\n return {\n top: 'auto',\n bottom: '100%',\n left: '50%',\n right: '50%'\n }[placement];\n };\n var tooltipBottom = function (placement) {\n return {\n top: '100%',\n bottom: 'auto',\n left: 'auto',\n right: 'auto'\n }[placement];\n };\n var tooltipLeft = function (placement) {\n return {\n top: '50%',\n bottom: '50%',\n left: 'auto',\n right: '100%'\n }[placement];\n };\n var tooltipAlign = function (placement) {\n return {\n top: 'center',\n bottom: 'center',\n left: 'right',\n right: 'left'\n }[placement];\n };\n var tooltipBodyLeft = function (placement) {\n return {\n top: '50%',\n bottom: '50%',\n left: 'auto',\n right: -halfPipSize\n }[placement];\n };\n var tooltipBodyTop = function (placement) {\n return {\n top: 'auto',\n bottom: -halfPipSize,\n left: '50%',\n right: '50%'\n }[placement];\n };\n return {\n wrenchTooltipContainer: function (_a) {\n var stretched = _a.stretched;\n return __assign({\n position: 'relative',\n outline: 'none',\n boxSizing: 'border-box',\n padding: 0,\n margin: 0\n }, stretched && {\n display: 'block',\n width: '100%'\n });\n },\n wrenchTooltip: (_a = {\n boxSizing: 'border-box',\n padding: 0,\n margin: 0,\n zIndex: function (_a) {\n var elevation = _a.elevation;\n return elevation !== null && elevation !== void 0 ? elevation : theme.elevation.sky;\n },\n position: 'absolute',\n width: 300,\n outline: 'none',\n pointerEvents: 'none',\n whiteSpace: 'normal',\n opacity: function (_a) {\n var show = _a.show;\n return show ? 1 : 0;\n },\n left: '50%',\n top: function (_a) {\n var placement = _a.placement;\n return placement === 'bottom' ? '100%' : 'auto';\n },\n bottom: function (_a) {\n var placement = _a.placement;\n return placement === 'bottom' ? 'auto' : '100%';\n },\n marginTop: function (_a) {\n var placement = _a.placement;\n return placement === 'bottom' ? tooltip.pipSize : 0;\n },\n transform: function (_a) {\n var show = _a.show,\n placement = _a.placement;\n if (show) {\n if (placement === 'bottom') {\n return \"translate(-50%, \".concat(spacing[1], \"px)\");\n }\n return 'translate(-50%, 0)';\n }\n return \"translate(-50%, -\".concat(spacing[1], \"px)\");\n },\n textAlign: 'center',\n marginBottom: tooltip.pipSize,\n // delay\n transitionDelay: function (_a) {\n var delay = _a.delay;\n return delay ? '1000ms' : 'none';\n },\n // show transition\n transition: function (_a) {\n var show = _a.show;\n return show ? \"transform 250ms \".concat(motion.curve.enter, \", opacity 50ms linear 50ms\") : 'all 0s ease 0s';\n }\n }, _a[\"@media (min-width: \".concat(breakpoints.md, \"px)\")] = {\n transform: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipTransform(placement) : undefined;\n },\n top: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipTop(placement) : undefined;\n },\n bottom: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipBottom(placement) : undefined;\n },\n left: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipLeft(placement) : undefined;\n },\n right: function (_a) {\n var placement = _a.placement;\n return placement === 'left' ? '100%' : 'auto';\n },\n /**\n * TODO: Need to make pipSize a rem value if we want to define in REM\n */\n marginLeft: function (_a) {\n var placement = _a.placement;\n return placement === 'right' ? spacing[4] : 0;\n },\n marginRight: function (_a) {\n var placement = _a.placement;\n return placement === 'left' ? spacing[4] : 0;\n },\n textAlign: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipAlign(placement) : undefined;\n }\n }, _a),\n wrenchTooltipBody: {\n fontFamily: type.fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n display: 'inline-block',\n borderRadius: tooltip.borderRadius,\n background: tooltip.bgColor,\n color: tooltip.typeColor,\n fontSize: tooltip.fontSize,\n padding: tooltip.padding,\n lineHeight: 1.5,\n textAlign: 'left',\n fontWeight: tooltip.fontWeight,\n boxShadow: tooltip.boxShadow,\n '&:after': (_b = {\n bottom: function (_a) {\n var placement = _a.placement;\n return placement === 'bottom' ? 'auto' : -halfPipSize;\n },\n left: '50%',\n marginLeft: -halfPipSize,\n content: '\"\"',\n position: 'absolute',\n width: tooltip.pipSize,\n height: tooltip.pipSize,\n backgroundColor: tooltip.bgColor,\n transform: 'rotate(45deg)'\n }, _b[\"@media (min-width: \".concat(breakpoints.md, \"px)\")] = {\n top: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipBodyTop(placement) : undefined;\n },\n left: function (_a) {\n var placement = _a.placement;\n return placement ? tooltipBodyLeft(placement) : undefined;\n },\n right: function (_a) {\n var placement = _a.placement;\n return placement === 'left' ? -halfPipSize : 'auto';\n },\n marginTop: function (_a) {\n var placement = _a.placement;\n return placement === 'right' || placement === 'left' ? -halfPipSize : 0;\n },\n marginLeft: function (_a) {\n var placement = _a.placement;\n return placement === 'right' ? 0 : -halfPipSize;\n }\n }, _b[\"@media (max-width: \".concat(breakpoints.md, \"px)\")] = {\n top: function (_a) {\n var placement = _a.placement;\n return placement === 'bottom' ? -halfPipSize : 'auto';\n }\n }, _b)\n },\n wrenchTooltipBodyCaret: function (_a) {\n var hideCaret = _a.hideCaret;\n return {\n '&:after': __assign({}, hideCaret && visuallyHidden)\n };\n }\n };\n});\nvar Tooltip = function (_a) {\n var _b = _a.delay,\n delay = _b === void 0 ? false : _b,\n _c = _a.hideCaret,\n hideCaret = _c === void 0 ? false : _c,\n _d = _a.placement,\n placement = _d === void 0 ? 'top' : _d,\n text = _a.text,\n _e = _a.show,\n propShow = _e === void 0 ? false : _e,\n _f = _a.disableHover,\n disableHover = _f === void 0 ? false : _f,\n renderTo = _a.renderTo,\n onChange = _a.onChange,\n alwaysShow = _a.alwaysShow,\n children = _a.children,\n elevation = _a.elevation,\n rest = __rest(_a, [\"delay\", \"hideCaret\", \"placement\", \"text\", \"show\", \"disableHover\", \"renderTo\", \"onChange\", \"alwaysShow\", \"children\", \"elevation\"]);\n var _g = useState(false),\n show = _g[0],\n setShow = _g[1];\n var _h = useState({}),\n tooltipStyle = _h[0],\n setTooltipStyle = _h[1];\n var _j = useState(false),\n stretched = _j[0],\n setStretched = _j[1];\n var theme = useTheme();\n var classes = useStyles({\n show: propShow || show || alwaysShow,\n placement: placement,\n hideCaret: hideCaret,\n stretched: stretched,\n delay: delay,\n elevation: elevation\n });\n // Refs\n var tooltipRef = useRef(null);\n var tooltipContentRef = useRef(null);\n var uniqueTooltipName = useMemo(function () {\n return uniqueId('wds-tooltip-');\n }, []);\n var tooltipBodyClasses = clsx(classes.wrenchTooltipBody, classes.wrenchTooltipBodyCaret);\n // Set to 800 by default\n var TOOLTIP_TIMEOUT;\n var updatePosition = function () {\n var _a;\n if (tooltipRef.current && show && tooltipContentRef.current && tooltipContentRef.current.children && tooltipContentRef.current.children.length) {\n var rect = tooltipRef.current.getBoundingClientRect();\n var tooltipBodyRect = tooltipContentRef.current.children[0].getBoundingClientRect();\n var tooltipRect = tooltipContentRef.current.getBoundingClientRect();\n var bottom = 'auto';\n var pipSize = placement === 'top' ? theme.spacing[2] : theme.spacing[4];\n var screenPlacement = window.innerWidth <= theme.breakpoints.md && (placement === TOOLTIP_PLACEMENTS[2] || placement === TOOLTIP_PLACEMENTS[3]) ? TOOLTIP_PLACEMENTS[0] : placement;\n var position = (_a = {\n top: {\n top: rect.top - tooltipBodyRect.height - rect.height / 2 - pipSize,\n left: rect.left + rect.width / 2\n },\n left: {\n top: rect.top + rect.height / 2,\n left: rect.left - (tooltipRect.width + 16)\n },\n right: {\n top: rect.top + rect.height / 2,\n left: rect.left + rect.width\n },\n bottom: {\n top: rect.bottom,\n left: rect.left + rect.width / 2\n }\n }[screenPlacement]) !== null && _a !== void 0 ? _a : {\n top: rect.bottom,\n left: rect.left + rect.width / 2\n };\n var z = (elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space) + 1;\n setTooltipStyle({\n top: position.top,\n left: position.left,\n zIndex: z,\n position: 'fixed',\n bottom: bottom\n });\n }\n };\n var handleScroll = function () {\n if (show && renderTo) {\n updatePosition();\n }\n };\n // componentDidMount\n useEffect(function () {\n if (show && renderTo) {\n updatePosition();\n }\n if (isBrowser && renderTo && show) {\n updatePosition();\n }\n if (disableHover && isBrowser) {\n window.addEventListener('scroll', handleScroll);\n window.addEventListener('resize', handleScroll);\n window.addEventListener('orientationchange', handleScroll);\n }\n // componentWillUnmount\n return function () {\n if (disableHover && renderTo && isBrowser) {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleScroll);\n window.removeEventListener('orientationchange', handleScroll);\n }\n if (delay) {\n clearTimeout(TOOLTIP_TIMEOUT);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [show]);\n var change = function (value) {\n if (renderTo && value) {\n updatePosition();\n }\n if (onChange) {\n onChange(value);\n }\n };\n var showTooltip = function (val) {\n setShow(val);\n change(val);\n };\n var guardChildClick = function (c) {\n return 'onClick' in c.props;\n };\n var isTouchDevice = function () {\n var isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n return isTouch;\n };\n var handleClick = function (e) {\n if (!alwaysShow) {\n if (React.isValidElement(children) && guardChildClick(children)) children.props.onClick(e);\n showTooltip(!show);\n }\n };\n var onMouseEnter = function () {\n if (!disableHover && !alwaysShow && !isTouchDevice()) {\n if (delay) {\n TOOLTIP_TIMEOUT = setTimeout(function () {\n showTooltip(true);\n }, 800);\n } else {\n showTooltip(true);\n }\n }\n };\n var onMouseLeave = function () {\n if (delay) {\n clearTimeout(TOOLTIP_TIMEOUT);\n }\n if (!disableHover && !alwaysShow) {\n showTooltip(false);\n }\n };\n var renderTooltipContent = function () {\n var tooltipContent = React.createElement(\"span\", {\n className: classes.wrenchTooltip,\n id: uniqueTooltipName,\n ref: tooltipContentRef,\n role: \"tooltip\",\n style: tooltipStyle\n }, React.createElement(\"span\", {\n className: tooltipBodyClasses\n }, text));\n return handlePortal(tooltipContent, renderTo);\n };\n var newChildren = React.Children.map(children, function (child) {\n if (!React.isValidElement(child)) {\n return null;\n }\n if (typeof React.isValidElement(child) === 'string') {\n return child;\n }\n var childProps = child === null || child === void 0 ? void 0 : child.props;\n if (childProps && childProps.stretched !== stretched) {\n if (childProps.stretched) setStretched(childProps.stretched);\n }\n var displayName = getDisplayName(child);\n var additionalProps = __assign(__assign(__assign({}, displayName && displayName !== 'Button' && {\n tabIndex: 0\n }), displayName ? {\n describedby: uniqueTooltipName\n } : {\n 'aria-describedby': uniqueTooltipName\n }), {\n onClick: !disableHover && childProps.onClick ? childProps.onClick : handleClick\n });\n return React.cloneElement(child, __assign({}, additionalProps));\n });\n return React.createElement(\"span\", __assign({\n className: classes.wrenchTooltipContainer\n }, safeRest(rest)), renderTooltipContent(), React.createElement(\"span\", {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onMouseEnter,\n onBlur: onMouseLeave,\n ref: tooltipRef\n }, newChildren));\n};\nexport { TOOLTIP_PLACEMENTS, Tooltip };","import { createMemoStyles, safeRest } from '@wds/utils';\nimport React, { forwardRef } from 'react';\nimport { getColor, FONT_SIZES, SEMANTIC_COLORS, LINK_COLORS, TYPE_COLORS } from '@wds/styles';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar isNotLink = function (t) {\n return t !== 'link';\n};\nvar hasFontWeight = function (t) {\n return typeof t.fontWeight === 'string' || typeof t.fontWeight === 'number';\n};\nvar useStyles = createMemoStyles(function (_a) {\n var _b = _a.type,\n fontFamily = _b.fontFamily,\n fontSize = _b.fontSize,\n fontWeight = _b.fontWeight,\n palette = _a.palette;\n return {\n wrenchTypography: function (_a) {\n var align = _a.align,\n color = _a.color,\n variant = _a.variant,\n component = _a.component,\n weight = _a.weight,\n lineHeight = _a.lineHeight;\n var chosenColor = getColor(palette, color, {\n fallback: palette.text.dark\n });\n var variantStyle = {};\n if (variant) {\n if (isNotLink(variant)) {\n variantStyle = {\n fontSize: fontSize[variant],\n fontWeight: {\n hero1: fontWeight.regular,\n hero2: fontWeight.regular,\n title: fontWeight.regular,\n sectionTitle: fontWeight.regular,\n sectionTitleSm: fontWeight.regular,\n pageTitle: fontWeight.regular,\n cardTitle: fontWeight.regular,\n body: fontWeight.regular,\n bodySm: fontWeight.regular,\n caption: fontWeight.regular\n }[variant],\n lineHeight: lineHeight !== null && lineHeight !== void 0 ? lineHeight : {\n hero1: 1.5,\n hero2: 1.5,\n sectionTitle: 1.2857,\n sectionTitleSm: 1.3333,\n pageTitle: 1.25,\n cardTitle: 1.4,\n body: 1.5,\n bodySm: 1.7142,\n caption: 1.6666\n }[variant]\n };\n } else {\n variantStyle = {\n color: palette.link.main,\n textDecoration: 'none',\n border: 'none',\n background: 'none',\n outline: 'none',\n cursor: 'pointer',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: lineHeight !== null && lineHeight !== void 0 ? lineHeight : 1.5,\n '&:hover, &:focus': {\n textDecoration: 'underline'\n }\n };\n }\n }\n var computedWeight = 'inherit';\n if (weight) {\n computedWeight = fontWeight[weight];\n } else if (component === 'strong' || component === 'b') {\n computedWeight = fontWeight.medium;\n } else if (hasFontWeight(variantStyle)) {\n computedWeight = variantStyle.fontWeight;\n }\n return __assign(__assign(__assign({\n fontFamily: fontFamily.base,\n fontSize: fontSize.body,\n boxSizing: 'border-box',\n '-webkit-font-smoothing': 'antialiased',\n color: chosenColor,\n textAlign: align,\n margin: 0,\n padding: 0,\n lineHeight: lineHeight && 1.5\n }, variantStyle), variant && (variant === 'hero1' || variant === 'hero2') && {\n fontFamily: fontFamily === null || fontFamily === void 0 ? void 0 : fontFamily.headings\n }), {\n fontWeight: computedWeight,\n '& > strong, & > b': {\n fontWeight: fontWeight.medium\n }\n });\n }\n };\n});\nvar Typography = forwardRef(function (_a, ref) {\n var _b = _a.align,\n align = _b === void 0 ? 'left' : _b,\n _c = _a.color,\n color = _c === void 0 ? 'dark' : _c,\n _d = _a.component,\n component = _d === void 0 ? 'div' : _d,\n _e = _a.variant,\n variant = _e === void 0 ? 'body' : _e,\n weight = _a.weight,\n lineHeight = _a.lineHeight,\n children = _a.children,\n rest = __rest(_a, [\"align\", \"color\", \"component\", \"variant\", \"weight\", \"lineHeight\", \"children\"]);\n var wrenchTypography = useStyles({\n align: align,\n color: color,\n variant: variant,\n component: component,\n weight: weight,\n lineHeight: lineHeight\n }).wrenchTypography;\n var Component = component;\n return React.createElement(Component, __assign({\n className: wrenchTypography\n }, safeRest(rest), {\n ref: ref\n }), children);\n});\nvar ALIGNMENTS = ['center', 'left', 'right'];\nvar VARIANTS = __spreadArray(__spreadArray([], FONT_SIZES, true), ['link'], false);\nvar TYPOGRAPHY_COLORS = __spreadArray(__spreadArray(__spreadArray([], SEMANTIC_COLORS, true), LINK_COLORS, true), TYPE_COLORS, true);\nvar COMPONENTS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'a', 'p', 'span', 'div', 'article', 'section', 'em', 'strong', 'label', 'b'];\nexport { ALIGNMENTS, COMPONENTS, TYPOGRAPHY_COLORS, Typography, VARIANTS };","export { default as clsx } from 'clsx';\nimport isEqual from 'lodash.isequal';\nimport React, { useRef, isValidElement, useEffect, useLayoutEffect } from 'react';\nimport { createUseStyles } from 'react-jss';\nimport isElement from 'lodash.iselement';\nexport { default as isElement } from 'lodash.iselement';\nimport { createPortal } from 'react-dom';\nvar clearfix = {\n '&:after': {\n content: '',\n display: 'block',\n clear: 'both'\n }\n};\nvar createMemoStyles = function (styles, options) {\n var useStyles = createUseStyles(styles, options);\n var useMemoStyles = function (data) {\n var ref = useRef(data);\n if (!ref.current || !isEqual(data, ref.current)) {\n ref.current = data;\n }\n return useStyles(ref.current);\n };\n return useMemoStyles;\n};\n\n/**\n * @description\n * This factory function creates a hook that will return the wrenchSpacing class to be used in the component\n * Simply import it and call at the component level to create the hook, then use the hook inside your component\n * Code example: https://github.com/mntv-web-experience/wrench/blob/main/packages/box/Box\n */\nfunction createSpacingStyles() {\n return createMemoStyles(function (_a) {\n var spacing = _a.spacing;\n return {\n wrenchSpacing: function (_a) {\n var _b, _c, _d, _e, _f, _g, _h, _j;\n var m = _a.m,\n mx = _a.mx,\n my = _a.my,\n mt = _a.mt,\n mb = _a.mb,\n ml = _a.ml,\n mr = _a.mr,\n p = _a.p,\n px = _a.px,\n py = _a.py,\n pt = _a.pt,\n pb = _a.pb,\n pl = _a.pl,\n pr = _a.pr;\n var margin = {\n t: (_b = m !== null && m !== void 0 ? m : my) !== null && _b !== void 0 ? _b : mt,\n b: (_c = m !== null && m !== void 0 ? m : my) !== null && _c !== void 0 ? _c : mb,\n l: (_d = m !== null && m !== void 0 ? m : mx) !== null && _d !== void 0 ? _d : ml,\n r: (_e = m !== null && m !== void 0 ? m : mx) !== null && _e !== void 0 ? _e : mr\n };\n var padding = {\n t: (_f = p !== null && p !== void 0 ? p : py) !== null && _f !== void 0 ? _f : pt,\n b: (_g = p !== null && p !== void 0 ? p : py) !== null && _g !== void 0 ? _g : pb,\n l: (_h = p !== null && p !== void 0 ? p : px) !== null && _h !== void 0 ? _h : pl,\n r: (_j = p !== null && p !== void 0 ? p : px) !== null && _j !== void 0 ? _j : pr\n };\n return {\n marginTop: margin.t && spacing[margin.t],\n marginRight: margin.r && spacing[margin.r],\n marginBottom: margin.b && spacing[margin.b],\n marginLeft: margin.l && spacing[margin.l],\n paddingTop: padding.t && spacing[padding.t],\n paddingRight: padding.r && spacing[padding.r],\n paddingBottom: padding.b && spacing[padding.b],\n paddingLeft: padding.l && spacing[padding.l]\n };\n }\n };\n });\n}\n\n/* eslint-disable no-bitwise */\n/* Given a hex or rgb color value, checks if the contrasting color should be light or dark */\nvar getContrastColor = function (color) {\n var _a;\n var r = 0;\n var g = 0;\n var b = 0;\n // Check the format of the color, HEX or RGB?\n if (color.match(/^rgb/)) {\n var colorValues = (_a = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) !== null && _a !== void 0 ? _a : ['', '', ''];\n r = parseInt(colorValues[1], 10);\n g = parseInt(colorValues[2], 10);\n b = parseInt(colorValues[3], 10);\n } else {\n var colorReg = color.length < 5 ? /./g : '';\n var colorValues = +\"0x\".concat(color.slice(1).replace(colorReg, '$&$&'));\n r = colorValues >> 16;\n g = colorValues >> 8 & 255;\n b = colorValues & 255;\n }\n // HSP equation from http://alienryderflex.com/hsp.html\n var hsp = Math.sqrt(0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b));\n if (hsp > 160) {\n return 'dark';\n }\n return 'light';\n};\nfunction getLineTruncationProperties(truncate) {\n if (truncate !== undefined && truncate > 0) {\n return {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whitespace: truncate === 1 ? 'nowrap' : undefined,\n display: '-webkit-box',\n boxOrient: 'vertical',\n lineClamp: truncate\n };\n }\n return undefined;\n}\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nvar darken$1 = {\n exports: {}\n};\nvar _curry = {\n exports: {}\n};\n_curry.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = curry;\n\n // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n // eslint-disable-next-line no-unused-vars\n // eslint-disable-next-line no-unused-vars\n // eslint-disable-next-line no-redeclare\n function curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n } // eslint-disable-next-line no-redeclare\n\n function curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n }\n module.exports = exports.default;\n})(_curry, _curry.exports);\nvar _curryExports = _curry.exports;\nvar _guard = {\n exports: {}\n};\n_guard.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n function guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n }\n var _default = guard;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_guard, _guard.exports);\nvar _guardExports = _guard.exports;\nvar parseToHsl = {\n exports: {}\n};\nvar parseToRgb = {\n exports: {}\n};\nvar _hslToRgb = {\n exports: {}\n};\n_hslToRgb.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n function colorToInt(color) {\n return Math.round(color * 255);\n }\n function convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n }\n function hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n }\n var _default = hslToRgb;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_hslToRgb, _hslToRgb.exports);\nvar _hslToRgbExports = _hslToRgb.exports;\nvar _nameToHex = {\n exports: {}\n};\n_nameToHex.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n var namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n };\n /**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\n function nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n }\n var _default = nameToHex;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_nameToHex, _nameToHex.exports);\nvar _nameToHexExports = _nameToHex.exports;\nvar _errors = {\n exports: {}\n};\n_errors.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n }\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n }\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n /**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n var ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n };\n /**\n * super basic version of sprintf\n * @private\n */\n\n function format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var a = args[0];\n var b = [];\n var c;\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n }\n /**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n var PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n function PolishedError(code) {\n var _this;\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n return _assertThisInitialized(_this);\n }\n return PolishedError;\n }( /*#__PURE__*/_wrapNativeSuper(Error));\n exports[\"default\"] = PolishedError;\n module.exports = exports.default;\n})(_errors, _errors.exports);\nvar _errorsExports = _errors.exports;\nparseToRgb.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = parseToRgb;\n var _hslToRgb = /*#__PURE__*/_interopRequireDefault(_hslToRgbExports);\n var _nameToHex = /*#__PURE__*/_interopRequireDefault(_nameToHexExports);\n var _errors = /*#__PURE__*/_interopRequireDefault(_errorsExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n var hexRegex = /^#[a-fA-F0-9]{6}$/;\n var hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\n var reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\n var reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\n var rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\n var rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n var hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\n var hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n /**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\n function parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new _errors[\"default\"](3);\n }\n var normalizedColor = (0, _nameToHex[\"default\"])(color);\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n var rgbMatched = rgbRegex.exec(normalizedColor);\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n var hslMatched = hslRegex.exec(normalizedColor);\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + (0, _hslToRgb[\"default\"])(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n if (!hslRgbMatched) {\n throw new _errors[\"default\"](4, normalizedColor, rgbColorString);\n }\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n var _rgbColorString = \"rgb(\" + (0, _hslToRgb[\"default\"])(_hue, _saturation, _lightness) + \")\";\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n if (!_hslRgbMatched) {\n throw new _errors[\"default\"](4, normalizedColor, _rgbColorString);\n }\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n throw new _errors[\"default\"](5);\n }\n module.exports = exports.default;\n})(parseToRgb, parseToRgb.exports);\nvar parseToRgbExports = parseToRgb.exports;\nvar _rgbToHsl = {\n exports: {}\n};\n_rgbToHsl.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n function rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) / delta + 2;\n break;\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n hue *= 60;\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n }\n var _default = rgbToHsl;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_rgbToHsl, _rgbToHsl.exports);\nvar _rgbToHslExports = _rgbToHsl.exports;\nparseToHsl.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = parseToHsl;\n var _parseToRgb = /*#__PURE__*/_interopRequireDefault(parseToRgbExports);\n var _rgbToHsl = /*#__PURE__*/_interopRequireDefault(_rgbToHslExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n /**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n function parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return (0, _rgbToHsl[\"default\"])((0, _parseToRgb[\"default\"])(color));\n }\n module.exports = exports.default;\n})(parseToHsl, parseToHsl.exports);\nvar parseToHslExports = parseToHsl.exports;\nvar toColorString = {\n exports: {}\n};\nvar hsl = {\n exports: {}\n};\nvar _hslToHex = {\n exports: {}\n};\nvar _reduceHexValue = {\n exports: {}\n};\n_reduceHexValue.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n\n /**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n var reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n return value;\n };\n var _default = reduceHexValue;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_reduceHexValue, _reduceHexValue.exports);\nvar _reduceHexValueExports = _reduceHexValue.exports;\nvar _numberToHex = {\n exports: {}\n};\n_numberToHex.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n function numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n }\n var _default = numberToHex;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_numberToHex, _numberToHex.exports);\nvar _numberToHexExports = _numberToHex.exports;\n_hslToHex.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n var _hslToRgb = /*#__PURE__*/_interopRequireDefault(_hslToRgbExports);\n var _reduceHexValue = /*#__PURE__*/_interopRequireDefault(_reduceHexValueExports);\n var _numberToHex = /*#__PURE__*/_interopRequireDefault(_numberToHexExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n function colorToHex(color) {\n return (0, _numberToHex[\"default\"])(Math.round(color * 255));\n }\n function convertToHex(red, green, blue) {\n return (0, _reduceHexValue[\"default\"])(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n }\n function hslToHex(hue, saturation, lightness) {\n return (0, _hslToRgb[\"default\"])(hue, saturation, lightness, convertToHex);\n }\n var _default = hslToHex;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(_hslToHex, _hslToHex.exports);\nvar _hslToHexExports = _hslToHex.exports;\nhsl.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = hsl;\n var _hslToHex = /*#__PURE__*/_interopRequireDefault(_hslToHexExports);\n var _errors = /*#__PURE__*/_interopRequireDefault(_errorsExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n /**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n function hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return (0, _hslToHex[\"default\"])(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return (0, _hslToHex[\"default\"])(value.hue, value.saturation, value.lightness);\n }\n throw new _errors[\"default\"](1);\n }\n module.exports = exports.default;\n})(hsl, hsl.exports);\nvar hslExports = hsl.exports;\nvar hsla = {\n exports: {}\n};\nhsla.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = hsla;\n var _hslToHex = /*#__PURE__*/_interopRequireDefault(_hslToHexExports);\n var _hslToRgb = /*#__PURE__*/_interopRequireDefault(_hslToRgbExports);\n var _errors = /*#__PURE__*/_interopRequireDefault(_errorsExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n /**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n function hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? (0, _hslToHex[\"default\"])(value, saturation, lightness) : \"rgba(\" + (0, _hslToRgb[\"default\"])(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? (0, _hslToHex[\"default\"])(value.hue, value.saturation, value.lightness) : \"rgba(\" + (0, _hslToRgb[\"default\"])(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n throw new _errors[\"default\"](2);\n }\n module.exports = exports.default;\n})(hsla, hsla.exports);\nvar hslaExports = hsla.exports;\nvar rgb = {\n exports: {}\n};\nrgb.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = rgb;\n var _reduceHexValue = /*#__PURE__*/_interopRequireDefault(_reduceHexValueExports);\n var _numberToHex = /*#__PURE__*/_interopRequireDefault(_numberToHexExports);\n var _errors = /*#__PURE__*/_interopRequireDefault(_errorsExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n /**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n function rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return (0, _reduceHexValue[\"default\"])(\"#\" + (0, _numberToHex[\"default\"])(value) + (0, _numberToHex[\"default\"])(green) + (0, _numberToHex[\"default\"])(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return (0, _reduceHexValue[\"default\"])(\"#\" + (0, _numberToHex[\"default\"])(value.red) + (0, _numberToHex[\"default\"])(value.green) + (0, _numberToHex[\"default\"])(value.blue));\n }\n throw new _errors[\"default\"](6);\n }\n module.exports = exports.default;\n})(rgb, rgb.exports);\nvar rgbExports = rgb.exports;\nvar rgba = {\n exports: {}\n};\nrgba.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = rgba;\n var _parseToRgb = /*#__PURE__*/_interopRequireDefault(parseToRgbExports);\n var _rgb = /*#__PURE__*/_interopRequireDefault(rgbExports);\n var _errors = /*#__PURE__*/_interopRequireDefault(_errorsExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n /**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n function rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = (0, _parseToRgb[\"default\"])(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? (0, _rgb[\"default\"])(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? (0, _rgb[\"default\"])(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n throw new _errors[\"default\"](7);\n }\n module.exports = exports.default;\n})(rgba, rgba.exports);\nvar rgbaExports = rgba.exports;\ntoColorString.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = toColorString;\n var _hsl = /*#__PURE__*/_interopRequireDefault(hslExports);\n var _hsla = /*#__PURE__*/_interopRequireDefault(hslaExports);\n var _rgb = /*#__PURE__*/_interopRequireDefault(rgbExports);\n var _rgba = /*#__PURE__*/_interopRequireDefault(rgbaExports);\n var _errors = /*#__PURE__*/_interopRequireDefault(_errorsExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n var isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n };\n var isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n };\n var isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n };\n var isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n };\n /**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n function toColorString(color) {\n if (typeof color !== 'object') throw new _errors[\"default\"](8);\n if (isRgba(color)) return (0, _rgba[\"default\"])(color);\n if (isRgb(color)) return (0, _rgb[\"default\"])(color);\n if (isHsla(color)) return (0, _hsla[\"default\"])(color);\n if (isHsl(color)) return (0, _hsl[\"default\"])(color);\n throw new _errors[\"default\"](8);\n }\n module.exports = exports.default;\n})(toColorString, toColorString.exports);\nvar toColorStringExports = toColorString.exports;\ndarken$1.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n var _curry = /*#__PURE__*/_interopRequireDefault(_curryExports);\n var _guard = /*#__PURE__*/_interopRequireDefault(_guardExports);\n var _parseToHsl = /*#__PURE__*/_interopRequireDefault(parseToHslExports);\n var _toColorString = /*#__PURE__*/_interopRequireDefault(toColorStringExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n\n /**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n function darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = (0, _parseToHsl[\"default\"])(color);\n return (0, _toColorString[\"default\"])(_extends({}, hslColor, {\n lightness: (0, _guard[\"default\"])(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n } // prettier-ignore\n\n var curriedDarken = /*#__PURE__*/(0, _curry[\"default\"]\n /* :: */)(darken);\n var _default = curriedDarken;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(darken$1, darken$1.exports);\nvar darkenExports = darken$1.exports;\nvar darken = /*@__PURE__*/getDefaultExportFromCjs(darkenExports);\n\n// https://snook.ca/archives/html_and_css/hiding-content-for-accessibility\nvar defaultBaseline = {\n boxSizing: 'border-box',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n};\nvar defaultFonts = function (_a) {\n var type = _a.type;\n return {\n fontFamily: type.fontFamily.base,\n fontSize: type.fontSize.body,\n '-webkit-font-smoothing': 'antialiased'\n };\n};\nfunction deprecate(props, key, value, componentName) {\n if (props[key] === value) {\n // eslint-disable-next-line no-console\n console.warn(\"[DEPRECATED]: The \".concat(componentName, \" prop \").concat(String(key\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n ), \" with value \\\"\").concat(value, \"\\\" is deprecated and will be removed in the future\"));\n }\n}\nfunction extractType(node) {\n if (isValidElement(node)) return node.type;\n return '';\n}\nfunction extractDisplayName(type) {\n var _a, _b;\n return (_b = (_a = type.displayName) !== null && _a !== void 0 ? _a : type.name) !== null && _b !== void 0 ? _b : 'Unknown';\n}\nvar getDisplayName = function (child) {\n var type = extractType(child);\n if (typeof type === 'function' || typeof type === 'object') {\n return extractDisplayName(type);\n }\n if (typeof type === 'symbol') {\n return type.toString();\n }\n return type;\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar getState = function (state, newState) {\n return __assign(__assign({}, state), newState);\n};\nvar isControlled = function (value) {\n return !(value === undefined || value === null);\n};\nvar isBrowser = typeof window !== 'undefined';\nvar guardElement = function (e) {\n return isElement(e);\n};\nvar lighten$1 = {\n exports: {}\n};\nlighten$1.exports;\n(function (module, exports) {\n exports.__esModule = true;\n exports[\"default\"] = void 0;\n var _curry = /*#__PURE__*/_interopRequireDefault(_curryExports);\n var _guard = /*#__PURE__*/_interopRequireDefault(_guardExports);\n var _parseToHsl = /*#__PURE__*/_interopRequireDefault(parseToHslExports);\n var _toColorString = /*#__PURE__*/_interopRequireDefault(toColorStringExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n\n /**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n function lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = (0, _parseToHsl[\"default\"])(color);\n return (0, _toColorString[\"default\"])(_extends({}, hslColor, {\n lightness: (0, _guard[\"default\"])(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n } // prettier-ignore\n\n var curriedLighten = /*#__PURE__*/(0, _curry[\"default\"]\n /* :: */)(lighten);\n var _default = curriedLighten;\n exports[\"default\"] = _default;\n module.exports = exports.default;\n})(lighten$1, lighten$1.exports);\nvar lightenExports = lighten$1.exports;\nvar lighten = /*@__PURE__*/getDefaultExportFromCjs(lightenExports);\nfunction removeUndefinedProperties(obj) {\n var result = {};\n Object.entries(obj).forEach(function (_a) {\n var key = _a[0],\n value = _a[1];\n if (value !== undefined) {\n result[key] = value;\n }\n });\n return result;\n}\nvar safeRest = function (_a) {\n _a.className;\n _a.style;\n var props = __rest(_a, [\"className\", \"style\"]);\n return props;\n};\nvar conditionGuard = function (what, conditional) {\n return conditional;\n};\nvar notEmpty = function (value) {\n return value !== null && value !== undefined;\n};\nvar handlePortal = function (content, renderTo) {\n if (!renderTo) return content;\n if (conditionGuard(renderTo, isElement(renderTo))) return createPortal(content, renderTo);\n if (renderTo.current) return createPortal(content, renderTo.current);\n return content;\n};\n\n// Taken from lodash: https://github.com/lodash/lodash/blob/master/uniqueId.js\nvar idCounter = 0;\nvar uniqueId = function (prefix) {\n var id = ++idCounter;\n if (prefix == null) {\n throw new Error('The value is missing in uniqueId() parameter');\n }\n return \"\".concat(prefix).concat(id);\n};\n\n// send in the state value as a parameter and get the previous value of that state\nvar usePreviousState = function (value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n};\n\n/**\n * SSR Safe version of `useLayoutEffect`\n *\n * falls back to `useEffect` when not run in a browser\n */\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\n// https://snook.ca/archives/html_and_css/hiding-content-for-accessibility\nvar visuallyHidden = {\n border: '0px',\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n};\nvar withNested = function (component, args) {\n return Object.assign(component, args);\n};\nfunction withSpacing(Component) {\n /**\n * JSS injects css styles in the order of `createUseStyles` usage\n * Hence, useStyles needs to be instantiated every single time while\n * using this HOC because it should be the last `createUseStyles` usage\n * for a component. With this mechanism, `withSpacing` overwrites the component\n * spacing. Not ideal for a design system, but we are waiting on the\n * below ticket.\n *\n * Note: https://jira.surveymonkey.com/browse/WRENCH-1107\n *\n * If the decision is have `withStyles` NOT overwrite the component spacing,\n * just move this declaration outside of this component. `withSpacing` will then\n * add to the styles and not overwrite them.\n */\n var useStyles = createMemoStyles(function (_a) {\n var spacing = _a.spacing;\n return {\n wrenchSpacing: function (_a) {\n var margin = _a.margin,\n padding = _a.padding;\n return {\n marginTop: margin.t && spacing[margin.t],\n marginRight: margin.r && spacing[margin.r],\n marginBottom: margin.b && spacing[margin.b],\n marginLeft: margin.l && spacing[margin.l],\n paddingTop: padding.t && spacing[padding.t],\n paddingRight: padding.r && spacing[padding.r],\n paddingBottom: padding.b && spacing[padding.b],\n paddingLeft: padding.l && spacing[padding.l]\n };\n }\n };\n });\n var WithSpacing = function (_a) {\n var _b, _c, _d, _e, _f, _g, _h, _j;\n var m = _a.m,\n mx = _a.mx,\n my = _a.my,\n mt = _a.mt,\n mb = _a.mb,\n ml = _a.ml,\n mr = _a.mr,\n p = _a.p,\n px = _a.px,\n py = _a.py,\n pt = _a.pt,\n pb = _a.pb,\n pl = _a.pl,\n pr = _a.pr,\n className = _a.className,\n rest = __rest(_a, [\"m\", \"mx\", \"my\", \"mt\", \"mb\", \"ml\", \"mr\", \"p\", \"px\", \"py\", \"pt\", \"pb\", \"pl\", \"pr\", \"className\"]);\n var margin = {\n t: (_b = m !== null && m !== void 0 ? m : my) !== null && _b !== void 0 ? _b : mt,\n b: (_c = m !== null && m !== void 0 ? m : my) !== null && _c !== void 0 ? _c : mb,\n l: (_d = m !== null && m !== void 0 ? m : mx) !== null && _d !== void 0 ? _d : ml,\n r: (_e = m !== null && m !== void 0 ? m : mx) !== null && _e !== void 0 ? _e : mr\n };\n var padding = {\n t: (_f = p !== null && p !== void 0 ? p : py) !== null && _f !== void 0 ? _f : pt,\n b: (_g = p !== null && p !== void 0 ? p : py) !== null && _g !== void 0 ? _g : pb,\n l: (_h = p !== null && p !== void 0 ? p : px) !== null && _h !== void 0 ? _h : pl,\n r: (_j = p !== null && p !== void 0 ? p : px) !== null && _j !== void 0 ? _j : pr\n };\n var classes = useStyles({\n margin: margin,\n padding: padding\n });\n var Element = Component;\n return React.createElement(Element, __assign({\n spacingClass: classes.wrenchSpacing,\n className: className\n }, safeRest(rest)));\n };\n WithSpacing.displayName = \"WithSpacing(\".concat(getDisplayName(Component), \")\");\n WithSpacing.getOriginalComponent = function () {\n return Component;\n };\n return WithSpacing;\n}\nvar KEYS = {\n DOWN: 'ArrowDown',\n END: 'End',\n ESC: 'Escape',\n HOME: 'Home',\n LEFT: 'ArrowLeft',\n PAGE_DOWN: 'PageDown',\n PAGE_UP: 'PageUp',\n RIGHT: 'ArrowRight',\n UP: 'ArrowUp',\n ENTER: 'Enter',\n SPACE: ' ',\n BACKSPACE: 'Backspace',\n TAB: 'Tab'\n};\nexport { KEYS, clearfix, conditionGuard, createMemoStyles, createSpacingStyles, darken, defaultBaseline, defaultFonts, deprecate, extractDisplayName, extractType, getContrastColor, getDisplayName, getLineTruncationProperties, getState, guardElement, handlePortal, isBrowser, isControlled, lighten, notEmpty, removeUndefinedProperties, safeRest, uniqueId, useIsomorphicLayoutEffect, usePreviousState, visuallyHidden, withNested, withSpacing };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _s3upload = _interopRequireDefault(require(\"react-s3-uploader/s3upload\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nvar DEFAULT_OPTIONS = {\n preprocess: function preprocess(file, next) {\n next(file);\n },\n onSignedUrl: function onSignedUrl() {},\n onProgress: function onProgress() {},\n onFinish: function onFinish() {},\n onError: function onError() {},\n signingUrl: '/core/api/s3/sign',\n scrubFilename: function scrubFilename(filename) {\n return \".\".concat(filename.split('.').pop());\n },\n s3path: '',\n autoUpload: true\n};\n/**\n * Creates a new S3Uploader.\n * @class\n */\nvar S3Uploader = /*#__PURE__*/function () {\n /**\n * @constructs S3Uploader\n * @param {Object} options S3Uploader options\n * @param {string} options.server S3Uploader server\n * @param {string} options.signingUrl S3Uploader singingUrl\n * @param {string} options.server S3Uploader server\n * @param {Array} options.successResponses {code, code} Success responses\n * @param {string} [options.signingUrlMethod=\"GET\"] S3Uploader singingUrlMethod\n * @param {string} [options.s3path=\"\"] S3Uploader s3path\n * @param {boolean} [options.autoUpload=true] S3Uploader autoupload\n * @param {Object} options.files S3Uploader files\n * @param {Object} options.fileElement S3Uploader fileElement\n * @param {Function} options.onFinishS3Put S3Uploader onFinishS3Put function\n * @param {Function} options.onFinish OnFinish uploading function\n * @param {Function} options.preprocess preprocess function\n * @param {Function} options.onProgress onProgress uploading function\n * @param {Function} options.onError on upload error function\n * @param {Function} options.onSignedUrl signed url function\n * @param {Function} options.fileElement fileElement\n * @param {Function} options.inputRef inputRef\n * @param {Function} options.contentDisposition\n * @param {Object} options.uploadRequestHeaders\n * @param {boolean} options.getSignedUrl\n */\n\n function S3Uploader(options) {\n _classCallCheck(this, S3Uploader);\n this.options = void 0;\n this.myUploader = void 0;\n this.options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n }\n\n /**\n * Upload the file\n */\n _createClass(S3Uploader, [{\n key: \"uploadFile\",\n value: function uploadFile() {\n this.myUploader = new _s3upload.default(_objectSpread(_objectSpread({}, DEFAULT_OPTIONS), this.options));\n }\n\n /**\n * Abort the upload\n */\n }, {\n key: \"abort\",\n value: function abort() {\n if (this.myUploader) {\n this.myUploader.abortUpload();\n }\n }\n }]);\n return S3Uploader;\n}();\nexports.default = S3Uploader;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isTeamPackage = exports.isEnterprisePackage = exports.isBasicPackage = exports.isAnnualPackage = exports.PackageType = void 0;\n// constants and logic for dealing with billing packages\nvar PackageType;\nexports.PackageType = PackageType;\n(function (PackageType) {\n PackageType[PackageType[\"BASIC\"] = 1] = \"BASIC\";\n PackageType[PackageType[\"PRO\"] = 2] = \"PRO\";\n PackageType[PackageType[\"UNLIMITED\"] = 3] = \"UNLIMITED\";\n PackageType[PackageType[\"SELECT_MONTHLY\"] = 4] = \"SELECT_MONTHLY\";\n PackageType[PackageType[\"GOLD\"] = 5] = \"GOLD\";\n PackageType[PackageType[\"PLATINUM\"] = 6] = \"PLATINUM\";\n PackageType[PackageType[\"SELECT_YEARLY\"] = 7] = \"SELECT_YEARLY\";\n PackageType[PackageType[\"TEMP_PRO\"] = 8] = \"TEMP_PRO\";\n PackageType[PackageType[\"PRO_COMP\"] = 9] = \"PRO_COMP\";\n PackageType[PackageType[\"ZOOM_PRO\"] = 13] = \"ZOOM_PRO\";\n PackageType[PackageType[\"ZOOM_PREMIUM\"] = 16] = \"ZOOM_PREMIUM\";\n PackageType[PackageType[\"ENT_GOLD\"] = 25] = \"ENT_GOLD\";\n PackageType[PackageType[\"ENTERPRISE_PLATINUM\"] = 26] = \"ENTERPRISE_PLATINUM\";\n PackageType[PackageType[\"ENTERPRISE\"] = 27] = \"ENTERPRISE\";\n PackageType[PackageType[\"ENTERPRISE_PRO\"] = 28] = \"ENTERPRISE_PRO\";\n PackageType[PackageType[\"ENTERPRISE_CASUAL_USER\"] = 29] = \"ENTERPRISE_CASUAL_USER\";\n PackageType[PackageType[\"ENTERPRISE_ULTIMATE\"] = 30] = \"ENTERPRISE_ULTIMATE\";\n PackageType[PackageType[\"STANDARD_MONTHLY\"] = 31] = \"STANDARD_MONTHLY\";\n PackageType[PackageType[\"STANDARD_ANNUAL\"] = 32] = \"STANDARD_ANNUAL\";\n PackageType[PackageType[\"ADVANTAGE_MONTHLY\"] = 33] = \"ADVANTAGE_MONTHLY\";\n PackageType[PackageType[\"ADVANTAGE_ANNUAL\"] = 34] = \"ADVANTAGE_ANNUAL\";\n PackageType[PackageType[\"PREMIER_MONTHLY\"] = 35] = \"PREMIER_MONTHLY\";\n PackageType[PackageType[\"PREMIER_ANNUAL\"] = 36] = \"PREMIER_ANNUAL\";\n PackageType[PackageType[\"ANALYZE_PACKAGE\"] = 37] = \"ANALYZE_PACKAGE\";\n PackageType[PackageType[\"TEAM_ADVANTAGE_ANNUAL\"] = 134] = \"TEAM_ADVANTAGE_ANNUAL\";\n PackageType[PackageType[\"TEAM_PREMIER_ANNUAL\"] = 136] = \"TEAM_PREMIER_ANNUAL\";\n PackageType[PackageType[\"ENTERPRISE_CONTRIBUTOR_SEAT\"] = 226] = \"ENTERPRISE_CONTRIBUTOR_SEAT\";\n PackageType[PackageType[\"TEAM_ADVANTAGE_CONTRIBUTOR_SEAT\"] = 234] = \"TEAM_ADVANTAGE_CONTRIBUTOR_SEAT\";\n PackageType[PackageType[\"TEAM_PREMIER_CONTRIBUTOR_SEAT\"] = 236] = \"TEAM_PREMIER_CONTRIBUTOR_SEAT\";\n})(PackageType || (exports.PackageType = PackageType = {}));\nvar isAnnualPackage = function isAnnualPackage(packageID) {\n return [PackageType.ENTERPRISE_PLATINUM, PackageType.ENTERPRISE, PackageType.ENTERPRISE_PRO, PackageType.ENTERPRISE_ULTIMATE, PackageType.STANDARD_ANNUAL, PackageType.ADVANTAGE_ANNUAL, PackageType.PREMIER_ANNUAL, PackageType.TEAM_ADVANTAGE_ANNUAL, PackageType.TEAM_PREMIER_ANNUAL].includes(packageID);\n};\nexports.isAnnualPackage = isAnnualPackage;\nvar isBasicPackage = function isBasicPackage(packageID) {\n return packageID === PackageType.BASIC;\n};\nexports.isBasicPackage = isBasicPackage;\nvar isEnterprisePackage = function isEnterprisePackage(packageID) {\n return [PackageType.ENT_GOLD, PackageType.ENTERPRISE, PackageType.ENTERPRISE_CONTRIBUTOR_SEAT, PackageType.ENTERPRISE_PLATINUM, PackageType.ENTERPRISE_CASUAL_USER, PackageType.ENTERPRISE_PRO, PackageType.ENTERPRISE_ULTIMATE].includes(packageID);\n};\nexports.isEnterprisePackage = isEnterprisePackage;\nvar isTeamPackage = function isTeamPackage(packageID) {\n return [PackageType.ENTERPRISE_PLATINUM, PackageType.ENTERPRISE_PRO, PackageType.ENTERPRISE_ULTIMATE, PackageType.ENTERPRISE, PackageType.TEAM_ADVANTAGE_ANNUAL, PackageType.TEAM_PREMIER_ANNUAL].indexOf(packageID) > -1;\n};\nexports.isTeamPackage = isTeamPackage;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.environmentDetails = exports.SupportedBrowserVendors = void 0;\nexports.getClientEnvironmentDetails = getClientEnvironmentDetails;\nexports.isBrowserSupported = isBrowserSupported;\nvar _bowser = _interopRequireDefault(require(\"bowser\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Environment Details\n * @typedef {Object}\n * @property {boolean} isNode\n * @property {boolean} isBrowser\n * @property {boolean} isDesktop\n * @property {boolean} isHeadlessChrome\n * @property {boolean} isMobile\n * @property {boolean} isTablet\n * @property {boolean} isIOS\n * @property {boolean} isAndroid\n * @property {Object} clientWindowSize\n * @property {string} clientWindowSize.width\n * @property {string} clientWindowSize.height\n * @memberof module:@sm/utils\n */\nvar environmentDetails = {\n isNode: false,\n isBrowser: false,\n isDesktop: false,\n isHeadlessChrome: false,\n isMobile: false,\n isTablet: false,\n isIOS: false,\n isAndroid: false,\n clientWindowSize: {\n width: undefined,\n height: undefined\n }\n};\nexports.environmentDetails = environmentDetails;\nvar userAgentTracker = '';\n\n/**\n * inspectAgent\n * @param {string} userAgent The string for the user agent\n */\nfunction inspectAgent(userAgent) {\n if (!userAgent) {\n return;\n }\n if (userAgent.match(/iPhone|iPod|iPad/i) !== null) {\n environmentDetails.isIOS = true;\n if (userAgent.match(/iPad/i) !== null) {\n environmentDetails.isTablet = true;\n } else {\n environmentDetails.isMobile = true;\n }\n } else if (userAgent.match(/Android/i) !== null) {\n environmentDetails.isMobile = true;\n environmentDetails.isAndroid = true;\n } else if (userAgent.match(/HeadlessChrome/i) !== null) {\n environmentDetails.isHeadlessChrome = true;\n } else {\n environmentDetails.isDesktop = true;\n }\n}\n\n/**\n * Initialize\n * @param {string} userAgent The string for the user agent\n * @private\n */\nfunction _initialize(userAgent) {\n var ua = userAgent;\n if (typeof window === 'object') {\n environmentDetails.isBrowser = true;\n window.SM = window.SM || {};\n var _window = window,\n SM = _window.SM;\n SM.__LOAD_PAYLOAD_CACHE__ = SM.__LOAD_PAYLOAD_CACHE__ || {};\n // Detect banner type (iOS or Android)\n environmentDetails.clientWindowSize = {\n width: document.body.clientWidth,\n height: document.body.clientHeight\n };\n ua = navigator.userAgent;\n } else {\n environmentDetails.isNode = true;\n }\n inspectAgent(ua);\n}\n\n/**\n * Returns the environment details\n * @param {string} userAgent The string for the user agent\n * @returns {environmentDetails} env details\n * @memberof module:@sm/utils\n */\nfunction getClientEnvironmentDetails() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (environmentDetails.isBrowser === false && environmentDetails.isNode === false || userAgentTracker !== userAgent) {\n userAgentTracker = userAgent;\n _initialize(userAgentTracker);\n }\n return environmentDetails;\n}\nvar SupportedBrowserVendors;\nexports.SupportedBrowserVendors = SupportedBrowserVendors;\n(function (SupportedBrowserVendors) {\n SupportedBrowserVendors[\"Chrome\"] = \"chrome\";\n SupportedBrowserVendors[\"Firefox\"] = \"firefox\";\n SupportedBrowserVendors[\"Safari\"] = \"safari\";\n SupportedBrowserVendors[\"IE\"] = \"ie\";\n SupportedBrowserVendors[\"Edge\"] = \"edge\";\n})(SupportedBrowserVendors || (exports.SupportedBrowserVendors = SupportedBrowserVendors = {}));\nvar defaultSupportedBrowsers = [{\n vendor: SupportedBrowserVendors.Chrome,\n operator: '>=',\n version: '18'\n}, {\n vendor: SupportedBrowserVendors.Firefox,\n operator: '>=',\n version: '24'\n}, {\n vendor: SupportedBrowserVendors.Safari,\n operator: '>=',\n version: '7'\n}, {\n vendor: SupportedBrowserVendors.Edge,\n operator: '>=',\n version: '12'\n}, {\n vendor: SupportedBrowserVendors.IE,\n operator: '>=',\n version: '11'\n}];\nfunction isBrowserSupported(userAgent, supportedBrowsers) {\n var browser = _bowser.default.getParser(userAgent);\n var browsers = supportedBrowsers || defaultSupportedBrowsers;\n browsers.forEach(function (_ref) {\n var version = _ref.version;\n if (!version.match(/^\\d+(\\.\\d+)?(\\.\\d+)?$/)) {\n throw new Error(\"Unsupported version number: \".concat(version));\n }\n });\n var config = browsers.reduce(function (cfg, _ref2) {\n var vendor = _ref2.vendor,\n operator = _ref2.operator,\n version = _ref2.version;\n cfg[vendor] = \"\".concat(operator).concat(version);\n return cfg;\n }, {});\n return browser.satisfies(config) || false;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"PackageType\", {\n enumerable: true,\n get: function get() {\n return _billing.PackageType;\n }\n});\nObject.defineProperty(exports, \"PartialDeep\", {\n enumerable: true,\n get: function get() {\n return _tsAutoMock.PartialDeep;\n }\n});\nObject.defineProperty(exports, \"S3Uploader\", {\n enumerable: true,\n get: function get() {\n return _S3Uploader.default;\n }\n});\nObject.defineProperty(exports, \"SupportedBrowserVendors\", {\n enumerable: true,\n get: function get() {\n return _environment.SupportedBrowserVendors;\n }\n});\nObject.defineProperty(exports, \"SupportedBrowsers\", {\n enumerable: true,\n get: function get() {\n return _environment.SupportedBrowsers;\n }\n});\nObject.defineProperty(exports, \"VersionOperators\", {\n enumerable: true,\n get: function get() {\n return _environment.VersionOperators;\n }\n});\nObject.defineProperty(exports, \"createMock\", {\n enumerable: true,\n get: function get() {\n return _tsAutoMock.createMock;\n }\n});\nObject.defineProperty(exports, \"createURL\", {\n enumerable: true,\n get: function get() {\n return _createURL.default;\n }\n});\nObject.defineProperty(exports, \"deepFreeze\", {\n enumerable: true,\n get: function get() {\n return _deepFreeze.default;\n }\n});\nObject.defineProperty(exports, \"getClientEnvironmentDetails\", {\n enumerable: true,\n get: function get() {\n return _environment.getClientEnvironmentDetails;\n }\n});\nObject.defineProperty(exports, \"isAnnualPackage\", {\n enumerable: true,\n get: function get() {\n return _billing.isAnnualPackage;\n }\n});\nObject.defineProperty(exports, \"isBasicPackage\", {\n enumerable: true,\n get: function get() {\n return _billing.isBasicPackage;\n }\n});\nObject.defineProperty(exports, \"isBrowserSupported\", {\n enumerable: true,\n get: function get() {\n return _environment.isBrowserSupported;\n }\n});\nObject.defineProperty(exports, \"isEnterprisePackage\", {\n enumerable: true,\n get: function get() {\n return _billing.isEnterprisePackage;\n }\n});\nObject.defineProperty(exports, \"isTeamPackage\", {\n enumerable: true,\n get: function get() {\n return _billing.isTeamPackage;\n }\n});\nObject.defineProperty(exports, \"isValidEmail\", {\n enumerable: true,\n get: function get() {\n return _isValidEmail.default;\n }\n});\nObject.defineProperty(exports, \"sanitizeString\", {\n enumerable: true,\n get: function get() {\n return _sanitizeString.default;\n }\n});\nvar _sanitizeString = _interopRequireDefault(require(\"./string/sanitizeString\"));\nvar _isValidEmail = _interopRequireDefault(require(\"./string/isValidEmail\"));\nvar _createURL = _interopRequireDefault(require(\"./url/createURL\"));\nvar _deepFreeze = _interopRequireDefault(require(\"./object/deepFreeze\"));\nvar _S3Uploader = _interopRequireDefault(require(\"./S3Uploader/S3Uploader\"));\nvar _environment = require(\"./environment\");\nvar _billing = require(\"./billing\");\nvar _tsAutoMock = require(\"./ts-auto-mock\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = deepFreeze;\n/**\n * Freezes the object\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.getOwnPropertyNames(o).forEach(function (prop) {\n if (Object.hasOwnProperty.call(o, prop) && o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n return o;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValidEmail;\n/**\n * Validates if the input is an email or not\n * @param {string} email\n * @returns {boolean} Is email valid\n * @memberof module:@sm/utils\n */\nfunction isValidEmail(email) {\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _dompurify = _interopRequireWildcard(require(\"dompurify\"));\nvar _environment = require(\"../environment\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nvar stringSanitize = _dompurify.sanitize;\nif ((0, _environment.getClientEnvironmentDetails)().isNode) {\n var _require = require('jsdom'),\n JSDOM = _require.JSDOM; // eslint-disable-line\n\n var _JSDOM = new JSDOM(''),\n window = _JSDOM.window;\n var DOMPurify = (0, _dompurify.default)(window);\n stringSanitize = DOMPurify.sanitize;\n}\nvar _default = stringSanitize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createMock = createMock;\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n/* eslint-disable @typescript-eslint/ban-types */\n// PartialDeep implementation comes from https://github.com/Typescript-TDD/ts-auto-mock/blob/master/src/partial/partial.ts\n\n/**\nSame as `PartialDeep`, but accepts only `Map`s and as inputs. Internal helper for `PartialDeep`.\n */\n\n/**\nSame as `PartialDeep`, but accepts only `Set`s as inputs. Internal helper for `PartialDeep`.\n */\n\n/**\nSame as `PartialDeep`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `PartialDeep`.\n */\n\n/**\nSame as `PartialDeep`, but accepts only `ReadonlySet`s as inputs. Internal helper for `PartialDeep`.\n */\n\n/**\nSame as `PartialDeep`, but accepts only `object`s as inputs. Internal helper for `PartialDeep`.\n */\n\nfunction createMock(overrides) {\n return _objectSpread({}, overrides);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createURL;\n/**\n * Creates a url from base and params\n * @param {string} url\n * @param {Object} [params] Query string params\n * @returns {string} url\n * @memberof module:@sm/utils\n */\nfunction createURL(url, params) {\n if (!params || typeof params !== 'object' || Object.keys(params).length === 0) return url;\n var queryString = Object.keys(params).map(function (key) {\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(params[key]));\n }).join('&');\n var queryURL = \"\".concat(url, \"?\").concat(queryString);\n return queryURL;\n}\nmodule.exports = exports.default;","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t(require(\"react\"), require(\"react-dom\")) : \"function\" == typeof define && define.amd ? define([\"react\", \"react-dom\"], t) : \"object\" == typeof exports ? exports.wds = t(require(\"react\"), require(\"react-dom\")) : e.wds = t(e.react, e[\"react-dom\"]);\n}(\"undefined\" != typeof self ? self : this, function (e, t) {\n return function (e) {\n var t = {};\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 12);\n }([function (t, n) {\n t.exports = e;\n }, function (e, t, n) {\n e.exports = n(7)();\n }, function (e, t, n) {\n var r = n(6);\n e.exports = function (e, t) {\n if (null == e) return {};\n var n,\n o,\n i = r(e, t);\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n for (o = 0; o < a.length; o++) n = a[o], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (i[n] = e[n]);\n }\n return i;\n };\n },, function (e, n) {\n e.exports = t;\n },, function (e, t) {\n e.exports = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n i = Object.keys(e);\n for (r = 0; r < i.length; r++) n = i[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n return o;\n };\n }, function (e, t, n) {\n \"use strict\";\n\n var r = n(8);\n function o() {}\n function i() {}\n i.resetWarningCache = o, e.exports = function () {\n function e(e, t, n, o, i, a) {\n if (a !== r) {\n var s = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw s.name = \"Invariant Violation\", s;\n }\n }\n function t() {\n return e;\n }\n e.isRequired = e;\n var n = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: i,\n resetWarningCache: o\n };\n return n.PropTypes = n, n;\n };\n }, function (e, t, n) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }, function (e, t, n) {}, function (e, t, n) {}, function (e, t, n) {}, function (e, t, n) {\n \"use strict\";\n\n n.r(t), n.d(t, \"Slide\", function () {\n return S;\n }), n.d(t, \"Fade\", function () {\n return _;\n }), n.d(t, \"Zoom\", function () {\n return k;\n });\n var r = n(2),\n o = n.n(r),\n i = n(0),\n a = n.n(i),\n s = n(1),\n u = n.n(s);\n function l() {\n return (l = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n }).apply(this, arguments);\n }\n function p(e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n i = Object.keys(e);\n for (r = 0; r < i.length; r++) n = i[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n return o;\n }\n function c(e, t) {\n e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t;\n }\n function d(e, t) {\n return e.replace(new RegExp(\"(^|\\\\s)\" + t + \"(?:\\\\s|$)\", \"g\"), \"$1\").replace(/\\s+/g, \" \").replace(/^\\s*|\\s*$/g, \"\");\n }\n var f = n(4),\n m = n.n(f),\n h = !1,\n x = a.a.createContext(null),\n E = function (e) {\n function t(t, n) {\n var r;\n r = e.call(this, t, n) || this;\n var o,\n i = n && !n.isMounting ? t.enter : t.appear;\n return r.appearStatus = null, t.in ? i ? (o = \"exited\", r.appearStatus = \"entering\") : o = \"entered\" : o = t.unmountOnExit || t.mountOnEnter ? \"unmounted\" : \"exited\", r.state = {\n status: o\n }, r.nextCallback = null, r;\n }\n c(t, e), t.getDerivedStateFromProps = function (e, t) {\n return e.in && \"unmounted\" === t.status ? {\n status: \"exited\"\n } : null;\n };\n var n = t.prototype;\n return n.componentDidMount = function () {\n this.updateStatus(!0, this.appearStatus);\n }, n.componentDidUpdate = function (e) {\n var t = null;\n if (e !== this.props) {\n var n = this.state.status;\n this.props.in ? \"entering\" !== n && \"entered\" !== n && (t = \"entering\") : \"entering\" !== n && \"entered\" !== n || (t = \"exiting\");\n }\n this.updateStatus(!1, t);\n }, n.componentWillUnmount = function () {\n this.cancelNextCallback();\n }, n.getTimeouts = function () {\n var e,\n t,\n n,\n r = this.props.timeout;\n return e = t = n = r, null != r && \"number\" != typeof r && (e = r.exit, t = r.enter, n = void 0 !== r.appear ? r.appear : t), {\n exit: e,\n enter: t,\n appear: n\n };\n }, n.updateStatus = function (e, t) {\n if (void 0 === e && (e = !1), null !== t) {\n this.cancelNextCallback();\n var n = m.a.findDOMNode(this);\n \"entering\" === t ? this.performEnter(n, e) : this.performExit(n);\n } else this.props.unmountOnExit && \"exited\" === this.state.status && this.setState({\n status: \"unmounted\"\n });\n }, n.performEnter = function (e, t) {\n var n = this,\n r = this.props.enter,\n o = this.context ? this.context.isMounting : t,\n i = this.getTimeouts(),\n a = o ? i.appear : i.enter;\n !t && !r || h ? this.safeSetState({\n status: \"entered\"\n }, function () {\n n.props.onEntered(e);\n }) : (this.props.onEnter(e, o), this.safeSetState({\n status: \"entering\"\n }, function () {\n n.props.onEntering(e, o), n.onTransitionEnd(e, a, function () {\n n.safeSetState({\n status: \"entered\"\n }, function () {\n n.props.onEntered(e, o);\n });\n });\n }));\n }, n.performExit = function (e) {\n var t = this,\n n = this.props.exit,\n r = this.getTimeouts();\n n && !h ? (this.props.onExit(e), this.safeSetState({\n status: \"exiting\"\n }, function () {\n t.props.onExiting(e), t.onTransitionEnd(e, r.exit, function () {\n t.safeSetState({\n status: \"exited\"\n }, function () {\n t.props.onExited(e);\n });\n });\n })) : this.safeSetState({\n status: \"exited\"\n }, function () {\n t.props.onExited(e);\n });\n }, n.cancelNextCallback = function () {\n null !== this.nextCallback && (this.nextCallback.cancel(), this.nextCallback = null);\n }, n.safeSetState = function (e, t) {\n t = this.setNextCallback(t), this.setState(e, t);\n }, n.setNextCallback = function (e) {\n var t = this,\n n = !0;\n return this.nextCallback = function (r) {\n n && (n = !1, t.nextCallback = null, e(r));\n }, this.nextCallback.cancel = function () {\n n = !1;\n }, this.nextCallback;\n }, n.onTransitionEnd = function (e, t, n) {\n this.setNextCallback(n);\n var r = null == t && !this.props.addEndListener;\n e && !r ? (this.props.addEndListener && this.props.addEndListener(e, this.nextCallback), null != t && setTimeout(this.nextCallback, t)) : setTimeout(this.nextCallback, 0);\n }, n.render = function () {\n var e = this.state.status;\n if (\"unmounted\" === e) return null;\n var t = this.props,\n n = t.children,\n r = p(t, [\"children\"]);\n if (delete r.in, delete r.mountOnEnter, delete r.unmountOnExit, delete r.appear, delete r.enter, delete r.exit, delete r.timeout, delete r.addEndListener, delete r.onEnter, delete r.onEntering, delete r.onEntered, delete r.onExit, delete r.onExiting, delete r.onExited, \"function\" == typeof n) return a.a.createElement(x.Provider, {\n value: null\n }, n(e, r));\n var o = a.a.Children.only(n);\n return a.a.createElement(x.Provider, {\n value: null\n }, a.a.cloneElement(o, r));\n }, t;\n }(a.a.Component);\n function v() {}\n E.contextType = x, E.propTypes = {}, E.defaultProps = {\n in: !1,\n mountOnEnter: !1,\n unmountOnExit: !1,\n appear: !1,\n enter: !0,\n exit: !0,\n onEnter: v,\n onEntering: v,\n onEntered: v,\n onExit: v,\n onExiting: v,\n onExited: v\n }, E.UNMOUNTED = 0, E.EXITED = 1, E.ENTERING = 2, E.ENTERED = 3, E.EXITING = 4;\n var y = E,\n b = function (e, t) {\n return e && t && t.split(\" \").forEach(function (t) {\n return r = t, void ((n = e).classList ? n.classList.remove(r) : \"string\" == typeof n.className ? n.className = d(n.className, r) : n.setAttribute(\"class\", d(n.className && n.className.baseVal || \"\", r)));\n var n, r;\n });\n },\n g = function (e) {\n function t() {\n for (var t, n = arguments.length, r = new Array(n), o = 0; o < n; o++) r[o] = arguments[o];\n return (t = e.call.apply(e, [this].concat(r)) || this).appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n }, t.onEnter = function (e, n) {\n t.removeClasses(e, \"exit\"), t.addClass(e, n ? \"appear\" : \"enter\", \"base\"), t.props.onEnter && t.props.onEnter(e, n);\n }, t.onEntering = function (e, n) {\n var r = n ? \"appear\" : \"enter\";\n t.addClass(e, r, \"active\"), t.props.onEntering && t.props.onEntering(e, n);\n }, t.onEntered = function (e, n) {\n var r = n ? \"appear\" : \"enter\";\n t.removeClasses(e, r), t.addClass(e, r, \"done\"), t.props.onEntered && t.props.onEntered(e, n);\n }, t.onExit = function (e) {\n t.removeClasses(e, \"appear\"), t.removeClasses(e, \"enter\"), t.addClass(e, \"exit\", \"base\"), t.props.onExit && t.props.onExit(e);\n }, t.onExiting = function (e) {\n t.addClass(e, \"exit\", \"active\"), t.props.onExiting && t.props.onExiting(e);\n }, t.onExited = function (e) {\n t.removeClasses(e, \"exit\"), t.addClass(e, \"exit\", \"done\"), t.props.onExited && t.props.onExited(e);\n }, t.getClassNames = function (e) {\n var n = t.props.classNames,\n r = \"string\" == typeof n,\n o = r ? \"\" + (r && n ? n + \"-\" : \"\") + e : n[e];\n return {\n baseClassName: o,\n activeClassName: r ? o + \"-active\" : n[e + \"Active\"],\n doneClassName: r ? o + \"-done\" : n[e + \"Done\"]\n };\n }, t;\n }\n c(t, e);\n var n = t.prototype;\n return n.addClass = function (e, t, n) {\n var r = this.getClassNames(t)[n + \"ClassName\"];\n \"appear\" === t && \"done\" === n && (r += \" \" + this.getClassNames(\"enter\").doneClassName), \"active\" === n && e && e.scrollTop, this.appliedClasses[t][n] = r, function (e, t) {\n e && t && t.split(\" \").forEach(function (t) {\n return r = t, void ((n = e).classList ? n.classList.add(r) : function (e, t) {\n return e.classList ? !!t && e.classList.contains(t) : -1 !== (\" \" + (e.className.baseVal || e.className) + \" \").indexOf(\" \" + t + \" \");\n }(n, r) || (\"string\" == typeof n.className ? n.className = n.className + \" \" + r : n.setAttribute(\"class\", (n.className && n.className.baseVal || \"\") + \" \" + r)));\n var n, r;\n });\n }(e, r);\n }, n.removeClasses = function (e, t) {\n var n = this.appliedClasses[t],\n r = n.base,\n o = n.active,\n i = n.done;\n this.appliedClasses[t] = {}, r && b(e, r), o && b(e, o), i && b(e, i);\n }, n.render = function () {\n var e = this.props,\n t = (e.classNames, p(e, [\"classNames\"]));\n return a.a.createElement(y, l({}, t, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n }, t;\n }(a.a.Component);\n g.defaultProps = {\n classNames: \"\"\n }, g.propTypes = {};\n var C = g,\n O = [\"slow\", \"normal\", \"fast\"],\n N = (n(9), function (e) {\n var t = e.children,\n n = e.timeout,\n r = e.direction,\n i = e.speed,\n s = e.distance,\n u = o()(e, [\"children\", \"timeout\", \"direction\", \"speed\", \"distance\"]);\n return \"fast\" === i ? n = 150 : \"slow\" === i && (n = 350), a.a.createElement(C, Object.assign({\n classNames: \"wds-slide--\".concat(r, \" wds-slide--speed-\").concat(i, \" wds-slide--distance-\").concat(s, \" wds-slide-\"),\n timeout: {\n enter: n,\n exit: n\n },\n unmountOnExit: !0\n }, u), t);\n });\n N.displayName = \"Slide\", N.propTypes = {\n children: u.a.node.isRequired,\n direction: u.a.oneOf([\"up\", \"right\", \"down\", \"left\"]),\n timeout: u.a.number,\n speed: u.a.oneOf(O),\n distance: u.a.oneOf([\"normal\", \"near\", \"far\"])\n }, N.defaultProps = {\n direction: \"up\",\n speed: \"normal\",\n distance: \"normal\",\n timeout: 200\n }, N.__docgenInfo = {\n description: \"\",\n methods: [],\n displayName: \"Slide\",\n props: {\n direction: {\n defaultValue: {\n value: \"'up'\",\n computed: !1\n },\n type: {\n name: \"enum\",\n computed: !0,\n value: \"motionDirections\"\n },\n required: !1,\n description: \"\"\n },\n speed: {\n defaultValue: {\n value: \"'normal'\",\n computed: !1\n },\n type: {\n name: \"enum\",\n computed: !0,\n value: \"motionSpeeds\"\n },\n required: !1,\n description: \"\"\n },\n distance: {\n defaultValue: {\n value: \"'normal'\",\n computed: !1\n },\n type: {\n name: \"enum\",\n computed: !0,\n value: \"motionDistances\"\n },\n required: !1,\n description: \"\"\n },\n timeout: {\n defaultValue: {\n value: \"200\",\n computed: !1\n },\n type: {\n name: \"number\"\n },\n required: !1,\n description: \"\"\n },\n children: {\n type: {\n name: \"node\"\n },\n required: !0,\n description: \"\"\n }\n }\n };\n var S = N,\n T = (n(10), function (e) {\n var t = e.children,\n n = e.timeout,\n r = e.speed,\n i = o()(e, [\"children\", \"timeout\", \"speed\"]);\n return \"fast\" === r ? n = 150 : \"slow\" === r && (n = 350), a.a.createElement(C, Object.assign({\n classNames: \"wds-fade--\".concat(r, \" wds-fade-\"),\n timeout: {\n enter: n,\n exit: n\n },\n unmountOnExit: !0\n }, i), t);\n });\n T.displayName = \"Fade\", T.propTypes = {\n children: u.a.node.isRequired,\n timeout: u.a.number,\n speed: u.a.oneOf(O)\n }, T.defaultProps = {\n timeout: 250,\n speed: \"normal\"\n }, T.__docgenInfo = {\n description: \"\",\n methods: [],\n displayName: \"Fade\",\n props: {\n timeout: {\n defaultValue: {\n value: \"250\",\n computed: !1\n },\n type: {\n name: \"number\"\n },\n required: !1,\n description: \"\"\n },\n speed: {\n defaultValue: {\n value: \"'normal'\",\n computed: !1\n },\n type: {\n name: \"enum\",\n computed: !0,\n value: \"motionSpeeds\"\n },\n required: !1,\n description: \"\"\n },\n children: {\n type: {\n name: \"node\"\n },\n required: !0,\n description: \"\"\n }\n }\n };\n var _ = T,\n j = (n(11), function (e) {\n var t = e.children,\n n = e.timeout,\n r = o()(e, [\"children\", \"timeout\"]);\n return a.a.createElement(C, Object.assign({\n classNames: \"wds-zoom-\",\n timeout: {\n enter: n,\n exit: n\n },\n unmountOnExit: !0\n }, r), t);\n });\n j.displayName = \"Zoom\", j.propTypes = {\n children: u.a.node.isRequired,\n timeout: u.a.number\n }, j.defaultProps = {\n timeout: 250\n }, j.__docgenInfo = {\n description: \"\",\n methods: [],\n displayName: \"Zoom\",\n props: {\n timeout: {\n defaultValue: {\n value: \"250\",\n computed: !1\n },\n type: {\n name: \"number\"\n },\n required: !1,\n description: \"\"\n },\n children: {\n type: {\n name: \"node\"\n },\n required: !0,\n description: \"\"\n }\n }\n };\n var k = j;\n }]);\n});","/*\n * Tools for creating TypeGuards.\n */\n// primitive type guards\nconst notNull = u => u !== null;\nconst isNull = u => u === null;\nconst isString = u => typeof u === 'string';\nconst isNumber = u => typeof u === 'number';\nconst isOptional = guard => u => u === undefined || guard(u);\nconst isArrayOf = guard => u => Array.isArray(u) && u.every(guard);\n/** TypeGuard for discriminated unions of strings */\nconst isOneOf = list => u => !!list.find(i => i === u);\n/** TypeGuard for fixed values */\nconst isFixed = value => u => u === value;\n// type guard operators\n/** TypeGuard for discriminated unions of objects\n *\n * Does not currently infer the array types, so `T` needs to be provided\n */\nconst isEither = list => u => !!list.find(g => g(u));\nconst isNullable = guard => u => {\n if (u === null) {\n return true;\n }\n const res = guard(u);\n return typeof res === 'boolean' && res;\n};\n/** TypeGuard for an object. Needs to have one Guard for every attribute */\nconst typeGuard = guards => u => {\n return Object.entries(guards).every(([key, guard]) => {\n if (!u) {\n return false;\n }\n const value = u[key];\n if (!guard(value)) {\n return false;\n }\n return true;\n });\n};\n/**\n * TypeAssertion for an object. Needs to have one Guard or TypeAssertion for every attribute.\n * Will throw an error if the property is of the wrong type.\n */\n// TODO: refactor the typeGuard function to work as a typeAssertion when called by a typeAssertion\nfunction typeAssertion(guards) {\n return function assertGuard(u) {\n // for function Guards like `isEither`\n if (typeof guards === 'function') {\n const res = guards(u);\n if (typeof res === 'boolean' && !res) {\n throw new Error('failed-typeguard');\n }\n return;\n }\n // default with a Guard object\n Object.entries(guards).forEach(([key, guard]) => {\n if (!u) {\n throw new Error(`Can't read property '${key}' of '${u}'`);\n }\n const value = u[key];\n try {\n const res = guard(value);\n if (typeof res === 'boolean' && !res) {\n throw new Error('failed-typeguard');\n }\n } catch (e) {\n // TODO: write or install a nested error object\n throw new Error(`Value '${value}' has the wrong type for property '${key}':${'\\n'}${e && e.message}`);\n }\n });\n };\n}\nconst questionTypeFamilies = ['PRESENTATION', 'MULTIPLE_CHOICE', 'OPEN_ENDED', 'RATING_SCALE', 'MATRIX', 'RANKING', 'SLIDER', 'DATETIME', 'CONTACT_INFO', 'CLICK_MAP', 'FILE_UPLOAD'];\nconst questionTypeRequiredPredicateTypes = ['ALL', 'AT_LEAST', 'AT_MOST', 'EXACTLY', 'RANGE'\n// 'REQUIRED_ANSWERS_LIST',\n];\n\nconst questionTypeVariants = ['TEXT', 'IMAGE', 'SINGLE_LINE', 'ESSAY', 'MANY_FIELDS', 'SINGLE_ANSWER_RADIO', 'SINGLE_ANSWER_SYMBOL', 'SINGLE_ANSWER_MENU', 'MANY_ANSWERS_CHECKBOX', 'MENU', 'SINGLE_SLIDER', 'DATE', 'TIME', 'DATETIME', 'MANY_FIELDS', 'SINGLE_CLICK', 'RATING', null];\nconst questionTypeLayoutPlacements = ['NEW_ROW', 'RIGHT_ALIGNED'];\nconst questionTypeValidationTypes = ['SUM', 'TEXT_LENGTH', 'EMAIL', 'INTEGER', 'DECIMAL', 'DATE_US', 'DATE_INTL', 'FILE_FORMAT'];\nconst questionTypeIds = ['single_textbox', 'comment_box'];\nconst questionTypeSortingKinds = ['FLIP', 'RANDOM', 'TEXT_ASC', 'TEXT_DESC'];\nconst questionTypeSkipLogicTypes = ['QUESTION_CONDITIONAL_COL', 'QUESTION_CONDITIONAL_ROW'];\nconst questionTypeSkipLogicDestinationTypes = ['DISQUALIFY_RESPONDENT', 'END_SURVEY', 'SKIP_TO_PAGE'];\nconst questionTypeMultipleChoiceLayouts = ['VERTICAL', 'THREE_COLUMNS', 'TWO_COLUMNS', 'HORIZONTAL'];\nconst SENTIMENTS = ['positive', 'negative', 'neutral', 'unknown'];\n/** Possible icons for Star-Rating */\nconst ratingScaleSymbols = ['THUMB', 'STAR', 'HEART', 'SMILEY'];\n/** Possible values for relative width (in percentage) */\nconst relativeWidthOptions = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];\n/** Possible values for fixed width (in pixel) */\nconst fixedWidthOptions = [100, 200, 300, 400, 500, 600, 700, 800];\n\n// Base Types\n// Question Guard Helpers\nconst isQuestionError = typeGuard({\n questionId: isNullable(isString),\n detail: isString,\n type: isOneOf([...questionTypeValidationTypes, 'REQUIRED'])\n});\n/** Guard for minimal information needed to determine the type of a Question */\nconst baseQuestionGuards = (typeId, family, variant) => ({\n typeId: isFixed(typeId),\n variant: isFixed(variant),\n family: isFixed(family),\n id: isString\n});\n/**\n * a very basic typeguard for the common fields for a Question Type.\n * should receive parameters for the actual ID, FAMILY and SUBTYPE of the\n * Question Type to avoid Typescript errors. Question types can use this function\n * to help build their own typeGuards\n */\nconst isQuestionType = (typeId, family, variant) => typeGuard(baseQuestionGuards(typeId, family, variant));\n\n// Mappings shared by multiple QuestionTypes in the RespondentSurvey Capability\n// to convert part of their external to their internal QuestionType representation\n/**\n * Mapping external to internal QuestionType properties shared by all QuestionTypes\n * in the RespondentSurvey Capability\n */\nfunction respondentSurveyMapping(externalQuestion) {\n const {\n position: {\n label: questionNumber\n },\n heading: {\n default: {\n text: title\n }\n }\n } = externalQuestion;\n return {\n questionNumber,\n title\n };\n}\n\n// Mappings/Types for ImageChoice shared by all Capabilities\n/**\n * Returns fields for ImageChoice's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst imageChoiceCrossCapabilityMapping = ({\n id,\n variant\n}) => ({\n typeId: 'image_choice',\n family: 'MULTIPLE_CHOICE',\n variant: variant,\n id\n});\n\n// Mappings to convert ImageChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst imageChoiceRespondentSurveyMapping = externalQuestion => {\n var _a;\n const q = externalQuestion;\n const {\n required,\n answersImage,\n answerNA\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...imageChoiceCrossCapabilityMapping(q),\n required: (_a = required) !== null && _a !== void 0 ? _a : undefined,\n answersImage,\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : undefined\n };\n};\n\n// Mappings shared by multiple QuestionTypes in the RespondentQuizResults Capability\n// to convert part of their external to their internal QuestionType representation\n/**\n * Mapping external to internal QuestionType properties shared by all QuestionTypes\n * in the RespondentQuizResults Capability\n */\nfunction respondentQuizResultsMapping(externalQuestion) {\n const {\n quizResults,\n position: {\n label: questionNumber\n },\n heading: {\n default: {\n text: title\n }\n }\n } = externalQuestion;\n return {\n quizResults: quizResults || undefined,\n questionNumber,\n title\n };\n}\n\n// Mappings to convert ImageChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst imageChoiceRespondentQuizResultsMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n answerNA,\n answersImage\n } = q;\n return {\n ...respondentQuizResultsMapping(q),\n ...imageChoiceCrossCapabilityMapping(q),\n answersImage,\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : null // remove `null` as possible type\n };\n};\n\n// Mappings shared by multiple QuestionTypes in the AggregateResponseDashboard Capability\n// to convert part of their external to their internal QuestionType representation\n/**\n * Mapping external to internal QuestionType properties shared by all QuestionTypes\n * in the AggregateResponseDashboard Capability\n */\nfunction aggregateResponseDashboardMapping(externalQuestion) {\n const {\n dashboardType,\n filterCount,\n selectedCount,\n skippedCount,\n answeredCount,\n responseData,\n aggregateResponse,\n heading: {\n default: {\n text: title\n }\n }\n } = externalQuestion;\n return {\n dashboardType,\n filterCount,\n answeredCount,\n selectedCount,\n skippedCount,\n responseData,\n aggregateResponse,\n title\n };\n}\n\n// Mappings to convert ImageChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst imageChoiceAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...imageChoiceCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings shared by multiple QuestionTypes in the AggregateResponseCustomizableSolutions Capability\n// to convert part of their external to their internal QuestionType representation\n/**\n * Mapping external to internal QuestionType properties shared by all QuestionTypes\n * in the AggregateResponseCustomizableSolutions Capability\n */\nfunction aggregateResponseCustomizableSolutionsMapping(externalQuestion) {\n const {\n displayNumber: questionNumber,\n responseData,\n aggregateResponse,\n heading: {\n default: {\n text: title\n }\n }\n } = externalQuestion;\n return {\n questionNumber,\n responseData,\n aggregateResponse,\n title\n };\n}\n\n// Mappings to convert ImageChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst imageChoiceAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...imageChoiceCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n/** Maps `answerOther` field for QuizResults capability */\nconst mapRespondentQuizResultsAnswerOther = answerOther => {\n if (!answerOther) {\n return null;\n }\n let base;\n if (answerOther.type === 'ANSWER') {\n const addRequiredErrorText = answerOther.requiredErrorText !== null && answerOther.requiredErrorText !== undefined;\n base = {\n type: 'ANSWER',\n ...(addRequiredErrorText ? {\n requiredErrorText: answerOther.requiredErrorText\n } : {})\n };\n } else {\n base = {\n type: answerOther.type\n };\n }\n return {\n ...base,\n id: answerOther.id,\n label: answerOther.label,\n visible: answerOther.visible,\n linesCount: answerOther.layout.linesCount,\n charsCount: answerOther.layout.charsCount\n };\n};\n/** Splits/Maps external `answerOther` to the internal `answerOther` and `answerComment` */\nconst mapRespondentSurveyAnswerOther = answerOther => {\n var _a;\n if (!answerOther) {\n return {};\n }\n const shared = {\n id: answerOther.id,\n label: answerOther.label,\n visible: answerOther.visible,\n linesCount: answerOther.layout.linesCount,\n charsCount: answerOther.layout.charsCount,\n // custom attributes for `other` validation\n touched: false,\n value: '',\n selected: false\n };\n if (answerOther.type === 'ANSWER') {\n const requiredErrorText = (_a = answerOther.requiredErrorText) !== null && _a !== void 0 ? _a : undefined;\n return {\n answerOther: {\n type: 'ANSWER',\n ...(requiredErrorText !== undefined ? {\n requiredErrorText\n } : {}),\n ...shared\n }\n };\n }\n return {\n answerComment: {\n type: answerOther.type,\n ...shared\n }\n };\n};\n/**\n * Maps `QuestionAnswerRequired` to more concrete `QuestionAnswerRequiredAll` type\n * and removes `min` and `max` properties */\nconst mapRespondentSurveyRequiredAll = answerOther => {\n if (!answerOther || answerOther.type !== 'ALL') {\n return undefined;\n }\n return {\n type: 'ALL',\n errorMessage: answerOther.errorMessage\n };\n};\nconst fillSpacing = spacing => {\n var _a, _b, _c, _d;\n return spacing ? {\n top: (_a = spacing.top) !== null && _a !== void 0 ? _a : 0,\n bottom: (_b = spacing.bottom) !== null && _b !== void 0 ? _b : 0,\n left: (_c = spacing.left) !== null && _c !== void 0 ? _c : 0,\n right: (_d = spacing.right) !== null && _d !== void 0 ? _d : 0\n } : undefined;\n};\n\n// Mappings/Types for CheckBox shared by all Capabilities\n/**\n * Returns fields for CheckBox's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst checkBoxCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'check_box',\n family: 'MULTIPLE_CHOICE',\n variant: 'MANY_ANSWERS_CHECKBOX',\n id\n});\n\n// Mappings to convert CheckBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst checkBoxRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n validation,\n required,\n answers,\n answerOther,\n answerNA\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...checkBoxCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: required !== null && required !== void 0 ? required : undefined,\n validation: validation !== null && validation !== void 0 ? validation : undefined,\n answers,\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : undefined,\n ...mapRespondentSurveyAnswerOther(answerOther)\n };\n};\n\n// Mappings to convert CheckBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst checkBoxRespondentQuizResultsMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n answerOther,\n answerNA\n } = q;\n return {\n ...respondentQuizResultsMapping(q),\n ...checkBoxCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n answerOther: mapRespondentQuizResultsAnswerOther(answerOther),\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : null // remove `null` as possible type\n };\n};\n\n// Mappings to convert CheckBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst checkBoxAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...checkBoxCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert CheckBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst checkBoxAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...checkBoxCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for Dropdown shared by all Capabilities\n/**\n * Returns fields for Dropdown's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst dropdownCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'dropdown',\n family: 'MULTIPLE_CHOICE',\n variant: 'SINGLE_ANSWER_MENU',\n id\n});\n\n// Mappings to convert Dropdown's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst dropdownRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n validation,\n required,\n answers,\n answerOther\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...dropdownCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: mapRespondentSurveyRequiredAll(required),\n validation: validation !== null && validation !== void 0 ? validation : undefined,\n answers,\n ...mapRespondentSurveyAnswerOther(answerOther)\n };\n};\n\n// Mappings to convert Dropdown's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst dropdownRespondentQuizResultsMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n answerOther\n } = q;\n return {\n ...respondentQuizResultsMapping(q),\n ...dropdownCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n answerOther: mapRespondentQuizResultsAnswerOther(answerOther)\n };\n};\n\n// Mappings to convert Dropdown's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst dropdownAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...dropdownCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert Dropdown's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst dropdownAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...dropdownCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for CommentBox shared by all Capabilities\n/**\n * Returns fields for CommentBox's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst commentBoxCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'comment_box',\n family: 'OPEN_ENDED',\n variant: 'ESSAY',\n id\n});\n\n// Mappings to convert CommentBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst commentBoxRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n validation,\n required,\n fieldSet\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...commentBoxCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n fieldSet,\n // can only be required `all` of OpenEnded questions\n required: mapRespondentSurveyRequiredAll(required),\n validation: validation !== null && validation !== void 0 ? validation : undefined\n };\n};\n\n// Mappings to convert CommentBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst commentBoxAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...commentBoxCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert CommentBox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst commentBoxAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...commentBoxCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for SingleTextbox shared by all Capabilities\n/**\n * Returns fields for SingleTextbox's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst singleTextboxCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'single_textbox',\n family: 'OPEN_ENDED',\n variant: 'SINGLE_LINE',\n id\n});\n\n// Mappings to convert SingleTextbox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst singleTextboxRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n validation,\n required,\n fieldSet\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...singleTextboxCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n fieldSet,\n // can only be required `all` of OpenEnded questions\n required: mapRespondentSurveyRequiredAll(required),\n validation: validation !== null && validation !== void 0 ? validation : undefined\n };\n};\n\n// Mappings to convert SingleTextbox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst singleTextboxAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...singleTextboxCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert SingleTextbox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst singleTextboxAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...singleTextboxCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for Matrix shared by all Capabilities\n/**\n * Returns fields for Matrix's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst matrixCrossCapabilityMapping = ({\n id,\n family,\n variant\n}) => ({\n typeId: 'matrix',\n family: family,\n variant: variant,\n id\n});\n\n// Mappings to convert Matrix's external to it's internal QuestionType representation\nconst isExternalMatrixWithRadio = q => q.variant === 'SINGLE_ANSWER_RADIO' && 'fieldSets' in q;\nconst isExternalMatrixWithCheckboxes = q => q.variant === 'MANY_ANSWERS_CHECKBOX';\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst matrixRespondentSurveyMapping = externalQuestion => {\n var _a;\n const q = externalQuestion;\n const {\n layout,\n required,\n answerOther\n } = q;\n const base = {\n ...respondentSurveyMapping(q),\n ...matrixCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: (_a = required) !== null && _a !== void 0 ? _a : undefined,\n ...mapRespondentSurveyAnswerOther(answerOther)\n };\n if (isExternalMatrixWithRadio(q)) {\n const {\n fieldSets,\n answersWeighted,\n answerNA,\n isForcedRanking,\n isWeighted\n } = q;\n return {\n ...base,\n fieldSets,\n answersWeighted,\n answerNotApplicable: answerNA !== null && answerNA !== void 0 ? answerNA : undefined,\n isForcedRanking,\n isWeighted\n };\n }\n if (isExternalMatrixWithCheckboxes(q)) {\n const {\n fieldSets,\n answers\n } = q;\n return {\n ...base,\n fieldSets,\n answers\n };\n }\n const {\n fieldSet,\n answersWeighted,\n answerNA\n } = q;\n return {\n ...base,\n fieldSet,\n answersWeighted,\n answerNotApplicable: answerNA !== null && answerNA !== void 0 ? answerNA : undefined\n };\n};\n\n// Mappings to convert Matrix's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst matrixAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...matrixCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert Matrix's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst matrixAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...matrixCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for MultipleChoice shared by all Capabilities\n/**\n * Returns fields for MultipleChoice's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst multipleChoiceCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'multiple_choice',\n family: 'MULTIPLE_CHOICE',\n variant: 'SINGLE_ANSWER_RADIO',\n id\n});\n\n// Mappings to convert MultipleChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst multipleChoiceRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n validation,\n required,\n answers,\n answerOther,\n answerNA\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...multipleChoiceCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: mapRespondentSurveyRequiredAll(required),\n validation: validation !== null && validation !== void 0 ? validation : undefined,\n answers,\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : undefined,\n ...mapRespondentSurveyAnswerOther(answerOther)\n };\n};\n\n// Mappings to convert MultipleChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst multipleChoiceRespondentQuizResultsMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n answerOther,\n answerNA\n } = q;\n return {\n ...respondentQuizResultsMapping(q),\n ...multipleChoiceCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n answerOther: mapRespondentQuizResultsAnswerOther(answerOther),\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : null // remove `null` as possible type\n };\n};\n\n// Mappings to convert MultipleChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst multipleChoiceAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...multipleChoiceCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert MultipleChoice's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst multipleChoiceAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...multipleChoiceCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for MultipleTextbox shared by all Capabilities\n/**\n * Returns fields for MultipleTextbox's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst multipleTextboxCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'multiple_textbox',\n family: 'OPEN_ENDED',\n variant: 'MANY_FIELDS',\n id\n});\n\n// Mappings to convert MultipleTextbox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst multipleTextboxRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n answers,\n validation,\n sumValidation,\n required,\n fieldSets\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...multipleTextboxCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n fieldSets,\n answers,\n required: required !== null && required !== void 0 ? required : undefined,\n validation: validation !== null && validation !== void 0 ? validation : undefined,\n sumValidation: sumValidation !== null && sumValidation !== void 0 ? sumValidation : undefined\n };\n};\n\n// Mappings to convert MultipleTextbox's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst multipleTextboxAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...multipleTextboxCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings/Types for Ranking shared by all Capabilities\n/**\n * Returns fields for Ranking's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst rankingCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'ranking',\n family: 'RANKING',\n variant: 'SINGLE_ANSWER_RADIO',\n id\n});\n\n// Mappings to convert Ranking's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst rankingRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n fieldSets,\n answers,\n required,\n answerNA\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...rankingCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n fieldSets,\n answers,\n required: mapRespondentSurveyRequiredAll(required),\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : undefined\n };\n};\n\n// Mappings to convert Ranking's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst rankingAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...rankingCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings to convert Ranking's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst rankingAggregateResponseCustomizableSolutionsMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...rankingCrossCapabilityMapping(q),\n ...aggregateResponseCustomizableSolutionsMapping(q)\n };\n};\n\n// Mappings/Types for Slider shared by all Capabilities\n/**\n * Returns fields for Slider's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst sliderCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'slider',\n family: 'SLIDER',\n variant: 'SINGLE_SLIDER',\n id\n});\n\n// Mappings to convert Slider's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst sliderRespondentSurveyMapping = externalQuestion => {\n var _a;\n const q = externalQuestion;\n const {\n scaleOptions,\n required,\n hideNumericalInput\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...sliderCrossCapabilityMapping(q),\n required: (_a = required) !== null && _a !== void 0 ? _a : undefined,\n scaleOptions,\n hideNumericalInput\n };\n};\n\n// Mappings to convert Slider's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst sliderAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...sliderCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings/Types for StarRating shared by all Capabilities\n/**\n * Returns fields for StarRating's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst starRatingCrossCapabilityMapping = ({\n id,\n family,\n variant\n}) => ({\n typeId: 'star_rating',\n family,\n variant,\n id\n});\n\n// Mappings to convert StarRating's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst starRatingRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n required,\n fieldSet,\n answersWeighted,\n answerNA,\n answerOther,\n symbolOptions\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...starRatingCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: mapRespondentSurveyRequiredAll(required),\n fieldSet,\n answersWeighted,\n answerNoneOfTheAbove: answerNA !== null && answerNA !== void 0 ? answerNA : undefined,\n symbolOptions: symbolOptions !== null && symbolOptions !== void 0 ? symbolOptions : undefined,\n ...mapRespondentSurveyAnswerOther(answerOther)\n };\n};\n\n// Mappings to convert StarRating's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst starRatingAggregateResponseDashboardMapping = externalQuestion => {\n const q = externalQuestion;\n return {\n ...starRatingCrossCapabilityMapping(q),\n ...aggregateResponseDashboardMapping(q)\n };\n};\n\n// Mappings/Types for ImagePresentation shared by all Capabilities\n/**\n * Returns fields for ImagePresentation's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst imagePresentationCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'image_presentation',\n family: 'PRESENTATION',\n variant: 'IMAGE',\n id\n});\n\n// Mappings to convert ImagePresentation's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst imagePresentationRespondentSurveyMapping = externalQuestion => {\n var _a;\n const q = externalQuestion;\n const {\n heading,\n layout\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...imagePresentationCrossCapabilityMapping(q),\n heading: {\n ...heading,\n assignments: (_a = heading.assignments) !== null && _a !== void 0 ? _a : undefined\n },\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n }\n };\n};\n\n// Mappings/Types for TextPresentation shared by all Capabilities\n/**\n * Returns fields for TextPresentation's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst textPresentationCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'text_presentation',\n family: 'PRESENTATION',\n variant: 'TEXT',\n id\n});\n\n// Mappings to convert TextPresentation's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst textPresentationRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n heading,\n layout\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...textPresentationCrossCapabilityMapping(q),\n heading,\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n }\n };\n};\n\n// Mappings/Types for NPS shared by all Capabilities\n/**\n * Returns fields for Nps's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst npsCrossCapabilityMapping = ({\n id\n}) => ({\n typeId: 'nps',\n family: 'RATING_SCALE',\n variant: 'NPS',\n id\n});\n\n// Mappings to convert NPS's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst npsRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n required,\n answersWeighted,\n fieldSet\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...npsCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: mapRespondentSurveyRequiredAll(required),\n answersWeighted,\n fieldSet\n };\n};\nconst isTextLengthValidation = typeGuard({\n errorMessage: isString,\n type: isFixed('TEXT_LENGTH'),\n minLength: isNumber,\n maxLength: isNumber\n});\nconst isNumericalValidation = typeGuard({\n errorMessage: isString,\n type: isEither([isFixed('INTEGER'), isFixed('DECIMAL')]),\n minValue: isNumber,\n maxValue: isNumber\n});\nconst isDateValidation = typeGuard({\n errorMessage: isString,\n type: isOneOf(['DATE_US', 'DATE_INTL']),\n minDate: isString,\n maxDate: isString\n});\nconst isDateFormatValidation = typeGuard({\n errorMessage: isString,\n type: isOneOf(['DATE_US', 'DATE_INTL'])\n});\nconst isEmailValidation = typeGuard({\n errorMessage: isString,\n type: isFixed('EMAIL')\n});\nconst isFieldValidation = isEither([isTextLengthValidation, isNumericalValidation, isDateValidation, isEmailValidation]);\n\n// Mappings/Types for DateTime shared by all Capabilities\n/**\n * Returns fields for DateTime's internal QuestionType type\n * that are shared across all Capabilities\n */\nconst dateTimeCrossCapabilityMapping = ({\n id,\n variant\n}) => ({\n typeId: 'date_time',\n family: 'DATETIME',\n variant: variant,\n id\n});\n\n// Mappings to convert DateTime's external to it's internal QuestionType representation\n/**\n * Maps the external QuestionType (GQL based) to the internal QuestionType\n *\n * _Types are mostly the same but the internal type is optimized to be easier to work with_\n */\nconst dateTimeRespondentSurveyMapping = externalQuestion => {\n const q = externalQuestion;\n const {\n layout,\n required,\n validation,\n fieldSets\n } = q;\n return {\n ...respondentSurveyMapping(q),\n ...dateTimeCrossCapabilityMapping(q),\n layout: {\n ...layout,\n spacing: fillSpacing(layout.spacing)\n },\n required: required !== null && required !== void 0 ? required : undefined,\n validation: isDateFormatValidation(validation) ? {\n type: validation.type,\n errorMessage: validation.errorMessage\n } : {\n type: 'DATE_INTL',\n errorMessage: ''\n },\n fieldSets\n };\n};\n\n/** List of all SMQuestions supported capabilities (others might get defined via custom providers/views) */\nconst CAPABILITIES = ['respondent-survey', 'respondent-quiz-results', 'aggregate-response-dashboard', 'aggregate-response-customizable-solutions'];\nconst invalidCombination = () => {\n throw new Error('Invalid question and capability combination or not yet implemented');\n};\n/**\n * Main mapping to resolve QuestionType and Capability to\n * a mapping (and in it the assertion)\n */\nconst questionTypeAndCapabilityMapping = {\n single_textbox: {\n 'respondent-survey': singleTextboxRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': singleTextboxAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': singleTextboxAggregateResponseCustomizableSolutionsMapping\n },\n comment_box: {\n 'respondent-survey': commentBoxRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': commentBoxAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': commentBoxAggregateResponseCustomizableSolutionsMapping\n },\n multiple_textbox: {\n 'respondent-survey': multipleTextboxRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': multipleTextboxAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': invalidCombination\n },\n check_box: {\n 'respondent-survey': checkBoxRespondentSurveyMapping,\n 'respondent-quiz-results': checkBoxRespondentQuizResultsMapping,\n 'aggregate-response-dashboard': checkBoxAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': checkBoxAggregateResponseCustomizableSolutionsMapping\n },\n image_choice: {\n 'respondent-survey': imageChoiceRespondentSurveyMapping,\n 'respondent-quiz-results': imageChoiceRespondentQuizResultsMapping,\n 'aggregate-response-dashboard': imageChoiceAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': imageChoiceAggregateResponseCustomizableSolutionsMapping\n },\n multiple_choice: {\n 'respondent-survey': multipleChoiceRespondentSurveyMapping,\n 'respondent-quiz-results': multipleChoiceRespondentQuizResultsMapping,\n 'aggregate-response-dashboard': multipleChoiceAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': multipleChoiceAggregateResponseCustomizableSolutionsMapping\n },\n dropdown: {\n 'respondent-survey': dropdownRespondentSurveyMapping,\n 'respondent-quiz-results': dropdownRespondentQuizResultsMapping,\n 'aggregate-response-dashboard': dropdownAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': dropdownAggregateResponseCustomizableSolutionsMapping\n },\n slider: {\n 'respondent-survey': sliderRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': sliderAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': invalidCombination\n },\n star_rating: {\n 'respondent-survey': starRatingRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': starRatingAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': invalidCombination\n },\n ranking: {\n 'respondent-survey': rankingRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': rankingAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': rankingAggregateResponseCustomizableSolutionsMapping\n },\n matrix: {\n 'respondent-survey': matrixRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': matrixAggregateResponseDashboardMapping,\n 'aggregate-response-customizable-solutions': matrixAggregateResponseCustomizableSolutionsMapping\n },\n nps: {\n 'respondent-survey': npsRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': invalidCombination,\n 'aggregate-response-customizable-solutions': invalidCombination\n },\n date_time: {\n 'respondent-survey': dateTimeRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': invalidCombination,\n 'aggregate-response-customizable-solutions': invalidCombination\n },\n image_presentation: {\n 'respondent-survey': imagePresentationRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': invalidCombination,\n 'aggregate-response-customizable-solutions': invalidCombination\n },\n text_presentation: {\n 'respondent-survey': textPresentationRespondentSurveyMapping,\n 'respondent-quiz-results': invalidCombination,\n 'aggregate-response-dashboard': invalidCombination,\n 'aggregate-response-customizable-solutions': invalidCombination\n }\n};\n/** type guard to check if string is a capability */\nconst isCapability = u => CAPABILITIES.includes(u);\n/** Used to dynamically map the fields base on\n * * typeId\n * * question type\n * * capability\n * * combination of question type and capability\n */\nconst mapDynamic = ({\n typeId,\n capability,\n externalQuestion\n}) => {\n if (!isCapability(capability)) {\n // if this is a custom (unknown) capability just return the `externalQuestion` for now\n return externalQuestion;\n }\n return questionTypeAndCapabilityMapping[typeId][capability](externalQuestion);\n};\nconst mapInternalDynamicToExternal = (externalQuestion,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nq,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ncapability // keep for future use\n) => {\n // possibly mirror `mapDynamic`s setup if needed later\n // remove internal `typeId` and other possible attributes from exported type\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n typeId,\n ...cleanExternalQuestion\n } = externalQuestion;\n return {\n ...cleanExternalQuestion\n };\n};\n\n/**\n * Detects if a question belongs to this question type -\n * minimalistically as this function is supposed to be as optimized as possible as it will run multiple times\n */\nconst isCompatible$f = (q, typeId) => 'typeId' in q && q.typeId === typeId;\nconst baseGuards$b = baseQuestionGuards('single_textbox', 'OPEN_ENDED', 'SINGLE_LINE');\nconst isQuestionTypeSingleTextbox = typeGuard(baseGuards$b);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeSingleTextbox(q) {\n return typeAssertion(baseGuards$b)(q);\n}\nconst mapFromExternalQuestion$e = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'single_textbox',\n externalQuestion,\n capability\n });\n return questionType;\n};\nconst typeId$e = 'single_textbox';\nconst fromExternalQuestion$e = (source, capability) => mapFromExternalQuestion$e(source, capability);\nconst toExternalQuestion$e = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$e = q => isCompatible$f(q, typeId$e);\nconst isOfQuestionType$e = isQuestionTypeSingleTextbox;\n\n/**\n * Helper to run validators and prepare their result\n *\n * @returns {QuestionError[] | null} `null` means there is no error - `QuestionError[]` will never be an empty array\n */\nconst runValidators = ( /** Map of validators */\nvalidators, question, value, touched, validateEmptyValue = false) => {\n const validationErrors = validators.reduce((errors, validator) => {\n const newError = validator(question, value, touched, validateEmptyValue);\n return newError !== null ? [...errors, newError] : errors;\n }, []);\n if (validationErrors.length === 0) {\n return null;\n }\n return validationErrors;\n};\nfunction createValidationError(type, detail = '', questionId = null, fieldId = undefined) {\n return {\n type,\n detail,\n questionId,\n fieldId\n };\n}\n\n/** returns `null` if valid and error object if not */\nconst validateTextLength = ( /** GraphQL `TextLengthValidation` entity */\nvalidation, /** Id to identify the question */\nquestionId, value, touched = false, /** Validate empty values (default `false`) */\nvalidateEmptyValue = false) => {\n if (!value && !validateEmptyValue || !validation || !touched || validation.type !== 'TEXT_LENGTH') {\n return null;\n }\n const {\n minLength,\n maxLength,\n errorMessage\n } = validation;\n if (value.length > maxLength || value.length < minLength) {\n return createValidationError(validation.type, errorMessage, questionId);\n }\n return null;\n};\n/** Validates `valueToValidate` for text-length and returns an `QuestionError` or `null` (valid) */\nconst checkValueTextLength = (question, valueToValidate, touched, validateEmptyValue = false) => {\n var _a;\n if (question.validation === undefined || !valueToValidate && !validateEmptyValue || ((_a = question.validation) === null || _a === void 0 ? void 0 : _a.type) !== 'TEXT_LENGTH') {\n return null; // questionType does not support validation\n }\n\n const valueAsArray = Array.isArray(valueToValidate) ? valueToValidate : [valueToValidate];\n const errors = valueAsArray.map(value => {\n return validateTextLength(question.validation, question.id, value || '', touched, validateEmptyValue);\n }).filter(notNull);\n return errors.length > 0 ? errors[0] : null;\n};\nconst DATE_PATTERNS = {\n DATE_INTL: /^(0?[1-9]|[12][0-9]|3[0-1])\\/(0?[1-9]|1[0-2])\\/(\\d{4})$/,\n DATE_US: /^(0?[1-9]|1[0-2])\\/((0?[1-9]|[12][0-9]|3[0-1])\\/(\\d{4}))$/\n};\nconst DATE_BUILDERS = {\n DATE_INTL: ([dd, mm, yyyy]) => new Date(yyyy, mm - 1, dd),\n DATE_US: ([mm, dd, yyyy]) => new Date(yyyy, mm - 1, dd)\n};\nconst isDateValidationType = validationType => validationType === 'DATE_INTL' || validationType === 'DATE_US';\n/** formats strings to dates\n *\n * - `DD/MM/YYYY` for `DATE_INTL`\n * - `MM/DD/YYYY` for `DATE_US`\n */\nconst stringToDate = format => s => DATE_PATTERNS[format].test(s) ? DATE_BUILDERS[format](s.split('/').map(Number)) : null;\n/**\n * Converts minDate and maxDate format: ISO Date-Time => Date\n * only when `validation` is `DateValidation`\n */\nconst getMinAndMaxDate = validation => {\n if (!('minDate' in validation && 'maxDate' in validation)) {\n return [undefined, undefined]; // no min/max for DateFormatValidation\n }\n\n return [validation.minDate, validation.maxDate].map(s => new Date(s.substring(0, s.indexOf('T')).replace('-', '/')));\n};\n/** returns `null` if valid and error object if not */\nconst validateDate = ( /** GraphQL `DateValidation` entity */\nvalidation, /** Id to identify the question */\nquestionId, value, touched = false, /** Validate empty values (default `false`) */\nvalidateEmptyValue = false) => {\n if (!value && !validateEmptyValue || !validation || !touched || !isDateValidationType(validation.type)) {\n return null;\n }\n const {\n errorMessage\n } = validation;\n const dateType = validation === null || validation === void 0 ? void 0 : validation.type;\n const stringToDateType = stringToDate(dateType);\n // value format: Short Date => Date\n const date = stringToDateType(value);\n // minDate and maxDate format: ISO Date-Time => Date\n const [dmin, dmax] = getMinAndMaxDate(validation);\n if (!date || dmax && date.getTime() > dmax.getTime() || dmin && date.getTime() < dmin.getTime()) {\n return createValidationError(validation.type, errorMessage, questionId);\n }\n return null;\n};\n/** Validates `valueToValidate` as date and returns an `QuestionError` or `null` (valid) */\nconst checkValueDateFormat = (question, valueToValidate, touched, validateEmptyValue = false) => {\n var _a;\n if (!valueToValidate && !validateEmptyValue || !isDateValidationType((_a = question === null || question === void 0 ? void 0 : question.validation) === null || _a === void 0 ? void 0 : _a.type)) {\n return null; // questionType does not support validation\n }\n\n const valueAsArray = Array.isArray(valueToValidate) ? valueToValidate : [valueToValidate];\n const errors = valueAsArray.map(value => {\n return validateDate(question.validation, question.id, value || '', touched, validateEmptyValue);\n }).filter(notNull);\n return errors.length > 0 ? errors[0] : null;\n};\nconst isNumericalValidationType = validationType => validationType === 'INTEGER' || validationType === 'DECIMAL';\nconst isSumValidationType = validationType => validationType === 'SUM';\n/** Integers can only contain numbers (`0-9`) */\nconst isValidInteger = (maybeInteger = '') => maybeInteger.match(/^[0-9]+$/) !== null;\nconst isValidDecimal = (value = '') => value.match(/^[+-]?([0-9]+\\.?[0-9]*|\\.[0-9]+)$/) !== null;\n/** returns `null` if valid and error object if not */\nconst validateNumber = ( /** GraphQL `DateValidation` entity */\nvalidation, /** Id to identify the question */\nquestionId, value, touched = false, /** Validate empty values (default `false`) */\nvalidateEmptyValue = false) => {\n if (!value && !validateEmptyValue || !validation || !touched || !isNumericalValidationType(validation.type)) {\n return null;\n }\n const {\n minValue,\n maxValue,\n errorMessage\n } = validation;\n const parsedNumber = parseFloat(value);\n if (Number.isNaN(parsedNumber) || validation.type === 'INTEGER' && !isValidInteger(value) || validation.type === 'DECIMAL' && !isValidDecimal(value) || Boolean(maxValue && parsedNumber > maxValue) || Boolean(minValue && parsedNumber < minValue)) {\n return createValidationError(validation.type, errorMessage, questionId);\n }\n return null;\n};\n/** returns `null` if valid and error object if not */\nconst validateFixedSum = ( /** GraphQL `SumValidation` entity */\nvalidation, /** Id to identify the question */\nquestionId, values, touched = false, /** Validate empty values (default `false`) */\nvalidateEmptyValue = false) => {\n if (!values && !validateEmptyValue || !validation || !touched || !isSumValidationType(validation.type)) {\n return null;\n }\n const {\n sum,\n errorMessage\n } = validation;\n const valueSum = values.reduce((reduceSum, value) => {\n const parsedNumber = parseFloat(value);\n return reduceSum + parsedNumber;\n }, 0);\n if (valueSum && valueSum !== sum || Number.isNaN(valueSum) || !isValidInteger(String(valueSum))) {\n return createValidationError(validation.type, errorMessage, questionId);\n }\n return null;\n};\n/** Validates `valueToValidate` as number and returns an `QuestionError` or `null` (valid) */\nconst checkValueNumericalFormat = (question, valueToValidate = '', touched = false, validateEmptyValue = false) => {\n var _a;\n if (!valueToValidate && !validateEmptyValue || !isNumericalValidationType((_a = question === null || question === void 0 ? void 0 : question.validation) === null || _a === void 0 ? void 0 : _a.type)) {\n return null; // questionType does not support validation\n }\n\n const valueAsArray = Array.isArray(valueToValidate) ? valueToValidate : [valueToValidate];\n const errors = valueAsArray.map(value => {\n return validateNumber(question.validation, question.id, value || '', touched, validateEmptyValue);\n }).filter(notNull);\n return errors.length > 0 ? errors[0] : null;\n};\nconst checkMultipleValueNumericalSum = (question, valueToValidate = [], touched = false, validateEmptyValue = false) => {\n var _a;\n if (!valueToValidate && !validateEmptyValue || !question.sumValidation || !isSumValidationType((_a = question === null || question === void 0 ? void 0 : question.sumValidation) === null || _a === void 0 ? void 0 : _a.type)) {\n return null; // questionType does not support validation\n }\n\n return validateFixedSum(question.sumValidation, question.id, valueToValidate, touched, validateEmptyValue);\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nvar isEmailExports = {};\nvar isEmail$1 = {\n get exports() {\n return isEmailExports;\n },\n set exports(v) {\n isEmailExports = v;\n }\n};\nvar assertStringExports = {};\nvar assertString = {\n get exports() {\n return assertStringExports;\n },\n set exports(v) {\n assertStringExports = v;\n }\n};\n(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = assertString;\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n }\n function assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n }\n module.exports = exports.default;\n module.exports.default = exports.default;\n})(assertString, assertStringExports);\nvar mergeExports = {};\nvar merge = {\n get exports() {\n return mergeExports;\n },\n set exports(v) {\n mergeExports = v;\n }\n};\n(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = merge;\n function merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n }\n module.exports = exports.default;\n module.exports.default = exports.default;\n})(merge, mergeExports);\nvar isByteLengthExports = {};\nvar isByteLength = {\n get exports() {\n return isByteLengthExports;\n },\n set exports(v) {\n isByteLengthExports = v;\n }\n};\n(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = isByteLength;\n var _assertString = _interopRequireDefault(assertStringExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n }\n\n /* eslint-disable prefer-rest-params */\n function isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n }\n module.exports = exports.default;\n module.exports.default = exports.default;\n})(isByteLength, isByteLengthExports);\nvar isFQDNExports = {};\nvar isFQDN = {\n get exports() {\n return isFQDNExports;\n },\n set exports(v) {\n isFQDNExports = v;\n }\n};\n(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = isFQDN;\n var _assertString = _interopRequireDefault(assertStringExports);\n var _merge = _interopRequireDefault(mergeExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false\n };\n function isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces && special characers\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20\\u00A9\\uFFFD]/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n }\n module.exports = exports.default;\n module.exports.default = exports.default;\n})(isFQDN, isFQDNExports);\nvar isIPExports = {};\nvar isIP = {\n get exports() {\n return isIPExports;\n },\n set exports(v) {\n isIPExports = v;\n }\n};\n(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = isIP;\n var _assertString = _interopRequireDefault(assertStringExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n /**\n 11.3. Examples\n \t The following addresses\n \t fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n \t would be represented as follows:\n \t fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n \t (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n \t If we use interface names as , those addresses could also be\n represented as follows:\n \t fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n \t where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\n var ipv4Maybe = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\n var ipv6Block = /^[0-9A-F]{1,4}$/i;\n function isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n } else if (version === '4') {\n if (!ipv4Maybe.test(str)) {\n return false;\n }\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n } else if (version === '6') {\n var addressAndZone = [str]; // ipv6 addresses could have scoped architecture\n // according to https://tools.ietf.org/html/rfc4007#section-11\n\n if (str.includes('%')) {\n addressAndZone = str.split('%');\n if (addressAndZone.length !== 2) {\n // it must be just two parts\n return false;\n }\n if (!addressAndZone[0].includes(':')) {\n // the first part must be the address\n return false;\n }\n if (addressAndZone[1] === '') {\n // the second part must not be empty\n return false;\n }\n }\n var blocks = addressAndZone[0].split(':');\n var foundOmissionBlock = false; // marker to indicate ::\n // At least some OS accept the last 32 bits of an IPv6 address\n // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says\n // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,\n // and '::a.b.c.d' is deprecated, but also valid.\n\n var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);\n var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;\n if (blocks.length > expectedNumberOfBlocks) {\n return false;\n } // initial or final ::\n\n if (str === '::') {\n return true;\n } else if (str.substr(0, 2) === '::') {\n blocks.shift();\n blocks.shift();\n foundOmissionBlock = true;\n } else if (str.substr(str.length - 2) === '::') {\n blocks.pop();\n blocks.pop();\n foundOmissionBlock = true;\n }\n for (var i = 0; i < blocks.length; ++i) {\n // test for a :: which can not be at the string start/end\n // since those cases have been handled above\n if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {\n if (foundOmissionBlock) {\n return false; // multiple :: in address\n }\n\n foundOmissionBlock = true;\n } else if (foundIPv4TransitionBlock && i === blocks.length - 1) ;else if (!ipv6Block.test(blocks[i])) {\n return false;\n }\n }\n if (foundOmissionBlock) {\n return blocks.length >= 1;\n }\n return blocks.length === expectedNumberOfBlocks;\n }\n return false;\n }\n module.exports = exports.default;\n module.exports.default = exports.default;\n})(isIP, isIPExports);\n(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = isEmail;\n var _assertString = _interopRequireDefault(assertStringExports);\n var _merge = _interopRequireDefault(mergeExports);\n var _isByteLength = _interopRequireDefault(isByteLengthExports);\n var _isFQDN = _interopRequireDefault(isFQDNExports);\n var _isIP = _interopRequireDefault(isIPExports);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n }\n function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n var default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false\n };\n /* eslint-disable max-len */\n\n /* eslint-disable no-control-regex */\n\n var splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)<(.+)>$/i;\n var emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\n var gmailUserPart = /^[a-z\\d]+$/;\n var quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\n var emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\n var quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\n var defaultMaxEmailLength = 254;\n /* eslint-enable max-len */\n\n /* eslint-enable no-control-regex */\n\n /**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\n\n function validateDisplayName(display_name) {\n var trim_quotes = display_name.match(/^\"(.+)\"$/i);\n var display_name_without_quotes = trim_quotes ? trim_quotes[1] : display_name; // display name with only spaces is not valid\n\n if (!display_name_without_quotes.trim()) {\n return false;\n } // check whether display name contains illegal character\n\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (!trim_quotes) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n }\n function isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name;\n var _display_email = _slicedToArray(display_email, 3);\n display_name = _display_email[1];\n str = _display_email[2];\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.substr(1, domain.length - 2);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i2 = 0; _i2 < user_parts.length; _i2++) {\n if (!pattern.test(user_parts[_i2])) {\n return false;\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n return true;\n }\n module.exports = exports.default;\n module.exports.default = exports.default;\n})(isEmail$1, isEmailExports);\nvar isEmail = /*@__PURE__*/getDefaultExportFromCjs(isEmailExports);\n\n/** returns `null` if valid and error object if not */\nconst validateEmail = (validation, /** Id to identify the question */\nquestionId, value, touched = false, /** Validate empty values (default `false`) */\nvalidateEmptyValue = false) => {\n if (!value && !validateEmptyValue || !validation || !touched || (validation === null || validation === void 0 ? void 0 : validation.type) !== 'EMAIL') {\n return null;\n }\n const {\n errorMessage\n } = validation;\n if (!isEmail(value)) {\n return createValidationError(validation.type, errorMessage, questionId);\n }\n return null;\n};\n/** Validates `valueToValidate` as email and returns an `QuestionError` or `null` (valid) */\nconst checkValueEmailFormat = (question, valueToValidate = '', touched = false, validateEmptyValue = false) => {\n var _a;\n if (question.validation === undefined || !valueToValidate && !validateEmptyValue || ((_a = question.validation) === null || _a === void 0 ? void 0 : _a.type) !== 'EMAIL') {\n return null; // questionType does not support validation\n }\n\n const valueAsArray = Array.isArray(valueToValidate) ? valueToValidate : [valueToValidate];\n const errors = valueAsArray.map(value => {\n return validateEmail(question.validation, question.id, value || '', touched, validateEmptyValue);\n }).filter(notNull);\n return errors.length > 0 ? errors[0] : null;\n};\nconst isResponseValueArray = value => {\n return Array.isArray(value) && !value.some(v => typeof v !== 'object' || !('id' in v) || !('value' in v)) // no invalid element in array\n ;\n};\n/** If there is a selected other type `ANSWER` input make sure it is not empty. */\nconst hasEmptyOtherAnswer = value => {\n var _a;\n return (_a = value.some(v => v.type === 'ANSWER' && v.value === '')) !== null && _a !== void 0 ? _a : false;\n};\n/** Check for type `ALL` */\nconst hasTypeAllValidationError = (value, choiceCount) => {\n // handle `ALL` for choice answers with more than 1 choice\n return typeof choiceCount !== 'number' || value.length !== choiceCount;\n};\n/** Special case for ImageChoice that does not require all options to be selected for `ALL`, but only at least 1 */\nconst hasTypeAllValidationErrorWithoutRangeSelection = value => {\n return value.length < 1;\n};\n/** Check for type `AT_LEAST` */\nconst hasTypeAtLeastValidationError = (value, {\n min\n}) => {\n if (typeof min !== 'number') {\n return true; // invalid value or min value\n }\n\n return value.length < min;\n};\n/** Check for type `AT_MOST` */\nconst hasTypeAtMostValidationError = (value, {\n max\n}) => {\n if (typeof max !== 'number') {\n return true; // invalid value or max value\n }\n\n return value.length < 1 || value.length > max;\n};\n/** Check for type `EXACTLY` */\nconst hasTypeExactlyValidationError = (value, {\n min,\n max\n}) => {\n if (typeof min !== 'number' || typeof max !== 'number' || min !== max) {\n return true; // invalid value or or min/max value\n }\n\n return value.length !== min;\n};\n/** Check for type `RANGE` */\nconst hasTypeRangeValidationError = (value, {\n min,\n max\n}) => {\n if (typeof min !== 'number' || typeof max !== 'number') {\n return true; // invalid value or min/max value\n }\n\n return value.length < min || value.length > max;\n};\n/** returns `null` if valid and error object if not */\nconst validateRequired = (required, /** Id to identify the question */\nquestionId, value, touched, /** Number of answers - only needed for type `ALL` validation of choice answers */\nchoiceCount = 1, /** Error message to return when the answer checked but left blank */\notherRequiredErrorText = '', /** for ImageChoice or other questions where `ALL` does not require all choices to be selected */\nnoRangeValidation = false) => {\n if (!touched || !required) {\n return null;\n }\n if (!isResponseValueArray(value)) {\n // invalid value format\n return createValidationError('REQUIRED', required.errorMessage, questionId);\n }\n let hasError = false;\n switch (required.type) {\n case 'ALL':\n if (noRangeValidation) {\n hasError = hasTypeAllValidationErrorWithoutRangeSelection(value);\n } else {\n hasError = hasTypeAllValidationError(value, choiceCount);\n }\n break;\n case 'AT_LEAST':\n hasError = hasTypeAtLeastValidationError(value, required);\n break;\n case 'AT_MOST':\n hasError = hasTypeAtMostValidationError(value, required);\n break;\n case 'EXACTLY':\n hasError = hasTypeExactlyValidationError(value, required);\n break;\n case 'RANGE':\n hasError = hasTypeRangeValidationError(value, required);\n break;\n }\n if (hasError) {\n return createValidationError('REQUIRED', required.errorMessage, questionId);\n }\n if (hasEmptyOtherAnswer(value)) {\n // empty other text field\n return createValidationError('REQUIRED', otherRequiredErrorText, questionId);\n }\n return null;\n};\n/** Validates `valueToValidate` for text-length and returns an `QuestionError` or `null` (valid) */\nconst checkValueRequired = (question, valueToValidate, touched) => {\n var _a, _b, _c, _d, _e;\n if (!question.required) {\n return null; // questionType does not support validation or question is not touched\n }\n /** Number of answers - only needed for type `ALL` validation of choice answers */\n let total;\n const answerCount = (_b = (_a = question.answers) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : (_c = question.answersImage) === null || _c === void 0 ? void 0 : _c.length;\n if (question.required.type === 'ALL' && answerCount) {\n total = answerCount;\n if (total && ((_d = question.answerOther) === null || _d === void 0 ? void 0 : _d.type) === 'ANSWER') {\n // answer other choice counts too (comment does not)\n total += 1;\n }\n // no need to make adjustments for None of the Above (NOTA) as\n // `ALL` is not available when NOTA is selected\n }\n /** questions where `required.type === ALL` requires all choices to be selected */\n const allChoicesRequired = ['check_box'].includes(question.typeId) || question.variant === 'MANY_ANSWERS_IMAGE';\n return validateRequired(question.required, question.id, valueToValidate, touched, total, (_e = question.answerOther) === null || _e === void 0 ? void 0 : _e.requiredErrorText, !allChoicesRequired);\n};\n/** Helper for question-types that only validate require */\nconst standAloneRequiredValidator = (question, valueToValidate, touched) => {\n const valueError = checkValueRequired(question, valueToValidate, touched);\n return valueError === null ? null : [valueError];\n};\n\n/** Array of all validators needed to validate the content of openEnded\n * text inputs (SingleTextbox, `other`, `answerOther`) */\nconst openEndedValidators = [checkValueTextLength, checkValueNumericalFormat, checkValueDateFormat, checkValueEmailFormat];\n/** Array of all validators needed to validate the\n * contents of multiple text inputs (MultipleTextbox) */\nconst openEndedMultipleValueValidators = [checkValueNumericalFormat, checkMultipleValueNumericalSum, checkValueTextLength, checkValueDateFormat, checkValueEmailFormat];\nconst checkSelectedAnswerOtherRequired = (question, valueToValidate, _touched) => {\n var _a;\n return !valueToValidate.length ? createValidationError('REQUIRED', (_a = question.answerOther) === null || _a === void 0 ? void 0 : _a.requiredErrorText, question.id) : null;\n};\n/**\n *\n * Generic validation for components with an single string value (OpenEnded Questions types).\n *\n * E.g. SingleTextbox or CommentBox\n *\n * @returns {QuestionError[] | null} `null` means there is no error - `QuestionError[]` will never be an empty array\n */\nconst validateRespondentSurveyOpenEndedQuestion = (q, answer, touched) => {\n var _a, _b, _c;\n const valueErrors = [checkValueRequired(q, answer, touched)];\n const otherErrors = (_b = runValidators(openEndedValidators, q, (_a = answer[0]) === null || _a === void 0 ? void 0 : _a.value, touched)) !== null && _b !== void 0 ? _b : [];\n return (_c = [...valueErrors, ...otherErrors].filter(notNull)) !== null && _c !== void 0 ? _c : null;\n};\n/**\n *\n * Generic validation for components with multiple response values\n *\n * E.g. MultipleTextbox\n *\n * @returns {QuestionError[] | null} `null` means there is no error - `QuestionError[]` will never be an empty array\n */\nconst validateRespondentSurveyMultipleOpenEndedQuestion = (q, answers, touched) => {\n var _a, _b;\n const valueErrors = [checkValueRequired(q, answers, touched)];\n const answerValues = answers.map(answer => answer.value);\n const otherErrors = (_a = runValidators(openEndedMultipleValueValidators, q, answerValues, touched)) !== null && _a !== void 0 ? _a : [];\n return (_b = [...valueErrors, ...otherErrors].filter(notNull)) !== null && _b !== void 0 ? _b : null;\n};\n/**\n * Generic validation for components with an single or multiples selections and an (optional) _other_ (`COMMENT` or `ANSWER`) or _None of the Above_ (`NOTA`) option.\n *\n * E.g. Checkboxes, Dropdown or MultipleChoice\n *\n * @returns {QuestionError[] | null} `null` means there is no error - `QuestionError[]` will never be an empty array\n */\nconst validateRespondentSurveySelectionAndOtherValue = (q, answer, touched) => {\n /** Regular answers, other type 'ANSWER' and 'None of the above' */\n const selectedChoices = answer.filter(a => !a.type || ['NOTA', 'ANSWER'].includes(a.type));\n /** Any type of 'other' answer */\n const otherValue = answer.find(a => a.type && a.type !== 'NOTA');\n const valueErrors = [checkValueRequired(q, selectedChoices, touched)].filter(notNull); // required check for question, if there is no answer\n const hasRequiredAnswerError = valueErrors.length > 0;\n if (!q.answerOther && !q.answerComment) {\n // no other option so we can return here\n return !hasRequiredAnswerError ? null : valueErrors;\n }\n /**\n * Selected Other-Answer requires a non-empty value (regardless of validation or require)\n */\n const selectedAnswerOtherRequiredError = [(otherValue === null || otherValue === void 0 ? void 0 : otherValue.type) === 'ANSWER' ? checkSelectedAnswerOtherRequired(q, otherValue === null || otherValue === void 0 ? void 0 : otherValue.value) : null];\n const returnValueErrors = [...valueErrors, ...selectedAnswerOtherRequiredError, ...(runValidators(openEndedValidators, q, otherValue === null || otherValue === void 0 ? void 0 : otherValue.value, touched, (otherValue === null || otherValue === void 0 ? void 0 : otherValue.type) === 'ANSWER') || [])].filter(notNull);\n return returnValueErrors.length > 0 ? returnValueErrors : null;\n};\nconst singleTextboxQuestionDefinition = {\n typeId: typeId$e,\n fromExternalQuestion: fromExternalQuestion$e,\n toExternalQuestion: toExternalQuestion$e,\n isOfQuestionType: isOfQuestionType$e,\n isCompatible: isCompatible$e\n};\nconst baseGuards$a = baseQuestionGuards('multiple_textbox', 'OPEN_ENDED', 'MANY_FIELDS');\nconst isQuestionTypeMultipleTextbox = typeGuard(baseGuards$a);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeMultipleTextbox(q) {\n return typeAssertion(baseGuards$a)(q);\n}\nconst mapFromExternalQuestion$d = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'multiple_textbox',\n externalQuestion,\n capability\n });\n assertQuestionTypeMultipleTextbox(questionType);\n return questionType;\n};\nconst typeId$d = 'multiple_textbox';\nconst fromExternalQuestion$d = (source, capability) => mapFromExternalQuestion$d(source, capability);\nconst toExternalQuestion$d = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$d = q => isCompatible$f(q, typeId$d);\nconst isOfQuestionType$d = isQuestionTypeMultipleTextbox;\nconst multipleTextboxQuestionDefinition = {\n typeId: typeId$d,\n fromExternalQuestion: fromExternalQuestion$d,\n toExternalQuestion: toExternalQuestion$d,\n isOfQuestionType: isOfQuestionType$d,\n isCompatible: isCompatible$d\n};\n\n/// Type Guards\nconst baseGuards$9 = baseQuestionGuards('comment_box', 'OPEN_ENDED', 'ESSAY');\nconst isQuestionTypeCommentBox = typeGuard(baseGuards$9);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeCommentBox(q) {\n return typeAssertion(baseGuards$9)(q);\n}\nconst mapFromExternalQuestion$c = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'comment_box',\n externalQuestion,\n capability\n });\n assertQuestionTypeCommentBox(questionType);\n return questionType;\n};\nconst typeId$c = 'comment_box';\nconst fromExternalQuestion$c = (source, capability) => mapFromExternalQuestion$c(source, capability);\nconst toExternalQuestion$c = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$c = q => isCompatible$f(q, typeId$c);\nconst isOfQuestionType$c = isQuestionTypeCommentBox;\nconst commentBoxQuestionDefinition = {\n typeId: typeId$c,\n fromExternalQuestion: fromExternalQuestion$c,\n toExternalQuestion: toExternalQuestion$c,\n isCompatible: isCompatible$c,\n isOfQuestionType: isOfQuestionType$c\n};\n\n/// Type Guards\nconst baseGuards$8 = baseQuestionGuards('multiple_choice', 'MULTIPLE_CHOICE', 'SINGLE_ANSWER_RADIO');\nconst isQuestionValidationMultipleChoice = isFieldValidation;\nconst isQuestionTypeMultipleChoice = typeGuard(baseGuards$8);\nconst mapFromExternalQuestion$b = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'multiple_choice',\n externalQuestion,\n capability\n });\n return questionType;\n};\nconst typeId$b = 'multiple_choice';\nconst fromExternalQuestion$b = (source, capability) => mapFromExternalQuestion$b(source, capability);\nconst toExternalQuestion$b = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$b = q => isCompatible$f(q, typeId$b);\nconst isOfQuestionType$b = isQuestionTypeMultipleChoice;\nconst multipleChoiceQuestionDefinition = {\n typeId: typeId$b,\n fromExternalQuestion: fromExternalQuestion$b,\n toExternalQuestion: toExternalQuestion$b,\n isCompatible: isCompatible$b,\n isOfQuestionType: isOfQuestionType$b\n};\n\n// TypeGuards and Assertions\nconst baseGuards$7 = baseQuestionGuards('check_box', 'MULTIPLE_CHOICE', 'MANY_ANSWERS_CHECKBOX');\nconst isQuestionTypeCheckBox = typeGuard(baseGuards$7);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeCheckBox(externalQuestion) {\n return typeAssertion(baseGuards$7)(externalQuestion);\n}\nconst mapFromExternalQuestion$a = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'check_box',\n externalQuestion,\n capability\n });\n assertQuestionTypeCheckBox(questionType);\n return questionType;\n};\nconst typeId$a = 'check_box';\nconst fromExternalQuestion$a = (source, capability) => mapFromExternalQuestion$a(source, capability);\nconst toExternalQuestion$a = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$a = q => isCompatible$f(q, typeId$a);\nconst isOfQuestionType$a = isQuestionTypeCheckBox;\nconst checkBoxQuestionDefinition = {\n typeId: typeId$a,\n fromExternalQuestion: fromExternalQuestion$a,\n toExternalQuestion: toExternalQuestion$a,\n isCompatible: isCompatible$a,\n isOfQuestionType: isOfQuestionType$a\n};\nconst baseGuards$6 = baseQuestionGuards('dropdown', 'MULTIPLE_CHOICE', 'SINGLE_ANSWER_MENU');\nconst isQuestionTypeDropdown = typeGuard(baseGuards$6);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeDropdown(externalQuestion) {\n return typeAssertion(baseGuards$6)(externalQuestion);\n}\nconst mapFromExternalQuestion$9 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'dropdown',\n externalQuestion,\n capability\n });\n assertQuestionTypeDropdown(questionType);\n return questionType;\n};\nconst typeId$9 = 'dropdown';\nconst fromExternalQuestion$9 = (source, capability) => mapFromExternalQuestion$9(source, capability);\nconst toExternalQuestion$9 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$9 = q => isCompatible$f(q, typeId$9);\nconst isOfQuestionType$9 = isQuestionTypeDropdown;\nconst dropdownQuestionDefinition = {\n typeId: typeId$9,\n fromExternalQuestion: fromExternalQuestion$9,\n toExternalQuestion: toExternalQuestion$9,\n isCompatible: isCompatible$9,\n isOfQuestionType: isOfQuestionType$9\n};\nconst baseGuards$5 = baseQuestionGuards('image_choice', 'MULTIPLE_CHOICE', 'SINGLE_ANSWER_IMAGE');\nconst isQuestionTypeImageChoice = typeGuard({\n ...baseGuards$5,\n /* To reduce code duplication, we assume the discrepancies between\n * \"single answer\" and \"many answers\" question types are limited to \"typeId\" and \"variant\".\n */\n typeId: isFixed('image_choice'),\n variant: isEither([isFixed('SINGLE_ANSWER_IMAGE'), isFixed('MANY_ANSWERS_IMAGE')])\n});\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeImageChoice(q) {\n return typeAssertion(isQuestionTypeImageChoice)(q);\n}\nconst mapFromExternalQuestion$8 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'image_choice',\n externalQuestion,\n capability\n });\n assertQuestionTypeImageChoice(questionType);\n return questionType;\n};\nconst typeId$8 = 'image_choice';\nconst fromExternalQuestion$8 = (source, capability) => mapFromExternalQuestion$8(source, capability);\nconst toExternalQuestion$8 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$8 = q => isCompatible$f(q, typeId$8);\nconst isOfQuestionType$8 = isQuestionTypeImageChoice;\nconst imageChoiceQuestionDefinition = {\n typeId: typeId$8,\n fromExternalQuestion: fromExternalQuestion$8,\n toExternalQuestion: toExternalQuestion$8,\n isCompatible: isCompatible$8,\n isOfQuestionType: isOfQuestionType$8\n};\nconst baseGuards$4 = baseQuestionGuards('slider', 'SLIDER', 'SINGLE_SLIDER');\nconst isQuestionTypeSlider = typeGuard(baseGuards$4);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeSlider(externalQuestion) {\n return typeAssertion(baseGuards$4)(externalQuestion);\n}\nconst mapFromExternalQuestion$7 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'slider',\n externalQuestion,\n capability\n });\n assertQuestionTypeSlider(questionType);\n return questionType;\n};\nconst typeId$7 = 'slider';\nconst isCompatible$7 = q => isCompatible$f(q, typeId$7);\nconst isOfQuestionType$7 = isQuestionTypeSlider;\nconst fromExternalQuestion$7 = (source, capability) => mapFromExternalQuestion$7(source, capability);\nconst toExternalQuestion$7 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst sliderQuestionDefinition = {\n typeId: typeId$7,\n fromExternalQuestion: fromExternalQuestion$7,\n toExternalQuestion: toExternalQuestion$7,\n isCompatible: isCompatible$7,\n isOfQuestionType: isOfQuestionType$7\n};\nconst baseStarRatingMatrixGuards = baseQuestionGuards('star_rating', 'MATRIX', 'RATING');\nconst baseStarRatingScaleGuards = baseQuestionGuards('star_rating', 'RATING_SCALE', 'SINGLE_ANSWER_SYMBOL');\nconst isQuestionTypeStarRatingMatrix = typeGuard(baseStarRatingMatrixGuards);\nconst isQuestionTypeStarRatingScale = typeGuard(baseStarRatingScaleGuards);\nconst isQuestionTypeStarRating = isEither([isQuestionTypeStarRatingMatrix, isQuestionTypeStarRatingScale]);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeStarRating(externalQuestion) {\n return typeAssertion(isQuestionTypeStarRating)(externalQuestion);\n}\nconst mapFromExternalQuestion$6 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'star_rating',\n externalQuestion,\n capability\n });\n assertQuestionTypeStarRating(questionType);\n return questionType;\n};\nconst typeId$6 = 'star_rating';\nconst isCompatible$6 = q => isCompatible$f(q, typeId$6);\nconst isOfQuestionType$6 = isQuestionTypeStarRating;\nconst fromExternalQuestion$6 = (source, capability) => mapFromExternalQuestion$6(source, capability);\nconst toExternalQuestion$6 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst starRatingQuestionDefinition = {\n typeId: typeId$6,\n fromExternalQuestion: fromExternalQuestion$6,\n toExternalQuestion: toExternalQuestion$6,\n isCompatible: isCompatible$6,\n isOfQuestionType: isOfQuestionType$6\n};\nconst baseSingleAnswerGuards = baseQuestionGuards('matrix', 'MATRIX', 'SINGLE_ANSWER_RADIO');\nconst baseManyAnswersGuards = baseQuestionGuards('matrix', 'MATRIX', 'MANY_ANSWERS_CHECKBOX');\nconst baseRatingScaleGuards = baseQuestionGuards('matrix', 'RATING_SCALE', 'SINGLE_ANSWER_RADIO');\nconst isQuestionTypeMatrixSingleAnswer = typeGuard(baseSingleAnswerGuards);\nconst isQuestionTypeMatrixManyAnswers = typeGuard(baseManyAnswersGuards);\nconst isQuestionTypeMatrixRatingScale = typeGuard(baseRatingScaleGuards);\nconst isQuestionTypeMatrix = isEither([isQuestionTypeMatrixSingleAnswer, isQuestionTypeMatrixManyAnswers, isQuestionTypeMatrixRatingScale]);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeMatrix(externalQuestion) {\n // TODO: Refactor for better error messages\n if (!isQuestionTypeMatrix(externalQuestion)) {\n throw new Error('Question data does not match any supported question type.');\n }\n}\nconst mapFromExternalQuestion$5 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'matrix',\n externalQuestion,\n capability\n });\n assertQuestionTypeMatrix(questionType);\n return questionType;\n};\nconst typeId$5 = 'matrix';\nconst isCompatible$5 = q => isCompatible$f(q, typeId$5);\nconst isOfQuestionType$5 = isQuestionTypeMatrix;\nconst fromExternalQuestion$5 = (source, capability) => mapFromExternalQuestion$5(source, capability);\nconst toExternalQuestion$5 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\n\n// Refine this implementation once we implement this question-type\nconst matrixRespondentSurveyValidation = (q, answer, touched) => {\n // Required validation for Matrix only work per-row,\n // there is no difference wether there is one or more columns selected,\n // so we can extract the first value (i.e. the columnId) and\n // use`validateRespondentSurveySelectionAndOtherValue` as other validations\n const flattenedValues = answer.map(({\n value,\n ...rest\n }) => {\n var _a;\n return {\n ...rest,\n value: typeof value === 'string' ? value : (_a = value.find(v => !!v.value)) === null || _a === void 0 ? void 0 : _a.value\n };\n }).filter(a => !!a.value);\n return validateRespondentSurveySelectionAndOtherValue(q, flattenedValues, touched);\n};\nconst matrixQuestionDefinition = {\n typeId: typeId$5,\n fromExternalQuestion: fromExternalQuestion$5,\n toExternalQuestion: toExternalQuestion$5,\n isOfQuestionType: isOfQuestionType$5,\n isCompatible: isCompatible$5\n};\nconst baseGuards$3 = baseQuestionGuards('ranking', 'RANKING', 'SINGLE_ANSWER_RADIO');\nconst isQuestionTypeRanking = typeGuard(baseGuards$3);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeRanking(externalQuestion) {\n return typeAssertion(baseGuards$3)(externalQuestion);\n}\nconst mapFromExternalQuestion$4 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'ranking',\n externalQuestion,\n capability\n });\n assertQuestionTypeRanking(questionType);\n return questionType;\n};\nconst typeId$4 = 'ranking';\nconst isCompatible$4 = q => isCompatible$f(q, typeId$4);\nconst isOfQuestionType$4 = isQuestionTypeRanking;\nconst fromExternalQuestion$4 = (source, capability) => mapFromExternalQuestion$4(source, capability);\nconst toExternalQuestion$4 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst rankingQuestionDefinition = {\n typeId: typeId$4,\n fromExternalQuestion: fromExternalQuestion$4,\n toExternalQuestion: toExternalQuestion$4,\n isCompatible: isCompatible$4,\n isOfQuestionType: isOfQuestionType$4\n};\n\n/// Type Guards\nconst baseGuards$2 = baseQuestionGuards('nps', 'RATING_SCALE', 'NPS');\nconst isQuestionValidationNps = isFieldValidation;\nconst isQuestionTypeNps = typeGuard(baseGuards$2);\nconst mapFromExternalQuestion$3 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'nps',\n externalQuestion,\n capability\n });\n return questionType;\n};\nconst typeId$3 = 'nps';\nconst fromExternalQuestion$3 = (source, capability) => mapFromExternalQuestion$3(source, capability);\nconst toExternalQuestion$3 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$3 = q => isCompatible$f(q, typeId$3);\nconst isOfQuestionType$3 = isQuestionTypeNps;\nconst npsQuestionDefinition = {\n typeId: typeId$3,\n fromExternalQuestion: fromExternalQuestion$3,\n toExternalQuestion: toExternalQuestion$3,\n isCompatible: isCompatible$3,\n isOfQuestionType: isOfQuestionType$3\n};\n\n/// Type Guards\nconst baseDateTimeGuards = baseQuestionGuards('date_time', 'DATETIME', 'DATETIME');\nconst baseDateGuards = baseQuestionGuards('date_time', 'DATETIME', 'DATE');\nconst baseTimeGuards = baseQuestionGuards('date_time', 'DATETIME', 'TIME');\nconst isQuestionTypeDateTimeDateAndTime = typeGuard(baseDateTimeGuards);\nconst isQuestionTypeDateTimeDate = typeGuard(baseDateGuards);\nconst isQuestionTypeDateTimeTime = typeGuard(baseTimeGuards);\nconst isQuestionTypeDateTime = isEither([isQuestionTypeDateTimeDateAndTime, isQuestionTypeDateTimeDate, isQuestionTypeDateTimeTime]);\nconst mapFromExternalQuestion$2 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'date_time',\n externalQuestion,\n capability\n });\n return questionType;\n};\nconst typeId$2 = 'date_time';\nconst fromExternalQuestion$2 = (source, capability) => mapFromExternalQuestion$2(source, capability);\nconst toExternalQuestion$2 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$2 = q => isCompatible$f(q, typeId$2);\nconst isOfQuestionType$2 = isQuestionTypeDateTime;\n\n/**\n * Default error message token that need to be overwritten from consumers in\n * questions-ui to allow l10n.\n *\n * This is because other QuestionTypes' error messages are coming from the GraphAPI,\n * but the ones below are client-side only.\n */\nconst errorMessageTokens = {\n /** Incorrect or missing `date` input for `DATE_INTL`. To be replaced with localized: _Please provide date in dd/mm/yyyy format._ */\n dateIntl: 'ERROR_PROVIDE_DATE_INTL_FORMAT',\n /** Incorrect or missing `date` input for `DATE_US`. To be replaced with localized: _Please provide date in mm/dd/yyyy format._ */\n dateUs: 'ERROR_PROVIDE_DATE_US_FORMAT',\n /** Incorrect or missing `minute` input. To be replaced with localized: _Please enter hrs from 0 to 23._ */\n hour: 'ERROR_ENTER_HOURS',\n /** Incorrect or missing `minute` input. To be replaced with localized: _Please enter mins from 0 to 59.._ */\n minute: 'ERROR_ENTER_MINUTES',\n /** Incorrect or missing `period` selection. To be replaced with localized: _Please select AM/PM._ */\n period: 'ERROR_SELECT_PERIOD'\n};\nconst hasValidTime = ({\n hour = '',\n minute = '',\n period\n}) => hour.length > 0 && minute.length > 0 && ['AM', 'PM'].includes(period !== null && period !== void 0 ? period : '');\n/** Convert DateTime Answers to simple string representation for require check */\nconst dateTimeAnswerPayloadToString = ({\n date,\n hour,\n minute,\n period\n}, variant) => {\n if (variant === 'DATE') {\n return date !== null && date !== void 0 ? date : '';\n }\n if (!hasValidTime({\n hour,\n minute,\n period\n })) {\n // short-circuit to show error if time is not valid\n return '';\n }\n if (variant === 'TIME') {\n return `${hour}:${minute}${period}`;\n }\n if (!date) {\n return ''; // time without date is invalid\n }\n\n return `${date} ${hour}:${minute}${period}`;\n};\n/**\n * Flattens the answer values to string,\n * i.e. converts `ResponseValue[]` to `ResponseValue[]`\n */\nconst stringifyAnswerValues = (answers, variant) => answers.map(a => ({\n ...a,\n value: dateTimeAnswerPayloadToString(a.value, variant)\n})).filter(a => a.value !== ''); // remove empty or invalid answers\n/** Validation logic for the time only */\nconst validateTimeFormat = (id, fieldId, type, hour, minute, period) => {\n const errors = [];\n const hourParsed = parseInt(hour || '', 10);\n const minParsed = parseInt(minute || '', 10);\n if (Number.isNaN(hourParsed) || hourParsed < 0 || hourParsed > 23) {\n errors.push(createValidationError(type, errorMessageTokens.hour, id, fieldId));\n }\n if (Number.isNaN(minParsed) || minParsed < 0 || minParsed > 59) {\n errors.push(createValidationError(type, errorMessageTokens.minute, id, fieldId));\n }\n if (period !== 'AM' && period !== 'PM') {\n errors.push(createValidationError(type, errorMessageTokens.period, id, fieldId));\n }\n return errors;\n};\n/**\n * Validates a single DateTime answer\n *\n * @returns `null` if valid and error object if not\n */\nconst checkValueFormat = (q, {\n date,\n hour,\n minute,\n period\n}, touched, fieldId) => {\n let errors = [];\n const {\n id,\n validation: {\n type\n },\n variant\n } = q;\n if ((variant === 'DATE' || variant === 'DATETIME') && checkValueDateFormat(q, date, touched, true)) {\n errors.push(createValidationError(type, type === 'DATE_INTL' ? errorMessageTokens.dateIntl : errorMessageTokens.dateUs, id, fieldId));\n }\n if (variant === 'TIME' || variant === 'DATETIME') {\n errors = [...errors, ...validateTimeFormat(id, fieldId, type, hour, minute, period)];\n }\n return errors.length > 0 ? errors : null;\n};\n/**\n * Creates the validation function for DateTime component.\n *\n * This validation is unique as it needs additional error messages that are\n * not returned in the GraphAPI response, and therefore are provided as tokens\n * (see `errorMessageTokens`) here to get replaced in questions-ui as this it\n * the only package in SMQuestions with l18n support and it is not worth the\n * setup and maintenance overhead to enable it here just for that.\n *\n * @returns {QuestionError[] | null} `null` means there is no error - `QuestionError[]` will never be an empty array\n */\nconst dateTimeRespondentSurveyValidation = (q, answers, touched) => {\n const simplifiedAnswers = stringifyAnswerValues(answers, q.variant);\n const valueErrors = [checkValueRequired(q, simplifiedAnswers, touched)];\n const dateFormatErrors = answers.reduce((acc, curr) => {\n const errors = checkValueFormat(q, curr.value, touched, curr.id);\n if (errors === null) {\n return acc;\n }\n return [...acc, ...errors];\n }, []);\n const errors = [...valueErrors, ...dateFormatErrors].filter(notNull);\n return errors.length > 0 ? errors : null;\n};\nconst dateTimeQuestionDefinition = {\n typeId: typeId$2,\n fromExternalQuestion: fromExternalQuestion$2,\n toExternalQuestion: toExternalQuestion$2,\n isCompatible: isCompatible$2,\n isOfQuestionType: isOfQuestionType$2\n};\nconst baseGuards$1 = baseQuestionGuards('image_presentation', 'PRESENTATION', 'IMAGE');\nconst isQuestionTypeImagePresentation = typeGuard(baseGuards$1);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeImagePresentation(externalQuestion) {\n return typeAssertion(baseGuards$1)(externalQuestion);\n}\nconst mapFromExternalQuestion$1 = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'image_presentation',\n externalQuestion,\n capability\n });\n assertQuestionTypeImagePresentation(questionType);\n return questionType;\n};\nconst typeId$1 = 'image_presentation';\nconst fromExternalQuestion$1 = (source, capability) => mapFromExternalQuestion$1(source, capability);\nconst toExternalQuestion$1 = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible$1 = q => isCompatible$f(q, typeId$1);\nconst isOfQuestionType$1 = isQuestionTypeImagePresentation;\nconst imagePresentationQuestionDefinition = {\n typeId: typeId$1,\n fromExternalQuestion: fromExternalQuestion$1,\n toExternalQuestion: toExternalQuestion$1,\n isCompatible: isCompatible$1,\n isOfQuestionType: isOfQuestionType$1\n};\nconst baseGuards = baseQuestionGuards('text_presentation', 'PRESENTATION', 'TEXT');\nconst isQuestionTypeTextPresentation = typeGuard(baseGuards);\n/**\n * Basic guard to determine question type\n *\n * throws an error when the question does not meet all the type requirements.\n */\nfunction assertQuestionTypeTextPresentation(externalQuestion) {\n return typeAssertion(baseGuards)(externalQuestion);\n}\nconst mapFromExternalQuestion = (externalQuestion, capability) => {\n const questionType = mapDynamic({\n typeId: 'text_presentation',\n externalQuestion,\n capability\n });\n assertQuestionTypeTextPresentation(questionType);\n return questionType;\n};\nconst typeId = 'text_presentation';\nconst fromExternalQuestion = (source, capability) => mapFromExternalQuestion(source, capability);\nconst toExternalQuestion = (eq, q, capability) => mapInternalDynamicToExternal(eq);\nconst isCompatible = q => isCompatible$f(q, typeId);\nconst isOfQuestionType = isQuestionTypeTextPresentation;\nconst textPresentationQuestionDefinition = {\n typeId,\n fromExternalQuestion,\n toExternalQuestion,\n isCompatible,\n isOfQuestionType\n};\nconst questionTypeDefinitionModules = [singleTextboxQuestionDefinition, multipleTextboxQuestionDefinition, commentBoxQuestionDefinition, multipleChoiceQuestionDefinition, checkBoxQuestionDefinition, imageChoiceQuestionDefinition, dropdownQuestionDefinition, sliderQuestionDefinition, starRatingQuestionDefinition, matrixQuestionDefinition, npsQuestionDefinition, dateTimeQuestionDefinition, rankingQuestionDefinition, imagePresentationQuestionDefinition, textPresentationQuestionDefinition];\nconst findByType = typeId => qd => qd.typeId === typeId;\n/** Find the QuestionTypeDefinitionModule for `typeId` */\nconst pickQuestionTypeDefinition = typeId => {\n const res = questionTypeDefinitionModules.find(findByType(typeId));\n if (res === undefined) {\n throw new Error(`Unable to find module definition for type ${typeId}`);\n }\n return res;\n};\n/** Find a compatible QuestionTypeDefinitionModule for an external question */\nconst selectQuestionTypeDefinition = q => {\n var _a;\n return (_a = questionTypeDefinitionModules.find(({\n isCompatible\n }) => isCompatible(q))) !== null && _a !== void 0 ? _a : null;\n};\n\n/// Aggregate Response Guard Helpers\n/// GQL Types that will be generated soon.\nconst isAggregateResponseHeaderItem = typeGuard({\n id: isString,\n label: isString,\n weight: isNullable(isNumber)\n});\nconst isAggregateResponseHeader = typeGuard({\n id: isString,\n items: isArrayOf(isAggregateResponseHeaderItem)\n});\nconst isAggregateResponseCell = typeGuard({\n rowItem: isNullable(isAggregateResponseHeaderItem),\n columnItem: isNullable(isAggregateResponseHeaderItem),\n groupItem: isNullable(isAggregateResponseHeaderItem),\n percentage: isOptional(isNumber),\n total: isNumber\n});\nconst aggregateResponseBasicStatDimension = ['ROWS', 'COLUMNS', 'GROUPS'];\nconst isAggregateResponseBasicStats = typeGuard({\n across: isNullable(isOneOf(aggregateResponseBasicStatDimension)),\n row: isNullable(isAggregateResponseHeaderItem),\n column: isNullable(isAggregateResponseHeaderItem),\n group: isNullable(isAggregateResponseHeaderItem)\n});\nconst isAggregateResponseOtherAnswerItem = typeGuard({\n text: isString\n});\nconst isAggregateResponseOtherAnswer = typeGuard({\n title: isString,\n totalCount: isNumber,\n items: isArrayOf(isAggregateResponseOtherAnswerItem)\n});\n// One dimensional aggregate response\nconst isOneDimensionalAggregateResponseCell = typeGuard({\n rowItem: isAggregateResponseHeaderItem,\n columnItem: isNull,\n groupItem: isNull,\n percentage: isOptional(isNumber),\n total: isNumber\n});\nconst isOneDimensionalAggregateResponse = typeGuard({\n id: isString,\n type: isFixed('ONE_D'),\n rowHeader: isAggregateResponseHeader,\n columnHeader: isNull,\n groupHeader: isNull,\n data: isArrayOf(isOneDimensionalAggregateResponseCell),\n otherAnswers: isOptional(isAggregateResponseOtherAnswer),\n stats: isArrayOf(isAggregateResponseBasicStats)\n});\n// Two dimensional aggregate response\nconst isTwoDimensionalAggregateResponseCell = typeGuard({\n rowItem: isAggregateResponseHeaderItem,\n columnItem: isAggregateResponseHeaderItem,\n groupItem: isNull,\n percentage: isOptional(isNumber),\n total: isNumber\n});\nconst isTwoDimensionalAggregateResponse = typeGuard({\n id: isString,\n type: isFixed('TWO_D'),\n rowHeader: isAggregateResponseHeader,\n columnHeader: isAggregateResponseHeader,\n groupHeader: isNull,\n data: isArrayOf(isTwoDimensionalAggregateResponseCell),\n otherAnswers: isOptional(isAggregateResponseOtherAnswer),\n stats: isArrayOf(isAggregateResponseBasicStats)\n});\n// Three dimensional aggregate response\nconst isThreeDimensionalAggregateResponseCell = typeGuard({\n rowItem: isAggregateResponseHeaderItem,\n columnItem: isAggregateResponseHeaderItem,\n groupItem: isAggregateResponseHeaderItem,\n percentage: isOptional(isNumber),\n total: isNumber\n});\nconst isThreeDimensionalAggregateResponse = typeGuard({\n id: isString,\n type: isFixed('THREE_D'),\n rowHeader: isAggregateResponseHeader,\n columnHeader: isAggregateResponseHeader,\n groupHeader: isAggregateResponseHeader,\n data: isArrayOf(isThreeDimensionalAggregateResponseCell),\n otherAnswers: isOptional(isAggregateResponseOtherAnswer),\n stats: isArrayOf(isAggregateResponseBasicStats)\n});\n// Transformed type guards\nconst isOneDimensionalChartData = typeGuard({\n id: isString,\n rowID: isString,\n rowLabel: isString,\n total: isNumber,\n percentage: isOptional(isNumber)\n});\nconst isTwoDimensionalData = typeGuard({\n columnID: isString,\n columnLabel: isString,\n data: isArrayOf(isOneDimensionalChartData)\n});\nconst isThreeDimensionalData = typeGuard({\n groupID: isString,\n groupLabel: isString,\n data: isArrayOf(isTwoDimensionalData)\n});\n\n/** Converts the external `family` and `variant` to the internally used `TypeId` */\nconst getTypeId = ({\n family,\n variant\n}) => {\n switch (family) {\n case 'OPEN_ENDED':\n switch (variant) {\n case 'SINGLE_LINE':\n return 'single_textbox';\n case 'ESSAY':\n return 'comment_box';\n case 'MANY_FIELDS':\n return 'multiple_textbox';\n default:\n return null;\n }\n case 'MULTIPLE_CHOICE':\n switch (variant) {\n case 'SINGLE_ANSWER_RADIO':\n return 'multiple_choice';\n case 'MANY_ANSWERS_CHECKBOX':\n return 'check_box';\n case 'SINGLE_ANSWER_IMAGE':\n case 'MANY_ANSWERS_IMAGE':\n return 'image_choice';\n case 'SINGLE_ANSWER_MENU':\n return 'dropdown';\n default:\n return null;\n }\n case 'SLIDER':\n switch (variant) {\n case 'SINGLE_SLIDER':\n return 'slider';\n default:\n return null;\n }\n case 'RATING_SCALE':\n switch (variant) {\n case 'SINGLE_ANSWER_SYMBOL':\n return 'star_rating';\n case 'SINGLE_ANSWER_RADIO':\n return 'matrix';\n case 'NPS':\n return 'nps';\n default:\n return null;\n }\n case 'MATRIX':\n switch (variant) {\n case 'SINGLE_ANSWER_RADIO':\n case 'MANY_ANSWERS_CHECKBOX':\n return 'matrix';\n case 'RATING':\n return 'star_rating';\n default:\n return null;\n }\n case 'RANKING':\n switch (variant) {\n case 'SINGLE_ANSWER_RADIO':\n return 'ranking';\n default:\n return null;\n }\n case 'DATETIME':\n switch (variant) {\n case 'DATETIME':\n case 'DATE':\n case 'TIME':\n return 'date_time';\n default:\n return null;\n }\n case 'PRESENTATION':\n switch (variant) {\n case 'IMAGE':\n return 'image_presentation';\n case 'TEXT':\n return 'text_presentation';\n default:\n return null;\n }\n default:\n return null;\n }\n};\nconst isExternalQuestionWithTypeId = typeGuard({\n typeId: isString\n});\nfunction assertExternalQuestionWithIds(u) {\n return typeAssertion({\n typeId: isString,\n id: isString\n })(u);\n}\nexport { SENTIMENTS, aggregateResponseBasicStatDimension, assertExternalQuestionWithIds, assertQuestionTypeCheckBox, assertQuestionTypeCommentBox, assertQuestionTypeDropdown, assertQuestionTypeImageChoice, assertQuestionTypeImagePresentation, assertQuestionTypeMatrix, assertQuestionTypeMultipleTextbox, assertQuestionTypeRanking, assertQuestionTypeSingleTextbox, assertQuestionTypeSlider, assertQuestionTypeStarRating, assertQuestionTypeTextPresentation, baseQuestionGuards, checkBoxQuestionDefinition, validateRespondentSurveySelectionAndOtherValue as checkBoxRespondentSurveyValidation, commentBoxQuestionDefinition, validateRespondentSurveyOpenEndedQuestion as commentBoxRespondentSurveyValidation, dateTimeQuestionDefinition, dateTimeRespondentSurveyValidation, dropdownQuestionDefinition, validateRespondentSurveySelectionAndOtherValue as dropdownRespondentSurveyValidation, fixedWidthOptions, getTypeId, imageChoiceQuestionDefinition, standAloneRequiredValidator as imageChoiceRespondentSurveyValidation, imagePresentationQuestionDefinition, isAggregateResponseCell, isAggregateResponseHeader, isAggregateResponseHeaderItem, isExternalQuestionWithTypeId, isOneDimensionalAggregateResponse, isOneDimensionalChartData, isQuestionError, isQuestionType, isQuestionTypeCheckBox, isQuestionTypeCommentBox, isQuestionTypeDateTime, isQuestionTypeDropdown, isQuestionTypeImageChoice, isQuestionTypeImagePresentation, isQuestionTypeMatrix, isQuestionTypeMultipleChoice, isQuestionTypeMultipleTextbox, isQuestionTypeNps, isQuestionTypeRanking, isQuestionTypeSingleTextbox, isQuestionTypeSlider, isQuestionTypeStarRating, isQuestionTypeTextPresentation, isQuestionValidationMultipleChoice, isQuestionValidationNps, isThreeDimensionalAggregateResponse, isThreeDimensionalData, isTwoDimensionalAggregateResponse, isTwoDimensionalData, matrixQuestionDefinition, matrixRespondentSurveyValidation, multipleChoiceQuestionDefinition, validateRespondentSurveySelectionAndOtherValue as multipleChoiceRespondentSurveyValidation, multipleTextboxQuestionDefinition, validateRespondentSurveyMultipleOpenEndedQuestion as multipleTextboxRespondentSurveyValidation, npsQuestionDefinition, validateRequired as npsRespondentSurveyValidation, pickQuestionTypeDefinition, questionTypeFamilies, questionTypeIds, questionTypeLayoutPlacements, questionTypeMultipleChoiceLayouts, questionTypeRequiredPredicateTypes, questionTypeSkipLogicDestinationTypes, questionTypeSkipLogicTypes, questionTypeSortingKinds, questionTypeValidationTypes, questionTypeVariants, rankingQuestionDefinition, standAloneRequiredValidator as rankingRespondentSurveyValidation, ratingScaleSymbols, relativeWidthOptions, selectQuestionTypeDefinition, singleTextboxQuestionDefinition, validateRespondentSurveyOpenEndedQuestion as singleTextboxRespondentSurveyValidation, sliderQuestionDefinition, starRatingQuestionDefinition, textPresentationQuestionDefinition };","import * as React from 'react';\nimport React__default from 'react';\nimport Highcharts from 'highcharts';\nimport * as ReactDOM from 'react-dom';\nimport { findDOMNode } from 'react-dom';\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nvar changedArray = function changedArray(a, b) {\n if (a === void 0) {\n a = [];\n }\n if (b === void 0) {\n b = [];\n }\n return a.length !== b.length || a.some(function (item, index) {\n return !Object.is(item, b[index]);\n });\n};\nvar initialState = {\n error: null\n};\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n function ErrorBoundary() {\n var _this;\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n _this.state = initialState;\n _this.updatedWithError = false;\n _this.resetErrorBoundary = function () {\n var _this$props;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this.props.onReset == null ? void 0 : (_this$props = _this.props).onReset.apply(_this$props, args);\n _this.reset();\n };\n return _this;\n }\n ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(error) {\n return {\n error: error\n };\n };\n var _proto = ErrorBoundary.prototype;\n _proto.reset = function reset() {\n this.updatedWithError = false;\n this.setState(initialState);\n };\n _proto.componentDidCatch = function componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) == null ? void 0 : _this$props$onError.call(_this$props2, error, info);\n };\n _proto.componentDidMount = function componentDidMount() {\n var error = this.state.error;\n if (error !== null) {\n this.updatedWithError = true;\n }\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var error = this.state.error;\n var resetKeys = this.props.resetKeys; // There's an edge case where if the thing that triggered the error\n // happens to *also* be in the resetKeys array, we'd end up resetting\n // the error boundary immediately. This would likely trigger a second\n // error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call\n // of cDU after the error is set\n\n if (error !== null && !this.updatedWithError) {\n this.updatedWithError = true;\n return;\n }\n if (error !== null && changedArray(prevProps.resetKeys, resetKeys)) {\n var _this$props$onResetKe, _this$props3;\n (_this$props$onResetKe = (_this$props3 = this.props).onResetKeysChange) == null ? void 0 : _this$props$onResetKe.call(_this$props3, prevProps.resetKeys, resetKeys);\n this.reset();\n }\n };\n _proto.render = function render() {\n var error = this.state.error;\n var _this$props4 = this.props,\n fallbackRender = _this$props4.fallbackRender,\n FallbackComponent = _this$props4.FallbackComponent,\n fallback = _this$props4.fallback;\n if (error !== null) {\n var _props = {\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if ( /*#__PURE__*/React.isValidElement(fallback)) {\n return fallback;\n } else if (typeof fallbackRender === 'function') {\n return fallbackRender(_props);\n } else if (FallbackComponent) {\n return /*#__PURE__*/React.createElement(FallbackComponent, _props);\n } else {\n throw new Error('react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop');\n }\n }\n return this.props.children;\n };\n return ErrorBoundary;\n}(React.Component);\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nvar classnamesExports = {};\nvar classnames$1 = {\n get exports() {\n return classnamesExports;\n },\n set exports(v) {\n classnamesExports = v;\n }\n};\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n(function (module) {\n /* global define */\n\n (function () {\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n return classes.join(' ');\n }\n if (module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else {\n window.classNames = classNames;\n }\n })();\n})(classnames$1);\nvar classnames = classnamesExports;\nvar highchartsReact_minExports = {};\nvar highchartsReact_min = {\n get exports() {\n return highchartsReact_minExports;\n },\n set exports(v) {\n highchartsReact_minExports = v;\n }\n};\n(function (module, exports) {\n !function (e, t) {\n module.exports = t(React__default, Highcharts);\n }(\"undefined\" != typeof self ? self : commonjsGlobal, function (e, t) {\n return function (e) {\n function t(n) {\n if (r[n]) return r[n].exports;\n var o = r[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(o.exports, o, o.exports, t), o.l = !0, o.exports;\n }\n var r = {};\n return t.m = e, t.c = r, t.d = function (e, r, n) {\n t.o(e, r) || Object.defineProperty(e, r, {\n configurable: !1,\n enumerable: !0,\n get: n\n });\n }, t.n = function (e) {\n var r = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return t.d(r, \"a\", r), r;\n }, t.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, t.p = \"\", t(t.s = 0);\n }([function (e, t, r) {\n function n() {\n return n = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);\n }\n return e;\n }, n.apply(this, arguments);\n }\n function o(e) {\n return i(e) || u(e) || c();\n }\n function c() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n function u(e) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) return Array.from(e);\n }\n function i(e) {\n if (Array.isArray(e)) {\n for (var t = 0, r = new Array(e.length); t < e.length; t++) r[t] = e[t];\n return r;\n }\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n var a = r(1),\n s = r.n(a),\n f = r(2),\n p = r.n(f),\n l = \"undefined\" != typeof window ? a.useLayoutEffect : a.useEffect,\n d = Object(a.forwardRef)(function (e, t) {\n var r = Object(a.useRef)(),\n c = Object(a.useRef)();\n return l(function () {\n function t() {\n var t = e.highcharts || p.a,\n n = e.constructorType || \"chart\";\n t ? t[n] ? e.options ? c.current = t[n](r.current, e.options, e.callback ? e.callback : void 0) : console.warn('The \"options\" property was not passed.') : console.warn('The \"constructorType\" property is incorrect or some required module is not imported.') : console.warn('The \"highcharts\" property was not passed.');\n }\n if (c.current) {\n if (!1 !== e.allowChartUpdate) if (!e.immutable && c.current) {\n var n;\n (n = c.current).update.apply(n, [e.options].concat(o(e.updateArgs || [!0, !0])));\n } else t();\n } else t();\n }), l(function () {\n return function () {\n c.current && (c.current.destroy(), c.current = null);\n };\n }, []), Object(a.useImperativeHandle)(t, function () {\n return {\n get chart() {\n return c.current;\n },\n container: r\n };\n }, []), s.a.createElement(\"div\", n({}, e.containerProps, {\n ref: r\n }));\n });\n t.default = Object(a.memo)(d);\n }, function (t, r) {\n t.exports = e;\n }, function (e, r) {\n e.exports = t;\n }]);\n });\n})(highchartsReact_min);\nvar HighchartsReact = /*@__PURE__*/getDefaultExportFromCjs(highchartsReact_minExports);\nvar classCallCheckExports = {};\nvar classCallCheck = {\n get exports() {\n return classCallCheckExports;\n },\n set exports(v) {\n classCallCheckExports = v;\n }\n};\n(function (module) {\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n module.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(classCallCheck);\nvar _classCallCheck = /*@__PURE__*/getDefaultExportFromCjs(classCallCheckExports);\nvar createClassExports = {};\nvar createClass = {\n get exports() {\n return createClassExports;\n },\n set exports(v) {\n createClassExports = v;\n }\n};\nvar toPropertyKeyExports = {};\nvar toPropertyKey = {\n get exports() {\n return toPropertyKeyExports;\n },\n set exports(v) {\n toPropertyKeyExports = v;\n }\n};\nvar _typeofExports = {};\nvar _typeof = {\n get exports() {\n return _typeofExports;\n },\n set exports(v) {\n _typeofExports = v;\n }\n};\n(function (module) {\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n }\n module.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(_typeof);\nvar toPrimitiveExports = {};\nvar toPrimitive = {\n get exports() {\n return toPrimitiveExports;\n },\n set exports(v) {\n toPrimitiveExports = v;\n }\n};\n(function (module) {\n var _typeof = _typeofExports[\"default\"];\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n module.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(toPrimitive);\n(function (module) {\n var _typeof = _typeofExports[\"default\"];\n var toPrimitive = toPrimitiveExports;\n function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(toPropertyKey);\n(function (module) {\n var toPropertyKey = toPropertyKeyExports;\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n module.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(createClass);\nvar _createClass = /*@__PURE__*/getDefaultExportFromCjs(createClassExports);\nvar possibleConstructorReturnExports = {};\nvar possibleConstructorReturn = {\n get exports() {\n return possibleConstructorReturnExports;\n },\n set exports(v) {\n possibleConstructorReturnExports = v;\n }\n};\nvar assertThisInitializedExports = {};\nvar assertThisInitialized = {\n get exports() {\n return assertThisInitializedExports;\n },\n set exports(v) {\n assertThisInitializedExports = v;\n }\n};\n(function (module) {\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(assertThisInitialized);\nvar _assertThisInitialized = /*@__PURE__*/getDefaultExportFromCjs(assertThisInitializedExports);\n(function (module) {\n var _typeof = _typeofExports[\"default\"];\n var assertThisInitialized = assertThisInitializedExports;\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n }\n module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(possibleConstructorReturn);\nvar _possibleConstructorReturn = /*@__PURE__*/getDefaultExportFromCjs(possibleConstructorReturnExports);\nvar getPrototypeOfExports = {};\nvar getPrototypeOf = {\n get exports() {\n return getPrototypeOfExports;\n },\n set exports(v) {\n getPrototypeOfExports = v;\n }\n};\n(function (module) {\n function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n }\n module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(getPrototypeOf);\nvar _getPrototypeOf = /*@__PURE__*/getDefaultExportFromCjs(getPrototypeOfExports);\nvar inheritsExports = {};\nvar inherits = {\n get exports() {\n return inheritsExports;\n },\n set exports(v) {\n inheritsExports = v;\n }\n};\nvar setPrototypeOfExports = {};\nvar setPrototypeOf = {\n get exports() {\n return setPrototypeOfExports;\n },\n set exports(v) {\n setPrototypeOfExports = v;\n }\n};\n(function (module) {\n function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n }\n module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(setPrototypeOf);\n(function (module) {\n var setPrototypeOf = setPrototypeOfExports;\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n }\n module.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(inherits);\nvar _inherits = /*@__PURE__*/getDefaultExportFromCjs(inheritsExports);\nvar definePropertyExports = {};\nvar defineProperty = {\n get exports() {\n return definePropertyExports;\n },\n set exports(v) {\n definePropertyExports = v;\n }\n};\n(function (module) {\n var toPropertyKey = toPropertyKeyExports;\n function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n module.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(defineProperty);\nvar _defineProperty = /*@__PURE__*/getDefaultExportFromCjs(definePropertyExports);\nvar reactLifecyclesCompat_cjs = {};\nObject.defineProperty(reactLifecyclesCompat_cjs, '__esModule', {\n value: true\n});\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var componentName = Component.displayName || Component.name;\n var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\\n ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') + '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks');\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');\n }\n prototype.componentWillUpdate = componentWillUpdate;\n var componentDidUpdate = prototype.componentDidUpdate;\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n return Component;\n}\nvar polyfill_1 = reactLifecyclesCompat_cjs.polyfill = polyfill;\nvar _extendsExports = {};\nvar _extends$1 = {\n get exports() {\n return _extendsExports;\n },\n set exports(v) {\n _extendsExports = v;\n }\n};\n(function (module) {\n function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n }\n module.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(_extends$1);\nvar _extends = /*@__PURE__*/getDefaultExportFromCjs(_extendsExports);\nfunction toVal(mix) {\n var k,\n y,\n str = '';\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n return str;\n}\nfunction clsx() {\n var i = 0,\n tmp,\n x,\n str = '';\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n return str;\n}\n\n/**\n * Helper method that determines when to recalculate row or column metadata.\n */\nfunction calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {\n var cellCount = _ref.cellCount,\n cellSize = _ref.cellSize,\n computeMetadataCallback = _ref.computeMetadataCallback,\n computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,\n nextCellsCount = _ref.nextCellsCount,\n nextCellSize = _ref.nextCellSize,\n nextScrollToIndex = _ref.nextScrollToIndex,\n scrollToIndex = _ref.scrollToIndex,\n updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\n // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n // In that event users should use the manual recompute methods to inform of changes.\n if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.\n // In this case we should also update the scrollTop to ensure it stays visible.\n\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex();\n }\n }\n}\nvar objectWithoutPropertiesExports = {};\nvar objectWithoutProperties = {\n get exports() {\n return objectWithoutPropertiesExports;\n },\n set exports(v) {\n objectWithoutPropertiesExports = v;\n }\n};\nvar objectWithoutPropertiesLooseExports = {};\nvar objectWithoutPropertiesLoose = {\n get exports() {\n return objectWithoutPropertiesLooseExports;\n },\n set exports(v) {\n objectWithoutPropertiesLooseExports = v;\n }\n};\n(function (module) {\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(objectWithoutPropertiesLoose);\n(function (module) {\n var objectWithoutPropertiesLoose = objectWithoutPropertiesLooseExports;\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(objectWithoutProperties);\nvar _objectWithoutProperties = /*@__PURE__*/getDefaultExportFromCjs(objectWithoutPropertiesExports);\nvar propTypesExports = {};\nvar propTypes = {\n get exports() {\n return propTypesExports;\n },\n set exports(v) {\n propTypesExports = v;\n }\n};\nvar reactIsExports = {};\nvar reactIs = {\n get exports() {\n return reactIsExports;\n },\n set exports(v) {\n reactIsExports = v;\n }\n};\nvar reactIs_production_min = {};\n\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReactIs_production_min;\nfunction requireReactIs_production_min() {\n if (hasRequiredReactIs_production_min) return reactIs_production_min;\n hasRequiredReactIs_production_min = 1;\n var b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n function z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n }\n function A(a) {\n return z(a) === m;\n }\n reactIs_production_min.AsyncMode = l;\n reactIs_production_min.ConcurrentMode = m;\n reactIs_production_min.ContextConsumer = k;\n reactIs_production_min.ContextProvider = h;\n reactIs_production_min.Element = c;\n reactIs_production_min.ForwardRef = n;\n reactIs_production_min.Fragment = e;\n reactIs_production_min.Lazy = t;\n reactIs_production_min.Memo = r;\n reactIs_production_min.Portal = d;\n reactIs_production_min.Profiler = g;\n reactIs_production_min.StrictMode = f;\n reactIs_production_min.Suspense = p;\n reactIs_production_min.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n };\n reactIs_production_min.isConcurrentMode = A;\n reactIs_production_min.isContextConsumer = function (a) {\n return z(a) === k;\n };\n reactIs_production_min.isContextProvider = function (a) {\n return z(a) === h;\n };\n reactIs_production_min.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n };\n reactIs_production_min.isForwardRef = function (a) {\n return z(a) === n;\n };\n reactIs_production_min.isFragment = function (a) {\n return z(a) === e;\n };\n reactIs_production_min.isLazy = function (a) {\n return z(a) === t;\n };\n reactIs_production_min.isMemo = function (a) {\n return z(a) === r;\n };\n reactIs_production_min.isPortal = function (a) {\n return z(a) === d;\n };\n reactIs_production_min.isProfiler = function (a) {\n return z(a) === g;\n };\n reactIs_production_min.isStrictMode = function (a) {\n return z(a) === f;\n };\n reactIs_production_min.isSuspense = function (a) {\n return z(a) === p;\n };\n reactIs_production_min.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n };\n reactIs_production_min.typeOf = z;\n return reactIs_production_min;\n}\nvar reactIs_development = {};\n\n/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReactIs_development;\nfunction requireReactIs_development() {\n if (hasRequiredReactIs_development) return reactIs_development;\n hasRequiredReactIs_development = 1;\n if (process.env.NODE_ENV !== \"production\") {\n (function () {\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n }\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n reactIs_development.AsyncMode = AsyncMode;\n reactIs_development.ConcurrentMode = ConcurrentMode;\n reactIs_development.ContextConsumer = ContextConsumer;\n reactIs_development.ContextProvider = ContextProvider;\n reactIs_development.Element = Element;\n reactIs_development.ForwardRef = ForwardRef;\n reactIs_development.Fragment = Fragment;\n reactIs_development.Lazy = Lazy;\n reactIs_development.Memo = Memo;\n reactIs_development.Portal = Portal;\n reactIs_development.Profiler = Profiler;\n reactIs_development.StrictMode = StrictMode;\n reactIs_development.Suspense = Suspense;\n reactIs_development.isAsyncMode = isAsyncMode;\n reactIs_development.isConcurrentMode = isConcurrentMode;\n reactIs_development.isContextConsumer = isContextConsumer;\n reactIs_development.isContextProvider = isContextProvider;\n reactIs_development.isElement = isElement;\n reactIs_development.isForwardRef = isForwardRef;\n reactIs_development.isFragment = isFragment;\n reactIs_development.isLazy = isLazy;\n reactIs_development.isMemo = isMemo;\n reactIs_development.isPortal = isPortal;\n reactIs_development.isProfiler = isProfiler;\n reactIs_development.isStrictMode = isStrictMode;\n reactIs_development.isSuspense = isSuspense;\n reactIs_development.isValidElementType = isValidElementType;\n reactIs_development.typeOf = typeOf;\n })();\n }\n return reactIs_development;\n}\nvar hasRequiredReactIs;\nfunction requireReactIs() {\n if (hasRequiredReactIs) return reactIsExports;\n hasRequiredReactIs = 1;\n (function (module) {\n if (process.env.NODE_ENV === 'production') {\n module.exports = requireReactIs_production_min();\n } else {\n module.exports = requireReactIs_development();\n }\n })(reactIs);\n return reactIsExports;\n}\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\nvar objectAssign;\nvar hasRequiredObjectAssign;\nfunction requireObjectAssign() {\n if (hasRequiredObjectAssign) return objectAssign;\n hasRequiredObjectAssign = 1;\n /* eslint-disable no-unused-vars */\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n\n // Detect buggy property enumeration order in older V8 versions.\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n }\n objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n return objectAssign;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar ReactPropTypesSecret_1;\nvar hasRequiredReactPropTypesSecret;\nfunction requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar checkPropTypes_1;\nvar hasRequiredCheckPropTypes;\nfunction requireCheckPropTypes() {\n if (hasRequiredCheckPropTypes) return checkPropTypes_1;\n hasRequiredCheckPropTypes = 1;\n var printWarning = function () {};\n if (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n\n /**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : '';\n printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n }\n }\n }\n }\n }\n\n /**\n * Resets warning cache when testing.\n *\n * @private\n */\n checkPropTypes.resetWarningCache = function () {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n };\n checkPropTypes_1 = checkPropTypes;\n return checkPropTypes_1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar factoryWithTypeCheckers;\nvar hasRequiredFactoryWithTypeCheckers;\nfunction requireFactoryWithTypeCheckers() {\n if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;\n hasRequiredFactoryWithTypeCheckers = 1;\n var ReactIs = requireReactIs();\n var assign = requireObjectAssign();\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n var checkPropTypes = requireCheckPropTypes();\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n var printWarning = function () {};\n if (process.env.NODE_ENV !== 'production') {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n factoryWithTypeCheckers = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n return emptyFunctionThatReturnsNull;\n }\n }\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n return true;\n default:\n return false;\n }\n }\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n return factoryWithTypeCheckers;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar factoryWithThrowingShims;\nvar hasRequiredFactoryWithThrowingShims;\nfunction requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n function emptyFunction() {}\n function emptyFunctionWithReset() {}\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n function getShim() {\n return shim;\n } // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n return factoryWithThrowingShims;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = requireReactIs();\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n propTypes.exports = requireFactoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n}\nprocess.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": propTypesExports.number.isRequired,\n \"rowIndex\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": propTypesExports.number.isRequired,\n \"isScrolling\": propTypesExports.bool.isRequired,\n \"isVisible\": propTypesExports.bool.isRequired,\n \"key\": propTypesExports.string.isRequired,\n \"parent\": propTypesExports.object.isRequired,\n \"rowIndex\": propTypesExports.number.isRequired,\n \"style\": propTypesExports.object.isRequired\n};\nvar bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : propTypesExports.func;\nprocess.env.NODE_ENV === 'production' ? null : propTypesExports.objectOf(propTypesExports.node.isRequired);\nprocess.env.NODE_ENV === 'production' ? null : propTypesExports.objectOf(propTypesExports.object.isRequired);\nprocess.env.NODE_ENV === 'production' ? null : {\n \"cellCache\": propTypesExports.objectOf(propTypesExports.node.isRequired).isRequired,\n \"cellRenderer\": propTypesExports.func.isRequired,\n \"columnSizeAndPositionManager\": function columnSizeAndPositionManager() {\n return (typeof ScalingCellSizeAndPositionManager === \"function\" ? propTypesExports.instanceOf(ScalingCellSizeAndPositionManager).isRequired : propTypesExports.any.isRequired).apply(this, arguments);\n },\n \"columnStartIndex\": propTypesExports.number.isRequired,\n \"columnStopIndex\": propTypesExports.number.isRequired,\n \"deferredMeasurementCache\": propTypesExports.object,\n \"horizontalOffsetAdjustment\": propTypesExports.number.isRequired,\n \"isScrolling\": propTypesExports.bool.isRequired,\n \"isScrollingOptOut\": propTypesExports.bool.isRequired,\n \"parent\": propTypesExports.object.isRequired,\n \"rowSizeAndPositionManager\": function rowSizeAndPositionManager() {\n return (typeof ScalingCellSizeAndPositionManager === \"function\" ? propTypesExports.instanceOf(ScalingCellSizeAndPositionManager).isRequired : propTypesExports.any.isRequired).apply(this, arguments);\n },\n \"rowStartIndex\": propTypesExports.number.isRequired,\n \"rowStopIndex\": propTypesExports.number.isRequired,\n \"scrollLeft\": propTypesExports.number.isRequired,\n \"scrollTop\": propTypesExports.number.isRequired,\n \"styleCache\": propTypesExports.objectOf(propTypesExports.object.isRequired).isRequired,\n \"verticalOffsetAdjustment\": propTypesExports.number.isRequired,\n \"visibleColumnIndices\": propTypesExports.object.isRequired,\n \"visibleRowIndices\": propTypesExports.object.isRequired\n};\nvar bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : propTypesExports.func;\nprocess.env.NODE_ENV === 'production' ? null : propTypesExports.func;\nvar bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : propTypesExports.oneOfType([propTypesExports.func, propTypesExports.number]);\nvar bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : propTypesExports.func;\nprocess.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": propTypesExports.number.isRequired,\n \"clientWidth\": propTypesExports.number.isRequired,\n \"scrollHeight\": propTypesExports.number.isRequired,\n \"scrollLeft\": propTypesExports.number.isRequired,\n \"scrollTop\": propTypesExports.number.isRequired,\n \"scrollWidth\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"horizontal\": propTypesExports.bool.isRequired,\n \"vertical\": propTypesExports.bool.isRequired,\n \"size\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"columnOverscanStartIndex\": propTypesExports.number.isRequired,\n \"columnOverscanStopIndex\": propTypesExports.number.isRequired,\n \"columnStartIndex\": propTypesExports.number.isRequired,\n \"columnStopIndex\": propTypesExports.number.isRequired,\n \"rowOverscanStartIndex\": propTypesExports.number.isRequired,\n \"rowOverscanStopIndex\": propTypesExports.number.isRequired,\n \"rowStartIndex\": propTypesExports.number.isRequired,\n \"rowStopIndex\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL\n \"direction\": propTypesExports.oneOf([\"horizontal\", \"vertical\"]).isRequired,\n // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD\n \"scrollDirection\": propTypesExports.oneOf([-1, 1]).isRequired,\n // Number of rows or columns in the current axis\n \"cellCount\": propTypesExports.number.isRequired,\n // Maximum number of cells to over-render in either direction\n \"overscanCellsCount\": propTypesExports.number.isRequired,\n // Begin of range of visible cells\n \"startIndex\": propTypesExports.number.isRequired,\n // End of range of visible cells\n \"stopIndex\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": propTypesExports.number.isRequired,\n \"overscanStopIndex\": propTypesExports.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : propTypesExports.func;\nvar bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : propTypesExports.oneOf([\"auto\", \"end\", \"start\", \"center\"]);\nprocess.env.NODE_ENV === 'production' ? null : {\n \"start\": propTypesExports.number,\n \"stop\": propTypesExports.number\n};\n\n/**\n * Just-in-time calculates and caches size and position information for a collection of cells.\n */\nvar CellSizeAndPositionManager = /*#__PURE__*/\nfunction () {\n // Cache of size and position data for cells, mapped by cell index.\n // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex\n // Measurements for cells up to this index can be trusted; cells afterward should be estimated.\n // Used in deferred mode to track which cells have been queued for measurement.\n function CellSizeAndPositionManager(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeGetter = _ref.cellSizeGetter,\n estimatedCellSize = _ref.estimatedCellSize;\n _classCallCheck(this, CellSizeAndPositionManager);\n _defineProperty(this, \"_cellSizeAndPositionData\", {});\n _defineProperty(this, \"_lastMeasuredIndex\", -1);\n _defineProperty(this, \"_lastBatchedIndex\", -1);\n _defineProperty(this, \"_cellCount\", void 0);\n _defineProperty(this, \"_cellSizeGetter\", void 0);\n _defineProperty(this, \"_estimatedCellSize\", void 0);\n this._cellSizeGetter = cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n }\n _createClass(CellSizeAndPositionManager, [{\n key: \"areOffsetsAdjusted\",\n value: function areOffsetsAdjusted() {\n return false;\n }\n }, {\n key: \"configure\",\n value: function configure(_ref2) {\n var cellCount = _ref2.cellCount,\n estimatedCellSize = _ref2.estimatedCellSize,\n cellSizeGetter = _ref2.cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n this._cellSizeGetter = cellSizeGetter;\n }\n }, {\n key: \"getCellCount\",\n value: function getCellCount() {\n return this._cellCount;\n }\n }, {\n key: \"getEstimatedCellSize\",\n value: function getEstimatedCellSize() {\n return this._estimatedCellSize;\n }\n }, {\n key: \"getLastMeasuredIndex\",\n value: function getLastMeasuredIndex() {\n return this._lastMeasuredIndex;\n }\n }, {\n key: \"getOffsetAdjustment\",\n value: function getOffsetAdjustment() {\n return 0;\n }\n /**\n * This method returns the size and position for the cell at the specified index.\n * It just-in-time calculates (or used cached values) for cells leading up to the index.\n */\n }, {\n key: \"getSizeAndPositionOfCell\",\n value: function getSizeAndPositionOfCell(index) {\n if (index < 0 || index >= this._cellCount) {\n throw Error(\"Requested index \".concat(index, \" is outside of range 0..\").concat(this._cellCount));\n }\n if (index > this._lastMeasuredIndex) {\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {\n var size = this._cellSizeGetter({\n index: i\n }); // undefined or NaN probably means a logic error in the size getter.\n // null means we're using CellMeasurer and haven't yet measured a given index.\n\n if (size === undefined || isNaN(size)) {\n throw Error(\"Invalid size returned for cell \".concat(i, \" of value \").concat(size));\n } else if (size === null) {\n this._cellSizeAndPositionData[i] = {\n offset: offset,\n size: 0\n };\n this._lastBatchedIndex = index;\n } else {\n this._cellSizeAndPositionData[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n this._lastMeasuredIndex = index;\n }\n }\n }\n return this._cellSizeAndPositionData[index];\n }\n }, {\n key: \"getSizeAndPositionOfLastMeasuredCell\",\n value: function getSizeAndPositionOfLastMeasuredCell() {\n return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {\n offset: 0,\n size: 0\n };\n }\n /**\n * Total size of all cells being measured.\n * This value will be completely estimated initially.\n * As cells are measured, the estimate will be updated.\n */\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;\n return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;\n }\n /**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param containerSize Size (width or height) of the container viewport\n * @param currentOffset Container's current (x or y) offset\n * @param totalSize Total size (width or height) of all cells\n * @return Offset to use to ensure the specified cell is visible\n */\n }, {\n key: \"getUpdatedOffsetForIndex\",\n value: function getUpdatedOffsetForIndex(_ref3) {\n var _ref3$align = _ref3.align,\n align = _ref3$align === void 0 ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\n if (containerSize <= 0) {\n return 0;\n }\n var datum = this.getSizeAndPositionOfCell(targetIndex);\n var maxOffset = datum.offset;\n var minOffset = maxOffset - containerSize + datum.size;\n var idealOffset;\n switch (align) {\n case 'start':\n idealOffset = maxOffset;\n break;\n case 'end':\n idealOffset = minOffset;\n break;\n case 'center':\n idealOffset = maxOffset - (containerSize - datum.size) / 2;\n break;\n default:\n idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n break;\n }\n var totalSize = this.getTotalSize();\n return Math.max(0, Math.min(totalSize - containerSize, idealOffset));\n }\n }, {\n key: \"getVisibleCellRange\",\n value: function getVisibleCellRange(params) {\n var containerSize = params.containerSize,\n offset = params.offset;\n var totalSize = this.getTotalSize();\n if (totalSize === 0) {\n return {};\n }\n var maxOffset = offset + containerSize;\n var start = this._findNearestCell(offset);\n var datum = this.getSizeAndPositionOfCell(start);\n offset = datum.offset + datum.size;\n var stop = start;\n while (offset < maxOffset && stop < this._cellCount - 1) {\n stop++;\n offset += this.getSizeAndPositionOfCell(stop).size;\n }\n return {\n start: start,\n stop: stop\n };\n }\n /**\n * Clear all cached values for cells after the specified index.\n * This method should be called for any cell that has changed its size.\n * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.\n */\n }, {\n key: \"resetCell\",\n value: function resetCell(index) {\n this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);\n }\n }, {\n key: \"_binarySearch\",\n value: function _binarySearch(high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = this.getSizeAndPositionOfCell(middle).offset;\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n }\n }, {\n key: \"_exponentialSearch\",\n value: function _exponentialSearch(index, offset) {\n var interval = 1;\n while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {\n index += interval;\n interval *= 2;\n }\n return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);\n }\n /**\n * Searches for the cell (index) nearest the specified offset.\n *\n * If no exact match is found the next lowest cell index will be returned.\n * This allows partially visible cells (with offsets just before/above the fold) to be visible.\n */\n }, {\n key: \"_findNearestCell\",\n value: function _findNearestCell(offset) {\n if (isNaN(offset)) {\n throw Error(\"Invalid offset \".concat(offset, \" specified\"));\n } // Our search algorithms find the nearest match at or below the specified offset.\n // So make sure the offset is at least 0 or no match will be found.\n\n offset = Math.max(0, offset);\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);\n if (lastMeasuredCellSizeAndPosition.offset >= offset) {\n // If we've already measured cells within this range just use a binary search as it's faster.\n return this._binarySearch(lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.\n // The overall complexity for this approach is O(log n).\n return this._exponentialSearch(lastMeasuredIndex, offset);\n }\n }\n }]);\n return CellSizeAndPositionManager;\n}();\nvar DEFAULT_MAX_ELEMENT_SIZE = 1500000;\nvar CHROME_MAX_ELEMENT_SIZE = 1.67771e7;\nvar isBrowser = function isBrowser() {\n return typeof window !== 'undefined';\n};\nvar isChrome = function isChrome() {\n return !!window.chrome;\n};\nvar getMaxElementSize = function getMaxElementSize() {\n if (isBrowser()) {\n if (isChrome()) {\n return CHROME_MAX_ELEMENT_SIZE;\n }\n }\n return DEFAULT_MAX_ELEMENT_SIZE;\n};\n\n/**\n * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.\n */\nvar ScalingCellSizeAndPositionManager = /*#__PURE__*/\nfunction () {\n function ScalingCellSizeAndPositionManager(_ref) {\n var _ref$maxScrollSize = _ref.maxScrollSize,\n maxScrollSize = _ref$maxScrollSize === void 0 ? getMaxElementSize() : _ref$maxScrollSize,\n params = _objectWithoutProperties(_ref, [\"maxScrollSize\"]);\n _classCallCheck(this, ScalingCellSizeAndPositionManager);\n _defineProperty(this, \"_cellSizeAndPositionManager\", void 0);\n _defineProperty(this, \"_maxScrollSize\", void 0);\n\n // Favor composition over inheritance to simplify IE10 support\n this._cellSizeAndPositionManager = new CellSizeAndPositionManager(params);\n this._maxScrollSize = maxScrollSize;\n }\n _createClass(ScalingCellSizeAndPositionManager, [{\n key: \"areOffsetsAdjusted\",\n value: function areOffsetsAdjusted() {\n return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;\n }\n }, {\n key: \"configure\",\n value: function configure(params) {\n this._cellSizeAndPositionManager.configure(params);\n }\n }, {\n key: \"getCellCount\",\n value: function getCellCount() {\n return this._cellSizeAndPositionManager.getCellCount();\n }\n }, {\n key: \"getEstimatedCellSize\",\n value: function getEstimatedCellSize() {\n return this._cellSizeAndPositionManager.getEstimatedCellSize();\n }\n }, {\n key: \"getLastMeasuredIndex\",\n value: function getLastMeasuredIndex() {\n return this._cellSizeAndPositionManager.getLastMeasuredIndex();\n }\n /**\n * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.\n * The offset passed to this function is scaled (safe) as well.\n */\n }, {\n key: \"getOffsetAdjustment\",\n value: function getOffsetAdjustment(_ref2) {\n var containerSize = _ref2.containerSize,\n offset = _ref2.offset;\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n var safeTotalSize = this.getTotalSize();\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: safeTotalSize\n });\n return Math.round(offsetPercentage * (safeTotalSize - totalSize));\n }\n }, {\n key: \"getSizeAndPositionOfCell\",\n value: function getSizeAndPositionOfCell(index) {\n return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);\n }\n }, {\n key: \"getSizeAndPositionOfLastMeasuredCell\",\n value: function getSizeAndPositionOfLastMeasuredCell() {\n return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();\n }\n /** See CellSizeAndPositionManager#getTotalSize */\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());\n }\n /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */\n }, {\n key: \"getUpdatedOffsetForIndex\",\n value: function getUpdatedOffsetForIndex(_ref3) {\n var _ref3$align = _ref3.align,\n align = _ref3$align === void 0 ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\n currentOffset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: currentOffset\n });\n var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: align,\n containerSize: containerSize,\n currentOffset: currentOffset,\n targetIndex: targetIndex\n });\n return this._offsetToSafeOffset({\n containerSize: containerSize,\n offset: offset\n });\n }\n /** See CellSizeAndPositionManager#getVisibleCellRange */\n }, {\n key: \"getVisibleCellRange\",\n value: function getVisibleCellRange(_ref4) {\n var containerSize = _ref4.containerSize,\n offset = _ref4.offset;\n offset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: offset\n });\n return this._cellSizeAndPositionManager.getVisibleCellRange({\n containerSize: containerSize,\n offset: offset\n });\n }\n }, {\n key: \"resetCell\",\n value: function resetCell(index) {\n this._cellSizeAndPositionManager.resetCell(index);\n }\n }, {\n key: \"_getOffsetPercentage\",\n value: function _getOffsetPercentage(_ref5) {\n var containerSize = _ref5.containerSize,\n offset = _ref5.offset,\n totalSize = _ref5.totalSize;\n return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);\n }\n }, {\n key: \"_offsetToSafeOffset\",\n value: function _offsetToSafeOffset(_ref6) {\n var containerSize = _ref6.containerSize,\n offset = _ref6.offset;\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n var safeTotalSize = this.getTotalSize();\n if (totalSize === safeTotalSize) {\n return offset;\n } else {\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: totalSize\n });\n return Math.round(offsetPercentage * (safeTotalSize - containerSize));\n }\n }\n }, {\n key: \"_safeOffsetToOffset\",\n value: function _safeOffsetToOffset(_ref7) {\n var containerSize = _ref7.containerSize,\n offset = _ref7.offset;\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n var safeTotalSize = this.getTotalSize();\n if (totalSize === safeTotalSize) {\n return offset;\n } else {\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: safeTotalSize\n });\n return Math.round(offsetPercentage * (totalSize - containerSize));\n }\n }\n }]);\n return ScalingCellSizeAndPositionManager;\n}();\n\n/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nfunction createCallbackMemoizer() {\n var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var cachedIndices = {};\n return function (_ref) {\n var callback = _ref.callback,\n indices = _ref.indices;\n var keys = Object.keys(indices);\n var allInitialized = !requireAllKeys || keys.every(function (key) {\n var value = indices[key];\n return Array.isArray(value) ? value.length > 0 : value >= 0;\n });\n var indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function (key) {\n var cachedValue = cachedIndices[key];\n var value = indices[key];\n return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;\n });\n cachedIndices = indices;\n if (allInitialized && indexChanged) {\n callback(indices);\n }\n };\n}\nvar SCROLL_DIRECTION_BACKWARD = -1;\nvar SCROLL_DIRECTION_FORWARD$1 = 1;\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nfunction defaultOverscanIndicesGetter$1(_ref) {\n var cellCount = _ref.cellCount,\n overscanCellsCount = _ref.overscanCellsCount,\n scrollDirection = _ref.scrollDirection,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n if (scrollDirection === SCROLL_DIRECTION_FORWARD$1) {\n return {\n overscanStartIndex: Math.max(0, startIndex),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n };\n } else {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex)\n };\n }\n}\n\n/**\n * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n * This function also ensures that the scroll ofset isn't past the last column/row of cells.\n */\n\nfunction updateScrollIndexHelper(_ref) {\n var cellSize = _ref.cellSize,\n cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,\n previousCellsCount = _ref.previousCellsCount,\n previousCellSize = _ref.previousCellSize,\n previousScrollToAlignment = _ref.previousScrollToAlignment,\n previousScrollToIndex = _ref.previousScrollToIndex,\n previousSize = _ref.previousSize,\n scrollOffset = _ref.scrollOffset,\n scrollToAlignment = _ref.scrollToAlignment,\n scrollToIndex = _ref.scrollToIndex,\n size = _ref.size,\n sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,\n updateScrollIndexCallback = _ref.updateScrollIndexCallback;\n var cellCount = cellSizeAndPositionManager.getCellCount();\n var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;\n var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,\n // We should ensure that the scroll target is visible.\n\n if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {\n updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,\n // Make sure we aren't scrolled too far past the current content.\n } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {\n // We need to ensure that the current scroll offset is still within the collection's range.\n // To do this, we don't need to measure everything; CellMeasurer would perform poorly.\n // Just check to make sure we're still okay.\n // Only adjust the scroll position if we've scrolled below the last set of rows.\n if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {\n updateScrollIndexCallback(cellCount - 1);\n }\n }\n}\n\n/**\n * Default implementation of cellRangeRenderer used by Grid.\n * This renderer supports cell-caching while the user is scrolling.\n */\nfunction defaultCellRangeRenderer(_ref) {\n var cellCache = _ref.cellCache,\n cellRenderer = _ref.cellRenderer,\n columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,\n columnStartIndex = _ref.columnStartIndex,\n columnStopIndex = _ref.columnStopIndex,\n deferredMeasurementCache = _ref.deferredMeasurementCache,\n horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,\n isScrolling = _ref.isScrolling,\n isScrollingOptOut = _ref.isScrollingOptOut,\n parent = _ref.parent,\n rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,\n rowStartIndex = _ref.rowStartIndex,\n rowStopIndex = _ref.rowStopIndex,\n styleCache = _ref.styleCache,\n verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,\n visibleColumnIndices = _ref.visibleColumnIndices,\n visibleRowIndices = _ref.visibleRowIndices;\n var renderedCells = []; // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).\n // User cannot scroll beyond these size limitations.\n // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.\n // We should never cache styles for compressed offsets though as this can lead to bugs.\n // See issue #576 for more.\n\n var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();\n var canCacheStyle = !isScrolling && !areOffsetsAdjusted;\n for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);\n for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);\n var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;\n var key = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.\n\n if (canCacheStyle && styleCache[key]) {\n style = styleCache[key];\n } else {\n // In deferred mode, cells will be initially rendered before we know their size.\n // Don't interfere with CellMeasurer's measurements by setting an invalid size.\n if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {\n // Position not-yet-measured cells at top/left 0,0,\n // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.\n // Positioning them further to the right/bottom influences their measured size.\n style = {\n height: 'auto',\n left: 0,\n position: 'absolute',\n top: 0,\n width: 'auto'\n };\n } else {\n style = {\n height: rowDatum.size,\n left: columnDatum.offset + horizontalOffsetAdjustment,\n position: 'absolute',\n top: rowDatum.offset + verticalOffsetAdjustment,\n width: columnDatum.size\n };\n styleCache[key] = style;\n }\n }\n var cellRendererParams = {\n columnIndex: columnIndex,\n isScrolling: isScrolling,\n isVisible: isVisible,\n key: key,\n parent: parent,\n rowIndex: rowIndex,\n style: style\n };\n var renderedCell = void 0; // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling completes.\n // However if we are scaling scroll positions and sizes, we should also avoid caching.\n // This is because the offset changes slightly as scroll position changes and caching leads to stale values.\n // For more info refer to issue #395\n //\n // If isScrollingOptOut is specified, we always cache cells.\n // For more info refer to issue #1028\n\n if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {\n if (!cellCache[key]) {\n cellCache[key] = cellRenderer(cellRendererParams);\n }\n renderedCell = cellCache[key]; // If the user is no longer scrolling, don't cache cells.\n // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.\n } else {\n renderedCell = cellRenderer(cellRendererParams);\n }\n if (renderedCell == null || renderedCell === false) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n warnAboutMissingStyle(parent, renderedCell);\n }\n renderedCells.push(renderedCell);\n }\n }\n return renderedCells;\n}\nfunction warnAboutMissingStyle(parent, renderedCell) {\n if (process.env.NODE_ENV !== 'production') {\n if (renderedCell) {\n // If the direct child is a CellMeasurer, then we should check its child\n // See issue #611\n if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {\n renderedCell = renderedCell.props.children;\n }\n if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {\n parent.__warnedAboutMissingStyle = true;\n console.warn('Rendered cell should include style property for positioning.');\n }\n }\n }\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar size;\nfunction scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n return size;\n}\n\n// Properly handle server-side rendering.\nvar win;\nif (typeof window !== 'undefined') {\n win = window;\n} else if (typeof self !== 'undefined') {\n win = self;\n} else {\n win = {};\n} // requestAnimationFrame() shim by Paul Irish\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n\nvar request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {\n return win.setTimeout(callback, 1000 / 60);\n};\nvar cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {\n win.clearTimeout(id);\n};\nvar raf = request;\nvar caf = cancel;\nprocess.env.NODE_ENV === 'production' ? null : {\n \"id\": propTypesExports.number.isRequired\n};\nvar cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return caf(frame.id);\n};\n/**\n * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.\n * When the delay time has been reached the function you're timing out will be called.\n *\n * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)\n */\n\nvar requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start; // wait for end of processing current event handler, because event handler may be long\n\n Promise.resolve().then(function () {\n start = Date.now();\n });\n var timeout = function timeout() {\n if (Date.now() - start >= delay) {\n callback.call();\n } else {\n frame.id = raf(timeout);\n }\n };\n var frame = {\n id: raf(timeout)\n };\n return frame;\n};\nvar _class$6, _temp$6;\nfunction ownKeys$7(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$7(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$7(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$7(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nvar DEFAULT_SCROLLING_RESET_TIME_INTERVAL$1 = 150;\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\n\nvar SCROLL_POSITION_CHANGE_REASONS$1 = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\nvar renderNull = function renderNull() {\n return null;\n};\n\n/**\n * Renders tabular data with virtualization along the vertical and horizontal axes.\n * Row heights and column widths must be known ahead of time and specified as properties.\n */\nvar Grid = (_temp$6 = _class$6 = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Grid, _React$PureComponent);\n\n // Invokes onSectionRendered callback only when start/stop row or column indices change\n function Grid(props) {\n var _this;\n _classCallCheck(this, Grid);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Grid).call(this, props));\n _defineProperty(_assertThisInitialized(_this), \"_onGridRenderedMemoizer\", createCallbackMemoizer());\n _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollLeftFlag\", false);\n _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollTopFlag\", false);\n _defineProperty(_assertThisInitialized(_this), \"_horizontalScrollBarSize\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_verticalScrollBarSize\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_scrollbarPresenceChanged\", false);\n _defineProperty(_assertThisInitialized(_this), \"_scrollingContainer\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_childrenToDisplay\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStartIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStopIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_renderedRowStartIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_renderedRowStopIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_initialScrollTop\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_initialScrollLeft\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_disablePointerEventsTimeoutId\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_styleCache\", {});\n _defineProperty(_assertThisInitialized(_this), \"_cellCache\", {});\n _defineProperty(_assertThisInitialized(_this), \"_debounceScrollEndedCallback\", function () {\n _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache\n\n _this.setState({\n isScrolling: false,\n needToResetStyleCache: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_invokeOnGridRenderedHelper\", function () {\n var onSectionRendered = _this.props.onSectionRendered;\n _this._onGridRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n columnOverscanStartIndex: _this._columnStartIndex,\n columnOverscanStopIndex: _this._columnStopIndex,\n columnStartIndex: _this._renderedColumnStartIndex,\n columnStopIndex: _this._renderedColumnStopIndex,\n rowOverscanStartIndex: _this._rowStartIndex,\n rowOverscanStopIndex: _this._rowStopIndex,\n rowStartIndex: _this._renderedRowStartIndex,\n rowStopIndex: _this._renderedRowStopIndex\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target === _this._scrollingContainer) {\n _this.handleScrollEvent(event.target);\n }\n });\n var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n cellCount: props.columnCount,\n cellSizeGetter: function cellSizeGetter(params) {\n return Grid._wrapSizeGetter(props.columnWidth)(params);\n },\n estimatedCellSize: Grid._getEstimatedColumnSize(props)\n });\n var rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n cellCount: props.rowCount,\n cellSizeGetter: function cellSizeGetter(params) {\n return Grid._wrapSizeGetter(props.rowHeight)(params);\n },\n estimatedCellSize: Grid._getEstimatedRowSize(props)\n });\n _this.state = {\n instanceProps: {\n columnSizeAndPositionManager: columnSizeAndPositionManager,\n rowSizeAndPositionManager: rowSizeAndPositionManager,\n prevColumnWidth: props.columnWidth,\n prevRowHeight: props.rowHeight,\n prevColumnCount: props.columnCount,\n prevRowCount: props.rowCount,\n prevIsScrolling: props.isScrolling === true,\n prevScrollToColumn: props.scrollToColumn,\n prevScrollToRow: props.scrollToRow,\n scrollbarSize: 0,\n scrollbarSizeMeasured: false\n },\n isScrolling: false,\n scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD$1,\n scrollDirectionVertical: SCROLL_DIRECTION_FORWARD$1,\n scrollLeft: 0,\n scrollTop: 0,\n scrollPositionChangeReason: null,\n needToResetStyleCache: false\n };\n if (props.scrollToRow > 0) {\n _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);\n }\n if (props.scrollToColumn > 0) {\n _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);\n }\n return _this;\n }\n /**\n * Gets offsets for a given cell and alignment.\n */\n\n _createClass(Grid, [{\n key: \"getOffsetForCell\",\n value: function getOffsetForCell() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$alignment = _ref.alignment,\n alignment = _ref$alignment === void 0 ? this.props.scrollToAlignment : _ref$alignment,\n _ref$columnIndex = _ref.columnIndex,\n columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,\n _ref$rowIndex = _ref.rowIndex,\n rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;\n var offsetProps = _objectSpread$7({}, this.props, {\n scrollToAlignment: alignment,\n scrollToColumn: columnIndex,\n scrollToRow: rowIndex\n });\n return {\n scrollLeft: this._getCalculatedScrollLeft(offsetProps),\n scrollTop: this._getCalculatedScrollTop(offsetProps)\n };\n }\n /**\n * Gets estimated total rows' height.\n */\n }, {\n key: \"getTotalRowsHeight\",\n value: function getTotalRowsHeight() {\n return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();\n }\n /**\n * Gets estimated total columns' width.\n */\n }, {\n key: \"getTotalColumnsWidth\",\n value: function getTotalColumnsWidth() {\n return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();\n }\n /**\n * This method handles a scroll event originating from an external scroll control.\n * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.\n */\n }, {\n key: \"handleScrollEvent\",\n value: function handleScrollEvent(_ref2) {\n var _ref2$scrollLeft = _ref2.scrollLeft,\n scrollLeftParam = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,\n _ref2$scrollTop = _ref2.scrollTop,\n scrollTopParam = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;\n\n // On iOS, we can arrive at negative offsets by swiping past the start.\n // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.\n if (scrollTopParam < 0) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n this._debounceScrollEnded();\n var _this$props = this.props,\n autoHeight = _this$props.autoHeight,\n autoWidth = _this$props.autoWidth,\n height = _this$props.height,\n width = _this$props.width;\n var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n var scrollbarSize = instanceProps.scrollbarSize;\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);\n var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n\n if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {\n // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.\n // Don't change direction for an axis unless scroll offset has changed.\n var scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD$1 : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;\n var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD$1 : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;\n var newState = {\n isScrolling: true,\n scrollDirectionHorizontal: scrollDirectionHorizontal,\n scrollDirectionVertical: scrollDirectionVertical,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS$1.OBSERVED\n };\n if (!autoHeight) {\n newState.scrollTop = scrollTop;\n }\n if (!autoWidth) {\n newState.scrollLeft = scrollLeft;\n }\n newState.needToResetStyleCache = false;\n this.setState(newState);\n }\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalColumnsWidth: totalColumnsWidth,\n totalRowsHeight: totalRowsHeight\n });\n }\n /**\n * Invalidate Grid size and recompute visible cells.\n * This is a deferred wrapper for recomputeGridSize().\n * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.\n * This method is intended for advanced use-cases like CellMeasurer.\n */\n // @TODO (bvaughn) Add automated test coverage for this.\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref3) {\n var columnIndex = _ref3.columnIndex,\n rowIndex = _ref3.rowIndex;\n this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n }\n /**\n * Pre-measure all columns and rows in a Grid.\n * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.\n * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).\n */\n }, {\n key: \"measureAllCells\",\n value: function measureAllCells() {\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n rowCount = _this$props2.rowCount;\n var instanceProps = this.state.instanceProps;\n instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);\n instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);\n }\n /**\n * Forced recompute of row heights and column widths.\n * This function should be called if dynamic column or row sizes have changed but nothing else has.\n * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.\n */\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$columnIndex = _ref4.columnIndex,\n columnIndex = _ref4$columnIndex === void 0 ? 0 : _ref4$columnIndex,\n _ref4$rowIndex = _ref4.rowIndex,\n rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;\n var _this$props3 = this.props,\n scrollToColumn = _this$props3.scrollToColumn,\n scrollToRow = _this$props3.scrollToRow;\n var instanceProps = this.state.instanceProps;\n instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);\n instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.\n // In this case the cDU handler can't know if they changed.\n // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.\n\n this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD$1 ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);\n this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD$1 ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;\n // Invalid row heights likely mean invalid cached content as well.\n\n this._styleCache = {};\n this._cellCache = {};\n this.forceUpdate();\n }\n /**\n * Ensure column and row are visible.\n */\n }, {\n key: \"scrollToCell\",\n value: function scrollToCell(_ref5) {\n var columnIndex = _ref5.columnIndex,\n rowIndex = _ref5.rowIndex;\n var columnCount = this.props.columnCount;\n var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).\n // This can cause a funky scroll offset because of the vertical scrollbar width.\n\n if (columnCount > 1 && columnIndex !== undefined) {\n this._updateScrollLeftForScrollToColumn(_objectSpread$7({}, props, {\n scrollToColumn: columnIndex\n }));\n }\n if (rowIndex !== undefined) {\n this._updateScrollTopForScrollToRow(_objectSpread$7({}, props, {\n scrollToRow: rowIndex\n }));\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props4 = this.props,\n getScrollbarSize = _this$props4.getScrollbarSize,\n height = _this$props4.height,\n scrollLeft = _this$props4.scrollLeft,\n scrollToColumn = _this$props4.scrollToColumn,\n scrollTop = _this$props4.scrollTop,\n scrollToRow = _this$props4.scrollToRow,\n width = _this$props4.width;\n var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser\n\n this._initialScrollTop = 0;\n this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n // We must do this at the start of the method as we may calculate and update scroll position below.\n\n this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n if (!instanceProps.scrollbarSizeMeasured) {\n this.setState(function (prevState) {\n var stateUpdate = _objectSpread$7({}, prevState, {\n needToResetStyleCache: false\n });\n stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();\n stateUpdate.instanceProps.scrollbarSizeMeasured = true;\n return stateUpdate;\n });\n }\n if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {\n var stateUpdate = Grid._getScrollToPositionStateUpdate({\n prevState: this.state,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n } // refs don't work in `react-test-renderer`\n\n if (this._scrollingContainer) {\n // setting the ref's scrollLeft and scrollTop.\n // Somehow in MultiGrid the main grid doesn't trigger a update on mount.\n if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {\n this._scrollingContainer.scrollLeft = this.state.scrollLeft;\n }\n if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {\n this._scrollingContainer.scrollTop = this.state.scrollTop;\n }\n } // Don't update scroll offset if the size is 0; we don't render any cells in this case.\n // Setting a state may cause us to later thing we've updated the offce when we haven't.\n\n var sizeIsBiggerThanZero = height > 0 && width > 0;\n if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollLeftForScrollToColumn();\n }\n if (scrollToRow >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollTopForScrollToRow();\n } // Update onRowsRendered callback\n\n this._invokeOnGridRenderedHelper(); // Initialize onScroll callback\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),\n totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()\n });\n this._maybeCallOnScrollbarPresenceChange();\n }\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) New scroll-to-cell props have been set\n */\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n var _this$props5 = this.props,\n autoHeight = _this$props5.autoHeight,\n autoWidth = _this$props5.autoWidth,\n columnCount = _this$props5.columnCount,\n height = _this$props5.height,\n rowCount = _this$props5.rowCount,\n scrollToAlignment = _this$props5.scrollToAlignment,\n scrollToColumn = _this$props5.scrollToColumn,\n scrollToRow = _this$props5.scrollToRow,\n width = _this$props5.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollPositionChangeReason = _this$state.scrollPositionChangeReason,\n scrollTop = _this$state.scrollTop,\n instanceProps = _this$state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n // We must do this at the start of the method as we may calculate and update scroll position below.\n\n this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.\n // In this case we may have to restore a previously-specified scroll offset.\n // For more info see bvaughn/react-virtualized/issues/218\n\n var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS$1.REQUESTED) {\n // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).\n // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.\n if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n } // Special case where the previous size was 0:\n // In this case we don't show any windowed cells at all.\n // So we should always recalculate offset afterwards.\n\n var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it\n // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?\n\n if (this._recomputeScrollLeftFlag) {\n this._recomputeScrollLeftFlag = false;\n this._updateScrollLeftForScrollToColumn(this.props);\n } else {\n updateScrollIndexHelper({\n cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n previousCellsCount: prevProps.columnCount,\n previousCellSize: prevProps.columnWidth,\n previousScrollToAlignment: prevProps.scrollToAlignment,\n previousScrollToIndex: prevProps.scrollToColumn,\n previousSize: prevProps.width,\n scrollOffset: scrollLeft,\n scrollToAlignment: scrollToAlignment,\n scrollToIndex: scrollToColumn,\n size: width,\n sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n updateScrollIndexCallback: function updateScrollIndexCallback() {\n return _this2._updateScrollLeftForScrollToColumn(_this2.props);\n }\n });\n }\n if (this._recomputeScrollTopFlag) {\n this._recomputeScrollTopFlag = false;\n this._updateScrollTopForScrollToRow(this.props);\n } else {\n updateScrollIndexHelper({\n cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n previousCellsCount: prevProps.rowCount,\n previousCellSize: prevProps.rowHeight,\n previousScrollToAlignment: prevProps.scrollToAlignment,\n previousScrollToIndex: prevProps.scrollToRow,\n previousSize: prevProps.height,\n scrollOffset: scrollTop,\n scrollToAlignment: scrollToAlignment,\n scrollToIndex: scrollToRow,\n size: height,\n sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n updateScrollIndexCallback: function updateScrollIndexCallback() {\n return _this2._updateScrollTopForScrollToRow(_this2.props);\n }\n });\n } // Update onRowsRendered callback if start/stop indices have changed\n\n this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners\n\n if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalColumnsWidth: totalColumnsWidth,\n totalRowsHeight: totalRowsHeight\n });\n }\n this._maybeCallOnScrollbarPresenceChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n /**\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n autoContainerWidth = _this$props6.autoContainerWidth,\n autoHeight = _this$props6.autoHeight,\n autoWidth = _this$props6.autoWidth,\n className = _this$props6.className,\n containerProps = _this$props6.containerProps,\n containerRole = _this$props6.containerRole,\n containerStyle = _this$props6.containerStyle,\n height = _this$props6.height,\n id = _this$props6.id,\n noContentRenderer = _this$props6.noContentRenderer,\n role = _this$props6.role,\n style = _this$props6.style,\n tabIndex = _this$props6.tabIndex,\n width = _this$props6.width;\n var _this$state2 = this.state,\n instanceProps = _this$state2.instanceProps,\n needToResetStyleCache = _this$state2.needToResetStyleCache;\n var isScrolling = this._isScrolling();\n var gridStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n width: autoWidth ? 'auto' : width,\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform'\n };\n if (needToResetStyleCache) {\n this._styleCache = {};\n } // calculate _styleCache here\n // if state.isScrolling (not from _isScrolling) then reset\n\n if (!this.state.isScrolling) {\n this._resetStyleCache();\n } // calculate children to render here\n\n this._calculateChildrenToRender(this.props, this.state);\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n\n var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {\n this._horizontalScrollBarSize = horizontalScrollBarSize;\n this._verticalScrollBarSize = verticalScrollBarSize;\n this._scrollbarPresenceChanged = true;\n } // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n\n gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n var childrenToDisplay = this._childrenToDisplay;\n var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;\n return React.createElement(\"div\", _extends({\n ref: this._setScrollingContainerRef\n }, containerProps, {\n \"aria-label\": this.props['aria-label'],\n \"aria-readonly\": this.props['aria-readonly'],\n className: clsx('ReactVirtualized__Grid', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _objectSpread$7({}, gridStyle, {}, style),\n tabIndex: tabIndex\n }), childrenToDisplay.length > 0 && React.createElement(\"div\", {\n className: \"ReactVirtualized__Grid__innerScrollContainer\",\n role: containerRole,\n style: _objectSpread$7({\n width: autoContainerWidth ? 'auto' : totalColumnsWidth,\n height: totalRowsHeight,\n maxWidth: totalColumnsWidth,\n maxHeight: totalRowsHeight,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n position: 'relative'\n }, containerStyle)\n }, childrenToDisplay), showNoContentRenderer && noContentRenderer());\n }\n /* ---------------------------- Helper methods ---------------------------- */\n }, {\n key: \"_calculateChildrenToRender\",\n value: function _calculateChildrenToRender() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n var cellRenderer = props.cellRenderer,\n cellRangeRenderer = props.cellRangeRenderer,\n columnCount = props.columnCount,\n deferredMeasurementCache = props.deferredMeasurementCache,\n height = props.height,\n overscanColumnCount = props.overscanColumnCount,\n overscanIndicesGetter = props.overscanIndicesGetter,\n overscanRowCount = props.overscanRowCount,\n rowCount = props.rowCount,\n width = props.width,\n isScrollingOptOut = props.isScrollingOptOut;\n var scrollDirectionHorizontal = state.scrollDirectionHorizontal,\n scrollDirectionVertical = state.scrollDirectionVertical,\n instanceProps = state.instanceProps;\n var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;\n var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;\n var isScrolling = this._isScrolling(props, state);\n this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.\n\n if (height > 0 && width > 0) {\n var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({\n containerSize: width,\n offset: scrollLeft\n });\n var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({\n containerSize: height,\n offset: scrollTop\n });\n var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({\n containerSize: width,\n offset: scrollLeft\n });\n var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({\n containerSize: height,\n offset: scrollTop\n }); // Store for _invokeOnGridRenderedHelper()\n\n this._renderedColumnStartIndex = visibleColumnIndices.start;\n this._renderedColumnStopIndex = visibleColumnIndices.stop;\n this._renderedRowStartIndex = visibleRowIndices.start;\n this._renderedRowStopIndex = visibleRowIndices.stop;\n var overscanColumnIndices = overscanIndicesGetter({\n direction: 'horizontal',\n cellCount: columnCount,\n overscanCellsCount: overscanColumnCount,\n scrollDirection: scrollDirectionHorizontal,\n startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,\n stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1\n });\n var overscanRowIndices = overscanIndicesGetter({\n direction: 'vertical',\n cellCount: rowCount,\n overscanCellsCount: overscanRowCount,\n scrollDirection: scrollDirectionVertical,\n startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,\n stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1\n }); // Store for _invokeOnGridRenderedHelper()\n\n var columnStartIndex = overscanColumnIndices.overscanStartIndex;\n var columnStopIndex = overscanColumnIndices.overscanStopIndex;\n var rowStartIndex = overscanRowIndices.overscanStartIndex;\n var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.\n\n if (deferredMeasurementCache) {\n // If rows have a dynamic height, scan the rows we are about to render.\n // If any have not yet been measured, then we need to render all columns initially,\n // Because the height of the row is equal to the tallest cell within that row,\n // (And so we can't know the height without measuring all column-cells first).\n if (!deferredMeasurementCache.hasFixedHeight()) {\n for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n if (!deferredMeasurementCache.has(rowIndex, 0)) {\n columnStartIndex = 0;\n columnStopIndex = columnCount - 1;\n break;\n }\n }\n } // If columns have a dynamic width, scan the columns we are about to render.\n // If any have not yet been measured, then we need to render all rows initially,\n // Because the width of the column is equal to the widest cell within that column,\n // (And so we can't know the width without measuring all row-cells first).\n\n if (!deferredMeasurementCache.hasFixedWidth()) {\n for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n if (!deferredMeasurementCache.has(0, columnIndex)) {\n rowStartIndex = 0;\n rowStopIndex = rowCount - 1;\n break;\n }\n }\n }\n }\n this._childrenToDisplay = cellRangeRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n columnStartIndex: columnStartIndex,\n columnStopIndex: columnStopIndex,\n deferredMeasurementCache: deferredMeasurementCache,\n horizontalOffsetAdjustment: horizontalOffsetAdjustment,\n isScrolling: isScrolling,\n isScrollingOptOut: isScrollingOptOut,\n parent: this,\n rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n rowStartIndex: rowStartIndex,\n rowStopIndex: rowStopIndex,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n styleCache: this._styleCache,\n verticalOffsetAdjustment: verticalOffsetAdjustment,\n visibleColumnIndices: visibleColumnIndices,\n visibleRowIndices: visibleRowIndices\n }); // update the indices\n\n this._columnStartIndex = columnStartIndex;\n this._columnStopIndex = columnStopIndex;\n this._rowStartIndex = rowStartIndex;\n this._rowStopIndex = rowStopIndex;\n }\n }\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Grid.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n }, {\n key: \"_debounceScrollEnded\",\n value: function _debounceScrollEnded() {\n var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);\n }\n }, {\n key: \"_handleInvalidatedGridSize\",\n /**\n * Check for batched CellMeasurer size invalidations.\n * This will occur the first time one or more previously unmeasured cells are rendered.\n */\n value: function _handleInvalidatedGridSize() {\n if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {\n var columnIndex = this._deferredInvalidateColumnIndex;\n var rowIndex = this._deferredInvalidateRowIndex;\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n }, {\n key: \"_invokeOnScrollMemoizer\",\n value: function _invokeOnScrollMemoizer(_ref6) {\n var _this3 = this;\n var scrollLeft = _ref6.scrollLeft,\n scrollTop = _ref6.scrollTop,\n totalColumnsWidth = _ref6.totalColumnsWidth,\n totalRowsHeight = _ref6.totalRowsHeight;\n this._onScrollMemoizer({\n callback: function callback(_ref7) {\n var scrollLeft = _ref7.scrollLeft,\n scrollTop = _ref7.scrollTop;\n var _this3$props = _this3.props,\n height = _this3$props.height,\n onScroll = _this3$props.onScroll,\n width = _this3$props.width;\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalRowsHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalColumnsWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: \"_isScrolling\",\n value: function _isScrolling() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n // If isScrolling is defined in props, use it to override the value in state\n // This is a performance optimization for WindowScroller + Grid\n return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);\n }\n }, {\n key: \"_maybeCallOnScrollbarPresenceChange\",\n value: function _maybeCallOnScrollbarPresenceChange() {\n if (this._scrollbarPresenceChanged) {\n var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;\n this._scrollbarPresenceChanged = false;\n onScrollbarPresenceChange({\n horizontal: this._horizontalScrollBarSize > 0,\n size: this.state.instanceProps.scrollbarSize,\n vertical: this._verticalScrollBarSize > 0\n });\n }\n }\n }, {\n key: \"scrollToPosition\",\n /**\n * Scroll to the specified offset(s).\n * Useful for animating position changes.\n */\n value: function scrollToPosition(_ref8) {\n var scrollLeft = _ref8.scrollLeft,\n scrollTop = _ref8.scrollTop;\n var stateUpdate = Grid._getScrollToPositionStateUpdate({\n prevState: this.state,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }, {\n key: \"_getCalculatedScrollLeft\",\n value: function _getCalculatedScrollLeft() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n return Grid._getCalculatedScrollLeft(props, state);\n }\n }, {\n key: \"_updateScrollLeftForScrollToColumn\",\n value: function _updateScrollLeftForScrollToColumn() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }, {\n key: \"_getCalculatedScrollTop\",\n value: function _getCalculatedScrollTop() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n return Grid._getCalculatedScrollTop(props, state);\n }\n }, {\n key: \"_resetStyleCache\",\n value: function _resetStyleCache() {\n var styleCache = this._styleCache;\n var cellCache = this._cellCache;\n var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.\n // This makes Grid simpler to use (since cells commonly change).\n // And it keeps the caches from growing too large.\n // Performance is most sensitive when a user is scrolling.\n // Don't clear visible cells from cellCache if isScrollingOptOut is specified.\n // This keeps the cellCache to a resonable size.\n\n this._cellCache = {};\n this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.\n\n for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {\n for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {\n var key = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n this._styleCache[key] = styleCache[key];\n if (isScrollingOptOut) {\n this._cellCache[key] = cellCache[key];\n }\n }\n }\n }\n }, {\n key: \"_updateScrollTopForScrollToRow\",\n value: function _updateScrollTopForScrollToRow() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var newState = {};\n if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {\n newState.scrollLeft = 0;\n newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified\n // scrollTo{Column,Row} should override scroll{Left,Top}\n } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {\n Object.assign(newState, Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: nextProps.scrollLeft,\n scrollTop: nextProps.scrollTop\n }));\n }\n var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache\n\n newState.needToResetStyleCache = false;\n if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {\n // Reset cache. set it to {} in render\n newState.needToResetStyleCache = true;\n }\n instanceProps.columnSizeAndPositionManager.configure({\n cellCount: nextProps.columnCount,\n estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),\n cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)\n });\n instanceProps.rowSizeAndPositionManager.configure({\n cellCount: nextProps.rowCount,\n estimatedCellSize: Grid._getEstimatedRowSize(nextProps),\n cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)\n });\n if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {\n instanceProps.prevColumnCount = 0;\n instanceProps.prevRowCount = 0;\n } // If scrolling is controlled outside this component, clear cache when scrolling stops\n\n if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {\n Object.assign(newState, {\n isScrolling: false\n });\n }\n var maybeStateA;\n var maybeStateB;\n calculateSizeAndPositionDataAndUpdateScrollOffset({\n cellCount: instanceProps.prevColumnCount,\n cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,\n computeMetadataCallback: function computeMetadataCallback() {\n return instanceProps.columnSizeAndPositionManager.resetCell(0);\n },\n computeMetadataCallbackProps: nextProps,\n nextCellsCount: nextProps.columnCount,\n nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,\n nextScrollToIndex: nextProps.scrollToColumn,\n scrollToIndex: instanceProps.prevScrollToColumn,\n updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);\n }\n });\n calculateSizeAndPositionDataAndUpdateScrollOffset({\n cellCount: instanceProps.prevRowCount,\n cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,\n computeMetadataCallback: function computeMetadataCallback() {\n return instanceProps.rowSizeAndPositionManager.resetCell(0);\n },\n computeMetadataCallbackProps: nextProps,\n nextCellsCount: nextProps.rowCount,\n nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,\n nextScrollToIndex: nextProps.scrollToRow,\n scrollToIndex: instanceProps.prevScrollToRow,\n updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);\n }\n });\n instanceProps.prevColumnCount = nextProps.columnCount;\n instanceProps.prevColumnWidth = nextProps.columnWidth;\n instanceProps.prevIsScrolling = nextProps.isScrolling === true;\n instanceProps.prevRowCount = nextProps.rowCount;\n instanceProps.prevRowHeight = nextProps.rowHeight;\n instanceProps.prevScrollToColumn = nextProps.scrollToColumn;\n instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)\n\n instanceProps.scrollbarSize = nextProps.getScrollbarSize();\n if (instanceProps.scrollbarSize === undefined) {\n instanceProps.scrollbarSizeMeasured = false;\n instanceProps.scrollbarSize = 0;\n } else {\n instanceProps.scrollbarSizeMeasured = true;\n }\n newState.instanceProps = instanceProps;\n return _objectSpread$7({}, newState, {}, maybeStateA, {}, maybeStateB);\n }\n }, {\n key: \"_getEstimatedColumnSize\",\n value: function _getEstimatedColumnSize(props) {\n return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;\n }\n }, {\n key: \"_getEstimatedRowSize\",\n value: function _getEstimatedRowSize(props) {\n return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;\n }\n }, {\n key: \"_getScrollToPositionStateUpdate\",\n /**\n * Get the updated state after scrolling to\n * scrollLeft and scrollTop\n */\n value: function _getScrollToPositionStateUpdate(_ref9) {\n var prevState = _ref9.prevState,\n scrollLeft = _ref9.scrollLeft,\n scrollTop = _ref9.scrollTop;\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS$1.REQUESTED\n };\n if (typeof scrollLeft === 'number' && scrollLeft >= 0) {\n newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD$1 : SCROLL_DIRECTION_BACKWARD;\n newState.scrollLeft = scrollLeft;\n }\n if (typeof scrollTop === 'number' && scrollTop >= 0) {\n newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD$1 : SCROLL_DIRECTION_BACKWARD;\n newState.scrollTop = scrollTop;\n }\n if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {\n return newState;\n }\n return {};\n }\n }, {\n key: \"_wrapSizeGetter\",\n value: function _wrapSizeGetter(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n }\n }, {\n key: \"_getCalculatedScrollLeft\",\n value: function _getCalculatedScrollLeft(nextProps, prevState) {\n var columnCount = nextProps.columnCount,\n height = nextProps.height,\n scrollToAlignment = nextProps.scrollToAlignment,\n scrollToColumn = nextProps.scrollToColumn,\n width = nextProps.width;\n var scrollLeft = prevState.scrollLeft,\n instanceProps = prevState.instanceProps;\n if (columnCount > 0) {\n var finalColumn = columnCount - 1;\n var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: width - scrollBarSize,\n currentOffset: scrollLeft,\n targetIndex: targetIndex\n });\n }\n return 0;\n }\n }, {\n key: \"_getScrollLeftForScrollToColumnStateUpdate\",\n value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {\n var scrollLeft = prevState.scrollLeft;\n var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);\n if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {\n return Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: calculatedScrollLeft,\n scrollTop: -1\n });\n }\n return {};\n }\n }, {\n key: \"_getCalculatedScrollTop\",\n value: function _getCalculatedScrollTop(nextProps, prevState) {\n var height = nextProps.height,\n rowCount = nextProps.rowCount,\n scrollToAlignment = nextProps.scrollToAlignment,\n scrollToRow = nextProps.scrollToRow,\n width = nextProps.width;\n var scrollTop = prevState.scrollTop,\n instanceProps = prevState.instanceProps;\n if (rowCount > 0) {\n var finalRow = rowCount - 1;\n var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: height - scrollBarSize,\n currentOffset: scrollTop,\n targetIndex: targetIndex\n });\n }\n return 0;\n }\n }, {\n key: \"_getScrollTopForScrollToRowStateUpdate\",\n value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {\n var scrollTop = prevState.scrollTop;\n var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);\n if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {\n return Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: -1,\n scrollTop: calculatedScrollTop\n });\n }\n return {};\n }\n }]);\n return Grid;\n}(React.PureComponent), _defineProperty(_class$6, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": propTypesExports.string.isRequired,\n \"aria-readonly\": propTypesExports.bool,\n /**\n * Set the width of the inner scrollable container to 'auto'.\n * This is useful for single-column Grids to ensure that the column doesn't extend below a vertical scrollbar.\n */\n \"autoContainerWidth\": propTypesExports.bool.isRequired,\n /**\n * Removes fixed height from the scrollingContainer so that the total height of rows can stretch the window.\n * Intended for use with WindowScroller\n */\n \"autoHeight\": propTypesExports.bool.isRequired,\n /**\n * Removes fixed width from the scrollingContainer so that the total width of rows can stretch the window.\n * Intended for use with WindowScroller\n */\n \"autoWidth\": propTypesExports.bool.isRequired,\n /** Responsible for rendering a cell given an row and column index. */\n \"cellRenderer\": function cellRenderer() {\n return (typeof bpfrpt_proptype_CellRenderer === \"function\" ? bpfrpt_proptype_CellRenderer.isRequired ? bpfrpt_proptype_CellRenderer.isRequired : bpfrpt_proptype_CellRenderer : propTypesExports.shape(bpfrpt_proptype_CellRenderer).isRequired).apply(this, arguments);\n },\n /** Responsible for rendering a group of cells given their index ranges. */\n \"cellRangeRenderer\": function cellRangeRenderer() {\n return (typeof bpfrpt_proptype_CellRangeRenderer === \"function\" ? bpfrpt_proptype_CellRangeRenderer.isRequired ? bpfrpt_proptype_CellRangeRenderer.isRequired : bpfrpt_proptype_CellRangeRenderer : propTypesExports.shape(bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);\n },\n /** Optional custom CSS class name to attach to root Grid element. */\n \"className\": propTypesExports.string,\n /** Number of columns in grid. */\n \"columnCount\": propTypesExports.number.isRequired,\n /** Either a fixed column width (number) or a function that returns the width of a column given its index. */\n \"columnWidth\": function columnWidth() {\n return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : propTypesExports.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n /** Unfiltered props for the Grid container. */\n \"containerProps\": propTypesExports.object,\n /** ARIA role for the cell-container. */\n \"containerRole\": propTypesExports.string.isRequired,\n /** Optional inline style applied to inner cell-container */\n \"containerStyle\": propTypesExports.object.isRequired,\n /**\n * If CellMeasurer is used to measure this Grid's children, this should be a pointer to its CellMeasurerCache.\n * A shared CellMeasurerCache reference enables Grid and CellMeasurer to share measurement data.\n */\n \"deferredMeasurementCache\": propTypesExports.object,\n /**\n * Used to estimate the total width of a Grid before all of its columns have actually been measured.\n * The estimated total width is adjusted as columns are rendered.\n */\n \"estimatedColumnSize\": propTypesExports.number.isRequired,\n /**\n * Used to estimate the total height of a Grid before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n \"estimatedRowSize\": propTypesExports.number.isRequired,\n /** Exposed for testing purposes only. */\n \"getScrollbarSize\": propTypesExports.func.isRequired,\n /** Height of Grid; this property determines the number of visible (vs virtualized) rows. */\n \"height\": propTypesExports.number.isRequired,\n /** Optional custom id to attach to root Grid element. */\n \"id\": propTypesExports.string,\n /**\n * Override internal is-scrolling state tracking.\n * This property is primarily intended for use with the WindowScroller component.\n */\n \"isScrolling\": propTypesExports.bool,\n /**\n * Opt-out of isScrolling param passed to cellRangeRenderer.\n * To avoid the extra render when scroll stops.\n */\n \"isScrollingOptOut\": propTypesExports.bool.isRequired,\n /** Optional renderer to be used in place of rows when either :rowCount or :columnCount is 0. */\n \"noContentRenderer\": function noContentRenderer() {\n return (typeof bpfrpt_proptype_NoContentRenderer === \"function\" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : propTypesExports.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n },\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n */\n \"onScroll\": propTypesExports.func.isRequired,\n /**\n * Called whenever a horizontal or vertical scrollbar is added or removed.\n * This prop is not intended for end-user use;\n * It is used by MultiGrid to support fixed-row/fixed-column scroll syncing.\n */\n \"onScrollbarPresenceChange\": propTypesExports.func.isRequired,\n /** Callback invoked with information about the section of the Grid that was just rendered. */\n \"onSectionRendered\": propTypesExports.func.isRequired,\n /**\n * Number of columns to render before/after the visible section of the grid.\n * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n \"overscanColumnCount\": propTypesExports.number.isRequired,\n /**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n \"overscanIndicesGetter\": function overscanIndicesGetter() {\n return (typeof bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : propTypesExports.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n },\n /**\n * Number of rows to render above/below the visible section of the grid.\n * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n \"overscanRowCount\": propTypesExports.number.isRequired,\n /** ARIA role for the grid element. */\n \"role\": propTypesExports.string.isRequired,\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * Should implement the following interface: ({ index: number }): number\n */\n \"rowHeight\": function rowHeight() {\n return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : propTypesExports.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n /** Number of rows in grid. */\n \"rowCount\": propTypesExports.number.isRequired,\n /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */\n \"scrollingResetTimeInterval\": propTypesExports.number.isRequired,\n /** Horizontal offset. */\n \"scrollLeft\": propTypesExports.number,\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n \"scrollToAlignment\": function scrollToAlignment() {\n return (typeof bpfrpt_proptype_Alignment === \"function\" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : propTypesExports.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n /** Column index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToColumn\": propTypesExports.number.isRequired,\n /** Vertical offset. */\n \"scrollTop\": propTypesExports.number,\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToRow\": propTypesExports.number.isRequired,\n /** Optional inline style */\n \"style\": propTypesExports.object.isRequired,\n /** Tab index for focus */\n \"tabIndex\": propTypesExports.number,\n /** Width of Grid; this property determines the number of visible (vs virtualized) columns. */\n \"width\": propTypesExports.number.isRequired\n}), _temp$6);\n_defineProperty(Grid, \"defaultProps\", {\n 'aria-label': 'grid',\n 'aria-readonly': true,\n autoContainerWidth: false,\n autoHeight: false,\n autoWidth: false,\n cellRangeRenderer: defaultCellRangeRenderer,\n containerRole: 'rowgroup',\n containerStyle: {},\n estimatedColumnSize: 100,\n estimatedRowSize: 30,\n getScrollbarSize: scrollbarSize,\n noContentRenderer: renderNull,\n onScroll: function onScroll() {},\n onScrollbarPresenceChange: function onScrollbarPresenceChange() {},\n onSectionRendered: function onSectionRendered() {},\n overscanColumnCount: 0,\n overscanIndicesGetter: defaultOverscanIndicesGetter$1,\n overscanRowCount: 10,\n role: 'grid',\n scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL$1,\n scrollToAlignment: 'auto',\n scrollToColumn: -1,\n scrollToRow: -1,\n style: {},\n tabIndex: 0,\n isScrollingOptOut: false\n});\npolyfill_1(Grid);\nvar SCROLL_DIRECTION_FORWARD = 1;\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nfunction defaultOverscanIndicesGetter(_ref) {\n var cellCount = _ref.cellCount,\n overscanCellsCount = _ref.overscanCellsCount,\n scrollDirection = _ref.scrollDirection,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n // Make sure we render at least 1 cell extra before and after (except near boundaries)\n // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases\n // For more info see issues #625\n overscanCellsCount = Math.max(1, overscanCellsCount);\n if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n return {\n overscanStartIndex: Math.max(0, startIndex - 1),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n };\n } else {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)\n };\n }\n}\nprocess.env.NODE_ENV === 'production' ? null : {\n \"scrollToColumn\": propTypesExports.number.isRequired,\n \"scrollToRow\": propTypesExports.number.isRequired\n};\nvar _class$5, _temp$5;\nfunction ownKeys$6(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$6(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$6(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n/**\n * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.\n */\n\nvar ArrowKeyStepper = (_temp$5 = _class$5 = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ArrowKeyStepper, _React$PureComponent);\n function ArrowKeyStepper() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, ArrowKeyStepper);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n scrollToColumn: 0,\n scrollToRow: 0,\n instanceProps: {\n prevScrollToColumn: 0,\n prevScrollToRow: 0\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_onKeyDown\", function (event) {\n var _this$props = _this.props,\n columnCount = _this$props.columnCount,\n disabled = _this$props.disabled,\n mode = _this$props.mode,\n rowCount = _this$props.rowCount;\n if (disabled) {\n return;\n }\n var _this$_getScrollState = _this._getScrollState(),\n scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,\n scrollToRowPrevious = _this$_getScrollState.scrollToRow;\n var _this$_getScrollState2 = _this._getScrollState(),\n scrollToColumn = _this$_getScrollState2.scrollToColumn,\n scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.\n // This is to keep the grid from scrolling after the snap-to update.\n\n switch (event.key) {\n case 'ArrowDown':\n scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);\n break;\n case 'ArrowLeft':\n scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);\n break;\n case 'ArrowRight':\n scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);\n break;\n case 'ArrowUp':\n scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);\n break;\n }\n if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {\n event.preventDefault();\n _this._updateScrollState({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref) {\n var columnStartIndex = _ref.columnStartIndex,\n columnStopIndex = _ref.columnStopIndex,\n rowStartIndex = _ref.rowStartIndex,\n rowStopIndex = _ref.rowStopIndex;\n _this._columnStartIndex = columnStartIndex;\n _this._columnStopIndex = columnStopIndex;\n _this._rowStartIndex = rowStartIndex;\n _this._rowStopIndex = rowStopIndex;\n });\n return _this;\n }\n _createClass(ArrowKeyStepper, [{\n key: \"setScrollIndexes\",\n value: function setScrollIndexes(_ref2) {\n var scrollToColumn = _ref2.scrollToColumn,\n scrollToRow = _ref2.scrollToRow;\n this.setState({\n scrollToRow: scrollToRow,\n scrollToColumn: scrollToColumn\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n children = _this$props2.children;\n var _this$_getScrollState3 = this._getScrollState(),\n scrollToColumn = _this$_getScrollState3.scrollToColumn,\n scrollToRow = _this$_getScrollState3.scrollToRow;\n return React.createElement(\"div\", {\n className: className,\n onKeyDown: this._onKeyDown\n }, children({\n onSectionRendered: this._onSectionRendered,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n }));\n }\n }, {\n key: \"_getScrollState\",\n value: function _getScrollState() {\n return this.props.isControlled ? this.props : this.state;\n }\n }, {\n key: \"_updateScrollState\",\n value: function _updateScrollState(_ref3) {\n var scrollToColumn = _ref3.scrollToColumn,\n scrollToRow = _ref3.scrollToRow;\n var _this$props3 = this.props,\n isControlled = _this$props3.isControlled,\n onScrollToChange = _this$props3.onScrollToChange;\n if (typeof onScrollToChange === 'function') {\n onScrollToChange({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n if (!isControlled) {\n this.setState({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.isControlled) {\n return {};\n }\n if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {\n return _objectSpread$6({}, prevState, {\n scrollToColumn: nextProps.scrollToColumn,\n scrollToRow: nextProps.scrollToRow,\n instanceProps: {\n prevScrollToColumn: nextProps.scrollToColumn,\n prevScrollToRow: nextProps.scrollToRow\n }\n });\n }\n return {};\n }\n }]);\n return ArrowKeyStepper;\n}(React.PureComponent), _defineProperty(_class$5, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"children\": propTypesExports.func.isRequired,\n \"className\": propTypesExports.string,\n \"columnCount\": propTypesExports.number.isRequired,\n \"disabled\": propTypesExports.bool.isRequired,\n \"isControlled\": propTypesExports.bool.isRequired,\n \"mode\": propTypesExports.oneOf([\"cells\", \"edges\"]).isRequired,\n \"onScrollToChange\": propTypesExports.func,\n \"rowCount\": propTypesExports.number.isRequired,\n \"scrollToColumn\": propTypesExports.number.isRequired,\n \"scrollToRow\": propTypesExports.number.isRequired\n}), _temp$5);\n_defineProperty(ArrowKeyStepper, \"defaultProps\", {\n disabled: false,\n isControlled: false,\n mode: 'edges',\n scrollToColumn: 0,\n scrollToRow: 0\n});\npolyfill_1(ArrowKeyStepper);\n\n/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n * 5) Added support for injecting custom window object\n **/\nfunction createDetectElementResize(nonce, hostWindow) {\n // Check `document` and `window` in case of server-side rendering\n var _window;\n if (typeof hostWindow !== 'undefined') {\n _window = hostWindow;\n } else if (typeof window !== 'undefined') {\n _window = window;\n } else if (typeof self !== 'undefined') {\n _window = self;\n } else {\n _window = global;\n }\n var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;\n if (!attachEvent) {\n var requestFrame = function () {\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n }();\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n /* Detect CSS Animations support to detect element display/re-attach */\n\n var animation = false,\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = _window.document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n }\n var createStyles = function createStyles(doc) {\n if (!doc.getElementById('detectElementResize')) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName('head')[0],\n style = doc.createElement('style');\n style.id = 'detectElementResize';\n style.type = 'text/css';\n if (nonce != null) {\n style.setAttribute('nonce', nonce);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n head.appendChild(style);\n }\n };\n var addResizeListener = function addResizeListener(element, fn) {\n if (attachEvent) {\n element.attachEvent('onresize', fn);\n } else {\n if (!element.__resizeTriggers__) {\n var doc = element.ownerDocument;\n var elementStyle = _window.getComputedStyle(element);\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n var resizeTriggersHtml = '
' + '
';\n if (window.trustedTypes) {\n var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {\n createHTML: function createHTML() {\n return resizeTriggersHtml;\n }\n });\n element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');\n } else {\n element.__resizeTriggers__.innerHTML = resizeTriggersHtml;\n }\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n /* Listen for a css animation to detect element display/re-attach */\n\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n var removeResizeListener = function removeResizeListener(element, fn) {\n if (attachEvent) {\n element.detachEvent('onresize', fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {// Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n return {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n };\n}\nvar _class$4, _temp$4;\nfunction ownKeys$5(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$5(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$5(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nvar AutoSizer = (_temp$4 = _class$4 = /*#__PURE__*/\nfunction (_React$Component) {\n _inherits(AutoSizer, _React$Component);\n function AutoSizer() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, AutoSizer);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n });\n _defineProperty(_assertThisInitialized(_this), \"_parentNode\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_autoSizer\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_window\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n var _this$props = _this.props,\n disableHeight = _this$props.disableHeight,\n disableWidth = _this$props.disableWidth,\n onResize = _this$props.onResize;\n if (_this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n var height = _this._parentNode.offsetHeight || 0;\n var width = _this._parentNode.offsetWidth || 0;\n var win = _this._window || window;\n var style = win.getComputedStyle(_this._parentNode) || {};\n var paddingLeft = parseInt(style.paddingLeft, 10) || 0;\n var paddingRight = parseInt(style.paddingRight, 10) || 0;\n var paddingTop = parseInt(style.paddingTop, 10) || 0;\n var paddingBottom = parseInt(style.paddingBottom, 10) || 0;\n var newHeight = height - paddingTop - paddingBottom;\n var newWidth = width - paddingLeft - paddingRight;\n if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {\n _this.setState({\n height: height - paddingTop - paddingBottom,\n width: width - paddingLeft - paddingRight\n });\n onResize({\n height: height,\n width: width\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (autoSizer) {\n _this._autoSizer = autoSizer;\n });\n return _this;\n }\n _createClass(AutoSizer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var nonce = this.props.nonce;\n if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n\n this._detectElementResize = createDetectElementResize(nonce, this._window);\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n this._onResize();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n disableHeight = _this$props2.disableHeight,\n disableWidth = _this$props2.disableWidth,\n style = _this$props2.style;\n var _this$state = this.state,\n height = _this$state.height,\n width = _this$state.width; // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n\n var outerStyle = {\n overflow: 'visible'\n };\n var childParams = {};\n if (!disableHeight) {\n outerStyle.height = 0;\n childParams.height = height;\n }\n if (!disableWidth) {\n outerStyle.width = 0;\n childParams.width = width;\n }\n /**\n * TODO: Avoid rendering children before the initial measurements have been collected.\n * At best this would just be wasting cycles.\n * Add this check into version 10 though as it could break too many ref callbacks in version 9.\n * Note that if default width/height props were provided this would still work with SSR.\n if (\n height !== 0 &&\n width !== 0\n ) {\n child = children({ height, width })\n }\n */\n\n return React.createElement(\"div\", {\n className: className,\n ref: this._setRef,\n style: _objectSpread$5({}, outerStyle, {}, style)\n }, children(childParams));\n }\n }]);\n return AutoSizer;\n}(React.Component), _defineProperty(_class$4, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n /** Function responsible for rendering children.*/\n \"children\": propTypesExports.func.isRequired,\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n \"className\": propTypesExports.string,\n /** Default height to use for initial render; useful for SSR */\n \"defaultHeight\": propTypesExports.number,\n /** Default width to use for initial render; useful for SSR */\n \"defaultWidth\": propTypesExports.number,\n /** Disable dynamic :height property */\n \"disableHeight\": propTypesExports.bool.isRequired,\n /** Disable dynamic :width property */\n \"disableWidth\": propTypesExports.bool.isRequired,\n /** Nonce of the inlined stylesheet for Content Security Policy */\n \"nonce\": propTypesExports.string,\n /** Callback to be invoked on-resize */\n \"onResize\": propTypesExports.func.isRequired,\n /** Optional inline style */\n \"style\": propTypesExports.object\n}), _temp$4);\n_defineProperty(AutoSizer, \"defaultProps\", {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n});\nvar bpfrpt_proptype_CellMeasureCache = process.env.NODE_ENV === 'production' ? null : {\n \"hasFixedWidth\": propTypesExports.func.isRequired,\n \"hasFixedHeight\": propTypesExports.func.isRequired,\n \"has\": propTypesExports.func.isRequired,\n \"set\": propTypesExports.func.isRequired,\n \"getHeight\": propTypesExports.func.isRequired,\n \"getWidth\": propTypesExports.func.isRequired\n};\nvar _class$3, _temp$3;\n\n/**\n * Wraps a cell and measures its rendered content.\n * Measurements are stored in a per-cell cache.\n * Cached-content is not be re-measured.\n */\nvar CellMeasurer = (_temp$3 = _class$3 = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CellMeasurer, _React$PureComponent);\n function CellMeasurer() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, CellMeasurer);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_measure\", function () {\n var _this$props = _this.props,\n cache = _this$props.cache,\n _this$props$columnInd = _this$props.columnIndex,\n columnIndex = _this$props$columnInd === void 0 ? 0 : _this$props$columnInd,\n parent = _this$props.parent,\n _this$props$rowIndex = _this$props.rowIndex,\n rowIndex = _this$props$rowIndex === void 0 ? _this.props.index || 0 : _this$props$rowIndex;\n var _this$_getCellMeasure = _this._getCellMeasurements(),\n height = _this$_getCellMeasure.height,\n width = _this$_getCellMeasure.width;\n if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {\n cache.set(rowIndex, columnIndex, width, height);\n if (parent && typeof parent.recomputeGridSize === 'function') {\n parent.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('CellMeasurer registerChild expects to be passed Element or null');\n }\n _this._child = element;\n if (element) {\n _this._maybeMeasureCell();\n }\n });\n return _this;\n }\n _createClass(CellMeasurer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._maybeMeasureCell();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._maybeMeasureCell();\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return typeof children === 'function' ? children({\n measure: this._measure,\n registerChild: this._registerChild\n }) : children;\n }\n }, {\n key: \"_getCellMeasurements\",\n value: function _getCellMeasurements() {\n var cache = this.props.cache;\n var node = this._child || findDOMNode(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height\n\n if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {\n var styleWidth = node.style.width;\n var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,\n // It will have a hard-coded width/height from the previous measurement.\n // The fact that we are measuring indicates this measurement is probably stale,\n // So explicitly clear it out (eg set to \"auto\") so we can recalculate.\n // See issue #593 for more info.\n // Even if we are measuring initially- if we're inside of a MultiGrid component,\n // Explicitly clear width/height before measuring to avoid being tainted by another Grid.\n // eg top/left Grid renders before bottom/right Grid\n // Since the CellMeasurerCache is shared between them this taints derived cell size values.\n\n if (!cache.hasFixedWidth()) {\n node.style.width = 'auto';\n }\n if (!cache.hasFixedHeight()) {\n node.style.height = 'auto';\n }\n var height = Math.ceil(node.offsetHeight);\n var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660\n\n if (styleWidth) {\n node.style.width = styleWidth;\n }\n if (styleHeight) {\n node.style.height = styleHeight;\n }\n return {\n height: height,\n width: width\n };\n } else {\n return {\n height: 0,\n width: 0\n };\n }\n }\n }, {\n key: \"_maybeMeasureCell\",\n value: function _maybeMeasureCell() {\n var _this$props2 = this.props,\n cache = _this$props2.cache,\n _this$props2$columnIn = _this$props2.columnIndex,\n columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,\n parent = _this$props2.parent,\n _this$props2$rowIndex = _this$props2.rowIndex,\n rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;\n if (!cache.has(rowIndex, columnIndex)) {\n var _this$_getCellMeasure2 = this._getCellMeasurements(),\n height = _this$_getCellMeasure2.height,\n width = _this$_getCellMeasure2.width;\n cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.\n\n if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {\n parent.invalidateCellSizeAfterRender({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n }\n }]);\n return CellMeasurer;\n}(React.PureComponent), _defineProperty(_class$3, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"cache\": function cache() {\n return (typeof bpfrpt_proptype_CellMeasureCache === \"function\" ? bpfrpt_proptype_CellMeasureCache.isRequired ? bpfrpt_proptype_CellMeasureCache.isRequired : bpfrpt_proptype_CellMeasureCache : propTypesExports.shape(bpfrpt_proptype_CellMeasureCache).isRequired).apply(this, arguments);\n },\n \"children\": propTypesExports.oneOfType([propTypesExports.func, propTypesExports.node]).isRequired,\n \"columnIndex\": propTypesExports.number,\n \"index\": propTypesExports.number,\n \"parent\": propTypesExports.shape({\n invalidateCellSizeAfterRender: propTypesExports.func,\n recomputeGridSize: propTypesExports.func\n }).isRequired,\n \"rowIndex\": propTypesExports.number\n}), _temp$3); // Used for DEV mode warning check\n\n_defineProperty(CellMeasurer, \"__internalCellMeasurerFlag\", false);\nif (process.env.NODE_ENV !== 'production') {\n CellMeasurer.__internalCellMeasurerFlag = true;\n}\nfunction ownKeys$4(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$4(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$4(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nvar IS_SCROLLING_TIMEOUT$1 = 150;\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\n\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\n/**\n * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.\n * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.\n */\n\nvar CollectionView = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CollectionView, _React$PureComponent);\n\n // Invokes callbacks only when their values have changed.\n function CollectionView() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, CollectionView);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.\n // We handle this case in componentDidMount()\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"_calculateSizeAndPositionDataOnNextUpdate\", false);\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRenderedMemoizer\", createCallbackMemoizer());\n _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n _defineProperty(_assertThisInitialized(_this), \"_invokeOnSectionRenderedHelper\", function () {\n var _this$props = _this.props,\n cellLayoutManager = _this$props.cellLayoutManager,\n onSectionRendered = _this$props.onSectionRendered;\n _this._onSectionRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n indices: cellLayoutManager.getLastRenderedIndices()\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_updateScrollPositionForScrollToCell\", function () {\n var _this$props2 = _this.props,\n cellLayoutManager = _this$props2.cellLayoutManager,\n height = _this$props2.height,\n scrollToAlignment = _this$props2.scrollToAlignment,\n scrollToCell = _this$props2.scrollToCell,\n width = _this$props2.width;\n var _this$state = _this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n if (scrollToCell >= 0) {\n var scrollPosition = cellLayoutManager.getScrollPositionForCell({\n align: scrollToAlignment,\n cellIndex: scrollToCell,\n height: height,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {\n _this._setScrollPosition(scrollPosition);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target !== _this._scrollingContainer) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n\n var _this$props3 = _this.props,\n cellLayoutManager = _this$props3.cellLayoutManager,\n height = _this$props3.height,\n isScrollingChange = _this$props3.isScrollingChange,\n width = _this$props3.width;\n var scrollbarSize = _this._scrollbarSize;\n var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge.height,\n totalWidth = _cellLayoutManager$ge.width;\n var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));\n var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n\n if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {\n // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.\n // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).\n // All things considered, this seems to be the best current work around that I'm aware of.\n // For more information see https://github.com/bvaughn/react-virtualized/pull/124\n var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)\n\n if (!_this.state.isScrolling) {\n isScrollingChange(true);\n }\n _this.setState({\n isScrolling: true,\n scrollLeft: scrollLeft,\n scrollPositionChangeReason: scrollPositionChangeReason,\n scrollTop: scrollTop\n });\n }\n _this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalWidth: totalWidth,\n totalHeight: totalHeight\n });\n });\n _this._scrollbarSize = scrollbarSize();\n if (_this._scrollbarSize === undefined) {\n _this._scrollbarSizeMeasured = false;\n _this._scrollbarSize = 0;\n } else {\n _this._scrollbarSizeMeasured = true;\n }\n return _this;\n }\n /**\n * Forced recompute of cell sizes and positions.\n * This function should be called if cell sizes have changed but nothing else has.\n * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.\n */\n\n _createClass(CollectionView, [{\n key: \"recomputeCellSizesAndPositions\",\n value: function recomputeCellSizesAndPositions() {\n this._calculateSizeAndPositionDataOnNextUpdate = true;\n this.forceUpdate();\n }\n /* ---------------------------- Component lifecycle methods ---------------------------- */\n\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props4 = this.props,\n cellLayoutManager = _this$props4.cellLayoutManager,\n scrollLeft = _this$props4.scrollLeft,\n scrollToCell = _this$props4.scrollToCell,\n scrollTop = _this$props4.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n if (!this._scrollbarSizeMeasured) {\n this._scrollbarSize = scrollbarSize();\n this._scrollbarSizeMeasured = true;\n this.setState({});\n }\n if (scrollToCell >= 0) {\n this._updateScrollPositionForScrollToCell();\n } else if (scrollLeft >= 0 || scrollTop >= 0) {\n this._setScrollPosition({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n } // Update onSectionRendered callback.\n\n this._invokeOnSectionRenderedHelper();\n var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge2.height,\n totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalHeight: totalHeight,\n totalWidth: totalWidth\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props5 = this.props,\n height = _this$props5.height,\n scrollToAlignment = _this$props5.scrollToAlignment,\n scrollToCell = _this$props5.scrollToCell,\n width = _this$props5.width;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,\n scrollTop = _this$state2.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n } // Update scroll offsets if the current :scrollToCell values requires it\n\n if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {\n this._updateScrollPositionForScrollToCell();\n } // Update onRowsRendered callback if start/stop indices have changed\n\n this._invokeOnSectionRenderedHelper();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n autoHeight = _this$props6.autoHeight,\n cellCount = _this$props6.cellCount,\n cellLayoutManager = _this$props6.cellLayoutManager,\n className = _this$props6.className,\n height = _this$props6.height,\n horizontalOverscanSize = _this$props6.horizontalOverscanSize,\n id = _this$props6.id,\n noContentRenderer = _this$props6.noContentRenderer,\n style = _this$props6.style,\n verticalOverscanSize = _this$props6.verticalOverscanSize,\n width = _this$props6.width;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollLeft = _this$state3.scrollLeft,\n scrollTop = _this$state3.scrollTop; // Memoization reset\n\n if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {\n this._lastRenderedCellCount = cellCount;\n this._lastRenderedCellLayoutManager = cellLayoutManager;\n this._calculateSizeAndPositionDataOnNextUpdate = false;\n cellLayoutManager.calculateSizeAndPositionData();\n }\n var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge3.height,\n totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount\n\n var left = Math.max(0, scrollLeft - horizontalOverscanSize);\n var top = Math.max(0, scrollTop - verticalOverscanSize);\n var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);\n var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);\n var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({\n height: bottom - top,\n isScrolling: isScrolling,\n width: right - left,\n x: left,\n y: top\n }) : [];\n var collectionStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n WebkitOverflowScrolling: 'touch',\n width: width,\n willChange: 'transform'\n }; // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n\n var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;\n var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n\n collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n return React.createElement(\"div\", {\n ref: this._setScrollingContainerRef,\n \"aria-label\": this.props['aria-label'],\n className: clsx('ReactVirtualized__Collection', className),\n id: id,\n onScroll: this._onScroll,\n role: \"grid\",\n style: _objectSpread$4({}, collectionStyle, {}, style),\n tabIndex: 0\n }, cellCount > 0 && React.createElement(\"div\", {\n className: \"ReactVirtualized__Collection__innerScrollContainer\",\n style: {\n height: totalHeight,\n maxHeight: totalHeight,\n maxWidth: totalWidth,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n width: totalWidth\n }\n }, childrenToDisplay), cellCount === 0 && noContentRenderer());\n }\n /* ---------------------------- Helper methods ---------------------------- */\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Collection.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n }, {\n key: \"_enablePointerEventsAfterDelay\",\n value: function _enablePointerEventsAfterDelay() {\n var _this2 = this;\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n this._disablePointerEventsTimeoutId = setTimeout(function () {\n var isScrollingChange = _this2.props.isScrollingChange;\n isScrollingChange(false);\n _this2._disablePointerEventsTimeoutId = null;\n _this2.setState({\n isScrolling: false\n });\n }, IS_SCROLLING_TIMEOUT$1);\n }\n }, {\n key: \"_invokeOnScrollMemoizer\",\n value: function _invokeOnScrollMemoizer(_ref) {\n var _this3 = this;\n var scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n totalHeight = _ref.totalHeight,\n totalWidth = _ref.totalWidth;\n this._onScrollMemoizer({\n callback: function callback(_ref2) {\n var scrollLeft = _ref2.scrollLeft,\n scrollTop = _ref2.scrollTop;\n var _this3$props = _this3.props,\n height = _this3$props.height,\n onScroll = _this3$props.onScroll,\n width = _this3$props.width;\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: \"_setScrollPosition\",\n value: function _setScrollPosition(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n if (scrollLeft >= 0) {\n newState.scrollLeft = scrollLeft;\n }\n if (scrollTop >= 0) {\n newState.scrollTop = scrollTop;\n }\n if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n this.setState(newState);\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {\n return {\n scrollLeft: 0,\n scrollTop: 0,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n }\n return null;\n }\n }]);\n return CollectionView;\n}(React.PureComponent);\n_defineProperty(CollectionView, \"defaultProps\", {\n 'aria-label': 'grid',\n horizontalOverscanSize: 0,\n noContentRenderer: function noContentRenderer() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n onSectionRendered: function onSectionRendered() {\n return null;\n },\n scrollToAlignment: 'auto',\n scrollToCell: -1,\n style: {},\n verticalOverscanSize: 0\n});\nCollectionView.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': propTypesExports.string,\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: propTypesExports.bool,\n /**\n * Number of cells in collection.\n */\n cellCount: propTypesExports.number.isRequired,\n /**\n * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.\n */\n cellLayoutManager: propTypesExports.object.isRequired,\n /**\n * Optional custom CSS class name to attach to root Collection element.\n */\n className: propTypesExports.string,\n /**\n * Height of Collection; this property determines the number of visible (vs virtualized) rows.\n */\n height: propTypesExports.number.isRequired,\n /**\n * Optional custom id to attach to root Collection element.\n */\n id: propTypesExports.string,\n /**\n * Enables the `Collection` to horiontally \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n horizontalOverscanSize: propTypesExports.number.isRequired,\n isScrollingChange: propTypesExports.func,\n /**\n * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.\n */\n noContentRenderer: propTypesExports.func.isRequired,\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n */\n onScroll: propTypesExports.func.isRequired,\n /**\n * Callback invoked with information about the section of the Collection that was just rendered.\n * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.\n */\n onSectionRendered: propTypesExports.func.isRequired,\n /**\n * Horizontal offset.\n */\n scrollLeft: propTypesExports.number,\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n scrollToAlignment: propTypesExports.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n /**\n * Cell index to ensure visible (by forcefully scrolling if necessary).\n */\n scrollToCell: propTypesExports.number.isRequired,\n /**\n * Vertical offset.\n */\n scrollTop: propTypesExports.number,\n /**\n * Optional custom inline style to attach to root Collection element.\n */\n style: propTypesExports.object,\n /**\n * Enables the `Collection` to vertically \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n verticalOverscanSize: propTypesExports.number.isRequired,\n /**\n * Width of Collection; this property determines the number of visible (vs virtualized) columns.\n */\n width: propTypesExports.number.isRequired\n} : {};\npolyfill_1(CollectionView);\nprocess.env.NODE_ENV === 'production' ? null : {\n \"index\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"x\": propTypesExports.number.isRequired,\n \"y\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"scrollLeft\": propTypesExports.number.isRequired,\n \"scrollTop\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"height\": propTypesExports.number.isRequired,\n \"width\": propTypesExports.number.isRequired,\n \"x\": propTypesExports.number.isRequired,\n \"y\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"height\": propTypesExports.number.isRequired,\n \"width\": propTypesExports.number.isRequired\n};\n\n/**\n * A section of the Window.\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * Sections have a fixed size and contain 0 to many cells (tracked by their indices).\n */\nvar Section = /*#__PURE__*/\nfunction () {\n function Section(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n _classCallCheck(this, Section);\n this.height = height;\n this.width = width;\n this.x = x;\n this.y = y;\n this._indexMap = {};\n this._indices = [];\n }\n /** Add a cell to this section. */\n\n _createClass(Section, [{\n key: \"addCellIndex\",\n value: function addCellIndex(_ref2) {\n var index = _ref2.index;\n if (!this._indexMap[index]) {\n this._indexMap[index] = true;\n this._indices.push(index);\n }\n }\n /** Get all cell indices that have been added to this section. */\n }, {\n key: \"getCellIndices\",\n value: function getCellIndices() {\n return this._indices;\n }\n /** Intended for debugger/test purposes only */\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.x, \",\").concat(this.y, \" \").concat(this.width, \"x\").concat(this.height);\n }\n }]);\n return Section;\n}();\nvar SECTION_SIZE = 100;\n\n/**\n * Contains 0 to many Sections.\n * Grows (and adds Sections) dynamically as cells are registered.\n * Automatically adds cells to the appropriate Section(s).\n */\nvar SectionManager = /*#__PURE__*/\nfunction () {\n function SectionManager() {\n var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;\n _classCallCheck(this, SectionManager);\n this._sectionSize = sectionSize;\n this._cellMetadata = [];\n this._sections = {};\n }\n /**\n * Gets all cell indices contained in the specified region.\n * A region may encompass 1 or more Sections.\n */\n\n _createClass(SectionManager, [{\n key: \"getCellIndices\",\n value: function getCellIndices(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n var indices = {};\n this.getSections({\n height: height,\n width: width,\n x: x,\n y: y\n }).forEach(function (section) {\n return section.getCellIndices().forEach(function (index) {\n indices[index] = index;\n });\n }); // Object keys are strings; this function returns numbers\n\n return Object.keys(indices).map(function (index) {\n return indices[index];\n });\n }\n /** Get size and position information for the cell specified. */\n }, {\n key: \"getCellMetadata\",\n value: function getCellMetadata(_ref2) {\n var index = _ref2.index;\n return this._cellMetadata[index];\n }\n /** Get all Sections overlapping the specified region. */\n }, {\n key: \"getSections\",\n value: function getSections(_ref3) {\n var height = _ref3.height,\n width = _ref3.width,\n x = _ref3.x,\n y = _ref3.y;\n var sectionXStart = Math.floor(x / this._sectionSize);\n var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);\n var sectionYStart = Math.floor(y / this._sectionSize);\n var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);\n var sections = [];\n for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {\n for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {\n var key = \"\".concat(sectionX, \".\").concat(sectionY);\n if (!this._sections[key]) {\n this._sections[key] = new Section({\n height: this._sectionSize,\n width: this._sectionSize,\n x: sectionX * this._sectionSize,\n y: sectionY * this._sectionSize\n });\n }\n sections.push(this._sections[key]);\n }\n }\n return sections;\n }\n /** Total number of Sections based on the currently registered cells. */\n }, {\n key: \"getTotalSectionCount\",\n value: function getTotalSectionCount() {\n return Object.keys(this._sections).length;\n }\n /** Intended for debugger/test purposes only */\n }, {\n key: \"toString\",\n value: function toString() {\n var _this = this;\n return Object.keys(this._sections).map(function (index) {\n return _this._sections[index].toString();\n });\n }\n /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */\n }, {\n key: \"registerCell\",\n value: function registerCell(_ref4) {\n var cellMetadatum = _ref4.cellMetadatum,\n index = _ref4.index;\n this._cellMetadata[index] = cellMetadatum;\n this.getSections(cellMetadatum).forEach(function (section) {\n return section.addCellIndex({\n index: index\n });\n });\n }\n }]);\n return SectionManager;\n}();\nfunction calculateSizeAndPositionData(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,\n sectionSize = _ref.sectionSize;\n var cellMetadata = [];\n var sectionManager = new SectionManager(sectionSize);\n var height = 0;\n var width = 0;\n for (var index = 0; index < cellCount; index++) {\n var cellMetadatum = cellSizeAndPositionGetter({\n index: index\n });\n if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {\n throw Error(\"Invalid metadata returned for cell \".concat(index, \":\\n x:\").concat(cellMetadatum.x, \", y:\").concat(cellMetadatum.y, \", width:\").concat(cellMetadatum.width, \", height:\").concat(cellMetadatum.height));\n }\n height = Math.max(height, cellMetadatum.y + cellMetadatum.height);\n width = Math.max(width, cellMetadatum.x + cellMetadatum.width);\n cellMetadata[index] = cellMetadatum;\n sectionManager.registerCell({\n cellMetadatum: cellMetadatum,\n index: index\n });\n }\n return {\n cellMetadata: cellMetadata,\n height: height,\n sectionManager: sectionManager,\n width: width\n };\n}\n\n/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param cellOffset Offset (x or y) position for cell\n * @param cellSize Size (width or height) of cell\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return Offset to use to ensure the specified cell is visible\n */\nfunction getUpdatedOffsetForIndex(_ref) {\n var _ref$align = _ref.align,\n align = _ref$align === void 0 ? 'auto' : _ref$align,\n cellOffset = _ref.cellOffset,\n cellSize = _ref.cellSize,\n containerSize = _ref.containerSize,\n currentOffset = _ref.currentOffset;\n var maxOffset = cellOffset;\n var minOffset = maxOffset - containerSize + cellSize;\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center':\n return maxOffset - (containerSize - cellSize) / 2;\n default:\n return Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n}\n\n/**\n * Renders scattered or non-linear data.\n * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.\n */\nvar Collection = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Collection, _React$PureComponent);\n function Collection(props, context) {\n var _this;\n _classCallCheck(this, Collection);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Collection).call(this, props, context));\n _this._cellMetadata = [];\n _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)\n\n _this._cellCache = [];\n _this._isScrollingChange = _this._isScrollingChange.bind(_assertThisInitialized(_this));\n _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Collection, [{\n key: \"forceUpdate\",\n value: function forceUpdate() {\n if (this._collectionView !== undefined) {\n this._collectionView.forceUpdate();\n }\n }\n /** See Collection#recomputeCellSizesAndPositions */\n }, {\n key: \"recomputeCellSizesAndPositions\",\n value: function recomputeCellSizesAndPositions() {\n this._cellCache = [];\n this._collectionView.recomputeCellSizesAndPositions();\n }\n /** React lifecycle methods */\n }, {\n key: \"render\",\n value: function render() {\n var props = _extends({}, this.props);\n return React.createElement(CollectionView, _extends({\n cellLayoutManager: this,\n isScrollingChange: this._isScrollingChange,\n ref: this._setCollectionViewRef\n }, props));\n }\n /** CellLayoutManager interface */\n }, {\n key: \"calculateSizeAndPositionData\",\n value: function calculateSizeAndPositionData$1() {\n var _this$props = this.props,\n cellCount = _this$props.cellCount,\n cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,\n sectionSize = _this$props.sectionSize;\n var data = calculateSizeAndPositionData({\n cellCount: cellCount,\n cellSizeAndPositionGetter: cellSizeAndPositionGetter,\n sectionSize: sectionSize\n });\n this._cellMetadata = data.cellMetadata;\n this._sectionManager = data.sectionManager;\n this._height = data.height;\n this._width = data.width;\n }\n /**\n * Returns the most recently rendered set of cell indices.\n */\n }, {\n key: \"getLastRenderedIndices\",\n value: function getLastRenderedIndices() {\n return this._lastRenderedCellIndices;\n }\n /**\n * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.\n */\n }, {\n key: \"getScrollPositionForCell\",\n value: function getScrollPositionForCell(_ref) {\n var align = _ref.align,\n cellIndex = _ref.cellIndex,\n height = _ref.height,\n scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n width = _ref.width;\n var cellCount = this.props.cellCount;\n if (cellIndex >= 0 && cellIndex < cellCount) {\n var cellMetadata = this._cellMetadata[cellIndex];\n scrollLeft = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.x,\n cellSize: cellMetadata.width,\n containerSize: width,\n currentOffset: scrollLeft,\n targetIndex: cellIndex\n });\n scrollTop = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.y,\n cellSize: cellMetadata.height,\n containerSize: height,\n currentOffset: scrollTop,\n targetIndex: cellIndex\n });\n }\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n }\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n return {\n height: this._height,\n width: this._width\n };\n }\n }, {\n key: \"cellRenderers\",\n value: function cellRenderers(_ref2) {\n var _this2 = this;\n var height = _ref2.height,\n isScrolling = _ref2.isScrolling,\n width = _ref2.width,\n x = _ref2.x,\n y = _ref2.y;\n var _this$props2 = this.props,\n cellGroupRenderer = _this$props2.cellGroupRenderer,\n cellRenderer = _this$props2.cellRenderer; // Store for later calls to getLastRenderedIndices()\n\n this._lastRenderedCellIndices = this._sectionManager.getCellIndices({\n height: height,\n width: width,\n x: x,\n y: y\n });\n return cellGroupRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {\n var index = _ref3.index;\n return _this2._sectionManager.getCellMetadata({\n index: index\n });\n },\n indices: this._lastRenderedCellIndices,\n isScrolling: isScrolling\n });\n }\n }, {\n key: \"_isScrollingChange\",\n value: function _isScrollingChange(isScrolling) {\n if (!isScrolling) {\n this._cellCache = [];\n }\n }\n }, {\n key: \"_setCollectionViewRef\",\n value: function _setCollectionViewRef(ref) {\n this._collectionView = ref;\n }\n }]);\n return Collection;\n}(React.PureComponent);\n_defineProperty(Collection, \"defaultProps\", {\n 'aria-label': 'grid',\n cellGroupRenderer: defaultCellGroupRenderer\n});\nCollection.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': propTypesExports.string,\n /**\n * Number of cells in Collection.\n */\n cellCount: propTypesExports.number.isRequired,\n /**\n * Responsible for rendering a group of cells given their indices.\n * Should implement the following interface: ({\n * cellSizeAndPositionGetter:Function,\n * indices: Array,\n * cellRenderer: Function\n * }): Array\n */\n cellGroupRenderer: propTypesExports.func.isRequired,\n /**\n * Responsible for rendering a cell given an row and column index.\n * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element\n */\n cellRenderer: propTypesExports.func.isRequired,\n /**\n * Callback responsible for returning size and offset/position information for a given cell (index).\n * ({ index: number }): { height: number, width: number, x: number, y: number }\n */\n cellSizeAndPositionGetter: propTypesExports.func.isRequired,\n /**\n * Optionally override the size of the sections a Collection's cells are split into.\n */\n sectionSize: propTypesExports.number\n} : {};\nfunction defaultCellGroupRenderer(_ref4) {\n var cellCache = _ref4.cellCache,\n cellRenderer = _ref4.cellRenderer,\n cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,\n indices = _ref4.indices,\n isScrolling = _ref4.isScrolling;\n return indices.map(function (index) {\n var cellMetadata = cellSizeAndPositionGetter({\n index: index\n });\n var cellRendererProps = {\n index: index,\n isScrolling: isScrolling,\n key: index,\n style: {\n height: cellMetadata.height,\n left: cellMetadata.x,\n position: 'absolute',\n top: cellMetadata.y,\n width: cellMetadata.width\n }\n }; // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling complets.\n\n if (isScrolling) {\n if (!(index in cellCache)) {\n cellCache[index] = cellRenderer(cellRendererProps);\n }\n return cellCache[index];\n } else {\n return cellRenderer(cellRendererProps);\n }\n }).filter(function (renderedCell) {\n return !!renderedCell;\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering a virtualized Grid.\n * This function should implement the following signature:\n * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n *\n * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n * The :registerChild should be passed to the Grid's :ref property.\n * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n */\n children: propTypesExports.func.isRequired,\n /** Optional maximum allowed column width */\n columnMaxWidth: propTypesExports.number,\n /** Optional minimum allowed column width */\n columnMinWidth: propTypesExports.number,\n /** Number of columns in Grid or Table child */\n columnCount: propTypesExports.number.isRequired,\n /** Width of Grid or Table child */\n width: propTypesExports.number.isRequired\n} : {};\nvar toConsumableArrayExports = {};\nvar toConsumableArray = {\n get exports() {\n return toConsumableArrayExports;\n },\n set exports(v) {\n toConsumableArrayExports = v;\n }\n};\nvar arrayWithoutHolesExports = {};\nvar arrayWithoutHoles = {\n get exports() {\n return arrayWithoutHolesExports;\n },\n set exports(v) {\n arrayWithoutHolesExports = v;\n }\n};\nvar arrayLikeToArrayExports = {};\nvar arrayLikeToArray = {\n get exports() {\n return arrayLikeToArrayExports;\n },\n set exports(v) {\n arrayLikeToArrayExports = v;\n }\n};\n(function (module) {\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(arrayLikeToArray);\n(function (module) {\n var arrayLikeToArray = arrayLikeToArrayExports;\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n }\n module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(arrayWithoutHoles);\nvar iterableToArrayExports = {};\nvar iterableToArray = {\n get exports() {\n return iterableToArrayExports;\n },\n set exports(v) {\n iterableToArrayExports = v;\n }\n};\n(function (module) {\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n module.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(iterableToArray);\nvar unsupportedIterableToArrayExports = {};\nvar unsupportedIterableToArray = {\n get exports() {\n return unsupportedIterableToArrayExports;\n },\n set exports(v) {\n unsupportedIterableToArrayExports = v;\n }\n};\n(function (module) {\n var arrayLikeToArray = arrayLikeToArrayExports;\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n }\n module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(unsupportedIterableToArray);\nvar nonIterableSpreadExports = {};\nvar nonIterableSpread = {\n get exports() {\n return nonIterableSpreadExports;\n },\n set exports(v) {\n nonIterableSpreadExports = v;\n }\n};\n(function (module) {\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(nonIterableSpread);\n(function (module) {\n var arrayWithoutHoles = arrayWithoutHolesExports;\n var iterableToArray = iterableToArrayExports;\n var unsupportedIterableToArray = unsupportedIterableToArrayExports;\n var nonIterableSpread = nonIterableSpreadExports;\n function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n }\n module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(toConsumableArray);\nvar _toConsumableArray = /*@__PURE__*/getDefaultExportFromCjs(toConsumableArrayExports);\n\n/**\n * Higher-order component that manages lazy-loading for \"infinite\" data.\n * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n */\n\nvar InfiniteLoader = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(InfiniteLoader, _React$PureComponent);\n function InfiniteLoader(props, context) {\n var _this;\n _classCallCheck(this, InfiniteLoader);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoader).call(this, props, context));\n _this._loadMoreRowsMemoizer = createCallbackMemoizer();\n _this._onRowsRendered = _this._onRowsRendered.bind(_assertThisInitialized(_this));\n _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(InfiniteLoader, [{\n key: \"resetLoadMoreRowsCache\",\n value: function resetLoadMoreRowsCache(autoReload) {\n this._loadMoreRowsMemoizer = createCallbackMemoizer();\n if (autoReload) {\n this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n onRowsRendered: this._onRowsRendered,\n registerChild: this._registerChild\n });\n }\n }, {\n key: \"_loadUnloadedRanges\",\n value: function _loadUnloadedRanges(unloadedRanges) {\n var _this2 = this;\n var loadMoreRows = this.props.loadMoreRows;\n unloadedRanges.forEach(function (unloadedRange) {\n var promise = loadMoreRows(unloadedRange);\n if (promise) {\n promise.then(function () {\n // Refresh the visible rows if any of them have just been loaded.\n // Otherwise they will remain in their unloaded visual state.\n if (isRangeVisible({\n lastRenderedStartIndex: _this2._lastRenderedStartIndex,\n lastRenderedStopIndex: _this2._lastRenderedStopIndex,\n startIndex: unloadedRange.startIndex,\n stopIndex: unloadedRange.stopIndex\n })) {\n if (_this2._registeredChild) {\n forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);\n }\n }\n });\n }\n });\n }\n }, {\n key: \"_onRowsRendered\",\n value: function _onRowsRendered(_ref) {\n var startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n this._lastRenderedStartIndex = startIndex;\n this._lastRenderedStopIndex = stopIndex;\n this._doStuff(startIndex, stopIndex);\n }\n }, {\n key: \"_doStuff\",\n value: function _doStuff(startIndex, stopIndex) {\n var _ref2,\n _this3 = this;\n var _this$props = this.props,\n isRowLoaded = _this$props.isRowLoaded,\n minimumBatchSize = _this$props.minimumBatchSize,\n rowCount = _this$props.rowCount,\n threshold = _this$props.threshold;\n var unloadedRanges = scanForUnloadedRanges({\n isRowLoaded: isRowLoaded,\n minimumBatchSize: minimumBatchSize,\n rowCount: rowCount,\n startIndex: Math.max(0, startIndex - threshold),\n stopIndex: Math.min(rowCount - 1, stopIndex + threshold)\n }); // For memoize comparison\n\n var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(unloadedRanges.map(function (_ref3) {\n var startIndex = _ref3.startIndex,\n stopIndex = _ref3.stopIndex;\n return [startIndex, stopIndex];\n })));\n this._loadMoreRowsMemoizer({\n callback: function callback() {\n _this3._loadUnloadedRanges(unloadedRanges);\n },\n indices: {\n squashedUnloadedRanges: squashedUnloadedRanges\n }\n });\n }\n }, {\n key: \"_registerChild\",\n value: function _registerChild(registeredChild) {\n this._registeredChild = registeredChild;\n }\n }]);\n return InfiniteLoader;\n}(React.PureComponent);\n/**\n * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\n\n_defineProperty(InfiniteLoader, \"defaultProps\", {\n minimumBatchSize: 10,\n rowCount: 0,\n threshold: 15\n});\nInfiniteLoader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering a virtualized component.\n * This function should implement the following signature:\n * ({ onRowsRendered, registerChild }) => PropTypes.element\n *\n * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n * The :registerChild callback should be set as the virtualized component's :ref.\n */\n children: propTypesExports.func.isRequired,\n /**\n * Function responsible for tracking the loaded state of each row.\n * It should implement the following signature: ({ index: number }): boolean\n */\n isRowLoaded: propTypesExports.func.isRequired,\n /**\n * Callback to be invoked when more rows must be loaded.\n * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n * The returned Promise should be resolved once row data has finished loading.\n * It will be used to determine when to refresh the list with the newly-loaded data.\n * This callback may be called multiple times in reaction to a single scroll event.\n */\n loadMoreRows: propTypesExports.func.isRequired,\n /**\n * Minimum number of rows to be loaded at a time.\n * This property can be used to batch requests to reduce HTTP requests.\n */\n minimumBatchSize: propTypesExports.number.isRequired,\n /**\n * Number of rows in list; can be arbitrary high number if actual number is unknown.\n */\n rowCount: propTypesExports.number.isRequired,\n /**\n * Threshold at which to pre-fetch data.\n * A threshold X means that data will start loading when a user scrolls within X rows.\n * This value defaults to 15.\n */\n threshold: propTypesExports.number.isRequired\n} : {};\nfunction isRangeVisible(_ref4) {\n var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,\n lastRenderedStopIndex = _ref4.lastRenderedStopIndex,\n startIndex = _ref4.startIndex,\n stopIndex = _ref4.stopIndex;\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n}\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\n\nfunction scanForUnloadedRanges(_ref5) {\n var isRowLoaded = _ref5.isRowLoaded,\n minimumBatchSize = _ref5.minimumBatchSize,\n rowCount = _ref5.rowCount,\n startIndex = _ref5.startIndex,\n stopIndex = _ref5.stopIndex;\n var unloadedRanges = [];\n var rangeStartIndex = null;\n var rangeStopIndex = null;\n for (var index = startIndex; index <= stopIndex; index++) {\n var loaded = isRowLoaded({\n index: index\n });\n if (!loaded) {\n rangeStopIndex = index;\n if (rangeStartIndex === null) {\n rangeStartIndex = index;\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n rangeStartIndex = rangeStopIndex = null;\n }\n } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.\n // Scan forward to try filling our :minimumBatchSize.\n\n if (rangeStopIndex !== null) {\n var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);\n for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {\n if (!isRowLoaded({\n index: _index\n })) {\n rangeStopIndex = _index;\n } else {\n break;\n }\n }\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n } // Check to see if our first range ended prematurely.\n // In this case we should scan backwards to try filling our :minimumBatchSize.\n\n if (unloadedRanges.length) {\n var firstUnloadedRange = unloadedRanges[0];\n while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {\n var _index2 = firstUnloadedRange.startIndex - 1;\n if (!isRowLoaded({\n index: _index2\n })) {\n firstUnloadedRange.startIndex = _index2;\n } else {\n break;\n }\n }\n }\n return unloadedRanges;\n}\n/**\n * Since RV components use shallowCompare we need to force a render (even though props haven't changed).\n * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.\n * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,\n * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.\n * Else the inner Grid will not be re-rendered and visuals may be stale.\n *\n * Additionally, while a Grid is scrolling the cells can be cached,\n * So it's important to invalidate that cache by recalculating sizes\n * before forcing a rerender.\n */\n\nfunction forceUpdateReactVirtualizedComponent(component) {\n var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;\n if (recomputeSize) {\n recomputeSize.call(component, currentIndex);\n } else {\n component.forceUpdate();\n }\n}\nprocess.env.NODE_ENV === 'production' ? null : {\n \"index\": propTypesExports.number.isRequired,\n \"isScrolling\": propTypesExports.bool.isRequired,\n \"isVisible\": propTypesExports.bool.isRequired,\n \"key\": propTypesExports.string.isRequired,\n \"parent\": propTypesExports.object.isRequired,\n \"style\": propTypesExports.object.isRequired\n};\nvar bpfrpt_proptype_RowRenderer = process.env.NODE_ENV === 'production' ? null : propTypesExports.func;\nprocess.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": propTypesExports.number.isRequired,\n \"overscanStopIndex\": propTypesExports.number.isRequired,\n \"startIndex\": propTypesExports.number.isRequired,\n \"stopIndex\": propTypesExports.number.isRequired\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": propTypesExports.number.isRequired,\n \"scrollHeight\": propTypesExports.number.isRequired,\n \"scrollTop\": propTypesExports.number.isRequired\n};\nvar _class$2, _temp$2;\n/**\n * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n * if only a few of those elements are visible. The primary purpose of this component is to improve\n * performance by only rendering the DOM nodes that a user is able to see based on their current\n * scroll position.\n *\n * This component renders a virtualized list of elements with either fixed or dynamic heights.\n */\n\nvar List = (_temp$2 = _class$2 = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(List, _React$PureComponent);\n function List() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, List);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(List)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty(_assertThisInitialized(_this), \"Grid\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_cellRenderer\", function (_ref) {\n var parent = _ref.parent,\n rowIndex = _ref.rowIndex,\n style = _ref.style,\n isScrolling = _ref.isScrolling,\n isVisible = _ref.isVisible,\n key = _ref.key;\n var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.\n // This prevents new style objects from bypassing shallowCompare().\n // However as of React 16, style props are auto-frozen (at least in dev mode)\n // Check to make sure we can still modify the style before proceeding.\n // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713\n\n var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');\n if (widthDescriptor && widthDescriptor.writable) {\n // By default, List cells should be 100% width.\n // This prevents them from flowing under a scrollbar (if present).\n style.width = '100%';\n }\n return rowRenderer({\n index: rowIndex,\n style: style,\n isScrolling: isScrolling,\n isVisible: isVisible,\n key: key,\n parent: parent\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (ref) {\n _this.Grid = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (_ref2) {\n var clientHeight = _ref2.clientHeight,\n scrollHeight = _ref2.scrollHeight,\n scrollTop = _ref2.scrollTop;\n var onScroll = _this.props.onScroll;\n onScroll({\n clientHeight: clientHeight,\n scrollHeight: scrollHeight,\n scrollTop: scrollTop\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref3) {\n var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref3.rowOverscanStopIndex,\n rowStartIndex = _ref3.rowStartIndex,\n rowStopIndex = _ref3.rowStopIndex;\n var onRowsRendered = _this.props.onRowsRendered;\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n });\n return _this;\n }\n _createClass(List, [{\n key: \"forceUpdateGrid\",\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n /** See Grid#getOffsetForCell */\n }, {\n key: \"getOffsetForRow\",\n value: function getOffsetForRow(_ref4) {\n var alignment = _ref4.alignment,\n index = _ref4.index;\n if (this.Grid) {\n var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index,\n columnIndex: 0\n }),\n scrollTop = _this$Grid$getOffsetF.scrollTop;\n return scrollTop;\n }\n return 0;\n }\n /** CellMeasurer compatibility */\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref5) {\n var columnIndex = _ref5.columnIndex,\n rowIndex = _ref5.rowIndex;\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#measureAllCells */\n }, {\n key: \"measureAllRows\",\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\n }\n }\n /** CellMeasurer compatibility */\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref6$columnIndex = _ref6.columnIndex,\n columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,\n _ref6$rowIndex = _ref6.rowIndex,\n rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#recomputeGridSize */\n }, {\n key: \"recomputeRowHeights\",\n value: function recomputeRowHeights() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: index,\n columnIndex: 0\n });\n }\n }\n /** See Grid#scrollToPosition */\n }, {\n key: \"scrollToPosition\",\n value: function scrollToPosition() {\n var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.Grid) {\n this.Grid.scrollToPosition({\n scrollTop: scrollTop\n });\n }\n }\n /** See Grid#scrollToCell */\n }, {\n key: \"scrollToRow\",\n value: function scrollToRow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.Grid) {\n this.Grid.scrollToCell({\n columnIndex: 0,\n rowIndex: index\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n noRowsRenderer = _this$props.noRowsRenderer,\n scrollToIndex = _this$props.scrollToIndex,\n width = _this$props.width;\n var classNames = clsx('ReactVirtualized__List', className);\n return React.createElement(Grid, _extends({}, this.props, {\n autoContainerWidth: true,\n cellRenderer: this._cellRenderer,\n className: classNames,\n columnWidth: width,\n columnCount: 1,\n noContentRenderer: noRowsRenderer,\n onScroll: this._onScroll,\n onSectionRendered: this._onSectionRendered,\n ref: this._setRef,\n scrollToRow: scrollToIndex\n }));\n }\n }]);\n return List;\n}(React.PureComponent), _defineProperty(_class$2, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": propTypesExports.string,\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n \"autoHeight\": propTypesExports.bool.isRequired,\n /** Optional CSS class name */\n \"className\": propTypesExports.string,\n /**\n * Used to estimate the total height of a List before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n \"estimatedRowSize\": propTypesExports.number.isRequired,\n /** Height constraint for list (determines how many actual rows are rendered) */\n \"height\": propTypesExports.number.isRequired,\n /** Optional renderer to be used in place of rows when rowCount is 0 */\n \"noRowsRenderer\": function noRowsRenderer() {\n return (typeof bpfrpt_proptype_NoContentRenderer === \"function\" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : propTypesExports.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n },\n /** Callback invoked with information about the slice of rows that were just rendered. */\n \"onRowsRendered\": propTypesExports.func.isRequired,\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n */\n \"onScroll\": propTypesExports.func.isRequired,\n /** See Grid#overscanIndicesGetter */\n \"overscanIndicesGetter\": function overscanIndicesGetter() {\n return (typeof bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : propTypesExports.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n },\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n \"overscanRowCount\": propTypesExports.number.isRequired,\n /** Either a fixed row height (number) or a function that returns the height of a row given its index. */\n \"rowHeight\": function rowHeight() {\n return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : propTypesExports.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n /** Responsible for rendering a row given an index; ({ index: number }): node */\n \"rowRenderer\": function rowRenderer() {\n return (typeof bpfrpt_proptype_RowRenderer === \"function\" ? bpfrpt_proptype_RowRenderer.isRequired ? bpfrpt_proptype_RowRenderer.isRequired : bpfrpt_proptype_RowRenderer : propTypesExports.shape(bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);\n },\n /** Number of rows in list. */\n \"rowCount\": propTypesExports.number.isRequired,\n /** See Grid#scrollToAlignment */\n \"scrollToAlignment\": function scrollToAlignment() {\n return (typeof bpfrpt_proptype_Alignment === \"function\" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : propTypesExports.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToIndex\": propTypesExports.number.isRequired,\n /** Vertical offset. */\n \"scrollTop\": propTypesExports.number,\n /** Optional inline style */\n \"style\": propTypesExports.object.isRequired,\n /** Tab index for focus */\n \"tabIndex\": propTypesExports.number,\n /** Width of list */\n \"width\": propTypesExports.number.isRequired\n}), _temp$2);\n_defineProperty(List, \"defaultProps\", {\n autoHeight: false,\n estimatedRowSize: 30,\n onScroll: function onScroll() {},\n noRowsRenderer: function noRowsRenderer() {\n return null;\n },\n onRowsRendered: function onRowsRendered() {},\n overscanIndicesGetter: defaultOverscanIndicesGetter,\n overscanRowCount: 10,\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n});\nvar slicedToArrayExports = {};\nvar slicedToArray = {\n get exports() {\n return slicedToArrayExports;\n },\n set exports(v) {\n slicedToArrayExports = v;\n }\n};\nvar arrayWithHolesExports = {};\nvar arrayWithHoles = {\n get exports() {\n return arrayWithHolesExports;\n },\n set exports(v) {\n arrayWithHolesExports = v;\n }\n};\n(function (module) {\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(arrayWithHoles);\nvar iterableToArrayLimitExports = {};\nvar iterableToArrayLimit = {\n get exports() {\n return iterableToArrayLimitExports;\n },\n set exports(v) {\n iterableToArrayLimitExports = v;\n }\n};\n(function (module) {\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(iterableToArrayLimit);\nvar nonIterableRestExports = {};\nvar nonIterableRest = {\n get exports() {\n return nonIterableRestExports;\n },\n set exports(v) {\n nonIterableRestExports = v;\n }\n};\n(function (module) {\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(nonIterableRest);\n(function (module) {\n var arrayWithHoles = arrayWithHolesExports;\n var iterableToArrayLimit = iterableToArrayLimitExports;\n var unsupportedIterableToArray = unsupportedIterableToArrayExports;\n var nonIterableRest = nonIterableRestExports;\n function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n }\n module.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(slicedToArray);\nvar _slicedToArray = /*@__PURE__*/getDefaultExportFromCjs(slicedToArrayExports);\n\n/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/binary-search-bounds\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\nfunction _GEA(a, l, h, y) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x >= y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction _GEP(a, l, h, y, c) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchGE(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\nfunction _GTA(a, l, h, y) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x > y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction _GTP(a, l, h, y, c) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchGT(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\nfunction _LTA(a, l, h, y) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x < y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction _LTP(a, l, h, y, c) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchLT(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\nfunction _LEA(a, l, h, y) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x <= y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction _LEP(a, l, h, y, c) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchLE(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\nfunction _EQA(a, l, h, y) {\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x === y) {\n return m;\n } else if (x <= y) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n}\nfunction _EQP(a, l, h, y, c) {\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n var p = c(x, y);\n if (p === 0) {\n return m;\n } else if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n}\nfunction dispatchBsearchEQ(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\nvar bounds = {\n ge: dispatchBsearchGE,\n gt: dispatchBsearchGT,\n lt: dispatchBsearchLT,\n le: dispatchBsearchLE,\n eq: dispatchBsearchEQ\n};\n\n/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/interval-tree-1d\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\nvar NOT_FOUND = 0;\nvar SUCCESS = 1;\nvar EMPTY = 2;\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid;\n this.left = left;\n this.right = right;\n this.leftPoints = leftPoints;\n this.rightPoints = rightPoints;\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;\n}\nvar proto = IntervalTreeNode.prototype;\nfunction copy(a, b) {\n a.mid = b.mid;\n a.left = b.left;\n a.right = b.right;\n a.leftPoints = b.leftPoints;\n a.rightPoints = b.rightPoints;\n a.count = b.count;\n}\nfunction rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals);\n node.mid = ntree.mid;\n node.left = ntree.left;\n node.right = ntree.right;\n node.leftPoints = ntree.leftPoints;\n node.rightPoints = ntree.rightPoints;\n node.count = ntree.count;\n}\nfunction rebuildWithInterval(node, interval) {\n var intervals = node.intervals([]);\n intervals.push(interval);\n rebuild(node, intervals);\n}\nfunction rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([]);\n var idx = intervals.indexOf(interval);\n if (idx < 0) {\n return NOT_FOUND;\n }\n intervals.splice(idx, 1);\n rebuild(node, intervals);\n return SUCCESS;\n}\nproto.intervals = function (result) {\n result.push.apply(result, this.leftPoints);\n if (this.left) {\n this.left.intervals(result);\n }\n if (this.right) {\n this.right.intervals(result);\n }\n return result;\n};\nproto.insert = function (interval) {\n var weight = this.count - this.leftPoints.length;\n this.count += 1;\n if (interval[1] < this.mid) {\n if (this.left) {\n if (4 * (this.left.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.left.insert(interval);\n }\n } else {\n this.left = createIntervalTree([interval]);\n }\n } else if (interval[0] > this.mid) {\n if (this.right) {\n if (4 * (this.right.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.right.insert(interval);\n }\n } else {\n this.right = createIntervalTree([interval]);\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin);\n var r = bounds.ge(this.rightPoints, interval, compareEnd);\n this.leftPoints.splice(l, 0, interval);\n this.rightPoints.splice(r, 0, interval);\n }\n};\nproto.remove = function (interval) {\n var weight = this.count - this.leftPoints;\n if (interval[1] < this.mid) {\n if (!this.left) {\n return NOT_FOUND;\n }\n var rw = this.right ? this.right.count : 0;\n if (4 * rw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.left.remove(interval);\n if (r === EMPTY) {\n this.left = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else if (interval[0] > this.mid) {\n if (!this.right) {\n return NOT_FOUND;\n }\n var lw = this.left ? this.left.count : 0;\n if (4 * lw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.right.remove(interval);\n if (r === EMPTY) {\n this.right = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else {\n if (this.count === 1) {\n if (this.leftPoints[0] === interval) {\n return EMPTY;\n } else {\n return NOT_FOUND;\n }\n }\n if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if (this.left && this.right) {\n var p = this;\n var n = this.left;\n while (n.right) {\n p = n;\n n = n.right;\n }\n if (p === this) {\n n.right = this.right;\n } else {\n var l = this.left;\n var r = this.right;\n p.count -= n.count;\n p.right = n.left;\n n.left = l;\n n.right = r;\n }\n copy(this, n);\n this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;\n } else if (this.left) {\n copy(this, this.left);\n } else {\n copy(this, this.right);\n }\n return SUCCESS;\n }\n for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {\n if (this.leftPoints[l][0] !== interval[0]) {\n break;\n }\n if (this.leftPoints[l] === interval) {\n this.count -= 1;\n this.leftPoints.splice(l, 1);\n for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {\n if (this.rightPoints[r][1] !== interval[1]) {\n break;\n } else if (this.rightPoints[r] === interval) {\n this.rightPoints.splice(r, 1);\n return SUCCESS;\n }\n }\n }\n }\n return NOT_FOUND;\n }\n};\nfunction reportLeftRange(arr, hi, cb) {\n for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n}\nfunction reportRightRange(arr, lo, cb) {\n for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n}\nfunction reportRange(arr, cb) {\n for (var i = 0; i < arr.length; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n}\nproto.queryPoint = function (x, cb) {\n if (x < this.mid) {\n if (this.left) {\n var r = this.left.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportLeftRange(this.leftPoints, x, cb);\n } else if (x > this.mid) {\n if (this.right) {\n var r = this.right.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportRightRange(this.rightPoints, x, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n};\nproto.queryInterval = function (lo, hi, cb) {\n if (lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb);\n } else if (lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n};\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction compareBegin(a, b) {\n var d = a[0] - b[0];\n if (d) {\n return d;\n }\n return a[1] - b[1];\n}\nfunction compareEnd(a, b) {\n var d = a[1] - b[1];\n if (d) {\n return d;\n }\n return a[0] - b[0];\n}\nfunction createIntervalTree(intervals) {\n if (intervals.length === 0) {\n return null;\n }\n var pts = [];\n for (var i = 0; i < intervals.length; ++i) {\n pts.push(intervals[i][0], intervals[i][1]);\n }\n pts.sort(compareNumbers);\n var mid = pts[pts.length >> 1];\n var leftIntervals = [];\n var rightIntervals = [];\n var centerIntervals = [];\n for (var i = 0; i < intervals.length; ++i) {\n var s = intervals[i];\n if (s[1] < mid) {\n leftIntervals.push(s);\n } else if (mid < s[0]) {\n rightIntervals.push(s);\n } else {\n centerIntervals.push(s);\n }\n } //Split center intervals\n\n var leftPoints = centerIntervals;\n var rightPoints = centerIntervals.slice();\n leftPoints.sort(compareBegin);\n rightPoints.sort(compareEnd);\n return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);\n} //User friendly wrapper that makes it possible to support empty trees\n\nfunction IntervalTree(root) {\n this.root = root;\n}\nvar tproto = IntervalTree.prototype;\ntproto.insert = function (interval) {\n if (this.root) {\n this.root.insert(interval);\n } else {\n this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);\n }\n};\ntproto.remove = function (interval) {\n if (this.root) {\n var r = this.root.remove(interval);\n if (r === EMPTY) {\n this.root = null;\n }\n return r !== NOT_FOUND;\n }\n return false;\n};\ntproto.queryPoint = function (p, cb) {\n if (this.root) {\n return this.root.queryPoint(p, cb);\n }\n};\ntproto.queryInterval = function (lo, hi, cb) {\n if (lo <= hi && this.root) {\n return this.root.queryInterval(lo, hi, cb);\n }\n};\nObject.defineProperty(tproto, 'count', {\n get: function get() {\n if (this.root) {\n return this.root.count;\n }\n return 0;\n }\n});\nObject.defineProperty(tproto, 'intervals', {\n get: function get() {\n if (this.root) {\n return this.root.intervals([]);\n }\n return [];\n }\n});\nfunction createWrapper(intervals) {\n if (!intervals || intervals.length === 0) {\n return new IntervalTree(null);\n }\n return new IntervalTree(createIntervalTree(intervals));\n}\n\n// Position cache requirements:\n// O(log(n)) lookup of cells to render for a given viewport size\n// O(1) lookup of shortest measured column (so we know when to enter phase 1)\nvar PositionCache = /*#__PURE__*/\nfunction () {\n function PositionCache() {\n _classCallCheck(this, PositionCache);\n _defineProperty(this, \"_columnSizeMap\", {});\n _defineProperty(this, \"_intervalTree\", createWrapper());\n _defineProperty(this, \"_leftMap\", {});\n }\n _createClass(PositionCache, [{\n key: \"estimateTotalHeight\",\n value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {\n var unmeasuredCellCount = cellCount - this.count;\n return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;\n } // Render all cells visible within the viewport range defined.\n }, {\n key: \"range\",\n value: function range(scrollTop, clientHeight, renderCallback) {\n var _this = this;\n this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n top = _ref2[0];\n _ref2[1];\n var index = _ref2[2];\n return renderCallback(index, _this._leftMap[index], top);\n });\n }\n }, {\n key: \"setPosition\",\n value: function setPosition(index, left, top, height) {\n this._intervalTree.insert([top, top + height, index]);\n this._leftMap[index] = left;\n var columnSizeMap = this._columnSizeMap;\n var columnHeight = columnSizeMap[left];\n if (columnHeight === undefined) {\n columnSizeMap[left] = top + height;\n } else {\n columnSizeMap[left] = Math.max(columnHeight, top + height);\n }\n }\n }, {\n key: \"count\",\n get: function get() {\n return this._intervalTree.count;\n }\n }, {\n key: \"shortestColumnSize\",\n get: function get() {\n var columnSizeMap = this._columnSizeMap;\n var size = 0;\n for (var i in columnSizeMap) {\n var height = columnSizeMap[i];\n size = size === 0 ? height : Math.min(size, height);\n }\n return size;\n }\n }, {\n key: \"tallestColumnSize\",\n get: function get() {\n var columnSizeMap = this._columnSizeMap;\n var size = 0;\n for (var i in columnSizeMap) {\n var height = columnSizeMap[i];\n size = Math.max(size, height);\n }\n return size;\n }\n }]);\n return PositionCache;\n}();\nvar _class$1, _temp$1;\nfunction ownKeys$3(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$3(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$3(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nvar emptyObject = {};\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nvar DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n/**\n * This component efficiently displays arbitrarily positioned cells using windowing techniques.\n * Cell position is determined by an injected `cellPositioner` property.\n * Windowing is vertical; this component does not support horizontal scrolling.\n *\n * Rendering occurs in two phases:\n * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.\n * Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.\n * After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells\n * in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).\n * All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.\n * 2) Second pass uses the external `cellPositioner` to layout cells.\n * At this time the positioner has access to cached size measurements for all cells.\n * The positions it returns are cached by Masonry for fast access later.\n * Phase one is repeated if the user scrolls beyond the current layout's bounds.\n * If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.\n *\n * Animation constraints:\n * Simple animations are supported (eg translate/slide into place on initial reveal).\n * More complex animations are not (eg flying from one position to another on resize).\n *\n * Layout constraints:\n * This component supports multi-column layout.\n * The height of each item may vary.\n * The width of each item must not exceed the width of the column it is \"in\".\n * The left position of all items within a column must align.\n * (Items may not span multiple columns.)\n */\n\nvar Masonry = (_temp$1 = _class$1 = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Masonry, _React$PureComponent);\n function Masonry() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, Masonry);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isScrolling: false,\n scrollTop: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingId\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStartIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStopIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_positionCache\", new PositionCache());\n _defineProperty(_assertThisInitialized(_this), \"_startIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_startIndexMemoized\", null);\n _defineProperty(_assertThisInitialized(_this), \"_stopIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_stopIndexMemoized\", null);\n _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingCallback\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n var height = _this.props.height;\n var eventScrollTop = event.currentTarget.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.\n // Avoid re-rendering in this case as it can cause problems; see #532 for more.\n\n if (eventScrollTop !== scrollTop) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n\n if (_this.state.scrollTop !== scrollTop) {\n _this.setState({\n isScrolling: true,\n scrollTop: scrollTop\n });\n }\n });\n return _this;\n }\n _createClass(Masonry, [{\n key: \"clearCellPositions\",\n value: function clearCellPositions() {\n this._positionCache = new PositionCache();\n this.forceUpdate();\n } // HACK This method signature was intended for Grid\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref) {\n var index = _ref.rowIndex;\n if (this._invalidateOnUpdateStartIndex === null) {\n this._invalidateOnUpdateStartIndex = index;\n this._invalidateOnUpdateStopIndex = index;\n } else {\n this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);\n this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);\n }\n }\n }, {\n key: \"recomputeCellPositions\",\n value: function recomputeCellPositions() {\n var stopIndex = this._positionCache.count - 1;\n this._positionCache = new PositionCache();\n this._populatePositionCache(0, stopIndex);\n this.forceUpdate();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._checkInvalidateOnUpdate();\n this._invokeOnScrollCallback();\n this._invokeOnCellsRenderedCallback();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n this._checkInvalidateOnUpdate();\n this._invokeOnScrollCallback();\n this._invokeOnCellsRenderedCallback();\n if (this.props.scrollTop !== prevProps.scrollTop) {\n this._debounceResetIsScrolling();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._debounceResetIsScrollingId) {\n cancelAnimationTimeout(this._debounceResetIsScrollingId);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n autoHeight = _this$props.autoHeight,\n cellCount = _this$props.cellCount,\n cellMeasurerCache = _this$props.cellMeasurerCache,\n cellRenderer = _this$props.cellRenderer,\n className = _this$props.className,\n height = _this$props.height,\n id = _this$props.id,\n keyMapper = _this$props.keyMapper,\n overscanByPixels = _this$props.overscanByPixels,\n role = _this$props.role,\n style = _this$props.style,\n tabIndex = _this$props.tabIndex,\n width = _this$props.width,\n rowDirection = _this$props.rowDirection;\n var _this$state = this.state,\n isScrolling = _this$state.isScrolling,\n scrollTop = _this$state.scrollTop;\n var children = [];\n var estimateTotalHeight = this._getEstimatedTotalHeight();\n var shortestColumnSize = this._positionCache.shortestColumnSize;\n var measuredCellCount = this._positionCache.count;\n var startIndex = 0;\n var stopIndex;\n this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {\n var _style;\n if (typeof stopIndex === 'undefined') {\n startIndex = index;\n stopIndex = index;\n } else {\n startIndex = Math.min(startIndex, index);\n stopIndex = Math.max(stopIndex, index);\n }\n children.push(cellRenderer({\n index: index,\n isScrolling: isScrolling,\n key: keyMapper(index),\n parent: _this2,\n style: (_style = {\n height: cellMeasurerCache.getHeight(index)\n }, _defineProperty(_style, rowDirection === 'ltr' ? 'left' : 'right', left), _defineProperty(_style, \"position\", 'absolute'), _defineProperty(_style, \"top\", top), _defineProperty(_style, \"width\", cellMeasurerCache.getWidth(index)), _style)\n }));\n }); // We need to measure additional cells for this layout\n\n if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {\n var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));\n for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {\n stopIndex = _index;\n children.push(cellRenderer({\n index: _index,\n isScrolling: isScrolling,\n key: keyMapper(_index),\n parent: this,\n style: {\n width: cellMeasurerCache.getWidth(_index)\n }\n }));\n }\n }\n this._startIndex = startIndex;\n this._stopIndex = stopIndex;\n return React.createElement(\"div\", {\n ref: this._setScrollingContainerRef,\n \"aria-label\": this.props['aria-label'],\n className: clsx('ReactVirtualized__Masonry', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _objectSpread$3({\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n overflowX: 'hidden',\n overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',\n position: 'relative',\n width: width,\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform'\n }, style),\n tabIndex: tabIndex\n }, React.createElement(\"div\", {\n className: \"ReactVirtualized__Masonry__innerScrollContainer\",\n style: {\n width: '100%',\n height: estimateTotalHeight,\n maxWidth: '100%',\n maxHeight: estimateTotalHeight,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n position: 'relative'\n }\n }, children));\n }\n }, {\n key: \"_checkInvalidateOnUpdate\",\n value: function _checkInvalidateOnUpdate() {\n if (typeof this._invalidateOnUpdateStartIndex === 'number') {\n var startIndex = this._invalidateOnUpdateStartIndex;\n var stopIndex = this._invalidateOnUpdateStopIndex;\n this._invalidateOnUpdateStartIndex = null;\n this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells\n\n this._populatePositionCache(startIndex, stopIndex);\n this.forceUpdate();\n }\n }\n }, {\n key: \"_debounceResetIsScrolling\",\n value: function _debounceResetIsScrolling() {\n var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n if (this._debounceResetIsScrollingId) {\n cancelAnimationTimeout(this._debounceResetIsScrollingId);\n }\n this._debounceResetIsScrollingId = requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);\n }\n }, {\n key: \"_getEstimatedTotalHeight\",\n value: function _getEstimatedTotalHeight() {\n var _this$props2 = this.props,\n cellCount = _this$props2.cellCount,\n cellMeasurerCache = _this$props2.cellMeasurerCache,\n width = _this$props2.width;\n var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));\n return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);\n }\n }, {\n key: \"_invokeOnScrollCallback\",\n value: function _invokeOnScrollCallback() {\n var _this$props3 = this.props,\n height = _this$props3.height,\n onScroll = _this$props3.onScroll;\n var scrollTop = this.state.scrollTop;\n if (this._onScrollMemoized !== scrollTop) {\n onScroll({\n clientHeight: height,\n scrollHeight: this._getEstimatedTotalHeight(),\n scrollTop: scrollTop\n });\n this._onScrollMemoized = scrollTop;\n }\n }\n }, {\n key: \"_invokeOnCellsRenderedCallback\",\n value: function _invokeOnCellsRenderedCallback() {\n if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {\n var onCellsRendered = this.props.onCellsRendered;\n onCellsRendered({\n startIndex: this._startIndex,\n stopIndex: this._stopIndex\n });\n this._startIndexMemoized = this._startIndex;\n this._stopIndexMemoized = this._stopIndex;\n }\n }\n }, {\n key: \"_populatePositionCache\",\n value: function _populatePositionCache(startIndex, stopIndex) {\n var _this$props4 = this.props,\n cellMeasurerCache = _this$props4.cellMeasurerCache,\n cellPositioner = _this$props4.cellPositioner;\n for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {\n var _cellPositioner = cellPositioner(_index2),\n left = _cellPositioner.left,\n top = _cellPositioner.top;\n this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {\n return {\n isScrolling: true,\n scrollTop: nextProps.scrollTop\n };\n }\n return null;\n }\n }]);\n return Masonry;\n}(React.PureComponent), _defineProperty(_class$1, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"autoHeight\": propTypesExports.bool.isRequired,\n \"cellCount\": propTypesExports.number.isRequired,\n \"cellMeasurerCache\": function cellMeasurerCache() {\n return (typeof CellMeasurerCache === \"function\" ? propTypesExports.instanceOf(CellMeasurerCache).isRequired : propTypesExports.any.isRequired).apply(this, arguments);\n },\n \"cellPositioner\": function cellPositioner() {\n return (typeof Positioner === \"function\" ? propTypesExports.instanceOf(Positioner).isRequired : propTypesExports.any.isRequired).apply(this, arguments);\n },\n \"cellRenderer\": function cellRenderer() {\n return (typeof CellRenderer === \"function\" ? propTypesExports.instanceOf(CellRenderer).isRequired : propTypesExports.any.isRequired).apply(this, arguments);\n },\n \"className\": propTypesExports.string,\n \"height\": propTypesExports.number.isRequired,\n \"id\": propTypesExports.string,\n \"keyMapper\": function keyMapper() {\n return (typeof KeyMapper === \"function\" ? propTypesExports.instanceOf(KeyMapper).isRequired : propTypesExports.any.isRequired).apply(this, arguments);\n },\n \"onCellsRendered\": function onCellsRendered() {\n return (typeof OnCellsRenderedCallback === \"function\" ? propTypesExports.instanceOf(OnCellsRenderedCallback) : propTypesExports.any).apply(this, arguments);\n },\n \"onScroll\": function onScroll() {\n return (typeof OnScrollCallback === \"function\" ? propTypesExports.instanceOf(OnScrollCallback) : propTypesExports.any).apply(this, arguments);\n },\n \"overscanByPixels\": propTypesExports.number.isRequired,\n \"role\": propTypesExports.string.isRequired,\n \"scrollingResetTimeInterval\": propTypesExports.number.isRequired,\n \"style\": function style(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n },\n \"tabIndex\": propTypesExports.number.isRequired,\n \"width\": propTypesExports.number.isRequired,\n \"rowDirection\": propTypesExports.string.isRequired,\n \"scrollTop\": propTypesExports.number\n}), _temp$1);\n_defineProperty(Masonry, \"defaultProps\", {\n autoHeight: false,\n keyMapper: identity,\n onCellsRendered: noop,\n onScroll: noop,\n overscanByPixels: 20,\n role: 'grid',\n scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n style: emptyObject,\n tabIndex: 0,\n rowDirection: 'ltr'\n});\nfunction identity(value) {\n return value;\n}\nfunction noop() {}\nprocess.env.NODE_ENV === 'production' ? null : {\n \"defaultHeight\": propTypesExports.number.isRequired,\n \"defaultWidth\": propTypesExports.number.isRequired,\n \"getHeight\": propTypesExports.func.isRequired,\n \"getWidth\": propTypesExports.func.isRequired\n};\npolyfill_1(Masonry);\nprocess.env.NODE_ENV === 'production' ? null : propTypesExports.func;\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCacheDecorator = /*#__PURE__*/\nfunction () {\n function CellMeasurerCacheDecorator() {\n var _this = this;\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, CellMeasurerCacheDecorator);\n _defineProperty(this, \"_cellMeasurerCache\", void 0);\n _defineProperty(this, \"_columnIndexOffset\", void 0);\n _defineProperty(this, \"_rowIndexOffset\", void 0);\n _defineProperty(this, \"columnWidth\", function (_ref) {\n var index = _ref.index;\n _this._cellMeasurerCache.columnWidth({\n index: index + _this._columnIndexOffset\n });\n });\n _defineProperty(this, \"rowHeight\", function (_ref2) {\n var index = _ref2.index;\n _this._cellMeasurerCache.rowHeight({\n index: index + _this._rowIndexOffset\n });\n });\n var cellMeasurerCache = params.cellMeasurerCache,\n _params$columnIndexOf = params.columnIndexOffset,\n columnIndexOffset = _params$columnIndexOf === void 0 ? 0 : _params$columnIndexOf,\n _params$rowIndexOffse = params.rowIndexOffset,\n rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;\n this._cellMeasurerCache = cellMeasurerCache;\n this._columnIndexOffset = columnIndexOffset;\n this._rowIndexOffset = rowIndexOffset;\n }\n _createClass(CellMeasurerCacheDecorator, [{\n key: \"clear\",\n value: function clear(rowIndex, columnIndex) {\n this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"clearAll\",\n value: function clearAll() {\n this._cellMeasurerCache.clearAll();\n }\n }, {\n key: \"hasFixedHeight\",\n value: function hasFixedHeight() {\n return this._cellMeasurerCache.hasFixedHeight();\n }\n }, {\n key: \"hasFixedWidth\",\n value: function hasFixedWidth() {\n return this._cellMeasurerCache.hasFixedWidth();\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"has\",\n value: function has(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"set\",\n value: function set(rowIndex, columnIndex, width, height) {\n this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);\n }\n }, {\n key: \"defaultHeight\",\n get: function get() {\n return this._cellMeasurerCache.defaultHeight;\n }\n }, {\n key: \"defaultWidth\",\n get: function get() {\n return this._cellMeasurerCache.defaultWidth;\n }\n }]);\n return CellMeasurerCacheDecorator;\n}();\nfunction ownKeys$2(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$2(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$2(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nvar SCROLLBAR_SIZE_BUFFER = 20;\n/**\n * Renders 1, 2, or 4 Grids depending on configuration.\n * A main (body) Grid will always be rendered.\n * Optionally, 1-2 Grids for sticky header rows will also be rendered.\n * If no sticky columns, only 1 sticky header Grid will be rendered.\n * If sticky columns, 2 sticky header Grids will be rendered.\n */\n\nvar MultiGrid = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MultiGrid, _React$PureComponent);\n function MultiGrid(props, context) {\n var _this;\n _classCallCheck(this, MultiGrid);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGrid).call(this, props, context));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n scrollLeft: 0,\n scrollTop: 0,\n scrollbarSize: 0,\n showHorizontalScrollbar: false,\n showVerticalScrollbar: false\n });\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n _defineProperty(_assertThisInitialized(_this), \"_bottomLeftGridRef\", function (ref) {\n _this._bottomLeftGrid = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_bottomRightGridRef\", function (ref) {\n _this._bottomRightGrid = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomLeftGrid\", function (_ref) {\n var rowIndex = _ref.rowIndex,\n rest = _objectWithoutProperties(_ref, [\"rowIndex\"]);\n var _this$props = _this.props,\n cellRenderer = _this$props.cellRenderer,\n fixedRowCount = _this$props.fixedRowCount,\n rowCount = _this$props.rowCount;\n if (rowIndex === rowCount - fixedRowCount) {\n return React.createElement(\"div\", {\n key: rest.key,\n style: _objectSpread$2({}, rest.style, {\n height: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_objectSpread$2({}, rest, {\n parent: _assertThisInitialized(_this),\n rowIndex: rowIndex + fixedRowCount\n }));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomRightGrid\", function (_ref2) {\n var columnIndex = _ref2.columnIndex,\n rowIndex = _ref2.rowIndex,\n rest = _objectWithoutProperties(_ref2, [\"columnIndex\", \"rowIndex\"]);\n var _this$props2 = _this.props,\n cellRenderer = _this$props2.cellRenderer,\n fixedColumnCount = _this$props2.fixedColumnCount,\n fixedRowCount = _this$props2.fixedRowCount;\n return cellRenderer(_objectSpread$2({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _assertThisInitialized(_this),\n rowIndex: rowIndex + fixedRowCount\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererTopRightGrid\", function (_ref3) {\n var columnIndex = _ref3.columnIndex,\n rest = _objectWithoutProperties(_ref3, [\"columnIndex\"]);\n var _this$props3 = _this.props,\n cellRenderer = _this$props3.cellRenderer,\n columnCount = _this$props3.columnCount,\n fixedColumnCount = _this$props3.fixedColumnCount;\n if (columnIndex === columnCount - fixedColumnCount) {\n return React.createElement(\"div\", {\n key: rest.key,\n style: _objectSpread$2({}, rest.style, {\n width: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_objectSpread$2({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _assertThisInitialized(_this)\n }));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_columnWidthRightGrid\", function (_ref4) {\n var index = _ref4.index;\n var _this$props4 = _this.props,\n columnCount = _this$props4.columnCount,\n fixedColumnCount = _this$props4.fixedColumnCount,\n columnWidth = _this$props4.columnWidth;\n var _this$state = _this.state,\n scrollbarSize = _this$state.scrollbarSize,\n showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // An extra cell is added to the count\n // This gives the smaller Grid extra room for offset,\n // In case the main (bottom right) Grid has a scrollbar\n // If no scrollbar, the extra space is overflow:hidden anyway\n\n if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {\n return scrollbarSize;\n }\n return typeof columnWidth === 'function' ? columnWidth({\n index: index + fixedColumnCount\n }) : columnWidth;\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft,\n scrollTop = scrollInfo.scrollTop;\n _this.setState({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n var onScroll = _this.props.onScroll;\n if (onScroll) {\n onScroll(scrollInfo);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScrollbarPresenceChange\", function (_ref5) {\n var horizontal = _ref5.horizontal,\n size = _ref5.size,\n vertical = _ref5.vertical;\n var _this$state2 = _this.state,\n showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,\n showVerticalScrollbar = _this$state2.showVerticalScrollbar;\n if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {\n _this.setState({\n scrollbarSize: size,\n showHorizontalScrollbar: horizontal,\n showVerticalScrollbar: vertical\n });\n var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;\n if (typeof onScrollbarPresenceChange === 'function') {\n onScrollbarPresenceChange({\n horizontal: horizontal,\n size: size,\n vertical: vertical\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScrollLeft\", function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft;\n _this._onScroll({\n scrollLeft: scrollLeft,\n scrollTop: _this.state.scrollTop\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_onScrollTop\", function (scrollInfo) {\n var scrollTop = scrollInfo.scrollTop;\n _this._onScroll({\n scrollTop: scrollTop,\n scrollLeft: _this.state.scrollLeft\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"_rowHeightBottomGrid\", function (_ref6) {\n var index = _ref6.index;\n var _this$props5 = _this.props,\n fixedRowCount = _this$props5.fixedRowCount,\n rowCount = _this$props5.rowCount,\n rowHeight = _this$props5.rowHeight;\n var _this$state3 = _this.state,\n scrollbarSize = _this$state3.scrollbarSize,\n showVerticalScrollbar = _this$state3.showVerticalScrollbar; // An extra cell is added to the count\n // This gives the smaller Grid extra room for offset,\n // In case the main (bottom right) Grid has a scrollbar\n // If no scrollbar, the extra space is overflow:hidden anyway\n\n if (showVerticalScrollbar && index === rowCount - fixedRowCount) {\n return scrollbarSize;\n }\n return typeof rowHeight === 'function' ? rowHeight({\n index: index + fixedRowCount\n }) : rowHeight;\n });\n _defineProperty(_assertThisInitialized(_this), \"_topLeftGridRef\", function (ref) {\n _this._topLeftGrid = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"_topRightGridRef\", function (ref) {\n _this._topRightGrid = ref;\n });\n var deferredMeasurementCache = props.deferredMeasurementCache,\n _fixedColumnCount = props.fixedColumnCount,\n _fixedRowCount = props.fixedRowCount;\n _this._maybeCalculateCachedStyles(true);\n if (deferredMeasurementCache) {\n _this._deferredMeasurementCacheBottomLeftGrid = _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: 0,\n rowIndexOffset: _fixedRowCount\n }) : deferredMeasurementCache;\n _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: _fixedColumnCount,\n rowIndexOffset: _fixedRowCount\n }) : deferredMeasurementCache;\n _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: _fixedColumnCount,\n rowIndexOffset: 0\n }) : deferredMeasurementCache;\n }\n return _this;\n }\n _createClass(MultiGrid, [{\n key: \"forceUpdateGrids\",\n value: function forceUpdateGrids() {\n this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();\n this._bottomRightGrid && this._bottomRightGrid.forceUpdate();\n this._topLeftGrid && this._topLeftGrid.forceUpdate();\n this._topRightGrid && this._topRightGrid.forceUpdate();\n }\n /** See Grid#invalidateCellSizeAfterRender */\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref7$columnIndex = _ref7.columnIndex,\n columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,\n _ref7$rowIndex = _ref7.rowIndex,\n rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$rowIndex;\n this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n }\n /** See Grid#measureAllCells */\n }, {\n key: \"measureAllCells\",\n value: function measureAllCells() {\n this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();\n this._bottomRightGrid && this._bottomRightGrid.measureAllCells();\n this._topLeftGrid && this._topLeftGrid.measureAllCells();\n this._topRightGrid && this._topRightGrid.measureAllCells();\n }\n /** See Grid#recomputeGridSize */\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref8$columnIndex = _ref8.columnIndex,\n columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,\n _ref8$rowIndex = _ref8.rowIndex,\n rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;\n var _this$props6 = this.props,\n fixedColumnCount = _this$props6.fixedColumnCount,\n fixedRowCount = _this$props6.fixedRowCount;\n var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);\n var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);\n this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: adjustedRowIndex\n });\n this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({\n columnIndex: adjustedColumnIndex,\n rowIndex: adjustedRowIndex\n });\n this._topLeftGrid && this._topLeftGrid.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this._topRightGrid && this._topRightGrid.recomputeGridSize({\n columnIndex: adjustedColumnIndex,\n rowIndex: rowIndex\n });\n this._leftGridWidth = null;\n this._topGridHeight = null;\n this._maybeCalculateCachedStyles(true);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n scrollLeft = _this$props7.scrollLeft,\n scrollTop = _this$props7.scrollTop;\n if (scrollLeft > 0 || scrollTop > 0) {\n var newState = {};\n if (scrollLeft > 0) {\n newState.scrollLeft = scrollLeft;\n }\n if (scrollTop > 0) {\n newState.scrollTop = scrollTop;\n }\n this.setState(newState);\n }\n this._handleInvalidatedGridSize();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._handleInvalidatedGridSize();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props8 = this.props,\n onScroll = _this$props8.onScroll,\n onSectionRendered = _this$props8.onSectionRendered;\n _this$props8.onScrollbarPresenceChange;\n _this$props8.scrollLeft;\n var scrollToColumn = _this$props8.scrollToColumn;\n _this$props8.scrollTop;\n var scrollToRow = _this$props8.scrollToRow,\n rest = _objectWithoutProperties(_this$props8, [\"onScroll\", \"onSectionRendered\", \"onScrollbarPresenceChange\", \"scrollLeft\", \"scrollToColumn\", \"scrollTop\", \"scrollToRow\"]);\n this._prepareForRender(); // Don't render any of our Grids if there are no cells.\n // This mirrors what Grid does,\n // And prevents us from recording inaccurage measurements when used with CellMeasurer.\n\n if (this.props.width === 0 || this.props.height === 0) {\n return null;\n } // scrollTop and scrollLeft props are explicitly filtered out and ignored\n\n var _this$state4 = this.state,\n scrollLeft = _this$state4.scrollLeft,\n scrollTop = _this$state4.scrollTop;\n return React.createElement(\"div\", {\n style: this._containerOuterStyle\n }, React.createElement(\"div\", {\n style: this._containerTopStyle\n }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread$2({}, rest, {\n onScroll: onScroll,\n scrollLeft: scrollLeft\n }))), React.createElement(\"div\", {\n style: this._containerBottomStyle\n }, this._renderBottomLeftGrid(_objectSpread$2({}, rest, {\n onScroll: onScroll,\n scrollTop: scrollTop\n })), this._renderBottomRightGrid(_objectSpread$2({}, rest, {\n onScroll: onScroll,\n onSectionRendered: onSectionRendered,\n scrollLeft: scrollLeft,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow,\n scrollTop: scrollTop\n }))));\n }\n }, {\n key: \"_getBottomGridHeight\",\n value: function _getBottomGridHeight(props) {\n var height = props.height;\n var topGridHeight = this._getTopGridHeight(props);\n return height - topGridHeight;\n }\n }, {\n key: \"_getLeftGridWidth\",\n value: function _getLeftGridWidth(props) {\n var fixedColumnCount = props.fixedColumnCount,\n columnWidth = props.columnWidth;\n if (this._leftGridWidth == null) {\n if (typeof columnWidth === 'function') {\n var leftGridWidth = 0;\n for (var index = 0; index < fixedColumnCount; index++) {\n leftGridWidth += columnWidth({\n index: index\n });\n }\n this._leftGridWidth = leftGridWidth;\n } else {\n this._leftGridWidth = columnWidth * fixedColumnCount;\n }\n }\n return this._leftGridWidth;\n }\n }, {\n key: \"_getRightGridWidth\",\n value: function _getRightGridWidth(props) {\n var width = props.width;\n var leftGridWidth = this._getLeftGridWidth(props);\n return width - leftGridWidth;\n }\n }, {\n key: \"_getTopGridHeight\",\n value: function _getTopGridHeight(props) {\n var fixedRowCount = props.fixedRowCount,\n rowHeight = props.rowHeight;\n if (this._topGridHeight == null) {\n if (typeof rowHeight === 'function') {\n var topGridHeight = 0;\n for (var index = 0; index < fixedRowCount; index++) {\n topGridHeight += rowHeight({\n index: index\n });\n }\n this._topGridHeight = topGridHeight;\n } else {\n this._topGridHeight = rowHeight * fixedRowCount;\n }\n }\n return this._topGridHeight;\n }\n }, {\n key: \"_handleInvalidatedGridSize\",\n value: function _handleInvalidatedGridSize() {\n if (typeof this._deferredInvalidateColumnIndex === 'number') {\n var columnIndex = this._deferredInvalidateColumnIndex;\n var rowIndex = this._deferredInvalidateRowIndex;\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this.forceUpdate();\n }\n }\n /**\n * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.\n * This method recalculates styles only when specific props change.\n */\n }, {\n key: \"_maybeCalculateCachedStyles\",\n value: function _maybeCalculateCachedStyles(resetAll) {\n var _this$props9 = this.props,\n columnWidth = _this$props9.columnWidth,\n enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,\n enableFixedRowScroll = _this$props9.enableFixedRowScroll,\n height = _this$props9.height,\n fixedColumnCount = _this$props9.fixedColumnCount,\n fixedRowCount = _this$props9.fixedRowCount,\n rowHeight = _this$props9.rowHeight,\n style = _this$props9.style,\n styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,\n styleBottomRightGrid = _this$props9.styleBottomRightGrid,\n styleTopLeftGrid = _this$props9.styleTopLeftGrid,\n styleTopRightGrid = _this$props9.styleTopRightGrid,\n width = _this$props9.width;\n var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;\n var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;\n var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;\n if (resetAll || sizeChange || style !== this._lastRenderedStyle) {\n this._containerOuterStyle = _objectSpread$2({\n height: height,\n overflow: 'visible',\n // Let :focus outline show through\n width: width\n }, style);\n }\n if (resetAll || sizeChange || topSizeChange) {\n this._containerTopStyle = {\n height: this._getTopGridHeight(this.props),\n position: 'relative',\n width: width\n };\n this._containerBottomStyle = {\n height: height - this._getTopGridHeight(this.props),\n overflow: 'visible',\n // Let :focus outline show through\n position: 'relative',\n width: width\n };\n }\n if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {\n this._bottomLeftGridStyle = _objectSpread$2({\n left: 0,\n overflowX: 'hidden',\n overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',\n position: 'absolute'\n }, styleBottomLeftGrid);\n }\n if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {\n this._bottomRightGridStyle = _objectSpread$2({\n left: this._getLeftGridWidth(this.props),\n position: 'absolute'\n }, styleBottomRightGrid);\n }\n if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {\n this._topLeftGridStyle = _objectSpread$2({\n left: 0,\n overflowX: 'hidden',\n overflowY: 'hidden',\n position: 'absolute',\n top: 0\n }, styleTopLeftGrid);\n }\n if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {\n this._topRightGridStyle = _objectSpread$2({\n left: this._getLeftGridWidth(this.props),\n overflowX: enableFixedRowScroll ? 'auto' : 'hidden',\n overflowY: 'hidden',\n position: 'absolute',\n top: 0\n }, styleTopRightGrid);\n }\n this._lastRenderedColumnWidth = columnWidth;\n this._lastRenderedFixedColumnCount = fixedColumnCount;\n this._lastRenderedFixedRowCount = fixedRowCount;\n this._lastRenderedHeight = height;\n this._lastRenderedRowHeight = rowHeight;\n this._lastRenderedStyle = style;\n this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;\n this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;\n this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;\n this._lastRenderedStyleTopRightGrid = styleTopRightGrid;\n this._lastRenderedWidth = width;\n }\n }, {\n key: \"_prepareForRender\",\n value: function _prepareForRender() {\n if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {\n this._leftGridWidth = null;\n }\n if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {\n this._topGridHeight = null;\n }\n this._maybeCalculateCachedStyles();\n this._lastRenderedColumnWidth = this.props.columnWidth;\n this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;\n this._lastRenderedFixedRowCount = this.props.fixedRowCount;\n this._lastRenderedRowHeight = this.props.rowHeight;\n }\n }, {\n key: \"_renderBottomLeftGrid\",\n value: function _renderBottomLeftGrid(props) {\n var enableFixedColumnScroll = props.enableFixedColumnScroll,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n rowCount = props.rowCount,\n hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;\n var showVerticalScrollbar = this.state.showVerticalScrollbar;\n if (!fixedColumnCount) {\n return null;\n }\n var additionalRowCount = showVerticalScrollbar ? 1 : 0,\n height = this._getBottomGridHeight(props),\n width = this._getLeftGridWidth(props),\n scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,\n gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;\n var bottomLeftGrid = React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererBottomLeftGrid,\n className: this.props.classNameBottomLeftGrid,\n columnCount: fixedColumnCount,\n deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,\n height: height,\n onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,\n ref: this._bottomLeftGridRef,\n rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,\n rowHeight: this._rowHeightBottomGrid,\n style: this._bottomLeftGridStyle,\n tabIndex: null,\n width: gridWidth\n }));\n if (hideBottomLeftGridScrollbar) {\n return React.createElement(\"div\", {\n className: \"BottomLeftGrid_ScrollWrapper\",\n style: _objectSpread$2({}, this._bottomLeftGridStyle, {\n height: height,\n width: width,\n overflowY: 'hidden'\n })\n }, bottomLeftGrid);\n }\n return bottomLeftGrid;\n }\n }, {\n key: \"_renderBottomRightGrid\",\n value: function _renderBottomRightGrid(props) {\n var columnCount = props.columnCount,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n rowCount = props.rowCount,\n scrollToColumn = props.scrollToColumn,\n scrollToRow = props.scrollToRow;\n return React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererBottomRightGrid,\n className: this.props.classNameBottomRightGrid,\n columnCount: Math.max(0, columnCount - fixedColumnCount),\n columnWidth: this._columnWidthRightGrid,\n deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,\n height: this._getBottomGridHeight(props),\n onScroll: this._onScroll,\n onScrollbarPresenceChange: this._onScrollbarPresenceChange,\n ref: this._bottomRightGridRef,\n rowCount: Math.max(0, rowCount - fixedRowCount),\n rowHeight: this._rowHeightBottomGrid,\n scrollToColumn: scrollToColumn - fixedColumnCount,\n scrollToRow: scrollToRow - fixedRowCount,\n style: this._bottomRightGridStyle,\n width: this._getRightGridWidth(props)\n }));\n }\n }, {\n key: \"_renderTopLeftGrid\",\n value: function _renderTopLeftGrid(props) {\n var fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount;\n if (!fixedColumnCount || !fixedRowCount) {\n return null;\n }\n return React.createElement(Grid, _extends({}, props, {\n className: this.props.classNameTopLeftGrid,\n columnCount: fixedColumnCount,\n height: this._getTopGridHeight(props),\n ref: this._topLeftGridRef,\n rowCount: fixedRowCount,\n style: this._topLeftGridStyle,\n tabIndex: null,\n width: this._getLeftGridWidth(props)\n }));\n }\n }, {\n key: \"_renderTopRightGrid\",\n value: function _renderTopRightGrid(props) {\n var columnCount = props.columnCount,\n enableFixedRowScroll = props.enableFixedRowScroll,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n scrollLeft = props.scrollLeft,\n hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;\n var _this$state5 = this.state,\n showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,\n scrollbarSize = _this$state5.scrollbarSize;\n if (!fixedRowCount) {\n return null;\n }\n var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,\n height = this._getTopGridHeight(props),\n width = this._getRightGridWidth(props),\n additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;\n var gridHeight = height,\n style = this._topRightGridStyle;\n if (hideTopRightGridScrollbar) {\n gridHeight = height + additionalHeight;\n style = _objectSpread$2({}, this._topRightGridStyle, {\n left: 0\n });\n }\n var topRightGrid = React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererTopRightGrid,\n className: this.props.classNameTopRightGrid,\n columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,\n columnWidth: this._columnWidthRightGrid,\n deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,\n height: gridHeight,\n onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,\n ref: this._topRightGridRef,\n rowCount: fixedRowCount,\n scrollLeft: scrollLeft,\n style: style,\n tabIndex: null,\n width: width\n }));\n if (hideTopRightGridScrollbar) {\n return React.createElement(\"div\", {\n className: \"TopRightGrid_ScrollWrapper\",\n style: _objectSpread$2({}, this._topRightGridStyle, {\n height: height,\n width: width,\n overflowX: 'hidden'\n })\n }, topRightGrid);\n }\n return topRightGrid;\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop\n };\n }\n return null;\n }\n }]);\n return MultiGrid;\n}(React.PureComponent);\n_defineProperty(MultiGrid, \"defaultProps\", {\n classNameBottomLeftGrid: '',\n classNameBottomRightGrid: '',\n classNameTopLeftGrid: '',\n classNameTopRightGrid: '',\n enableFixedColumnScroll: false,\n enableFixedRowScroll: false,\n fixedColumnCount: 0,\n fixedRowCount: 0,\n scrollToColumn: -1,\n scrollToRow: -1,\n style: {},\n styleBottomLeftGrid: {},\n styleBottomRightGrid: {},\n styleTopLeftGrid: {},\n styleTopRightGrid: {},\n hideTopRightGridScrollbar: false,\n hideBottomLeftGridScrollbar: false\n});\nMultiGrid.propTypes = process.env.NODE_ENV !== \"production\" ? {\n classNameBottomLeftGrid: propTypesExports.string.isRequired,\n classNameBottomRightGrid: propTypesExports.string.isRequired,\n classNameTopLeftGrid: propTypesExports.string.isRequired,\n classNameTopRightGrid: propTypesExports.string.isRequired,\n enableFixedColumnScroll: propTypesExports.bool.isRequired,\n enableFixedRowScroll: propTypesExports.bool.isRequired,\n fixedColumnCount: propTypesExports.number.isRequired,\n fixedRowCount: propTypesExports.number.isRequired,\n onScrollbarPresenceChange: propTypesExports.func,\n style: propTypesExports.object.isRequired,\n styleBottomLeftGrid: propTypesExports.object.isRequired,\n styleBottomRightGrid: propTypesExports.object.isRequired,\n styleTopLeftGrid: propTypesExports.object.isRequired,\n styleTopRightGrid: propTypesExports.object.isRequired,\n hideTopRightGridScrollbar: propTypesExports.bool,\n hideBottomLeftGridScrollbar: propTypesExports.bool\n} : {};\npolyfill_1(MultiGrid);\nprocess.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering 2 or more virtualized components.\n * This function should implement the following signature:\n * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n */\n children: propTypesExports.func.isRequired\n} : {};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"columnData\": propTypesExports.any,\n \"dataKey\": propTypesExports.string.isRequired,\n \"rowData\": function rowData(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n }\n};\nprocess.env.NODE_ENV === 'production' ? null : {\n \"cellData\": propTypesExports.any,\n \"columnData\": propTypesExports.any,\n \"dataKey\": propTypesExports.string.isRequired,\n \"rowData\": function rowData(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n },\n \"rowIndex\": propTypesExports.number.isRequired\n};\nvar bpfrpt_proptype_HeaderRowRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"className\": propTypesExports.string.isRequired,\n \"columns\": propTypesExports.arrayOf(function (props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n }).isRequired,\n \"style\": function style(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n }\n};\nvar bpfrpt_proptype_HeaderRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"columnData\": propTypesExports.any,\n \"dataKey\": propTypesExports.string.isRequired,\n \"disableSort\": propTypesExports.bool,\n \"label\": propTypesExports.any,\n \"sortBy\": propTypesExports.string,\n \"sortDirection\": propTypesExports.string\n};\nvar bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"className\": propTypesExports.string.isRequired,\n \"columns\": propTypesExports.arrayOf(function (props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n }).isRequired,\n \"index\": propTypesExports.number.isRequired,\n \"isScrolling\": propTypesExports.bool.isRequired,\n \"onRowClick\": propTypesExports.func,\n \"onRowDoubleClick\": propTypesExports.func,\n \"onRowMouseOver\": propTypesExports.func,\n \"onRowMouseOut\": propTypesExports.func,\n \"rowData\": function rowData(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n },\n \"style\": function style(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n },\n \"key\": propTypesExports.string.isRequired\n};\n\n/**\n * Default accessor for returning a cell value for a given attribute.\n * This function expects to operate on either a vanilla Object or an Immutable Map.\n * You should override the column's cellDataGetter if your data is some other type of object.\n */\nfunction defaultCellDataGetter(_ref) {\n var dataKey = _ref.dataKey,\n rowData = _ref.rowData;\n if (typeof rowData.get === 'function') {\n return rowData.get(dataKey);\n } else {\n return rowData[dataKey];\n }\n}\n\n/**\n * Default cell renderer that displays an attribute as a simple string\n * You should override the column's cellRenderer if your data is some other type of object.\n */\nfunction defaultCellRenderer(_ref) {\n var cellData = _ref.cellData;\n if (cellData == null) {\n return '';\n } else {\n return String(cellData);\n }\n}\nfunction defaultHeaderRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n style = _ref.style;\n return React.createElement(\"div\", {\n className: className,\n role: \"row\",\n style: style\n }, columns);\n}\ndefaultHeaderRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRowRendererParams === propTypesExports.any ? {} : bpfrpt_proptype_HeaderRowRendererParams;\nvar SortDirection = {\n /**\n * Sort items in ascending order.\n * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n */\n ASC: 'ASC',\n /**\n * Sort items in descending order.\n * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n */\n DESC: 'DESC'\n};\n\n/**\n * Displayed beside a header to indicate that a Table is currently sorted by this column.\n */\n\nfunction SortIndicator(_ref) {\n var sortDirection = _ref.sortDirection;\n var classNames = clsx('ReactVirtualized__Table__sortableHeaderIcon', {\n 'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n 'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n });\n return React.createElement(\"svg\", {\n className: classNames,\n width: 18,\n height: 18,\n viewBox: \"0 0 24 24\"\n }, sortDirection === SortDirection.ASC ? React.createElement(\"path\", {\n d: \"M7 14l5-5 5 5z\"\n }) : React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n }), React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }));\n}\nSortIndicator.propTypes = process.env.NODE_ENV !== \"production\" ? {\n sortDirection: propTypesExports.oneOf([SortDirection.ASC, SortDirection.DESC])\n} : {};\n\n/**\n * Default table header renderer.\n */\nfunction defaultHeaderRenderer(_ref) {\n var dataKey = _ref.dataKey,\n label = _ref.label,\n sortBy = _ref.sortBy,\n sortDirection = _ref.sortDirection;\n var showSortIndicator = sortBy === dataKey;\n var children = [React.createElement(\"span\", {\n className: \"ReactVirtualized__Table__headerTruncatedText\",\n key: \"label\",\n title: typeof label === 'string' ? label : null\n }, label)];\n if (showSortIndicator) {\n children.push(React.createElement(SortIndicator, {\n key: \"SortIndicator\",\n sortDirection: sortDirection\n }));\n }\n return children;\n}\ndefaultHeaderRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRendererParams === propTypesExports.any ? {} : bpfrpt_proptype_HeaderRendererParams;\n\n/**\n * Default row renderer for Table.\n */\nfunction defaultRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n index = _ref.index,\n key = _ref.key,\n onRowClick = _ref.onRowClick,\n onRowDoubleClick = _ref.onRowDoubleClick,\n onRowMouseOut = _ref.onRowMouseOut,\n onRowMouseOver = _ref.onRowMouseOver,\n onRowRightClick = _ref.onRowRightClick,\n rowData = _ref.rowData,\n style = _ref.style;\n var a11yProps = {\n 'aria-rowindex': index + 1\n };\n if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {\n a11yProps['aria-label'] = 'row';\n a11yProps.tabIndex = 0;\n if (onRowClick) {\n a11yProps.onClick = function (event) {\n return onRowClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n if (onRowDoubleClick) {\n a11yProps.onDoubleClick = function (event) {\n return onRowDoubleClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n if (onRowMouseOut) {\n a11yProps.onMouseOut = function (event) {\n return onRowMouseOut({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n if (onRowMouseOver) {\n a11yProps.onMouseOver = function (event) {\n return onRowMouseOver({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n if (onRowRightClick) {\n a11yProps.onContextMenu = function (event) {\n return onRowRightClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n }\n return React.createElement(\"div\", _extends({}, a11yProps, {\n className: className,\n key: key,\n role: \"row\",\n style: style\n }), columns);\n}\ndefaultRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_RowRendererParams === propTypesExports.any ? {} : bpfrpt_proptype_RowRendererParams;\n\n/**\n * Describes the header and cell contents of a table column.\n */\n\nvar Column = /*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Column, _React$Component);\n function Column() {\n _classCallCheck(this, Column);\n return _possibleConstructorReturn(this, _getPrototypeOf(Column).apply(this, arguments));\n }\n return Column;\n}(React.Component);\n_defineProperty(Column, \"defaultProps\", {\n cellDataGetter: defaultCellDataGetter,\n cellRenderer: defaultCellRenderer,\n defaultSortDirection: SortDirection.ASC,\n flexGrow: 0,\n flexShrink: 1,\n headerRenderer: defaultHeaderRenderer,\n style: {}\n});\nColumn.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Optional aria-label value to set on the column header */\n 'aria-label': propTypesExports.string,\n /**\n * Callback responsible for returning a cell's data, given its :dataKey\n * ({ columnData: any, dataKey: string, rowData: any }): any\n */\n cellDataGetter: propTypesExports.func,\n /**\n * Callback responsible for rendering a cell's contents.\n * ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node\n */\n cellRenderer: propTypesExports.func,\n /** Optional CSS class to apply to cell */\n className: propTypesExports.string,\n /** Optional additional data passed to this column's :cellDataGetter */\n columnData: propTypesExports.object,\n /** Uniquely identifies the row-data attribute corresponding to this cell */\n dataKey: propTypesExports.any.isRequired,\n /** Optional direction to be used when clicked the first time */\n defaultSortDirection: propTypesExports.oneOf([SortDirection.ASC, SortDirection.DESC]),\n /** If sort is enabled for the table at large, disable it for this column */\n disableSort: propTypesExports.bool,\n /** Flex grow style; defaults to 0 */\n flexGrow: propTypesExports.number,\n /** Flex shrink style; defaults to 1 */\n flexShrink: propTypesExports.number,\n /** Optional CSS class to apply to this column's header */\n headerClassName: propTypesExports.string,\n /**\n * Optional callback responsible for rendering a column header contents.\n * ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node\n */\n headerRenderer: propTypesExports.func.isRequired,\n /** Optional inline style to apply to this column's header */\n headerStyle: propTypesExports.object,\n /** Optional id to set on the column header */\n id: propTypesExports.string,\n /** Header label for this column */\n label: propTypesExports.node,\n /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n maxWidth: propTypesExports.number,\n /** Minimum width of column. */\n minWidth: propTypesExports.number,\n /** Optional inline style to apply to cell */\n style: propTypesExports.object,\n /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n width: propTypesExports.number.isRequired\n} : {};\nfunction ownKeys$1(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys$1(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$1(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n/**\n * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n * This component expects explicit width, height, and padding parameters.\n */\n\nvar Table = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Table, _React$PureComponent);\n function Table(props) {\n var _this;\n _classCallCheck(this, Table);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Table).call(this, props));\n _this.state = {\n scrollbarWidth: 0\n };\n _this._createColumn = _this._createColumn.bind(_assertThisInitialized(_this));\n _this._createRow = _this._createRow.bind(_assertThisInitialized(_this));\n _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n _this._onSectionRendered = _this._onSectionRendered.bind(_assertThisInitialized(_this));\n _this._setRef = _this._setRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Table, [{\n key: \"forceUpdateGrid\",\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n /** See Grid#getOffsetForCell */\n }, {\n key: \"getOffsetForRow\",\n value: function getOffsetForRow(_ref) {\n var alignment = _ref.alignment,\n index = _ref.index;\n if (this.Grid) {\n var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index\n }),\n scrollTop = _this$Grid$getOffsetF.scrollTop;\n return scrollTop;\n }\n return 0;\n }\n /** CellMeasurer compatibility */\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref2) {\n var columnIndex = _ref2.columnIndex,\n rowIndex = _ref2.rowIndex;\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#measureAllCells */\n }, {\n key: \"measureAllRows\",\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\n }\n }\n /** CellMeasurer compatibility */\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$columnIndex = _ref3.columnIndex,\n columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,\n _ref3$rowIndex = _ref3.rowIndex,\n rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#recomputeGridSize */\n }, {\n key: \"recomputeRowHeights\",\n value: function recomputeRowHeights() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: index\n });\n }\n }\n /** See Grid#scrollToPosition */\n }, {\n key: \"scrollToPosition\",\n value: function scrollToPosition() {\n var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.Grid) {\n this.Grid.scrollToPosition({\n scrollTop: scrollTop\n });\n }\n }\n /** See Grid#scrollToCell */\n }, {\n key: \"scrollToRow\",\n value: function scrollToRow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (this.Grid) {\n this.Grid.scrollToCell({\n columnIndex: 0,\n rowIndex: index\n });\n }\n }\n }, {\n key: \"getScrollbarWidth\",\n value: function getScrollbarWidth() {\n if (this.Grid) {\n var _Grid = findDOMNode(this.Grid);\n var clientWidth = _Grid.clientWidth || 0;\n var offsetWidth = _Grid.offsetWidth || 0;\n return offsetWidth - clientWidth;\n }\n return 0;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._setScrollbarWidth();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._setScrollbarWidth();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n disableHeader = _this$props.disableHeader,\n gridClassName = _this$props.gridClassName,\n gridStyle = _this$props.gridStyle,\n headerHeight = _this$props.headerHeight,\n headerRowRenderer = _this$props.headerRowRenderer,\n height = _this$props.height,\n id = _this$props.id,\n noRowsRenderer = _this$props.noRowsRenderer,\n rowClassName = _this$props.rowClassName,\n rowStyle = _this$props.rowStyle,\n scrollToIndex = _this$props.scrollToIndex,\n style = _this$props.style,\n width = _this$props.width;\n var scrollbarWidth = this.state.scrollbarWidth;\n var availableRowsHeight = disableHeader ? height : height - headerHeight;\n var rowClass = typeof rowClassName === 'function' ? rowClassName({\n index: -1\n }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n index: -1\n }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up\n\n this._cachedColumnStyles = [];\n React.Children.toArray(children).forEach(function (column, index) {\n var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);\n _this2._cachedColumnStyles[index] = _objectSpread$1({\n overflow: 'hidden'\n }, flexStyles);\n }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.\n // This is done because Grid is a pure component and won't update unless its properties or state has changed.\n // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.\n\n return React.createElement(\"div\", {\n \"aria-label\": this.props['aria-label'],\n \"aria-labelledby\": this.props['aria-labelledby'],\n \"aria-colcount\": React.Children.toArray(children).length,\n \"aria-rowcount\": this.props.rowCount,\n className: clsx('ReactVirtualized__Table', className),\n id: id,\n role: \"grid\",\n style: style\n }, !disableHeader && headerRowRenderer({\n className: clsx('ReactVirtualized__Table__headerRow', rowClass),\n columns: this._getHeaderColumns(),\n style: _objectSpread$1({\n height: headerHeight,\n overflow: 'hidden',\n paddingRight: scrollbarWidth,\n width: width\n }, rowStyleObject)\n }), React.createElement(Grid, _extends({}, this.props, {\n \"aria-readonly\": null,\n autoContainerWidth: true,\n className: clsx('ReactVirtualized__Table__Grid', gridClassName),\n cellRenderer: this._createRow,\n columnWidth: width,\n columnCount: 1,\n height: availableRowsHeight,\n id: undefined,\n noContentRenderer: noRowsRenderer,\n onScroll: this._onScroll,\n onSectionRendered: this._onSectionRendered,\n ref: this._setRef,\n role: \"rowgroup\",\n scrollbarWidth: scrollbarWidth,\n scrollToRow: scrollToIndex,\n style: _objectSpread$1({}, gridStyle, {\n overflowX: 'hidden'\n })\n })));\n }\n }, {\n key: \"_createColumn\",\n value: function _createColumn(_ref4) {\n var column = _ref4.column,\n columnIndex = _ref4.columnIndex,\n isScrolling = _ref4.isScrolling,\n parent = _ref4.parent,\n rowData = _ref4.rowData,\n rowIndex = _ref4.rowIndex;\n var onColumnClick = this.props.onColumnClick;\n var _column$props = column.props,\n cellDataGetter = _column$props.cellDataGetter,\n cellRenderer = _column$props.cellRenderer,\n className = _column$props.className,\n columnData = _column$props.columnData,\n dataKey = _column$props.dataKey,\n id = _column$props.id;\n var cellData = cellDataGetter({\n columnData: columnData,\n dataKey: dataKey,\n rowData: rowData\n });\n var renderedCell = cellRenderer({\n cellData: cellData,\n columnData: columnData,\n columnIndex: columnIndex,\n dataKey: dataKey,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: rowIndex\n });\n var onClick = function onClick(event) {\n onColumnClick && onColumnClick({\n columnData: columnData,\n dataKey: dataKey,\n event: event\n });\n };\n var style = this._cachedColumnStyles[columnIndex];\n var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,\n // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n // See PR https://github.com/bvaughn/react-virtualized/pull/942\n\n return React.createElement(\"div\", {\n \"aria-colindex\": columnIndex + 1,\n \"aria-describedby\": id,\n className: clsx('ReactVirtualized__Table__rowColumn', className),\n key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,\n onClick: onClick,\n role: \"gridcell\",\n style: style,\n title: title\n }, renderedCell);\n }\n }, {\n key: \"_createHeader\",\n value: function _createHeader(_ref5) {\n var column = _ref5.column,\n index = _ref5.index;\n var _this$props2 = this.props,\n headerClassName = _this$props2.headerClassName,\n headerStyle = _this$props2.headerStyle,\n onHeaderClick = _this$props2.onHeaderClick,\n sort = _this$props2.sort,\n sortBy = _this$props2.sortBy,\n sortDirection = _this$props2.sortDirection;\n var _column$props2 = column.props,\n columnData = _column$props2.columnData,\n dataKey = _column$props2.dataKey,\n defaultSortDirection = _column$props2.defaultSortDirection,\n disableSort = _column$props2.disableSort,\n headerRenderer = _column$props2.headerRenderer,\n id = _column$props2.id,\n label = _column$props2.label;\n var sortEnabled = !disableSort && sort;\n var classNames = clsx('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {\n ReactVirtualized__Table__sortableHeaderColumn: sortEnabled\n });\n var style = this._getFlexStyleForColumn(column, _objectSpread$1({}, headerStyle, {}, column.props.headerStyle));\n var renderedHeader = headerRenderer({\n columnData: columnData,\n dataKey: dataKey,\n disableSort: disableSort,\n label: label,\n sortBy: sortBy,\n sortDirection: sortDirection\n });\n var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;\n if (sortEnabled || onHeaderClick) {\n // If this is a sortable header, clicking it should update the table data's sorting.\n var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.\n // Otherwise, invert the direction of the sort.\n\n var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;\n var onClick = function onClick(event) {\n sortEnabled && sort({\n defaultSortDirection: defaultSortDirection,\n event: event,\n sortBy: dataKey,\n sortDirection: newSortDirection\n });\n onHeaderClick && onHeaderClick({\n columnData: columnData,\n dataKey: dataKey,\n event: event\n });\n };\n var onKeyDown = function onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n onClick(event);\n }\n };\n headerAriaLabel = column.props['aria-label'] || label || dataKey;\n headerAriaSort = 'none';\n headerTabIndex = 0;\n headerOnClick = onClick;\n headerOnKeyDown = onKeyDown;\n }\n if (sortBy === dataKey) {\n headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';\n } // Avoid using object-spread syntax with multiple objects here,\n // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n // See PR https://github.com/bvaughn/react-virtualized/pull/942\n\n return React.createElement(\"div\", {\n \"aria-label\": headerAriaLabel,\n \"aria-sort\": headerAriaSort,\n className: classNames,\n id: id,\n key: 'Header-Col' + index,\n onClick: headerOnClick,\n onKeyDown: headerOnKeyDown,\n role: \"columnheader\",\n style: style,\n tabIndex: headerTabIndex\n }, renderedHeader);\n }\n }, {\n key: \"_createRow\",\n value: function _createRow(_ref6) {\n var _this3 = this;\n var index = _ref6.rowIndex,\n isScrolling = _ref6.isScrolling,\n key = _ref6.key,\n parent = _ref6.parent,\n style = _ref6.style;\n var _this$props3 = this.props,\n children = _this$props3.children,\n onRowClick = _this$props3.onRowClick,\n onRowDoubleClick = _this$props3.onRowDoubleClick,\n onRowRightClick = _this$props3.onRowRightClick,\n onRowMouseOver = _this$props3.onRowMouseOver,\n onRowMouseOut = _this$props3.onRowMouseOut,\n rowClassName = _this$props3.rowClassName,\n rowGetter = _this$props3.rowGetter,\n rowRenderer = _this$props3.rowRenderer,\n rowStyle = _this$props3.rowStyle;\n var scrollbarWidth = this.state.scrollbarWidth;\n var rowClass = typeof rowClassName === 'function' ? rowClassName({\n index: index\n }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n index: index\n }) : rowStyle;\n var rowData = rowGetter({\n index: index\n });\n var columns = React.Children.toArray(children).map(function (column, columnIndex) {\n return _this3._createColumn({\n column: column,\n columnIndex: columnIndex,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: index,\n scrollbarWidth: scrollbarWidth\n });\n });\n var className = clsx('ReactVirtualized__Table__row', rowClass);\n var flattenedStyle = _objectSpread$1({}, style, {\n height: this._getRowHeight(index),\n overflow: 'hidden',\n paddingRight: scrollbarWidth\n }, rowStyleObject);\n return rowRenderer({\n className: className,\n columns: columns,\n index: index,\n isScrolling: isScrolling,\n key: key,\n onRowClick: onRowClick,\n onRowDoubleClick: onRowDoubleClick,\n onRowRightClick: onRowRightClick,\n onRowMouseOver: onRowMouseOver,\n onRowMouseOut: onRowMouseOut,\n rowData: rowData,\n style: flattenedStyle\n });\n }\n /**\n * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n */\n }, {\n key: \"_getFlexStyleForColumn\",\n value: function _getFlexStyleForColumn(column) {\n var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var flexValue = \"\".concat(column.props.flexGrow, \" \").concat(column.props.flexShrink, \" \").concat(column.props.width, \"px\");\n var style = _objectSpread$1({}, customStyle, {\n flex: flexValue,\n msFlex: flexValue,\n WebkitFlex: flexValue\n });\n if (column.props.maxWidth) {\n style.maxWidth = column.props.maxWidth;\n }\n if (column.props.minWidth) {\n style.minWidth = column.props.minWidth;\n }\n return style;\n }\n }, {\n key: \"_getHeaderColumns\",\n value: function _getHeaderColumns() {\n var _this4 = this;\n var _this$props4 = this.props,\n children = _this$props4.children,\n disableHeader = _this$props4.disableHeader;\n var items = disableHeader ? [] : React.Children.toArray(children);\n return items.map(function (column, index) {\n return _this4._createHeader({\n column: column,\n index: index\n });\n });\n }\n }, {\n key: \"_getRowHeight\",\n value: function _getRowHeight(rowIndex) {\n var rowHeight = this.props.rowHeight;\n return typeof rowHeight === 'function' ? rowHeight({\n index: rowIndex\n }) : rowHeight;\n }\n }, {\n key: \"_onScroll\",\n value: function _onScroll(_ref7) {\n var clientHeight = _ref7.clientHeight,\n scrollHeight = _ref7.scrollHeight,\n scrollTop = _ref7.scrollTop;\n var onScroll = this.props.onScroll;\n onScroll({\n clientHeight: clientHeight,\n scrollHeight: scrollHeight,\n scrollTop: scrollTop\n });\n }\n }, {\n key: \"_onSectionRendered\",\n value: function _onSectionRendered(_ref8) {\n var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref8.rowOverscanStopIndex,\n rowStartIndex = _ref8.rowStartIndex,\n rowStopIndex = _ref8.rowStopIndex;\n var onRowsRendered = this.props.onRowsRendered;\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n }\n }, {\n key: \"_setRef\",\n value: function _setRef(ref) {\n this.Grid = ref;\n }\n }, {\n key: \"_setScrollbarWidth\",\n value: function _setScrollbarWidth() {\n var scrollbarWidth = this.getScrollbarWidth();\n this.setState({\n scrollbarWidth: scrollbarWidth\n });\n }\n }]);\n return Table;\n}(React.PureComponent);\n_defineProperty(Table, \"defaultProps\", {\n disableHeader: false,\n estimatedRowSize: 30,\n headerHeight: 0,\n headerStyle: {},\n noRowsRenderer: function noRowsRenderer() {\n return null;\n },\n onRowsRendered: function onRowsRendered() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n overscanIndicesGetter: defaultOverscanIndicesGetter,\n overscanRowCount: 10,\n rowRenderer: defaultRowRenderer,\n headerRowRenderer: defaultHeaderRowRenderer,\n rowStyle: {},\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n});\nTable.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** This is just set on the grid top element. */\n 'aria-label': propTypesExports.string,\n /** This is just set on the grid top element. */\n 'aria-labelledby': propTypesExports.string,\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: propTypesExports.bool,\n /** One or more Columns describing the data displayed in this row */\n children: function children(props) {\n var children = React.Children.toArray(props.children);\n for (var i = 0; i < children.length; i++) {\n var childType = children[i].type;\n if (childType !== Column && !(childType.prototype instanceof Column)) {\n return new Error('Table only accepts children of type Column');\n }\n }\n },\n /** Optional CSS class name */\n className: propTypesExports.string,\n /** Disable rendering the header at all */\n disableHeader: propTypesExports.bool,\n /**\n * Used to estimate the total height of a Table before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n estimatedRowSize: propTypesExports.number.isRequired,\n /** Optional custom CSS class name to attach to inner Grid element. */\n gridClassName: propTypesExports.string,\n /** Optional inline style to attach to inner Grid element. */\n gridStyle: propTypesExports.object,\n /** Optional CSS class to apply to all column headers */\n headerClassName: propTypesExports.string,\n /** Fixed height of header row */\n headerHeight: propTypesExports.number.isRequired,\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: any[],\n * style: any\n * }): PropTypes.node\n */\n headerRowRenderer: propTypesExports.func,\n /** Optional custom inline style to attach to table header columns. */\n headerStyle: propTypesExports.object,\n /** Fixed/available height for out DOM element */\n height: propTypesExports.number.isRequired,\n /** Optional id */\n id: propTypesExports.string,\n /** Optional renderer to be used in place of table body rows when rowCount is 0 */\n noRowsRenderer: propTypesExports.func,\n /**\n * Optional callback when a column is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onColumnClick: propTypesExports.func,\n /**\n * Optional callback when a column's header is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onHeaderClick: propTypesExports.func,\n /**\n * Callback invoked when a user clicks on a table row.\n * ({ index: number }): void\n */\n onRowClick: propTypesExports.func,\n /**\n * Callback invoked when a user double-clicks on a table row.\n * ({ index: number }): void\n */\n onRowDoubleClick: propTypesExports.func,\n /**\n * Callback invoked when the mouse leaves a table row.\n * ({ index: number }): void\n */\n onRowMouseOut: propTypesExports.func,\n /**\n * Callback invoked when a user moves the mouse over a table row.\n * ({ index: number }): void\n */\n onRowMouseOver: propTypesExports.func,\n /**\n * Callback invoked when a user right-clicks on a table row.\n * ({ index: number }): void\n */\n onRowRightClick: propTypesExports.func,\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: propTypesExports.func,\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: propTypesExports.func.isRequired,\n /** See Grid#overscanIndicesGetter */\n overscanIndicesGetter: propTypesExports.func.isRequired,\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowCount: propTypesExports.number.isRequired,\n /**\n * Optional CSS class to apply to all table rows (including the header row).\n * This property can be a CSS class name (string) or a function that returns a class name.\n * If a function is provided its signature should be: ({ index: number }): string\n */\n rowClassName: propTypesExports.oneOfType([propTypesExports.string, propTypesExports.func]),\n /**\n * Callback responsible for returning a data row given an index.\n * ({ index: number }): any\n */\n rowGetter: propTypesExports.func.isRequired,\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * ({ index: number }): number\n */\n rowHeight: propTypesExports.oneOfType([propTypesExports.number, propTypesExports.func]).isRequired,\n /** Number of rows in table. */\n rowCount: propTypesExports.number.isRequired,\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: Array,\n * index: number,\n * isScrolling: boolean,\n * onRowClick: ?Function,\n * onRowDoubleClick: ?Function,\n * onRowMouseOver: ?Function,\n * onRowMouseOut: ?Function,\n * rowData: any,\n * style: any\n * }): PropTypes.node\n */\n rowRenderer: propTypesExports.func,\n /** Optional custom inline style to attach to table rows. */\n rowStyle: propTypesExports.oneOfType([propTypesExports.object, propTypesExports.func]).isRequired,\n /** See Grid#scrollToAlignment */\n scrollToAlignment: propTypesExports.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: propTypesExports.number.isRequired,\n /** Vertical offset. */\n scrollTop: propTypesExports.number,\n /**\n * Sort function to be called if a sortable header is clicked.\n * Should implement the following interface: ({\n * defaultSortDirection: 'ASC' | 'DESC',\n * event: MouseEvent,\n * sortBy: string,\n * sortDirection: SortDirection\n * }): void\n */\n sort: propTypesExports.func,\n /** Table data is currently sorted by this :dataKey (if it is sorted at all) */\n sortBy: propTypesExports.string,\n /** Table data is currently sorted in this direction (if it is sorted at all) */\n sortDirection: propTypesExports.oneOf([SortDirection.ASC, SortDirection.DESC]),\n /** Optional inline style */\n style: propTypesExports.object,\n /** Tab index for focus */\n tabIndex: propTypesExports.number,\n /** Width of list */\n width: propTypesExports.number.isRequired\n} : {};\nvar mountedInstances = [];\nvar originalBodyPointerEvents = null;\nvar disablePointerEventsTimeoutId = null;\nfunction enablePointerEventsIfDisabled() {\n if (disablePointerEventsTimeoutId) {\n disablePointerEventsTimeoutId = null;\n if (document.body && originalBodyPointerEvents != null) {\n document.body.style.pointerEvents = originalBodyPointerEvents;\n }\n originalBodyPointerEvents = null;\n }\n}\nfunction enablePointerEventsAfterDelayCallback() {\n enablePointerEventsIfDisabled();\n mountedInstances.forEach(function (instance) {\n return instance.__resetIsScrolling();\n });\n}\nfunction enablePointerEventsAfterDelay() {\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n }\n var maximumTimeout = 0;\n mountedInstances.forEach(function (instance) {\n maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);\n });\n disablePointerEventsTimeoutId = requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);\n}\nfunction onScrollWindow(event) {\n if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n document.body.style.pointerEvents = 'none';\n }\n enablePointerEventsAfterDelay();\n mountedInstances.forEach(function (instance) {\n if (instance.props.scrollElement === event.currentTarget) {\n instance.__handleWindowScrollEvent();\n }\n });\n}\nfunction registerScrollListener(component, element) {\n if (!mountedInstances.some(function (instance) {\n return instance.props.scrollElement === element;\n })) {\n element.addEventListener('scroll', onScrollWindow);\n }\n mountedInstances.push(component);\n}\nfunction unregisterScrollListener(component, element) {\n mountedInstances = mountedInstances.filter(function (instance) {\n return instance !== component;\n });\n if (!mountedInstances.length) {\n element.removeEventListener('scroll', onScrollWindow);\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n enablePointerEventsIfDisabled();\n }\n }\n}\n\n/**\n * Gets the dimensions of the element, accounting for API differences between\n * `window` and other DOM elements.\n */\n// TODO Move this into WindowScroller and import from there\nvar isWindow = function isWindow(element) {\n return element === window;\n};\nvar getBoundingBox = function getBoundingBox(element) {\n return element.getBoundingClientRect();\n};\nfunction getDimensions(scrollElement, props) {\n if (!scrollElement) {\n return {\n height: props.serverHeight,\n width: props.serverWidth\n };\n } else if (isWindow(scrollElement)) {\n var _window = window,\n innerHeight = _window.innerHeight,\n innerWidth = _window.innerWidth;\n return {\n height: typeof innerHeight === 'number' ? innerHeight : 0,\n width: typeof innerWidth === 'number' ? innerWidth : 0\n };\n } else {\n return getBoundingBox(scrollElement);\n }\n}\n/**\n * Gets the vertical and horizontal position of an element within its scroll container.\n * Elements that have been “scrolled past” return negative values.\n * Handles edge-case where a user is navigating back (history) from an already-scrolled page.\n * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).\n */\n\nfunction getPositionOffset(element, container) {\n if (isWindow(container) && document.documentElement) {\n var containerElement = document.documentElement;\n var elementRect = getBoundingBox(element);\n var containerRect = getBoundingBox(containerElement);\n return {\n top: elementRect.top - containerRect.top,\n left: elementRect.left - containerRect.left\n };\n } else {\n var scrollOffset = getScrollOffset(container);\n var _elementRect = getBoundingBox(element);\n var _containerRect = getBoundingBox(container);\n return {\n top: _elementRect.top + scrollOffset.top - _containerRect.top,\n left: _elementRect.left + scrollOffset.left - _containerRect.left\n };\n }\n}\n/**\n * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility\n * and API differences between `window` and other DOM elements.\n */\n\nfunction getScrollOffset(element) {\n if (isWindow(element) && document.documentElement) {\n return {\n top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,\n left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft\n };\n } else {\n return {\n top: element.scrollTop,\n left: element.scrollLeft\n };\n }\n}\nvar _class, _temp;\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nvar IS_SCROLLING_TIMEOUT = 150;\nvar getWindow = function getWindow() {\n return typeof window !== 'undefined' ? window : undefined;\n};\nvar WindowScroller = (_temp = _class = /*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(WindowScroller, _React$PureComponent);\n function WindowScroller() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, WindowScroller);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty(_assertThisInitialized(_this), \"_window\", getWindow());\n _defineProperty(_assertThisInitialized(_this), \"_isMounted\", false);\n _defineProperty(_assertThisInitialized(_this), \"_positionFromTop\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_positionFromLeft\", 0);\n _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"state\", _objectSpread({}, getDimensions(_this.props.scrollElement, _this.props), {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }));\n _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('WindowScroller registerChild expects to be passed Element or null');\n }\n _this._child = element;\n _this.updatePosition();\n });\n _defineProperty(_assertThisInitialized(_this), \"_onChildScroll\", function (_ref) {\n var scrollTop = _ref.scrollTop;\n if (_this.state.scrollTop === scrollTop) {\n return;\n }\n var scrollElement = _this.props.scrollElement;\n if (scrollElement) {\n if (typeof scrollElement.scrollTo === 'function') {\n scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);\n } else {\n scrollElement.scrollTop = scrollTop + _this._positionFromTop;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_registerResizeListener\", function (element) {\n if (element === window) {\n window.addEventListener('resize', _this._onResize, false);\n } else {\n _this._detectElementResize.addResizeListener(element, _this._onResize);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_unregisterResizeListener\", function (element) {\n if (element === window) {\n window.removeEventListener('resize', _this._onResize, false);\n } else if (element) {\n _this._detectElementResize.removeResizeListener(element, _this._onResize);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n _this.updatePosition();\n });\n _defineProperty(_assertThisInitialized(_this), \"__handleWindowScrollEvent\", function () {\n if (!_this._isMounted) {\n return;\n }\n var onScroll = _this.props.onScroll;\n var scrollElement = _this.props.scrollElement;\n if (scrollElement) {\n var scrollOffset = getScrollOffset(scrollElement);\n var scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);\n var scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);\n _this.setState({\n isScrolling: true,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n onScroll({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"__resetIsScrolling\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n return _this;\n }\n _createClass(WindowScroller, [{\n key: \"updatePosition\",\n value: function updatePosition() {\n var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;\n var onResize = this.props.onResize;\n var _this$state = this.state,\n height = _this$state.height,\n width = _this$state.width;\n var thisNode = this._child || ReactDOM.findDOMNode(this);\n if (thisNode instanceof Element && scrollElement) {\n var offset = getPositionOffset(thisNode, scrollElement);\n this._positionFromTop = offset.top;\n this._positionFromLeft = offset.left;\n }\n var dimensions = getDimensions(scrollElement, this.props);\n if (height !== dimensions.height || width !== dimensions.width) {\n this.setState({\n height: dimensions.height,\n width: dimensions.width\n });\n onResize({\n height: dimensions.height,\n width: dimensions.width\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var scrollElement = this.props.scrollElement;\n this._detectElementResize = createDetectElementResize();\n this.updatePosition(scrollElement);\n if (scrollElement) {\n registerScrollListener(this, scrollElement);\n this._registerResizeListener(scrollElement);\n }\n this._isMounted = true;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var scrollElement = this.props.scrollElement;\n var prevScrollElement = prevProps.scrollElement;\n if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {\n this.updatePosition(scrollElement);\n unregisterScrollListener(this, prevScrollElement);\n registerScrollListener(this, scrollElement);\n this._unregisterResizeListener(prevScrollElement);\n this._registerResizeListener(scrollElement);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var scrollElement = this.props.scrollElement;\n if (scrollElement) {\n unregisterScrollListener(this, scrollElement);\n this._unregisterResizeListener(scrollElement);\n }\n this._isMounted = false;\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var _this$state2 = this.state,\n isScrolling = _this$state2.isScrolling,\n scrollTop = _this$state2.scrollTop,\n scrollLeft = _this$state2.scrollLeft,\n height = _this$state2.height,\n width = _this$state2.width;\n return children({\n onChildScroll: this._onChildScroll,\n registerChild: this._registerChild,\n height: height,\n isScrolling: isScrolling,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n }\n }]);\n return WindowScroller;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n /**\n * Function responsible for rendering children.\n * This function should implement the following signature:\n * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element\n */\n \"children\": propTypesExports.func.isRequired,\n /** Callback to be invoked on-resize: ({ height, width }) */\n \"onResize\": propTypesExports.func.isRequired,\n /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */\n \"onScroll\": propTypesExports.func.isRequired,\n /** Element to attach scroll event listeners. Defaults to window. */\n \"scrollElement\": propTypesExports.oneOfType([propTypesExports.any, function () {\n return (typeof Element === \"function\" ? propTypesExports.instanceOf(Element) : propTypesExports.any).apply(this, arguments);\n }]),\n /**\n * Wait this amount of time after the last scroll event before resetting child `pointer-events`.\n */\n \"scrollingResetTimeInterval\": propTypesExports.number.isRequired,\n /** Height used for server-side rendering */\n \"serverHeight\": propTypesExports.number.isRequired,\n /** Width used for server-side rendering */\n \"serverWidth\": propTypesExports.number.isRequired\n}), _temp);\n_defineProperty(WindowScroller, \"defaultProps\", {\n onResize: function onResize() {},\n onScroll: function onScroll() {},\n scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,\n scrollElement: getWindow(),\n serverHeight: 0,\n serverWidth: 0\n});\nvar isCheckBoxInput = element => element.type === 'checkbox';\nvar isDateObject = data => data instanceof Date;\nvar isNullOrUndefined = value => value == null;\nconst isObjectType = value => typeof value === 'object';\nvar isObject = value => !isNullOrUndefined(value) && !Array.isArray(value) && isObjectType(value) && !isDateObject(value);\nvar getControllerValue = event => isObject(event) && event.target ? isCheckBoxInput(event.target) ? event.target.checked : event.target.value : event;\nvar getNodeParentName = name => name.substring(0, name.search(/.\\d/)) || name;\nvar isNameInFieldArray = (names, name) => [...names].some(current => getNodeParentName(name) === current);\nvar compact = value => value.filter(Boolean);\nvar isUndefined = val => val === undefined;\nvar get = (obj, path, defaultValue) => {\n if (isObject(obj) && path) {\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\n return isUndefined(result) || result === obj ? isUndefined(obj[path]) ? defaultValue : obj[path] : result;\n }\n return undefined;\n};\nconst EVENTS = {\n BLUR: 'blur',\n CHANGE: 'change'\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all'\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate'\n};\nvar omit = (source, key) => {\n const copy = Object.assign({}, source);\n delete copy[key];\n return copy;\n};\nconst FormContext = React.createContext(null);\nFormContext.displayName = 'RHFContext';\nconst useFormContext = () => React.useContext(FormContext);\nvar getProxyFormState = (formState, _proxyFormState, localProxyFormState, isRoot = true) => {\n function createGetter(prop) {\n return () => {\n if (prop in formState) {\n if (_proxyFormState[prop] !== VALIDATION_MODE.all) {\n _proxyFormState[prop] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[prop] = true);\n return formState[prop];\n }\n return undefined;\n };\n }\n const result = {};\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: createGetter(key)\n });\n }\n return result;\n};\nvar isEmptyObject = value => isObject(value) && !Object.keys(value).length;\nvar shouldRenderFormState = (formStateData, _proxyFormState, isRoot) => {\n const formState = omit(formStateData, 'name');\n return isEmptyObject(formState) || Object.keys(formState).length >= Object.keys(_proxyFormState).length || Object.keys(formState).find(key => _proxyFormState[key] === (!isRoot || VALIDATION_MODE.all));\n};\nvar convertToArrayPayload = value => Array.isArray(value) ? value : [value];\nfunction useFormState(props) {\n const methods = useFormContext();\n const {\n control = methods.control,\n disabled,\n name\n } = props || {};\n const nameRef = React.useRef(name);\n const [formState, updateFormState] = React.useState(control._formState);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false\n });\n nameRef.current = name;\n React.useEffect(() => {\n const formStateSubscription = control._subjects.state.subscribe({\n next: formState => (!nameRef.current || !formState.name || convertToArrayPayload(nameRef.current).includes(formState.name)) && shouldRenderFormState(formState, _localProxyFormState.current) && updateFormState(Object.assign(Object.assign({}, control._formState), formState))\n });\n disabled && formStateSubscription.unsubscribe();\n return () => formStateSubscription.unsubscribe();\n }, [disabled, control]);\n return getProxyFormState(formState, control._proxyFormState, _localProxyFormState.current, false);\n}\nfunction useController(props) {\n const methods = useFormContext();\n const {\n name,\n control = methods.control,\n shouldUnregister\n } = props;\n const [value, setInputStateValue] = React.useState(get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)));\n const formState = useFormState({\n control: control || methods.control,\n name\n });\n const registerProps = control.register(name, Object.assign(Object.assign({}, props.rules), {\n value\n }));\n const updateMounted = React.useCallback((name, value) => {\n const field = get(control._fields, name);\n if (field) {\n field._f.mount = value;\n }\n }, [control]);\n React.useEffect(() => {\n const controllerSubscription = control._subjects.control.subscribe({\n next: data => (!data.name || name === data.name) && setInputStateValue(get(data.values, name))\n });\n updateMounted(name, true);\n return () => {\n controllerSubscription.unsubscribe();\n const _shouldUnregisterField = control._shouldUnregister || shouldUnregister;\n if (isNameInFieldArray(control._names.array, name) ? _shouldUnregisterField && !control._stateFlags.action : _shouldUnregisterField) {\n control.unregister(name);\n } else {\n updateMounted(name, false);\n }\n };\n }, [name, control, shouldUnregister, updateMounted]);\n return {\n field: {\n onChange: event => {\n const value = getControllerValue(event);\n setInputStateValue(value);\n registerProps.onChange({\n target: {\n value,\n name: name\n },\n type: EVENTS.CHANGE\n });\n },\n onBlur: () => {\n registerProps.onBlur({\n target: {\n value,\n name: name\n },\n type: EVENTS.BLUR\n });\n },\n name,\n value,\n ref: elm => {\n const field = get(control._fields, name);\n if (elm && field && elm.focus) {\n field._f.ref = {\n focus: () => elm.focus(),\n setCustomValidity: message => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity()\n };\n }\n }\n },\n formState,\n fieldState: {\n invalid: !!get(formState.errors, name),\n isDirty: !!get(formState.dirtyFields, name),\n isTouched: !!get(formState.touchedFields, name),\n error: get(formState.errors, name)\n }\n };\n}\nconst Controller = props => props.render(useController(props));\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria ? Object.assign(Object.assign({}, errors[name]), {\n types: Object.assign(Object.assign({}, errors[name] && errors[name].types ? errors[name].types : {}), {\n [type]: message || true\n })\n}) : {};\nvar isKey = value => /^\\w*$/.test(value);\nvar stringToPath = input => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\nfunction set(object, path, value) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue = isObject(objValue) || Array.isArray(objValue) ? objValue : !isNaN(+tempPath[index + 1]) ? [] : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\nconst focusFieldBy = (fields, callback, fieldsNames) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const _f = field._f;\n const current = omit(field, '_f');\n if (_f && callback(_f.name)) {\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\n break;\n } else if (_f.refs) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(current)) {\n focusFieldBy(current, callback);\n }\n }\n }\n};\nvar omitKey = (fields, keyName) => fields.map((field = {}) => omit(field, keyName));\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (isArray || isObject(data)) {\n copy = isArray ? [] : {};\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n } else {\n return data;\n }\n return copy;\n}\nvar isPrimitive = value => isNullOrUndefined(value) || !isObjectType(value);\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2) || isDateObject(object1) || isDateObject(object2)) {\n return object1 === object2;\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isObject(val1) || Array.isArray(val1)) && (isObject(val2) || Array.isArray(val2)) ? !deepEqual(val1, val2) : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\nvar getValidationModes = mode => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched\n});\nvar isBoolean = value => typeof value === 'boolean';\nvar isFileInput = element => element.type === 'file';\nvar isFunction = value => typeof value === 'function';\nvar isHTMLElement = value => value instanceof HTMLElement;\nvar isMultipleSelect = element => element.type === `select-multiple`;\nvar isRadioInput = element => element.type === 'radio';\nvar isRadioOrCheckboxFunction = ref => isRadioInput(ref) || isCheckBoxInput(ref);\nvar isString = value => typeof value === 'string';\nvar isWeb = typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined' && typeof document !== 'undefined';\nvar live = ref => !isHTMLElement(ref) || !document.contains(ref);\nclass Subscription {\n constructor() {\n this.tearDowns = [];\n }\n add(tearDown) {\n this.tearDowns.push(tearDown);\n }\n unsubscribe() {\n for (const teardown of this.tearDowns) {\n teardown();\n }\n this.tearDowns = [];\n }\n}\nclass Subscriber {\n constructor(observer, subscription) {\n this.observer = observer;\n this.closed = false;\n subscription.add(() => this.closed = true);\n }\n next(value) {\n if (!this.closed) {\n this.observer.next(value);\n }\n }\n}\nclass Subject {\n constructor() {\n this.observers = [];\n }\n next(value) {\n for (const observer of this.observers) {\n observer.next(value);\n }\n }\n subscribe(observer) {\n const subscription = new Subscription();\n const subscriber = new Subscriber(observer, subscription);\n this.observers.push(subscriber);\n return subscription;\n }\n unsubscribe() {\n this.observers = [];\n }\n}\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction unset(object, path) {\n const updatePath = isKey(path) ? [path] : stringToPath(path);\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\n const key = updatePath[updatePath.length - 1];\n let previousObjRef;\n if (childObject) {\n delete childObject[key];\n }\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\n let index = -1;\n let objectRef;\n const currentPaths = updatePath.slice(0, -(k + 1));\n const currentPathsLength = currentPaths.length - 1;\n if (k > 0) {\n previousObjRef = object;\n }\n while (++index < currentPaths.length) {\n const item = currentPaths[index];\n objectRef = objectRef ? objectRef[item] : object[item];\n if (currentPathsLength === index && (isObject(objectRef) && isEmptyObject(objectRef) || Array.isArray(objectRef) && !objectRef.filter(data => isObject(data) && !isEmptyObject(data) || isBoolean(data)).length)) {\n previousObjRef ? delete previousObjRef[item] : delete object[item];\n }\n previousObjRef = objectRef;\n }\n }\n return object;\n}\nconst defaultResult = {\n value: false,\n isValid: false\n};\nconst validResult = {\n value: true,\n isValid: true\n};\nvar getCheckboxValue = options => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options.filter(option => option && option.checked && !option.disabled).map(option => option.value);\n return {\n value: values,\n isValid: !!values.length\n };\n }\n return options[0].checked && !options[0].disabled ?\n // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value) ? isUndefined(options[0].value) || options[0].value === '' ? validResult : {\n value: options[0].value,\n isValid: true\n } : validResult : defaultResult;\n }\n return defaultResult;\n};\nvar getFieldValueAs = (value, {\n valueAsNumber,\n valueAsDate,\n setValueAs\n}) => isUndefined(value) ? value : valueAsNumber ? value === '' ? NaN : +value : valueAsDate ? new Date(value) : setValueAs ? setValueAs(value) : value;\nvar getMultipleSelectValue = options => [...options].filter(({\n selected\n}) => selected).map(({\n value\n}) => value);\nconst defaultReturn = {\n isValid: false,\n value: null\n};\nvar getRadioValue = options => Array.isArray(options) ? options.reduce((previous, option) => option && option.checked && !option.disabled ? {\n isValid: true,\n value: option.value\n} : previous, defaultReturn) : defaultReturn;\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every(ref => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return getMultipleSelectValue(ref.options);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation\n };\n};\nvar hasValidation = options => options.mount && (options.required || options.min || options.max || options.maxLength || options.minLength || options.pattern || options.validate);\nfunction deepMerge(target, source) {\n if (isPrimitive(target) || isPrimitive(source)) {\n return source;\n }\n for (const key in source) {\n const targetValue = target[key];\n const sourceValue = source[key];\n try {\n target[key] = isObject(targetValue) && isObject(sourceValue) || Array.isArray(targetValue) && Array.isArray(sourceValue) ? deepMerge(targetValue, sourceValue) : sourceValue;\n } catch (_a) {}\n }\n return target;\n}\nfunction setDirtyFields(values, defaultValues, dirtyFields, parentNode, parentName) {\n let index = -1;\n while (++index < values.length) {\n for (const key in values[index]) {\n if (Array.isArray(values[index][key])) {\n !dirtyFields[index] && (dirtyFields[index] = {});\n dirtyFields[index][key] = [];\n setDirtyFields(values[index][key], get(defaultValues[index] || {}, key, []), dirtyFields[index][key], dirtyFields[index], key);\n } else {\n !isNullOrUndefined(defaultValues) && deepEqual(get(defaultValues[index] || {}, key), values[index][key]) ? set(dirtyFields[index] || {}, key) : dirtyFields[index] = Object.assign(Object.assign({}, dirtyFields[index]), {\n [key]: true\n });\n }\n }\n parentNode && !dirtyFields.length && delete parentNode[parentName];\n }\n return dirtyFields;\n}\nvar setFieldArrayDirtyFields = (values, defaultValues, dirtyFields) => deepMerge(setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)), setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)));\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name, [])).length && unset(ref, name);\nvar isMessage = value => isString(value) || React.isValidElement(value);\nvar isRegex = value => value instanceof RegExp;\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) || Array.isArray(result) && result.every(isMessage) || isBoolean(result) && !result) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref\n };\n }\n}\nvar getValueAndMessage = validationData => isObject(validationData) && !isRegex(validationData) ? validationData : {\n value: validationData,\n message: ''\n};\nvar validateField = async (field, inputValue, validateAllFieldCriteria, shouldUseNativeValidation) => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled\n } = field._f;\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidty = message => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = (valueAsNumber || isFileInput(ref)) && !ref.value || inputValue === '' || Array.isArray(inputValue) && !inputValue.length;\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = Object.assign({\n type: exceedMax ? maxType : minType,\n message,\n ref\n }, appendErrorsCurry(exceedMax ? maxType : minType, message));\n };\n if (required && (!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue)) || isBoolean(inputValue) && !inputValue || isCheckBox && !getCheckboxValue(refs).isValid || isRadio && !getRadioValue(refs).isValid)) {\n const {\n value,\n message\n } = isMessage(required) ? {\n value: !!required,\n message: required\n } : getValueAndMessage(required);\n if (value) {\n error[name] = Object.assign({\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef\n }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\n if (!validateAllFieldCriteria) {\n setCustomValidty(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber || parseFloat(inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n if (isString(maxOutput.value)) {\n exceedMax = valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value)) {\n exceedMin = valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidty(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) && !isEmpty && isString(inputValue)) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) && inputValue.length > maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) && inputValue.length < minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidty(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const {\n value: patternValue,\n message\n } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = Object.assign({\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref\n }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message));\n if (!validateAllFieldCriteria) {\n setCustomValidty(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = Object.assign(Object.assign({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\n if (!validateAllFieldCriteria) {\n setCustomValidty(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue), inputRef, key);\n if (validateError) {\n validationResult = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\n setCustomValidty(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = Object.assign({\n ref: inputRef\n }, validationResult);\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidty(true);\n return error;\n};\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true\n};\nconst isWindowUndefined = typeof window === 'undefined';\nfunction createFormControl(props = {}) {\n let formOptions = Object.assign(Object.assign({}, defaultOptions), props);\n let _delayCallback;\n let _formState = {\n isDirty: false,\n isValidating: false,\n dirtyFields: {},\n isSubmitted: false,\n submitCount: 0,\n touchedFields: {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n errors: {}\n };\n let _fields = {};\n let _defaultValues = formOptions.defaultValues || {};\n let _formValues = formOptions.shouldUnregister ? {} : cloneObject(_defaultValues);\n let _stateFlags = {\n action: false,\n mount: false,\n watch: false\n };\n let _timer = 0;\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set()\n };\n let _validateCount = {};\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false\n };\n const _subjects = {\n watch: new Subject(),\n control: new Subject(),\n array: new Subject(),\n state: new Subject()\n };\n const validationMode = getValidationModes(formOptions.mode);\n const reValidateMode = getValidationModes(formOptions.reValidateMode);\n const isValidateAllFieldCriteria = formOptions.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback, wait) => (...args) => {\n clearTimeout(_timer);\n _timer = window.setTimeout(() => callback(...args), wait);\n };\n const isFieldWatched = name => _names.watchAll || _names.watch.has(name) || _names.watch.has((name.match(/\\w+/) || [])[0]);\n const updateErrorState = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors\n });\n };\n const shouldRenderBaseOnError = async (shouldSkipRender, name, isValid, error, fieldState) => {\n const previousError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;\n if (props.delayError && error) {\n _delayCallback = _delayCallback || debounce(updateErrorState, props.delayError);\n _delayCallback(name, error);\n } else {\n clearTimeout(_timer);\n error ? set(_formState.errors, name, error) : unset(_formState.errors, name);\n }\n if (((error ? !deepEqual(previousError, error) : previousError) || !isEmptyObject(fieldState) || shouldUpdateValid) && !shouldSkipRender) {\n const updatedFormState = Object.assign(Object.assign(Object.assign({}, fieldState), shouldUpdateValid ? {\n isValid\n } : {}), {\n errors: _formState.errors,\n name\n });\n _formState = Object.assign(Object.assign({}, _formState), updatedFormState);\n _subjects.state.next(updatedFormState);\n }\n _validateCount[name]--;\n if (_proxyFormState.isValidating && !_validateCount[name]) {\n _subjects.state.next({\n isValidating: false\n });\n _validateCount = {};\n }\n };\n const setFieldValue = (name, value, options = {}, shouldRender) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const _f = field._f;\n if (_f) {\n set(_formValues, name, getFieldValueAs(value, _f));\n fieldValue = isWeb && isHTMLElement(_f.ref) && isNullOrUndefined(value) ? '' : value;\n if (isFileInput(_f.ref) && !isString(fieldValue)) {\n _f.ref.files = fieldValue;\n } else if (isMultipleSelect(_f.ref)) {\n [..._f.ref.options].forEach(selectRef => selectRef.selected = fieldValue.includes(selectRef.value));\n } else if (_f.refs) {\n if (isCheckBoxInput(_f.ref)) {\n _f.refs.length > 1 ? _f.refs.forEach(checkboxRef => checkboxRef.checked = Array.isArray(fieldValue) ? !!fieldValue.find(data => data === checkboxRef.value) : fieldValue === checkboxRef.value) : _f.refs[0].checked = !!fieldValue;\n } else {\n _f.refs.forEach(radioRef => radioRef.checked = radioRef.value === fieldValue);\n }\n } else {\n _f.ref.value = fieldValue;\n }\n if (shouldRender) {\n _subjects.control.next({\n values: _formValues,\n name\n });\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) && updateTouchAndDirtyState(name, fieldValue, options.shouldTouch);\n options.shouldValidate && trigger(name);\n };\n const updateTouchAndDirtyState = (name, inputValue, isCurrentTouched, shouldRender = true) => {\n const state = {\n name\n };\n let isChanged = false;\n if (_proxyFormState.isDirty) {\n const previousIsDirty = _formState.isDirty;\n _formState.isDirty = _getIsDirty();\n state.isDirty = _formState.isDirty;\n isChanged = previousIsDirty !== state.isDirty;\n }\n if (_proxyFormState.dirtyFields && !isCurrentTouched) {\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\n const isCurrentFieldDirty = !deepEqual(get(_defaultValues, name), inputValue);\n isCurrentFieldDirty ? set(_formState.dirtyFields, name, true) : unset(_formState.dirtyFields, name);\n state.dirtyFields = _formState.dirtyFields;\n isChanged = isChanged || isPreviousFieldDirty !== get(_formState.dirtyFields, name);\n }\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (isCurrentTouched && !isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isCurrentTouched);\n state.touchedFields = _formState.touchedFields;\n isChanged = isChanged || _proxyFormState.touchedFields && isPreviousFieldTouched !== isCurrentTouched;\n }\n isChanged && shouldRender && _subjects.state.next(state);\n return isChanged ? state : {};\n };\n const executeResolver = async name => {\n return formOptions.resolver ? await formOptions.resolver(Object.assign({}, _formValues), formOptions.context, getResolverOptions(name || _names.mount, _fields, formOptions.criteriaMode, formOptions.shouldUseNativeValidation)) : {};\n };\n const executeResolverValidation = async names => {\n const {\n errors\n } = await executeResolver();\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error ? set(_formState.errors, name, error) : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n return errors;\n };\n const validateForm = async (_fields, shouldCheckValid, context = {\n valid: true\n }) => {\n for (const name in _fields) {\n const field = _fields[name];\n if (field) {\n const _f = field._f;\n const fieldValue = omit(field, '_f');\n if (_f) {\n const fieldError = await validateField(field, get(_formValues, _f.name), isValidateAllFieldCriteria, formOptions.shouldUseNativeValidation);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldCheckValid) {\n break;\n }\n }\n if (!shouldCheckValid) {\n fieldError[_f.name] ? set(_formState.errors, _f.name, fieldError[_f.name]) : unset(_formState.errors, _f.name);\n }\n }\n fieldValue && (await validateForm(fieldValue, shouldCheckValid, context));\n }\n }\n return context.valid;\n };\n const handleChange = async event => {\n const target = event.target;\n let name = target.name;\n const field = get(_fields, name);\n if (field) {\n let error;\n let isValid;\n const inputValue = target.type ? getFieldValue(field._f) : target.value;\n const isBlurEvent = event.type === EVENTS.BLUR;\n if (isBlurEvent && field._f.onBlur) {\n field._f.onBlur(event);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const shouldSkipValidation = !hasValidation(field._f) && !formOptions.resolver && !get(_formState.errors, name) && !field._f.deps || skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, reValidateMode, validationMode);\n const isWatched = !isBlurEvent && isFieldWatched(name);\n set(_formValues, name, inputValue);\n const fieldState = updateTouchAndDirtyState(name, inputValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || isWatched;\n !isBlurEvent && _subjects.watch.next({\n name,\n type: event.type\n });\n if (shouldSkipValidation) {\n return shouldRender && _subjects.state.next(Object.assign({\n name\n }, isWatched ? {} : fieldState));\n }\n !isBlurEvent && isWatched && _subjects.state.next({});\n _validateCount[name] = _validateCount[name] ? +1 : 1;\n _proxyFormState.isValidating && _subjects.state.next({\n isValidating: true\n });\n if (formOptions.resolver) {\n const {\n errors\n } = await executeResolver([name]);\n error = get(errors, name);\n if (isCheckBoxInput(target) && !error) {\n const parentNodeName = getNodeParentName(name);\n const parentField = get(_fields, parentNodeName);\n if (Array.isArray(parentField) && parentField.every(field => field._f && isCheckBoxInput(field._f.ref))) {\n const parentError = get(errors, parentNodeName, {});\n parentError.type && (error = parentError);\n name = parentNodeName;\n }\n }\n isValid = isEmptyObject(errors);\n } else {\n error = (await validateField(field, get(_formValues, name), isValidateAllFieldCriteria, formOptions.shouldUseNativeValidation))[name];\n isValid = await _updateValid(true);\n }\n if (field._f.deps) {\n trigger(field._f.deps);\n }\n shouldRenderBaseOnError(false, name, isValid, error, fieldState);\n }\n };\n const _updateValidAndInputValue = (name, shouldSkipValueAs, ref) => {\n const field = get(_fields, name);\n if (field) {\n const fieldValue = get(_formValues, name);\n const defaultValue = isUndefined(fieldValue) ? get(_defaultValues, name) : fieldValue;\n if (isUndefined(defaultValue) || ref && ref.defaultChecked || shouldSkipValueAs) {\n set(_formValues, name, shouldSkipValueAs ? defaultValue : getFieldValue(field._f));\n } else {\n setFieldValue(name, defaultValue);\n }\n }\n _stateFlags.mount && _updateValid();\n };\n const _getIsDirty = (name, data) => {\n name && data && set(_formValues, name, data);\n return !deepEqual(Object.assign({}, getValues()), _defaultValues);\n };\n const _updateValid = async skipRender => {\n let isValid = false;\n if (_proxyFormState.isValid) {\n isValid = formOptions.resolver ? isEmptyObject((await executeResolver()).errors) : await validateForm(_fields, true);\n if (!skipRender && isValid !== _formState.isValid) {\n _formState.isValid = isValid;\n _subjects.state.next({\n isValid\n });\n }\n }\n return isValid;\n };\n const setValues = (name, value, options) => Object.entries(value).forEach(([fieldKey, fieldValue]) => {\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) || !isPrimitive(fieldValue) || field && !field._f) && !isDateObject(fieldValue) ? setValues(fieldName, fieldValue, options) : setFieldValue(fieldName, fieldValue, options, true);\n });\n const _getWatch = (fieldNames, defaultValue, isMounted, isGlobal) => {\n const fieldValues = Object.assign({}, isMounted || _stateFlags.mount ? _formValues : isUndefined(defaultValue) ? _defaultValues : isString(fieldNames) ? {\n [fieldNames]: defaultValue\n } : defaultValue);\n if (!fieldNames) {\n isGlobal && (_names.watchAll = true);\n return fieldValues;\n }\n const result = [];\n for (const fieldName of convertToArrayPayload(fieldNames)) {\n isGlobal && _names.watch.add(fieldName);\n result.push(get(fieldValues, fieldName));\n }\n return Array.isArray(fieldNames) ? result : result[0];\n };\n const _updateFieldArray = (keyName, name, method, args, values = [], shouldSet = true, shouldSetFields = true) => {\n let output;\n _stateFlags.action = true;\n if (shouldSetFields && get(_fields, name)) {\n output = method(get(_fields, name), args.argA, args.argB);\n shouldSet && set(_fields, name, output);\n }\n if (Array.isArray(get(_formState.errors, name))) {\n const output = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSet && set(_formState.errors, name, output);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields && get(_formState.touchedFields, name)) {\n const output = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSet && set(_formState.touchedFields, name, output);\n unsetEmptyArray(_formState.touchedFields, name);\n }\n if (_proxyFormState.dirtyFields || _proxyFormState.isDirty) {\n set(_formState.dirtyFields, name, setFieldArrayDirtyFields(omitKey(values, keyName), get(_defaultValues, name, []), get(_formState.dirtyFields, name, [])));\n values && set(_formState.dirtyFields, name, setFieldArrayDirtyFields(omitKey(values, keyName), get(_defaultValues, name, []), get(_formState.dirtyFields, name, [])));\n unsetEmptyArray(_formState.dirtyFields, name);\n }\n _subjects.state.next({\n isDirty: _getIsDirty(name, omitKey(values, keyName)),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid\n });\n };\n const _getFieldArrayValue = name => get(_stateFlags.mount ? _formValues : _defaultValues, name, []);\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n set(_formValues, name, value);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: _formValues\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) && options.shouldDirty) {\n set(_formState.dirtyFields, name, setFieldArrayDirtyFields(value, get(_defaultValues, name, []), get(_formState.dirtyFields, name, [])));\n _subjects.state.next({\n name,\n dirtyFields: _formState.dirtyFields,\n isDirty: _getIsDirty(name, value)\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(value) ? setValues(name, value, options) : setFieldValue(name, value, options, true);\n }\n isFieldWatched(name) && _subjects.state.next({});\n _subjects.watch.next({\n name\n });\n };\n const trigger = async (name, options = {}) => {\n const fieldNames = convertToArrayPayload(name);\n let isValid;\n _subjects.state.next({\n isValidating: true\n });\n if (formOptions.resolver) {\n const schemaResult = await executeResolverValidation(isUndefined(name) ? name : fieldNames);\n isValid = name ? fieldNames.every(name => !get(schemaResult, name)) : isEmptyObject(schemaResult);\n } else {\n if (name) {\n isValid = (await Promise.all(fieldNames.map(async fieldName => {\n const field = get(_fields, fieldName);\n return await validateForm(field && field._f ? {\n [fieldName]: field\n } : field);\n }))).every(Boolean);\n _updateValid();\n } else {\n isValid = await validateForm(_fields);\n }\n }\n _subjects.state.next(Object.assign(Object.assign({}, isString(name) ? {\n name\n } : {}), {\n errors: _formState.errors,\n isValid,\n isValidating: false\n }));\n if (options.shouldFocus && !isValid) {\n focusFieldBy(_fields, key => get(_formState.errors, key), name ? fieldNames : _names.mount);\n }\n return isValid;\n };\n const getValues = fieldNames => {\n const values = Object.assign(Object.assign({}, _defaultValues), _stateFlags.mount ? _formValues : {});\n return isUndefined(fieldNames) ? values : isString(fieldNames) ? get(values, fieldNames) : fieldNames.map(name => get(values, name));\n };\n const clearErrors = name => {\n name ? convertToArrayPayload(name).forEach(inputName => unset(_formState.errors, inputName)) : _formState.errors = {};\n _subjects.state.next({\n errors: _formState.errors\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, {\n _f: {}\n })._f || {}).ref;\n set(_formState.errors, name, Object.assign(Object.assign({}, error), {\n ref\n }));\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (fieldName, defaultValue) => isFunction(fieldName) ? _subjects.watch.subscribe({\n next: info => fieldName(_getWatch(undefined, defaultValue), info)\n }) : _getWatch(fieldName, defaultValue, false, true);\n const unregister = (name, options = {}) => {\n for (const inputName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(inputName);\n _names.array.delete(inputName);\n if (get(_fields, inputName)) {\n if (!options.keepValue) {\n unset(_fields, inputName);\n unset(_formValues, inputName);\n }\n !options.keepError && unset(_formState.errors, inputName);\n !options.keepDirty && unset(_formState.dirtyFields, inputName);\n !options.keepTouched && unset(_formState.touchedFields, inputName);\n !formOptions.shouldUnregister && !options.keepDefaultValue && unset(_defaultValues, inputName);\n }\n }\n _subjects.watch.next({});\n _subjects.state.next(Object.assign(Object.assign({}, _formState), !options.keepDirty ? {} : {\n isDirty: _getIsDirty()\n }));\n !options.keepIsValid && _updateValid();\n };\n const registerFieldRef = (name, fieldRef, options) => {\n register(name, options);\n let field = get(_fields, name);\n const ref = isUndefined(fieldRef.value) ? fieldRef.querySelectorAll ? fieldRef.querySelectorAll('input,select,textarea')[0] || fieldRef : fieldRef : fieldRef;\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\n if (ref === field._f.ref || isRadioOrCheckbox && compact(field._f.refs || []).find(option => option === ref)) {\n return;\n }\n field = {\n _f: isRadioOrCheckbox ? Object.assign(Object.assign({}, field._f), {\n refs: [...compact(field._f.refs || []).filter(ref => isHTMLElement(ref) && document.contains(ref)), ref],\n ref: {\n type: ref.type,\n name\n }\n }) : Object.assign(Object.assign({}, field._f), {\n ref\n })\n };\n set(_fields, name, field);\n (!options || !options.disabled) && _updateValidAndInputValue(name, false, ref);\n };\n const register = (name, options = {}) => {\n const field = get(_fields, name);\n set(_fields, name, {\n _f: Object.assign(Object.assign(Object.assign({}, field && field._f ? field._f : {\n ref: {\n name\n }\n }), {\n name,\n mount: true\n }), options)\n });\n _names.mount.add(name);\n if (!isUndefined(options.value)) {\n set(_formValues, name, options.value);\n }\n if (field && isBoolean(options.disabled)) {\n set(_formValues, name, options.disabled ? undefined : get(_formValues, name, getFieldValue(field._f)));\n }\n !field && _updateValidAndInputValue(name, true);\n return isWindowUndefined ? {\n name: name\n } : Object.assign(Object.assign({\n name\n }, isBoolean(options.disabled) ? {\n disabled: options.disabled\n } : {}), {\n onChange: handleChange,\n onBlur: handleChange,\n ref: ref => {\n if (ref) {\n registerFieldRef(name, ref, options);\n } else {\n const field = get(_fields, name, {});\n const _shouldUnregister = formOptions.shouldUnregister || options.shouldUnregister;\n if (field._f) {\n field._f.mount = false;\n }\n _shouldUnregister && !(isNameInFieldArray(_names.array, name) && _stateFlags.action) && _names.unMount.add(name);\n }\n }\n });\n };\n const handleSubmit = (onValid, onInvalid) => async e => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let hasNoPromiseError = true;\n let fieldValues = Object.assign({}, _formValues);\n _subjects.state.next({\n isSubmitting: true\n });\n try {\n if (formOptions.resolver) {\n const {\n errors,\n values\n } = await executeResolver();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await validateForm(_fields);\n }\n if (isEmptyObject(_formState.errors) && Object.keys(_formState.errors).every(name => get(fieldValues, name))) {\n _subjects.state.next({\n errors: {},\n isSubmitting: true\n });\n await onValid(fieldValues, e);\n } else {\n onInvalid && (await onInvalid(_formState.errors, e));\n formOptions.shouldFocusError && focusFieldBy(_fields, key => get(_formState.errors, key), _names.mount);\n }\n } catch (err) {\n hasNoPromiseError = false;\n throw err;\n } finally {\n _formState.isSubmitted = true;\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && hasNoPromiseError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors\n });\n }\n };\n const reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues || _defaultValues;\n const values = cloneObject(updatedValues);\n if (!keepStateOptions.keepValues) {\n _formValues = props.shouldUnregister ? {} : values;\n }\n if (isWeb && !keepStateOptions.keepValues) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const inputRef = Array.isArray(field._f.refs) ? field._f.refs[0] : field._f.ref;\n try {\n isHTMLElement(inputRef) && inputRef.closest('form').reset();\n break;\n } catch (_a) {}\n }\n }\n }\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = Object.assign({}, updatedValues);\n }\n if (!keepStateOptions.keepValues) {\n _fields = {};\n _subjects.control.next({\n values: keepStateOptions.keepDefaultValues ? _defaultValues : Object.assign({}, updatedValues)\n });\n _subjects.watch.next({});\n _subjects.array.next({\n values\n });\n }\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: ''\n };\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount ? _formState.submitCount : 0,\n isDirty: keepStateOptions.keepDirty ? _formState.isDirty : keepStateOptions.keepDefaultValues ? deepEqual(formValues, _defaultValues) : false,\n isSubmitted: keepStateOptions.keepIsSubmitted ? _formState.isSubmitted : false,\n dirtyFields: keepStateOptions.keepDirty ? _formState.dirtyFields : {},\n touchedFields: keepStateOptions.keepTouched ? _formState.touchedFields : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false\n });\n _stateFlags.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n _stateFlags.watch = !!props.shouldUnregister;\n };\n const setFocus = name => get(_fields, name)._f.ref.focus();\n const _removeFields = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field && (field._f.refs ? field._f.refs.every(live) : live(field._f.ref)) && unregister(name);\n }\n _names.unMount = new Set();\n };\n return {\n control: {\n register,\n unregister,\n _getWatch,\n _getIsDirty,\n _updateValid,\n _removeFields,\n _updateFieldArray,\n _getFieldArrayValue,\n _subjects,\n _shouldUnregister: formOptions.shouldUnregister,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n set _fields(value) {\n _fields = value;\n },\n get _formValues() {\n return _formValues;\n },\n set _formValues(value) {\n _formValues = value;\n },\n get _stateFlags() {\n return _stateFlags;\n },\n set _stateFlags(value) {\n _stateFlags = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n set _defaultValues(value) {\n _defaultValues = value;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n _updateProps: options => {\n formOptions = Object.assign(Object.assign({}, defaultOptions), options);\n }\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n clearErrors,\n unregister,\n setError,\n setFocus\n };\n}\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n dirtyFields: {},\n isSubmitted: false,\n submitCount: 0,\n touchedFields: {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n errors: {}\n });\n if (_formControl.current) {\n _formControl.current.control._updateProps(props);\n } else {\n _formControl.current = Object.assign(Object.assign({}, createFormControl(props)), {\n formState\n });\n }\n const control = _formControl.current.control;\n React.useEffect(() => {\n const formStateSubscription = control._subjects.state.subscribe({\n next(formState) {\n if (shouldRenderFormState(formState, control._proxyFormState, true)) {\n control._formState = Object.assign(Object.assign({}, control._formState), formState);\n updateFormState(Object.assign({}, control._formState));\n }\n }\n });\n return () => {\n formStateSubscription.unsubscribe();\n };\n }, [control]);\n React.useEffect(() => {\n if (!control._stateFlags.mount) {\n control._proxyFormState.isValid && control._updateValid();\n control._stateFlags.mount = true;\n }\n if (control._stateFlags.watch) {\n control._stateFlags.watch = false;\n control._subjects.state.next({});\n }\n control._removeFields();\n });\n _formControl.current.formState = getProxyFormState(formState, control._proxyFormState);\n return _formControl.current;\n}\nexport { Controller as C, ErrorBoundary as E, HighchartsReact as H, Table as T, classnames as c, useForm as u };","import React from 'react';\nimport { createMemoStyles, safeRest } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (_a) {\n var radius = _a.radius,\n palette = _a.palette,\n motion = _a.motion;\n var progressBar = {\n borderRadius: radius.zero,\n height: {\n sm: 4,\n md: 8,\n lg: 16\n },\n fillColor: palette.primary.main,\n trackColor: palette.muted.main\n };\n return {\n wrenchProgressBar: function (_a) {\n var color = _a.color,\n size = _a.size;\n return {\n width: '100%',\n background: progressBar.trackColor,\n borderRadius: progressBar.borderRadius,\n $wrenchProgressBarFill: {\n background: color && palette[color].main,\n height: size && progressBar.height[size]\n }\n };\n },\n wrenchProgressBarFill: function (_a) {\n var color = _a.color,\n size = _a.size;\n return {\n transition: \"width 350ms \".concat(motion.curve.ease),\n height: size && progressBar.height[size],\n borderRadius: progressBar.borderRadius,\n background: color && palette[color].main\n };\n }\n };\n});\nvar ProgressBar = function (_a) {\n var percent = _a.percent,\n _b = _a.size,\n size = _b === void 0 ? 'md' : _b,\n _c = _a.color,\n color = _c === void 0 ? 'success' : _c,\n rest = __rest(_a, [\"percent\", \"size\", \"color\"]);\n var classes = useStyles({\n color: color,\n size: size\n });\n var progressWidthStyle = {\n width: \"\".concat(percent, \"%\")\n };\n return React.createElement(\"div\", __assign({\n className: classes.wrenchProgressBar,\n role: \"progressbar\",\n \"aria-valuenow\": percent,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-label\": \"progress-bar\"\n }, safeRest(rest)), React.createElement(\"div\", {\n style: progressWidthStyle,\n className: classes.wrenchProgressBarFill\n }));\n};\nvar PROGRESS_BAR_SIZES = ['sm', 'md', 'lg'];\nvar PROGRESS_BAR_COLORS = ['primary', 'secondary', 'success', 'warning', 'error', 'upgrade', 'info'];\nexport { PROGRESS_BAR_COLORS, PROGRESS_BAR_SIZES, ProgressBar };","import React, { forwardRef } from 'react';\nimport { createMemoStyles, darken, lighten, defaultBaseline, defaultFonts, visuallyHidden, clsx, safeRest, KEYS } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\n/** Resolves the correct color */\nvar getMarkedColor = function (color, palette) {\n if (!color || typeof color !== 'string') {\n return palette.primary.main;\n }\n if (color.startsWith('data-')) {\n return palette.data[color.replace('data-', '')];\n }\n return palette[color].main;\n};\nvar useStyles$1 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n border = theme.border,\n spacing = theme.spacing,\n motion = theme.motion,\n type = theme.type;\n var list = {\n addonIconColor: palette.background.dark,\n affordanceIconColor: palette.secondary.main,\n itemHeight: 48,\n itemMinHeight: 48,\n itemDenseMinHeight: 40,\n labelFontSize: type.fontSize.bodySm,\n markWidth: 4\n };\n var listStyles = {\n wrenchListRow: {\n borderBottom: border.main,\n '&:last-child': {\n borderBottom: 'none'\n },\n 'a&': {\n color: palette.text.dark,\n '&:hover, &:focus': {\n textDecoration: 'none'\n }\n }\n },\n wrenchListItem: function (_a) {\n var accordion = _a.accordion,\n color = _a.color,\n marked = _a.marked,\n menu = _a.menu,\n disabled = _a.disabled,\n upgrade = _a.upgrade,\n interactive = _a.interactive,\n isFocused = _a.isFocused,\n transparent = _a.transparent;\n return __assign(__assign(__assign(__assign(__assign({}, defaultBaseline), defaultFonts(theme)), {\n fontWeight: menu ? type.fontWeight.regular : type.fontWeight.medium,\n display: 'flex',\n background: transparent ? 'none' : palette.background.light,\n position: 'relative',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: list.itemMinHeight,\n 'a&': {\n textDecoration: 'none'\n }\n }), accordion && {\n '&:hover, &:focus, &:active': {\n cursor: 'pointer'\n }\n }), {\n // same specificity as parent List rules\n '[class^=\"wrenchList-\"] &': __assign(__assign(__assign(__assign(__assign({}, interactive && __assign(__assign({\n transition: 'background 180ms linear'\n }, isFocused && {\n transition: 'background 125ms linear',\n background: palette.background.accent,\n cursor: 'pointer'\n }), {\n '&:hover, &:focus': {\n transition: 'background 125ms linear',\n background: palette.background.accent,\n cursor: 'pointer'\n },\n '&:active': {\n transition: 'background 125ms linear',\n background: darken(0.05, palette.background.accent)\n }\n })), upgrade && {\n background: lighten(0.42, palette.upgrade.main) // same specificity as transparent List rule\n }), upgrade && interactive && {\n '&:hover, &:focus': {\n background: lighten(0.35, palette.upgrade.main) // same specificity as transparent List rule\n }\n }), disabled && {\n opacity: 0.5,\n pointerEvents: 'none'\n }), {\n '&:before': __assign({}, (color || marked) && {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n width: list.markWidth,\n background: getMarkedColor(color, palette)\n })\n })\n });\n },\n wrenchListAddon: function () {\n return {\n padding: [0, spacing[4], 0, spacing[5]],\n color: list.addonIconColor,\n display: 'flex',\n alignItems: 'center',\n '> [class^=\"wrenchIcons-\"]': {\n marginLeft: spacing[2]\n }\n };\n },\n /** Additional styles when addon is on the right */\n wrenchListAddonOnRight: function () {\n return {\n paddingLeft: 0,\n paddingRight: spacing[6],\n color: palette.text.lightMuted\n };\n },\n wrenchListAffordance: function (_a) {\n var addOnLeft = _a.addOnLeft;\n return __assign({\n padding: [0, spacing[6], 0, 0],\n color: list.affordanceIconColor,\n display: 'flex',\n alignItems: 'center',\n '& > *': {\n transition: \"transform 150ms \".concat(motion.curve.ease)\n }\n }, addOnLeft && {\n paddingLeft: 0\n });\n },\n wrenchListLabel: function (_a) {\n var addOnLeft = _a.addOnLeft;\n return __assign({\n flexGrow: 1,\n padding: [0, spacing[5]],\n fontSize: list.labelFontSize,\n lineHeight: 1.25,\n minWidth: 0,\n 'a &': {\n color: palette.text.dark\n }\n }, addOnLeft && {\n paddingLeft: 0\n });\n },\n wrenchPaneHide: function (_a) {\n var expanded = _a.expanded;\n return expanded ? null : visuallyHidden;\n }\n };\n return listStyles;\n});\nvar ListItem = forwardRef(function (_a, ref) {\n var addOnLeft = _a.addOnLeft,\n addOnRight = _a.addOnRight,\n affordance = _a.affordance,\n children = _a.children,\n color = _a.color,\n component = _a.component,\n _b = _a.disabled,\n disabled = _b === void 0 ? false : _b,\n id = _a.id,\n index = _a.index,\n _c = _a.isFocused,\n isFocused = _c === void 0 ? false : _c,\n _d = _a.interactive,\n interactive = _d === void 0 ? false : _d,\n _e = _a.marked,\n marked = _e === void 0 ? false : _e,\n _f = _a.menu,\n menu = _f === void 0 ? false : _f,\n // eslint-disable-next-line no-script-url\n _g = _a.navigationTarget,\n // eslint-disable-next-line no-script-url\n navigationTarget = _g === void 0 ? 'javascript:void(0)' : _g,\n onClick = _a.onClick,\n _h = _a.upgrade,\n upgrade = _h === void 0 ? false : _h,\n _j = _a.isNavigable,\n isNavigable = _j === void 0 ? false : _j,\n transparent = _a.transparent,\n other = __rest(_a, [\"addOnLeft\", \"addOnRight\", \"affordance\", \"children\", \"color\", \"component\", \"disabled\", \"id\", \"index\", \"isFocused\", \"interactive\", \"marked\", \"menu\", \"navigationTarget\", \"onClick\", \"upgrade\", \"isNavigable\", \"transparent\"]);\n // no reason to expose these in props\n var _k = other.accordion,\n accordion = _k === void 0 ? false : _k,\n expanded = other.expanded,\n paneComponent = other.paneComponent,\n rest = __rest(other, [\"accordion\", \"expanded\", \"paneComponent\"]);\n var _l = useStyles$1({\n accordion: accordion,\n color: color,\n marked: marked,\n menu: menu,\n disabled: disabled,\n upgrade: upgrade,\n isFocused: isFocused,\n interactive: interactive,\n addOnLeft: addOnLeft,\n expanded: expanded,\n transparent: transparent\n }),\n wrenchListRow = _l.wrenchListRow,\n wrenchListItem = _l.wrenchListItem,\n wrenchListLabel = _l.wrenchListLabel,\n wrenchListAddon = _l.wrenchListAddon,\n wrenchListAddonOnRight = _l.wrenchListAddonOnRight,\n wrenchListAffordance = _l.wrenchListAffordance;\n var addOnClassNames = clsx(wrenchListAddon, wrenchListAddonOnRight);\n var href = isNavigable ? navigationTarget : undefined;\n var ListItemWrapper = isNavigable ? component !== null && component !== void 0 ? component : 'a' : 'div';\n var interactiveProps = interactive ? {\n tabIndex: disabled ? '-1' : 0,\n role: 'button'\n } : {};\n var onHandleKeyDown = function (e) {\n if (onClick && (e.key === KEYS.ENTER || e.key === KEYS.SPACE)) {\n onClick(e);\n }\n };\n return React.createElement(\"li\", {\n className: wrenchListRow\n }, React.createElement(ListItemWrapper, __assign({\n disabled: disabled,\n className: wrenchListItem,\n onClick: function (e) {\n return onClick === null || onClick === void 0 ? void 0 : onClick(e);\n },\n onKeyDown: onHandleKeyDown,\n href: href,\n id: id,\n \"data-index\": index,\n ref: ref\n }, interactiveProps, safeRest(rest)), addOnLeft && React.createElement(\"div\", {\n className: wrenchListAddon\n }, addOnLeft), React.createElement(\"span\", {\n className: wrenchListLabel\n }, children), addOnRight && React.createElement(\"div\", {\n className: addOnClassNames\n }, addOnRight), affordance && React.createElement(\"span\", {\n className: wrenchListAffordance\n }, affordance)), typeof expanded !== 'undefined' && paneComponent);\n});\n// The displayName is needed for component's Accordion and perhaps other consumers in the future\n// https://reactjs.org/docs/forwarding-refs.html#displaying-a-custom-name-in-devtools\nListItem.displayName = 'ListItem';\nvar useStyles = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n type = theme.type;\n var list = {\n itemDenseMinHeight: 40\n };\n var listStyles = {\n wrenchList: function (_a) {\n var dense = _a.dense,\n noRules = _a.noRules;\n return __assign(__assign(__assign(__assign({}, defaultBaseline), {\n display: 'block'\n }), dense && {\n '& [class^=\"wrenchListAddon-\"]': {\n paddingLeft: spacing[4],\n '& [class^=\"wrenchIcons-\"]': {\n paddingLeft: 0\n }\n },\n // second className so it needs `*- not ^=` selector\n '& [class*=\"wrenchListAddonOnRight-\"]': {\n paddingRight: spacing[4]\n },\n '& [class^=\"wrenchListLabel-\"]': {\n fontWeight: type.fontWeight.regular,\n margin: [spacing[3] + 1, 0]\n },\n '& [class^=\"wrenchListItem-\"]': {\n minHeight: list.itemDenseMinHeight,\n borderBottom: 'none'\n }\n }), noRules && {\n '& [class^=\"wrenchListRow-\"]': {\n borderBottom: 'none'\n }\n });\n }\n };\n return listStyles;\n});\nvar List = forwardRef(function (_a, ref) {\n var _b = _a.dense,\n dense = _b === void 0 ? false : _b,\n _c = _a.interactive,\n interactive = _c === void 0 ? false : _c,\n _d = _a.noRules,\n noRules = _d === void 0 ? false : _d,\n _e = _a.transparent,\n transparent = _e === void 0 ? false : _e,\n children = _a.children,\n role = _a.role,\n id = _a.id;\n var wrenchList = useStyles({\n dense: dense,\n interactive: interactive,\n noRules: noRules,\n transparent: transparent\n }).wrenchList;\n var newChildren = React.Children.map(children, function (child, index) {\n return React.isValidElement(child) && React.cloneElement(child, {\n interactive: interactive,\n index: index,\n transparent: transparent\n });\n });\n return React.createElement(\"ul\", {\n ref: ref,\n className: wrenchList,\n role: role,\n id: id\n }, newChildren);\n});\nList.displayName = 'List';\nList.Item = ListItem;\nexport { List };","import React, { forwardRef, Children, cloneElement, useRef, useState, useMemo, useEffect, useCallback, isValidElement } from 'react';\nimport { useTheme } from 'react-jss';\nimport { Fade } from '@wds/motion';\nimport { safeRest, createMemoStyles, defaultFonts, uniqueId, notEmpty, isBrowser, KEYS, conditionGuard, isElement, handlePortal, getDisplayName } from '@wds/utils';\nimport { List } from '@wds/list';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar MenuItem = forwardRef(function (_a, ref) {\n var addOn = _a.addOn,\n _b = _a.addOnPlacement,\n addOnPlacement = _b === void 0 ? \"left\" : _b,\n color = _a.color,\n onClick = _a.onClick,\n children = _a.children,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n _d = _a.component,\n component = _d === void 0 ? undefined : _d,\n _e = _a.isNavigable,\n isNavigable = _e === void 0 ? false : _e;\n _a.isFocused;\n var _g = _a.marked,\n marked = _g === void 0 ? false : _g,\n _h = _a.upgrade,\n upgrade = _h === void 0 ? false : _h,\n groupindex = _a.groupindex,\n handleMenuClose = _a.handleMenuClose,\n index = _a.index,\n _j = _a.role,\n role = _j === void 0 ? 'menuitem' : _j,\n id = _a.id,\n rest = __rest(_a, [\"addOn\", \"addOnPlacement\", \"color\", \"onClick\", \"children\", \"disabled\", \"component\", \"isNavigable\", \"isFocused\", \"marked\", \"upgrade\", \"groupindex\", \"handleMenuClose\", \"index\", \"role\", \"id\"]);\n var onHandleClick = function (e) {\n if (onClick) onClick(e);\n if (handleMenuClose) handleMenuClose(e);\n e.stopPropagation();\n };\n return React.createElement(List.Item, __assign({\n addOnLeft: addOnPlacement === 'left' ? addOn : undefined,\n addOnRight: addOnPlacement === 'right' ? addOn : undefined,\n color: color,\n component: component,\n \"data-group\": groupindex,\n disabled: disabled,\n index: index,\n isNavigable: isNavigable,\n marked: marked,\n menu: true,\n interactive: true,\n onClick: onHandleClick,\n role: role,\n upgrade: upgrade,\n tabIndex: disabled ? -1 : 0,\n ref: ref,\n id: id\n }, safeRest(rest)), children);\n});\nMenuItem.displayName = 'MenuItem';\nvar useStyles$1 = createMemoStyles(function (theme) {\n var border = theme.border;\n return {\n wrenchMenuGroup: function () {\n return {\n borderBottom: border.main\n };\n }\n };\n});\nvar renderListItems = function (_a) {\n var children = _a.children,\n groupIndex = _a.groupIndex,\n onKeyDown = _a.onKeyDown,\n handleMenuClose = _a.handleMenuClose;\n var listItems = Children.map(children, function (child) {\n if (!React.isValidElement(child)) return null;\n return cloneElement(child, {\n groupindex: groupIndex,\n handleMenuClose: handleMenuClose,\n onKeyDown: onKeyDown\n });\n });\n return listItems;\n};\nvar MenuGroup = function (_a) {\n var children = _a.children,\n title = _a.title,\n dense = _a.dense,\n groupIndex = _a.groupIndex,\n onKeyDown = _a.onKeyDown,\n handleMenuClose = _a.handleMenuClose,\n rest = __rest(_a, [\"children\", \"title\", \"dense\", \"groupIndex\", \"onKeyDown\", \"handleMenuClose\"]);\n var classes = useStyles$1();\n return React.createElement(List, __assign({\n noRules: true,\n dense: dense\n }, rest), title && React.createElement(List.Item, null, title), React.createElement(\"section\", {\n className: classes.wrenchMenuGroup\n }, renderListItems({\n children: children,\n groupIndex: groupIndex,\n onKeyDown: onKeyDown,\n handleMenuClose: handleMenuClose\n })));\n};\nMenuGroup.displayName = 'MenuGroup';\nvar useStyles = createMemoStyles(function (theme) {\n var palette = theme.palette,\n shadow = theme.shadow;\n var menu = {\n boxShadow: shadow.space,\n maxWidth: 300,\n minWidth: 175,\n maxHeight: 325\n };\n return {\n wrenchMenuContainer: function (_a) {\n var stretched = _a.stretched;\n return __assign(__assign({}, defaultFonts(theme)), {\n position: 'relative',\n display: stretched ? 'block' : 'inline-block',\n outline: 'none'\n });\n },\n wrenchMenu: function (_a) {\n var menuStyle = _a.menuStyle,\n placement = _a.placement,\n stretched = _a.stretched,\n elevation = _a.elevation;\n return __assign(__assign({\n position: 'absolute',\n zIndex: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.sky,\n display: 'block',\n outline: 'none',\n textAlign: 'left',\n color: palette.text.dark,\n minWidth: menu.minWidth,\n maxWidth: stretched ? 'none' : menu.maxWidth,\n boxShadow: menu.boxShadow,\n background: palette.background.light,\n whiteSpace: 'noWrap'\n }, placement && {\n 'bottom-left': {\n left: 0,\n top: '100%'\n },\n 'bottom-right': {\n left: 'auto',\n right: 0,\n top: '100%'\n },\n 'top-left': {\n left: 0,\n top: 'auto',\n bottom: '100%'\n },\n 'top-right': {\n left: 'auto',\n right: 0,\n top: 'auto',\n bottom: '100%'\n }\n }[placement]), menuStyle);\n },\n wrenchMenuBody: function (_a) {\n var noMaxHeight = _a.noMaxHeight;\n return {\n maxHeight: noMaxHeight ? 'none' : menu.maxHeight,\n overflowY: 'auto'\n };\n }\n };\n});\nvar FOCUS_STATES;\n(function (FOCUS_STATES) {\n FOCUS_STATES[\"TOP\"] = \"top\";\n FOCUS_STATES[\"BOTTOM\"] = \"bottom\";\n})(FOCUS_STATES || (FOCUS_STATES = {}));\nvar MENU_PLACEMENTS = ['bottom-right', 'bottom-left', 'top-right', 'top-left'];\nvar Menu = function (_a) {\n var id = _a.id,\n autoClose = _a.autoClose,\n children = _a.children,\n dense = _a.dense,\n placement = _a.placement,\n menuTrigger = _a.menuTrigger,\n noMaxHeight = _a.noMaxHeight,\n onChange = _a.onChange,\n showProp = _a.show,\n stretched = _a.stretched,\n renderTo = _a.renderTo,\n role = _a.role,\n noRules = _a.noRules,\n elevation = _a.elevation,\n preventDefault = _a.preventDefault,\n stopPropagation = _a.stopPropagation,\n rest = __rest(_a, [\"id\", \"autoClose\", \"children\", \"dense\", \"placement\", \"menuTrigger\", \"noMaxHeight\", \"onChange\", \"show\", \"stretched\", \"renderTo\", \"role\", \"noRules\", \"elevation\", \"preventDefault\", \"stopPropagation\"]);\n // Refs\n var menuRef = useRef(null);\n var innerMenuRef = useRef(null);\n var itemsRef = useRef([]);\n // Menu State Items\n var _b = useState(showProp),\n showState = _b[0],\n setShowState = _b[1];\n var _c = useState({}),\n menuStyle = _c[0],\n setMenuStyle = _c[1];\n //\n var _d = useState(null),\n focusState = _d[0],\n setFocusState = _d[1];\n var _e = useState(-1),\n focusIndex = _e[0],\n setFocusIndex = _e[1];\n // For memoizing handleOnKeyDown\n var keyPropRef = useRef({\n focusIndex: focusIndex,\n showState: showState\n });\n keyPropRef.current = {\n focusIndex: focusIndex,\n showState: showState\n };\n // aria-owns for a11y\n var menuID = useMemo(function () {\n return id !== null && id !== void 0 ? id : uniqueId('wds-menu-');\n }, [id]);\n // Styles\n var theme = useTheme();\n var classes = useStyles({\n menuStyle: menuStyle,\n noMaxHeight: noMaxHeight,\n placement: placement,\n stretched: stretched,\n elevation: elevation\n });\n /**\n * a way to help replicate componentWillReceiveProps\n * and componentDidUpdate\n */\n var prevPropsRef = useRef({});\n useEffect(function () {\n prevPropsRef.current = {\n showProp: showProp,\n showState: showState\n };\n /**\n * Each time the MenuItem List is generated through the menu button trigger\n * this code will create a list of accessible ListItems to traverse through.\n */\n if (showState && innerMenuRef.current) {\n itemsRef.current = [].slice.call(innerMenuRef.current.getElementsByTagName('li')).map(function (item) {\n return item.firstChild;\n }).filter(notEmpty);\n }\n /**\n * When showProp is still set to True, but showState is false,\n * we need sync showState up with showProp\n */\n if (showProp && showState !== showProp) {\n setShowState(showProp);\n }\n }, [showProp, showState, children]);\n var prevProps = prevPropsRef.current;\n // This will auto focus the first or last item\n useEffect(function () {\n var _a;\n if (focusState) {\n var focusInd = focusState === FOCUS_STATES.TOP ? 0 : itemsRef.current.length - 1;\n if (itemsRef.current[focusInd]) {\n (_a = itemsRef.current[focusInd]) === null || _a === void 0 ? void 0 : _a.focus();\n }\n setFocusIndex(focusInd);\n }\n }, [focusState]);\n /**\n * @todo needs Modal\n * Update the placement of the menu when renderTo is passed in.\n */\n var updatePosition = function () {\n var _a, _b;\n if (menuRef.current && showState && ((_b = (_a = innerMenuRef === null || innerMenuRef === void 0 ? void 0 : innerMenuRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.length)) {\n var rect = menuRef.current.getBoundingClientRect();\n var innerRect = innerMenuRef.current.getBoundingClientRect();\n var plaementMap = {\n 'top-left': {\n top: rect.top - innerRect.height,\n left: rect.left\n },\n 'top-right': {\n top: rect.top - innerRect.height,\n left: rect.right - innerRect.width\n },\n 'bottom-left': {\n top: rect.bottom,\n left: rect.left\n },\n 'bottom-right': {\n top: rect.bottom,\n left: rect.right - innerRect.width\n }\n };\n var coordinates = plaementMap[placement !== null && placement !== void 0 ? placement : 'bottom-right'];\n var top_1 = coordinates.top,\n left = coordinates.left;\n var z = (elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space) + 1;\n setMenuStyle({\n top: top_1,\n left: left,\n zIndex: z,\n position: 'fixed',\n right: 'auto',\n bottom: 'auto' // fixes box-shadow not showing\n });\n }\n };\n\n var handleScroll = function () {\n if (showState && renderTo) {\n updatePosition();\n }\n };\n // componentDidMount\n useEffect(function () {\n if (showState && renderTo) updatePosition();\n // ssr doesn't have window object\n if (isBrowser) {\n window.addEventListener('scroll', handleScroll);\n window.addEventListener('resize', handleScroll);\n window.addEventListener('orientationchange', handleScroll);\n }\n // componentWillUnmount\n return function () {\n if (isBrowser) {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleScroll);\n window.removeEventListener('orientationchange', handleScroll);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [renderTo, showState]);\n // componentDidUpdate\n useEffect(function () {\n if (prevProps) {\n if (!prevProps.showState && showProp && renderTo) {\n updatePosition();\n }\n }\n });\n // componentWillReceiveProps\n useEffect(function () {\n setShowState(showProp);\n }, [showProp]);\n var menuChange = useCallback(function (showMenu) {\n if (!showMenu) {\n setFocusState(null);\n setFocusIndex(-1);\n }\n setShowState(showMenu);\n if (onChange) {\n onChange(showMenu);\n }\n }, [onChange]);\n var handleOnClick = function (e) {\n if (stopPropagation) {\n e.stopPropagation();\n }\n if (preventDefault) {\n e.preventDefault();\n }\n menuChange(!showState);\n };\n var handleKeyScroll = function (index) {\n if (itemsRef.current) {\n if (index > -1 && itemsRef.current[index]) {\n var menuItemHeight = itemsRef.current[index].offsetTop + itemsRef.current[index].offsetHeight;\n var menuContainerHeight = innerMenuRef.current.offsetHeight;\n innerMenuRef.current.scrollTop = menuItemHeight <= menuContainerHeight ? 0 : menuItemHeight - menuContainerHeight;\n }\n }\n };\n var handleOnKeyDown = useCallback(function (e) {\n var key = e.key;\n if (keyPropRef.current.showState) {\n var itemsLen = itemsRef.current.length - 1;\n var focusInd = keyPropRef.current.focusIndex === -1 ? 0 : keyPropRef.current.focusIndex;\n var newFocusIndex = 0;\n switch (key) {\n case KEYS.TAB:\n case KEYS.ESC:\n menuChange(false);\n if (menuRef.current.firstChild) {\n menuRef.current.firstChild.focus();\n }\n e.preventDefault();\n break;\n /**\n * TODO: Needs to handle space in a better way\n */\n case KEYS.ENTER:\n itemsRef.current[focusInd].click();\n break;\n case KEYS.UP:\n newFocusIndex = focusInd > 0 ? focusInd - 1 : itemsLen;\n break;\n case KEYS.DOWN:\n newFocusIndex = focusInd === itemsLen ? 0 : focusInd + 1;\n break;\n }\n if (key === KEYS.UP || key === KEYS.DOWN) {\n setFocusIndex(newFocusIndex);\n handleKeyScroll(newFocusIndex);\n if (newFocusIndex > -1 && itemsRef.current[newFocusIndex]) {\n itemsRef.current[newFocusIndex].focus();\n e.preventDefault();\n }\n }\n }\n }, [menuChange]);\n var handleOnTriggerKeyDown = function (e) {\n var key = e.key;\n if (React.isValidElement(menuTrigger) && conditionGuard(menuTrigger.props, Object.prototype.hasOwnProperty.call(menuTrigger.props, 'onKeyDown'))) {\n menuTrigger.props.onKeyDown(e);\n }\n var isNotInput = getDisplayName(menuTrigger) !== 'Input';\n if (isNotInput) {\n switch (key) {\n case KEYS.ENTER:\n case KEYS.DOWN:\n // TODO: Find a better way to handle this type\n handleOnClick(e);\n setFocusState(FOCUS_STATES.TOP);\n e.preventDefault();\n break;\n case KEYS.UP:\n // TODO: Find a better way to handle this type\n handleOnClick(e);\n setFocusState(FOCUS_STATES.BOTTOM);\n e.preventDefault();\n break;\n }\n }\n };\n var handleAutoCloseBlur = function () {\n setTimeout(function () {\n var _a;\n var renderToComp = null;\n if (renderTo) {\n if (renderTo && conditionGuard(renderTo, isElement(renderTo))) renderToComp = renderTo;else if (renderTo.current) renderToComp = renderTo.current;\n }\n var isFocusInRenderContainer = renderToComp === null || renderToComp === void 0 ? void 0 : renderToComp.contains(document.activeElement);\n var isFocusInMenuRef = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.contains(document.activeElement);\n if (!isFocusInRenderContainer && !isFocusInMenuRef) {\n menuChange(false);\n }\n }, 0);\n };\n var handleMenuClose = useCallback(function () {\n if (autoClose) {\n menuChange(false);\n }\n }, [autoClose, menuChange]);\n var renderListItems = function (ch, groupindex, handleMenu) {\n var listItems = Children.map(ch, function (child) {\n if (!React.isValidElement(child)) return null;\n return cloneElement(child, {\n groupindex: groupindex,\n // isFocused,\n onKeyDown: handleOnKeyDown,\n handleMenuClose: handleMenu\n });\n });\n return listItems;\n };\n var renderMenuGroup = function (el, groupIndex, handleMenu) {\n return cloneElement(el, __assign(__assign({}, el.props), {\n groupIndex: groupIndex,\n dense: dense,\n onKeyDown: handleOnKeyDown,\n handleMenuClose: handleMenu\n }));\n };\n var renderList = function () {\n var _a;\n var items = (_a = Children.map(children, function (child, index) {\n if (!isValidElement(child)) return undefined;\n if (getDisplayName(child) !== 'MenuGroup') return undefined;\n return renderMenuGroup(child, index, handleMenuClose);\n })) !== null && _a !== void 0 ? _a : [];\n if (items.length) return items;\n return React.createElement(List, __assign({\n interactive: true,\n dense: dense,\n noRules: noRules\n }, rest), children && renderListItems(children, 0, handleMenuClose));\n };\n var renderMenu = function () {\n var menuComponent = React.createElement(Fade, {\n in: showState,\n speed: \"fast\"\n }, React.createElement(\"div\", null, React.createElement(\"div\", {\n className: classes.wrenchMenu,\n role: role,\n id: menuID\n }, React.createElement(\"div\", {\n className: classes.wrenchMenuBody,\n ref: innerMenuRef\n }, renderList()))));\n return handlePortal(menuComponent, renderTo);\n };\n var renderTrigger = function () {\n var componentName = getDisplayName(menuTrigger);\n var isButton = componentName === 'Button';\n var isInput = componentName === 'Input';\n return cloneElement(menuTrigger, __assign(__assign(__assign({\n 'aria-haspopup': role\n }, showState && {\n 'aria-owns': menuID\n }), isButton && {\n 'aria-pressed': (showState !== null && showState !== void 0 ? showState : false) || showProp\n }), {\n onFocus: isInput ? handleOnClick : undefined,\n onClick: !isInput ? handleOnClick : undefined,\n onKeyDown: handleOnTriggerKeyDown,\n tabIndex: 0\n }));\n };\n return React.createElement(\"span\", __assign({\n className: classes.wrenchMenuContainer,\n onBlur: autoClose ? handleAutoCloseBlur : undefined,\n ref: menuRef,\n tabIndex: -1\n }, safeRest(rest)), renderTrigger(), renderMenu());\n};\nMenu.defaultProps = {\n autoClose: true,\n dense: false,\n placement: undefined,\n noMaxHeight: false,\n onChange: undefined,\n stretched: false,\n show: false,\n renderTo: undefined,\n id: undefined,\n role: 'menu',\n noRules: false,\n elevation: undefined,\n preventDefault: false\n};\nMenu.Item = MenuItem;\nMenu.Group = MenuGroup;\nexport { FOCUS_STATES, MENU_PLACEMENTS, Menu };","import React, { forwardRef, useCallback, Children, useState, useEffect, useMemo, useRef, isValidElement } from 'react';\nimport { createMemoStyles, safeRest, defaultBaseline, uniqueId, KEYS } from '@wds/utils';\nimport { Pane } from '@wds/internal-components';\nimport { IconCheck, IconError, IconInfoFilled, IconWarningFilled } from '@wds/icons';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar useStyles$1 = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n radius = theme.radius,\n palette = theme.palette,\n type = theme.type;\n var tab = {\n borderRadius: radius.zero,\n indicatorHeight: 3,\n indicatorColor: palette.primary.main,\n typeColor: palette.text.darkMuted,\n fontSize: type.fontSize.bodySm,\n fontWeight: type.fontWeight.medium,\n paddingY: spacing[3],\n paddingX: 2\n };\n var alignTab = function (align) {\n var alignmentMap = {\n left: {\n paddingLeft: spacing[6],\n '&:last-child': {\n paddingRight: spacing[6]\n }\n },\n right: {\n paddingRight: spacing[6],\n paddingLeft: 0,\n '&:first-child': {\n paddingLeft: spacing[6]\n }\n },\n even: {\n width: '100%',\n paddingLeft: 0,\n paddingRight: 0,\n grow: 1,\n overflow: 'hidden',\n textAlign: 'center'\n },\n center: {\n display: 'inline-block',\n padding: [0, spacing[3]]\n }\n };\n return alignmentMap[align];\n };\n var colorTabBtn = function (color, selected) {\n var buttonColorMap = {\n light: {\n color: selected ? tab.indicatorColor : palette.text.dark,\n borderBottom: selected ? \"\".concat(tab.indicatorHeight, \"px solid \").concat(tab.indicatorColor) : 'none'\n },\n dark: {\n color: palette.text.light,\n borderBottom: selected ? \"\".concat(tab.indicatorHeight, \"px solid \").concat(palette.text.light) : 'none'\n },\n transparent: {\n color: selected ? tab.indicatorColor : palette.text.dark,\n borderBottom: selected ? \"\".concat(tab.indicatorHeight, \"px solid \").concat(tab.indicatorColor) : 'none'\n }\n };\n return buttonColorMap[color];\n };\n return {\n wrenchTabIcon: {\n display: 'inline',\n paddingLeft: spacing[2]\n },\n wrenchTab: function (_a) {\n var align = _a.align;\n return __assign({\n boxSizing: 'border-box',\n margin: 0,\n backgroundColor: 'transparent'\n }, alignTab(align));\n },\n wrenchTabBtn: function (_a) {\n var color = _a.color,\n selected = _a.selected,\n disabled = _a.disabled;\n return __assign(__assign({\n display: 'block',\n background: 'transparent',\n border: 'none',\n borderRadius: 0,\n padding: \"\".concat(tab.paddingY, \"px \").concat(tab.paddingX, \"px\"),\n fontSize: tab.fontSize,\n fontWeight: tab.fontWeight,\n fontFamily: type.fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n cursor: 'pointer',\n width: '100%',\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n opacity: disabled ? 0.5 : 1,\n pointerEvents: disabled ? 'none' : 'auto'\n }, colorTabBtn(color, selected)), {\n '&:hover, &:focus': {\n textDecoration: 'none'\n }\n });\n }\n };\n});\nvar TabIcon = function (_a) {\n var indicator = _a.indicator,\n wrenchTabIcon = _a.wrenchTabIcon;\n return React.createElement(\"div\", {\n className: wrenchTabIcon\n }, {\n success: React.createElement(IconCheck, {\n title: \"TabIndicator\",\n color: \"success\"\n }),\n error: React.createElement(IconError, {\n title: \"TabIndicator\",\n color: \"error\"\n }),\n info: React.createElement(IconInfoFilled, {\n title: \"TabIndicator\",\n color: \"info\"\n }),\n warning: React.createElement(IconWarningFilled, {\n title: \"TabIndicator\",\n color: \"warning\"\n })\n }[indicator]);\n};\nvar Tab = forwardRef(function (_a, ref) {\n var _b = _a.selected,\n selected = _b === void 0 ? false : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n id = _a.id,\n _d = _a.align,\n align = _d === void 0 ? 'left' : _d,\n _e = _a.color,\n color = _e === void 0 ? 'light' : _e,\n indicator = _a.indicator,\n _f = _a.value,\n value = _f === void 0 ? 0 : _f,\n onKeyDown = _a.onKeyDown,\n onClick = _a.onClick,\n children = _a.children,\n rest = __rest(_a, [\"selected\", \"disabled\", \"id\", \"align\", \"color\", \"indicator\", \"value\", \"onKeyDown\", \"onClick\", \"children\"]);\n var _g = useStyles$1({\n selected: selected,\n disabled: disabled,\n align: align,\n color: color\n }),\n wrenchTab = _g.wrenchTab,\n wrenchTabBtn = _g.wrenchTabBtn,\n wrenchTabIcon = _g.wrenchTabIcon;\n var handleClick = function (evt) {\n onClick(evt, evt.target, value, id);\n };\n var handleKeyPress = function (evt) {\n if (onKeyDown) {\n onKeyDown(evt, id);\n }\n };\n return React.createElement(\"li\", __assign({\n role: \"presentation\",\n className: wrenchTab\n }, safeRest(rest)), React.createElement(\"button\", {\n onKeyDown: handleKeyPress,\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": selected,\n \"aria-disabled\": disabled,\n disabled: disabled,\n value: value,\n tabIndex: disabled || !selected ? -1 : 0,\n onClick: handleClick,\n className: wrenchTabBtn,\n id: id,\n ref: ref\n }, children, indicator && React.createElement(TabIcon, {\n indicator: indicator,\n wrenchTabIcon: wrenchTabIcon\n })));\n});\nvar useStyles = createMemoStyles(function (theme) {\n var border = theme.border,\n radius = theme.radius,\n palette = theme.palette;\n var alignTabs = function (align) {\n return {\n left: {\n justifyContent: 'flex-start'\n },\n right: {\n justifyContent: 'flex-end'\n },\n even: {\n justifyContent: 'center'\n },\n center: {\n whiteSpace: 'nowrap',\n textAlign: 'center'\n }\n }[align];\n };\n var colorTabs = function (color) {\n return {\n light: {\n background: palette.background.light\n },\n dark: {\n background: palette.background.dark\n },\n transparent: {\n background: 'transparent',\n borderBottom: border.main\n }\n }[color];\n };\n return {\n wrenchTabs: function (_a) {\n var align = _a.align,\n color = _a.color;\n return __assign(__assign(__assign(__assign({}, defaultBaseline), {\n // if align is set to center\n display: align === 'center' ? 'block' : 'flex',\n flexDirection: 'row',\n alignContent: 'flex-start',\n overflowX: 'auto',\n borderRadius: radius.zero\n }), alignTabs(align)), colorTabs(color));\n },\n wrenchTabPanes: {}\n };\n});\nvar Tabs = function (_a) {\n var _b = _a.align,\n align = _b === void 0 ? 'left' : _b,\n _c = _a.color,\n color = _c === void 0 ? 'light' : _c,\n _d = _a.fullWidth,\n fullWidth = _d === void 0 ? false : _d,\n _e = _a.selectionFollowsFocus,\n selectionFollowsFocus = _e === void 0 ? true : _e,\n onChange = _a.onChange,\n children = _a.children,\n rest = __rest(_a, [\"align\", \"color\", \"fullWidth\", \"selectionFollowsFocus\", \"onChange\", \"children\"]);\n // Finds the first selected tab that is not set to disabled\n var getSelectedValue = useCallback(function (prevSelected) {\n if (prevSelected === void 0) {\n prevSelected = -1;\n }\n var selected = prevSelected;\n Children.forEach(children, function (child, index) {\n var _a, _b;\n if (((_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.selected) && !child.props.disabled) {\n selected = (_b = child.props.value) !== null && _b !== void 0 ? _b : index;\n }\n });\n return selected;\n }, [children]);\n // Initializes selectedValue with either null or first tab that has selected=true\n var _f = useState(getSelectedValue),\n selectedValue = _f[0],\n setSelectedValue = _f[1];\n // When controlled selected value changes in children, this will change selected value\n useEffect(function () {\n setSelectedValue(getSelectedValue);\n }, [getSelectedValue]);\n // Creates a uniqueID for this Tabs component\n var uniqueTabName = useMemo(function () {\n return uniqueId('wds-tab-');\n }, []);\n var tabListRef = useRef(null);\n var tabRef = useRef(null);\n var paneRef = useRef(null);\n var _g = useStyles({\n color: color,\n align: align\n }),\n wrenchTabPanes = _g.wrenchTabPanes,\n wrenchTabs = _g.wrenchTabs;\n var handleChange = function (evt, newFocusTarget, value, id, select) {\n if (newFocusTarget !== null) {\n // This allows for selectionFollowsFocus case\n if (select || evt.type === 'click' || selectionFollowsFocus) {\n setSelectedValue(value);\n }\n newFocusTarget.focus();\n evt.preventDefault();\n if (onChange) {\n onChange(evt, newFocusTarget, value, id);\n }\n }\n };\n var handleKeyPress = function (evt, id) {\n var key = evt.key,\n target = evt.target;\n var btn = target;\n var role = btn.getAttribute('role');\n if (role !== 'tab' || !Object.values(KEYS).includes(key)) {\n return;\n }\n // This will create an array of tab button elements and filter out any disabled tabs\n var tabListFlat = __spreadArray([], tabListRef.current ? [].slice.call(tabListRef.current.children) : [], true).map(function (tab) {\n return tab.firstChild;\n }).filter(function (button) {\n return !button.disabled;\n });\n var tabListLength = tabListFlat.length - 1;\n var tabIndex = tabListFlat.indexOf(btn);\n var newFocusTarget = null;\n var select = false;\n switch (evt.key) {\n // Handles when TAB is pressed\n case KEYS.TAB:\n if (paneRef.current) {\n paneRef.current.focus();\n evt.preventDefault();\n }\n return;\n // When RIGHT or DOWN is pressed to goto the next focused tab\n case KEYS.RIGHT:\n case KEYS.DOWN:\n newFocusTarget = tabIndex < tabListLength ? tabListFlat[tabIndex + 1] : tabListFlat[0];\n break;\n // When LEFT or UP is pressed to goto the previous focused tab\n case KEYS.LEFT:\n case KEYS.UP:\n newFocusTarget = tabIndex !== 0 ? tabListFlat[tabIndex - 1] : tabListFlat[tabListLength];\n break;\n // When HOME is pressed to goto the first tab\n case KEYS.HOME:\n newFocusTarget = tabListFlat[0];\n break;\n // When END is pressed to goto the last tab\n case KEYS.END:\n newFocusTarget = tabListFlat[tabListLength];\n break;\n case KEYS.SPACE:\n case KEYS.ENTER:\n newFocusTarget = btn;\n select = true;\n break;\n }\n if (newFocusTarget !== null) {\n handleChange(evt, newFocusTarget, parseInt(newFocusTarget.value, 10), id, select);\n }\n };\n var renderTabElement = function (child, value, selected, id) {\n var _a = child.props,\n title = _a.title,\n tabProps = __rest(_a, [\"title\"]);\n return React.createElement(Tab, __assign({}, tabProps, {\n ref: selected ? tabRef : undefined,\n key: value,\n id: id,\n selected: selected,\n align: align,\n color: color,\n value: value,\n onKeyDown: handleKeyPress,\n onClick: handleChange\n }), title);\n };\n var renderPaneElement = function (paneChildren, value, selected, id) {\n var paneProps = fullWidth ? {\n transparent: true\n } : {\n padding: true\n };\n return React.createElement(\"section\", {\n ref: selected ? paneRef : undefined,\n key: value,\n role: \"tabpanel\",\n tabIndex: 0,\n \"aria-labelledby\": id,\n \"aria-hidden\": !selected\n }, React.createElement(Pane, __assign({}, paneProps, {\n hide: !selected\n }), paneChildren));\n };\n var tabList = [];\n var paneList = [];\n Children.forEach(children, function (child, index) {\n var _a, _b;\n if (!isValidElement(child)) {\n return;\n }\n var id = (_a = child.props.id) !== null && _a !== void 0 ? _a : \"\".concat(uniqueTabName, \"-\").concat(index);\n var childValue = (_b = child.props.value) !== null && _b !== void 0 ? _b : index;\n var selected = childValue === selectedValue;\n tabList.push(renderTabElement(child, childValue, selected, id));\n if (child.props.children) {\n paneList.push(renderPaneElement(child.props.children, childValue, selected, id));\n }\n });\n return React.createElement(\"div\", null, React.createElement(\"ul\", __assign({\n role: \"tablist\",\n ref: tabListRef,\n className: wrenchTabs\n }, safeRest(rest)), tabList), React.createElement(\"div\", {\n className: wrenchTabPanes\n }, paneList));\n};\nvar TabDummy = function (props) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return React.createElement(React.Fragment, null);\n};\nvar TAB_COLORS = ['light', 'dark', 'transparent'];\nvar TAB_ALIGN = ['left', 'right', 'even', 'center'];\nvar TAB_INDICATORS = ['warning', 'error', 'success', 'info'];\nexport { TAB_ALIGN, TAB_COLORS, TAB_INDICATORS, TabDummy as Tab, Tabs };","import React from 'react';\nimport { useTheme } from 'react-jss';\nimport { createMemoStyles, safeRest } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (theme) {\n var type = theme.type,\n spacing = theme.spacing,\n palette = theme.palette;\n return {\n wrenchLabel: function (_a) {\n var muted = _a.muted,\n plain = _a.plain;\n return __assign(__assign({\n display: 'block',\n color: palette.text.dark,\n fontFamily: type.fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n boxSizing: 'border-box',\n fontSize: type.fontSize.bodySm,\n padding: 0,\n margin: [0, 0, spacing[2]],\n fontWeight: type.fontWeight.medium\n }, plain && {\n fontWeight: type.fontWeight.regular,\n fontSize: type.fontSize.body\n }), muted && {\n color: palette.text.darkMuted,\n fontWeight: type.fontWeight.regular\n });\n }\n };\n});\nvar Label = function (_a) {\n var children = _a.children,\n htmlFor = _a.htmlFor,\n _b = _a.muted,\n muted = _b === void 0 ? false : _b,\n _c = _a.plain,\n plain = _c === void 0 ? false : _c,\n rest = __rest(_a, [\"children\", \"htmlFor\", \"muted\", \"plain\"]);\n var theme = useTheme();\n var wrenchLabel = useStyles({\n theme: theme,\n muted: muted,\n plain: plain\n }).wrenchLabel;\n return React.createElement(\"label\", __assign({\n className: wrenchLabel,\n htmlFor: htmlFor\n }, safeRest(rest)), children);\n};\nexport { Label };","import React, { forwardRef, Children, cloneElement, useRef, useState, useMemo, useEffect, useCallback, isValidElement } from 'react';\nimport { useTheme } from 'react-jss';\nimport { Fade } from '@wds/motion';\nimport { safeRest, createMemoStyles, getDisplayName, defaultFonts, uniqueId, notEmpty, isBrowser, KEYS, conditionGuard, isElement, handlePortal } from '@wds/utils';\nimport { List } from '@wds/list';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar MenuItem = forwardRef(function (_a, ref) {\n var addOn = _a.addOn,\n _b = _a.addOnPlacement,\n addOnPlacement = _b === void 0 ? 'left' : _b,\n color = _a.color,\n onClick = _a.onClick,\n children = _a.children,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n component = _a.component,\n _d = _a.isNavigable,\n isNavigable = _d === void 0 ? false : _d;\n _a.isFocused;\n var _f = _a.marked,\n marked = _f === void 0 ? false : _f,\n _g = _a.upgrade,\n upgrade = _g === void 0 ? false : _g,\n groupindex = _a.groupindex,\n handleMenuClose = _a.handleMenuClose,\n index = _a.index,\n _h = _a.role,\n role = _h === void 0 ? 'menuitem' : _h,\n id = _a.id,\n rest = __rest(_a, [\"addOn\", \"addOnPlacement\", \"color\", \"onClick\", \"children\", \"disabled\", \"component\", \"isNavigable\", \"isFocused\", \"marked\", \"upgrade\", \"groupindex\", \"handleMenuClose\", \"index\", \"role\", \"id\"]);\n var onHandleClick = function (e) {\n if (onClick) onClick(e);\n if (handleMenuClose) handleMenuClose(e);\n e.stopPropagation();\n };\n return React.createElement(List.Item, __assign({\n addOnLeft: addOnPlacement === 'left' ? addOn : undefined,\n addOnRight: addOnPlacement === 'right' ? addOn : undefined,\n color: color,\n component: component,\n \"data-group\": groupindex,\n disabled: disabled,\n index: index,\n isNavigable: isNavigable,\n marked: marked,\n menu: true,\n interactive: true,\n onClick: onHandleClick,\n role: role,\n upgrade: upgrade,\n tabIndex: disabled ? -1 : 0,\n ref: ref,\n id: id\n }, safeRest(rest)), children);\n});\nMenuItem.displayName = 'MenuItem';\nvar useStyles$4 = createMemoStyles(function (theme) {\n var border = theme.border;\n return {\n wrenchMenuGroup: function () {\n return {\n borderBottom: border.main\n };\n }\n };\n});\nvar renderListItems = function (_a) {\n var children = _a.children,\n groupIndex = _a.groupIndex,\n onKeyDown = _a.onKeyDown,\n handleMenuClose = _a.handleMenuClose;\n var listItems = Children.map(children, function (child) {\n if (!React.isValidElement(child)) return null;\n return cloneElement(child, {\n groupindex: groupIndex,\n handleMenuClose: handleMenuClose,\n onKeyDown: onKeyDown\n });\n });\n return listItems;\n};\nvar MenuGroup = function (_a) {\n var children = _a.children,\n title = _a.title,\n dense = _a.dense,\n groupIndex = _a.groupIndex,\n onKeyDown = _a.onKeyDown,\n handleMenuClose = _a.handleMenuClose,\n rest = __rest(_a, [\"children\", \"title\", \"dense\", \"groupIndex\", \"onKeyDown\", \"handleMenuClose\"]);\n var wrenchMenuGroup = useStyles$4().wrenchMenuGroup;\n return React.createElement(\"section\", {\n className: wrenchMenuGroup\n }, React.createElement(List, __assign({\n noRules: true,\n dense: dense,\n interactive: true\n }, rest), title && React.createElement(List.Item, null, title), renderListItems({\n children: children,\n groupIndex: groupIndex,\n onKeyDown: onKeyDown,\n handleMenuClose: handleMenuClose\n })));\n};\nMenuGroup.displayName = 'MenuGroup';\nvar useStyles$3 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n spacing = theme.spacing;\n return {\n wrenchMenuFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n flexShrink: 0,\n padding: [spacing[4], spacing[5]],\n background: palette.background.light,\n borderTop: \"1px solid \".concat(palette.border.muted),\n color: palette.text.dark\n },\n wrenchMenuActions: function (_a) {\n var align = _a.align;\n return __assign(__assign(__assign({\n display: 'flex',\n flexGrow: 1,\n flexWrap: 'wrap'\n }, align === 'right' && {\n justifyContent: 'flex-end'\n }), align === 'left' && {\n justifyContent: 'flex-start'\n }), {\n '&:not([class^=\"wrenchButtonGroup\"])': {\n '& > button, & > a': {\n marginLeft: spacing[4]\n }\n }\n });\n }\n };\n});\nvar MenuFooter = function (_a) {\n var _b = _a.align,\n align = _b === void 0 ? 'left' : _b,\n children = _a.children;\n var _c = useStyles$3({\n align: align\n }),\n wrenchMenuActions = _c.wrenchMenuActions,\n wrenchMenuFooter = _c.wrenchMenuFooter;\n return React.createElement(\"footer\", {\n className: wrenchMenuFooter\n }, React.createElement(\"div\", {\n className: wrenchMenuActions\n }, children));\n};\nvar useStyles$2 = createMemoStyles(function (theme) {\n var spacing = theme.spacing;\n return {\n wrenchMenuBody: function (_a) {\n var padding = _a.padding;\n return __assign({\n overflowY: 'auto',\n flexGrow: 1\n }, padding && {\n padding: [spacing[4], spacing[5], spacing[5], spacing[5]]\n });\n }\n };\n});\nvar MenuBody = function (_a) {\n var children = _a.children,\n _b = _a.padding,\n padding = _b === void 0 ? false : _b,\n rest = __rest(_a, [\"children\", \"padding\"]);\n var wrenchMenuBody = useStyles$2({\n padding: padding\n }).wrenchMenuBody;\n var renderItemContainer = function () {\n var _a;\n var items = (_a = Children.map(children, function (child) {\n if (getDisplayName(child) === 'MenuItem') {\n return child;\n }\n return null;\n })) !== null && _a !== void 0 ? _a : [];\n // all children are MenuItems, so render as a list\n if (items.length === Children.count(children)) {\n return React.createElement(List, __assign({\n interactive: true\n }, rest), children);\n }\n return children;\n };\n return React.createElement(\"section\", {\n className: wrenchMenuBody\n }, renderItemContainer());\n};\nMenuBody.displayName = 'MenuBody';\nvar useStyles$1 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n spacing = theme.spacing,\n _a = theme.type,\n fontWeight = _a.fontWeight,\n fontSize = _a.fontSize;\n return {\n wrenchMenuHeader: function () {\n return {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n padding: [spacing[5], spacing[5], spacing[4], spacing[5]],\n background: palette.background.light,\n flexShrink: 0,\n flexDirection: 'column'\n };\n },\n wrenchMenuText: {\n fontSize: 20,\n fontWeight: fontWeight.medium,\n color: palette.text.dark,\n marginTop: 0,\n marginBottom: spacing[2]\n },\n wrenchMenuTitle: {\n flexGrow: 1,\n width: '100%'\n },\n wrenchMenuSubText: {\n fontSize: fontSize.bodySm,\n fontWeight: fontWeight.regular,\n color: palette.text.darkMuted,\n margin: [spacing[1], 0, 0]\n },\n wrenchMenuAddOn: {\n flexGrow: 1,\n marginTop: spacing[3],\n width: '100%',\n minWidth: '33%',\n textAlign: 'right',\n // In the case that an addon is the first child (modal title was omitted)\n // we do not want a margin top\n '& :first-child': {\n marginTop: 0\n }\n }\n };\n});\nvar MenuHeader = function (_a) {\n var addOn = _a.addOn,\n header = _a.header,\n id = _a.id,\n subHeader = _a.subHeader;\n if (subHeader && addOn) {\n throw new Error('You cannot have both subHeader and addon');\n } else if (!header && subHeader) {\n throw new Error('You must provide a header if you provide a subHeader');\n }\n var _b = useStyles$1(),\n wrenchMenuAddOn = _b.wrenchMenuAddOn,\n wrenchMenuHeader = _b.wrenchMenuHeader,\n wrenchMenuSubText = _b.wrenchMenuSubText,\n wrenchMenuText = _b.wrenchMenuText,\n wrenchMenuTitle = _b.wrenchMenuTitle;\n return React.createElement(\"section\", {\n className: wrenchMenuHeader\n }, React.createElement(\"div\", {\n className: wrenchMenuTitle\n }, header && React.createElement(\"h2\", {\n className: wrenchMenuText,\n id: id\n }, header), subHeader && React.createElement(\"p\", {\n className: wrenchMenuSubText\n }, subHeader)), addOn && React.createElement(\"div\", {\n className: wrenchMenuAddOn\n }, addOn));\n};\nvar useStyles = createMemoStyles(function (theme) {\n var palette = theme.palette,\n shadow = theme.shadow;\n var menu = {\n boxShadow: shadow.space,\n maxWidth: 300,\n minWidth: 175,\n maxHeight: 325\n };\n return {\n wrenchMenuContainer: function (_a) {\n var stretched = _a.stretched;\n return __assign(__assign({}, defaultFonts(theme)), {\n position: 'relative',\n display: stretched ? 'block' : 'inline-block',\n outline: 'none'\n });\n },\n wrenchMenu: function (_a) {\n var menuStyle = _a.menuStyle,\n placement = _a.placement,\n stretched = _a.stretched,\n elevation = _a.elevation;\n return __assign(__assign({\n position: 'absolute',\n zIndex: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.sky,\n display: 'block',\n outline: 'none',\n textAlign: 'left',\n color: palette.text.dark,\n minWidth: menu.minWidth,\n maxWidth: stretched ? 'none' : menu.maxWidth,\n boxShadow: menu.boxShadow,\n whiteSpace: 'noWrap'\n }, placement && {\n 'bottom-left': {\n left: 0,\n top: '100%'\n },\n 'bottom-right': {\n left: 'auto',\n right: 0,\n top: '100%'\n },\n 'top-left': {\n left: 0,\n top: 'auto',\n bottom: '100%'\n },\n 'top-right': {\n left: 'auto',\n right: 0,\n top: 'auto',\n bottom: '100%'\n }\n }[placement]), menuStyle);\n },\n wrenchMenuBody: function (_a) {\n var noMaxHeight = _a.noMaxHeight;\n return {\n background: palette.background.light,\n // maxHeight: noMaxHeight ? 'none' : menu.maxHeight,\n maxHeight: noMaxHeight ? '100vh' : '400px',\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column'\n };\n }\n };\n});\nvar FOCUS_STATES;\n(function (FOCUS_STATES) {\n FOCUS_STATES[\"TOP\"] = \"top\";\n FOCUS_STATES[\"BOTTOM\"] = \"bottom\";\n})(FOCUS_STATES || (FOCUS_STATES = {}));\nvar MENU_PLACEMENTS = ['bottom-right', 'bottom-left', 'top-right', 'top-left'];\nvar Menu = function (_a) {\n var id = _a.id,\n _b = _a.autoClose,\n autoClose = _b === void 0 ? true : _b,\n _c = _a.closeOnBlur,\n closeOnBlur = _c === void 0 ? true : _c,\n children = _a.children,\n _d = _a.dense,\n dense = _d === void 0 ? false : _d,\n placement = _a.placement,\n menuTrigger = _a.menuTrigger,\n _e = _a.noMaxHeight,\n noMaxHeight = _e === void 0 ? false : _e,\n onChange = _a.onChange,\n _f = _a.show,\n showProp = _f === void 0 ? false : _f,\n _g = _a.stretched,\n stretched = _g === void 0 ? false : _g,\n renderTo = _a.renderTo,\n _h = _a.role,\n role = _h === void 0 ? 'menu' : _h,\n _j = _a.noRules,\n noRules = _j === void 0 ? false : _j,\n elevation = _a.elevation,\n _k = _a.preventDefault,\n preventDefault = _k === void 0 ? false : _k,\n _l = _a.stopPropagation,\n stopPropagation = _l === void 0 ? false : _l,\n _m = _a.variant,\n variant = _m === void 0 ? 'list' : _m,\n rest = __rest(_a, [\"id\", \"autoClose\", \"closeOnBlur\", \"children\", \"dense\", \"placement\", \"menuTrigger\", \"noMaxHeight\", \"onChange\", \"show\", \"stretched\", \"renderTo\", \"role\", \"noRules\", \"elevation\", \"preventDefault\", \"stopPropagation\", \"variant\"]);\n // Refs\n var menuRef = useRef(null);\n var innerMenuRef = useRef(null);\n var itemsRef = useRef([]);\n var autoCloseTimeoutRef = useRef();\n // Menu State Items\n var _o = useState(showProp),\n showState = _o[0],\n setShowState = _o[1];\n var _p = useState({}),\n menuStyle = _p[0],\n setMenuStyle = _p[1];\n var _q = useState(null),\n focusState = _q[0],\n setFocusState = _q[1];\n var _r = useState(-1),\n focusIndex = _r[0],\n setFocusIndex = _r[1];\n // For memoizing handleOnKeyDown\n var keyPropRef = useRef({\n focusIndex: focusIndex,\n showState: showState\n });\n keyPropRef.current = {\n focusIndex: focusIndex,\n showState: showState\n };\n // aria-owns for a11y\n var menuID = useMemo(function () {\n return id !== null && id !== void 0 ? id : uniqueId('wds-menu-');\n }, [id]);\n // Styles\n var theme = useTheme();\n var classes = useStyles({\n menuStyle: menuStyle,\n noMaxHeight: noMaxHeight,\n placement: placement,\n stretched: stretched,\n elevation: elevation\n });\n /**\n * a way to help replicate componentWillReceiveProps\n * and componentDidUpdate\n */\n var prevPropsRef = useRef({});\n useEffect(function () {\n prevPropsRef.current = {\n showProp: showProp,\n showState: showState\n };\n /**\n * Each time the MenuItem List is generated through the menu button trigger\n * this code will create a list of accessible ListItems to traverse through.\n */\n if (showState && innerMenuRef.current) {\n itemsRef.current = [].slice.call(innerMenuRef.current.getElementsByTagName('li')).map(function (item) {\n return item.firstChild;\n }).filter(notEmpty);\n }\n /**\n * When showProp is still set to True, but showState is false,\n * we need sync showState up with showProp\n */\n if (showProp && showState !== showProp) {\n setShowState(showProp);\n }\n }, [showProp, showState, children]);\n var prevProps = prevPropsRef.current;\n // This will auto focus the first or last item\n useEffect(function () {\n var _a;\n if (focusState) {\n var focusInd = focusState === FOCUS_STATES.TOP ? 0 : itemsRef.current.length - 1;\n if (itemsRef.current[focusInd]) {\n (_a = itemsRef.current[focusInd]) === null || _a === void 0 ? void 0 : _a.focus();\n }\n setFocusIndex(focusInd);\n }\n }, [focusState]);\n /**\n * @todo needs Modal\n * Update the placement of the menu when renderTo is passed in.\n */\n var updatePosition = function () {\n var _a, _b;\n if (menuRef.current && showState && ((_b = (_a = innerMenuRef === null || innerMenuRef === void 0 ? void 0 : innerMenuRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.length)) {\n var rect = menuRef.current.getBoundingClientRect();\n var innerRect = innerMenuRef.current.getBoundingClientRect();\n var plaementMap = {\n 'top-left': {\n top: rect.top - innerRect.height,\n left: rect.left\n },\n 'top-right': {\n top: rect.top - innerRect.height,\n left: rect.right - innerRect.width\n },\n 'bottom-left': {\n top: rect.bottom,\n left: rect.left\n },\n 'bottom-right': {\n top: rect.bottom,\n left: rect.right - innerRect.width\n }\n };\n var coordinates = plaementMap[placement !== null && placement !== void 0 ? placement : 'bottom-right'];\n var top_1 = coordinates.top,\n left = coordinates.left;\n var z = (elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space) + 1;\n setMenuStyle({\n top: top_1,\n left: left,\n zIndex: z,\n position: 'fixed',\n right: 'auto',\n bottom: 'auto' // fixes box-shadow not showing\n });\n }\n };\n\n var handleScroll = function () {\n if (showState && renderTo) {\n updatePosition();\n }\n };\n // componentDidMount\n useEffect(function () {\n if (showState && renderTo) updatePosition();\n // ssr doesn't have window object\n if (isBrowser) {\n window.addEventListener('scroll', handleScroll);\n window.addEventListener('resize', handleScroll);\n window.addEventListener('orientationchange', handleScroll);\n }\n // componentWillUnmount\n return function () {\n if (isBrowser) {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleScroll);\n window.removeEventListener('orientationchange', handleScroll);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [renderTo, showState]);\n // componentDidUpdate\n useEffect(function () {\n if (prevProps) {\n if (!prevProps.showState && showProp && renderTo) {\n updatePosition();\n }\n }\n });\n // componentWillReceiveProps\n useEffect(function () {\n setShowState(showProp);\n }, [showProp]);\n var menuChange = useCallback(function (showMenu) {\n if (!showMenu) {\n setFocusState(null);\n setFocusIndex(-1);\n }\n setShowState(showMenu);\n if (onChange) {\n onChange(showMenu);\n }\n }, [onChange]);\n var handleOnClick = function (e) {\n if (stopPropagation) {\n e.stopPropagation();\n }\n if (preventDefault) {\n e.preventDefault();\n }\n menuChange(!showState);\n };\n var handleKeyScroll = function (index) {\n if (itemsRef.current) {\n if (index > -1 && itemsRef.current[index]) {\n var menuItemHeight = itemsRef.current[index].offsetTop + itemsRef.current[index].offsetHeight;\n var menuContainerHeight = innerMenuRef.current.offsetHeight;\n innerMenuRef.current.scrollTop = menuItemHeight <= menuContainerHeight ? 0 : menuItemHeight - menuContainerHeight;\n }\n }\n };\n var handleOnKeyDown = useCallback(function (e) {\n var key = e.key;\n if (keyPropRef.current.showState) {\n var itemsLen = itemsRef.current.length - 1;\n var focusInd = keyPropRef.current.focusIndex === -1 ? 0 : keyPropRef.current.focusIndex;\n var newFocusIndex = 0;\n switch (true) {\n case key === KEYS.TAB && variant === 'list':\n case key === KEYS.ESC:\n menuChange(false);\n if (menuRef.current.firstChild) {\n menuRef.current.firstChild.focus();\n }\n e.preventDefault();\n break;\n /**\n * TODO: Needs to handle space in a better way\n */\n case key === KEYS.ENTER:\n itemsRef.current[focusInd].click();\n break;\n case key === KEYS.UP:\n newFocusIndex = focusInd > 0 ? focusInd - 1 : itemsLen;\n break;\n case key === KEYS.DOWN:\n newFocusIndex = focusInd === itemsLen ? 0 : focusInd + 1;\n break;\n }\n if (key === KEYS.UP || key === KEYS.DOWN) {\n setFocusIndex(newFocusIndex);\n handleKeyScroll(newFocusIndex);\n if (newFocusIndex > -1 && itemsRef.current[newFocusIndex]) {\n itemsRef.current[newFocusIndex].focus();\n e.preventDefault();\n }\n }\n }\n }, [menuChange, variant]);\n var handleOnTriggerKeyDown = function (e) {\n var key = e.key;\n if (React.isValidElement(menuTrigger) && conditionGuard(menuTrigger.props, Object.prototype.hasOwnProperty.call(menuTrigger.props, 'onKeyDown'))) {\n menuTrigger.props.onKeyDown(e);\n }\n var isNotInput = getDisplayName(menuTrigger) !== 'Input';\n if (isNotInput) {\n switch (key) {\n case KEYS.ENTER:\n case KEYS.SPACE:\n case KEYS.DOWN:\n // TODO: Find a better way to handle this type\n handleOnClick(e);\n setFocusState(FOCUS_STATES.TOP);\n e.preventDefault();\n break;\n case KEYS.UP:\n // TODO: Find a better way to handle this type\n handleOnClick(e);\n setFocusState(FOCUS_STATES.BOTTOM);\n e.preventDefault();\n break;\n }\n }\n };\n var handleAutoCloseBlur = function () {\n autoCloseTimeoutRef.current = window.setTimeout(function () {\n var _a;\n // if the menu is already closed, ignore this blur event\n if (!showState) {\n return;\n }\n var renderToComp = null;\n if (renderTo) {\n if (conditionGuard(renderTo, isElement(renderTo))) renderToComp = renderTo;else if (renderTo.current) {\n renderToComp = renderTo.current;\n }\n }\n var isFocusInRenderContainer = renderToComp === null || renderToComp === void 0 ? void 0 : renderToComp.contains(document.activeElement);\n var isFocusInMenuRef = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.contains(document.activeElement);\n if (!isFocusInRenderContainer && !isFocusInMenuRef) {\n menuChange(false);\n }\n }, 0);\n };\n // clear the timeout when the component unmounts\n useEffect(function () {\n return function () {\n window.clearTimeout(autoCloseTimeoutRef.current);\n };\n }, []);\n var handleMenuClose = useCallback(function () {\n if (autoClose) {\n menuChange(false);\n }\n }, [autoClose, menuChange]);\n var renderListItems = function (ch, groupindex, handleMenu) {\n var listItems = Children.map(ch, function (child) {\n if (!React.isValidElement(child)) return null;\n return cloneElement(child, {\n groupindex: groupindex,\n onKeyDown: handleOnKeyDown,\n handleMenuClose: handleMenu\n });\n });\n return listItems;\n };\n var renderItems = function (ch) {\n var listItems = Children.map(ch, function (child) {\n if (!React.isValidElement(child)) return null;\n if (getDisplayName(child) === 'MenuBody') {\n return cloneElement(child, {\n dense: dense,\n noRules: noRules\n });\n }\n if (['MenuHeader', 'MenuFooter'].includes(getDisplayName(child))) {\n return child;\n }\n return null;\n });\n return listItems;\n };\n var renderMenuGroup = function (el, groupIndex, handleMenu) {\n return cloneElement(el, {\n groupIndex: groupIndex,\n dense: dense,\n onKeyDown: handleOnKeyDown,\n handleMenuClose: handleMenu\n });\n };\n var renderItemContainer = function () {\n var _a;\n var items = (_a = Children.map(children, function (child, index) {\n if (!isValidElement(child)) {\n return undefined;\n }\n if (getDisplayName(child) !== 'MenuGroup') {\n return undefined;\n }\n return renderMenuGroup(child, index, handleMenuClose);\n })) !== null && _a !== void 0 ? _a : [];\n // children are all Menu.Group\n if (items.length) {\n return items;\n }\n if (variant === 'list') {\n return React.createElement(List, __assign({\n interactive: true,\n dense: dense,\n noRules: noRules\n }, rest), renderListItems(children, 0, handleMenuClose));\n }\n return renderItems(children);\n };\n var renderMenu = function () {\n var menuComponent = React.createElement(\"div\", {\n className: classes.wrenchMenu\n }, React.createElement(Fade, {\n in: showState,\n speed: \"fast\"\n }, React.createElement(\"div\", null, React.createElement(\"div\", {\n className: classes.wrenchMenuBody,\n role: role,\n id: menuID,\n ref: innerMenuRef\n }, renderItemContainer()))));\n return handlePortal(menuComponent, renderTo);\n };\n var renderTrigger = function () {\n var componentName = getDisplayName(menuTrigger);\n var isButton = componentName === 'Button';\n var isInput = componentName === 'Input';\n return cloneElement(menuTrigger, __assign(__assign(__assign({\n 'aria-haspopup': role\n }, showState && {\n 'aria-owns': menuID\n }), isButton && {\n 'aria-pressed': (showState !== null && showState !== void 0 ? showState : false) || showProp\n }), {\n onFocus: isInput ? handleOnClick : undefined,\n onClick: !isInput ? handleOnClick : undefined,\n onKeyDown: handleOnTriggerKeyDown,\n tabIndex: 0\n }));\n };\n return React.createElement(\"span\", __assign({\n className: classes.wrenchMenuContainer,\n onBlur: closeOnBlur ? handleAutoCloseBlur : undefined,\n ref: menuRef,\n tabIndex: -1\n }, safeRest(rest)), renderTrigger(), renderMenu());\n};\nMenu.Item = MenuItem;\nMenu.Group = MenuGroup;\nMenu.Header = MenuHeader;\nMenu.Body = MenuBody;\nMenu.Footer = MenuFooter;\nexport { FOCUS_STATES, MENU_PLACEMENTS, Menu };","import React, { isValidElement, useMemo, useState, useCallback, useEffect } from 'react';\nimport { safeRest, createMemoStyles, defaultBaseline, uniqueId } from '@wds/utils';\nimport { Label } from '@wds/label';\nimport { IconCheck, IconCaretDown } from '@wds/icons';\nimport { Menu } from '@wds/menu';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar SelectOption = function (_a) {\n var children = _a.children,\n _b = _a.disabled,\n disabled = _b === void 0 ? false : _b,\n value = _a.value;\n _a.selectedValue;\n var rest = __rest(_a, [\"children\", \"disabled\", \"value\", \"selectedValue\"]);\n return React.createElement(\"div\", __assign({\n \"data-disabled\": disabled,\n \"data-value\": value\n }, safeRest(rest)), children);\n};\nvar useStyles = createMemoStyles(function (theme) {\n var palette = theme.palette,\n border = theme.border,\n shadow = theme.shadow,\n spacing = theme.spacing,\n radius = theme.radius,\n type = theme.type;\n var select = {\n height: {\n sm: 32,\n md: 40,\n lg: 48\n },\n borderRadius: radius.small,\n iconColor: palette.muted.contrast,\n fontSize: type.fontSize.body\n };\n var selectMenuStyles = {\n wrenchSelectMenuContainer: function (_a) {\n var color = _a.color,\n size = _a.size,\n disabled = _a.disabled,\n stretched = _a.stretched,\n noBorder = _a.noBorder;\n return {\n position: 'relative',\n display: 'inline-block',\n cursor: 'pointer',\n boxSizing: 'border-box',\n backgroundColor: palette.background.light,\n border: noBorder ? 'none' : border.main,\n borderColor: color ? palette[color].main : null,\n fontSize: select.fontSize,\n color: palette.text.dark,\n borderRadius: select.borderRadius,\n pointerEvents: disabled ? 'none' : null,\n opacity: disabled ? '0.4' : null,\n width: stretched ? '100%' : null,\n maxWidth: '100%',\n height: size ? select.height[size] : null,\n flexGrow: '1',\n '&:hover': {\n borderColor: color ? palette[color].main : palette.border.hover,\n boxShadow: shadow.sky,\n transition: ['all', '100ms']\n },\n '&:focus, &:focus-within': {\n borderColor: color ? palette[color].main : palette.border.active,\n transition: ['border-color', '100ms'],\n outline: '0'\n },\n '& > span': {\n position: 'initial',\n flexGrow: '1',\n width: '100%',\n '& > div > [role=\"listbox\"]': {\n maxWidth: stretched ? '100%' : 'none',\n marginTop: 1\n }\n },\n '& > span > [role=\"listbox\"] [role=\"option\"] > span': {\n pointerEvents: 'none',\n '& > svg': {\n marginRight: spacing[2]\n }\n },\n '& > span > [role=\"listbox\"] [role=\"option\"] > div': {\n pointerEvents: 'none' // don't steal click event from parent\n }\n };\n },\n\n wrenchSelectMenu: function (_a) {\n var size = _a.size,\n addOn = _a.addOn;\n return __assign(__assign({}, defaultBaseline), {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: size ? select.height[size] : null,\n fontSize: select.fontSize,\n cursor: 'pointer',\n padding: [0, spacing[7], 0, spacing[4]],\n paddingLeft: addOn ? \"\".concat(spacing[6] + spacing[2], \"px\") : null\n });\n },\n wrenchSelectMenuSelectedItem: function () {\n return {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n '& > svg': {\n marginRight: spacing[2]\n }\n };\n },\n wrenchSelectMenuNonSelectedItemLeft: function () {\n return {\n width: spacing[4],\n height: spacing[4]\n };\n },\n wrenchSelectMenuAffordance: function () {\n return {\n position: 'absolute',\n top: '50%',\n right: spacing[4],\n transform: 'translateY(-0.75em)',\n pointerEvents: 'none',\n width: '1em',\n height: '1em',\n '& > svg': {\n fill: select.iconColor\n }\n };\n },\n wrenchSelectMenuAddOn: function () {\n return __assign(__assign({}, defaultBaseline), {\n fontFamily: type.fontFamily.base,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-0.75em)',\n left: 16,\n paddingRight: spacing[3],\n pointerEvents: 'none'\n });\n }\n };\n return selectMenuStyles;\n});\nvar SelectMenuItem = React.memo(function SelectMenuItem(_a) {\n var child = _a.child,\n hasSelectedValue = _a.hasSelectedValue,\n id = _a.id,\n index = _a.index,\n handleMenuClose = _a.handleMenuClose,\n onClick = _a.onClick,\n selected = _a.selected,\n selectedPlacement = _a.selectedPlacement,\n wrenchSelectMenuNonSelectedItemLeft = _a.wrenchSelectMenuNonSelectedItemLeft;\n var menuItemId = \"select-child-\".concat(index);\n if (isValidElement(child)) {\n var _b = child.props,\n childsChildren = _b.children,\n icon = _b.icon,\n childValue = _b.value;\n return React.createElement(Menu.Item, {\n key: id,\n id: menuItemId,\n disabled: child.props.disabled,\n \"data-value\": childValue,\n handleMenuClose: handleMenuClose,\n onClick: onClick,\n addOn: selected ? React.createElement(\"span\", {\n className: \"select__checked\"\n }, React.createElement(IconCheck, {\n title: \"Check mark icon\",\n color: \"success\"\n })) : hasSelectedValue && selectedPlacement === 'left' && React.createElement(\"span\", {\n className: wrenchSelectMenuNonSelectedItemLeft\n }),\n addOnPlacement: selectedPlacement,\n role: \"option\"\n }, icon, childsChildren);\n }\n // return null here for linting rule requirements\n return React.createElement(React.Fragment, null, null);\n});\nvar SelectedItem = function (_a) {\n var children = _a.children,\n selectedValue = _a.selectedValue;\n if (selectedValue) {\n return React.createElement(React.Fragment, null, selectedValue);\n }\n if (isValidElement(children) && children.props) {\n var displayItem = children.props.children;\n return React.createElement(React.Fragment, null, displayItem);\n }\n return React.createElement(React.Fragment, null, children);\n};\nvar SelectMenu = function (_a) {\n var children = _a.children,\n id = _a.id,\n label = _a.label,\n _b = _a.placeholder,\n placeholder = _b === void 0 ? 'Choose...' : _b,\n ariaLabel = _a.ariaLabel,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n color = _a.color,\n value = _a.value,\n _d = _a.size,\n size = _d === void 0 ? 'md' : _d,\n _e = _a.stretched,\n stretched = _e === void 0 ? false : _e,\n _f = _a.noBorder,\n noBorder = _f === void 0 ? false : _f;\n _a.name;\n var onChange = _a.onChange,\n addOn = _a.addOn,\n _g = _a.selectedPlacement,\n selectedPlacement = _g === void 0 ? 'left' : _g,\n _h = _a.placement,\n placement = _h === void 0 ? 'bottom-left' : _h,\n renderTo = _a.renderTo,\n elevation = _a.elevation,\n rest = __rest(_a, [\"children\", \"id\", \"label\", \"placeholder\", \"ariaLabel\", \"disabled\", \"color\", \"value\", \"size\", \"stretched\", \"noBorder\", \"name\", \"onChange\", \"addOn\", \"selectedPlacement\", \"placement\", \"renderTo\", \"elevation\"]);\n var options = useMemo(function () {\n return React.Children.toArray(children);\n }, [children]);\n var menuID = useMemo(function () {\n return uniqueId('input');\n }, []);\n var inputID = useMemo(function () {\n return id !== null && id !== void 0 ? id : menuID;\n }, [id, menuID]);\n var _j = useState(false),\n showMenu = _j[0],\n setShowMenu = _j[1];\n var _k = useState(placeholder),\n selectedItem = _k[0],\n setSelectedItem = _k[1];\n var _l = useState(value),\n selectedValue = _l[0],\n setSelectedValue = _l[1];\n var _m = useStyles({\n size: size,\n color: color,\n disabled: disabled,\n stretched: stretched,\n addOn: addOn,\n noBorder: noBorder\n }),\n wrenchSelectMenuNonSelectedItemLeft = _m.wrenchSelectMenuNonSelectedItemLeft,\n wrenchSelectMenu = _m.wrenchSelectMenu,\n wrenchSelectMenuSelectedItem = _m.wrenchSelectMenuSelectedItem,\n wrenchSelectMenuAffordance = _m.wrenchSelectMenuAffordance,\n wrenchSelectMenuContainer = _m.wrenchSelectMenuContainer,\n wrenchSelectMenuAddOn = _m.wrenchSelectMenuAddOn;\n var handleMenuChange = useCallback(function () {\n setShowMenu(false);\n }, []);\n var updateValues = useCallback(function (updatedValue) {\n setSelectedValue(updatedValue);\n var item = options.find(function (child) {\n var _a;\n if (isValidElement(child) && updatedValue) {\n return (_a = child.props.value === updatedValue.toString()) !== null && _a !== void 0 ? _a : child;\n }\n return null;\n });\n if (isValidElement(item)) {\n var newSelectedItem = React.createElement(SelectedItem, __assign({}, item.props));\n setSelectedItem(newSelectedItem);\n }\n }, [options]);\n useEffect(function () {\n if (value !== undefined) {\n updateValues(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n var clickMenuItem = useCallback(function (e) {\n var el = e.currentTarget;\n var val = el.dataset.value;\n e.persist();\n // Only if the component is uncontrolled, should we update the internal value state.\n if (value === undefined) {\n updateValues(val);\n handleMenuChange();\n }\n if (onChange) {\n onChange(e);\n }\n }, [handleMenuChange, onChange, updateValues, value]);\n var menuItems = React.Children.map(options, function (child, index) {\n if (isValidElement(child)) {\n return React.createElement(SelectMenuItem, {\n child: child,\n hasSelectedValue: Boolean(selectedValue),\n id: id,\n index: index,\n onClick: clickMenuItem,\n selected: selectedValue === child.props.value,\n selectedPlacement: selectedPlacement,\n wrenchSelectMenuNonSelectedItemLeft: wrenchSelectMenuNonSelectedItemLeft\n });\n }\n return null;\n });\n var selectMenu = React.createElement(\"div\", {\n className: wrenchSelectMenu\n }, React.createElement(\"div\", {\n className: wrenchSelectMenuSelectedItem\n }, selectedItem), React.createElement(\"div\", {\n className: wrenchSelectMenuAffordance\n }, React.createElement(IconCaretDown, {\n title: \"Dropdown icon\"\n })));\n return React.createElement(React.Fragment, null, !!label && React.createElement(Label, {\n htmlFor: inputID\n }, label), React.createElement(\"div\", __assign({\n id: inputID,\n className: wrenchSelectMenuContainer,\n tabIndex: -1,\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Select Menu',\n \"aria-controls\": menuID,\n \"aria-expanded\": showMenu\n }, safeRest(rest)), addOn && React.createElement(\"div\", {\n className: wrenchSelectMenuAddOn\n }, addOn), React.createElement(Menu, {\n dense: true,\n noRules: true,\n id: menuID,\n menuTrigger: selectMenu,\n placement: placement,\n show: showMenu,\n onChange: handleMenuChange,\n role: \"listbox\",\n renderTo: renderTo,\n elevation: elevation,\n stretched: stretched\n }, menuItems)));\n};\nSelectMenu.Option = SelectOption;\nexport { SelectMenu };","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { createMemoStyles, defaultFonts, defaultBaseline, visuallyHidden, uniqueId, safeRest, KEYS } from '@wds/utils';\nimport { useTheme } from 'react-jss';\nimport { Tooltip } from '@wds/tooltip';\nimport { Label } from '@wds/label';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles$2 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n spacing = theme.spacing,\n radius = theme.radius,\n shadow = theme.shadow;\n var slider = {\n handleBGColor: palette.muted.contrast,\n trackBGColor: palette.muted.main,\n fillBGColor: palette.primary.main,\n borderRadius: radius.medium,\n height: 16\n };\n return {\n wrenchLabel: __assign({}, defaultFonts(theme)),\n wrenchSlider: function () {\n return __assign(__assign({}, defaultBaseline), {\n display: 'flex',\n alignItems: 'center',\n height: 24\n });\n },\n wrenchSliderFill: function () {\n return {\n position: 'absolute',\n background: slider.fillBGColor,\n height: '100%',\n borderRadius: slider.borderRadius,\n zIndex: 1\n };\n },\n wrenchSliderTrack: function () {\n return {\n background: slider.trackBGColor,\n borderRadius: slider.borderRadius,\n height: slider.height,\n position: 'relative',\n flex: 1\n };\n },\n wrenchSliderHandle: function () {\n return {\n position: 'absolute',\n display: 'block',\n textAlign: 'center',\n height: slider.height + spacing[2],\n width: slider.height + spacing[2],\n border: 'none',\n background: slider.handleBGColor,\n borderRadius: slider.borderRadius,\n top: -spacing[2] / 2,\n zIndex: 2,\n transform: 'translateX(-50%)',\n boxShadow: shadow.sky,\n cursor: 'grab',\n '&:active': {\n cursor: 'grabbing'\n }\n };\n },\n wrenchSliderHandleFill: function () {\n return {\n height: slider.height + spacing[2],\n width: slider.height + spacing[2]\n };\n },\n wrenchSliderSteps: function () {\n return {\n padding: 0,\n margin: 0,\n display: 'flex',\n justifyContent: 'space-between',\n height: '100%',\n listStyle: 'none'\n };\n },\n wrenchVisuallyHidden: function () {\n return __assign({}, visuallyHidden);\n }\n };\n});\nvar useStyles$1 = createMemoStyles(function (theme) {\n var palette = theme.palette,\n radius = theme.radius;\n var slider = {\n fillBGColor: palette.primary.main,\n borderRadius: radius.medium\n };\n return {\n wrenchSliderFill: function () {\n return {\n position: 'absolute',\n background: slider.fillBGColor,\n height: '100%',\n borderRadius: slider.borderRadius,\n zIndex: 1\n };\n }\n };\n});\nvar ProgressBar = function (_a) {\n var style = _a.style;\n var theme = useTheme();\n var classes = useStyles$1({\n theme: theme\n });\n return React.createElement(\"span\", {\n className: classes.wrenchSliderFill,\n style: style\n }, \"\\u00A0\");\n};\nvar PERCENT_EMPTY = 0;\nvar PERCENT_FULL = 100;\nvar getPosition = function (value, min, max) {\n return (value - min) / (max - min) * 100;\n};\nvar getValue = function (pos, min, max) {\n var decimal = pos / 100;\n return Math.round((max - min) * decimal + min);\n};\nvar getClosestSnapPoint = function (value, snapPoints) {\n if (!(snapPoints === null || snapPoints === void 0 ? void 0 : snapPoints.length)) return value;\n return snapPoints.reduce(function (snapA, snapB) {\n var diffA = Math.abs(snapA - value);\n var diffB = Math.abs(snapB - value);\n if (diffA === diffB) {\n // If difference between snap points is the same return the smaller value\n return snapA < snapB ? snapA : snapB;\n // If difference between snap points is the same return the greater value\n // return snapA > snapB ? snapA : snapB;\n }\n\n return diffB < diffA ? snapB : snapA;\n });\n};\nvar getHandleFor = function (ev) {\n var _a, _b;\n return ((_a = ev.currentTarget) === null || _a === void 0 ? void 0 : _a.getAttribute) ? Number((_b = ev.currentTarget) === null || _b === void 0 ? void 0 : _b.getAttribute('data-handle-key')) : null;\n};\nvar killEvent = function (ev) {\n ev.stopPropagation();\n ev.preventDefault();\n};\nvar Slider = function (_a) {\n var _b = _a.alwaysShowTooltip,\n alwaysShowTooltip = _b === void 0 ? false : _b,\n ariaLabel = _a.ariaLabel,\n children = _a.children,\n _c = _a.controlled,\n controlled = _c === void 0 ? false : _c,\n _d = _a.disabled,\n disabled = _d === void 0 ? false : _d,\n id = _a.id,\n label = _a.label,\n min = _a.min,\n max = _a.max,\n onChange = _a.onChange,\n _e = _a.range,\n range = _e === void 0 ? true : _e,\n _f = _a.showTooltip,\n showTooltip = _f === void 0 ? false : _f,\n _g = _a.snap,\n snap = _g === void 0 ? false : _g,\n _h = _a.snapPoints,\n snapPoints = _h === void 0 ? [] : _h,\n tooltipValue = _a.tooltipValue,\n values = _a.values,\n valueText = _a.valueText,\n rest = __rest(_a, [\"alwaysShowTooltip\", \"ariaLabel\", \"children\", \"controlled\", \"disabled\", \"id\", \"label\", \"min\", \"max\", \"onChange\", \"range\", \"showTooltip\", \"snap\", \"snapPoints\", \"tooltipValue\", \"values\", \"valueText\"]);\n if (!label && !ariaLabel && !id) {\n // eslint-disable-next-line no-console\n console.warn('Accessibility Error: If `label` or `ariaLabel` is not provided the `id` prop is required');\n }\n var inputId = id !== null && id !== void 0 ? id : uniqueId('input');\n var _j = useState(values),\n localValues = _j[0],\n setValues = _j[1];\n var _k = useState(null),\n slidingIndex = _k[0],\n setSlidingIndex = _k[1];\n var _l = useState(0),\n handleDimensions = _l[0],\n setHandleDimensions = _l[1];\n var _m = useState({\n height: 0,\n left: 0,\n top: 0,\n width: 0\n }),\n sliderBox = _m[0],\n setSliderBox = _m[1];\n // Used to manage position state during events\n var posRef = useRef();\n // HandlePos should only recalculate when localValues updates\n var handlePos = useCallback(function () {\n var localPos = localValues.map(function (value) {\n return getPosition(value, min, max);\n });\n posRef.current = {\n handlePos: localPos\n };\n return localPos;\n }, [localValues, min, max])();\n var theme = useTheme();\n var classes = useStyles$2({\n theme: theme\n });\n // Ref to internal state needed in listeneres\n var stateRef = useRef({\n slidingIndex: slidingIndex,\n handleDimensions: handleDimensions,\n sliderBox: sliderBox\n });\n var setStateRef = function (state) {\n stateRef.current = __assign({}, state);\n setSlidingIndex(state.slidingIndex);\n setHandleDimensions(state.handleDimensions);\n setSliderBox(state.sliderBox);\n };\n // Ref to Slider so we can get dimensions etc.\n var sliderRef = useRef(null);\n /// //////////////////////////////////////////// Validations Start ////////////////////////////////////////////\n var validateValues = function (proposedValues) {\n return proposedValues.map(function (value, idx) {\n // Bound Value between max and min\n var realValue = Math.max(Math.min(value, max), min);\n // If not a number for some reason take min instead\n realValue = Number.isNaN(realValue) ? min : realValue;\n if (idx !== 0 && realValue < proposedValues[idx - 1]) {\n return proposedValues[idx - 1];\n }\n return realValue;\n });\n };\n var validatePosition = function (idx, proposedPosition) {\n return Math.max(Math.min(proposedPosition, handlePos[idx + 1] !== undefined ? handlePos[idx + 1] - stateRef.current.handleDimensions : PERCENT_FULL // 100% is the highest value\n ), handlePos[idx - 1] !== undefined ? handlePos[idx - 1] + stateRef.current.handleDimensions : PERCENT_EMPTY // 0% is the lowest value\n );\n };\n\n var canMove = function (idx, proposedPosition) {\n if (proposedPosition < PERCENT_EMPTY) return false;\n if (proposedPosition > PERCENT_FULL) return false;\n var nextHandlePosition = handlePos[idx + 1] !== undefined ? handlePos[idx + 1] - handleDimensions : Infinity;\n if (proposedPosition > nextHandlePosition) return false;\n var prevHandlePosition = handlePos[idx - 1] !== undefined ? handlePos[idx - 1] + handleDimensions : -Infinity;\n return proposedPosition >= prevHandlePosition;\n };\n var getMinValue = function (idx) {\n return localValues[idx - 1] ? Math.max(min, localValues[idx - 1]) : min;\n };\n var getMaxValue = function (idx) {\n return localValues[idx + 1] ? Math.min(max, localValues[idx + 1]) : max;\n };\n /// ///////////////////////////////// Validations End /////////////////////////////////\n /// ///////////////////////////////// Value Calculations Start /////////////////////////////////\n var getNextPositionForKey = function (idx, key) {\n var _a;\n var originalPercentage = handlePos[idx];\n var shouldSnap = snap;\n var proposedValue = localValues[idx];\n var proposedPercentage = originalPercentage;\n var stepValue = 1;\n if (max - min >= 100) {\n proposedPercentage = Math.round(proposedPercentage);\n } else {\n stepValue = 100 / (max - min);\n }\n var currentIndex = null;\n if (shouldSnap && snapPoints) {\n currentIndex = snapPoints.indexOf(getClosestSnapPoint(localValues[idx], snapPoints));\n }\n var stepMultiplier = (_a = {}, _a[KEYS.LEFT] = function (v) {\n return v * -1;\n }, _a[KEYS.RIGHT] = function (v) {\n return v * 1;\n }, _a[KEYS.UP] = function (v) {\n return v * 1;\n }, _a[KEYS.DOWN] = function (v) {\n return v * -1;\n }, _a[KEYS.PAGE_DOWN] = function (v) {\n return v > 1 ? -v : v * -10;\n }, _a[KEYS.PAGE_UP] = function (v) {\n return v > 1 ? v : v * 10;\n }, _a);\n if (Object.prototype.hasOwnProperty.call(stepMultiplier, key)) {\n proposedPercentage += stepMultiplier[key](stepValue);\n if (shouldSnap && snapPoints && currentIndex !== null) {\n if (proposedPercentage > originalPercentage) {\n // move cursor right unless overflow\n if (currentIndex < snapPoints.length - 1) {\n proposedValue = snapPoints[currentIndex + 1];\n }\n // move cursor left unless there is overflow\n } else if (currentIndex > 0) {\n proposedValue = snapPoints[currentIndex - 1];\n }\n }\n } else if (key === KEYS.HOME) {\n proposedPercentage = PERCENT_EMPTY;\n if (shouldSnap && snapPoints) {\n proposedValue = snapPoints[0];\n }\n } else if (key === KEYS.END) {\n proposedPercentage = PERCENT_FULL;\n if (shouldSnap && snapPoints) {\n proposedValue = snapPoints[snapPoints.length - 1];\n }\n } else {\n return null;\n }\n return shouldSnap ? getPosition(proposedValue, min, max) : proposedPercentage;\n };\n var getNextValues = function (idx, proposedPosition) {\n var actualPosition = validatePosition(idx, proposedPosition);\n var nextHandlePos = handlePos.map(function (pos, index) {\n return index === idx ? actualPosition : pos;\n });\n return nextHandlePos.map(function (pos) {\n return getValue(pos, min, max);\n });\n };\n var getProgressStyle = function (idx) {\n var value = handlePos[idx];\n var prevValue = handlePos[idx - 1];\n var diffValue = value - prevValue;\n if (idx === 0) {\n return {\n left: 0,\n width: \"\".concat(value, \"%\")\n };\n }\n return {\n left: \"\".concat(prevValue, \"%\"),\n width: \"\".concat(diffValue, \"%\")\n };\n };\n var getSliderBoundingBox = function () {\n var _a, _b, _c, _d, _e, _f;\n var slider = sliderRef.current;\n var rect = slider === null || slider === void 0 ? void 0 : slider.getBoundingClientRect();\n return {\n height: (_b = (_a = rect === null || rect === void 0 ? void 0 : rect.height) !== null && _a !== void 0 ? _a : slider === null || slider === void 0 ? void 0 : slider.clientHeight) !== null && _b !== void 0 ? _b : 0,\n left: (_c = rect === null || rect === void 0 ? void 0 : rect.left) !== null && _c !== void 0 ? _c : 0,\n top: (_d = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _d !== void 0 ? _d : 0,\n width: (_f = (_e = rect === null || rect === void 0 ? void 0 : rect.width) !== null && _e !== void 0 ? _e : slider === null || slider === void 0 ? void 0 : slider.clientWidth) !== null && _f !== void 0 ? _f : 0\n };\n };\n var getHandleDimensions = function (ev, box) {\n var _a;\n var handleNode = (_a = ev.currentTarget) !== null && _a !== void 0 ? _a : null;\n if (!handleNode) return 0;\n return handleNode.clientWidth / box.width * PERCENT_FULL / 2;\n };\n var getSnapPosition = function (positionPercent) {\n if (!snap) return positionPercent;\n var value = getValue(positionPercent, min, max);\n var snapValue = getClosestSnapPoint(value, snapPoints);\n return getPosition(snapValue, min, max);\n };\n var getClosestHandle = function (positionPercent) {\n return handlePos.reduce(function (closestIdx, node, idx) {\n var challenger = Math.abs(handlePos[idx] - positionPercent);\n var current = Math.abs(handlePos[closestIdx] - positionPercent);\n return challenger < current ? idx : closestIdx;\n }, 0);\n };\n // ///////////////////////////////// Value Calculations End /////////////////////////////////\n // ///////////////////////////////// Update Values Start /////////////////////////////////\n // Used to update internal values and send them to the onChange.\n var updateValues = function (proposedValues) {\n var realValue = validateValues(proposedValues);\n setValues(realValue);\n };\n var updateOnChange = function (proposedValues) {\n var realValue = validateValues(proposedValues);\n setValues(realValue);\n // Fire on Change\n if (onChange) {\n onChange({\n values: realValue,\n min: min,\n max: max\n });\n }\n };\n var slideTo = function (idx, proposedPosition, triggerChange) {\n if (triggerChange) {\n updateOnChange(getNextValues(idx, proposedPosition));\n } else {\n updateValues(getNextValues(idx, proposedPosition));\n }\n };\n // ///////////////////////////////// Update Values End /////////////////////////////////\n // ///////////////////////////////// Handlers Start /////////////////////////////////\n var handleClick = function (event) {\n if (event.target.getAttribute('data-handle-key')) {\n return;\n }\n // Calculate the position of the slider on the page so we can determine\n // the position where you click in relativity.\n var box = getSliderBoundingBox();\n var positionDecimal = (event.clientX - box.left) / box.width;\n var positionPercent = positionDecimal * PERCENT_FULL;\n var handleId = getClosestHandle(positionPercent);\n var validPositionPercent = getSnapPosition(positionPercent);\n // Move the handle there\n slideTo(handleId, validPositionPercent, true);\n };\n var handleKeydown = function (event) {\n var _a;\n var idx = getHandleFor(event);\n if (idx === null) {\n return;\n }\n if (event.key === KEYS.ESC) {\n (_a = event.currentTarget) === null || _a === void 0 ? void 0 : _a.blur();\n return;\n }\n var proposedPercentage = getNextPositionForKey(idx, event.key);\n if (proposedPercentage === null) return;\n if (canMove(idx, proposedPercentage)) {\n slideTo(idx, proposedPercentage, true);\n }\n killEvent(event);\n };\n var setStartSlide = function (event) {\n var box = getSliderBoundingBox();\n var dimensions = getHandleDimensions(event, box);\n var index = getHandleFor(event);\n setStateRef({\n slidingIndex: index,\n handleDimensions: dimensions,\n sliderBox: box\n });\n };\n var handleSlide = function (x) {\n var positionPercent = (x - stateRef.current.sliderBox.left) / stateRef.current.sliderBox.width * PERCENT_FULL;\n if (stateRef.current.slidingIndex !== null) {\n slideTo(stateRef.current.slidingIndex, positionPercent, false);\n }\n };\n var handleTouchSlide = function (event) {\n if (stateRef.current.slidingIndex === null) return;\n if (event.changedTouches.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n endSlide();\n return;\n }\n var touch = event.changedTouches[0];\n handleSlide(touch.clientX);\n killEvent(event);\n };\n var handleMouseSlide = function (event) {\n if (stateRef.current.slidingIndex === null) return;\n handleSlide(event.clientX);\n killEvent(event);\n };\n var endSlide = function () {\n document.removeEventListener('mouseup', endSlide, false);\n document.removeEventListener('touchend', endSlide, false);\n document.removeEventListener('touchmove', handleTouchSlide, false);\n document.removeEventListener('mousemove', handleMouseSlide, false);\n if (snap && posRef.current && stateRef.current.slidingIndex !== null) {\n var pos = posRef.current.handlePos[stateRef.current.slidingIndex];\n var positionPercent = getSnapPosition(pos);\n slideTo(stateRef.current.slidingIndex, positionPercent, true);\n }\n setStateRef(__assign(__assign({}, stateRef.current), {\n slidingIndex: null\n }));\n if (posRef.current) {\n updateOnChange(posRef.current.handlePos.map(function (x) {\n return getValue(x, min, max);\n }));\n }\n };\n var captureClick = function (event) {\n event.stopPropagation(); // Stop the click from being propagated.\n document.removeEventListener('click', captureClick, true); // cleanup\n };\n\n var startMouseSlide = function (event) {\n setStartSlide(event);\n document.addEventListener('mousemove', handleMouseSlide, false);\n document.addEventListener('mouseup', endSlide, false);\n // This registeres a listener for the capture phase instead of the bubbling phase!\n document.addEventListener('click', captureClick, true);\n killEvent(event);\n };\n var startTouchSlide = function (event) {\n if (event.changedTouches.length > 1) return;\n setStartSlide(event);\n document.addEventListener('touchmove', handleTouchSlide, false);\n document.addEventListener('touchend', endSlide, false);\n killEvent(event);\n };\n // ///////////////////////////////// Handlers End /////////////////////////////////\n // ///////////////////////////////// Effects Start /////////////////////////////////\n // If we are controlled and get some prop updates we should update state\n useEffect(function () {\n // Don't update any state\n if (!controlled) return;\n // Update State\n setValues(validateValues(values));\n // Fire onChange if it exists\n if (onChange) onChange({\n values: values,\n min: min,\n max: max\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(values), min, max]); // Stringify values to catch object changes\n // Update Values if Min/Max Change\n useEffect(function () {\n if (controlled) {\n updateOnChange(localValues);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max]);\n // If suddenly Disable Stop Sliding and disable\n useEffect(function () {\n if (disabled && slidingIndex !== null) {\n endSlide();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disabled]);\n // ///////////////////////////////// Effects End /////////////////////////////////\n return React.createElement(React.Fragment, null, label && React.createElement(\"div\", {\n className: classes.wrenchLabel,\n id: inputId\n }, label), React.createElement(\"div\", __assign({\n className: classes.wrenchSlider,\n ref: sliderRef,\n onClick: disabled ? undefined : handleClick\n }, safeRest(rest)), React.createElement(\"div\", {\n className: classes.wrenchSliderTrack\n }, handlePos.map(function (pos, idx) {\n return React.createElement(\"div\", {\n role: \"slider\",\n \"aria-labelledby\": label ? inputId : undefined,\n \"aria-label\": ariaLabel,\n \"aria-valuemax\": getMaxValue(idx),\n \"aria-valuemin\": getMinValue(idx),\n \"aria-valuenow\": localValues[idx],\n \"aria-disabled\": disabled,\n \"aria-valuetext\": valueText,\n \"data-handle-key\": idx,\n className: classes.wrenchSliderHandle,\n // eslint-disable-next-line react/no-array-index-key\n key: \"handle-\".concat(idx),\n onClick: killEvent,\n onKeyDown: disabled ? undefined : handleKeydown,\n onMouseDown: disabled ? undefined : startMouseSlide,\n onTouchStart: disabled ? undefined : startTouchSlide,\n style: {\n left: \"\".concat(pos, \"%\")\n },\n tabIndex: 0\n }, React.createElement(\"span\", {\n className: classes.wrenchVisuallyHidden\n }, localValues[idx]), (showTooltip || alwaysShowTooltip) && React.createElement(Tooltip, {\n text: tooltipValue ? tooltipValue(localValues[idx]) : localValues[idx],\n alwaysShow: alwaysShowTooltip\n }, React.createElement(\"div\", {\n className: classes.wrenchSliderHandleFill\n })));\n }), handlePos.map(function (node, idx, arr) {\n if (idx === 0 && arr.length > 1 || !range) {\n return null;\n }\n return React.createElement(ProgressBar\n // eslint-disable-next-line react/no-array-index-key\n , {\n // eslint-disable-next-line react/no-array-index-key\n key: \"progress-bar-\".concat(idx),\n style: getProgressStyle(idx)\n });\n }), children && React.createElement(\"ul\", {\n className: classes.wrenchSliderSteps\n }, children))));\n};\nvar useStyles = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n palette = theme.palette;\n return {\n wrenchStep: function () {\n return {\n listStyle: 'none',\n flexGrow: 1,\n height: '100%',\n borderRight: \"1px solid \".concat(palette.background.light),\n position: 'relative',\n '&:nth-last-child(2)': {\n borderRight: '1px solid transparent'\n },\n // // All labels\n '& > * ': {\n position: 'absolute',\n top: '100%',\n transform: 'translateX(-50%)',\n marginTop: spacing[1]\n },\n '&:first-child': {\n textAlign: 'left',\n '& > *': {\n transform: 'translateX(0)'\n }\n },\n '&:last-child': {\n borderRight: 'none',\n maxWidth: 0,\n '& > *': {\n right: 0,\n transform: 'translateX(0)'\n }\n }\n };\n }\n };\n});\nvar Step = function (_a) {\n var children = _a.children;\n var theme = useTheme();\n var classes = useStyles({\n theme: theme\n });\n return React.createElement(\"li\", {\n className: classes.wrenchStep\n }, children && React.createElement(Label, {\n muted: true\n }, children));\n};\nexport { Slider, Step, getClosestSnapPoint };","import { Label } from '@wds/label';\nimport { createMemoStyles, deprecate, uniqueId, safeRest, defaultFonts } from '@wds/utils';\nimport React, { useMemo } from 'react';\nimport { getColor } from '@wds/styles';\nvar COLOR_OPTIONS = ['default', 'success', 'warning', 'error'];\nvar ALIGN_OPTIONS = ['top', 'center', 'bottom'];\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStylesInput$1 = createMemoStyles(function (theme) {\n var radius = theme.radius,\n palette = theme.palette,\n shadow = theme.shadow,\n border = theme.border;\n var inputGroupStyles = {\n wrenchInputGroup: function (_a) {\n var color = _a.color,\n stretched = _a.stretched,\n disabled = _a.disabled;\n return {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n border: border.main,\n background: palette.background.light,\n borderRadius: radius.small,\n width: stretched ? '100%' : null,\n pointerEvents: disabled ? 'none' : null,\n opacity: disabled ? '0.4' : null,\n borderColor: getColor(palette, color, {\n fallback: palette.border.main\n }),\n '&:hover': {\n borderColor: getColor(palette, color, {\n fallback: palette.border.hover\n }),\n boxShadow: shadow.sky,\n transition: ['border-color 100ms', 'box-shawdow 100ms']\n },\n '&:has(> input:focus), &:has(> textarea:focus)': {\n borderColor: getColor(palette, color, {\n fallback: palette.border.active\n }),\n transition: ['border-color', '100ms']\n },\n '& > input, & > textarea': {\n color: getColor(palette, color, {\n fallback: palette.text.dark\n }),\n border: 'none',\n flexGrow: 1,\n width: stretched ? '100%' : null,\n '&:hover': {\n boxShadow: 'none'\n }\n },\n '&:empty': {\n border: 0,\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px'\n }\n };\n }\n };\n return inputGroupStyles;\n});\nvar InputGroup = function (_a) {\n var children = _a.children,\n id = _a.id,\n label = _a.label,\n _b = _a.stretched,\n stretched = _b === void 0 ? false : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n _d = _a.color,\n color = _d === void 0 ? 'default' : _d,\n rest = __rest(_a, [\"children\", \"id\", \"label\", \"stretched\", \"disabled\", \"color\"]);\n deprecate({\n color: color\n }, 'color', 'warning', 'InputGroup');\n var inputID = useMemo(function () {\n return id !== null && id !== void 0 ? id : uniqueId('input');\n }, [id]);\n var wrenchInputGroup = useStylesInput$1({\n color: color,\n stretched: stretched,\n disabled: disabled\n }).wrenchInputGroup;\n return React.createElement(React.Fragment, null, label && React.createElement(Label, {\n htmlFor: inputID\n }, label), React.createElement(\"div\", __assign({\n className: wrenchInputGroup\n }, safeRest(rest)), children));\n};\nfunction getAlign(align) {\n if (align === 'bottom') {\n return 'flex-end';\n }\n if (align === 'top') {\n return 'flex-start';\n }\n return 'center';\n}\nvar useStylesInput = createMemoStyles(function (theme) {\n var palette = theme.palette,\n spacing = theme.spacing;\n var inputGroupStyles = {\n wrenchInputGroupAddon: function (_a) {\n var align = _a.align;\n return __assign(__assign({}, defaultFonts(theme)), {\n whiteSpace: 'nowrap',\n display: 'flex',\n alignSelf: getAlign(align),\n marginTop: align === 'top' ? spacing[1] : 0,\n marginBottom: align === 'bottom' ? spacing[1] : 0,\n // if the children are SVGs, then add even more margin\n '& > svg': {\n marginTop: align === 'top' ? spacing[2] : 0,\n marginBottom: align === 'bottom' ? spacing[2] : 0\n },\n '&:first-child': {\n paddingLeft: spacing[1],\n '& > svg': {\n marginLeft: spacing[2],\n fill: function (_a) {\n var color = _a.color;\n return getColor(palette, color, {\n fallback: palette.text.dark\n });\n },\n color: function (_a) {\n var color = _a.color;\n return getColor(palette, color, {\n fallback: palette.text.dark\n });\n }\n }\n },\n '&:last-child': {\n paddingRight: spacing[1],\n '& > svg': {\n marginRight: spacing[2],\n fill: function (_a) {\n var color = _a.color;\n return getColor(palette, color, {\n fallback: palette.text.dark\n });\n },\n color: function (_a) {\n var color = _a.color;\n return getColor(palette, color, {\n fallback: palette.text.dark\n });\n }\n }\n }\n });\n }\n };\n return inputGroupStyles;\n});\nvar InputGroupAddon = function (_a) {\n var children = _a.children,\n _b = _a.color,\n color = _b === void 0 ? 'default' : _b,\n _c = _a.align,\n align = _c === void 0 ? 'center' : _c,\n rest = __rest(_a, [\"children\", \"color\", \"align\"]);\n var wrenchInputGroupAddon = useStylesInput({\n color: color,\n align: align\n }).wrenchInputGroupAddon;\n return React.createElement(\"div\", __assign({\n className: wrenchInputGroupAddon\n }, safeRest(rest)), children);\n};\nexport { ALIGN_OPTIONS, COLOR_OPTIONS, InputGroup, InputGroupAddon };","import React from 'react';\nimport { IconError, IconCheck, IconWarning } from '@wds/icons';\nimport { Box } from '@wds/box';\nimport { getColor } from '@wds/styles';\nimport { createMemoStyles, defaultBaseline, defaultFonts } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar useStyles = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n palette = theme.palette,\n type = theme.type;\n return {\n wrenchInputMessage: function (_a) {\n _a.color;\n return __assign(__assign(__assign({}, defaultBaseline), defaultFonts(theme)), {\n marginTop: spacing[2],\n color: getColor(palette, 'darkMuted'),\n fontSize: type.fontSize.bodySm,\n fontWeight: type.fontWeight.regular,\n alignItems: 'center',\n display: 'flex'\n });\n }\n };\n});\nvar InputMessage = function (_a) {\n var children = _a.children,\n color = _a.color;\n var wrenchInputMessage = useStyles({\n color: color\n }).wrenchInputMessage;\n return React.createElement(\"div\", {\n role: \"alert\",\n className: wrenchInputMessage\n }, React.createElement(Box, {\n mr: 1,\n display: \"inline-flex\",\n alignItems: \"center\"\n }, color === 'error' && React.createElement(IconError, {\n color: color,\n title: \"error\"\n }), color === 'success' && React.createElement(IconCheck, {\n color: color,\n title: \"success\"\n }), color === 'warning' && React.createElement(IconWarning, {\n color: color,\n title: \"warning\"\n })), children);\n};\nexport { InputMessage };","import { Label } from '@wds/label';\nimport { createMemoStyles, defaultBaseline, defaultFonts, deprecate, uniqueId, safeRest } from '@wds/utils';\nimport React, { forwardRef, useMemo } from 'react';\nimport { InputMessage } from '@wds/input-message';\nimport { getColor } from '@wds/styles';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n shadow = theme.shadow,\n palette = theme.palette,\n type = theme.type,\n radius = theme.radius;\n var input = {\n height: {\n sm: spacing[6],\n md: 40,\n lg: spacing[7]\n },\n fontSize: type.fontSize.body,\n padding: {\n sm: spacing[2],\n md: spacing[4],\n lg: spacing[4]\n }\n };\n var inputStyles = {\n wrenchInput: function (_a) {\n var size = _a.size,\n stretched = _a.stretched,\n color = _a.color,\n disabled = _a.disabled;\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, defaultBaseline), defaultFonts(theme)), {\n outline: 'none',\n appearance: 'none',\n boxShadow: 'none',\n color: palette.text.dark,\n border: [1, 'solid', getColor(palette, color, {\n fallback: palette.border.main\n })],\n borderRadius: radius.small,\n backgroundColor: palette.background.light,\n lineHeight: 1.5,\n '&:hover': {\n borderColor: getColor(palette, color, {\n fallback: palette.border.hover\n }),\n boxShadow: shadow.sky,\n transition: ['border-color 100ms', 'box-shawdow 100ms']\n },\n '&:focus': {\n borderColor: getColor(palette, color, {\n fallback: palette.border.active\n }),\n transition: ['border-color', '100ms']\n }\n }), size && {\n padding: [0, input.padding[size]]\n }), size && {\n height: size && input.height[size]\n }), (size === 'md' || size === undefined) && {\n fontSize: input.fontSize\n }), stretched && {\n width: '100%'\n }), disabled && {\n pointerEvents: 'none',\n opacity: 0.4\n });\n }\n };\n return inputStyles;\n});\nvar Input = forwardRef(function (_a, ref) {\n var ariaLabel = _a.ariaLabel,\n defaultValue = _a.defaultValue,\n _b = _a.disabled,\n disabled = _b === void 0 ? false : _b,\n color = _a.color,\n errorMessage = _a.errorMessage,\n id = _a.id,\n inputSize = _a.inputSize,\n label = _a.label,\n name = _a.name,\n onBlur = _a.onBlur,\n onChange = _a.onChange,\n onClick = _a.onClick,\n _c = _a.readOnly,\n readOnly = _c === void 0 ? false : _c,\n _d = _a.size,\n size = _d === void 0 ? 'md' : _d,\n _e = _a.stretched,\n stretched = _e === void 0 ? false : _e,\n _f = _a.type,\n type = _f === void 0 ? 'text' : _f,\n value = _a.value,\n placeholder = _a.placeholder,\n min = _a.min,\n max = _a.max,\n step = _a.step,\n otherProps = __rest(_a, [\"ariaLabel\", \"defaultValue\", \"disabled\", \"color\", \"errorMessage\", \"id\", \"inputSize\", \"label\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"readOnly\", \"size\", \"stretched\", \"type\", \"value\", \"placeholder\", \"min\", \"max\", \"step\"]);\n deprecate({\n color: color\n }, 'color', 'warning', 'Input');\n var wrenchInput = useStyles({\n size: size,\n stretched: stretched,\n color: color,\n disabled: disabled\n }).wrenchInput;\n var inputID = useMemo(function () {\n return id !== null && id !== void 0 ? id : uniqueId('input');\n }, [id]);\n var handleChange = function (event) {\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n return React.createElement(React.Fragment, null, label && React.createElement(Label, {\n htmlFor: inputID\n }, label), React.createElement(\"input\", __assign({\n \"aria-label\": ariaLabel,\n className: wrenchInput,\n defaultValue: defaultValue,\n disabled: disabled,\n id: inputID,\n name: name,\n onBlur: onBlur,\n onClick: onClick,\n onChange: handleChange,\n readOnly: readOnly,\n ref: ref,\n size: inputSize,\n type: type,\n value: value,\n placeholder: placeholder,\n min: min,\n max: max,\n step: step\n }, safeRest(otherProps))), errorMessage && React.createElement(InputMessage, {\n color: color\n }, errorMessage));\n});\nInput.displayName = 'Input';\nexport { Input };","import { createMemoStyles, safeRest, clsx, getDisplayName, uniqueId, defaultFonts, clearfix, defaultBaseline, isBrowser, withNested, handlePortal } from '@wds/utils';\nimport React, { useState, useEffect, useRef, useImperativeHandle, Children, useMemo, isValidElement, cloneElement } from 'react';\nimport { useTheme } from 'react-jss';\nimport { CloseButton } from '@wds/internal-components';\nimport { Slide } from '@wds/motion';\nimport { Typography } from '@wds/typography';\nvar POPOUT_PLACEMENTS = ['top', 'bottom', 'right', 'left'];\nvar POPOUT_SIZES = ['lg', 'md', 'sm'];\nvar POPOUT_ALIGNMENTS = ['left', 'right'];\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles$5 = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n type = theme.type,\n palette = theme.palette;\n return {\n wrenchPopoutBody: {\n fontFamily: type.fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n padding: spacing[5],\n textAlign: 'left',\n fontSize: type.fontSize.bodySm,\n color: palette.text.dark\n }\n };\n});\nvar PopoutBody = function (_a) {\n var children = _a.children,\n id = _a.id,\n props = __rest(_a, [\"children\", \"id\"]);\n var wrenchPopoutBody = useStyles$5().wrenchPopoutBody;\n return React.createElement(\"div\", __assign({\n className: wrenchPopoutBody,\n id: id\n }, safeRest(props)), children);\n};\nPopoutBody.displayName = 'PopoutBody';\nvar useStyles$4 = createMemoStyles(function (theme) {\n var spacing = theme.spacing,\n palette = theme.palette,\n radius = theme.radius,\n shadow = theme.shadow;\n var popout = {\n width: {\n sm: 275,\n md: 360,\n lg: 445\n },\n boxShadow: shadow.space,\n pipSize: 12,\n borderRadius: radius.small,\n border: 'none'\n };\n return {\n wrenchPopout: function (_a) {\n var placement = _a.placement,\n size = _a.size,\n elevation = _a.elevation;\n return {\n boxSizing: 'border-box',\n zIndex: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space,\n position: 'absolute',\n outline: 'none',\n width: '80vw',\n whiteSpace: 'normal',\n left: '50%',\n bottom: '100%',\n textAlign: 'center',\n transform: 'translateY(-6px)',\n maxWidth: size ? popout.width[size] : null,\n marginLeft: ['top', 'bottom'].includes(placement) ? -(popout.width[size] / 2) : 'auto'\n };\n },\n wrenchPopoutPlacementTop: function () {\n return {\n left: '50%',\n bottom: '100%',\n textAlign: 'center',\n transform: 'translateY(-6px)',\n '& $wrenchPopoutPopout': {\n '&:after': {\n content: '\"\"',\n bottom: -(popout.pipSize / 2),\n left: '50%',\n marginLeft: -(popout.pipSize / 2)\n }\n }\n };\n },\n wrenchPopoutPlacementBottom: function () {\n return {\n left: '50%',\n top: '100%',\n textAlign: 'center',\n transform: 'translateY(6px)',\n '& $wrenchPopoutPopout': {\n '&:after': {\n content: '\"\"',\n top: -(popout.pipSize / 2),\n left: '50%',\n marginLeft: -(popout.pipSize / 2),\n transform: 'rotate(-135deg)'\n }\n }\n };\n },\n wrenchPopoutPlacementLeft: function () {\n return {\n right: '100%',\n transform: 'translate(0, -50%)',\n bottom: 'auto',\n top: '50%',\n left: 'auto',\n paddingBottom: 0,\n paddingRight: popout.pipSize + spacing[1],\n textAlign: 'right',\n marginTop: -(popout.pipSize / 2),\n marginLeft: '0 !important',\n '& $wrenchPopoutPopout': {\n '&:after': {\n content: '\"\"',\n left: 'auto',\n right: -(popout.pipSize / 2),\n top: '50%',\n bottom: 'auto',\n transform: 'rotate(-45deg)'\n }\n }\n };\n },\n wrenchPopoutPlacementRight: function () {\n return {\n left: '100%',\n transform: 'translate(0, -50%)',\n bottom: 'auto',\n top: '50%',\n paddingLeft: popout.pipSize + spacing[1],\n paddingBottom: 0,\n textAlign: 'left',\n marginTop: -(popout.pipSize / 2),\n marginLeft: '0 !important',\n '& $wrenchPopoutPopout': {\n '&:after': {\n content: '\"\"',\n left: -(popout.pipSize / 2),\n top: '50%',\n marginLeft: 0,\n bottom: 'auto',\n transform: 'rotate(135deg)'\n }\n }\n };\n },\n wrenchPopoutPopout: function () {\n return {\n background: palette.background.light,\n borderRadius: popout.borderRadius,\n boxShadow: popout.boxShadow,\n position: 'relative',\n border: popout.border,\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n width: 80,\n height: spacing[4],\n bottom: -spacing[4],\n left: '50%',\n transform: 'translateX(-50%)'\n },\n '&:after': {\n content: '',\n position: 'absolute',\n width: popout.pipSize,\n height: popout.pipSize,\n backgroundColor: palette.background.light,\n transform: 'rotate(45deg)',\n boxShadow: ['3px', '3px', '5px', 'rgba(0, 0, 0, 0.07)']\n }\n };\n }\n };\n});\nvar PLACEMENT_TO_SLIDE = {\n top: 'up',\n bottom: 'down',\n right: 'right',\n left: 'left'\n};\nvar PLACEMENT_TO_CLASSNAME = {\n top: 'wrenchPopoutPlacementTop',\n bottom: 'wrenchPopoutPlacementBottom',\n right: 'wrenchPopoutPlacementRight',\n left: 'wrenchPopoutPlacementLeft'\n};\nvar PopoutContent = React.forwardRef(function (_a, ref) {\n var children = _a.children,\n _b = _a.clickable,\n clickable = _b === void 0 ? false : _b,\n _c = _a.closeButtonLabel,\n closeButtonLabel = _c === void 0 ? 'Close Popout' : _c,\n _d = _a.noCloseButton,\n noCloseButton = _d === void 0 ? false : _d,\n _e = _a.hasRenderTo,\n hasRenderTo = _e === void 0 ? false : _e,\n _f = _a.size,\n size = _f === void 0 ? 'sm' : _f,\n title = _a.title,\n _g = _a.placement,\n placement = _g === void 0 ? 'top' : _g,\n _h = _a.show,\n show = _h === void 0 ? false : _h,\n elevation = _a.elevation,\n handleClose = _a.handleClose,\n popoutStyle = _a.popoutStyle;\n var _j = useStyles$4({\n size: size,\n placement: placement,\n elevation: elevation\n }),\n wrenchPopout = _j.wrenchPopout,\n wrenchPopoutPopout = _j.wrenchPopoutPopout,\n wrenchPlacementClasses = __rest(_j, [\"wrenchPopout\", \"wrenchPopoutPopout\"]);\n var popoutClassNames = clsx(wrenchPopout, wrenchPlacementClasses[PLACEMENT_TO_CLASSNAME[placement]]);\n var _k = useState({}),\n style = _k[0],\n setStyle = _k[1];\n useEffect(function () {\n setStyle(popoutStyle && {\n left: popoutStyle.left,\n top: popoutStyle.top,\n zIndex: popoutStyle.zIndex,\n position: popoutStyle.position\n } || {});\n }, [popoutStyle]);\n // Forward information about box up to Popout component\n var contentRef = useRef(null);\n // Clean up what we send back to the parent.\n useImperativeHandle(ref, function () {\n var _a, _b;\n return {\n childBoundingBox: (_b = (_a = contentRef === null || contentRef === void 0 ? void 0 : contentRef.current) === null || _a === void 0 ? void 0 : _a.children[0]) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect()\n };\n });\n var childArray = Children.toArray(children);\n var hasMasthead = childArray.find(function (child) {\n return getDisplayName(child) === 'PopoutMasthead';\n });\n var hasHeader = childArray.some(function (child) {\n return getDisplayName(child) === 'PopoutHeader';\n });\n // Close button can't be removed if the button is clickable. This is to give the user an easy way to remove the popout.\n var isCloseButtonOverridden = noCloseButton && !clickable;\n // Close button won't show up for masthead popouts even if it's clickable\n var hasCloseButton = !hasMasthead && !isCloseButtonOverridden;\n // Ids for labels and children\n var headerId = hasHeader && uniqueId('wds-popout-header-') || undefined;\n var bodyId = useMemo(function () {\n return uniqueId('wds-popout-body-');\n }, []);\n return React.createElement(\"div\", {\n role: \"dialog\",\n \"aria-labelledby\": headerId,\n \"aria-describedby\": bodyId,\n \"aria-label\": title,\n className: popoutClassNames,\n style: style,\n ref: contentRef\n }, React.createElement(Slide, {\n in: show,\n direction: PLACEMENT_TO_SLIDE[placement],\n timeout: !clickable && !show && hasRenderTo ? 0 : 150,\n distance: \"near\"\n }, React.createElement(\"div\", null, React.createElement(\"div\", {\n className: wrenchPopoutPopout\n }, hasCloseButton && React.createElement(CloseButton, {\n onClick: handleClose,\n label: closeButtonLabel,\n variant: \"dark\"\n }), Children.map(children, function (child) {\n if (isValidElement(child)) {\n var displayName = getDisplayName(child);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var props = __assign({\n id: displayName === 'PopoutHeader' ? headerId : bodyId\n }, child.props);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return cloneElement(child, __assign({}, props));\n }\n return undefined;\n })))));\n});\nvar useStyles$3 = createMemoStyles(function (theme) {\n var spacing = theme.spacing;\n return {\n wrenchPopoutFooter: __assign(__assign(__assign({}, defaultFonts(theme)), {\n padding: spacing[5],\n paddingTop: 0,\n margin: 0\n }), clearfix),\n wrenchPopoutAlign: function (_a) {\n var align = _a.align;\n return align && {\n right: {\n display: 'flex',\n flexGrow: 1,\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n '& [class*=\"wrenchButton-\"]': {\n marginLeft: spacing[2]\n }\n },\n left: {\n display: 'flex',\n flexGrow: 1,\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n '& [class*=\"wrenchButton-\"]': {\n marginRight: spacing[2]\n }\n }\n }[align] || undefined;\n }\n };\n});\nvar PopoutFooter = function (_a) {\n var align = _a.align,\n children = _a.children,\n props = __rest(_a, [\"align\", \"children\"]);\n var _b = useStyles$3({\n align: align\n }),\n wrenchPopoutFooter = _b.wrenchPopoutFooter,\n wrenchPopoutAlign = _b.wrenchPopoutAlign;\n return React.createElement(\"footer\", __assign({}, safeRest(props), {\n className: wrenchPopoutFooter\n }), React.createElement(\"div\", {\n className: wrenchPopoutAlign\n }, children));\n};\nPopoutFooter.displayName = 'PopoutFooter';\nvar useStyles$2 = createMemoStyles(function (_a) {\n var spacing = _a.spacing,\n type = _a.type;\n return {\n wrenchPopoutHeader: __assign(__assign({}, defaultFonts({\n type: type\n })), {\n padding: spacing[5],\n paddingBottom: 0,\n textAlign: 'left',\n '& + [class*=\"wrenchPopoutBody\"]': {\n paddingTop: spacing[4]\n }\n }),\n wrenchPopoutHeaderText: {\n fontWeight: type.fontWeight.medium\n }\n };\n});\nvar PopoutHeader = function (_a) {\n var children = _a.children,\n id = _a.id,\n props = __rest(_a, [\"children\", \"id\"]);\n var _b = useStyles$2(),\n wrenchPopoutHeader = _b.wrenchPopoutHeader,\n wrenchPopoutHeaderText = _b.wrenchPopoutHeaderText;\n return React.createElement(\"header\", __assign({\n className: wrenchPopoutHeader,\n id: id\n }, safeRest(props)), React.createElement(Typography, {\n component: \"h2\",\n variant: \"body\"\n }, React.createElement(\"div\", {\n className: wrenchPopoutHeaderText\n }, children)));\n};\nPopoutHeader.displayName = 'PopoutHeader';\nvar useStyles$1 = createMemoStyles(function (theme) {\n var palette = theme.palette;\n return {\n wrenchPopoutMasthead: __assign(__assign({}, defaultFonts(theme)), {\n height: '150px',\n background: palette.info.main,\n overflow: 'hidden',\n '> img': {\n width: '100%',\n height: '100%',\n boxSizing: 'border-box',\n margin: 0,\n display: 'block'\n }\n })\n };\n});\nvar PopoutMasthead = function (_a) {\n var children = _a.children,\n props = __rest(_a, [\"children\"]);\n var wrenchPopoutMasthead = useStyles$1().wrenchPopoutMasthead;\n return React.createElement(\"div\", __assign({\n className: wrenchPopoutMasthead\n }, safeRest(props)), children);\n};\nPopoutMasthead.displayName = 'PopoutMasthead';\nvar getNewPosition = function (_a) {\n var width = _a.width,\n height = _a.height,\n popoutRect = _a.popoutRect,\n childRect = _a.childRect,\n placement = _a.placement,\n autoFlip = _a.autoFlip,\n pipSize = _a.pipSize;\n var newPlacement = placement;\n var availablePlacementSpace = [{\n placement: 'top',\n width: width,\n height: popoutRect.top,\n area: width * popoutRect.top\n }, {\n placement: 'right',\n width: width - popoutRect.right,\n height: height,\n area: (width - popoutRect.right) * height\n }, {\n placement: 'bottom',\n width: width,\n height: height - popoutRect.bottom,\n area: width * (height - popoutRect.bottom)\n }, {\n placement: 'left',\n width: popoutRect.left,\n height: height,\n area: popoutRect.left * height\n }].sort(function (a, b) {\n return b.area - a.area;\n });\n var inboundsPlacements = availablePlacementSpace.filter(function (_a) {\n var w = _a.width,\n h = _a.height;\n return w >= childRect.width && h >= childRect.height;\n });\n // If current placement fits use it.\n if (inboundsPlacements.find(function (p) {\n return p.placement === placement;\n }) || !autoFlip) {\n newPlacement = placement;\n } else {\n // Take the direction with the most space\n newPlacement = inboundsPlacements.length ? inboundsPlacements[0].placement : availablePlacementSpace[0].placement;\n }\n var position = {\n top: {\n top: popoutRect.top - childRect.height,\n left: popoutRect.left + popoutRect.width / 2\n },\n left: {\n top: popoutRect.top + popoutRect.height / 2,\n left: popoutRect.left - (childRect.width + pipSize)\n },\n right: {\n top: popoutRect.top + popoutRect.height / 2,\n left: popoutRect.left + popoutRect.width\n },\n bottom: {\n top: popoutRect.bottom,\n left: popoutRect.left + popoutRect.width / 2\n }\n };\n return {\n newPosition: position,\n newPlacement: newPlacement\n };\n};\nvar useStyles = createMemoStyles({\n wrenchHasPopout: __assign(__assign({}, defaultBaseline), {\n position: 'relative',\n display: 'inline-block'\n }),\n wrenchPopoutTrigger: __assign({}, defaultBaseline)\n});\nvar Popout = React.forwardRef(function (_a, ref) {\n var _b = _a.autoClose,\n autoClose = _b === void 0 ? false : _b,\n _c = _a.autoFlip,\n autoFlip = _c === void 0 ? false : _c,\n children = _a.children,\n _d = _a.clickable,\n clickable = _d === void 0 ? false : _d,\n _e = _a.closeButtonLabel,\n closeButtonLabel = _e === void 0 ? 'Close Popout' : _e,\n _f = _a.delay,\n delay = _f === void 0 ? false : _f,\n _g = _a.closeDelay,\n closeDelay = _g === void 0 ? false : _g,\n _h = _a.noCloseButton,\n noCloseButton = _h === void 0 ? false : _h,\n onChange = _a.onChange,\n _j = _a.placement,\n placement = _j === void 0 ? 'top' : _j,\n renderTo = _a.renderTo,\n _k = _a.show,\n show = _k === void 0 ? false : _k,\n _l = _a.size,\n size = _l === void 0 ? 'sm' : _l,\n title = _a.title,\n trigger = _a.trigger,\n elevation = _a.elevation,\n rest = __rest(_a, [\"autoClose\", \"autoFlip\", \"children\", \"clickable\", \"closeButtonLabel\", \"delay\", \"closeDelay\", \"noCloseButton\", \"onChange\", \"placement\", \"renderTo\", \"show\", \"size\", \"title\", \"trigger\", \"elevation\"]);\n var theme = useTheme();\n var _m = useStyles(),\n wrenchHasPopout = _m.wrenchHasPopout,\n wrenchPopoutTrigger = _m.wrenchPopoutTrigger;\n // Used for placement and popout Style\n // States\n var _o = useState(show),\n showState = _o[0],\n setShowState = _o[1];\n var _p = useState(),\n popoutStyle = _p[0],\n setPopoutStyle = _p[1];\n var _q = useState(placement),\n placementState = _q[0],\n setPlacementState = _q[1];\n // Track timeout through events for delay functionality.\n var timeoutRef = useRef({\n timeout: undefined\n });\n var closeTimeoutRef = useRef({\n timeout: undefined\n });\n var popoutRef = useRef(null);\n var contentRef = useRef(null);\n // Update Placement and Style\n useEffect(function () {\n var _a, _b, _c, _d;\n var state = {\n placementState: placement,\n popoutStyle: popoutStyle\n };\n var popoutRect = (_a = popoutRef === null || popoutRef === void 0 ? void 0 : popoutRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n var childRect = (_b = contentRef === null || contentRef === void 0 ? void 0 : contentRef.current) === null || _b === void 0 ? void 0 : _b.childBoundingBox;\n var timeoutUnmount = (_c = timeoutRef === null || timeoutRef === void 0 ? void 0 : timeoutRef.current) === null || _c === void 0 ? void 0 : _c.timeout;\n var closeTimeoutUnmount = (_d = closeTimeoutRef === null || closeTimeoutRef === void 0 ? void 0 : closeTimeoutRef.current) === null || _d === void 0 ? void 0 : _d.timeout;\n if (isBrowser) {\n var width = document.documentElement.clientWidth;\n var height = document.documentElement.clientHeight;\n var pipSize = 12 + theme.spacing[1];\n if (childRect && popoutRect) {\n var _e = getNewPosition({\n width: width,\n height: height,\n childRect: childRect,\n popoutRect: popoutRect,\n placement: placement,\n autoFlip: autoFlip,\n pipSize: pipSize\n }),\n newPosition = _e.newPosition,\n newPlacement = _e.newPlacement;\n if (autoFlip) state.placementState = newPlacement;\n if (renderTo) {\n var newPos = newPosition[autoFlip ? newPlacement : placement];\n state.popoutStyle = {\n // Rendering happens relative to the RenderTo element\n top: newPos.top,\n left: newPos.left,\n zIndex: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space,\n position: 'fixed'\n };\n }\n }\n setPlacementState(state.placementState);\n setPopoutStyle(state.popoutStyle);\n }\n return function () {\n clearTimeout(timeoutUnmount);\n clearTimeout(closeTimeoutUnmount);\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [placement, autoFlip, renderTo,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(contentRef), showState, show, timeoutRef, closeTimeoutRef]);\n /// /////////////////// HANDLERS ///////////////////\n useEffect(function () {\n setShowState(show);\n }, [show]);\n /// /////////////////// HANDLE SCROLL ///////////////////\n var handleScroll = function () {};\n var addScroll = function () {\n if (renderTo && isBrowser) {\n window.addEventListener('scroll', handleScroll);\n window.addEventListener('resize', handleScroll);\n window.addEventListener('orientationchange', handleScroll);\n }\n };\n var removeScroll = function () {\n if (renderTo && isBrowser) {\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleScroll);\n window.removeEventListener('orientationchange', handleScroll);\n }\n };\n /// /////////////////// HANDLE CLICK ///////////////////\n var handleClick = function () {\n if (clickable) {\n if (onChange) onChange(!showState);\n setShowState(!showState);\n }\n };\n /// /////////////////// HANDLE MOUSE ///////////////////\n var onMouseEnter = function () {\n if (closeDelay && closeTimeoutRef.current.timeout) {\n clearTimeout(closeTimeoutRef.current.timeout);\n }\n if (!clickable) {\n if (delay) {\n timeoutRef.current.timeout = setTimeout(\n // eslint-disable-next-line func-names\n function () {\n addScroll();\n setShowState(true);\n if (onChange) onChange(true);\n }, 800);\n return;\n }\n addScroll();\n setShowState(true);\n if (onChange) onChange(true);\n }\n };\n var onMouseLeave = function () {\n if (delay && timeoutRef.current.timeout) {\n clearTimeout(timeoutRef.current.timeout);\n }\n if (!clickable) {\n if (closeDelay) {\n closeTimeoutRef.current.timeout = setTimeout(\n // eslint-disable-next-line func-names\n function () {\n removeScroll();\n setShowState(false);\n if (onChange) onChange(false);\n }, 800);\n return;\n }\n removeScroll();\n setShowState(false);\n if (onChange) onChange(false);\n }\n };\n /// /////////////////// HANDLE CLOSE ///////////////////\n var handleClose = function () {\n if (onChange) onChange(false);\n setShowState(false);\n removeScroll();\n };\n var handleAutoCloseBlur = function (e) {\n var _a;\n if ((_a = popoutRef === null || popoutRef === void 0 ? void 0 : popoutRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {\n return;\n }\n handleClose();\n };\n // componentWillMount\n useEffect(function () {\n if (autoClose && isBrowser) {\n document.addEventListener('mousedown', handleAutoCloseBlur, false);\n }\n // componentWillUnmount\n return function () {\n if (autoClose && isBrowser) {\n document.removeEventListener('mousedown', handleAutoCloseBlur, false);\n }\n };\n });\n // Only expose handleClose to the parent. This forces users to use the ref the way we intended.\n useImperativeHandle(ref, function () {\n return {\n handleClose: handleClose\n };\n });\n /// /////////////////// RENDERING ///////////////////\n // Reduce code duplication by rendering as a function rather than double declaring the whole component\n var renderPopoutContent = function () {\n var popoutContent = React.createElement(PopoutContent, {\n ref: contentRef,\n clickable: clickable,\n closeButtonLabel: closeButtonLabel,\n noCloseButton: noCloseButton,\n hasRenderTo: !!renderTo,\n size: size,\n title: title,\n placement: placementState,\n show: showState,\n handleClose: handleClose,\n popoutStyle: popoutStyle !== null && popoutStyle !== void 0 ? popoutStyle : undefined,\n elevation: elevation !== null && elevation !== void 0 ? elevation : theme.elevation.space\n }, children);\n return handlePortal(popoutContent, renderTo);\n };\n return React.createElement(\"span\", __assign({\n className: wrenchHasPopout,\n onBlur: onMouseLeave,\n ref: popoutRef\n }, safeRest(rest)), React.createElement(\"span\", {\n className: wrenchPopoutTrigger,\n onClick: handleClick,\n onKeyDown: handleClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onMouseEnter,\n title: title\n }, trigger, renderPopoutContent()));\n});\nvar PopoutWithNested = withNested(Popout, {\n Body: PopoutBody,\n Footer: PopoutFooter,\n Header: PopoutHeader,\n Masthead: PopoutMasthead\n});\nexport { POPOUT_ALIGNMENTS, POPOUT_PLACEMENTS, POPOUT_SIZES, PopoutWithNested as Popout };","import { IconCheck } from '@wds/icons';\nimport { Typography } from '@wds/typography';\nimport { createMemoStyles, defaultBaseline, defaultFonts, visuallyHidden, uniqueId, clsx, safeRest } from '@wds/utils';\nimport React, { useState, useEffect, useMemo } from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (theme) {\n var palette = theme.palette,\n type = theme.type,\n spacing = theme.spacing,\n motion = theme.motion,\n radius = theme.radius,\n shadow = theme.shadow;\n var checkbox = {\n bgColorOn: palette.primary.main,\n iconColorOn: palette.primary.contrast\n };\n var bounceFrames = {\n '@keyframes bounce': {\n '0%': {\n opacity: 0,\n transform: 'scale(0.6)',\n animationTimingFunction: 'cubic-bezier(0, 0, .1, 1)'\n },\n '10%': {\n opacity: 1\n },\n '33%': {\n opacity: 1,\n transform: 'scale(1.4)',\n animationTimingFunction: 'cubic-bezier(.2, 0, 0, 1)'\n },\n '100%': {\n opacity: 1,\n transform: 'scale(1)'\n }\n }\n };\n var scaleDownFrames = {\n '@keyframes scaleDown': {\n from: {\n opacity: 1,\n transform: 'scale(1)',\n animationTimingFunction: 'cubic-bezier(1, 0, 1, 1)'\n },\n '75%': {\n opacity: 1\n },\n '100%': {\n opacity: 0,\n transform: 'scale(0.4)'\n }\n }\n };\n return __assign(__assign(__assign({}, bounceFrames), scaleDownFrames), {\n wrenchCheckbox: function () {\n return __assign(__assign(__assign({}, defaultBaseline), defaultFonts(theme)), {\n position: 'relative',\n display: 'inline-flex',\n minHeight: spacing[5],\n minWidth: spacing[5],\n lineHeight: \"\".concat(spacing[5], \"px\")\n });\n },\n wrenchCheckboxFaux: function () {\n return __assign(__assign(__assign({}, defaultBaseline), defaultFonts(theme)), {\n content: '\"\"',\n display: 'inline-block',\n height: spacing[5],\n width: spacing[5],\n flexGrow: 0,\n flexShrink: 0,\n fontSize: type.fontSize.body,\n border: \"1px solid \".concat(palette.border.main),\n background: palette.background.light,\n borderRadius: radius.small,\n transition: \"all 50ms \".concat(motion.curve.exit, \" 100ms\"),\n verticalAlign: 'top',\n textAlign: 'left',\n '&:empty::after': {\n content: '3',\n fontFamily: type.fontFamily.icon,\n color: checkbox.iconColorOn,\n lineHeight: 1\n },\n '> svg[class^=\"wrenchIcons\"], &:empty::after': {\n position: 'absolute',\n top: spacing[1],\n left: spacing[1],\n opacity: 0,\n textAlign: 'center',\n fill: checkbox.iconColorOn,\n animation: '$scaleDown 150ms forwards'\n }\n });\n },\n wrenchCheckboxLabel: function () {\n return {\n padding: [0, 0, 0, spacing[4]],\n whiteSpace: 'normal'\n };\n },\n wrenchCheckboxIndeterminate: function () {\n return {\n '& + $wrenchCheckboxFaux': {\n borderColor: checkbox.bgColorOn,\n background: checkbox.bgColorOn,\n transform: 'scale(1)',\n transition: \"transform 200ms \".concat(motion.curve.bounceEnd)\n },\n '& + $wrenchCheckboxFaux > svg[class^=\"wrenchIcons\"]': visuallyHidden,\n '& + $wrenchCheckboxFaux:after': {\n position: 'absolute',\n top: '10px',\n left: '5px',\n display: 'block',\n content: '\"\"',\n background: palette.background.light,\n width: spacing[3],\n height: '2px'\n }\n };\n },\n wrenchCheckboxNative: function () {\n return __assign(__assign(__assign({}, defaultBaseline), defaultFonts(theme)), {\n position: 'absolute',\n cursor: 'inherit',\n opacity: 0,\n width: spacing[5],\n height: spacing[5],\n zIndex: 1,\n left: 0,\n '&:focus:checked + $wrenchCheckboxFaux': {\n borderColor: '#fff !important',\n boxShadow: \"0 0 0 1px \".concat(palette.primary.main, \" !important\")\n },\n '&:focus + $wrenchCheckboxFaux, &:hover + $wrenchCheckboxFaux': {\n borderColor: palette.border.hover,\n boxShadow: shadow.sky,\n transform: 'scale(1.1)',\n transition: [\"transform 200ms \".concat(motion.curve.ease), 'border-color 75ms linear 50ms', 'box-shadow 75ms linear 50ms']\n },\n '&:active + $wrenchCheckboxFaux': {\n transform: 'scale(0.7)',\n transition: \"transform 100ms \".concat(motion.curve.bounceStart)\n },\n '&:checked + $wrenchCheckboxFaux': {\n borderColor: checkbox.bgColorOn,\n background: checkbox.bgColorOn,\n transform: 'scale(1)',\n transition: \"transform 200ms \".concat(motion.curve.bounceEnd)\n },\n '&:checked + $wrenchCheckboxFaux > svg[class^=\"wrenchIcons\"]': {\n animation: \"$bounce 200ms forwards\"\n },\n '&:checked + $wrenchCheckboxFaux &:empty::after': {\n animation: \"$bounce 200ms forwards\"\n },\n '&:disabled + $wrenchCheckboxFaux, &:disabled ~ $wrenchCheckboxLabel': {\n opacity: '0.5',\n transform: 'scale(1)'\n }\n });\n }\n });\n});\nvar Checkbox = function (_a) {\n var ariaLabel = _a.ariaLabel,\n checked = _a.checked,\n _b = _a.defaultChecked,\n defaultChecked = _b === void 0 ? false : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n id = _a.id,\n _d = _a.indeterminate,\n indeterminate = _d === void 0 ? false : _d,\n innerRef = _a.innerRef,\n label = _a.label,\n name = _a.name,\n onBlur = _a.onBlur,\n onChange = _a.onChange,\n rest = __rest(_a, [\"ariaLabel\", \"checked\", \"defaultChecked\", \"disabled\", \"id\", \"indeterminate\", \"innerRef\", \"label\", \"name\", \"onBlur\", \"onChange\"]);\n var _e = useState(false),\n isChecked = _e[0],\n setChecked = _e[1];\n var _f = useState(false),\n isFocused = _f[0],\n setFocused = _f[1];\n var _g = useState(!!indeterminate),\n isIndeterminate = _g[0],\n setIndeterminate = _g[1];\n useEffect(function () {\n setIndeterminate(indeterminate);\n }, [indeterminate]);\n /**\n * Set the checked state of the checkbox\n * If checked value is passed, it takes precendent over defaultChecked to become\n * controlled input. If no value is passed, it uses the defaultChecked value\n */\n useEffect(function () {\n setChecked(checked !== null && checked !== void 0 ? checked : defaultChecked);\n }, [checked, defaultChecked]);\n var inputID = useMemo(function () {\n return id !== null && id !== void 0 ? id : uniqueId('checkbox');\n }, [id]);\n var _h = useStyles(),\n wrenchCheckboxNative = _h.wrenchCheckboxNative,\n wrenchCheckboxIndeterminate = _h.wrenchCheckboxIndeterminate,\n wrenchCheckbox = _h.wrenchCheckbox,\n wrenchCheckboxLabel = _h.wrenchCheckboxLabel,\n wrenchCheckboxFaux = _h.wrenchCheckboxFaux;\n var nativeClasses = clsx(wrenchCheckboxNative, isIndeterminate && wrenchCheckboxIndeterminate || {});\n var handleBlur = function (e) {\n setFocused(!isFocused);\n if (onBlur) {\n onBlur(e);\n }\n };\n var handleFocus = function () {\n setFocused(!isFocused);\n };\n var handleChange = function (e) {\n // if checked is not pass in, manage state internally\n if (typeof checked !== 'boolean') {\n setChecked(!isChecked);\n }\n if (onChange) {\n onChange(e);\n }\n e.persist();\n };\n return React.createElement(\"span\", {\n className: wrenchCheckbox\n }, React.createElement(\"input\", __assign({\n \"aria-label\": ariaLabel,\n className: nativeClasses,\n \"aria-checked\": isChecked,\n checked: isChecked,\n disabled: disabled,\n id: inputID,\n name: name,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleChange,\n tabIndex: disabled ? -1 : 0,\n type: \"checkbox\",\n ref: innerRef\n }, safeRest(rest))), React.createElement(\"span\", {\n className: wrenchCheckboxFaux,\n \"aria-hidden\": \"true\"\n }, React.createElement(IconCheck, {\n color: \"light\",\n \"aria-hidden\": \"true\",\n title: \"Check\"\n })), label && React.createElement(\"span\", {\n className: wrenchCheckboxLabel\n }, React.createElement(\"label\", {\n htmlFor: inputID\n }, React.createElement(Typography, {\n variant: \"body\",\n component: \"span\"\n }, label))));\n};\nexport { Checkbox };","import React from 'react';\nimport { useTheme } from 'react-jss';\nimport { createMemoStyles, safeRest } from '@wds/utils';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nvar useStyles = createMemoStyles(function (theme) {\n var palette = theme.palette,\n radius = theme.radius,\n shadow = theme.shadow;\n var button = {\n borderRadius: radius.small,\n boxShadow: shadow.none\n };\n return {\n wrenchButtonGroup: function (_a) {\n var radio = _a.radio;\n return {\n display: 'inline-flex',\n boxShadow: button.boxShadow,\n borderRadius: button.borderRadius,\n // supports Buttons as well as Buttons that are nested in a Menu\n '& > button, & > a, & > span > button, & > span > a': {\n borderRadius: 0,\n boxShadow: 'none',\n marginLeft: 0,\n marginRight: 0\n },\n '& > button.wrenchButton--alt:hover, & > button.wrenchButton--alt:focus': {\n zIndex: theme.elevation.space\n },\n '& > button:first-child, & > a:first-child, & > span:first-child > button, & > span:first-child > a': {\n borderTopLeftRadius: button.borderRadius,\n borderBottomLeftRadius: button.borderRadius\n },\n '& > button:last-child, & > a:last-child, & > span:last-child > button, & > span:last-child > a': {\n borderTopRightRadius: button.borderRadius,\n borderBottomRightRadius: button.borderRadius\n },\n '& > button:not(.wrenchButton--ghost):not(:first-child), & > a:not(.wrenchButton--ghost):not(:first-child), & > span:not(:first-child) > button:not(.wrenchButton--ghost), & > span:not(:first-child) > a:not(.wrenchButton--ghost)': {\n borderLeft: [1, 'solid', palette.background.light],\n borderLeftWidth: radio && '0'\n },\n '& > button.wrenchButton--ghost:not(:first-child), & > a.wrenchButton--ghost:not(:first-child), & > span:not(:first-child) > button.wrenchButton--ghost, & > span:not(:first-child) > a.wrenchButton--ghost': {\n borderLeft: 'none'\n },\n '& > button.wrenchButton--alt:not(:first-child), & > a.wrenchButton--alt:not(:first-child), & > span:not(:first-child) > button.wrenchButton--alt, & > span:not(:first-child) > a.wrenchButton--alt': {\n borderLeft: 'none'\n }\n };\n }\n };\n});\nvar ButtonGroup = function (_a) {\n var _b = _a.radio,\n radio = _b === void 0 ? false : _b,\n children = _a.children,\n props = __rest(_a, [\"radio\", \"children\"]);\n var theme = useTheme();\n var wrenchButtonGroup = useStyles({\n radio: radio,\n theme: theme\n }).wrenchButtonGroup;\n return React.createElement(\"div\", __assign({\n role: \"group\",\n className: wrenchButtonGroup\n }, safeRest(props)), children);\n};\nexport { ButtonGroup };","import React from 'react';\nimport { useTheme } from 'react-jss';\nimport { createMemoStyles, darken, lighten, getDisplayName, clsx, getContrastColor, conditionGuard, safeRest } from '@wds/utils';\nimport { ProgressCircle } from '@wds/progress-circle';\nimport { SEMANTIC_COLORS } from '@wds/styles';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar useStyles = createMemoStyles(function (theme) {\n var type = theme.type,\n radius = theme.radius,\n shadow = theme.shadow,\n palette = theme.palette,\n spacing = theme.spacing;\n var button = {\n height: {\n sm: 32,\n md: 40,\n lg: 48\n },\n fontSize: {\n sm: type.fontSize.bodySm,\n md: type.fontSize.body,\n lg: type.fontSize.body\n },\n padding: {\n sm: spacing[4],\n md: spacing[5],\n lg: spacing[6]\n },\n borderRadius: radius.small,\n boxShadow: shadow.none\n };\n var hoverFocus = function () {\n return {\n transition: 'none',\n textDecoration: 'none'\n };\n };\n var active = function () {\n return {\n transition: 'none',\n outline: 'none'\n };\n };\n var variantSolid = function (textColor, color, pressedColor, loading) {\n return {\n color: loading ? 'transparent' : textColor,\n borderColor: pressedColor,\n backgroundColor: pressedColor,\n '&:hover': {\n boxShadow: shadow.sky\n },\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n borderColor: lighten(0.03, color),\n backgroundColor: lighten(0.03, color)\n }),\n '&:active': __assign(__assign({}, active()), {\n borderColor: color,\n backgroundColor: color\n })\n };\n };\n var variantGhost = function (backgroundColor, pressedColor, loading) {\n return {\n color: loading ? 'transparent' : pressedColor,\n borderColor: pressedColor,\n backgroundColor: 'transparent',\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n backgroundColor: backgroundColor\n }),\n '&:active': __assign(__assign({}, active()), {\n borderColor: pressedColor\n })\n };\n };\n var variantText = function (backgroundColor, pressedColor, loading) {\n return {\n color: loading ? 'transparent' : pressedColor,\n borderColor: 'transparent',\n backgroundColor: 'transparent',\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n borderColor: backgroundColor,\n backgroundColor: backgroundColor\n })\n };\n };\n var colorAlt = function (loading, onDark, variant) {\n var backgroundColor = palette.background.light;\n var color = palette.text.dark;\n var borderColor = palette.text.dark;\n if (variant === 'ghost') {\n borderColor = onDark ? palette.background.light : palette.background.dark;\n backgroundColor = 'transparent';\n color = onDark ? palette.text.light : palette.text.dark;\n } else if (variant === 'text') {\n borderColor = 'transparent';\n backgroundColor = 'transparent';\n color = onDark ? palette.text.light : palette.text.dark;\n }\n return {\n color: loading ? 'transparent' : color,\n borderColor: borderColor,\n backgroundColor: backgroundColor,\n '&:hover': {\n boxShadow: shadow.sky\n },\n '&:hover, &:focus': __assign(__assign({}, hoverFocus()), {\n borderColor: borderColor,\n backgroundColor: onDark && variant !== 'solid' ? darken(0.03, palette.background.dark) : palette.background.main\n }),\n '&:active': __assign(__assign({}, active()), {\n borderColor: borderColor,\n backgroundColor: onDark && variant !== 'solid' ? darken(0.03, palette.background.dark) : palette.background.light\n })\n };\n };\n var svgMargin = function (leftIcon, rightIcon, size) {\n var iconMargin = function (s) {\n return {\n sm: '8px',\n md: '16px',\n lg: '16px'\n }[s];\n };\n return {\n '& > svg:first-child': __assign({}, leftIcon && {\n marginRight: \"\".concat(iconMargin(size))\n }),\n '& > svg:last-child': __assign({}, rightIcon && {\n marginLeft: \"\".concat(iconMargin(size))\n })\n };\n };\n var iconPadding = function (size) {\n return {\n sm: spacing[2],\n md: spacing[4],\n lg: spacing[5]\n }[size];\n };\n return {\n wrenchButton: function (_a) {\n var _b, _c, _d, _e;\n var color = _a.color,\n onDark = _a.onDark,\n variant = _a.variant,\n _f = _a.size,\n size = _f === void 0 ? 'md' : _f,\n ariaPressed = _a.ariaPressed,\n stretched = _a.stretched,\n iconOnly = _a.iconOnly,\n leftIcon = _a.leftIcon,\n rightIcon = _a.rightIcon,\n _g = _a.loading,\n loading = _g === void 0 ? false : _g;\n var buttonColor = onDark && ((_b = palette[color]) === null || _b === void 0 ? void 0 : _b.onDark) || ((_c = palette[color]) === null || _c === void 0 ? void 0 : _c.main) || palette.text[color] || palette.text.dark;\n var pressedColor = ariaPressed ? darken(0.03, buttonColor) : buttonColor;\n var isStretched = stretched ? {\n display: 'flex',\n width: '100%'\n } : {\n display: 'inline-flex'\n };\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, isStretched), {\n boxSizing: 'border-box',\n fontWeight: type.fontWeight.medium,\n fontFamily: type.fontFamily.base,\n '-webkit-font-smoothing': 'antialiased',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: 'pointer',\n position: 'relative',\n borderRadius: button.borderRadius,\n textDecoration: 'none',\n border: '1px solid transparent',\n boxShadow: button.boxShadow,\n transition: 'color 0.4s, border-color 0.4s, background-color 0.4s, box-shadow 0.4s',\n padding: [0, iconOnly ? iconPadding(size) : button.padding[size]],\n fontSize: size ? button.fontSize[size] : null,\n minHeight: size ? button.height[size] : null,\n '&:hover, &:focus': hoverFocus(),\n '&:active': active(),\n '&[disabled], &[aria-disabled=\"true\"]': {\n pointerEvents: 'none',\n opacity: '0.4'\n }\n }), variant === 'solid' && variantSolid(onDark ? palette.text.dark : (_e = (_d = palette[color]) === null || _d === void 0 ? void 0 : _d.contrast) !== null && _e !== void 0 ? _e : '', buttonColor, pressedColor, loading)), variant === 'ghost' && variantGhost(onDark ? darken(0.03, palette.text.dark) : palette.background.accent, pressedColor, loading)), variant === 'text' && variantText(onDark ? darken(0.03, palette.text.dark) : palette.background.accent, pressedColor, loading)), (leftIcon || rightIcon) && svgMargin(leftIcon, rightIcon, size)), color === 'alt' && colorAlt(loading, onDark, variant));\n },\n wrenchButtonLoading: function () {\n return {\n position: 'absolute',\n display: 'flex'\n };\n }\n };\n});\nvar Button = function (_a) {\n var ariaPressed = _a.ariaPressed,\n _b = _a.buttonType,\n buttonType = _b === void 0 ? 'button' : _b,\n children = _a.children,\n _c = _a.color,\n color = _c === void 0 ? 'primary' : _c,\n _d = _a.onDark,\n onDark = _d === void 0 ? false : _d,\n _e = _a.loading,\n loading = _e === void 0 ? false : _e,\n _f = _a.disabled,\n disabled = _f === void 0 ? false : _f,\n href = _a.href,\n label = _a.label,\n _g = _a.size,\n size = _g === void 0 ? 'md' : _g,\n _h = _a.stretched,\n stretched = _h === void 0 ? false : _h,\n _j = _a.variant,\n variant = _j === void 0 ? 'solid' : _j,\n rest = __rest(_a, [\"ariaPressed\", \"buttonType\", \"children\", \"color\", \"onDark\", \"loading\", \"disabled\", \"href\", \"label\", \"size\", \"stretched\", \"variant\"]);\n var numberOfChildren = React.Children.count(children);\n var reactChildren = React.Children.toArray(children);\n var iconOnly = !!(numberOfChildren === 1 && getDisplayName(reactChildren[0]).includes('WithIcon'));\n var leftIcon = !!(numberOfChildren > 1 && getDisplayName(reactChildren[0]).includes('WithIcon'));\n var rightIcon = !!(numberOfChildren > 1 && getDisplayName(reactChildren[reactChildren.length - 1]).includes('WithIcon'));\n if (iconOnly && !label) {\n // eslint-disable-next-line no-console\n console.warn('A label is required when the child of a Button is an icon');\n }\n var rel;\n if (href) {\n // https://mathiasbynens.github.io/rel-noopener/\n var autoAddRel = rest.target && rest.target === '_blank' && !rest.rel;\n rel = autoAddRel ? 'noopener noreferrer' : undefined;\n }\n var theme = useTheme();\n var _k = useStyles({\n color: color,\n onDark: onDark,\n variant: variant,\n size: size,\n stretched: stretched,\n ariaPressed: ariaPressed,\n theme: theme,\n iconOnly: iconOnly,\n leftIcon: leftIcon,\n rightIcon: rightIcon,\n loading: loading\n }),\n wrenchButton = _k.wrenchButton,\n wrenchButtonLoading = _k.wrenchButtonLoading;\n var classNames = clsx(wrenchButton,\n // Static class used for internal reference\n // Ex. ButtonGroup conditional styles\n variant ? \"wrenchButton--\".concat(variant) : null, color ? \"wrenchButton--\".concat(color) : null);\n var isDisabled = loading || disabled;\n var colorValue = color === 'alt' ? theme.palette.background.light : theme.palette[color].main;\n var contrastColor = variant === 'solid' ? getContrastColor(colorValue) : 'dark';\n var loaderContent = loading ? React.createElement(\"span\", {\n className: wrenchButtonLoading\n }, React.createElement(ProgressCircle, {\n color: contrastColor,\n size: \"xs\",\n continuous: true\n })) : null;\n if (conditionGuard(rest, !!href)) {\n return React.createElement(\"a\", __assign({}, safeRest(rest), {\n className: classNames,\n href: !isDisabled ? href : undefined,\n role: isDisabled ? 'link' : undefined,\n \"aria-disabled\": isDisabled ? 'true' : undefined,\n title: label,\n rel: rel\n }), loaderContent, children);\n }\n return React.createElement(\"button\", __assign({}, safeRest(rest), {\n className: classNames,\n // eslint-disable-next-line react/button-has-type\n type: buttonType,\n disabled: isDisabled,\n \"aria-pressed\": ariaPressed,\n \"aria-label\": label\n }), loaderContent, children);\n};\nvar BUTTON_COLORS = __spreadArray(['alt', 'link'], SEMANTIC_COLORS, true);\nvar VARIANTS = ['solid', 'ghost', 'text'];\nvar BUTTON_TYPES = ['button', 'reset', 'submit'];\nvar BUTTON_SIZES = ['sm', 'md', 'lg'];\nvar guardAnchor = function (rest, href) {\n return !!href;\n};\nexport { BUTTON_COLORS, BUTTON_SIZES, BUTTON_TYPES, Button, VARIANTS, guardAnchor };","import { Button } from '@wds/button';\nimport { ButtonGroup } from '@wds/button-group';\nimport { IconChevronLeft, IconChevronRight } from '@wds/icons';\nimport { SelectMenu } from '@wds/select-menu';\nimport { Typography } from '@wds/typography';\nimport { createMemoStyles, visuallyHidden, clsx, safeRest } from '@wds/utils';\nimport React from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar useStyles = createMemoStyles(function (theme) {\n var _a, _b, _c;\n var spacing = theme.spacing,\n breakpoints = theme.breakpoints;\n return {\n wrenchPagination: (_a = {\n width: '100%',\n textAlign: 'center'\n }, _a[\"@media (min-width: \".concat(breakpoints.lg, \"px)\")] = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center'\n }, _a),\n wrenchPaginationAddOn: (_b = {\n display: 'block',\n marginBottom: theme.spacing[4]\n }, _b[\"@media (min-width: \".concat(breakpoints.lg, \"px)\")] = {\n display: 'inline-block',\n margin: [0, spacing[1]],\n textAlign: 'auto',\n marginBottom: 0,\n paddingLeft: spacing[3] - 4\n }, _b),\n wrenchPaginationPage: (_c = {}, _c[\"@media (min-width: \".concat(breakpoints.md, \"px)\")] = {\n display: 'inline-block'\n }, _c),\n wrenchPaginationHidden: __assign({}, visuallyHidden)\n };\n});\nvar Pagination = function (_a) {\n var count = _a.count,\n _b = _a.hasPageSelect,\n hasPageSelect = _b === void 0 ? false : _b,\n _c = _a.hasRowsPerPage,\n hasRowsPerPage = _c === void 0 ? false : _c,\n _d = _a.labelLegend,\n labelLegend = _d === void 0 ? function (firstRowOnPage, lastRowOnPage, totalRows) {\n return \"Showing \".concat(firstRowOnPage, \" \\u2013 \").concat(lastRowOnPage, \" of \").concat(totalRows);\n } : _d,\n _e = _a.labelJumpToPage,\n labelJumpToPage = _e === void 0 ? function (page) {\n return \"Page \".concat(page);\n } : _e,\n _f = _a.labelRowsPerPage,\n labelRowsPerPage = _f === void 0 ? function (page) {\n return \"\".concat(page, \" per page\");\n } : _f,\n onChangePage = _a.onChangePage,\n onChangeRowsPerPage = _a.onChangeRowsPerPage,\n page = _a.page,\n rowsPerPage = _a.rowsPerPage,\n _g = _a.placement,\n placement = _g === void 0 ? 'bottom-left' : _g,\n rest = __rest(_a, [\"count\", \"hasPageSelect\", \"hasRowsPerPage\", \"labelLegend\", \"labelJumpToPage\", \"labelRowsPerPage\", \"onChangePage\", \"onChangeRowsPerPage\", \"page\", \"rowsPerPage\", \"placement\"]);\n var _h = useStyles(),\n wrenchPagination = _h.wrenchPagination,\n wrenchPaginationAddOn = _h.wrenchPaginationAddOn,\n wrenchPaginationPage = _h.wrenchPaginationPage,\n wrenchPaginationHidden = _h.wrenchPaginationHidden;\n var paginationPageAddOnClasses = clsx(wrenchPaginationAddOn, wrenchPaginationPage);\n var currentPage = page + 1;\n var firstRowOnPage = count === 0 ? 0 : page * rowsPerPage + 1;\n var lastRowOnPage = Math.min(count, currentPage * rowsPerPage);\n var totalRows = count;\n var totalPages = Math.ceil(count / rowsPerPage);\n var prevPageDisabled = page === 0;\n var nextPageDisabled = page >= Math.ceil(totalRows / rowsPerPage) - 1;\n var handleBackButtonClick = function (event) {\n if (onChangePage) {\n onChangePage(event, page - 1);\n }\n };\n var handleNextButtonClick = function (event) {\n if (onChangePage) {\n onChangePage(event, page + 1);\n }\n };\n var handleJumpToPage = function (event) {\n var el = event.currentTarget;\n var dataVal = el.dataset.value;\n var optionValue = String(dataVal);\n var goToPage = parseInt(optionValue, 10) - 1;\n if (onChangePage) {\n onChangePage(event, goToPage);\n }\n };\n var handleChangeRowsPerPage = function (event) {\n var el = event.currentTarget;\n var optionValue = String(el.dataset.value);\n var newRowsPerPage = parseInt(optionValue, 10);\n if (onChangeRowsPerPage) {\n onChangeRowsPerPage(event, newRowsPerPage);\n }\n };\n return React.createElement(\"div\", __assign({\n className: wrenchPagination,\n \"aria-label\": \"pagination\"\n }, safeRest(rest)), React.createElement(\"span\", {\n className: wrenchPaginationAddOn\n }, React.createElement(Typography, {\n component: \"div\",\n variant: \"bodySm\",\n color: \"darkMuted\",\n align: \"center\"\n }, labelLegend(firstRowOnPage, lastRowOnPage, totalRows))), hasRowsPerPage && React.createElement(\"span\", {\n className: paginationPageAddOnClasses\n }, React.createElement(SelectMenu, {\n placement: placement,\n value: \"\".concat(rowsPerPage),\n onChange: handleChangeRowsPerPage\n }, React.createElement(SelectMenu.Option, {\n value: \"10\"\n }, labelRowsPerPage(10)), React.createElement(SelectMenu.Option, {\n value: \"25\"\n }, labelRowsPerPage(25)), React.createElement(SelectMenu.Option, {\n value: \"50\"\n }, labelRowsPerPage(50)), React.createElement(SelectMenu.Option, {\n value: \"100\"\n }, labelRowsPerPage(100)))), hasPageSelect && React.createElement(\"span\", {\n className: paginationPageAddOnClasses\n }, React.createElement(SelectMenu, {\n placement: placement,\n value: \"\".concat(currentPage),\n onChange: handleJumpToPage\n }, __spreadArray([], Array(totalPages), true).map(function (_, i) {\n return React.createElement(SelectMenu.Option, {\n value: \"\".concat(i + 1),\n key: \"option-\".concat(i + 1)\n }, labelJumpToPage(i + 1));\n }))), React.createElement(\"span\", {\n className: wrenchPaginationAddOn,\n role: \"navigation\"\n }, React.createElement(ButtonGroup, null, React.createElement(Button, {\n color: \"muted\",\n onClick: handleBackButtonClick,\n disabled: prevPageDisabled,\n label: !prevPageDisabled ? \"Go to page \".concat(currentPage - 1) : 'End of page'\n }, React.createElement(IconChevronLeft, {\n title: \"Previous Page\"\n })), React.createElement(\"div\", {\n className: wrenchPaginationHidden\n }, \"Current page \", currentPage), React.createElement(Button, {\n color: \"muted\",\n onClick: handleNextButtonClick,\n disabled: nextPageDisabled,\n label: !nextPageDisabled ? \"Go to page \".concat(currentPage + 1) : 'End of page'\n }, React.createElement(IconChevronRight, {\n title: \"Next Page\"\n })))));\n};\nexport { Pagination };","var _window, _window$document, _Highcharts$AST, _Highcharts$AST2;\nimport React__default, { useLayoutEffect, useEffect, useRef, useState, useCallback, useMemo, createContext, useContext } from 'react';\nimport { E as ErrorBoundary, c as classnames, H as HighchartsReact, T as Table, C as Controller, u as useForm } from './vendor-e8bcba7c.js';\nimport { createUseStyles, useTheme } from 'react-jss';\nimport { defineMessages, t, T, FormattedNumber } from '@sm/intl';\nimport debounce from 'lodash.debounce';\nimport { Box } from '@wds/box';\nimport { withSpacing, clsx, visuallyHidden, uniqueId } from '@wds/utils';\nimport { Typography } from '@wds/typography';\nimport { Button } from '@wds/button';\nimport Highcharts, { numberFormat } from 'highcharts';\nimport wordCloudModule from 'highcharts/modules/wordcloud';\nimport merge from 'lodash.merge';\nimport { renderToString } from 'react-dom/server';\nimport { ProgressCircle } from '@wds/progress-circle';\nimport { IconCaretDown, IconHelpFilled, IconX, IconWarning, IconStarFilled, IconHappyFilled, IconHeartFilled, IconThumbsUpFilled, IconCaretUp } from '@wds/icons';\nimport { ProgressBar } from '@wds/progress-bar';\nimport { Menu } from '@wds/menu';\nimport { Tabs, Tab } from '@wds/tabs';\nimport { uniqueId as uniqueId$1, map, merge as merge$1, upperFirst, lowerCase } from 'lodash';\nimport { SelectMenu } from '@wds/select-menu';\nimport { Slider } from '@wds/slider';\nimport { Modal } from '@wds/modal';\nimport { InputGroup } from '@wds/input-group';\nimport { Input } from '@wds/input';\nimport { Popout } from '@wds/popout';\nimport { List } from '@wds/list';\nimport { Checkbox } from '@wds/checkbox';\nimport { ButtonGroup } from '@wds/button-group';\nimport { sanitizeString } from '@sm/utils';\nimport assert from 'assert';\nimport HighchartsAccessibility from 'highcharts/modules/accessibility';\nimport { Table as Table$1 } from '@wds/table';\nimport '@wds/tooltip';\nimport HighchartsMore from 'highcharts/highcharts-more';\nimport { Pagination } from '@wds/pagination';\nimport 'react-dom';\nconst useStyles$r = createUseStyles(theme => ({\n wdsIcons: ({\n color,\n size\n }) => {\n var _theme$palette, _theme$palette2, _theme$palette2$color;\n const fontSize = size ? {\n fontSize: theme.iconSize[size]\n } : {\n fontSize: 'inherit'\n };\n const chosenColor =\n // @ts-expect-error Fallback styles are acceptable\n ((_theme$palette = theme.palette) === null || _theme$palette === void 0 ? void 0 : _theme$palette.text[color]) || ((_theme$palette2 = theme.palette) === null || _theme$palette2 === void 0 ? void 0 : (_theme$palette2$color = _theme$palette2[color]) === null || _theme$palette2$color === void 0 ? void 0 : _theme$palette2$color.main) || 'currentColor';\n return {\n ...fontSize,\n width: '1em',\n height: '1em',\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'center',\n fill: chosenColor\n };\n }\n}));\n\n// https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging\nconst getDisplayName = Component => Component.displayName || Component.name || 'Component';\nfunction withIcon(Component) {\n function WithIcon({\n color,\n title,\n size,\n ...rest\n }) {\n const classes = useStyles$r({\n color,\n size\n });\n return React__default.createElement(\"svg\", {\n className: classes.wdsIcons,\n viewBox: \"0 0 16 16\",\n preserveAspectRatio: \"xMidYMid\",\n \"aria-label\": title,\n role: title ? 'img' : 'presentation',\n ...rest\n }, React__default.createElement(Component, null));\n }\n WithIcon.displayName = `WithIcon(${getDisplayName(Component)})`;\n WithIcon.getOriginalComponent = () => Component;\n return WithIcon;\n}\ncreateUseStyles({\n svgContainer: {\n display: 'inline-block',\n width: '1em',\n height: '1em'\n }\n});\nfunction DocumentXIconPath() {\n return React__default.createElement(\"path\", {\n d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM6.557 7.53 8 8.973 9.443 7.53a.765.765 0 0 1 1.083 1.082l-1.444 1.443 1.444 1.444a.765.765 0 0 1-1.083 1.082L8 11.138 6.557 12.58A.765.765 0 1 1 5.474 11.5l1.444-1.444-1.444-1.443A.765.765 0 1 1 6.557 7.53zM5.5 2.563 3.561 4.5H5.5V2.562z\"\n });\n}\nvar IconDocumentX = withIcon(DocumentXIconPath);\nconst useStyles$q = createUseStyles(theme => {\n var _theme$questionBody;\n return {\n fallbackComponent: {\n fontFamily: ((_theme$questionBody = theme.questionBody) === null || _theme$questionBody === void 0 ? void 0 : _theme$questionBody.fontFamily) ?? {},\n color: theme.questionColor,\n border: `1px solid ${theme.questionColor}`,\n borderRadius: '5px',\n width: '100%',\n height: '100%',\n minHeight: '220px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& svg': {\n fill: theme.questionColor\n }\n },\n errorMessage: {\n marginLeft: `8px` // equivalent to wrench theme.spacing[2]\n }\n };\n});\n\nconst COPY$t = defineMessages({\n ERROR: {\n id: 'FallbackComponent.ERROR',\n defaultMessage: 'Error loading question',\n description: '[Type: label][Vis: high] - error message indicating a question could not be loaded'\n }\n});\nfunction FallbackComponent() {\n const {\n fallbackComponent,\n errorMessage\n } = useStyles$q();\n return React__default.createElement(\"div\", {\n className: fallbackComponent\n }, React__default.createElement(IconDocumentX, null), React__default.createElement(\"p\", {\n className: errorMessage\n }, t(COPY$t.ERROR)));\n}\nconst withErrorBoundary = Component => {\n const displayName = Component.displayName || Component.name || 'Component';\n function ComponentWithErrorBoundary(props) {\n return React__default.createElement(ErrorBoundary, {\n FallbackComponent: FallbackComponent\n }, React__default.createElement(Component, {\n ...props\n }));\n }\n ComponentWithErrorBoundary.displayName = `withErrorBoundary(${displayName})`;\n return ComponentWithErrorBoundary;\n};\nvar ACCESS_TYPE;\n(function (ACCESS_TYPE) {\n ACCESS_TYPE[\"REQUEST\"] = \"REQUEST\";\n ACCESS_TYPE[\"UPGRADE\"] = \"UPGRADE\";\n ACCESS_TYPE[\"FULL\"] = \"FULL\";\n ACCESS_TYPE[\"NONE\"] = \"NONE\";\n})(ACCESS_TYPE || (ACCESS_TYPE = {}));\nvar STATUS;\n(function (STATUS) {\n STATUS[\"ERROR\"] = \"error\";\n STATUS[\"SUCCESS\"] = \"success\";\n STATUS[\"IN_PROGRESS\"] = \"inProgress\";\n})(STATUS || (STATUS = {}));\nconst useStyles$p = createUseStyles(theme => ({\n reset: {\n border: 'none'\n },\n border: {\n borderTop: theme.border.main\n }\n}));\nfunction Keyline({\n className,\n spacingClass,\n ...props\n}) {\n const {\n reset,\n border\n } = useStyles$p();\n return React__default.createElement(\"hr\", {\n className: classnames(reset, className, spacingClass, border),\n ...props\n });\n}\nvar Keyline$1 = withSpacing(Keyline);\nconst useStyles$o = createUseStyles(theme => ({\n linkButton: {\n fontSize: ({\n size = 'sm'\n }) => size === 'sm' ? theme.type.fontSize.bodySm : theme.type.fontSize.body,\n border: 0,\n background: 'none',\n color: theme.palette.text.link,\n textDecoration: 'none',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\nconst isAnchor = props => !!(props !== null && props !== void 0 && props.href);\n/** Link like-button - does not exist in WDS but in needed in Analyze */\nfunction LinkButton({\n className,\n children,\n size,\n spacingClass,\n ...props\n}) {\n const {\n linkButton\n } = useStyles$o({\n size\n });\n if (isAnchor(props)) {\n return React__default.createElement(\"a\", {\n className: clsx(className, linkButton, spacingClass),\n ...props\n }, children);\n }\n const {\n type = 'button',\n ...buttonProps\n } = props;\n return React__default.createElement(\"button\", {\n className: clsx(className, linkButton, spacingClass),\n // eslint-disable-next-line react/button-has-type\n type: type,\n ...buttonProps\n }, children);\n}\nvar LinkButton$1 = withSpacing(LinkButton);\nconst COPY$s = defineMessages({\n SHOW_COUNT: {\n id: 'WordCount.SHOW_COUNT',\n defaultMessage: 'Showing {count} {countCheck, plural, one { word } other { words }}',\n description: '[Type: label][Vis: med] - message to show word count on the footer'\n },\n IN_PROGRESS: {\n id: 'WordCount.IN_PROGRESS',\n defaultMessage: 'Text Analysis in progress...',\n description: '[Type: label][Vis: med] - message showing in progress on the footer'\n },\n NO_IMPORTANT_WORDS_FOUND: {\n id: 'WordCount.NO_IMPORTANT_WORDS_FOUND',\n defaultMessage: 'No important words found.',\n description: '[Type: label][Vis: med] - message to show when there is no result in the footer'\n }\n});\nfunction WordCount({\n count,\n status\n}) {\n if (status === 'error') {\n return null;\n }\n if (status === 'inProgress') {\n return React__default.createElement(Typography, {\n variant: \"body\",\n component: \"span\"\n }, React__default.createElement(T, {\n desc: COPY$s.IN_PROGRESS\n }));\n }\n return React__default.createElement(Typography, {\n variant: \"body\",\n color: \"darkMuted\",\n component: \"span\"\n }, !count ? t(COPY$s.NO_IMPORTANT_WORDS_FOUND) : t(COPY$s.SHOW_COUNT, {\n countCheck: count,\n count: React__default.createElement(\"strong\", {\n key: \"bold-count\"\n }, count)\n }));\n}\nconst useStyles$n = createUseStyles({\n hover: {\n // needs as rule-reference\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n});\nconst COPY$r = defineMessages({\n REQUEST: {\n id: 'RequestAccessButton.REQUEST',\n defaultMessage: `Request feature`,\n description: '[Type: Button][Vis: med] - Button to request access to wordcloud customization'\n },\n UPGRADE: {\n id: 'RequestAccessButton.UPGRADE',\n defaultMessage: `Upgrade`,\n description: '[Type: Button][Vis: med] - Button to upgrade package for basic user'\n }\n});\nfunction RequestAccessButton({\n accessType,\n redirectLink\n}) {\n const color = accessType === ACCESS_TYPE.REQUEST ? 'secondary' : 'upgrade';\n const buttonText = accessType === ACCESS_TYPE.REQUEST ? t(COPY$r.REQUEST) : t(COPY$r.UPGRADE);\n return accessType !== ACCESS_TYPE.FULL ? React__default.createElement(Box, {\n ml: 2\n }, React__default.createElement(Button, {\n size: \"sm\",\n buttonType: \"button\",\n color: color,\n href: redirectLink,\n target: \"_blank\"\n }, buttonText)) : null;\n}\nconst useStyles$m = createUseStyles(theme => ({\n upgradeBanner: {\n padding: theme.spacing[3],\n backgroundColor: theme.palette.background.accent,\n '&.upgrade': {\n backgroundColor: '#FEF6D9' // Not available in theme\n }\n },\n\n title: {\n fontSize: theme.type.fontSize.bodySm,\n fontWeight: theme.type.fontWeight.light,\n '& strong': {\n fontWeight: theme.type.fontWeight.medium,\n paddingRight: theme.spacing[1]\n }\n }\n}));\nconst COPY$q = defineMessages({\n TITLE: {\n id: 'UpgradeBanner.TITLE',\n defaultMessage: 'Like what you see?',\n description: '[Type: Button][Vis: med] - Title displayed in bold text on upgrade banner'\n },\n SUBTITLE: {\n id: 'UpgradeBanner.SUBTITLE',\n defaultMessage: 'Upgrade to customize your own word cloud.',\n description: '[Type: Button][Vis: med] - Subtitle displayed in regular text on upgrade banner'\n }\n});\nfunction UpgradeBanner({\n accessType,\n redirectLink\n}) {\n const {\n upgradeBanner,\n title\n } = useStyles$m();\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(\"div\", {\n className: `${upgradeBanner} ${accessType === ACCESS_TYPE.UPGRADE ? 'upgrade' : ''}`\n }, React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, React__default.createElement(\"div\", {\n className: title\n }, React__default.createElement(\"strong\", null, React__default.createElement(T, {\n desc: COPY$q.TITLE\n })), React__default.createElement(T, {\n desc: COPY$q.SUBTITLE\n })), React__default.createElement(RequestAccessButton, {\n accessType: accessType,\n redirectLink: redirectLink\n }))), React__default.createElement(Keyline$1, null));\n}\nconst COPY$p = defineMessages({\n COMBINED_WORDS: {\n id: 'WordCloudListFooter.COMBINED_WORDS',\n defaultMessage: 'Combined words',\n description: '[Type: label][Vis: med] - combined words as part of the word cloud list footer'\n },\n HIDDEN_WORDS: {\n id: 'WordCloudListFooter.HIDDEN_WORDS',\n defaultMessage: 'Hidden words',\n description: '[Type: label][Vis: med] - hidden words as part of the word cloud list footer'\n }\n});\nfunction WordCloudListFooter({\n accessType,\n redirectLink,\n wordCount,\n status,\n combinedWordsCount = 0,\n onCombineWordLinkClick,\n hiddenWordsCount,\n onHiddenWordsLinkClick\n}) {\n const {\n hover\n } = useStyles$n();\n if (status === 'error') {\n return null;\n }\n return React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"stretch\"\n }, accessType !== ACCESS_TYPE.FULL && React__default.createElement(UpgradeBanner, {\n accessType: accessType,\n redirectLink: redirectLink\n }), React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"baseline\",\n py: 4\n }, React__default.createElement(WordCount, {\n count: wordCount,\n status: status\n }), accessType === ACCESS_TYPE.FULL && status !== 'inProgress' && React__default.createElement(Box, {\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"flex-end\"\n }, React__default.createElement(LinkButton$1, {\n onClick: () => onCombineWordLinkClick(undefined)\n }, React__default.createElement(\"span\", {\n className: hover\n }, React__default.createElement(T, {\n desc: COPY$p.COMBINED_WORDS\n })), ' ', \"(\", combinedWordsCount, \")\"), React__default.createElement(Box, {\n ml: 4,\n element: \"span\"\n }, React__default.createElement(LinkButton$1, {\n onClick: onHiddenWordsLinkClick\n }, React__default.createElement(\"span\", {\n className: hover\n }, React__default.createElement(T, {\n desc: COPY$p.HIDDEN_WORDS\n }), \" (\", hiddenWordsCount, \")\"))))));\n}\nconst tooltipColor = '#333E48';\nconst COPY$o = defineMessages({\n TOOLTIP_TITLE: {\n id: 'WordCloudTooltip.TOOLTIP_TITLE',\n defaultMessage: '#{number} most important word',\n description: '[Type: header][Vis: med] - title of the chart'\n },\n OCCURRENCES: {\n id: 'WordCloudTooltip.TOOLTIP_OCCURRENCES',\n defaultMessage: 'Occurrences: {weight} ',\n description: '[Type: header][Vis: med] - title of the chart'\n }\n});\n// TODO: Port tooltip here to @wds/tooltip - not ported yet\nfunction WordCloudTooltip({\n point\n}) {\n return React__default.createElement(\"div\", {\n \"data-testid\": `word-${point.name}`,\n style: {\n padding: '8px'\n }\n }, React__default.createElement(T, {\n desc: COPY$o.TOOLTIP_TITLE,\n values: {\n number: point.top\n }\n }), React__default.createElement(\"br\", null), React__default.createElement(\"span\", null, React__default.createElement(T, {\n desc: COPY$o.OCCURRENCES,\n values: {\n weight: point.weight,\n percentage: point.weight\n }\n }), \"(\", React__default.createElement(FormattedNumber, {\n formatStyle: \"percent\",\n maximumFractionDigits: 2,\n value: point.percentage\n }), \")\"));\n}\nconst tooltipConfig = {\n backgroundColor: tooltipColor,\n borderColor: tooltipColor,\n style: {\n color: 'white'\n },\n useHTML: true,\n formatter() {\n // Typescript bindings of highcharts binding of \"this.point\" missing\n /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */\n // @ts-ignore\n const {\n point\n } = this;\n return renderToString(React__default.createElement(WordCloudTooltip, {\n point: point\n }));\n }\n};\nconst BASE_OPTIONS = {\n title: {\n text: ''\n },\n credits: {\n enabled: false\n },\n chart: {\n backgroundColor: 'transparent'\n },\n plotOptions: {\n series: {\n dataLabels: {\n enabled: false\n }\n }\n }\n};\nconst DEFAULT_COLOR = '#007FAA';\nconst getWeightBy = func => data => data.reduce((max, b) => func(max, b.weight), data[0].weight);\nconst colorizeModel = (data, colorPalette) => {\n const minOccurrence = getWeightBy(Math.min)(data);\n const maxOccurrence = getWeightBy(Math.max)(data);\n const spread = maxOccurrence - minOccurrence;\n const colorPaletteLength = colorPalette.length;\n const margin = Math.ceil(spread / colorPaletteLength);\n return data.map(w => {\n // Math.floor to keep the value less than the length of color palette\n const colorIndex = margin > 0 ? Math.floor((w.weight - minOccurrence) / margin) : 0;\n return {\n ...w,\n color: colorPalette[colorIndex >= colorPaletteLength ? colorPaletteLength - 1 : colorIndex]\n };\n });\n};\nconst transformToHighChartsWordCloudModel = (words, total, fixedColor) => words.map((w, i) => ({\n name: w.word,\n weight: w.occurrences,\n percentage: w.percentage ? w.percentage : w.occurrences / total,\n // determine top word order\n top: words.length - i,\n color: fixedColor,\n custom: w.combinedWord ?? undefined\n}));\nconst getWordCloudOptions = (data, options, fontFamily, handleClickEvent) => {\n return merge(\n // overwritable defaults\n {\n /**\n * Allows complete tooltip customization from exposed options.\n * i.e., If custom tooltip exists but doesn't have a formatter, default tooltip's formatter will always be in options.\n */\n tooltip: !options.tooltip ? tooltipConfig : {},\n series: [{\n style: {\n fontFamily: `${fontFamily}`,\n fontWeight: '400'\n },\n minFontSize: 12\n }]\n }, options,\n // not overwritable\n {\n ...BASE_OPTIONS,\n series: [{\n type: 'wordcloud',\n rotation: {\n from: 0,\n to: 0\n },\n data,\n events: {\n click: handleClickEvent\n }\n }]\n });\n};\nfunction LegendBlocks({\n range,\n width,\n scale,\n onFill\n}) {\n const rangeMap = Array.from(new Array(range));\n return React__default.createElement(React__default.Fragment, null, rangeMap.map((a, i) => {\n const size = width + i * 2;\n const posX = i * Math.ceil((size + 10) / 2);\n const posY = (scale - size) / 2;\n return (/* eslint-disable-next-line react/no-array-index-key */\n React__default.createElement(\"g\", {\n key: `part-${i}`\n }, React__default.createElement(\"rect\", {\n width: size,\n height: size,\n x: posX,\n y: posY,\n rx: 3,\n style: {\n fill: onFill(i)\n }\n }))\n );\n }));\n}\nconst useStyles$l = createUseStyles(theme => ({\n line: {\n stroke: theme.palette.border.hover,\n strokeWidth: 0.7\n },\n legendText: ({\n range\n }) => ({\n fontSize: `${range}px`,\n fill: theme.palette.border.hover\n })\n}));\nfunction LegendLabel({\n range,\n width,\n isStart,\n scale,\n text\n}) {\n const styles = useStyles$l({\n range\n });\n const index = isStart ? 0 : range - 1;\n const size = width + index * 2;\n const posX = index * Math.ceil((size + 10) / 2);\n const posY = (scale - size) / 2;\n const textPosY = posY + size + (range + 6);\n return React__default.createElement(\"g\", null, React__default.createElement(\"g\", null, React__default.createElement(\"line\", {\n className: styles.line,\n x1: posX + size / 2,\n y1: posY + size + 1,\n x2: posX + size / 2,\n y2: posY + size + 6\n })), React__default.createElement(\"g\", null, React__default.createElement(\"text\", {\n x: posX + size / 2,\n y: textPosY,\n textAnchor: \"middle\",\n className: styles.legendText\n }, text)));\n}\nconst useWordCloudLegendStyles = createUseStyles(theme => ({\n legendContainer: ({\n maxWidth\n }) => ({\n border: `1px solid ${theme.palette.muted.main}`,\n paddingBottom: theme.spacing['5'],\n paddingLeft: theme.spacing['4'],\n paddingRight: theme.spacing['4'],\n paddingTop: theme.spacing['4'],\n maxWidth,\n width: '100%',\n height: '100%'\n }),\n legendWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n legendTitle: {\n textAlign: 'center',\n color: theme.palette.border.hover,\n fontSize: '11px',\n paddingBottom: theme.spacing['2']\n },\n legendLess: {\n flex: 0.2,\n alignSelf: 'center',\n textAlign: 'center',\n paddingLeft: theme.spacing['2'],\n paddingRight: theme.spacing['2'],\n color: theme.palette.border.hover,\n fontSize: '11px'\n },\n legendMore: {\n flex: 0.2,\n paddingLeft: theme.spacing['2'],\n paddingRight: theme.spacing['2'],\n color: theme.palette.border.hover,\n fontSize: '11px'\n },\n legend: {\n flex: 1\n },\n svg: {\n overflow: 'visible !important'\n }\n}));\nconst baseSize$1 = 9;\nconst maxWidthFactor = 34;\nconst baseMaxWidth = 270;\nconst defaultLength = 8;\nconst COPY$n = defineMessages({\n TITLE: {\n id: 'WordCloudLegend.TITLE',\n defaultMessage: 'Number of mentions',\n description: '[Type: header][Vis: med] - title of the legend'\n },\n FEWER: {\n id: 'WordCloudLegend.FEWER',\n defaultMessage: 'fewer',\n description: '[Type: header][Vis: med] - fewer'\n },\n MORE: {\n id: 'WordCloudLegend.MORE',\n defaultMessage: 'more',\n description: '[Type: header][Vis: med] - more'\n }\n});\nfunction WordCloudLegend({\n fixedColor = '#000',\n colorPalette = [],\n min,\n max\n}) {\n const range = colorPalette.length ? colorPalette.length : defaultLength;\n const scaleY = range * 4;\n const maxWidth = Math.max(baseMaxWidth, range * maxWidthFactor);\n const styles = useWordCloudLegendStyles({\n maxWidth\n });\n if (!Number.isInteger(min) || !Number.isInteger(max)) {\n return null;\n }\n return React__default.createElement(\"div\", {\n className: styles.legendContainer\n }, React__default.createElement(\"div\", {\n className: styles.legendTitle\n }, React__default.createElement(T, {\n desc: COPY$n.TITLE\n })), React__default.createElement(\"div\", {\n className: styles.legendWrapper\n }, React__default.createElement(\"div\", {\n className: styles.legendLess\n }, React__default.createElement(T, {\n desc: COPY$n.FEWER\n })), React__default.createElement(\"div\", {\n className: styles.legend\n }, React__default.createElement(\"svg\", {\n viewBox: `0 0 ${range * (range + 10)} ${scaleY}`,\n className: styles.svg,\n preserveAspectRatio: \"xMidYMid\"\n }, React__default.createElement(LegendBlocks, {\n range: range,\n width: baseSize$1,\n scale: scaleY,\n onFill: pos => !(colorPalette !== null && colorPalette !== void 0 && colorPalette.length) ? fixedColor : colorPalette[pos]\n }), React__default.createElement(LegendLabel, {\n range: range,\n width: baseSize$1,\n isStart: true,\n scale: scaleY,\n text: min\n }), React__default.createElement(LegendLabel, {\n range: range,\n width: baseSize$1,\n scale: scaleY,\n text: max\n }))), React__default.createElement(\"div\", {\n className: styles.legendMore\n }, React__default.createElement(T, {\n desc: COPY$n.MORE\n }))));\n}\n\n// Sonar compliant\nconst sortWords = words => [...words].sort((a, b) => a.occurrences - b.occurrences);\nfunction WordCloud({\n words = [],\n options = {},\n fixedColor = DEFAULT_COLOR,\n colorPalette,\n colorAssignFunction,\n showLegend,\n fontFamily = 'National 2',\n onWordClick\n}) {\n if (!words.length) {\n return null;\n }\n const total = words.reduce((acc, {\n occurrences = 0\n }) => acc + occurrences, 0);\n let data = transformToHighChartsWordCloudModel(sortWords(words), total, fixedColor);\n const minOccurrence = getWeightBy(Math.min)(data);\n const maxOccurrence = getWeightBy(Math.max)(data);\n if (colorPalette) {\n const {\n palette\n } = colorPalette;\n data = colorAssignFunction ? colorAssignFunction(data, palette) : colorizeModel(data, palette);\n }\n const handleClickEvent = evt => {\n if (onWordClick) {\n onWordClick(evt);\n }\n };\n const wordCloudOptions = getWordCloudOptions(data, options, fontFamily, handleClickEvent);\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(HighchartsReact\n // this is needed for SSR rendering\n , {\n // this is needed for SSR rendering\n highcharts: typeof Highcharts === 'object' ? wordCloudModule(Highcharts) : Highcharts,\n options: wordCloudOptions\n }), showLegend && React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"center\"\n }, React__default.createElement(WordCloudLegend, {\n colorPalette: colorPalette === null || colorPalette === void 0 ? void 0 : colorPalette.scales,\n fixedColor: fixedColor,\n min: minOccurrence,\n max: maxOccurrence\n })));\n}\nfunction WordCloudMainView({\n onWordClick,\n ...props\n}) {\n if (!props.words) {\n return null;\n }\n const handleWordClick = evt => {\n const word = {\n word: evt.point.name,\n occurrences: evt.point.options.weight ?? 0,\n combinedWord: evt.point.options.custom\n };\n onWordClick(word);\n };\n return React__default.createElement(WordCloud, {\n ...props,\n onWordClick: handleWordClick\n });\n}\n\n/*eslint spaced-comment: [\"error\", \"never\", { \"exceptions\": [\"NOSONAR\"] }] */\n/**\n * SSR Safe version of useLayoutEffect\n * @see https://code.corp.surveymonkey.com/webplatform/smweb/blob/master/apps/contentweb/src/app/pages/MRX/helpers/useIsomorphicLayoutEffect.js\n *\n * Note: `NOSONAR` is used to bypass a `minor:code-smell` error that states `createElement` is deprecated.\n * The eslint rule above disables the spaced comments to use NOSONAR as stated in the docs.\n */\nconst useSSRSafeLayoutEffect = typeof window !== 'undefined' && typeof ((_window = window) === null || _window === void 0 ? void 0 : (_window$document = _window.document) === null || _window$document === void 0 ? void 0 : _window$document.createElement) !== 'undefined' //NOSONAR\n? useLayoutEffect : useEffect;\nfunction useDimensions() {\n const target = useRef(null);\n const [dimensions, setDimensions] = useState({});\n useSSRSafeLayoutEffect(() => {\n const updateDimensions = () => {\n if (target.current) {\n const rect = {\n width: target.current.offsetWidth,\n height: target.current.offsetHeight\n };\n setDimensions(rect);\n }\n };\n window.addEventListener('resize', updateDimensions);\n updateDimensions();\n return () => window.removeEventListener('resize', updateDimensions);\n }, [target]);\n return [target, dimensions];\n}\nconst COPY$m = defineMessages({\n LOADING: {\n id: 'LoadingState.LOADING',\n defaultMessage: 'Loading responses',\n description: '[Type: body][Vis: low] - indicated the view is loading'\n }\n});\nfunction LoadingState({\n size = 'md'\n}) {\n return React__default.createElement(Box, {\n \"data-testid\": \"progress-circle\",\n display: \"flex\",\n justifyContent: \"center\",\n my: 3\n }, React__default.createElement(ProgressCircle, {\n size: size,\n continuous: true,\n valueText: t(COPY$m.LOADING)\n }));\n}\nconst useStyles$k = createUseStyles({\n tableRow: {\n display: 'table'\n }\n});\nfunction VirtualizedTable({\n className = '',\n dimensions,\n disableHeader = true,\n hasNextPage,\n headerHeight = 0,\n rowHeight,\n rowItems\n}) {\n const rowCount = hasNextPage ? rowItems.length + 1 : rowItems.length;\n const {\n tableRow\n } = useStyles$k();\n const isRowLoaded = ({\n index\n }) => !hasNextPage || index < rowItems.length;\n const rowRenderer = ({\n index,\n key,\n style\n }) => {\n const rowItem = !isRowLoaded({\n index\n }) ? React__default.createElement(LoadingState, {\n size: \"sm\"\n }) : rowItems[index];\n return React__default.createElement(\"div\", {\n key: key,\n style: style,\n role: \"row\",\n className: tableRow\n }, rowItem);\n };\n const rowGetter = ({\n index\n }) => rowItems[index];\n if (!dimensions.width || !dimensions.height) {\n return null;\n }\n return React__default.createElement(Table, {\n className: className,\n headerHeight: headerHeight,\n rowHeight: rowHeight,\n rowCount: rowCount,\n overscanRowCount: 3,\n rowGetter: rowGetter,\n rowRenderer: rowRenderer,\n disableHeader: disableHeader,\n ...dimensions\n });\n}\nconst useStyles$j = createUseStyles(theme => ({\n container: {\n height: 400,\n maxHeight: 400\n },\n table: {\n '& th': visuallyHidden,\n '& div[role=\"row\"]': {\n borderBottom: theme.border.muted,\n '&:hover': {\n background: theme.palette.background.accent\n }\n },\n '& div[role=\"cell\"]': {\n display: 'table-cell',\n padding: [theme.spacing[3], theme.spacing[2]],\n verticalAlign: 'middle'\n },\n '& div[role=\"cell\"]:first-child': {\n width: '35%'\n },\n '& div[role=\"cell\"]:nth-child(2)': {\n width: '35%'\n },\n '& div[role=\"cell\"]:nth-child(3)': {\n width: '15%',\n paddingLeft: theme.spacing[5]\n },\n '& div[role=\"cell\"]:nth-child(4)': {\n width: '15%',\n paddingLeft: theme.spacing[5]\n },\n '& strong': {\n fontWeight: theme.type.fontWeight.medium\n }\n },\n menuItem: {\n fontSize: theme.type.fontSize.bodySm,\n cursor: 'pointer'\n }\n}));\n\n/** `ActionMenu` should always be rendered inside of a `form` tag with submit handled */\nfunction ActionMenu({\n onClose,\n onShow,\n show,\n renderTo,\n menuContent,\n menuTrigger,\n stretched,\n autoClose = true,\n placement = 'bottom-left'\n}) {\n return React__default.createElement(Menu, {\n autoClose: autoClose,\n dense: true,\n renderTo: renderTo,\n onChange: isOpen => {\n if (isOpen) {\n if (onShow) {\n onShow();\n }\n } else if (onClose) {\n onClose();\n }\n },\n menuTrigger: menuTrigger,\n placement: placement,\n show: show,\n stretched: stretched\n }, menuContent);\n}\nconst COPY$l = defineMessages({\n COMBINE_WITH: {\n id: 'WordCloudListViewMenuContent.COMBINE_WITH',\n defaultMessage: 'Combine with',\n description: '[Type: Button][Vis: high] - Combine with'\n },\n HIDE_FROM_WORD_CLOUD: {\n id: 'WordCloudListViewMenuContent.HIDE_FROM_WORD_CLOUD',\n defaultMessage: 'Hide from word cloud',\n description: '[Type: Button][Vis: high] - Hide from word cloud'\n },\n EDIT_COMBINED_WORDS: {\n id: 'WordCloudListViewMenuContent.EDIT_COMBINED_WORDS',\n defaultMessage: 'Edit combined words',\n description: '[Type: Button][Vis: low] - Edit combined words'\n },\n SPLIT_COMBINED_WORDS: {\n id: 'WordCloudListViewMenuContent.SPLIT_COMBINED_WORDS',\n defaultMessage: 'Split combined words',\n description: '[Type: Button][Vis: low] - Split combined words'\n },\n EXPAND_MENU_LABEL: {\n id: 'WordCloudListViewMenuContent.EXPAND_MENU_LABEL',\n defaultMessage: 'Expand menu',\n description: '[Type: label][Vis: low] - menu icon assistive text for screen readers'\n }\n});\nfunction WordCloudListViewMenuContent({\n word,\n onEditCombinedWords,\n onCombineWordLinkClick,\n onHideFromWordCloudLinkClick,\n onSplitCombinedWords,\n handleMenuClose\n}) {\n const {\n menuItem\n } = useStyles$j();\n return React__default.createElement(React__default.Fragment, null, word.combinedWord && React__default.createElement(React__default.Fragment, null, React__default.createElement(Menu.Item, {\n onClick: () => onEditCombinedWords(word),\n handleMenuClose: handleMenuClose\n }, React__default.createElement(\"span\", {\n className: menuItem\n }, React__default.createElement(T, {\n desc: COPY$l.EDIT_COMBINED_WORDS\n }))), React__default.createElement(Menu.Item, {\n onClick: () => onSplitCombinedWords(word),\n handleMenuClose: handleMenuClose\n }, React__default.createElement(\"span\", {\n className: menuItem\n }, React__default.createElement(T, {\n desc: COPY$l.SPLIT_COMBINED_WORDS\n })))), !word.combinedWord && React__default.createElement(React__default.Fragment, null, React__default.createElement(Menu.Item, {\n onClick: () => onCombineWordLinkClick(word),\n handleMenuClose: handleMenuClose\n }, React__default.createElement(\"span\", {\n className: menuItem\n }, React__default.createElement(T, {\n desc: COPY$l.COMBINE_WITH\n }), \"...\")), React__default.createElement(Menu.Item, {\n onClick: () => onHideFromWordCloudLinkClick(word.word),\n handleMenuClose: handleMenuClose\n }, React__default.createElement(\"span\", {\n className: menuItem\n }, React__default.createElement(T, {\n desc: COPY$l.HIDE_FROM_WORD_CLOUD\n })))));\n}\nconst COPY$k = defineMessages({\n EXPAND_MENU_LABEL: {\n id: 'WordCloudListRowItem.EXPAND_MENU_LABEL',\n defaultMessage: 'Expand menu',\n description: '[Type: label][Vis: low] - menu icon assistive text for screen readers'\n }\n});\nfunction WordCloudListRowItem({\n word,\n index,\n renderTo,\n percentage,\n onWordClick,\n ...wordCloudListViewMenuContentCallbacks\n}) {\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(\"div\", {\n role: \"cell\"\n }, React__default.createElement(ActionMenu, {\n show: menuIsOpen,\n renderTo: renderTo,\n onClose: () => setMenuIsOpen(false),\n onShow: () => setMenuIsOpen(true),\n placement: \"bottom-left\",\n menuTrigger: React__default.createElement(IconCaretDown, {\n \"data-testid\": `word-cloud-list-row-icon-${index}`,\n size: \"sm\",\n title: t(COPY$k.EXPAND_MENU_LABEL)\n }),\n menuContent: React__default.createElement(WordCloudListViewMenuContent, {\n word: word,\n handleMenuClose: () => setMenuIsOpen(false),\n ...wordCloudListViewMenuContentCallbacks\n })\n }), React__default.createElement(LinkButton$1, {\n ml: 3,\n onClick: () => {\n onWordClick(word);\n }\n }, word.word)), React__default.createElement(\"div\", {\n role: \"cell\"\n }, React__default.createElement(ProgressBar, {\n percent: percentage,\n size: \"lg\",\n color: \"secondary\"\n })), React__default.createElement(\"div\", {\n role: \"cell\"\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(\"strong\", null, percentage.toFixed(2), \"%\"))), React__default.createElement(\"div\", {\n role: \"cell\"\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(\"strong\", null, word.occurrences))));\n}\nfunction renderRowItems({\n words,\n ...callbacks\n}, renderTo) {\n return words.map((word, index) => {\n const percentage = word.percentage ? word.percentage * 100 : 0;\n return React__default.createElement(WordCloudListRowItem, {\n word: word,\n index: index,\n percentage: percentage,\n renderTo: renderTo || undefined,\n ...callbacks\n });\n });\n}\nfunction WordCloudListView({\n words = [],\n ...callbacks\n}) {\n const {\n container,\n table\n } = useStyles$j();\n const [renderTo, setRenderTo] = useState(null);\n const handleRef = useCallback(instance => {\n if (!renderTo) {\n setRenderTo(instance);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const [tableParentRef, {\n width,\n height\n }] = useDimensions();\n const rowItems = renderRowItems({\n words,\n ...callbacks\n }, renderTo);\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(\"div\", {\n ref: handleRef\n }), React__default.createElement(\"div\", {\n ref: tableParentRef,\n role: \"table\",\n className: container\n }, React__default.createElement(VirtualizedTable, {\n rowHeight: 46,\n hasNextPage: false,\n rowItems: rowItems,\n dimensions: {\n width,\n height\n },\n className: table\n })));\n}\nfunction WordCloudViewSelector({\n currentView,\n words,\n colorPaletteOptions,\n selectedColorPaletteId,\n isMultiColorSelected,\n fontFamily,\n fixedColor,\n onWordClick,\n onCombineWordLinkClick,\n onHideFromWordCloudLinkClick,\n onEditCombinedWords,\n onSplitCombinedWords\n}) {\n if (currentView === 'list') {\n return React__default.createElement(WordCloudListView, {\n words: words,\n onWordClick: onWordClick,\n onCombineWordLinkClick: onCombineWordLinkClick,\n onHideFromWordCloudLinkClick: onHideFromWordCloudLinkClick,\n onEditCombinedWords: onEditCombinedWords,\n onSplitCombinedWords: onSplitCombinedWords\n });\n }\n return React__default.createElement(WordCloudMainView, {\n colorPalette: isMultiColorSelected ? colorPaletteOptions[selectedColorPaletteId - 1] : undefined,\n fixedColor: !isMultiColorSelected ? fixedColor : undefined,\n showLegend: true,\n words: words,\n fontFamily: fontFamily,\n onWordClick: onWordClick\n });\n}\nconst COPY$j = defineMessages({\n COLOR: {\n id: 'WordCloudCustomizationTabs.COLOR',\n defaultMessage: `COLOR`,\n description: '[Type: Button][Vis: med] - Button for tab to navigate to color'\n },\n FONT: {\n id: 'WordCloudCustomizationTabs.FONT',\n defaultMessage: `FONT`,\n description: '[Type: Button][Vis: med] - Button for tab to navigate to font'\n },\n RANGE: {\n id: 'WordCloudCustomizationTabs.RANGE',\n defaultMessage: `RANGE`,\n description: '[Type: Button][Vis: med] - Button for tab to navigate to range'\n }\n});\nfunction WordCloudCustomizationTabs({\n colorTab,\n fontTab,\n rangeTab\n}) {\n const [selectedTab, setSelectedTab] = useState('color');\n const onTabChange = evt => {\n const value = evt.currentTarget.getAttribute('value');\n if (value) {\n setSelectedTab(value);\n }\n };\n return React__default.createElement(Tabs, {\n onChange: onTabChange,\n fullWidth: true\n }, React__default.createElement(Tab, {\n title: t(COPY$j.COLOR),\n value: \"color\",\n \"data-testid\": \"wc-customization-color\",\n selected: selectedTab === 'color'\n }, colorTab), React__default.createElement(Tab, {\n title: t(COPY$j.FONT),\n value: \"font\",\n \"data-testid\": \"wc-customization-font\",\n selected: selectedTab === 'font'\n }, fontTab), (rangeTab || null) && React__default.createElement(Tab, {\n title: t(COPY$j.RANGE),\n \"data-testid\": \"wc-customization-range\",\n value: \"range\",\n selected: selectedTab === 'range'\n }, rangeTab));\n}\nconst useStyles$i = createUseStyles(theme => ({\n strong: {\n fontWeight: 500\n },\n colorSelectorWrapper: {\n width: 160,\n height: 96,\n border: theme.border.main,\n borderRadius: theme.spacing[1],\n backgroundColor: theme.palette.background.light,\n cursor: 'pointer',\n '&.selected': {\n borderColor: theme.palette.data.two\n },\n '&:hover:not(.selected)': {\n opacity: '0.6'\n }\n },\n colorSelector: {\n position: 'relative',\n width: 75,\n height: 36,\n padding: '2px',\n border: theme.border.main,\n '& ul': {\n margin: 0,\n padding: 0,\n display: 'flex',\n '& li': {\n listStyleType: 'none',\n height: 30,\n flexGrow: 1,\n flexBasis: 1\n }\n },\n '& .arrow': {\n position: 'absolute',\n bottom: 0,\n right: 0,\n display: 'flex',\n backgroundColor: theme.palette.background.light\n }\n },\n colorSwatches: {\n width: 200,\n padding: theme.spacing[1],\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n '& li': {\n padding: theme.spacing[1]\n }\n },\n colorSwatch: {\n boxSizing: 'border-box',\n border: theme.border.main,\n borderColor: theme.palette.transparent,\n '&:hover': {\n borderColor: theme.palette.border.main\n },\n '&.selected': {\n borderColor: theme.palette.data.two\n },\n '& div': {\n width: 18,\n height: 18,\n borderRadius: 1,\n marginRight: theme.spacing[1]\n }\n },\n colorPicker: {\n width: 0,\n height: 0,\n visibility: 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }\n}));\nfunction ColorSelector({\n selected,\n menuTrigger,\n menuContent,\n toggleMultiColorSelector,\n title\n}) {\n const {\n colorSelectorWrapper,\n strong,\n colorSelector\n } = useStyles$i();\n const [isOpen, setIsOpen] = useState(false);\n const toggleSelector = () => {\n setIsOpen(prevState => !prevState);\n };\n const handleSelectorClick = () => {\n if (!selected) {\n toggleMultiColorSelector();\n }\n };\n const handleKeyEvent = evt => {\n if (evt.key === 'Enter' && !selected) {\n toggleMultiColorSelector();\n }\n };\n return React__default.createElement(\"div\", {\n className: `${colorSelectorWrapper} ${(selected || isOpen) && 'selected'}`,\n onClick: handleSelectorClick,\n onKeyPress: handleKeyEvent,\n role: \"button\",\n tabIndex: 0\n }, React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\"\n }, React__default.createElement(Box, {\n pt: 2,\n pb: 2\n }, React__default.createElement(Typography, {\n variant: \"bodySm\",\n align: \"center\",\n className: strong\n }, title)), React__default.createElement(ActionMenu, {\n onClose: toggleSelector,\n onShow: toggleSelector,\n show: isOpen,\n placement: \"bottom-left\",\n menuTrigger: React__default.createElement(\"div\", {\n className: colorSelector\n }, menuTrigger),\n menuContent: React__default.cloneElement(menuContent, {\n onCancelClick: toggleSelector\n })\n })));\n}\nfunction ColorSwatch({\n colorPalette,\n activeColorPaletteId,\n onSelectionChange\n}) {\n const {\n groupId,\n palette\n } = colorPalette;\n const setActive = groupId === activeColorPaletteId;\n const {\n colorSwatch\n } = useStyles$i();\n return React__default.createElement(\"li\", {\n key: `palette-${groupId}`\n }, React__default.createElement(Box, {\n p: 1,\n className: `${colorSwatch} ${setActive ? 'selected' : ''}`,\n display: \"flex\",\n onClick: () => onSelectionChange(groupId)\n }, palette.map(color => React__default.createElement(\"div\", {\n key: uniqueId(`swatch-`),\n className: colorSwatch,\n style: {\n backgroundColor: color\n }\n }))));\n}\nconst COPY$i = defineMessages({\n APPLY: {\n id: 'MultiColorSelectorMenu.APPLY',\n defaultMessage: `Apply`,\n description: '[Type: Button][Vis: med] - Button to Apply wordcloud color customization'\n },\n CANCEL: {\n id: 'MultiColorSelectorMenu.CANCEL',\n defaultMessage: `Cancel`,\n description: '[Type: Button][Vis: med] - Button to cancel wordcloud color customization'\n }\n});\nfunction MultiColorSelectorMenu({\n colorPaletteOptions,\n selectedColorPaletteId = 1,\n onCancelClick,\n onSaveMultiColorPaletteClick\n}) {\n const {\n colorSwatches\n } = useStyles$i();\n const [activeColorPaletteId, setActiveColorPaletteId] = useState(selectedColorPaletteId);\n const onSelectionChange = selectGroupId => {\n setActiveColorPaletteId(selectGroupId);\n };\n const onSaveClick = () => {\n onSaveMultiColorPaletteClick(activeColorPaletteId);\n if (onCancelClick) {\n onCancelClick();\n }\n };\n return React__default.createElement(\"div\", null, React__default.createElement(\"ul\", {\n className: colorSwatches\n }, colorPaletteOptions === null || colorPaletteOptions === void 0 ? void 0 : colorPaletteOptions.map(colorPalette => React__default.createElement(ColorSwatch, {\n onSelectionChange: onSelectionChange,\n activeColorPaletteId: activeColorPaletteId,\n colorPalette: colorPalette\n }))), React__default.createElement(Box, {\n mb: 2,\n display: \"flex\",\n justifyContent: \"center\"\n }, React__default.createElement(Button, {\n size: \"sm\",\n buttonType: \"button\",\n color: \"secondary\",\n onClick: onCancelClick\n }, t(COPY$i.CANCEL)), React__default.createElement(Box, {\n ml: 2\n }, React__default.createElement(Button, {\n size: \"sm\",\n buttonType: \"button\",\n color: \"primary\",\n onClick: onSaveClick\n }, t(COPY$i.APPLY)))));\n}\nconst OneColorSelectorMenu$1 = React__default.forwardRef(({\n fixedColor,\n onFixedColorChange\n}, ref) => {\n const {\n colorPicker\n } = useStyles$i();\n const onChange = evt => {\n const {\n value\n } = evt.target;\n onFixedColorChange(value);\n };\n return React__default.createElement(\"input\", {\n ref: ref,\n className: colorPicker,\n type: \"color\",\n tabIndex: -1,\n value: fixedColor,\n onInput: onChange\n });\n});\nfunction MultiColorSelectorTrigger({\n activeColorPalette,\n title\n}) {\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(\"ul\", null, activeColorPalette === null || activeColorPalette === void 0 ? void 0 : activeColorPalette.palette.map(color => React__default.createElement(\"li\", {\n key: `${uniqueId('color-palette-')}`,\n style: {\n backgroundColor: color\n }\n }))), React__default.createElement(\"div\", {\n className: \"arrow\"\n }, React__default.createElement(IconCaretDown, {\n title: title,\n size: \"sm\"\n })));\n}\nfunction OneColorSelectorMenu({\n fixedColor,\n title,\n colorPickerRef\n}) {\n useEffect(() => {\n colorPickerRef === null || colorPickerRef === void 0 ? void 0 : colorPickerRef.click();\n }, [colorPickerRef]);\n return React__default.createElement(\"div\", {\n tabIndex: 0,\n role: \"button\"\n }, React__default.createElement(\"ul\", null, React__default.createElement(\"li\", {\n style: {\n backgroundColor: fixedColor\n }\n })), React__default.createElement(\"div\", {\n className: \"arrow\"\n }, React__default.createElement(IconCaretDown, {\n title: title,\n size: \"sm\"\n })));\n}\nconst useStyles$h = createUseStyles(theme => ({\n container: {\n backgroundColor: theme.palette.background.accent,\n padding: theme.spacing[4]\n },\n fontSelector: {\n width: 256\n },\n strong: {\n fontWeight: theme.type.fontWeight.medium\n },\n colorSelectorContainer: {\n borderRight: theme.border.main,\n width: 380,\n padding: theme.spacing[4],\n margin: -theme.spacing[4]\n },\n rangeSliderContainer: {\n paddingTop: theme.spacing[5],\n paddingBottom: theme.spacing[5]\n },\n rangeSlider: {\n width: 400\n },\n totalWordCount: {\n marginLeft: theme.spacing[5],\n marginRight: theme.spacing[1],\n paddingLeft: theme.spacing[1],\n paddingRight: theme.spacing[1],\n border: theme.border.main\n },\n footer: {\n backgroundColor: theme.palette.background.accent,\n padding: theme.spacing[3],\n '& label': {\n '& span': {\n fontSize: theme.type.fontSize.bodySm\n }\n }\n }\n}));\nconst COPY$h = defineMessages({\n COLOR_SELECTOR_TITLE: {\n id: 'ColorTab.COLOR_SELECTOR_TITLE',\n defaultMessage: `How word clouds use color`,\n description: '[Type: Button][Vis: med] - Title for color selector tab'\n },\n COLOR_SELECTOR_DESCRIPTION: {\n id: 'ColorTab.COLOR_SELECTOR_DESCRIPTION',\n defaultMessage: `Multicolor word clouds use both color and size to indicate the number of times a word or phrase was mentioned.`,\n description: '[Type: Button][Vis: med] - Title for color selector tab'\n },\n MUTLI_COLOR_SELECTOR_LABEL: {\n id: 'ColorTab.MUTLI_COLOR_SELECTOR_LABEL',\n defaultMessage: `Multicolor`,\n description: '[Type: Button][Vis: med] - Label for multi color selector'\n },\n ONE_COLOR_SELECTOR_LABEL: {\n id: 'ColorTab.ONE_COLOR_SELECTOR_LABEL',\n defaultMessage: `One color`,\n description: '[Type: Button][Vis: med] - Label for multi color selector'\n },\n DOWN_ARROW: {\n id: 'ColorTab.DOWN_ARROW',\n defaultMessage: `Select dropdown arrow`,\n description: '[Type: Button][Vis: med] - Title for color selector dropdown'\n }\n});\nfunction ColorTab({\n colorPaletteOptions,\n selectedColorPaletteId,\n fixedColor,\n isMultiColorSelected,\n onSaveMultiColorPaletteClick,\n onFixedColorChange,\n toggleMultiColorSelector\n}) {\n const {\n container,\n colorSelectorContainer,\n strong\n } = useStyles$h();\n const [colorPickerRef, setColorPickerRef] = useState(null);\n const handleRef = useCallback(instance => {\n if (!colorPickerRef) {\n setColorPickerRef(instance);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return React__default.createElement(\"div\", {\n className: container\n }, React__default.createElement(Box, {\n display: \"flex\",\n pl: 4,\n pr: 4\n }, React__default.createElement(\"div\", {\n className: colorSelectorContainer\n }, React__default.createElement(Box, {\n pl: 2,\n pr: 2,\n display: \"flex\"\n }, React__default.createElement(ColorSelector, {\n title: t(COPY$h.MUTLI_COLOR_SELECTOR_LABEL),\n selected: isMultiColorSelected,\n toggleMultiColorSelector: toggleMultiColorSelector,\n menuContent: React__default.createElement(MultiColorSelectorMenu, {\n selectedColorPaletteId: selectedColorPaletteId,\n colorPaletteOptions: colorPaletteOptions,\n onSaveMultiColorPaletteClick: onSaveMultiColorPaletteClick\n }),\n menuTrigger: React__default.createElement(MultiColorSelectorTrigger, {\n activeColorPalette: colorPaletteOptions[selectedColorPaletteId - 1],\n title: t(COPY$h.DOWN_ARROW)\n })\n }), React__default.createElement(Box, {\n ml: 2\n }, React__default.createElement(ColorSelector, {\n title: t(COPY$h.ONE_COLOR_SELECTOR_LABEL),\n menuTrigger: React__default.createElement(OneColorSelectorMenu, {\n fixedColor: fixedColor,\n title: t(COPY$h.DOWN_ARROW),\n colorPickerRef: colorPickerRef\n }),\n menuContent: React__default.createElement(OneColorSelectorMenu$1, {\n fixedColor: fixedColor,\n ref: handleRef,\n onFixedColorChange: onFixedColorChange\n }),\n selected: !isMultiColorSelected,\n toggleMultiColorSelector: toggleMultiColorSelector\n })))), React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n pl: 6,\n pr: 6\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(\"span\", {\n className: strong\n }, t(COPY$h.COLOR_SELECTOR_TITLE))), React__default.createElement(Box, {\n mt: 3\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, t(COPY$h.COLOR_SELECTOR_DESCRIPTION))))));\n}\nconst FONT_MAP = [{\n label: 'Andale Mono',\n style: 'andale mono,monospace'\n}, {\n label: 'Arial',\n style: 'arial,sans-serif'\n}, {\n label: 'Arial Black',\n style: 'arial black,avant garde,sans-serif'\n}, {\n label: 'Book Antiqua',\n style: 'book antiqua,palatino,serif'\n}, {\n label: 'Comic Sans MS',\n style: 'comic sans ms,sans-serif'\n}, {\n label: 'Courier New',\n style: 'courier new,courier,monospace'\n}, {\n label: 'Droid Serif',\n style: 'droid serif,serif'\n}, {\n label: 'Garamond',\n style: 'garamond,baskerville,serif'\n}, {\n label: 'Georgia',\n style: 'georgia,palatino,serif'\n}, {\n label: 'Helvetica',\n style: 'helvetica,helvetica neue,arial,sans-serif'\n}, {\n label: 'Helvetica Neue',\n style: 'helvetica neue,helvetica,arial,sans-serif'\n}, {\n label: 'Impact',\n style: 'impact,sans-serif'\n}, {\n label: 'Lato',\n style: 'lato,sans-serif'\n}, {\n label: 'Merriweather',\n style: 'merriweather,serif'\n}, {\n label: 'Montserrat',\n style: 'montserrat,sans-serif'\n}, {\n label: 'National 2',\n style: 'National2'\n}, {\n label: 'Open Sans',\n style: 'open sans,sans-serif'\n}, {\n label: 'Palatino',\n style: 'palatino,palatino linotype,serif'\n}, {\n label: 'Roboto',\n style: 'roboto,sans-serif'\n}, {\n label: 'Tahoma',\n style: 'tahoma,geneva,sans-serif'\n}, {\n label: 'Terminal',\n style: 'terminal,monaco,monospace'\n}, {\n label: 'Times New Roman',\n style: 'times new roman,times,serif'\n}, {\n label: 'Trebuchet',\n style: 'trebuchet ms,geneva,sans-serif'\n}, {\n label: 'Verdana',\n style: 'verdana,arial,sans-serif'\n}, {\n label: 'Noto Sans (Traditional Chinese)',\n style: 'noto sans tc,sans-serif'\n}, {\n label: 'Noto Sans (Japanese)',\n style: 'noto sans jp,sans-serif'\n}, {\n label: 'Noto Sans (Korean)',\n style: 'noto sans kr,sans-serif'\n}];\nfunction FontTab({\n fontFamily,\n onFontChange\n}) {\n const {\n container,\n fontSelector\n } = useStyles$h();\n return React__default.createElement(\"div\", {\n className: container\n }, React__default.createElement(\"div\", {\n className: fontSelector\n }, React__default.createElement(SelectMenu, {\n stretched: true,\n value: fontFamily,\n onChange: onFontChange\n }, FONT_MAP.map(font => React__default.createElement(SelectMenu.Option, {\n key: `${uniqueId$1('font-option-')}`,\n value: font.label\n }, font.label)))));\n}\nconst COPY$g = defineMessages({\n RANGE_TAB_LABEL: {\n id: 'RangeTab.RANGE_TAB_LABEL',\n defaultMessage: `Mentions: {value}`,\n description: '[Type: Button][Vis: med] - Label for range slider in wordcloud customization'\n },\n TOTAL_WORDS: {\n id: 'RangeTab.TOTAL_WORDS',\n defaultMessage: `total words`,\n description: '[Type: Button][Vis: med] - Label for total word count display'\n }\n});\nfunction RangeTab({\n minRange,\n maxRange,\n minFrequency,\n wordCount,\n onSliderChange\n}) {\n const {\n container,\n rangeSliderContainer,\n rangeSlider,\n totalWordCount\n } = useStyles$h();\n return React__default.createElement(\"div\", {\n className: container\n }, React__default.createElement(Box, {\n className: rangeSliderContainer,\n display: \"flex\",\n alignItems: \"flex-start\"\n }, React__default.createElement(Box, {\n display: \"flex\"\n }, React__default.createElement(\"div\", {\n className: rangeSlider\n }, React__default.createElement(Slider, {\n id: \"range-slider\",\n showTooltip: true,\n min: minRange,\n max: maxRange,\n controlled: true,\n values: [minFrequency < minRange ? minRange : minFrequency],\n onChange: onSliderChange\n }), React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"space-between\"\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(T, {\n desc: COPY$g.RANGE_TAB_LABEL,\n values: {\n value: minRange\n }\n })), React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(T, {\n desc: COPY$g.RANGE_TAB_LABEL,\n values: {\n value: maxRange\n }\n }))))), React__default.createElement(Box, {\n display: \"flex\"\n }, React__default.createElement(\"div\", {\n className: totalWordCount\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, wordCount || '0')), React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(T, {\n desc: COPY$g.TOTAL_WORDS\n })))));\n}\nfunction WordCloudCustomization({\n colorPaletteOptions,\n selectedColorPaletteId,\n fixedColor,\n fontFamily,\n footerComponent,\n isMultiColorSelected,\n minRange,\n maxRange,\n minFrequency,\n wordCount,\n isBasicUser,\n onFixedColorChange,\n onFontChange,\n onSliderChange,\n onSaveMultiColorPaletteClick,\n toggleMultiColorSelector\n}) {\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(WordCloudCustomizationTabs, {\n colorTab: React__default.createElement(ColorTab, {\n colorPaletteOptions: colorPaletteOptions,\n selectedColorPaletteId: selectedColorPaletteId,\n fixedColor: fixedColor,\n isMultiColorSelected: isMultiColorSelected,\n onFixedColorChange: onFixedColorChange,\n onSaveMultiColorPaletteClick: onSaveMultiColorPaletteClick,\n toggleMultiColorSelector: toggleMultiColorSelector\n }),\n fontTab: React__default.createElement(FontTab, {\n fontFamily: fontFamily,\n onFontChange: onFontChange\n }),\n rangeTab: !isBasicUser && React__default.createElement(RangeTab, {\n minRange: minRange,\n maxRange: maxRange,\n minFrequency: minFrequency,\n wordCount: wordCount,\n onSliderChange: onSliderChange\n })\n }), footerComponent);\n}\nconst COPY$f = defineMessages({\n CUSTOMIZE: {\n id: 'WordCloudCustomizationButton.CUSTOMIZE',\n defaultMessage: `Customize`,\n description: '[Type: Button][Vis: med] - Button to load customization options'\n }\n});\nfunction WordCloudCustomizationButton({\n setShowCustomization\n}) {\n return React__default.createElement(Box, {\n mx: 6,\n mt: 4,\n mb: 4,\n display: \"flex\",\n justifyContent: \"flex-end\"\n }, React__default.createElement(Button, {\n variant: \"solid\",\n color: \"muted\",\n \"data-testid\": \"customize-button\",\n onClick: setShowCustomization,\n size: \"sm\"\n }, t(COPY$f.CUSTOMIZE)));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst useStyles$g = createUseStyles(theme => ({\n scrollY: ({\n height = 'auto',\n maxHeight = 'none',\n scrollable,\n flex\n }) => ({\n display: flex ? 'flex' : undefined,\n flexGrow: flex ? 1 : undefined,\n height: !Number.isNaN(height) && typeof height === 'number' ? `${height}px` : height,\n maxHeight: !Number.isNaN(maxHeight) && typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,\n overflowY: scrollable ? 'auto' : 'hidden',\n '&::-webkit-scrollbar-thumb': {\n // This color is brand color 'stone' which is currently not in WrenchTheme\n backgroundColor: '#9DA5AA',\n borderRadius: '6px'\n },\n '&::-webkit-scrollbar': {\n backgroundColor: 'transparent',\n width: '6px',\n height: '6px'\n }\n })\n}));\nfunction ScrollableBox({\n children,\n height,\n maxHeight,\n scrollable,\n tabIndex,\n flex,\n ...props\n}) {\n const {\n scrollY\n } = useStyles$g({\n height,\n maxHeight,\n scrollable,\n flex\n });\n const {\n className,\n spacingClass,\n ...rest\n } = props;\n const scrollableBoxTabIndex = () => {\n if (tabIndex) {\n return tabIndex;\n }\n return height ? 0 : undefined;\n };\n return React__default.createElement(\"div\", {\n // Scrollable elements should be accessible by keyboard users\n tabIndex: scrollableBoxTabIndex(),\n className: classnames(className, spacingClass, scrollY),\n ...rest\n }, children);\n}\nvar ScrollableBox$1 = withSpacing(ScrollableBox);\nconst COPY$e = defineMessages({\n HELP: {\n id: 'IconHelpStyled.HELP',\n defaultMessage: 'Help',\n description: '[Type: label][Vis: low] - text for aria label and icon'\n }\n});\nconst useStyles$f = createUseStyles(theme => ({\n helpIcon: {\n cursor: 'help',\n '& [class^=\"wdsIcons\"]:hover, & [class^=\"wdsIcons\"]:focus': {\n fill: theme.palette.text.lightMuted\n }\n }\n}));\n/** Wrench `IconHelp` with help cursor and hover effect */\nfunction IconHelpStyled({\n className\n}) {\n const {\n helpIcon\n } = useStyles$f();\n return React__default.createElement(\"span\", {\n className: clsx(helpIcon, className)\n }, React__default.createElement(IconHelpFilled, {\n color: \"darkMuted\",\n tabIndex: 0,\n title: t(COPY$e.HELP)\n }));\n}\nIconHelpStyled.displayName = 'HelpStyled'; // hack to work around Wrench Popup's 'trigger' proptype accessibility error (searches for Icon)\n\nconst useStyles$e = createUseStyles(theme => ({\n header: {\n fontWeight: theme.type.fontWeight.medium\n }\n}));\nfunction HelpPopout({\n popoutHeader,\n popoutContent\n}) {\n const {\n header\n } = useStyles$e();\n const [renderTo, setRenderTo] = useState(null);\n const handleRef = useCallback(instance => {\n if (!renderTo) {\n setRenderTo(instance);\n }\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, []);\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(\"div\", {\n ref: handleRef\n }), React__default.createElement(Popout, {\n autoFlip: true,\n delay: true,\n renderTo: renderTo || undefined,\n placement: \"right\",\n size: \"sm\",\n trigger: React__default.createElement(IconHelpStyled, null)\n }, React__default.createElement(Popout.Header, null, React__default.createElement(Typography, {\n component: \"span\"\n }, React__default.createElement(\"span\", {\n className: header\n }, popoutHeader))), React__default.createElement(Popout.Body, null, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, popoutContent))));\n}\nconst useStyles$d = createUseStyles(theme => ({\n wordCloudContainer: {\n position: 'relative'\n },\n wordCloudBlur: {\n filter: 'blur(2px)'\n },\n helpPopout: {\n marginLeft: 'auto',\n padding: theme.spacing[6]\n },\n editWordsModalBody: {\n background: theme.palette.background.main\n },\n wordListSection: {\n '& li': {\n width: '50%',\n borderBottom: 'none',\n '& div': {\n background: 'none'\n }\n }\n },\n sectionLabel: {\n fontWeight: theme.type.fontWeight.medium,\n fontSize: theme.type.fontSize.body\n }\n}));\nconst filterHiddenWords = (wordCloudItems, hiddenWords) => {\n if (!hiddenWords.length) {\n return wordCloudItems;\n }\n return wordCloudItems.filter(({\n word\n }) => {\n const indexInHiddenWords = hiddenWords.findIndex(hiddenWord => hiddenWord.toLowerCase() === word.toLowerCase());\n return indexInHiddenWords === -1;\n });\n};\nconst combineWords = (wordCloudItems, combinedWordCloudItems) => {\n if (!combinedWordCloudItems.length) {\n return wordCloudItems;\n }\n let filteredWordCloudItems = [...wordCloudItems];\n combinedWordCloudItems.forEach(combinedWordCloudItem => {\n const {\n title,\n words: combinedWords\n } = combinedWordCloudItem;\n // create new word\n const newWordCloudItem = {\n word: title,\n occurrences: 0,\n combinedWord: combinedWordCloudItem\n };\n // Remove words from original list\n combinedWords.forEach(combinedWordItem => {\n filteredWordCloudItems = filteredWordCloudItems.filter(filteredWordCloudItem => {\n const {\n word,\n occurrences\n } = filteredWordCloudItem;\n if (word.toLowerCase() === combinedWordItem.toLowerCase()) {\n newWordCloudItem.occurrences += occurrences;\n return false;\n }\n return true;\n });\n });\n // Add new combined word to the list\n filteredWordCloudItems.push(newWordCloudItem);\n });\n return filteredWordCloudItems.sort((a, b) => b.occurrences - a.occurrences);\n};\nconst filterWordsByFrequency = (wordCloudItems, minFrequency) => {\n return wordCloudItems.filter(({\n occurrences\n }) => {\n return occurrences >= minFrequency && occurrences;\n });\n};\nconst formatWords = (wordCloudItems, hiddenWords, combinedWords) => {\n if (!wordCloudItems.length) {\n return wordCloudItems;\n }\n // filter hidden words\n let filteredWordCloudItems = filterHiddenWords(wordCloudItems, hiddenWords);\n // calculate total word occurences\n const totalWords = wordCloudItems.reduce((partialSum, a) => partialSum + a.occurrences, 0);\n // replace all combined words with a new one\n filteredWordCloudItems = combineWords(filteredWordCloudItems, combinedWords);\n // Update percentages\n filteredWordCloudItems = filteredWordCloudItems.map(wordCloudItem => {\n return {\n ...wordCloudItem,\n percentage: wordCloudItem.occurrences / totalWords\n };\n });\n return filteredWordCloudItems;\n};\nconst getMinAndMaxRange = wordCloudItems => {\n let minRange = Number.MAX_SAFE_INTEGER;\n let maxRange = 0;\n wordCloudItems.forEach(({\n occurrences\n }) => {\n minRange = Math.min(occurrences, minRange);\n maxRange = Math.max(occurrences, maxRange);\n });\n minRange = minRange >= maxRange ? maxRange - 1 : minRange;\n return [minRange, maxRange];\n};\nconst getFontStyle = fontFamily => {\n var _FONT_MAP$find;\n return (_FONT_MAP$find = FONT_MAP.find(({\n label\n }) => label === fontFamily)) === null || _FONT_MAP$find === void 0 ? void 0 : _FONT_MAP$find.style;\n};\nconst getSelectedWordsForCustomization = formData => {\n const {\n words\n } = formData;\n return Object.entries(words).reduce((selectedWords, wordItem) => {\n if (wordItem[1]) {\n selectedWords.push(wordItem[0]);\n }\n return selectedWords;\n }, []);\n};\nconst getInitialStateOfCustomizeWordsModal = (words, selectedWords) => {\n const initialSelectedState = {};\n words.forEach(({\n word\n }) => {\n initialSelectedState[word] = selectedWords ? selectedWords.indexOf(word) !== -1 : false;\n });\n return initialSelectedState;\n};\n\n/** Referentially stable empty function\n *\n * e.g. as default or placeholder */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst EmptyFn = () => {};\nconst toKebabCase = text => text.toLowerCase().replace(/\\s/g, '-');\nconst useStyles$c = createUseStyles(theme => ({\n footer: {\n backgroundColor: theme.palette.background.accent,\n padding: theme.spacing[3],\n '& label': {\n '& span': {\n fontSize: theme.type.fontSize.bodySm\n }\n }\n },\n wordListLabel: {\n whiteSpace: 'normal',\n '& *': {\n cursor: 'pointer'\n }\n }\n}));\nconst WordListItem = React__default.forwardRef(({\n name,\n value,\n onChange,\n wordItem\n}, ref) => {\n const {\n wordListLabel\n } = useStyles$c();\n const checkboxId = useMemo(() => uniqueId(`${toKebabCase(wordItem.word)}`), [wordItem]);\n return React__default.createElement(List.Item, {\n onClick: () => {\n onChange(!value);\n },\n interactive: true,\n addOnLeft: React__default.createElement(Checkbox, {\n checked: value,\n id: checkboxId,\n name: name,\n innerRef: ref,\n value: wordItem.word,\n ariaLabel: wordItem.word\n })\n }, React__default.createElement(\"label\", {\n htmlFor: checkboxId,\n className: wordListLabel,\n onClick: e => e.preventDefault()\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, wordItem.word)));\n});\nfunction WordList({\n control,\n words,\n validate\n}) {\n return (\n // https://github.com/yannickcr/eslint-plugin-react/issues/2584\n // eslint-disable-next-line react/jsx-no-useless-fragment\n React__default.createElement(React__default.Fragment, null, words === null || words === void 0 ? void 0 : words.map(wordItem => !(wordItem !== null && wordItem !== void 0 && wordItem.combinedWord) && React__default.createElement(Controller, {\n key: wordItem.word,\n control: control,\n name: `words.${wordItem.word}`,\n rules: {\n validate\n },\n render: ({\n field: {\n ...props\n }\n }) => React__default.createElement(WordListItem, {\n wordItem: wordItem,\n ...props\n })\n })))\n );\n}\nconst COPY$d = defineMessages({\n COMBINE_WORDS_HEADER: {\n id: 'CombineWordsModal.COMBINE_WORDS_HEADER',\n defaultMessage: 'Combine words',\n description: '[Type: label][Vis: high] - combine words modal header'\n },\n COMBINE_WORDS_EDIT_HEADER: {\n id: 'CombineWordsModal.COMBINE_WORDS_EDIT_HEADER',\n defaultMessage: 'Edit combined words',\n description: '[Type: label][Vis: high] - edit combine words modal header'\n },\n COMBINE_WORDS_HELP_TEXT: {\n id: 'CombineWordsModal.COMBINE_WORDS_HELP_TEXT',\n defaultMessage: 'Create a new word that replaces one or more selected words. You can edit this later to get your original words back.',\n description: '[Type: label][Vis: high] - combine words help text'\n },\n COMBINE_WORDS_INPUT_LABEL: {\n id: 'CombineWordsModal.COMBINED_WORDS_INPUT_LABEL',\n defaultMessage: '1. Create a new word',\n description: '[Type: label][Vis: high] - label for the new combined word input'\n },\n COMBINE_WORDS_INPUT_LABEL_PLACEHOLDER: {\n id: 'CombineWordsModal.COMBINE_WORDS_INPUT_LABEL_PLACEHOLDER',\n defaultMessage: 'Type any new word',\n description: '[Type: label][Vis: high] - placeholder for the input label'\n },\n COMBINE_WORDS_INPUT_LABEL_HELPER_TEXT: {\n id: 'CombineWordsModal.COMBINED_WORDS_INPUT_LABEL_HELPER_TEXT',\n defaultMessage: 'The new word replaces each of the selected words below.',\n description: '[Type: label][Vis: high] - helper text for the input label for the new combined word'\n },\n WORD_LIST_HEADER: {\n id: 'CombineWordsModal.WORD_LIST_HEADER',\n defaultMessage: '2. Choose words to combine',\n description: '[Type: label][Vis: high] - header for list of words section'\n },\n CANCEL_BUTTON_LABEL: {\n id: 'CombineWordsModal.CANCEL_BUTTON_LABEL',\n defaultMessage: 'Cancel',\n description: '[Type: label][Vis: high] - cancel button to dismiss the modal'\n },\n COMBINE_BUTTON_LABEL: {\n id: 'CombineWordsModal.SAVE_BUTTON_LABEL',\n defaultMessage: 'Combine',\n description: '[Type: label][Vis: high] - save button to combine words from word cloud'\n }\n});\nfunction CombineWordsModal({\n words,\n triggerWord,\n showModal,\n onClose,\n onCombine\n}) {\n const wordListWords = useMemo(() => {\n let combinedWords = [...words];\n if (triggerWord !== null && triggerWord !== void 0 && triggerWord.combinedWord) {\n var _triggerWord$combined;\n combinedWords = [...((triggerWord === null || triggerWord === void 0 ? void 0 : (_triggerWord$combined = triggerWord.combinedWord) === null || _triggerWord$combined === void 0 ? void 0 : _triggerWord$combined.words.map(word => ({\n occurrences: 0,\n word\n }))) || [])].concat(combinedWords);\n }\n return combinedWords;\n }, [words, triggerWord]);\n const initialSelection = useMemo(() => {\n var _triggerWord$combined2, _triggerWord$combined3;\n const selectedWords = triggerWord !== null && triggerWord !== void 0 && triggerWord.combinedWord ? (_triggerWord$combined2 = triggerWord.combinedWord) === null || _triggerWord$combined2 === void 0 ? void 0 : _triggerWord$combined2.words : [(triggerWord === null || triggerWord === void 0 ? void 0 : triggerWord.word) ?? ''];\n const title = (triggerWord === null || triggerWord === void 0 ? void 0 : (_triggerWord$combined3 = triggerWord.combinedWord) === null || _triggerWord$combined3 === void 0 ? void 0 : _triggerWord$combined3.title) ?? '';\n return {\n words: getInitialStateOfCustomizeWordsModal(wordListWords, selectedWords),\n title\n };\n }, [wordListWords, triggerWord]);\n const {\n control,\n handleSubmit,\n getValues,\n reset,\n formState: {\n isDirty,\n isValid\n }\n } = useForm({\n defaultValues: initialSelection,\n mode: 'onChange'\n });\n const {\n sectionLabel,\n wordListSection,\n editWordsModalBody,\n helpPopout\n } = useStyles$d();\n const handleSave = formData => {\n /* TODO: fix after callback integration */\n onCombine(formData);\n onClose();\n };\n const validateCheckboxes = useCallback(() => {\n const selectedWords = getSelectedWordsForCustomization({\n words: getValues('words') ?? {}\n });\n return selectedWords.length > 1;\n }, [getValues]);\n useEffect(() => {\n reset(initialSelection);\n }, [initialSelection, reset, triggerWord]);\n if (!showModal) {\n return null;\n }\n return React__default.createElement(Modal, {\n \"data-testid\": \"combine-words-modal\",\n size: \"md\",\n show: true,\n dismissible: false\n }, React__default.createElement(\"form\", {\n onSubmit: handleSubmit(handleSave)\n }, React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: true\n }, React__default.createElement(Modal.Header, {\n header: t(triggerWord !== null && triggerWord !== void 0 && triggerWord.combinedWord ? COPY$d.COMBINE_WORDS_EDIT_HEADER : COPY$d.COMBINE_WORDS_HEADER)\n }), React__default.createElement(\"span\", {\n className: helpPopout\n }, React__default.createElement(HelpPopout, {\n popoutHeader: t(COPY$d.COMBINE_WORDS_HEADER),\n popoutContent: t(COPY$d.COMBINE_WORDS_HELP_TEXT)\n }))), React__default.createElement(Modal.Body, {\n className: editWordsModalBody\n }, React__default.createElement(ScrollableBox$1, {\n height: 400,\n maxHeight: 400,\n scrollable: true\n }, React__default.createElement(Box, {\n \"data-testid\": \"combine-word-input-group\",\n mb: 5\n }, React__default.createElement(Typography, {\n variant: \"body\"\n }, React__default.createElement(\"span\", {\n className: sectionLabel\n }, React__default.createElement(T, {\n desc: COPY$d.COMBINE_WORDS_INPUT_LABEL\n }))), React__default.createElement(Box, {\n pt: 2,\n pb: 2\n }, React__default.createElement(InputGroup, null, React__default.createElement(Controller, {\n control: control,\n name: \"title\",\n render: ({\n field: {\n onChange,\n value\n }\n }) => React__default.createElement(Input, {\n size: \"sm\",\n id: \"combinedWordLabel\",\n placeholder: t(COPY$d.COMBINE_WORDS_INPUT_LABEL_PLACEHOLDER),\n ariaLabel: t(COPY$d.COMBINE_WORDS_INPUT_LABEL),\n \"data-testid\": \"new-label\",\n onChange: onChange,\n value: value\n }),\n rules: {\n required: true\n }\n }))), React__default.createElement(Box, null, React__default.createElement(Typography, {\n variant: \"bodySm\",\n color: \"secondary\"\n }, React__default.createElement(T, {\n desc: COPY$d.COMBINE_WORDS_INPUT_LABEL_HELPER_TEXT\n })))), React__default.createElement(Box, null, React__default.createElement(Typography, null, React__default.createElement(\"span\", {\n className: sectionLabel\n }, React__default.createElement(T, {\n desc: COPY$d.WORD_LIST_HEADER\n }))), React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: true,\n className: wordListSection,\n \"data-testid\": \"word-list\"\n }, React__default.createElement(WordList, {\n control: control,\n words: wordListWords,\n validate: validateCheckboxes\n }))))), React__default.createElement(Modal.Footer, {\n align: \"right\"\n }, React__default.createElement(Button, {\n \"data-testid\": \"cancel-combine-btn\",\n size: \"md\",\n color: \"secondary\",\n variant: \"ghost\",\n onClick: onClose\n }, React__default.createElement(T, {\n desc: COPY$d.CANCEL_BUTTON_LABEL\n })), React__default.createElement(Button, {\n \"data-testid\": \"combine-btn\",\n size: \"md\",\n color: \"primary\",\n disabled: !isValid || !isDirty,\n onClick: handleSubmit(handleSave)\n }, React__default.createElement(T, {\n desc: COPY$d.COMBINE_BUTTON_LABEL\n })))));\n}\nconst COPY$c = defineMessages({\n HIDE_WORDS_HEADER: {\n id: 'HideWordsModal.HIDE_WORDS_HEADER',\n defaultMessage: 'Hide words',\n description: '[Type: label][Vis: high] - hide words modal header'\n },\n HIDE_WORDS_HELP_TEXT: {\n id: 'HideWordsModal.HIDE_WORDS_HELP_TEXT',\n defaultMessage: 'Select words to hide them from the word cloud.',\n description: '[Type: label][Vis: high] - hide words help text'\n },\n HIDE_WORDS_LIST_LABEL: {\n id: 'HideWordsModal.HIDE_WORDS_LIST_LABEL',\n defaultMessage: 'Select words to hide',\n description: '[Type: label][Vis: high] - label for hide words checkboxes'\n },\n CANCEL_BUTTON_LABEL: {\n id: 'HideWordsModal.CANCEL_BUTTON_LABEL',\n defaultMessage: 'Cancel',\n description: '[Type: label][Vis: high] - cancel button to dismiss the modal'\n },\n HIDE_BUTTON_LABEL: {\n id: 'HideWordsModal.HIDE_BUTTON_LABEL',\n defaultMessage: 'Hide',\n description: '[Type: label][Vis: high] - save button to hide words from word cloud'\n },\n HIDE_BUTTON_LABEL_ON_EDIT: {\n id: 'HideWordsModal.HIDE_BUTTON_LABEL_ON_EDIT',\n defaultMessage: 'Save',\n description: '[Type: label][Vis: high] - save button to hide words from word cloud'\n }\n});\nfunction HideWordsModal({\n words,\n showModal,\n hiddenWords,\n handleClose,\n handleUpdateHiddenWords\n}) {\n const {\n wordListSection,\n editWordsModalBody,\n helpPopout\n } = useStyles$d();\n const {\n control,\n handleSubmit,\n reset,\n formState: {\n isDirty\n }\n } = useForm({\n mode: 'onChange',\n defaultValues: {\n words: getInitialStateOfCustomizeWordsModal(words, hiddenWords)\n }\n });\n useEffect(() => {\n reset({\n words: getInitialStateOfCustomizeWordsModal(words, hiddenWords)\n });\n }, [words, hiddenWords, reset]);\n const onSubmit = formData => {\n handleClose();\n handleUpdateHiddenWords(formData);\n };\n return React__default.createElement(Modal, {\n \"data-testid\": \"hide-words-modal\",\n size: \"md\",\n show: showModal,\n dismissible: false\n }, React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"space-between\",\n \"data-testid\": \"hide-word-help-popout\"\n }, React__default.createElement(Modal.Header, {\n header: t(COPY$c.HIDE_WORDS_HEADER)\n }), React__default.createElement(\"span\", {\n className: helpPopout\n }, React__default.createElement(HelpPopout, {\n popoutHeader: t(COPY$c.HIDE_WORDS_HEADER),\n popoutContent: t(COPY$c.HIDE_WORDS_HELP_TEXT)\n }))), React__default.createElement(\"form\", {\n onSubmit: handleSubmit(onSubmit)\n }, React__default.createElement(Modal.Body, {\n className: editWordsModalBody\n }, React__default.createElement(ScrollableBox$1, {\n scrollable: true,\n height: 400,\n maxHeight: 400\n }, React__default.createElement(Typography, {\n variant: \"body\"\n }, React__default.createElement(T, {\n desc: COPY$c.HIDE_WORDS_LIST_LABEL\n })), React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: true,\n className: wordListSection\n }, React__default.createElement(WordList, {\n control: control,\n words: words\n })))), React__default.createElement(Modal.Footer, {\n align: \"right\"\n }, React__default.createElement(Button, {\n \"data-testid\": \"cancel-hide-btn\",\n size: \"md\",\n color: \"secondary\",\n variant: \"ghost\",\n onClick: handleClose\n }, React__default.createElement(T, {\n desc: COPY$c.CANCEL_BUTTON_LABEL\n })), React__default.createElement(Button, {\n disabled: !isDirty,\n buttonType: \"submit\",\n size: \"md\",\n color: \"primary\"\n }, hiddenWords.length > 0 ? React__default.createElement(T, {\n desc: COPY$c.HIDE_BUTTON_LABEL_ON_EDIT\n }) : React__default.createElement(T, {\n desc: COPY$c.HIDE_BUTTON_LABEL\n })))));\n}\nconst AccessLevelByComponentContext = createContext({\n show: () => true,\n hide: () => false,\n disable: () => false,\n getAccessLevel: () => 'show'\n});\nconst COPY$b = defineMessages({\n CHECKBOX_LABEL: {\n id: 'WordCloudCustomizationFooter.CHECKBOX_LABEL',\n defaultMessage: `Apply to all word clouds in the survey (Some may not change)`,\n description: '[Type: Button][Vis: med] - Label to apply customization to all word clouds'\n },\n APPLY: {\n id: 'WordCloudCustomizationFooter.APPLY',\n defaultMessage: `Apply`,\n description: '[Type: Button][Vis: med] - Button to apply wordcloud customization'\n },\n CANCEL: {\n id: 'WordCloudCustomizationFooter.CANCEL',\n defaultMessage: `Cancel`,\n description: '[Type: Button][Vis: med] - Button to cancel wordcloud customization'\n },\n NO_THANKS: {\n id: 'WordCloudCustomizationFooter.NO_THANKS',\n defaultMessage: `No thanks`,\n description: '[Type: Button][Vis: med] - Button to close wordcloud customization for users with limited access'\n },\n REQUEST: {\n id: 'WordCloudCustomizationFooter.REQUEST',\n defaultMessage: `Request feature`,\n description: '[Type: Button][Vis: med] - Button to request access to wordcloud customization'\n },\n UPGRADE: {\n id: 'WordCloudCustomizationFooter.UPGRADE',\n defaultMessage: `Upgrade`,\n description: '[Type: Button][Vis: med] - Button to upgrade package for basic user'\n }\n});\nfunction WordCloudListCustomizationFooter({\n onSaveClick,\n onCancelClick,\n redirectLink\n}) {\n const {\n footer\n } = useStyles$c();\n const {\n show\n } = useContext(AccessLevelByComponentContext);\n const handleSaveButtonClick = () => {\n onSaveClick(false);\n };\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(Keyline$1, null), React__default.createElement(\"div\", {\n className: footer\n }, React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(Box, {\n display: \"flex\"\n })), React__default.createElement(Box, {\n display: \"flex\"\n }, React__default.createElement(Button, {\n size: \"sm\",\n buttonType: \"button\",\n color: \"secondary\",\n onClick: onCancelClick\n }, t(show('wordcloud_customization') ? COPY$b.CANCEL : COPY$b.NO_THANKS)), show('wordcloud_customization') ? React__default.createElement(Box, {\n ml: 2\n }, React__default.createElement(Button, {\n size: \"sm\",\n buttonType: \"button\",\n color: \"primary\",\n onClick: handleSaveButtonClick\n }, t(COPY$b.APPLY))) : React__default.createElement(RequestAccessButton, {\n accessType: ACCESS_TYPE.UPGRADE,\n redirectLink: redirectLink\n })))), React__default.createElement(Keyline$1, null));\n}\nconst useStyles$b = createUseStyles(theme => ({\n overlayContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: theme.elevation.sky\n },\n overlayCta: {\n backgroundColor: theme.palette.background.dark,\n padding: theme.spacing[3],\n color: theme.palette.text.light\n },\n textContainer: {\n '& *': {\n marginBottom: theme.spacing[4]\n }\n }\n}));\nconst COPY$a = defineMessages({\n TITLE: {\n id: 'WordCloudPreviewOverlay.TITLE',\n defaultMessage: 'Try it out!',\n description: '[Type: Button][Vis: med] - Title for preview overlay'\n },\n SUBTITLE: {\n id: 'WordCloudPreviewOverlay.SUBTITLE',\n defaultMessage: 'Preview the features for customizing word clouds.',\n description: '[Type: Button][Vis: med] - Text displayed in preview overlay'\n },\n OK_BUTTON: {\n id: 'WordCloudPreviewOverlay.OK_BUTTON',\n defaultMessage: 'OK',\n description: '[Type: Button][Vis: med] - Button to close preview overlay'\n },\n CLOSE_ICON: {\n id: 'WordCloudPreviewOverlay.CLOSE_ICON',\n defaultMessage: 'Close button',\n description: '[Type: Button][Vis: med] - Icon shown in close button'\n }\n});\nfunction WordCloudPreviewOverlay({\n onCloseClick\n}) {\n const {\n overlayContainer,\n overlayCta,\n textContainer\n } = useStyles$b();\n const closeOverlay = () => {\n onCloseClick(false);\n };\n return React__default.createElement(Box, {\n className: overlayContainer,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, React__default.createElement(\"div\", {\n className: overlayCta\n }, React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"flex-end\"\n }, React__default.createElement(Button, {\n buttonType: \"button\",\n size: \"sm\",\n color: \"muted\",\n variant: \"text\",\n onClick: closeOverlay,\n label: t(COPY$a.CLOSE_ICON)\n }, React__default.createElement(IconX, {\n title: t(COPY$a.CLOSE_ICON)\n }))), React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n className: textContainer\n }, React__default.createElement(Typography, {\n color: \"upgrade\",\n variant: \"body\"\n }, React__default.createElement(T, {\n desc: COPY$a.TITLE\n })), React__default.createElement(Typography, {\n color: \"light\"\n }, React__default.createElement(T, {\n desc: COPY$a.SUBTITLE\n })), React__default.createElement(Button, {\n buttonType: \"button\",\n size: \"sm\",\n color: \"muted\",\n onClick: closeOverlay\n }, React__default.createElement(T, {\n desc: COPY$a.OK_BUTTON\n })))));\n}\nconst COPY$9 = defineMessages({\n LOADING: {\n id: 'WordCloudLoadingState.LOADING',\n defaultMessage: 'Loading word cloud...',\n description: '[Type: body][Vis: med] - indicated the view is loading'\n }\n});\nfunction WordCloudLoadingState() {\n return React__default.createElement(\"div\", null, React__default.createElement(Box, {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n mt: 5,\n mb: 5,\n py: 9\n }, React__default.createElement(ProgressCircle, {\n continuous: true,\n valueText: t(COPY$9.LOADING)\n }), React__default.createElement(Box, {\n mt: 3\n }, React__default.createElement(Typography, {\n variant: \"body\"\n }, React__default.createElement(T, {\n desc: COPY$9.LOADING\n })))));\n}\nconst COPY$8 = defineMessages({\n LIST_VIEW_BTN: {\n id: 'WordCloudShowCustomization.LIST_VIEW_BTN',\n defaultMessage: 'List View',\n description: '[Type: button][Vis: med] - set the view to list'\n },\n CLOUD_VIEW_BTN: {\n id: 'WordCloudShowCustomization.CLOUD_VIEW_BTN',\n defaultMessage: 'Cloud View',\n description: '[Type: button][Vis: med] - set the view to cloud'\n }\n});\nfunction WordCloudShowCustomization({\n currentView,\n setCurrentView,\n wordCloudStatus,\n setShowCustomization\n}) {\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-end\",\n py: 3\n }, React__default.createElement(ButtonGroup, null, React__default.createElement(Button, {\n variant: currentView === 'cloud' ? 'solid' : 'ghost',\n size: \"sm\",\n color: \"secondary\",\n onClick: () => setCurrentView('cloud')\n }, React__default.createElement(T, {\n desc: COPY$8.CLOUD_VIEW_BTN\n })), React__default.createElement(Button, {\n size: \"sm\",\n variant: currentView === 'list' ? 'solid' : 'ghost',\n color: \"secondary\",\n onClick: () => setCurrentView('list')\n }, React__default.createElement(T, {\n desc: COPY$8.LIST_VIEW_BTN\n })))), React__default.createElement(Keyline$1, null), wordCloudStatus === 'success' && currentView === 'cloud' && React__default.createElement(WordCloudCustomizationButton, {\n setShowCustomization: setShowCustomization\n }));\n}\nconst useCustomizationProps = wordCloudCustomizationProps => {\n const [customizationProps, setCustomizationProps] = useState(wordCloudCustomizationProps);\n const prevCustomizationProps = useRef(wordCloudCustomizationProps);\n useEffect(() => {\n prevCustomizationProps.current = customizationProps;\n }, [customizationProps]);\n const updateCustomizationProps = updatedCustomizationProps => {\n setCustomizationProps(previousCustomizationProps => {\n const updatedProps = {\n ...previousCustomizationProps,\n ...updatedCustomizationProps\n };\n return updatedProps;\n });\n };\n return [customizationProps, prevCustomizationProps.current, updateCustomizationProps];\n};\nconst useWordCloudPanelState = initState => {\n const [state, setState] = useState(() => initState);\n const setCurrentView = newCurrentView => {\n setState(prevState => {\n return {\n ...prevState,\n currentView: newCurrentView\n };\n });\n };\n const setShowHideCustomization = newShowCustomization => {\n setState(prevState => {\n return {\n ...prevState,\n showCustomization: newShowCustomization\n };\n });\n };\n const setShowHideWordsModal = newShowHideWordsModal => {\n setState(prevState => {\n return {\n ...prevState,\n showHideWordsModal: newShowHideWordsModal\n };\n });\n };\n const setShowHideCombinedWordsModal = newShowCombinedWordsModal => {\n setState(prevState => {\n return {\n ...prevState,\n showCombinedWordsModal: newShowCombinedWordsModal\n };\n });\n };\n const setCombineModalTriggerWord = newCombineModalTriggerWord => {\n setState(prevState => {\n return {\n ...prevState,\n combineModalTriggerWord: newCombineModalTriggerWord\n };\n });\n };\n const setShowHideWordCloudPreviewOverlay = setShowWordCloudPreviewOverlay => {\n setState(prevState => {\n return {\n ...prevState,\n showWordCloudPreviewOverlay: setShowWordCloudPreviewOverlay\n };\n });\n };\n return {\n state,\n setCurrentView,\n setShowHideCustomization,\n setShowHideWordsModal,\n setShowHideCombinedWordsModal,\n setCombineModalTriggerWord,\n setShowHideWordCloudPreviewOverlay\n };\n};\nconst initState = (initialView, accessType) => {\n return {\n currentView: initialView,\n showCustomization: false,\n showHideWordsModal: false,\n showCombinedWordsModal: false,\n combineModalTriggerWord: undefined,\n showWordCloudPreviewOverlay: accessType !== ACCESS_TYPE.FULL\n };\n};\nfunction WordCloudPanel({\n initialView = 'cloud',\n words = [],\n wordCloudStatus = 'inProgress',\n wordCloudCustomizationProps,\n accessType,\n redirectLink,\n onSaveWordCloudCustomization,\n onWordClick\n}) {\n const [minRange, maxRange] = getMinAndMaxRange(words);\n const {\n state,\n setCurrentView,\n setShowHideCustomization,\n setShowHideWordsModal,\n setShowHideCombinedWordsModal,\n setCombineModalTriggerWord,\n setShowHideWordCloudPreviewOverlay\n } = useWordCloudPanelState(initState(initialView, accessType));\n const [customizationProps, prevCustomizationProps, updateCustomizationProps] = useCustomizationProps(wordCloudCustomizationProps);\n const {\n minFrequency,\n hiddenWords,\n combinedWords\n } = customizationProps;\n const formattedWords = useMemo(() => formatWords(words, hiddenWords, combinedWords), [combinedWords, hiddenWords, words]);\n const filteredWords = useMemo(() => filterWordsByFrequency(formattedWords, minFrequency), [formattedWords, minFrequency]);\n const onSelectedColorPaletteChange = selectedColorPaletteId => {\n updateCustomizationProps({\n selectedColorPaletteId,\n isMultiColorSelected: true\n });\n };\n const onFontChange = e => {\n var _e$target$attributes$;\n const value = (_e$target$attributes$ = e.target.attributes.getNamedItem('data-value')) === null || _e$target$attributes$ === void 0 ? void 0 : _e$target$attributes$.value;\n updateCustomizationProps({\n fontFamily: value\n });\n };\n const toggleMultiColorSelector = () => {\n updateCustomizationProps({\n isMultiColorSelected: !customizationProps.isMultiColorSelected\n });\n };\n const onSliderChange = debounce(evt => {\n const [min] = evt.values;\n updateCustomizationProps({\n minFrequency: min\n });\n }, 400);\n const onFixedColorChange = debounce(fixedColor => {\n updateCustomizationProps({\n fixedColor,\n isMultiColorSelected: false\n });\n }, 400);\n const onSaveWordCloudCustomizationClick = applyToAll => {\n onSaveWordCloudCustomization(customizationProps, applyToAll);\n setShowHideCustomization(false);\n };\n const onCancelWordCloudCustomizationClick = () => {\n setShowHideCustomization(false);\n updateCustomizationProps(prevCustomizationProps);\n };\n const onHideFromWordCloudLinkClick = triggerWord => {\n const updateHiddenWords = [...customizationProps.hiddenWords, triggerWord];\n updateCustomizationProps({\n hiddenWords: updateHiddenWords\n });\n onSaveWordCloudCustomization({\n ...customizationProps,\n hiddenWords: updateHiddenWords\n }, true);\n };\n const onCombineWord = formData => {\n if (formData.title) {\n const existingCombinedWord = customizationProps.combinedWords.filter(obj => obj.title !== formData.title);\n const updateCombinedWords = [...existingCombinedWord, {\n title: formData.title,\n words: getSelectedWordsForCustomization(formData)\n }];\n updateCustomizationProps({\n combinedWords: updateCombinedWords\n });\n onSaveWordCloudCustomization({\n ...customizationProps,\n combinedWords: updateCombinedWords\n }, true);\n }\n setCombineModalTriggerWord(undefined);\n };\n const handleSplitCombinedWords = word => {\n const updateCombinedWords = customizationProps.combinedWords.filter(w => {\n var _word$combinedWord;\n return w.title !== ((_word$combinedWord = word.combinedWord) === null || _word$combinedWord === void 0 ? void 0 : _word$combinedWord.title);\n });\n updateCustomizationProps({\n combinedWords: updateCombinedWords\n });\n onSaveWordCloudCustomization({\n ...customizationProps,\n combinedWords: updateCombinedWords\n }, true);\n };\n const handleEditCombinedWords = word => {\n setShowHideCombinedWordsModal(true);\n setCombineModalTriggerWord(word);\n };\n const handleCombineModalClose = () => {\n setShowHideCombinedWordsModal(false);\n setCombineModalTriggerWord(undefined);\n };\n const handleUpdateHiddenWords = formData => {\n const updateHiddenWords = getSelectedWordsForCustomization(formData);\n updateCustomizationProps({\n hiddenWords: updateHiddenWords\n });\n onSaveWordCloudCustomization({\n ...customizationProps,\n hiddenWords: updateHiddenWords\n }, true);\n };\n const {\n wordCloudBlur,\n wordCloudContainer\n } = useStyles$d();\n return React__default.createElement(Box, {\n color: \"light\"\n }, state.showCustomization && React__default.createElement(Box, null, React__default.createElement(WordCloudCustomization, {\n ...customizationProps,\n footerComponent: React__default.createElement(WordCloudListCustomizationFooter, {\n onSaveClick: onSaveWordCloudCustomizationClick,\n onCancelClick: onCancelWordCloudCustomizationClick,\n redirectLink: redirectLink\n }),\n isBasicUser: accessType !== ACCESS_TYPE.FULL,\n minRange: minRange,\n maxRange: maxRange,\n wordCount: filteredWords.length,\n onSliderChange: onSliderChange,\n onSaveMultiColorPaletteClick: onSelectedColorPaletteChange,\n onFontChange: onFontChange,\n onFixedColorChange: onFixedColorChange,\n toggleMultiColorSelector: toggleMultiColorSelector\n })), !state.showCustomization && React__default.createElement(WordCloudShowCustomization, {\n currentView: state.currentView,\n setCurrentView: setView => setCurrentView(setView),\n setShowCustomization: () => setShowHideCustomization(true),\n wordCloudStatus: wordCloudStatus\n }), wordCloudStatus === 'inProgress' && React__default.createElement(WordCloudLoadingState, null), wordCloudStatus === 'success' && React__default.createElement(\"div\", {\n className: wordCloudContainer\n }, state.showWordCloudPreviewOverlay && React__default.createElement(WordCloudPreviewOverlay, {\n onCloseClick: () => setShowHideWordCloudPreviewOverlay(false)\n }), React__default.createElement(Box, {\n mb: 3,\n className: state.showWordCloudPreviewOverlay ? wordCloudBlur : ''\n }, React__default.createElement(WordCloudViewSelector, {\n ...customizationProps,\n currentView: state.currentView,\n words: filteredWords,\n fontFamily: getFontStyle(customizationProps.fontFamily),\n onWordClick: onWordClick,\n onCombineWordLinkClick: handleEditCombinedWords,\n onHideFromWordCloudLinkClick: onHideFromWordCloudLinkClick,\n onSplitCombinedWords: handleSplitCombinedWords,\n onEditCombinedWords: handleEditCombinedWords\n }))), React__default.createElement(Keyline$1, null), React__default.createElement(WordCloudListFooter, {\n accessType: accessType,\n redirectLink: redirectLink,\n status: wordCloudStatus,\n wordCount: filteredWords.length,\n combinedWordsCount: combinedWords.length,\n hiddenWordsCount: hiddenWords.length,\n onCombineWordLinkClick: handleEditCombinedWords,\n onHiddenWordsLinkClick: () => setShowHideWordsModal(true)\n }), state.showCombinedWordsModal && React__default.createElement(CombineWordsModal, {\n words: filteredWords,\n showModal: state.showCombinedWordsModal,\n triggerWord: state.combineModalTriggerWord,\n onCombine: onCombineWord,\n onClose: handleCombineModalClose\n }), state.showHideWordsModal && React__default.createElement(HideWordsModal, {\n words: words,\n showModal: state.showHideWordsModal,\n hiddenWords: hiddenWords,\n handleClose: () => setShowHideWordsModal(false),\n handleUpdateHiddenWords: handleUpdateHiddenWords\n }));\n}\nconst useStyles$a = createUseStyles({\n container: {\n border: '1px solid #D0D0D0',\n boxShadow: '0px 0px 15px 1px rgba(64, 64, 64, 0.1)',\n borderRadius: 8\n },\n contentWrapper: {\n flex: '1 1 0%',\n overflow: 'hidden',\n position: 'relative'\n }\n});\nfunction SolutionsCard({\n children\n}) {\n const {\n contentWrapper,\n container\n } = useStyles$a();\n return React__default.createElement(\"div\", {\n className: container\n }, React__default.createElement(\"div\", {\n className: contentWrapper\n }, children));\n}\nconst useStyles$9 = createUseStyles(theme => {\n return {\n container: {\n border: theme.border.main,\n boxShadow: `0 0 15px 1px rgba(64, 64, 64, 0.1)`,\n borderRadius: 8\n },\n questionViewHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n minHeight: '71px',\n padding: [theme.spacing[6], theme.spacing[6], theme.spacing[2], theme.spacing[6]] // padding: '32px 32px 8px 32px',\n },\n\n questionNum: {\n margin: theme.spacing[2]\n },\n questionTitle: {\n padding: [0, theme.spacing[6], theme.spacing[6], theme.spacing[6]] // padding: '0px 32px 32px 32px',\n },\n\n cardWrapper: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n width: '100%'\n },\n contentWrapper: {\n padding: [0, theme.spacing[6], theme.spacing[6], theme.spacing[6]],\n flex: '1 1 0%',\n overflow: 'hidden',\n position: 'relative'\n }\n };\n});\nconst COPY$7 = defineMessages({\n QUESTION_NUMBER: {\n id: 'SolutionsCardLayoutTemplate.QUESTION_NUMBER',\n defaultMessage: 'Q{questionNumber} {questionHeader}',\n description: '[Type: label][Vis: high] - text to indicate question number'\n },\n QUESTION_TITLE: {\n id: 'SolutionsCardLayoutTemplate.QUESTION_TITLE',\n defaultMessage: '{title}',\n description: '[Type: label][Vis: medium] - text to indicate question title'\n }\n});\nfunction SolutionsCardLayoutTemplate({\n questionNumber,\n questionHeader,\n children,\n title\n}) {\n const {\n contentWrapper,\n questionViewHeader,\n questionTitle\n } = useStyles$9();\n return React__default.createElement(SolutionsCard, null, React__default.createElement(\"div\", {\n className: questionViewHeader\n }, React__default.createElement(Typography, {\n variant: \"cardTitle\",\n color: \"dark\",\n component: \"strong\"\n }, React__default.createElement(T, {\n desc: COPY$7.QUESTION_NUMBER,\n values: {\n questionNumber,\n questionHeader\n }\n }))), React__default.createElement(\"div\", {\n className: questionTitle,\n translate: \"no\"\n }, React__default.createElement(Typography, {\n variant: \"bodySm\"\n }, React__default.createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: sanitizeString(title || '', {\n ALLOWED_TAGS: ['strong']\n })\n }\n }))), React__default.createElement(\"div\", {\n className: contentWrapper\n }, children));\n}\nconst useStyles$8 = createUseStyles({\n container: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%'\n }\n});\nconst COPY$6 = {\n ICON_LABEL: 'No matching responses.'\n};\nfunction ResponseError() {\n const {\n container\n } = useStyles$8();\n return React__default.createElement(\"div\", {\n className: container\n }, React__default.createElement(Typography, {\n align: \"center\",\n variant: \"bodySm\"\n }, React__default.createElement(IconWarning, {\n size: \"sm\",\n role: \"presentation\",\n title: \"\"\n }), \" \", COPY$6.ICON_LABEL));\n}\nconst useStyles$7 = createUseStyles(theme => ({\n /** for some reason, @wds/box doesn't play nice */\n box: {\n width: '100%',\n height: '100%',\n padding: [0, theme.spacing[3]]\n }\n}));\nconst wordCloudCustomizationProps = {\n colorPaletteOptions: [{\n groupId: 1,\n palette: ['#6bc8cd', '#56b0cd', '#5c96c4', '#6e7bb0', '#7d5e90'],\n scales: ['#6bc8cd', '#5cbbce', '#55adcd', '#589ec8', '#618fc0', '#6c7fb4', '#766ea4', '#7d5e90']\n }, {\n groupId: 2,\n palette: ['#ff8b4f', '#f3716e', '#d66486', '#ac6093', '#7d5e90'],\n scales: ['#ff8b4f', '#fb7b61', '#f06f72', '#e06780', '#cb638b', '#b26192', '#986093', '#7d5e90']\n }, {\n groupId: 3,\n palette: ['#6bc8dc', '#54b8e2', '#7ba0e5', '#b280ca', '#d25f90'],\n scales: ['#6bc8dc', '#57coda', '#56b5e4', '#6ca7e7', '#8c97e1', '#ab84d0', '#c471b4', '#d25f90']\n }],\n selectedColorPaletteId: 1,\n fontFamily: 'National 2',\n fixedColor: DEFAULT_COLOR,\n isMultiColorSelected: false,\n minRange: -1,\n maxRange: 1000,\n minFrequency: -1,\n wordCount: 5,\n onSaveMultiColorPaletteClick: EmptyFn,\n onSliderChange: EmptyFn,\n toggleMultiColorSelector: EmptyFn,\n onFixedColorChange: EmptyFn,\n onFontChange: EmptyFn,\n combinedWords: [],\n hiddenWords: []\n};\nfunction SolutionsOpenEndedItem({\n words,\n onSearch,\n ...props\n}) {\n const onWordClick = useCallback(word => {\n // setSelectedTab('responses');\n if (word.combinedWord) {\n // This is to prepend and append `\"` to the string, the search phrase `\"heard new file\" OR \"new File Upload\"` and `heard new file OR new file upload` yield different result\n const combinedSearchPhrase = word.combinedWord.words.map(combinedWord => {\n return `\"${combinedWord}\"`;\n }).join(' OR ');\n onSearch(combinedSearchPhrase);\n return;\n }\n onSearch(`${word.word}`);\n }, [onSearch]);\n const {\n box\n } = useStyles$7();\n const hasWords = words && words.length > 0;\n return React__default.createElement(SolutionsCardLayoutTemplate, {\n ...props\n }, React__default.createElement(\"div\", {\n className: box\n }, hasWords ? React__default.createElement(WordCloudPanel, {\n accessType: ACCESS_TYPE.FULL,\n redirectLink: \"\",\n words: words,\n wordCloudStatus: \"success\",\n wordCloudCustomizationProps: wordCloudCustomizationProps,\n onSaveWordCloudCustomization: EmptyFn,\n onWordClick: onWordClick\n }) : React__default.createElement(ResponseError, null)));\n}\nvar SolutionsOpenEndedItem$1 = withErrorBoundary(SolutionsOpenEndedItem);\n\n/** checks for `{name: string, data: any}[]` */\nconst isTwoDimensionalChartData = a => Array.isArray(a) && a.every(i => typeof i === 'object' && 'name' in i && 'data' in i && i.data.every(d => typeof d === 'number' || typeof d === 'object'));\n/* checks for `{value: any}` */\nconst isScalarChartData = a => typeof a === 'object' && a !== null && 'value' in a;\n// Chart Type Guards\nconst isBarChartData = a => {\n return Array.isArray(a) && a.every(i => typeof i === 'number') || isTwoDimensionalChartData(a);\n};\nconst isStackedBarChartData = a => isTwoDimensionalChartData(a);\nconst isLineChartData = a => isTwoDimensionalChartData(a);\nconst isAreaChartData = a => isTwoDimensionalChartData(a);\nconst isPieOrDonutChartData = a => {\n return Array.isArray(a) && a.every(i => 'name' in i && 'value' in i && 'numberOfResponses' in i);\n};\nconst isNpsGaugeChartData = a => isScalarChartData(a);\nconst isRatingChartData = a => isScalarChartData(a);\nconst isVanWestendorpChartData = a => {\n return typeof a === 'object' && a !== null && 'series' in a && 'metadata' in a;\n};\nconst isChartData = a => Array.isArray(a) && a.length > 0 || isRatingChartData(a) || isNpsGaugeChartData(a);\nconst splitLabel = str => {\n if (typeof str === 'string' && str.length < 13) {\n return 13;\n }\n for (let i = 13; i >= 0; i -= 1) {\n if (typeof str === 'string' && str.charAt(i) === ' ') {\n return i;\n }\n }\n return 11;\n};\nconst formatLabelVerticalAxis = ({\n value\n}) => {\n const newValue = value.toString();\n const splitPoint = splitLabel(newValue);\n const strTop = newValue.slice(0, splitPoint);\n const strBottom = newValue.slice(splitPoint, newValue.length);\n return `
\n
\n${strTop}\n
\n
\n${strBottom}\n
\n
`;\n};\nfunction formatLabelHorizontalAxis(label) {\n const labelClipped = label.substring(0, 80);\n return label.length > 76 ? `${labelClipped}...` : label;\n}\nfunction getWDSIconFromChartIcon(chartIcon) {\n const iconMap = {\n STAR: IconStarFilled,\n SMILEY: IconHappyFilled,\n HEART: IconHeartFilled,\n THUMB: IconThumbsUpFilled\n };\n if (typeof chartIcon === 'string') {\n return iconMap[chartIcon];\n }\n return chartIcon;\n}\nconst defaultChartColors = ['#00BF6F', '#507CB6', '#F9BE00', '#6BC8CD', '#FF8B4F', '#7D5E90', '#D25F90', '#C7B879', '#DB4D5C', '#768086'];\nconst themedOptions = theme => ({\n colors: defaultChartColors,\n chart: {\n spacingRight: 0,\n style: {\n fontFamily: theme.type.fontFamily.base\n },\n plotBackgroundColor: theme.palette.background.light\n },\n title: {\n style: {\n fontFamily: theme.type.fontFamily.base,\n fontWeight: theme.type.fontWeight.medium.toString(),\n fontSize: theme.type.fontSize.cardTitle.toString(),\n color: theme.palette.text.dark\n },\n text: '' // remove the chart title by default\n },\n\n xAxis: {\n title: {\n text: null // use \"null\" to hide x-axis title\n },\n\n labels: {\n style: {\n fontFamily: theme.type.fontFamily.base,\n fontWeight: theme.type.fontWeight.regular.toString(),\n color: theme.palette.text.dark,\n maxWidth: 10\n },\n overflow: 'justify',\n useHTML: true,\n formatter() {\n const label = this.axis.defaultLabelFormatter.call(this);\n // TODO: revisit this after dropping IE11 support\n return formatLabelHorizontalAxis(label);\n }\n },\n lineColor: theme.palette.border.main,\n tickLength: 0\n },\n yAxis: {\n // Do not change to an array. Keep as single object. See BarChart.tsx type assertion for YAxisOptions.\n labels: {\n overflow: 'justify',\n style: {\n fontFamily: theme.type.fontFamily.base,\n paddingTop: theme.spacing[3],\n fontWeight: theme.type.fontWeight.regular.toString(),\n color: theme.palette.text.dark\n },\n useHTML: true\n },\n title: {\n text: null\n },\n offset: 0,\n lineColor: theme.palette.border.main,\n lineWidth: 1,\n gridLineColor: theme.palette.border.muted\n },\n plotOptions: {\n series: {\n animation: false,\n enableMouseTracking: false,\n dataLabels: {\n style: {\n fontWeight: theme.type.fontWeight.medium.toString(),\n fontSize: theme.type.fontSize.bodySm.toString(),\n color: theme.palette.text.dark,\n textShadow: `-1px -1px 0 ${theme.palette.text.light}, 1px -1px 0 ${theme.palette.text.light}, -1px 1px 0 ${theme.palette.text.light}, 1px 1px 0 ${theme.palette.text.light}`\n },\n useHTML: true\n },\n point: {\n events: {\n legendItemClick() {\n return false;\n }\n }\n },\n events: {\n legendItemClick() {\n return false; // disables legend item toggling\n }\n },\n\n states: {\n hover: {\n enabled: false\n },\n inactive: {\n enabled: false\n }\n }\n }\n },\n legend: {\n labelFormatter() {\n return `
${this.name}
`;\n },\n enabled: false,\n floating: false,\n borderWidth: 0,\n symbolRadius: 2,\n x: 0,\n y: 5,\n useHTML: true,\n itemDistance: 20,\n itemStyle: {\n color: theme.palette.text.dark,\n fontFamily: theme.type.fontFamily.base,\n fontSize: theme.type.fontSize.bodySm.toString(),\n fontWeight: theme.type.fontWeight.light.toString(),\n lineHeight: '20px'\n },\n itemHoverStyle: {\n color: theme.palette.text.dark\n }\n },\n tooltip: {\n animation: false,\n hideDelay: 100,\n backgroundColor: theme.palette.background.dark,\n borderWidth: 0,\n shadow: false,\n headerFormat: '',\n followPointer: true,\n style: {\n fontFamily: theme.type.fontFamily.base,\n fontSize: theme.type.fontSize.bodySm.toString(),\n color: theme.palette.text.dark\n },\n useHTML: true\n },\n credits: {\n enabled: false\n },\n accessibility: {\n enabled: true\n }\n});\nconst useDefaultOptions = () => {\n const theme = useTheme();\n return themedOptions(theme);\n};\nHighchartsAccessibility(Highcharts);\n// support additional HTML/SVG attributes\n(_Highcharts$AST = Highcharts.AST) === null || _Highcharts$AST === void 0 ? void 0 : _Highcharts$AST.allowedAttributes.push('align');\n(_Highcharts$AST2 = Highcharts.AST) === null || _Highcharts$AST2 === void 0 ? void 0 : _Highcharts$AST2.allowedAttributes.push('title');\nconst useStyles$6 = createUseStyles({\n container: {\n '& .highcharts-container': {\n direction: 'inherit'\n }\n }\n});\n/** Wrapper around `HighchartsReact` with default values - base of all other charts */\nfunction BaseChart({\n options\n}) {\n const base = useDefaultOptions();\n const {\n container\n } = useStyles$6();\n return React__default.createElement(HighchartsReact, {\n containerProps: {\n style: {\n width: '100%',\n height: '100%'\n },\n className: container\n },\n highcharts: Highcharts,\n options: merge(base, options)\n });\n}\nconst getBarChartOptions = (data, options, isPercentage = false, decimalPlaces = 0) => {\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n bar: {\n colorByPoint: true,\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n inside: false\n }\n }\n },\n xAxis: {\n labels: {\n formatter: formatLabelVerticalAxis\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series: isTwoDimensionalChartData(data) ? data.map(d => ({\n ...d,\n type: 'bar'\n })) : [{\n data,\n type: 'bar'\n }]\n });\n};\nfunction BarChart({\n data,\n options,\n isPercentage,\n decimalPlaces\n}) {\n const barChartOptions = getBarChartOptions(data, options, isPercentage, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: barChartOptions\n });\n}\nconst getColumnChartOptions = (data, options, isPercentage = false, decimalPlaces = 0) => {\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n column: {\n colorByPoint: true,\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n inside: false\n }\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series: isTwoDimensionalChartData(data) ? data.map(d => ({\n ...d,\n type: 'column'\n })) : [{\n data,\n type: 'column'\n }]\n });\n};\nfunction ColumnChart({\n data,\n options,\n isPercentage,\n decimalPlaces\n}) {\n const columnChartOptions = getColumnChartOptions(data, options, isPercentage, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: columnChartOptions\n });\n}\nfunction getPieChartOptions(data, options) {\n const pieChartData = {\n data: data.map(({\n value,\n ...dataOptions\n }) => {\n const chartData = typeof value === 'number' ? {\n y: value\n } : value;\n return {\n ...chartData,\n ...dataOptions\n };\n }),\n type: 'pie'\n };\n return merge(options,\n // not overwritable\n {\n series: [pieChartData],\n chart: {\n type: 'pie'\n }\n });\n}\nfunction PieChart({\n data,\n options\n}) {\n const pieChartOptions = getPieChartOptions(data, options);\n return React__default.createElement(BaseChart, {\n options: pieChartOptions\n });\n}\n\n/** Build Donut specific options - rest is done in PieChart */\nconst getDonutChartOptions = options => merge(\n// overwritable defaults\n{\n plotOptions: {\n pie: {\n innerSize: '40%'\n }\n }\n}, options);\n/** Donut chart is a special type of PieChart (and uses it internally) */\nfunction DonutChart({\n data,\n options\n}) {\n const donutChartOptions = getDonutChartOptions(options);\n return React__default.createElement(PieChart, {\n data: data,\n options: donutChartOptions\n });\n}\nconst getStackedBarChartOptions = (data, options, isPercentage = false, showLabels = false, decimalPlaces = 0) => {\n const series = data.map(stack => ({\n ...stack,\n type: 'bar'\n }));\n return merge(\n // overwritable defaults\n {\n legend: {\n enabled: true,\n reversed: true // reverse series labels have have same order as `data` (Highcharts flips them) ref: https://www.highcharts.com/demo/bar-stacked\n },\n\n plotOptions: {\n bar: {\n stacking: isPercentage ? 'percentage' : 'normal',\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n },\n\n groupPadding: 0,\n maxPointWidth: 100 // TODO: refine this\n }\n },\n\n xAxis: {\n labels: {\n enabled: showLabels\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'bar'\n }\n });\n};\nfunction StackedBarChart({\n data,\n options,\n isPercentage,\n showLabels,\n decimalPlaces\n}) {\n const barChartOptions = getStackedBarChartOptions(data.slice().reverse(),\n // reverse series data have have same order as data inserted (Highcharts flips them)\n options, isPercentage, showLabels, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: barChartOptions\n });\n}\nconst getStackedColumnChartOptions = (data, options, isPercentage = false, showLabels = false, decimalPlaces = 0) => {\n const series = data.map(stack => ({\n ...stack,\n type: 'column'\n }));\n return merge(\n // overwritable defaults\n {\n legend: {\n enabled: true,\n reversed: true // reverse series labels have have same order as `data` (Highcharts flips them) ref: https://www.highcharts.com/demo/bar-stacked\n },\n\n plotOptions: {\n column: {\n stacking: isPercentage ? 'percentage' : 'normal',\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n },\n\n groupPadding: 0,\n maxPointWidth: 100 // TODO: refine this\n }\n },\n\n xAxis: {\n labels: {\n enabled: showLabels\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'column'\n }\n });\n};\nfunction StackedColumnChart({\n data,\n options,\n isPercentage,\n showLabels,\n decimalPlaces\n}) {\n const columnChartOptions = getStackedColumnChartOptions(data.slice().reverse(),\n // reverse series data have have same order as data inserted (Highcharts flips them)\n options, isPercentage, showLabels, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: columnChartOptions\n });\n}\nconst getLineChartOptions = (data, options, isPercentage = false, decimalPlaces = 0) => {\n const series = data.map(el => ({\n ...el,\n type: 'line'\n }));\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n line: {\n dataLabels: {\n enabled: true,\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n }\n }\n },\n\n tooltip: {\n // TODO: add show tooltip\n enabled: false\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'line'\n }\n });\n};\nfunction LineChart({\n data,\n options,\n isPercentage,\n decimalPlaces\n}) {\n const lineChartOptions = getLineChartOptions(data, options, isPercentage, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: lineChartOptions\n });\n}\nconst getAreaChartOptions = (data, options, isPercentage = false, isStackable = false, decimalPlaces = 0) => {\n const series = data.map(el => ({\n ...el,\n type: 'area'\n }));\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n area: {\n dataLabels: {\n enabled: true,\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n },\n\n stacking: isStackable && isPercentage ? 'percent' : 'normal'\n }\n },\n tooltip: {\n // TODO: add show tooltip\n enabled: false\n },\n yAxis: {\n labels: {\n format: isPercentage ? '{value}%' : '{value}'\n },\n reversedStacks: false\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'area'\n }\n });\n};\nfunction AreaChart({\n data,\n options,\n isPercentage,\n isStackable,\n decimalPlaces\n}) {\n const areaChartOptions = getAreaChartOptions(data, options, isPercentage, isStackable, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: areaChartOptions\n });\n}\nconst useStyles$5 = createUseStyles(theme => {\n return {\n cellPaddingBottom: {\n paddingBottom: theme.spacing[2]\n },\n cellPaddingTop: {\n paddingTop: theme.spacing[2]\n },\n divider: {\n height: '0px',\n borderBottom: theme.border.main\n },\n table: {\n width: '275px',\n color: theme.palette.text.dark,\n fontSize: theme.type.fontSize.bodySm\n },\n tablePadding: {\n paddingTop: theme.spacing[5]\n },\n title: {\n fontWeight: theme.type.fontWeight.medium\n },\n numeric: {\n textAlign: 'right'\n }\n };\n});\n\n/**\n * @file Provides the helper functions & types for the vanwestendorp chart.\n */\nconst COPY$5 = defineMessages({\n OPP_TITLE: {\n id: 'helper.OPP_TITLE',\n defaultMessage: 'OPP',\n description: '[Type: Label][Vis: med] - OPP title'\n },\n OPP_FULL_FORM: {\n id: 'helper.OPP_DESCRIPTION',\n defaultMessage: 'Optimal price point',\n description: '[Type: Label][Vis: med] - OPP'\n },\n PMC_TITLE: {\n id: 'helper.PMC_TITLE',\n defaultMessage: 'PMC',\n description: '[Type: Label][Vis: med] - PMC title'\n },\n PMC_FULL_FORM: {\n id: 'helper.POINT_OF_MARGINAL_CHEAPNESS',\n defaultMessage: 'Point of marginal cheapness',\n description: '[Type: Label][Vis: med] - Point of marginal cheapness'\n },\n PME_TITLE: {\n id: 'helper.PME_TITLE',\n defaultMessage: 'PME',\n description: '[Type: Label][Vis: med] - PME title'\n },\n PME_FULL_FORM: {\n id: 'helper.POINT_OF_MARGINAL_EXPENSIVENESS',\n defaultMessage: 'Point of marginal expensiveness',\n description: '[Type: Label][Vis: med] - Point of marginal expensiveness'\n },\n IPP_TITLE: {\n id: 'helper.IPP_TITLE',\n defaultMessage: 'IPP',\n description: '[Type: Label][Vis: med] - IPP title'\n },\n IPP_FULL_FORM: {\n id: 'helper.INDIFFERENCE_PRICE_POINT',\n defaultMessage: 'Indifference price point',\n description: '[Type: Label][Vis: med] - Indifference Price Point'\n },\n OPP: {\n id: 'helper.OPP',\n defaultMessage: 'Optimal price point (OPP)',\n description: '[Type: Label][Vis: med] - OPP'\n },\n PMC: {\n id: 'helper.PMC',\n defaultMessage: 'Point of marginal cheapness (PMC)',\n description: '[Type: Label][Vis: med] - PMC'\n },\n PME: {\n id: 'helper.PME',\n defaultMessage: 'Point of marginal expensiveness (PME)',\n description: '[Type: Label][Vis: med] - PME'\n },\n IPP: {\n id: 'helper.IPP',\n defaultMessage: 'Indifference price point (IPP)',\n description: '[Type: Label][Vis: med] - IPP'\n }\n});\n// Provides data to different highChartSeries, tooltip key is used in datatable & series tooltip\nconst getHighchartSeriesData = data => {\n const {\n upperBound,\n indifferent,\n optimal,\n lowerBound\n } = data.metadata;\n const acceptableRange = [[lowerBound.price, 0.0], [lowerBound.price, 100.0], [upperBound.price, 100.0], [upperBound.price, 0]];\n const PME = {\n point: t(COPY$5.PME),\n title: t(COPY$5.PME_TITLE),\n description: t(COPY$5.PME_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(upperBound.price)}`,\n percentage: `${upperBound.percentage.toFixed(2)}%`,\n response: `${upperBound.responses.toFixed(2)}`\n };\n const IPP = {\n point: t(COPY$5.IPP),\n title: t(COPY$5.IPP_TITLE),\n description: t(COPY$5.IPP_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(indifferent.price)}`,\n percentage: `${indifferent.percentage.toFixed(2)}%`,\n response: `${indifferent.responses.toFixed(2)}`\n };\n const OPP = {\n point: t(COPY$5.OPP),\n title: t(COPY$5.OPP_TITLE),\n description: t(COPY$5.OPP_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(optimal.price)}`,\n percentage: `${optimal.percentage.toFixed(2)}%`,\n response: `${optimal.responses.toFixed(2)}`\n };\n const PMC = {\n point: t(COPY$5.PMC),\n title: t(COPY$5.PMC_TITLE),\n description: t(COPY$5.PMC_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(lowerBound.price)}`,\n percentage: `${lowerBound.percentage.toFixed(2)}%`,\n response: `${lowerBound.responses.toFixed(2)}`\n };\n const defaultPoint = [0, 0];\n const pointsOfInterest = [{\n tooltip: OPP,\n point: [optimal.price, parseFloat(optimal.percentage.toFixed(2))] ?? defaultPoint\n }, {\n tooltip: PMC,\n point: [lowerBound.price, parseFloat(lowerBound.percentage.toFixed(2))] ?? defaultPoint\n }, {\n tooltip: PME,\n point: [upperBound.price, parseFloat(upperBound.percentage.toFixed(2))] ?? defaultPoint\n }, {\n tooltip: IPP,\n point: [indifferent.price, parseFloat(indifferent.percentage.toFixed(2))] ?? defaultPoint\n }];\n return {\n pointsOfInterest,\n acceptableRange\n };\n};\n// Transform data into the highchart series format.\nconst getHighchartSeries = (data, pointsOfInterest, acceptableRange) => {\n const intersections = map(pointsOfInterest, 'point');\n const series = data.series.map(el => ({\n ...el\n }));\n series.push({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n type: 'area',\n name: 'Acceptable price range',\n marker: {\n enabled: false\n },\n color: '#D2D2D2',\n opacity: 0.3,\n data: acceptableRange\n });\n series.push({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n type: 'scatter',\n name: 'Points of interest',\n data: intersections,\n dataLabels: {\n enabled: true,\n formatter() {\n return `$${this.point.x.toFixed(2)}`;\n }\n },\n marker: {\n radius: 1.5,\n symbol: 'circle',\n fillColor: 'black',\n lineColor: 'black',\n lineWidth: 2\n },\n states: {\n inactive: {\n opacity: 1\n }\n },\n showInLegend: false\n });\n return series;\n};\n// Check if tooltip point is the pointOfInterest\nconst getIntersectionPoints = (pointsOfInterest, x, y) => {\n return pointsOfInterest.filter(seriesPoint => seriesPoint.point[0] === x && seriesPoint.point[1] === y) || [];\n};\n\n/**\n * @file Base page for the VanWestendorpChartDataTable steps of the Study Setup\n */\nconst COPY$4 = defineMessages({\n PRICE: {\n id: 'VanWestendorpChartDataTable.PRICE',\n defaultMessage: 'Price',\n description: '[Type: Label][Vis: med] -Price'\n },\n PERCENTAGE_OF_RESPONSES: {\n id: 'VanWestendorpChartDataTable.PERCENTAGE_OF_RESPONSES',\n defaultMessage: '% of responses',\n description: '[Type: Label][Vis: med] - Percentage of responses'\n },\n RESPONSES: {\n id: 'VanWestendorpChartDataTable.RESPONSES',\n defaultMessage: 'Responses',\n description: '[Type: Label][Vis: med] - Responses'\n }\n});\nfunction VanWestendorpChartDataTable({\n data\n}) {\n const bodyRows = data.map(item => {\n return React__default.createElement(Table$1.Row, {\n key: `row-${item.title}`\n }, React__default.createElement(Table$1.HeaderCell, null, item.point), React__default.createElement(Table$1.Cell, null, item.price), React__default.createElement(Table$1.Cell, null, item.percentage), React__default.createElement(Table$1.Cell, null, item.response));\n });\n return React__default.createElement(Table$1, {\n xScroll: true\n }, React__default.createElement(Table$1.Header, null, React__default.createElement(Table$1.Row, null, React__default.createElement(Table$1.HeaderCell, null), React__default.createElement(Table$1.HeaderCell, null, t(COPY$4.PRICE)), React__default.createElement(Table$1.HeaderCell, null, t(COPY$4.PERCENTAGE_OF_RESPONSES)), React__default.createElement(Table$1.HeaderCell, null, t(COPY$4.RESPONSES)))), React__default.createElement(Table$1.Body, null, bodyRows));\n}\nconst getVanWestendorpChartOptions = (series, xBoundaries, pointsOfInterest, options, classNames) => {\n return merge$1(\n // overridable defaults\n {\n title: '',\n legend: {\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'top',\n itemStyle: {\n fontFamily: 'National 2',\n fontWeight: '400',\n fontSize: '12px',\n color: '#404040'\n }\n },\n plotOptions: {\n series: {\n events: {\n legendItemClick() {\n return false;\n }\n }\n },\n line: {\n states: {\n inactive: {\n opacity: 1\n },\n hover: {\n enabled: false\n }\n },\n dataLabels: {\n enabled: false\n }\n }\n },\n tooltip: {\n backgroundColor: 'white',\n borderColor: 'white',\n borderRadius: 4,\n useHTML: true,\n padding: 24,\n formatter() {\n const intersectionPoints = getIntersectionPoints(pointsOfInterest, this.x, this.y);\n let result = '';\n for (let i = 0; i < (intersectionPoints === null || intersectionPoints === void 0 ? void 0 : intersectionPoints.length); i += 1) {\n const intersectionPoint = intersectionPoints[i];\n if (i > 0) {\n result += `
`;\n }\n result += `\n \n \n \n \n \n \n
${intersectionPoint.tooltip.title}
${intersectionPoint.tooltip.description}${intersectionPoint.tooltip.price}
% of responses${intersectionPoint.tooltip.percentage}
Responses${intersectionPoint.tooltip.response}
`;\n }\n return result || false;\n }\n },\n yAxis: {\n min: 0,\n max: 100,\n title: {\n style: {\n color: '#404040',\n fontFamily: 'National 2',\n fontWeight: '600',\n fontSize: '12px'\n },\n text: 'Percent'\n },\n labels: {\n format: `{value}%`\n }\n },\n xAxis: {\n // tickInterval: 1, This used display more ticks\n labels: {\n formatter() {\n return `$${this.value}`;\n }\n },\n plotLines: [{\n color: '#000000',\n value: xBoundaries.upperBound,\n dashStyle: 'LongDash',\n width: 1\n }, {\n color: '#000000',\n value: xBoundaries.lowerBound,\n dashStyle: 'LongDash',\n width: 1\n }]\n }\n }, options,\n // not overridable\n {\n series,\n credits: {\n enabled: false\n }\n });\n};\nfunction VanWestendorpChart({\n data,\n options\n}) {\n const classNames = useStyles$5();\n const {\n upperBound,\n lowerBound\n } = data.metadata;\n const {\n pointsOfInterest,\n acceptableRange\n } = getHighchartSeriesData(data);\n const series = getHighchartSeries(data, pointsOfInterest, acceptableRange);\n const xBoundaries = {\n upperBound: upperBound.price,\n lowerBound: lowerBound.price\n };\n const dataTableValues = map(pointsOfInterest, 'tooltip') || [];\n const vanWestendorpChartOptions = getVanWestendorpChartOptions(series, xBoundaries, pointsOfInterest, options, classNames);\n return React__default.createElement(Box, null, React__default.createElement(HighchartsReact, {\n highcharts: Highcharts,\n options: vanWestendorpChartOptions\n }), React__default.createElement(VanWestendorpChartDataTable, {\n data: dataTableValues\n }));\n}\n\n/* eslint-disable react/no-array-index-key */\nfunction SpacerSquares({\n range,\n width,\n height,\n offset,\n spacing\n}) {\n return React__default.createElement(React__default.Fragment, null, range.map((r, i) => React__default.createElement(React__default.Fragment, {\n key: `spacer-rect-${i}`\n }, React__default.createElement(\"rect\", {\n fill: \"white\",\n height: height,\n width: spacing * 2,\n x: i * offset + width,\n y: 0,\n style: {\n zIndex: 999\n }\n }))));\n}\nfunction RatingBarProgress({\n rating,\n fill,\n width,\n height,\n maxRating,\n spacing = 0\n}) {\n const animationRef = useRef();\n const prevRating = useRef(0);\n useSSRSafeLayoutEffect(() => {\n prevRating.current = rating;\n const animation = animationRef === null || animationRef === void 0 ? void 0 : animationRef.current;\n if (animation && animation.beginElement) {\n animation.beginElement();\n }\n }, [rating]);\n // Adjust for spacer-gaps; progress does not take this in to account normally.\n const spacerPercent = spacing * 2 / 100;\n return React__default.createElement(\"rect\", {\n fill: fill,\n height: height - 0.2,\n width: width,\n x: 0,\n y: 0.1\n }, React__default.createElement(\"animate\", {\n ref: r => {\n animationRef.current = r;\n },\n attributeName: \"width\",\n from: `${(prevRating.current / maxRating - spacerPercent) * 100}%`,\n to: `${(rating / maxRating - spacerPercent) * 100}%`,\n dur: \"1s\",\n fill: \"freeze\"\n }));\n}\n\n/* eslint-disable react/no-array-index-key */\nfunction RatingIcons({\n range,\n width,\n offset,\n iconComponent: Icon\n}) {\n return React__default.createElement(React__default.Fragment, null, range.map((r, i) => React__default.createElement(React__default.Fragment, {\n key: `icon-rect-${i}`\n }, React__default.createElement(\"g\", null, React__default.createElement(Icon, {\n x: i * offset + width / 4,\n width: width / 2,\n title: \"\",\n color: \"light\"\n })))));\n}\n\n/* eslint-disable react/no-array-index-key */\nfunction EmptySquares({\n range,\n fill,\n width,\n height,\n offset\n}) {\n return React__default.createElement(React__default.Fragment, null, range.map((r, i) => React__default.createElement(\"rect\", {\n key: `empty-rect-${i}`,\n fill: fill,\n height: height,\n width: width,\n x: i * offset,\n y: 0\n })));\n}\n\n// svg size parameter to ensure scaling\nconst baseSize = 10;\n// spacing between block elements\nconst spacing = 0.5;\n// offset calculation for spacing between elements\nconst xOffset = Math.ceil((baseSize * 2 + spacing) / 2);\nfunction RatingBar({\n maxRating = 5,\n rating,\n fillColor,\n emptyColor = '#D0D2D3',\n iconComponent\n}) {\n if (!Number.isFinite(rating)) {\n return null;\n }\n // dynamic box size calculation for svg scaling\n const boxSizeX = Math.ceil((baseSize + spacing) * maxRating + spacing * maxRating);\n const range = Array.from(new Array(maxRating));\n return React__default.createElement(\"svg\", {\n viewBox: `0 0 ${boxSizeX} ${baseSize}`,\n preserveAspectRatio: \"xMidYMid\",\n width: \"100%\",\n height: \"100%\"\n }, React__default.createElement(EmptySquares, {\n range: range,\n width: baseSize,\n height: baseSize,\n fill: emptyColor,\n offset: xOffset\n }), React__default.createElement(RatingBarProgress, {\n fill: fillColor,\n height: baseSize,\n width: baseSize,\n rating: rating,\n maxRating: maxRating,\n spacing: spacing\n }), React__default.createElement(SpacerSquares, {\n range: range,\n width: baseSize,\n height: baseSize,\n offset: xOffset,\n spacing: spacing\n }), React__default.createElement(RatingIcons, {\n range: range,\n width: baseSize,\n offset: xOffset,\n iconComponent: iconComponent\n }));\n}\nconst useStyles$4 = createUseStyles(theme => ({\n container: ({\n width = 0,\n height = 0\n }) => ({\n width: width || '100%',\n height: height || '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n }),\n scaleContainer: {\n display: 'inline-block',\n transform: ({\n scaleAmount\n }) => `scale(${scaleAmount})`\n },\n content: {\n padding: theme.spacing[3]\n }\n}));\nconst useStyles$3 = createUseStyles(theme => ({\n ratingWrapper: {\n maxWidth: '200px',\n display: 'flex',\n paddingTop: theme.spacing[3]\n }\n}));\nfunction RatingWrapper({\n children\n}) {\n const {\n ratingWrapper\n } = useStyles$3();\n return React__default.createElement(\"div\", {\n className: ratingWrapper\n }, children);\n}\n\n/* eslint-disable default-param-last */\nconst COPY$3 = defineMessages({\n AVERAGE_RATING: {\n id: 'RatingChart.AVERAGE_RATING',\n defaultMessage: `average rating`,\n description: '[Type: label][Vis: high] - average rating title'\n }\n});\nfunction useScale(outer = {}, inner = {}, {\n min = 0,\n max = 10\n}) {\n const [scale, setScale] = React__default.useState(1);\n React__default.useMemo(() => {\n if (outer.width && outer.height && inner.width && inner.height) {\n const size = Math.min(outer.height / inner.height, outer.width / inner.width);\n const result = Math.max(min, Math.min(size, max));\n setScale(result);\n }\n }, [inner.height, inner.width, outer.height, outer.width, min, max]);\n return scale;\n}\nfunction RatingChart({\n rating,\n fillColor = '#00bf6f',\n maxRating = 5,\n iconComponent = 'STAR',\n width,\n height,\n scale = {\n max: 1.3\n }\n}) {\n const [containerRef, outerDimensions] = useDimensions();\n const [contentRef, innerDimensions] = useDimensions();\n const scaleAmount = useScale(outerDimensions, innerDimensions, scale);\n const {\n container,\n scaleContainer,\n content\n } = useStyles$4({\n width,\n height,\n scaleAmount\n });\n const Icon = getWDSIconFromChartIcon(iconComponent);\n if (!Number.isFinite(rating)) {\n return null;\n }\n const normalizedRating = Math.min(Math.max(rating, 0), maxRating);\n return React__default.createElement(\"div\", {\n ref: containerRef,\n className: container\n }, React__default.createElement(\"div\", {\n className: scaleContainer\n }, React__default.createElement(\"div\", {\n ref: contentRef,\n className: content\n }, React__default.createElement(Typography, {\n variant: \"hero1\",\n align: \"center\",\n key: \"hero-title\"\n }, normalizedRating.toFixed(1), React__default.createElement(\"span\", {\n style: {\n color: fillColor\n }\n }, React__default.createElement(Icon, {\n title: \"\",\n size: \"lg\"\n }))), React__default.createElement(Typography, {\n variant: \"sectionTitle\",\n align: \"center\",\n key: \"hero-subtitle\"\n }, React__default.createElement(T, {\n desc: COPY$3.AVERAGE_RATING\n })), React__default.createElement(Box, {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n key: \"rating-bar\"\n }, React__default.createElement(RatingWrapper, {\n key: \"rating-wrapper\"\n }, React__default.createElement(RatingBar, {\n key: \"rating-bar\",\n maxRating: maxRating,\n rating: normalizedRating,\n fillColor: fillColor,\n iconComponent: Icon\n }))))));\n}\ndefineMessages({\n ANSWERED: {\n id: 'RatingChartLegend.ANSWERED',\n defaultMessage: `Answered: {number}`,\n description: '[Type: label][Vis: high] - amount of responses answered'\n },\n SKIPPED: {\n id: 'RatingChartLegend.SKIPPED',\n defaultMessage: `Skipped: {skipped}`,\n description: '[Type: label][Vis: high] - amount of responses skippeed'\n },\n TOOLTIP: {\n id: 'RatingChartLegend.TOOLTIP',\n defaultMessage: `{label} ({percent, number, percent})`,\n description: '[Type: label][Vis: high] - percentage tooltip'\n },\n RATING: {\n id: 'RatingChartLegend.RATING',\n defaultMessage: `{rating} star`,\n description: '[Type: label][Vis: high] - rating amount'\n }\n});\n// Fixes 'Rating Star Labels' (i.e. 1 Star, 5 Star, etc) wrapping on two lines when viewport is\n// smaller than 430px.\n// 2.666666666666667em = 40px\n// Resolves: #ANEXP-1338, #RAWR-559\ncreateUseStyles({\n ratingLabelColumnStyles: {\n minWidth: '2.666666666666667em'\n },\n ratingProgressLine: {\n maxWidth: '100%'\n }\n});\nconst COPY$2 = defineMessages({\n UTILITY_SCORE_TOOLTIP: {\n id: 'MaxDiffChart.UTILITY_SCORE_TOOLTIP',\n defaultMessage: 'Utility score',\n description: '[Type: Label][Vis: low] - Utility score label for chart tooltip'\n },\n CONFIDENCE_INTERVAL_TOOLTIP: {\n id: 'MaxDiffChart.CONFIDENCE_INTERVAL_TOOLTIP',\n defaultMessage: 'Confidence interval',\n description: '[Type: Label][Vis: low] - Confidence interval label for chart tooltip'\n }\n});\nif (typeof Highcharts === 'object') {\n HighchartsMore(Highcharts);\n}\nconst getMaxDiffChartOptions = (data, options, confidenceInterval, isPercentage = false, decimalPlaces = 0) => {\n let enableTooltip = false;\n let disableDataLabel = true;\n if (confidenceInterval && confidenceInterval.length !== 0) {\n enableTooltip = true;\n disableDataLabel = false;\n }\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n bar: {\n enableMouseTracking: true,\n states: {\n hover: {\n enabled: enableTooltip\n }\n },\n colorByPoint: true,\n dataLabels: {\n enabled: disableDataLabel,\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n inside: false\n }\n },\n errorbar: {\n dataLabels: {\n enabled: false\n }\n }\n },\n tooltip: {\n enabled: enableTooltip,\n shared: true,\n followPointer: false,\n followTouchMove: true,\n backgroundColor: '#404040',\n useHTML: true,\n formatter() {\n if (this && this.points && 'points' in this && confidenceInterval) {\n return `
${this.x}
${t(COPY$2.UTILITY_SCORE_TOOLTIP)}: ${this.y.toFixed(2)}
${t(COPY$2.CONFIDENCE_INTERVAL_TOOLTIP)}: (${confidenceInterval[this.points[0].point.index][0].toFixed(2)}, ${confidenceInterval[this.points[0].point.index][1].toFixed(2)})
`;\n }\n return undefined;\n }\n },\n xAxis: {\n labels: {\n formatter: formatLabelVerticalAxis\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series: [{\n data,\n type: 'bar'\n }, {\n data: confidenceInterval,\n type: 'errorbar'\n }]\n });\n};\nfunction MaxDiffChart({\n data,\n options,\n confidenceInterval,\n isPercentage,\n decimalPlaces\n}) {\n const maxDiffChartOptions = getMaxDiffChartOptions(data, options, confidenceInterval, isPercentage, decimalPlaces);\n return React__default.createElement(BaseChart, {\n options: maxDiffChartOptions\n });\n}\nfunction getPieDataLabelFormatted(point, showInLegend, isDataInChart, decimalPlaces) {\n const {\n name,\n y,\n numberOfResponses\n } = point;\n if (!y) {\n // eslint-disable-next-line no-console\n console.error('\"y\" property for data point is undefined. The label cannot be formatted.');\n return '';\n }\n const nameLabel = name.length > 68 ? `${name.substring(0, 65)}...` : name;\n const dataLabel = isDataInChart ? `
${numberFormat(y, decimalPlaces)}% (${numberOfResponses})` : '';\n return showInLegend ? dataLabel : nameLabel + dataLabel;\n}\nconst getPieDonutChartMapping = (customization, data) => {\n const isDataInChart = customization.dataInChart;\n const showInLegend = customization.dataFormatLabel === 'Legend';\n const options = {\n colors: [...customization.colors],\n plotOptions: {\n pie: {\n cursor: 'default',\n showInLegend,\n dataLabels: {\n style: {\n width: 108 // width used in prod\n },\n\n enabled: showInLegend && isDataInChart || !showInLegend,\n formatter() {\n return getPieDataLabelFormatted(this.point, showInLegend, isDataInChart, customization.decimalPlaces);\n }\n }\n }\n },\n tooltip: {\n enabled: false\n },\n legend: {\n enabled: showInLegend,\n labelFormatter() {\n return this.name.length > 93 ? `${this.name.substring(0, 90)}...` : this.name;\n }\n }\n };\n return {\n options,\n data\n };\n};\n\n/**\n * Map the base options configuration for\n * bar, column, stacked bar and stacked column charts.\n * This data may be augmented at the Chart level.\n */\nconst getCommonBarChartMapping = customization => {\n const {\n labels,\n colors,\n min,\n max,\n dataInChart\n } = customization;\n const showTooltip = !dataInChart;\n return {\n colors,\n yAxis: {\n min,\n max,\n startOnTick: typeof min !== 'number',\n endOnTick: typeof max !== 'number'\n },\n xAxis: {\n categories: labels\n },\n tooltip: {\n enabled: showTooltip\n }\n };\n};\nconst getBarChartMapping = (customization, data) => {\n const isPercentage = customization.axisScale === 'Percentage';\n const isDataMultiDimension = isTwoDimensionalChartData(data);\n const commonBarChartOptions = getCommonBarChartMapping(customization);\n const options = merge(commonBarChartOptions, {\n legend: {\n enabled: isDataMultiDimension\n },\n plotOptions: {\n bar: {\n dataLabels: {\n enabled: customization.dataInChart\n },\n colorByPoint: !isDataMultiDimension\n }\n }\n });\n return {\n data,\n options,\n isPercentage,\n decimalPlaces: customization.decimalPlaces\n };\n};\nconst getColumnChartMapping = (customization, data) => {\n const isPercentage = customization.axisScale === 'Percentage';\n const isDataMultiDimension = isTwoDimensionalChartData(data);\n const commonBarChartOptions = getCommonBarChartMapping(customization);\n const options = merge(commonBarChartOptions, {\n legend: {\n enabled: isDataMultiDimension\n },\n plotOptions: {\n column: {\n dataLabels: {\n enabled: customization.dataInChart\n },\n colorByPoint: !isDataMultiDimension\n }\n }\n });\n return {\n data,\n options,\n isPercentage,\n decimalPlaces: customization.decimalPlaces\n };\n};\nconst getStackedBarChartMapping = (customization, data) => {\n const isPercentage = customization.axisScale === 'Percentage';\n const commonBarChartOptions = getCommonBarChartMapping(customization);\n const showLabels = data[0].data.length > 1;\n const options = merge(commonBarChartOptions, {\n plotOptions: {\n bar: {\n dataLabels: {\n enabled: customization.dataInChart\n },\n colorByPoint: false\n }\n }\n });\n return {\n data,\n options,\n isPercentage,\n showLabels,\n decimalPlaces: customization.decimalPlaces\n };\n};\nconst getStackedColumnChartMapping = (customization, data) => {\n const isPercentage = customization.axisScale === 'Percentage';\n const commonBarChartOptions = getCommonBarChartMapping(customization);\n const showLabels = data[0].data.length > 1;\n const options = merge(commonBarChartOptions, {\n plotOptions: {\n column: {\n dataLabels: {\n enabled: customization.dataInChart\n },\n colorByPoint: false\n }\n }\n });\n return {\n data,\n options,\n isPercentage,\n showLabels,\n decimalPlaces: customization.decimalPlaces\n };\n};\nconst getLineAreaChartMapping = (customization, data) => {\n const {\n colors,\n labels,\n max,\n min\n } = customization;\n const isTwoDimensionalLineAreaData = chartData => chartData[0].name !== '';\n return {\n colors,\n xAxis: {\n categories: labels\n },\n yAxis: {\n min,\n max,\n startOnTick: typeof min !== 'number',\n endOnTick: typeof max !== 'number'\n },\n legend: {\n enabled: isTwoDimensionalLineAreaData(data)\n }\n };\n};\nconst getLineChartMapping = (customization, data) => {\n const isPercentage = customization.axisScale === 'Percentage';\n const commonLineChartOptions = getLineAreaChartMapping(customization, data);\n const options = merge(commonLineChartOptions, {\n plotOptions: {\n line: {\n dataLabels: {\n enabled: customization.dataInChart\n }\n }\n }\n });\n return {\n data,\n options,\n isPercentage,\n decimalPlaces: customization.decimalPlaces\n };\n};\nconst getAreaChartMapping = (customization, data) => {\n const isPercentage = customization.axisScale === 'Percentage';\n const isStackable = data.length > 1;\n const commonLineChartOptions = getLineAreaChartMapping(customization, data);\n const options = merge(commonLineChartOptions, {\n plotOptions: {\n area: {\n dataLabels: {\n enabled: customization.dataInChart\n }\n }\n }\n });\n return {\n data,\n options,\n isPercentage,\n isStackable,\n decimalPlaces: customization.decimalPlaces\n };\n};\nfunction getRatingChartMapping(customization, data) {\n var _customization$colors;\n return {\n rating: data.value,\n fillColor: (_customization$colors = customization.colors) !== null && _customization$colors !== void 0 && _customization$colors.length ? customization.colors[0] : undefined,\n maxRating: customization.max,\n iconComponent: customization.iconComponent ?? undefined\n };\n}\nconst getVanWestendorpChartMapping = (customization, data) => {\n const options = {\n plotOptions: {\n line: {\n dataLabels: {\n enabled: customization.dataInChart\n }\n }\n }\n };\n return {\n data,\n options\n };\n};\nfunction AggregateResponseChartSelector({\n data,\n customization\n}) {\n switch (customization.chartType) {\n case 'hbar':\n {\n assert(isBarChartData(data));\n return React__default.createElement(BarChart, {\n ...getBarChartMapping(customization, data)\n });\n }\n case 'vbar':\n {\n assert(isBarChartData(data));\n return React__default.createElement(ColumnChart, {\n ...getColumnChartMapping(customization, data)\n });\n }\n case 'donut':\n {\n assert(isPieOrDonutChartData(data));\n return React__default.createElement(DonutChart, {\n ...getPieDonutChartMapping(customization, data)\n });\n }\n case 'pie':\n {\n assert(isPieOrDonutChartData(data));\n return React__default.createElement(PieChart, {\n ...getPieDonutChartMapping(customization, data)\n });\n }\n case 'stacked_hbar':\n {\n assert(isStackedBarChartData(data));\n return React__default.createElement(StackedBarChart, {\n ...getStackedBarChartMapping(customization, data)\n });\n }\n case 'stacked_vbar':\n {\n assert(isStackedBarChartData(data));\n return React__default.createElement(StackedColumnChart, {\n ...getStackedColumnChartMapping(customization, data)\n });\n }\n case 'line':\n {\n assert(isLineChartData(data));\n return React__default.createElement(LineChart, {\n ...getLineChartMapping(customization, data)\n });\n }\n case 'area':\n {\n assert(isAreaChartData(data));\n return React__default.createElement(AreaChart, {\n ...getAreaChartMapping(customization, data)\n });\n }\n case 'weighted_avg':\n {\n assert(isRatingChartData(data));\n return React__default.createElement(RatingChart, {\n ...getRatingChartMapping(customization, data)\n });\n }\n case 'van_westendorp':\n {\n assert(isVanWestendorpChartData(data));\n return React__default.createElement(VanWestendorpChart, {\n ...getVanWestendorpChartMapping(customization, data)\n });\n }\n case 'maxdiff':\n {\n assert(isBarChartData(data));\n return React__default.createElement(MaxDiffChart, {\n ...getBarChartMapping(customization, data)\n });\n }\n default:\n {\n return null;\n }\n }\n}\nconst useStyles$2 = createUseStyles(theme => {\n return {\n container: {\n width: '100%',\n background: '#EFEFEF',\n padding: theme.spacing[5],\n marginBottom: theme.spacing[2]\n },\n pagination: {\n borderTop: '1px solid rgb(237 238 238)',\n padding: `${theme.spacing[5]}px 0px`\n },\n header: {\n paddingLeft: theme.spacing[2]\n }\n };\n});\nconst COPY$1 = defineMessages({\n OTHER_RESPONSES_HEADER: {\n id: 'OtherResponseList.OTHER_RESPONSES_HEADER',\n defaultMessage: `\"{title}\" responses ({totalCount})`,\n description: '[Type: Label][Vis: med] - Header for other responses'\n },\n OTHER_RESPONSES_HEADER_CARET_DOWN: {\n id: 'OtherResponseList.OTHER_RESPONSES_HEADER_CARET_DOWN',\n defaultMessage: 'hide other response list',\n description: '[Type: Button][Vis: med] - Icon shown to hide other response list'\n },\n OTHER_RESPONSES_HEADER_CARET_UP: {\n id: 'OtherResponseList.OTHER_RESPONSES_HEADER_CARET_UP',\n defaultMessage: 'show other response list',\n description: '[Type: Button][Vis: med] - Icon shown to show other response list'\n }\n});\nfunction OtherResponseList(data) {\n const {\n container,\n header,\n pagination\n } = useStyles$2();\n const [isOpen, setIsOpen] = useState(false);\n const [page, setPage] = useState(0);\n const [dataItems, setDataItems] = useState([]);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const otherResponseListRef = useRef(null);\n useEffect(() => {\n const firstRowOnPage = page * rowsPerPage;\n const lastRowOnPage = page * rowsPerPage + rowsPerPage;\n const showItems = data && data.items && Object.values(data.items).slice(firstRowOnPage, lastRowOnPage) || [];\n setDataItems(showItems);\n }, [page, rowsPerPage, data]);\n const handleChangePage = (event, newPage) => {\n var _otherResponseListRef;\n (_otherResponseListRef = otherResponseListRef.current) === null || _otherResponseListRef === void 0 ? void 0 : _otherResponseListRef.scrollIntoView(true);\n setPage(newPage);\n };\n const handleChangeRowsPerPage = event => {\n var _otherResponseListRef2;\n (_otherResponseListRef2 = otherResponseListRef.current) === null || _otherResponseListRef2 === void 0 ? void 0 : _otherResponseListRef2.scrollIntoView(true);\n setRowsPerPage(parseInt(event.currentTarget.dataset.value || '10', 10));\n setPage(0);\n };\n const toggleList = () => {\n setIsOpen(prevState => !prevState);\n };\n return React__default.createElement(\"div\", {\n ref: otherResponseListRef\n }, React__default.createElement(\"div\", {\n className: container,\n onClick: toggleList,\n onKeyPress: toggleList,\n role: \"button\",\n tabIndex: 0\n }, isOpen ? React__default.createElement(IconCaretUp, {\n title: t(COPY$1.OTHER_RESPONSES_HEADER_CARET_UP),\n size: \"sm\"\n }) : React__default.createElement(IconCaretDown, {\n title: t(COPY$1.OTHER_RESPONSES_HEADER_CARET_DOWN),\n size: \"sm\"\n }), React__default.createElement(\"span\", {\n className: header\n }, React__default.createElement(Typography, {\n variant: \"body\",\n component: \"span\"\n }, t(COPY$1.OTHER_RESPONSES_HEADER, {\n title: data.title,\n totalCount: data.totalCount\n })))), isOpen && React__default.createElement(React__default.Fragment, null, React__default.createElement(Table$1, null, React__default.createElement(Table$1.Body, null, dataItems.map((item, index) => {\n return (\n // There is no unique key from backend at the moment. Please update once it is received\n // eslint-disable-next-line react/no-array-index-key\n React__default.createElement(Table$1.Row, {\n key: `table-row-${item.text}-${index}`\n }, React__default.createElement(Table$1.Cell, null, React__default.createElement(Typography, {\n variant: \"bodySm\",\n color: \"dark\"\n }, item.text)))\n );\n }))), React__default.createElement(\"div\", {\n className: pagination\n }, React__default.createElement(Pagination, {\n placement: \"top-left\",\n hasPageSelect: true,\n hasRowsPerPage: true,\n page: page,\n count: data.totalCount,\n rowsPerPage: rowsPerPage,\n onChangePage: handleChangePage,\n onChangeRowsPerPage: handleChangeRowsPerPage\n }))));\n}\nconst useStyles$1 = createUseStyles(theme => ({\n /** for some reason, @wds/box doesn't play nice */\n box: {\n width: '100%',\n height: '100%',\n padding: [0, theme.spacing[3]]\n }\n}));\nfunction SolutionsChartDashboardItem({\n data,\n customization,\n otherAnswers,\n ...props\n}) {\n const {\n box\n } = useStyles$1();\n const hasData = isChartData(data);\n return React__default.createElement(SolutionsCardLayoutTemplate, {\n ...props\n }, React__default.createElement(\"div\", {\n className: box\n }, hasData ? React__default.createElement(React__default.Fragment, null, React__default.createElement(AggregateResponseChartSelector, {\n ...{\n data,\n customization\n }\n }), otherAnswers && otherAnswers.items && otherAnswers.items.length > 0 && React__default.createElement(OtherResponseList, {\n ...otherAnswers\n })) : React__default.createElement(ResponseError, null)));\n}\nvar SolutionsChartDashboardItem$1 = withErrorBoundary(SolutionsChartDashboardItem);\nconst COPY = defineMessages({\n SOLUTIONS_PRICE_SENSITIVITY_ITEM_HEADER: {\n id: 'SolutionsPriceSensitivityItem.SOLUTIONS_PRICE_SENSITIVITY_ITEM_HEADER',\n defaultMessage: 'Price sensitivity (Van Westendorp)',\n description: '[Type: Label][Vis: med] - Header for Solutions Price Sensitivity Item'\n },\n SOLUTIONS_PRICE_SENSITIVITY_ITEM_CAPTION: {\n id: 'SolutionsPriceSensitivityItem.SOLUTIONS_PRICE_SENSITIVITY_CAPTION',\n defaultMessage: 'The intersection between inexpensive and expensive gives an overall price direction for your product.',\n description: '[Type: Label][Vis: med] - Caption for Solutions Price Sensitivity Item'\n }\n});\nfunction SolutionsPriceSensitivityItem({\n data,\n customization\n}) {\n const hasData = isVanWestendorpChartData(data);\n return React__default.createElement(SolutionsCard, null, React__default.createElement(Box, {\n p: 6\n }, React__default.createElement(Box, {\n mb: 1\n }, React__default.createElement(Typography, {\n variant: \"cardTitle\",\n color: \"dark\",\n translate: \"no\",\n component: \"strong\"\n }, t(COPY.SOLUTIONS_PRICE_SENSITIVITY_ITEM_HEADER))), React__default.createElement(Box, {\n mb: 2\n }, React__default.createElement(Typography, {\n variant: \"caption\"\n }, t(COPY.SOLUTIONS_PRICE_SENSITIVITY_ITEM_CAPTION))), hasData ? React__default.createElement(AggregateResponseChartSelector, {\n ...{\n data,\n customization\n }\n }) : React__default.createElement(ResponseError, null)));\n}\nvar SolutionsPriceSensitivityItem$1 = withErrorBoundary(SolutionsPriceSensitivityItem);\n\n/**\n * Fix the values after decimal\n */\nconst formatter = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: 2\n});\nconst useStyles = createUseStyles({\n container: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n height: '100%',\n width: '100%'\n }\n});\nfunction KeyFindingDataTable({\n data\n}) {\n const {\n container\n } = useStyles();\n return React__default.createElement(\"div\", {\n className: container\n }, React__default.createElement(Table$1, {\n xScroll: true\n }, React__default.createElement(Table$1.Header, null, React__default.createElement(Table$1.Row, null, Object.keys(data).map(heading => {\n return React__default.createElement(Table$1.HeaderCell, {\n key: heading\n }, upperFirst(lowerCase(heading)));\n }))), React__default.createElement(Table$1.Body, null, React__default.createElement(Table$1.Row, null, Object.values(data).map(columnData => {\n return React__default.createElement(Table$1.Cell, {\n key: columnData\n }, formatter.format(columnData));\n })))));\n}\n\n/**\n * Component to create Statistics table\n */\nfunction SolutionStatistics({\n ...props\n}) {\n return React__default.createElement(SolutionsCardLayoutTemplate, {\n ...props\n }, React__default.createElement(KeyFindingDataTable, {\n data: props.data\n }));\n}\nvar SolutionStatistics$1 = withErrorBoundary(SolutionStatistics);\nexport { SolutionsOpenEndedItem$1 as CommentBox, defaultChartColors as DEFAULT_COLORS, SolutionsChartDashboardItem$1 as Dropdown, SolutionsChartDashboardItem$1 as Matrix, SolutionsChartDashboardItem$1 as MultipleChoice, SolutionsPriceSensitivityItem$1 as PriceSensitivity, SolutionsChartDashboardItem$1 as Ranking, SolutionsOpenEndedItem$1 as SingleTextbox, SolutionStatistics$1 as SolutionStatistics, SolutionsChartDashboardItem$1 as SolutionsChartDashboardItem, SolutionsOpenEndedItem$1 as SolutionsOpenEndedItem };","import React from 'react';\nimport Highcharts from 'highcharts';\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nvar highchartsReact_minExports = {};\nvar highchartsReact_min = {\n get exports() {\n return highchartsReact_minExports;\n },\n set exports(v) {\n highchartsReact_minExports = v;\n }\n};\n(function (module, exports) {\n !function (e, t) {\n module.exports = t(React, Highcharts);\n }(\"undefined\" != typeof self ? self : commonjsGlobal, function (e, t) {\n return function (e) {\n function t(n) {\n if (r[n]) return r[n].exports;\n var o = r[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(o.exports, o, o.exports, t), o.l = !0, o.exports;\n }\n var r = {};\n return t.m = e, t.c = r, t.d = function (e, r, n) {\n t.o(e, r) || Object.defineProperty(e, r, {\n configurable: !1,\n enumerable: !0,\n get: n\n });\n }, t.n = function (e) {\n var r = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return t.d(r, \"a\", r), r;\n }, t.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, t.p = \"\", t(t.s = 0);\n }([function (e, t, r) {\n function n() {\n return n = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);\n }\n return e;\n }, n.apply(this, arguments);\n }\n function o(e) {\n return i(e) || u(e) || c();\n }\n function c() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n function u(e) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) return Array.from(e);\n }\n function i(e) {\n if (Array.isArray(e)) {\n for (var t = 0, r = new Array(e.length); t < e.length; t++) r[t] = e[t];\n return r;\n }\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n var a = r(1),\n s = r.n(a),\n f = r(2),\n p = r.n(f),\n l = \"undefined\" != typeof window ? a.useLayoutEffect : a.useEffect,\n d = Object(a.forwardRef)(function (e, t) {\n var r = Object(a.useRef)(),\n c = Object(a.useRef)();\n return l(function () {\n function t() {\n var t = e.highcharts || p.a,\n n = e.constructorType || \"chart\";\n t ? t[n] ? e.options ? c.current = t[n](r.current, e.options, e.callback ? e.callback : void 0) : console.warn('The \"options\" property was not passed.') : console.warn('The \"constructorType\" property is incorrect or some required module is not imported.') : console.warn('The \"highcharts\" property was not passed.');\n }\n if (c.current) {\n if (!1 !== e.allowChartUpdate) if (!e.immutable && c.current) {\n var n;\n (n = c.current).update.apply(n, [e.options].concat(o(e.updateArgs || [!0, !0])));\n } else t();\n } else t();\n }), l(function () {\n return function () {\n c.current && (c.current.destroy(), c.current = null);\n };\n }, []), Object(a.useImperativeHandle)(t, function () {\n return {\n get chart() {\n return c.current;\n },\n container: r\n };\n }, []), s.a.createElement(\"div\", n({}, e.containerProps, {\n ref: r\n }));\n });\n t.default = Object(a.memo)(d);\n }, function (t, r) {\n t.exports = e;\n }, function (e, r) {\n e.exports = t;\n }]);\n });\n})(highchartsReact_min);\nvar HighchartsReact = /*@__PURE__*/getDefaultExportFromCjs(highchartsReact_minExports);\nvar classnamesExports = {};\nvar classnames = {\n get exports() {\n return classnamesExports;\n },\n set exports(v) {\n classnamesExports = v;\n }\n};\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n(function (module) {\n /* global define */\n\n (function () {\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n return classes.join(' ');\n }\n if (module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else {\n window.classNames = classNames;\n }\n })();\n})(classnames);\nexport { HighchartsReact as H };","var _window, _window$document, _Highcharts$AST, _Highcharts$AST2, _Highcharts$AST3, _Highcharts$AST4, _Highcharts$AST5, _Highcharts$AST6;\nimport React, { useLayoutEffect, useEffect, useRef, useState } from 'react';\nimport { Box } from '@wds/box';\nimport { Typography } from '@wds/typography';\nimport { defineMessages, T, t, FormattedNumber } from '@sm/intl';\nimport { IconStarFilled, IconHappyFilled, IconHeartFilled, IconThumbsUpFilled } from '@wds/icons';\nimport { createUseStyles, ThemeProvider, useTheme } from 'react-jss';\nimport { Tooltip } from '@wds/tooltip';\nimport Highcharts from 'highcharts';\nimport wordCloudModule from 'highcharts/modules/wordcloud';\nimport { H as HighchartsReact } from './vendor-1c05ffca.js';\nimport merge from 'lodash.merge';\nimport { renderToString, renderToStaticMarkup } from 'react-dom/server';\nimport { WrenchTheme } from '@wds/styles';\nimport './theme-bd08d861.js';\nimport '@wds/modal';\nimport '@wds/button';\nimport HighchartsAccessibility from 'highcharts/modules/accessibility';\nimport { map, merge as merge$1 } from 'lodash';\nimport { Table } from '@wds/table';\nimport HighchartsMore from 'highcharts/highcharts-more';\n\n/*eslint spaced-comment: [\"error\", \"never\", { \"exceptions\": [\"NOSONAR\"] }] */\n/**\n * SSR Safe version of useLayoutEffect\n * @see https://code.corp.surveymonkey.com/webplatform/smweb/blob/master/apps/contentweb/src/app/pages/MRX/helpers/useIsomorphicLayoutEffect.js\n *\n * Note: `NOSONAR` is used to bypass a `minor:code-smell` error that states `createElement` is deprecated.\n * The eslint rule above disables the spaced comments to use NOSONAR as stated in the docs.\n */\nconst useSSRSafeLayoutEffect = typeof window !== 'undefined' && typeof ((_window = window) === null || _window === void 0 ? void 0 : (_window$document = _window.document) === null || _window$document === void 0 ? void 0 : _window$document.createElement) !== 'undefined' //NOSONAR\n? useLayoutEffect : useEffect;\nfunction useDimensions() {\n const target = useRef(null);\n const [dimensions, setDimensions] = useState({});\n useSSRSafeLayoutEffect(() => {\n const updateDimensions = () => {\n if (target.current) {\n const rect = {\n width: target.current.offsetWidth,\n height: target.current.offsetHeight\n };\n setDimensions(rect);\n }\n };\n window.addEventListener('resize', updateDimensions);\n updateDimensions();\n return () => window.removeEventListener('resize', updateDimensions);\n }, [target]);\n return [target, dimensions];\n}\n\n/* eslint-disable react/no-array-index-key */\nfunction SpacerSquares({\n range,\n width,\n height,\n offset,\n spacing\n}) {\n return React.createElement(React.Fragment, null, range.map((r, i) => React.createElement(React.Fragment, {\n key: `spacer-rect-${i}`\n }, React.createElement(\"rect\", {\n fill: \"white\",\n height: height,\n width: spacing * 2,\n x: i * offset + width,\n y: 0,\n style: {\n zIndex: 999\n }\n }))));\n}\nfunction RatingBarProgress({\n rating,\n fill,\n width,\n height,\n maxRating,\n spacing = 0\n}) {\n const animationRef = useRef();\n const prevRating = useRef(0);\n useSSRSafeLayoutEffect(() => {\n prevRating.current = rating;\n const animation = animationRef === null || animationRef === void 0 ? void 0 : animationRef.current;\n if (animation && animation.beginElement) {\n animation.beginElement();\n }\n }, [rating]);\n // Adjust for spacer-gaps; progress does not take this in to account normally.\n const spacerPercent = spacing * 2 / 100;\n return React.createElement(\"rect\", {\n fill: fill,\n height: height - 0.2,\n width: width,\n x: 0,\n y: 0.1\n }, React.createElement(\"animate\", {\n ref: r => {\n animationRef.current = r;\n },\n attributeName: \"width\",\n from: `${(prevRating.current / maxRating - spacerPercent) * 100}%`,\n to: `${(rating / maxRating - spacerPercent) * 100}%`,\n dur: \"1s\",\n fill: \"freeze\"\n }));\n}\n\n/* eslint-disable react/no-array-index-key */\nfunction RatingIcons({\n range,\n width,\n offset,\n iconComponent: Icon\n}) {\n return React.createElement(React.Fragment, null, range.map((r, i) => React.createElement(React.Fragment, {\n key: `icon-rect-${i}`\n }, React.createElement(\"g\", null, React.createElement(Icon, {\n x: i * offset + width / 4,\n width: width / 2,\n title: \"\",\n color: \"light\"\n })))));\n}\n\n/* eslint-disable react/no-array-index-key */\nfunction EmptySquares({\n range,\n fill,\n width,\n height,\n offset\n}) {\n return React.createElement(React.Fragment, null, range.map((r, i) => React.createElement(\"rect\", {\n key: `empty-rect-${i}`,\n fill: fill,\n height: height,\n width: width,\n x: i * offset,\n y: 0\n })));\n}\n\n// svg size parameter to ensure scaling\nconst baseSize$2 = 10;\n// spacing between block elements\nconst spacing$1 = 0.5;\n// offset calculation for spacing between elements\nconst xOffset = Math.ceil((baseSize$2 * 2 + spacing$1) / 2);\nfunction RatingBar({\n maxRating = 5,\n rating,\n fillColor,\n emptyColor = '#D0D2D3',\n iconComponent\n}) {\n if (!Number.isFinite(rating)) {\n return null;\n }\n // dynamic box size calculation for svg scaling\n const boxSizeX = Math.ceil((baseSize$2 + spacing$1) * maxRating + spacing$1 * maxRating);\n const range = Array.from(new Array(maxRating));\n return React.createElement(\"svg\", {\n viewBox: `0 0 ${boxSizeX} ${baseSize$2}`,\n preserveAspectRatio: \"xMidYMid\",\n width: \"100%\",\n height: \"100%\"\n }, React.createElement(EmptySquares, {\n range: range,\n width: baseSize$2,\n height: baseSize$2,\n fill: emptyColor,\n offset: xOffset\n }), React.createElement(RatingBarProgress, {\n fill: fillColor,\n height: baseSize$2,\n width: baseSize$2,\n rating: rating,\n maxRating: maxRating,\n spacing: spacing$1\n }), React.createElement(SpacerSquares, {\n range: range,\n width: baseSize$2,\n height: baseSize$2,\n offset: xOffset,\n spacing: spacing$1\n }), React.createElement(RatingIcons, {\n range: range,\n width: baseSize$2,\n offset: xOffset,\n iconComponent: iconComponent\n }));\n}\nconst splitLabel = str => {\n if (typeof str === 'string' && str.length < 13) {\n return 13;\n }\n for (let i = 13; i >= 0; i -= 1) {\n if (typeof str === 'string' && str.charAt(i) === ' ') {\n return i;\n }\n }\n return 11;\n};\nconst formatLabelVerticalAxis = ({\n value\n}) => {\n const newValue = value.toString();\n const splitPoint = splitLabel(newValue);\n const strTop = newValue.slice(0, splitPoint);\n const strBottom = newValue.slice(splitPoint, newValue.length);\n return `
\n
\n${strTop}\n
\n
\n${strBottom}\n
\n
`;\n};\nfunction formatLabelHorizontalAxis(label) {\n const labelClipped = label.substring(0, 80);\n return label.length > 76 ? `${labelClipped}...` : label;\n}\nfunction getWDSIconFromChartIcon(chartIcon) {\n const iconMap = {\n STAR: IconStarFilled,\n SMILEY: IconHappyFilled,\n HEART: IconHeartFilled,\n THUMB: IconThumbsUpFilled\n };\n if (typeof chartIcon === 'string') {\n return iconMap[chartIcon];\n }\n return chartIcon;\n}\nconst useStyles$8 = createUseStyles(theme => ({\n container: ({\n width = 0,\n height = 0\n }) => ({\n width: width || '100%',\n height: height || '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n }),\n scaleContainer: {\n display: 'inline-block',\n transform: ({\n scaleAmount\n }) => `scale(${scaleAmount})`\n },\n content: {\n padding: theme.spacing[3]\n }\n}));\nconst useStyles$7 = createUseStyles(theme => ({\n ratingWrapper: {\n maxWidth: '200px',\n display: 'flex',\n paddingTop: theme.spacing[3]\n }\n}));\nfunction RatingWrapper({\n children\n}) {\n const {\n ratingWrapper\n } = useStyles$7();\n return React.createElement(\"div\", {\n className: ratingWrapper\n }, children);\n}\n\n/* eslint-disable default-param-last */\nconst COPY$8 = defineMessages({\n AVERAGE_RATING: {\n id: 'RatingChart.AVERAGE_RATING',\n defaultMessage: `average rating`,\n description: '[Type: label][Vis: high] - average rating title'\n }\n});\nfunction useScale(outer = {}, inner = {}, {\n min = 0,\n max = 10\n}) {\n const [scale, setScale] = React.useState(1);\n React.useMemo(() => {\n if (outer.width && outer.height && inner.width && inner.height) {\n const size = Math.min(outer.height / inner.height, outer.width / inner.width);\n const result = Math.max(min, Math.min(size, max));\n setScale(result);\n }\n }, [inner.height, inner.width, outer.height, outer.width, min, max]);\n return scale;\n}\nfunction RatingChart({\n rating,\n fillColor = '#00bf6f',\n maxRating = 5,\n iconComponent = 'STAR',\n width,\n height,\n scale = {\n max: 1.3\n }\n}) {\n const [containerRef, outerDimensions] = useDimensions();\n const [contentRef, innerDimensions] = useDimensions();\n const scaleAmount = useScale(outerDimensions, innerDimensions, scale);\n const {\n container,\n scaleContainer,\n content\n } = useStyles$8({\n width,\n height,\n scaleAmount\n });\n const Icon = getWDSIconFromChartIcon(iconComponent);\n if (!Number.isFinite(rating)) {\n return null;\n }\n const normalizedRating = Math.min(Math.max(rating, 0), maxRating);\n return React.createElement(\"div\", {\n ref: containerRef,\n className: container\n }, React.createElement(\"div\", {\n className: scaleContainer\n }, React.createElement(\"div\", {\n ref: contentRef,\n className: content\n }, React.createElement(Typography, {\n variant: \"hero1\",\n align: \"center\",\n key: \"hero-title\"\n }, normalizedRating.toFixed(1), React.createElement(\"span\", {\n style: {\n color: fillColor\n }\n }, React.createElement(Icon, {\n title: \"\",\n size: \"lg\"\n }))), React.createElement(Typography, {\n variant: \"sectionTitle\",\n align: \"center\",\n key: \"hero-subtitle\"\n }, React.createElement(T, {\n desc: COPY$8.AVERAGE_RATING\n })), React.createElement(Box, {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n key: \"rating-bar\"\n }, React.createElement(RatingWrapper, {\n key: \"rating-wrapper\"\n }, React.createElement(RatingBar, {\n key: \"rating-bar\",\n maxRating: maxRating,\n rating: normalizedRating,\n fillColor: fillColor,\n iconComponent: Icon\n }))))));\n}\n\n/* eslint-disable import/prefer-default-export */\nfunction RatingLegendProgress({\n emptyColor,\n fillColor,\n width,\n height,\n rating,\n percentage\n}) {\n const animationRef = useRef();\n const prevPercentage = useRef(0);\n useSSRSafeLayoutEffect(() => {\n prevPercentage.current = percentage;\n const animation = animationRef === null || animationRef === void 0 ? void 0 : animationRef.current;\n if (animation && animation.beginElement) {\n animation.beginElement();\n }\n }, [percentage]);\n return React.createElement(\"g\", null, React.createElement(\"rect\", {\n key: `empty-rect-${rating}`,\n fill: emptyColor,\n height: height,\n width: width,\n x: 0,\n y: 0\n }), React.createElement(\"rect\", {\n fill: fillColor,\n height: height,\n width: 0,\n x: 0,\n y: 0\n }, React.createElement(\"animate\", {\n key: `legend-animation-${rating}`,\n ref: r => {\n animationRef.current = r;\n },\n attributeName: \"width\",\n from: `${prevPercentage.current * 100}%`,\n to: `${percentage * 100}%`,\n dur: \"1s\",\n fill: \"freeze\"\n })));\n}\nconst COPY$7 = defineMessages({\n ANSWERED: {\n id: 'RatingChartLegend.ANSWERED',\n defaultMessage: `Answered: {number}`,\n description: '[Type: label][Vis: high] - amount of responses answered'\n },\n SKIPPED: {\n id: 'RatingChartLegend.SKIPPED',\n defaultMessage: `Skipped: {skipped}`,\n description: '[Type: label][Vis: high] - amount of responses skippeed'\n },\n TOOLTIP: {\n id: 'RatingChartLegend.TOOLTIP',\n defaultMessage: `{label} ({percent, number, percent})`,\n description: '[Type: label][Vis: high] - percentage tooltip'\n },\n RATING: {\n id: 'RatingChartLegend.RATING',\n defaultMessage: `{rating} star`,\n description: '[Type: label][Vis: high] - rating amount'\n }\n});\n// Fixes 'Rating Star Labels' (i.e. 1 Star, 5 Star, etc) wrapping on two lines when viewport is\n// smaller than 430px.\n// 2.666666666666667em = 40px\n// Resolves: #ANEXP-1338, #RAWR-559\nconst useStyles$6 = createUseStyles({\n ratingLabelColumnStyles: {\n minWidth: '2.666666666666667em'\n },\n ratingProgressLine: {\n maxWidth: '100%'\n }\n});\nconst baseSize$1 = 20;\nconst spacing = 0.5;\nconst height = 2;\nfunction RatingChartLegend({\n ratings = [],\n total = 0,\n skipped = 0,\n fillColor = '#3FC688',\n emptyColor = '#D0D2D3',\n maxRating = 5,\n displaySkipped = 'auto'\n}) {\n const {\n ratingLabelColumnStyles,\n ratingProgressLine\n } = useStyles$6();\n const ratingsDesc = [...ratings].reverse();\n const displaySkipValue = typeof displaySkipped === 'boolean' ? displaySkipped : skipped > 0;\n const boxSize = Math.ceil((baseSize$1 + spacing) * maxRating + spacing * maxRating);\n return React.createElement(React.Fragment, null, React.createElement(Box, {\n key: \"rating-response-text\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n p: 3\n }, React.createElement(Box, {\n px: 3\n }, React.createElement(Typography, {\n variant: \"bodySm\",\n align: \"center\"\n }, React.createElement(T, {\n desc: COPY$7.ANSWERED,\n values: {\n number: total\n }\n }))), displaySkipValue && React.createElement(Box, {\n px: 3\n }, React.createElement(Typography, {\n variant: \"bodySm\",\n align: \"center\"\n }, React.createElement(T, {\n desc: COPY$7.SKIPPED,\n values: {\n skipped\n }\n })))), ratingsDesc.map(({\n rating,\n percentage,\n total: ratingTotal\n }) => React.createElement(Box, {\n key: `rating-${rating}`,\n display: \"flex\",\n alignItems: \"center\",\n p: 1,\n justifyContent: \"center\"\n }, React.createElement(Box, {\n key: `rating-text-wrapper-${rating}`,\n display: \"flex\",\n mr: 2\n }, React.createElement(\"div\", {\n className: ratingLabelColumnStyles\n }, React.createElement(Typography, {\n key: `rating-text-${rating}`,\n variant: \"bodySm\"\n }, React.createElement(T, {\n desc: COPY$7.RATING,\n values: {\n rating\n }\n })))), React.createElement(Box, {\n key: `rating-svg-wrapper-${rating}`,\n display: \"flex\",\n justifyContent: \"center\"\n }, React.createElement(Tooltip, {\n key: `rating-tooltip-${rating}`,\n text: t(COPY$7.TOOLTIP, {\n label: ratingTotal,\n percent: percentage\n })\n }, React.createElement(\"svg\", {\n className: ratingProgressLine,\n key: `rating-svg-${rating}`,\n viewBox: `0 0 ${boxSize} ${height}`,\n preserveAspectRatio: \"xMidYMid\",\n width: \"100%\",\n height: \"100%\"\n }, React.createElement(RatingLegendProgress, {\n key: `rating-progress-${rating}`,\n emptyColor: emptyColor,\n fillColor: fillColor,\n rating: String(rating),\n width: boxSize,\n height: height,\n percentage: percentage\n })))))));\n}\nconst tooltipColor = '#333E48';\nconst COPY$6 = defineMessages({\n TOOLTIP_TITLE: {\n id: 'WordCloudTooltip.TOOLTIP_TITLE',\n defaultMessage: '#{number} most important word',\n description: '[Type: header][Vis: med] - title of the chart'\n },\n OCCURRENCES: {\n id: 'WordCloudTooltip.TOOLTIP_OCCURRENCES',\n defaultMessage: 'Occurrences: {weight} ',\n description: '[Type: header][Vis: med] - title of the chart'\n }\n});\n// TODO: Port tooltip here to @wds/tooltip - not ported yet\nfunction WordCloudTooltip({\n point\n}) {\n return React.createElement(\"div\", {\n \"data-testid\": `word-${point.name}`,\n style: {\n padding: '8px'\n }\n }, React.createElement(T, {\n desc: COPY$6.TOOLTIP_TITLE,\n values: {\n number: point.top\n }\n }), React.createElement(\"br\", null), React.createElement(\"span\", null, React.createElement(T, {\n desc: COPY$6.OCCURRENCES,\n values: {\n weight: point.weight,\n percentage: point.weight\n }\n }), \"(\", React.createElement(FormattedNumber, {\n formatStyle: \"percent\",\n maximumFractionDigits: 2,\n value: point.percentage\n }), \")\"));\n}\nconst tooltipConfig = {\n backgroundColor: tooltipColor,\n borderColor: tooltipColor,\n style: {\n color: 'white'\n },\n useHTML: true,\n formatter() {\n // Typescript bindings of highcharts binding of \"this.point\" missing\n /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */\n // @ts-ignore\n const {\n point\n } = this;\n return renderToString(React.createElement(WordCloudTooltip, {\n point: point\n }));\n }\n};\nconst BASE_OPTIONS$1 = {\n title: {\n text: ''\n },\n credits: {\n enabled: false\n },\n chart: {\n backgroundColor: 'transparent'\n },\n plotOptions: {\n series: {\n dataLabels: {\n enabled: false\n }\n }\n }\n};\nconst DEFAULT_COLOR = '#007FAA';\nconst getWeightBy = func => data => data.reduce((max, b) => func(max, b.weight), data[0].weight);\nconst colorizeModel = (data, colorPalette) => {\n const minOccurrence = getWeightBy(Math.min)(data);\n const maxOccurrence = getWeightBy(Math.max)(data);\n const spread = maxOccurrence - minOccurrence;\n const colorPaletteLength = colorPalette.length;\n const margin = Math.ceil(spread / colorPaletteLength);\n return data.map(w => {\n // Math.floor to keep the value less than the length of color palette\n const colorIndex = margin > 0 ? Math.floor((w.weight - minOccurrence) / margin) : 0;\n return {\n ...w,\n color: colorPalette[colorIndex >= colorPaletteLength ? colorPaletteLength - 1 : colorIndex]\n };\n });\n};\nconst transformToHighChartsWordCloudModel = (words, total, fixedColor) => words.map((w, i) => ({\n name: w.word,\n weight: w.occurrences,\n percentage: w.percentage ? w.percentage : w.occurrences / total,\n // determine top word order\n top: words.length - i,\n color: fixedColor,\n custom: w.combinedWord ?? undefined\n}));\nconst getWordCloudOptions = (data, options, fontFamily, handleClickEvent) => {\n return merge(\n // overwritable defaults\n {\n /**\n * Allows complete tooltip customization from exposed options.\n * i.e., If custom tooltip exists but doesn't have a formatter, default tooltip's formatter will always be in options.\n */\n tooltip: !options.tooltip ? tooltipConfig : {},\n series: [{\n style: {\n fontFamily: `${fontFamily}`,\n fontWeight: '400'\n },\n minFontSize: 12\n }]\n }, options,\n // not overwritable\n {\n ...BASE_OPTIONS$1,\n series: [{\n type: 'wordcloud',\n rotation: {\n from: 0,\n to: 0\n },\n data,\n events: {\n click: handleClickEvent\n }\n }]\n });\n};\nfunction LegendBlocks({\n range,\n width,\n scale,\n onFill\n}) {\n const rangeMap = Array.from(new Array(range));\n return React.createElement(React.Fragment, null, rangeMap.map((a, i) => {\n const size = width + i * 2;\n const posX = i * Math.ceil((size + 10) / 2);\n const posY = (scale - size) / 2;\n return (/* eslint-disable-next-line react/no-array-index-key */\n React.createElement(\"g\", {\n key: `part-${i}`\n }, React.createElement(\"rect\", {\n width: size,\n height: size,\n x: posX,\n y: posY,\n rx: 3,\n style: {\n fill: onFill(i)\n }\n }))\n );\n }));\n}\nconst useStyles$5 = createUseStyles(theme => ({\n line: {\n stroke: theme.palette.border.hover,\n strokeWidth: 0.7\n },\n legendText: ({\n range\n }) => ({\n fontSize: `${range}px`,\n fill: theme.palette.border.hover\n })\n}));\nfunction LegendLabel({\n range,\n width,\n isStart,\n scale,\n text\n}) {\n const styles = useStyles$5({\n range\n });\n const index = isStart ? 0 : range - 1;\n const size = width + index * 2;\n const posX = index * Math.ceil((size + 10) / 2);\n const posY = (scale - size) / 2;\n const textPosY = posY + size + (range + 6);\n return React.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"line\", {\n className: styles.line,\n x1: posX + size / 2,\n y1: posY + size + 1,\n x2: posX + size / 2,\n y2: posY + size + 6\n })), React.createElement(\"g\", null, React.createElement(\"text\", {\n x: posX + size / 2,\n y: textPosY,\n textAnchor: \"middle\",\n className: styles.legendText\n }, text)));\n}\nconst useWordCloudLegendStyles = createUseStyles(theme => ({\n legendContainer: ({\n maxWidth\n }) => ({\n border: `1px solid ${theme.palette.muted.main}`,\n paddingBottom: theme.spacing['5'],\n paddingLeft: theme.spacing['4'],\n paddingRight: theme.spacing['4'],\n paddingTop: theme.spacing['4'],\n maxWidth,\n width: '100%',\n height: '100%'\n }),\n legendWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n legendTitle: {\n textAlign: 'center',\n color: theme.palette.border.hover,\n fontSize: '11px',\n paddingBottom: theme.spacing['2']\n },\n legendLess: {\n flex: 0.2,\n alignSelf: 'center',\n textAlign: 'center',\n paddingLeft: theme.spacing['2'],\n paddingRight: theme.spacing['2'],\n color: theme.palette.border.hover,\n fontSize: '11px'\n },\n legendMore: {\n flex: 0.2,\n paddingLeft: theme.spacing['2'],\n paddingRight: theme.spacing['2'],\n color: theme.palette.border.hover,\n fontSize: '11px'\n },\n legend: {\n flex: 1\n },\n svg: {\n overflow: 'visible !important'\n }\n}));\nconst baseSize = 9;\nconst maxWidthFactor = 34;\nconst baseMaxWidth = 270;\nconst defaultLength = 8;\nconst COPY$5 = defineMessages({\n TITLE: {\n id: 'WordCloudLegend.TITLE',\n defaultMessage: 'Number of mentions',\n description: '[Type: header][Vis: med] - title of the legend'\n },\n FEWER: {\n id: 'WordCloudLegend.FEWER',\n defaultMessage: 'fewer',\n description: '[Type: header][Vis: med] - fewer'\n },\n MORE: {\n id: 'WordCloudLegend.MORE',\n defaultMessage: 'more',\n description: '[Type: header][Vis: med] - more'\n }\n});\nfunction WordCloudLegend({\n fixedColor = '#000',\n colorPalette = [],\n min,\n max\n}) {\n const range = colorPalette.length ? colorPalette.length : defaultLength;\n const scaleY = range * 4;\n const maxWidth = Math.max(baseMaxWidth, range * maxWidthFactor);\n const styles = useWordCloudLegendStyles({\n maxWidth\n });\n if (!Number.isInteger(min) || !Number.isInteger(max)) {\n return null;\n }\n return React.createElement(\"div\", {\n className: styles.legendContainer\n }, React.createElement(\"div\", {\n className: styles.legendTitle\n }, React.createElement(T, {\n desc: COPY$5.TITLE\n })), React.createElement(\"div\", {\n className: styles.legendWrapper\n }, React.createElement(\"div\", {\n className: styles.legendLess\n }, React.createElement(T, {\n desc: COPY$5.FEWER\n })), React.createElement(\"div\", {\n className: styles.legend\n }, React.createElement(\"svg\", {\n viewBox: `0 0 ${range * (range + 10)} ${scaleY}`,\n className: styles.svg,\n preserveAspectRatio: \"xMidYMid\"\n }, React.createElement(LegendBlocks, {\n range: range,\n width: baseSize,\n scale: scaleY,\n onFill: pos => !(colorPalette !== null && colorPalette !== void 0 && colorPalette.length) ? fixedColor : colorPalette[pos]\n }), React.createElement(LegendLabel, {\n range: range,\n width: baseSize,\n isStart: true,\n scale: scaleY,\n text: min\n }), React.createElement(LegendLabel, {\n range: range,\n width: baseSize,\n scale: scaleY,\n text: max\n }))), React.createElement(\"div\", {\n className: styles.legendMore\n }, React.createElement(T, {\n desc: COPY$5.MORE\n }))));\n}\n\n// Sonar compliant\nconst sortWords = words => [...words].sort((a, b) => a.occurrences - b.occurrences);\nfunction WordCloud({\n words = [],\n options = {},\n fixedColor = DEFAULT_COLOR,\n colorPalette,\n colorAssignFunction,\n showLegend,\n fontFamily = 'National 2',\n onWordClick\n}) {\n if (!words.length) {\n return null;\n }\n const total = words.reduce((acc, {\n occurrences = 0\n }) => acc + occurrences, 0);\n let data = transformToHighChartsWordCloudModel(sortWords(words), total, fixedColor);\n const minOccurrence = getWeightBy(Math.min)(data);\n const maxOccurrence = getWeightBy(Math.max)(data);\n if (colorPalette) {\n const {\n palette\n } = colorPalette;\n data = colorAssignFunction ? colorAssignFunction(data, palette) : colorizeModel(data, palette);\n }\n const handleClickEvent = evt => {\n if (onWordClick) {\n onWordClick(evt);\n }\n };\n const wordCloudOptions = getWordCloudOptions(data, options, fontFamily, handleClickEvent);\n return React.createElement(React.Fragment, null, React.createElement(HighchartsReact\n // this is needed for SSR rendering\n , {\n // this is needed for SSR rendering\n highcharts: typeof Highcharts === 'object' ? wordCloudModule(Highcharts) : Highcharts,\n options: wordCloudOptions\n }), showLegend && React.createElement(Box, {\n display: \"flex\",\n justifyContent: \"center\"\n }, React.createElement(WordCloudLegend, {\n colorPalette: colorPalette === null || colorPalette === void 0 ? void 0 : colorPalette.scales,\n fixedColor: fixedColor,\n min: minOccurrence,\n max: maxOccurrence\n })));\n}\nconst useStyles$4 = createUseStyles(theme => ({\n wdsIcons: ({\n color,\n size\n }) => {\n var _theme$palette, _theme$palette2, _theme$palette2$color;\n const fontSize = size ? {\n fontSize: theme.iconSize[size]\n } : {\n fontSize: 'inherit'\n };\n const chosenColor =\n // @ts-expect-error Fallback styles are acceptable\n ((_theme$palette = theme.palette) === null || _theme$palette === void 0 ? void 0 : _theme$palette.text[color]) || ((_theme$palette2 = theme.palette) === null || _theme$palette2 === void 0 ? void 0 : (_theme$palette2$color = _theme$palette2[color]) === null || _theme$palette2$color === void 0 ? void 0 : _theme$palette2$color.main) || 'currentColor';\n return {\n ...fontSize,\n width: '1em',\n height: '1em',\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'center',\n fill: chosenColor\n };\n }\n}));\n\n// https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging\nconst getDisplayName = Component => Component.displayName || Component.name || 'Component';\nfunction withIcon(Component) {\n function WithIcon({\n color,\n title,\n size,\n ...rest\n }) {\n const classes = useStyles$4({\n color,\n size\n });\n return React.createElement(\"svg\", {\n className: classes.wdsIcons,\n viewBox: \"0 0 16 16\",\n preserveAspectRatio: \"xMidYMid\",\n \"aria-label\": title,\n role: title ? 'img' : 'presentation',\n ...rest\n }, React.createElement(Component, null));\n }\n WithIcon.displayName = `WithIcon(${getDisplayName(Component)})`;\n WithIcon.getOriginalComponent = () => Component;\n return WithIcon;\n}\ncreateUseStyles({\n svgContainer: {\n display: 'inline-block',\n width: '1em',\n height: '1em'\n }\n});\nfunction DocumentXIconPath() {\n return React.createElement(\"path\", {\n d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM6.557 7.53 8 8.973 9.443 7.53a.765.765 0 0 1 1.083 1.082l-1.444 1.443 1.444 1.444a.765.765 0 0 1-1.083 1.082L8 11.138 6.557 12.58A.765.765 0 1 1 5.474 11.5l1.444-1.444-1.444-1.443A.765.765 0 1 1 6.557 7.53zM5.5 2.563 3.561 4.5H5.5V2.562z\"\n });\n}\nwithIcon(DocumentXIconPath);\nconst sentimentColors = {\n unknown: '#9DA5AA',\n neutral: '#F9BE00',\n negative: '#DB4D5C',\n positive: '#00BF6F'\n};\nfunction Negative() {\n return React.createElement(\"path\", {\n fill: sentimentColors.negative,\n d: \"M16.875 10.125a1.874 1.874 0 11-.001-3.749 1.874 1.874 0 01.001 3.749zM6 18.563a6 6 0 0112 0H6zM5.25 8.25a1.874 1.874 0 113.749-.001 1.874 1.874 0 01-3.749.001zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0z\",\n fillRule: \"evenodd\"\n });\n}\nconst NegativeIcon = withIcon(Negative);\nfunction Neutral() {\n return React.createElement(\"path\", {\n d: \"M4.875 17.813h14.25v-3H4.875v3zm2.25-11.438a1.874 1.874 0 11.001 3.749 1.874 1.874 0 01-.001-3.749zm9.75 0a1.874 1.874 0 11.001 3.749 1.874 1.874 0 01-.001-3.749zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0z\",\n fill: sentimentColors.neutral,\n fillRule: \"evenodd\"\n });\n}\nconst NeutralIcon = withIcon(Neutral);\nfunction Positive() {\n return React.createElement(\"path\", {\n fill: sentimentColors.positive,\n d: \"M16.875 10.125a1.874 1.874 0 11-.001-3.749 1.874 1.874 0 01.001 3.749M12 19.313a6 6 0 01-6-6h12a6 6 0 01-6 6M5.25 8.25a1.874 1.874 0 113.749-.001 1.874 1.874 0 01-3.749.001M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0\",\n fillRule: \"evenodd\"\n });\n}\nconst PositiveIcon = withIcon(Positive);\nfunction Unknown() {\n return React.createElement(\"path\", {\n d: \"M14.177 11.626c-1.011.874-1.408 1.425-1.427 2.374h-2.42c0-1.5.575-2.202 1.468-3 .773-.702 1.625-1.158 1.625-2.26 0-.892-.634-1.65-1.844-1.65-1.229 0-2.041.872-2.22 2.201L7 8.645C7.338 6.746 8.963 5 11.739 5 14.414 5 16 6.557 16 8.55c0 1.444-.872 2.24-1.823 3.076M11.5 19c-.89 0-1.5-.669-1.5-1.51S10.61 16 11.5 16s1.5.649 1.5 1.49S12.39 19 11.5 19M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12 0-6.627-5.372-12-12-12\",\n fill: sentimentColors.unknown,\n fillRule: \"evenodd\"\n });\n}\nconst UnknownIcon = withIcon(Unknown);\nvar Icons = {\n negative: NegativeIcon,\n neutral: NeutralIcon,\n positive: PositiveIcon,\n unknown: UnknownIcon\n};\nfunction SentimentIcon({\n sentiment,\n size,\n title,\n ...props\n}) {\n const Icon = Icons[sentiment] ?? Icons.unknown;\n return React.createElement(Icon, {\n size: size,\n title: title,\n // Sentiment icons are 24px square, Wrench defaults to 16px\n viewBox: \"0 0 24 24\",\n // Color will be overwritten by each Icon component\n color: \"primary\",\n ...props\n });\n}\nconst sum = values => values.reduce((total, current) => total + current, 0);\nconst calculatePercentage = (count, total) => count && total ? count / total * 100 : 0;\nconst SENTIMENTS_ORDERED = ['positive', 'neutral', 'negative', 'unknown'];\nconst useSentimentChartItems = ({\n negative,\n neutral,\n positive,\n unknown\n}) => React.useMemo(() => {\n const total = sum([negative, neutral, positive, unknown]);\n const sentiments = {\n negative,\n neutral,\n positive,\n unknown\n };\n // Sort sentiments for display, calculate percentage\n const chartItems = SENTIMENTS_ORDERED.map(sentiment => ({\n sentiment,\n count: sentiments[sentiment],\n percentage: calculatePercentage(sentiments[sentiment], total)\n }));\n // Remove any sentiments with no responses\n return chartItems.filter(({\n count\n }) => count > 0);\n}, [negative, neutral, positive, unknown]);\nconst COPY$4 = defineMessages({\n PERCENT: {\n id: 'copySentiment.PERCENT',\n defaultMessage: `{percentage, number, percent}`,\n description: '[Type: label][Vis: med] - percentage rendering'\n },\n SENTIMENT: {\n id: 'copySentiment.SENTIMENT',\n defaultMessage: `{sentiment, select, \n positive {Positive}\n negative {Negative}\n neutral {Neutral}\n other {Unknown}\n }`,\n description: '[Type: label][Vis: med] - sentiment labels'\n },\n SENTIMENT_WITH_PERCENT: {\n id: 'copySentiment.SENTIMENT_WITH_PERCENT',\n defaultMessage: `{sentiment, select, \n positive {Positive: {percentage, number, percent}}\n negative {Negative: {percentage, number, percent}}\n neutral {Neutral: {percentage, number, percent}}\n other {Unknown: {percentage, number, percent}}\n }`,\n description: '[Type: label][Vis: med] - sentiment labels with percentage'\n },\n // note this copy uses UNDETECTED instead of UNKNOWN because it is specific for analyze\n FILTER_BY_SENTIMENT: {\n id: 'copySentiment.FILTER_BY_SENTIMENT',\n defaultMessage: `{sentiment, select, \n positive {Filter by positive sentiment}\n negative {Filter by negative sentiment}\n neutral {Filter by neutral sentiment}\n other {Filter by undetected sentiment}\n }`,\n description: '[Type: title][Vis: med] - filter by sentiment'\n }\n});\nconst useStyles$3 = createUseStyles(theme => ({\n chartItem: ({\n width\n }) => ({\n width: width && `${width}%`\n }),\n chartBar: ({\n color\n }) => ({\n border: `1px solid ${theme.palette.background.light}`,\n backgroundColor: color,\n height: '30px'\n })\n}));\n\n/* Chart segment layout */\nfunction ChartSegment({\n color,\n icon,\n label,\n title,\n width\n}) {\n const {\n chartBar,\n chartItem\n } = useStyles$3({\n color,\n width\n });\n return React.createElement(\"div\", {\n \"aria-label\": label,\n className: chartItem\n }, React.createElement(Box, {\n display: \"flex\",\n justifyContent: \"center\",\n mb: 3,\n mt: 3\n }, icon), React.createElement(Box, {\n mb: 3\n }, React.createElement(\"div\", {\n className: chartBar\n })), React.createElement(Box, {\n mb: 5\n }, React.createElement(Typography, {\n align: \"center\",\n variant: \"bodySm\"\n }, title)));\n}\n/* Sentiment-analysis interface */\nfunction SentimentBarChartSegment({\n percentage: percentage100Base,\n sentiment,\n size = 'md'\n}) {\n /** Copy's ICU formatting is 1 based (`1% === 0.01`) */\n const percentage = percentage100Base / 100;\n return React.createElement(ChartSegment, {\n color: sentimentColors[sentiment],\n icon: React.createElement(SentimentIcon, {\n sentiment: sentiment,\n size: size,\n title: t(COPY$4.SENTIMENT, {\n sentiment\n })\n }),\n label: t(COPY$4.SENTIMENT_WITH_PERCENT, {\n sentiment,\n percentage\n }),\n title: t(COPY$4.PERCENT, {\n percentage\n }),\n width: percentage100Base\n });\n}\nfunction SentimentBarChart({\n negative = 0,\n neutral = 0,\n positive = 0,\n unknown = 0,\n size\n}) {\n const chartItems = useSentimentChartItems({\n negative,\n neutral,\n positive,\n unknown\n });\n return React.createElement(Box, {\n display: \"flex\"\n }, chartItems.map(({\n sentiment,\n percentage\n }) => React.createElement(SentimentBarChartSegment, {\n key: sentiment,\n sentiment: sentiment,\n size: size,\n percentage: percentage\n })));\n}\nconst BASE_OPTIONS = {\n title: {\n text: ''\n },\n credits: {\n enabled: false\n },\n tooltip: {\n enabled: false\n },\n chart: {\n type: 'pie',\n backgroundColor: null\n },\n plotOptions: {\n series: {\n dataLabels: {\n enabled: true,\n allowOverlap: true\n }\n },\n pie: {\n animation: {\n duration: 100,\n easing: 'easeOutQuad'\n },\n shadow: false,\n center: ['50%', '50%'],\n cursor: 'pointer',\n credits: {\n enabled: false\n }\n }\n }\n};\nfunction SentimentDonutLabel({\n point\n}) {\n return React.createElement(ThemeProvider, {\n theme: WrenchTheme\n }, React.createElement(SentimentIcon, {\n sentiment: point.name,\n size: \"xl\",\n title: \"\"\n }), React.createElement(Box, {\n mb: 5\n }, React.createElement(Typography, {\n align: \"center\",\n variant: \"bodySm\"\n }, React.createElement(\"span\", {\n \"data-testid\": `sentiment-${point.name}`\n }, Math.round(point.y), \"%\"))));\n}\n\n// support additional SVG attributes\n(_Highcharts$AST = Highcharts.AST) === null || _Highcharts$AST === void 0 ? void 0 : _Highcharts$AST.allowedAttributes.push('viewBox');\n(_Highcharts$AST2 = Highcharts.AST) === null || _Highcharts$AST2 === void 0 ? void 0 : _Highcharts$AST2.allowedAttributes.push('preserveAspectRatio');\n(_Highcharts$AST3 = Highcharts.AST) === null || _Highcharts$AST3 === void 0 ? void 0 : _Highcharts$AST3.allowedAttributes.push('fill-rule');\n// Highcharts 9 removes some HTML tags and attributes: https://www.highcharts.com/blog/changelog/#highcharts-v9.0.0\n(_Highcharts$AST4 = Highcharts.AST) === null || _Highcharts$AST4 === void 0 ? void 0 : _Highcharts$AST4.allowedAttributes.push('data-testid');\nfunction SentimentDonutChart({\n negative = 0,\n neutral = 0,\n positive = 0,\n unknown = 0\n}) {\n const chartItems = useSentimentChartItems({\n negative,\n neutral,\n positive,\n unknown\n }).map(next => ({\n y: next.percentage,\n color: sentimentColors[next.sentiment],\n name: next.sentiment\n }));\n const options = {\n ...BASE_OPTIONS,\n series: [{\n innerSize: '70%',\n data: chartItems,\n dataLabels: {\n // allow svg rendering\n useHTML: true,\n formatter() {\n // Typescript bindings of highcharts binding of \"this.point\" missing\n /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */\n // @ts-ignore\n const {\n point\n } = this;\n // see - https://github.com/highcharts/highcharts-react/issues/23\n // This will cause warnings to occur upon integration as renderToStaticMarkup will not process layout effects\n // These warning will go away in production they stem from useLayoutEffect not working inside SSR\n return renderToStaticMarkup(React.createElement(SentimentDonutLabel, {\n point: point\n }));\n },\n // label text colour\n color: 'black',\n // position label for scaling\n distance: 30,\n // hide connector line\n connectorWidth: 0\n }\n }]\n };\n return React.createElement(HighchartsReact, {\n highcharts: Highcharts,\n options: options\n });\n}\nvar ACCESS_TYPE;\n(function (ACCESS_TYPE) {\n ACCESS_TYPE[\"REQUEST\"] = \"REQUEST\";\n ACCESS_TYPE[\"UPGRADE\"] = \"UPGRADE\";\n ACCESS_TYPE[\"FULL\"] = \"FULL\";\n ACCESS_TYPE[\"NONE\"] = \"NONE\";\n})(ACCESS_TYPE || (ACCESS_TYPE = {}));\nvar STATUS;\n(function (STATUS) {\n STATUS[\"ERROR\"] = \"error\";\n STATUS[\"SUCCESS\"] = \"success\";\n STATUS[\"IN_PROGRESS\"] = \"inProgress\";\n})(STATUS || (STATUS = {}));\ncreateUseStyles(theme => ({\n imageContainer: {\n width: '200px',\n '& > img': {\n width: '200px',\n height: '100%'\n }\n },\n textContainer: {\n marginLeft: theme.spacing[6],\n '& p': {\n marginBottom: theme.spacing[3]\n },\n '& button:first-child': {\n marginRight: theme.spacing[4]\n }\n },\n title: {\n fontWeight: theme.type.fontWeight.medium\n }\n}));\ndefineMessages({\n SENTIMENT_UPGRADE_MODAL_ALT_TEXT: {\n id: 'SentimentUpgradeModal.SENTIMENT_UPGRADE_MODAL_ALT_TEXT',\n defaultMessage: `Sentiment upgrade image`,\n description: '[Type: Label][Vis: med] - Sentiment Upgrade Modal Image alt text'\n },\n SENTIMENT_UPGRADE_MODAL_TITLE: {\n id: 'SentimentUpgradeModal.SENTIMENT_UPGRADE_MODAL_TITLE',\n defaultMessage: `Sentiment Analysis`,\n description: '[Type: Label][Vis: med] - Sentiment Upgrade Modal title'\n },\n SENTIMENT_UPGRADE_MODAL_SECTION_TITLE: {\n id: 'SentimentUpgradeModal.SENTIMENT_UPGRADE_MODAL_SECTION_TITLE',\n defaultMessage: `Know right away how people are feeling`,\n description: '[Type: Label][Vis: med] - Sentiment Upgrade Modal section title'\n },\n SENTIMENT_UPGRADE_MODAL_SECTION_DESCRIPTION: {\n id: 'SentimentUpgradeModal.SENTIMENT_UPGRADE_MODAL_SECTION_DESCRIPTION',\n defaultMessage: `Turn on sentiment analysis with just one click. We’ll classify\n your text responses as positive, neutral, or negative to\n reveal the emotion behind what people are saying.`,\n description: '[Type: Label][Vis: med] - Sentiment Upgrade Modal description'\n },\n SENTIMENT_UPGRADE_BUTTON_TEXT: {\n id: 'SentimentUpgradeModal.SENTIMENT_UPGRADE_BUTTON_TEXT',\n defaultMessage: `Upgrade`,\n description: '[Type: Label][Vis: med] - Sentiment Upgrade button text'\n },\n SENTIMENT_REQUEST_BUTTON_TEXT: {\n id: 'SentimentUpgradeModal.SENTIMENT_REQUEST_BUTTON_TEXT',\n defaultMessage: `Request feature`,\n description: '[Type: Label][Vis: med] - Sentiment request button text'\n },\n SENTIMENT_CLOSE_BUTTON_TEXT: {\n id: 'SentimentUpgradeModal.SENTIMENT_CLOSE_BUTTON_TEXT',\n defaultMessage: `No thanks`,\n description: '[Type: Label][Vis: med] - Sentiment close button text'\n }\n});\nconst defaultChartColors = ['#00BF6F', '#507CB6', '#F9BE00', '#6BC8CD', '#FF8B4F', '#7D5E90', '#D25F90', '#C7B879', '#DB4D5C', '#768086'];\nconst themedOptions = theme => ({\n colors: defaultChartColors,\n chart: {\n spacingRight: 0,\n style: {\n fontFamily: theme.type.fontFamily.base\n },\n plotBackgroundColor: theme.palette.background.light\n },\n title: {\n style: {\n fontFamily: theme.type.fontFamily.base,\n fontWeight: theme.type.fontWeight.medium.toString(),\n fontSize: theme.type.fontSize.cardTitle.toString(),\n color: theme.palette.text.dark\n },\n text: '' // remove the chart title by default\n },\n\n xAxis: {\n title: {\n text: null // use \"null\" to hide x-axis title\n },\n\n labels: {\n style: {\n fontFamily: theme.type.fontFamily.base,\n fontWeight: theme.type.fontWeight.regular.toString(),\n color: theme.palette.text.dark,\n maxWidth: 10\n },\n overflow: 'justify',\n useHTML: true,\n formatter() {\n const label = this.axis.defaultLabelFormatter.call(this);\n // TODO: revisit this after dropping IE11 support\n return formatLabelHorizontalAxis(label);\n }\n },\n lineColor: theme.palette.border.main,\n tickLength: 0\n },\n yAxis: {\n // Do not change to an array. Keep as single object. See BarChart.tsx type assertion for YAxisOptions.\n labels: {\n overflow: 'justify',\n style: {\n fontFamily: theme.type.fontFamily.base,\n paddingTop: theme.spacing[3],\n fontWeight: theme.type.fontWeight.regular.toString(),\n color: theme.palette.text.dark\n },\n useHTML: true\n },\n title: {\n text: null\n },\n offset: 0,\n lineColor: theme.palette.border.main,\n lineWidth: 1,\n gridLineColor: theme.palette.border.muted\n },\n plotOptions: {\n series: {\n animation: false,\n enableMouseTracking: false,\n dataLabels: {\n style: {\n fontWeight: theme.type.fontWeight.medium.toString(),\n fontSize: theme.type.fontSize.bodySm.toString(),\n color: theme.palette.text.dark,\n textShadow: `-1px -1px 0 ${theme.palette.text.light}, 1px -1px 0 ${theme.palette.text.light}, -1px 1px 0 ${theme.palette.text.light}, 1px 1px 0 ${theme.palette.text.light}`\n },\n useHTML: true\n },\n point: {\n events: {\n legendItemClick() {\n return false;\n }\n }\n },\n events: {\n legendItemClick() {\n return false; // disables legend item toggling\n }\n },\n\n states: {\n hover: {\n enabled: false\n },\n inactive: {\n enabled: false\n }\n }\n }\n },\n legend: {\n labelFormatter() {\n return `
${this.name}
`;\n },\n enabled: false,\n floating: false,\n borderWidth: 0,\n symbolRadius: 2,\n x: 0,\n y: 5,\n useHTML: true,\n itemDistance: 20,\n itemStyle: {\n color: theme.palette.text.dark,\n fontFamily: theme.type.fontFamily.base,\n fontSize: theme.type.fontSize.bodySm.toString(),\n fontWeight: theme.type.fontWeight.light.toString(),\n lineHeight: '20px'\n },\n itemHoverStyle: {\n color: theme.palette.text.dark\n }\n },\n tooltip: {\n animation: false,\n hideDelay: 100,\n backgroundColor: theme.palette.background.dark,\n borderWidth: 0,\n shadow: false,\n headerFormat: '',\n followPointer: true,\n style: {\n fontFamily: theme.type.fontFamily.base,\n fontSize: theme.type.fontSize.bodySm.toString(),\n color: theme.palette.text.dark\n },\n useHTML: true\n },\n credits: {\n enabled: false\n },\n accessibility: {\n enabled: true\n }\n});\nconst useDefaultOptions = () => {\n const theme = useTheme();\n return themedOptions(theme);\n};\nHighchartsAccessibility(Highcharts);\n// support additional HTML/SVG attributes\n(_Highcharts$AST5 = Highcharts.AST) === null || _Highcharts$AST5 === void 0 ? void 0 : _Highcharts$AST5.allowedAttributes.push('align');\n(_Highcharts$AST6 = Highcharts.AST) === null || _Highcharts$AST6 === void 0 ? void 0 : _Highcharts$AST6.allowedAttributes.push('title');\nconst useStyles$2 = createUseStyles({\n container: {\n '& .highcharts-container': {\n direction: 'inherit'\n }\n }\n});\n/** Wrapper around `HighchartsReact` with default values - base of all other charts */\nfunction BaseChart({\n options\n}) {\n const base = useDefaultOptions();\n const {\n container\n } = useStyles$2();\n return React.createElement(HighchartsReact, {\n containerProps: {\n style: {\n width: '100%',\n height: '100%'\n },\n className: container\n },\n highcharts: Highcharts,\n options: merge(base, options)\n });\n}\nconst getAreaChartOptions = (data, options, isPercentage = false, isStackable = false, decimalPlaces = 0) => {\n const series = data.map(el => ({\n ...el,\n type: 'area'\n }));\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n area: {\n dataLabels: {\n enabled: true,\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n },\n\n stacking: isStackable && isPercentage ? 'percent' : 'normal'\n }\n },\n tooltip: {\n // TODO: add show tooltip\n enabled: false\n },\n yAxis: {\n labels: {\n format: isPercentage ? '{value}%' : '{value}'\n },\n reversedStacks: false\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'area'\n }\n });\n};\nfunction AreaChart({\n data,\n options,\n isPercentage,\n isStackable,\n decimalPlaces\n}) {\n const areaChartOptions = getAreaChartOptions(data, options, isPercentage, isStackable, decimalPlaces);\n return React.createElement(BaseChart, {\n options: areaChartOptions\n });\n}\n\n/** checks for `{name: string, data: any}[]` */\nconst isTwoDimensionalChartData = a => Array.isArray(a) && a.every(i => typeof i === 'object' && 'name' in i && 'data' in i && i.data.every(d => typeof d === 'number' || typeof d === 'object'));\n/* checks for `{value: any}` */\nconst isScalarChartData = a => typeof a === 'object' && a !== null && 'value' in a;\n// Chart Type Guards\nconst isBarChartData = a => {\n return Array.isArray(a) && a.every(i => typeof i === 'number') || isTwoDimensionalChartData(a);\n};\nconst isStackedBarChartData = a => isTwoDimensionalChartData(a);\nconst isLineChartData = a => isTwoDimensionalChartData(a);\nconst isAreaChartData = a => isTwoDimensionalChartData(a);\nconst isPieOrDonutChartData = a => {\n return Array.isArray(a) && a.every(i => 'name' in i && 'value' in i && 'numberOfResponses' in i);\n};\nconst isNpsGaugeChartData = a => isScalarChartData(a);\nconst isRatingChartData = a => isScalarChartData(a);\nconst isVanWestendorpChartData = a => {\n return typeof a === 'object' && a !== null && 'series' in a && 'metadata' in a;\n};\nconst isChartData = a => Array.isArray(a) && a.length > 0 || isRatingChartData(a) || isNpsGaugeChartData(a);\nconst getBarChartOptions = (data, options, isPercentage = false, decimalPlaces = 0) => {\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n bar: {\n colorByPoint: true,\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n inside: false\n }\n }\n },\n xAxis: {\n labels: {\n formatter: formatLabelVerticalAxis\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series: isTwoDimensionalChartData(data) ? data.map(d => ({\n ...d,\n type: 'bar'\n })) : [{\n data,\n type: 'bar'\n }]\n });\n};\nfunction BarChart({\n data,\n options,\n isPercentage,\n decimalPlaces\n}) {\n const barChartOptions = getBarChartOptions(data, options, isPercentage, decimalPlaces);\n return React.createElement(BaseChart, {\n options: barChartOptions\n });\n}\nconst getColumnChartOptions = (data, options, isPercentage = false, decimalPlaces = 0) => {\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n column: {\n colorByPoint: true,\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n inside: false\n }\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series: isTwoDimensionalChartData(data) ? data.map(d => ({\n ...d,\n type: 'column'\n })) : [{\n data,\n type: 'column'\n }]\n });\n};\nfunction ColumnChart({\n data,\n options,\n isPercentage,\n decimalPlaces\n}) {\n const columnChartOptions = getColumnChartOptions(data, options, isPercentage, decimalPlaces);\n return React.createElement(BaseChart, {\n options: columnChartOptions\n });\n}\nfunction getPieChartOptions(data, options) {\n const pieChartData = {\n data: data.map(({\n value,\n ...dataOptions\n }) => {\n const chartData = typeof value === 'number' ? {\n y: value\n } : value;\n return {\n ...chartData,\n ...dataOptions\n };\n }),\n type: 'pie'\n };\n return merge(options,\n // not overwritable\n {\n series: [pieChartData],\n chart: {\n type: 'pie'\n }\n });\n}\nfunction PieChart({\n data,\n options\n}) {\n const pieChartOptions = getPieChartOptions(data, options);\n return React.createElement(BaseChart, {\n options: pieChartOptions\n });\n}\n\n/** Build Donut specific options - rest is done in PieChart */\nconst getDonutChartOptions = options => merge(\n// overwritable defaults\n{\n plotOptions: {\n pie: {\n innerSize: '40%'\n }\n }\n}, options);\n/** Donut chart is a special type of PieChart (and uses it internally) */\nfunction DonutChart({\n data,\n options\n}) {\n const donutChartOptions = getDonutChartOptions(options);\n return React.createElement(PieChart, {\n data: data,\n options: donutChartOptions\n });\n}\nconst getLineChartOptions = (data, options, isPercentage = false, decimalPlaces = 0) => {\n const series = data.map(el => ({\n ...el,\n type: 'line'\n }));\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n line: {\n dataLabels: {\n enabled: true,\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n }\n }\n },\n\n tooltip: {\n // TODO: add show tooltip\n enabled: false\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'line'\n }\n });\n};\nfunction LineChart({\n data,\n options,\n isPercentage,\n decimalPlaces\n}) {\n const lineChartOptions = getLineChartOptions(data, options, isPercentage, decimalPlaces);\n return React.createElement(BaseChart, {\n options: lineChartOptions\n });\n}\nconst getStackedBarChartOptions = (data, options, isPercentage = false, showLabels = false, decimalPlaces = 0) => {\n const series = data.map(stack => ({\n ...stack,\n type: 'bar'\n }));\n return merge(\n // overwritable defaults\n {\n legend: {\n enabled: true,\n reversed: true // reverse series labels have have same order as `data` (Highcharts flips them) ref: https://www.highcharts.com/demo/bar-stacked\n },\n\n plotOptions: {\n bar: {\n stacking: isPercentage ? 'percentage' : 'normal',\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n },\n\n groupPadding: 0,\n maxPointWidth: 100 // TODO: refine this\n }\n },\n\n xAxis: {\n labels: {\n enabled: showLabels\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'bar'\n }\n });\n};\nfunction StackedBarChart({\n data,\n options,\n isPercentage,\n showLabels,\n decimalPlaces\n}) {\n const barChartOptions = getStackedBarChartOptions(data.slice().reverse(),\n // reverse series data have have same order as data inserted (Highcharts flips them)\n options, isPercentage, showLabels, decimalPlaces);\n return React.createElement(BaseChart, {\n options: barChartOptions\n });\n}\nconst getStackedColumnChartOptions = (data, options, isPercentage = false, showLabels = false, decimalPlaces = 0) => {\n const series = data.map(stack => ({\n ...stack,\n type: 'column'\n }));\n return merge(\n // overwritable defaults\n {\n legend: {\n enabled: true,\n reversed: true // reverse series labels have have same order as `data` (Highcharts flips them) ref: https://www.highcharts.com/demo/bar-stacked\n },\n\n plotOptions: {\n column: {\n stacking: isPercentage ? 'percentage' : 'normal',\n dataLabels: {\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n style: {\n textOutline: '1px contrast'\n },\n useHTML: false // needed for textOutline\n },\n\n groupPadding: 0,\n maxPointWidth: 100 // TODO: refine this\n }\n },\n\n xAxis: {\n labels: {\n enabled: showLabels\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series,\n chart: {\n type: 'column'\n }\n });\n};\nfunction StackedColumnChart({\n data,\n options,\n isPercentage,\n showLabels,\n decimalPlaces\n}) {\n const columnChartOptions = getStackedColumnChartOptions(data.slice().reverse(),\n // reverse series data have have same order as data inserted (Highcharts flips them)\n options, isPercentage, showLabels, decimalPlaces);\n return React.createElement(BaseChart, {\n options: columnChartOptions\n });\n}\nconst useStyles$1 = createUseStyles(theme => {\n return {\n cellPaddingBottom: {\n paddingBottom: theme.spacing[2]\n },\n cellPaddingTop: {\n paddingTop: theme.spacing[2]\n },\n divider: {\n height: '0px',\n borderBottom: theme.border.main\n },\n table: {\n width: '275px',\n color: theme.palette.text.dark,\n fontSize: theme.type.fontSize.bodySm\n },\n tablePadding: {\n paddingTop: theme.spacing[5]\n },\n title: {\n fontWeight: theme.type.fontWeight.medium\n },\n numeric: {\n textAlign: 'right'\n }\n };\n});\n\n/**\n * @file Provides the helper functions & types for the vanwestendorp chart.\n */\nconst COPY$3 = defineMessages({\n OPP_TITLE: {\n id: 'helper.OPP_TITLE',\n defaultMessage: 'OPP',\n description: '[Type: Label][Vis: med] - OPP title'\n },\n OPP_FULL_FORM: {\n id: 'helper.OPP_DESCRIPTION',\n defaultMessage: 'Optimal price point',\n description: '[Type: Label][Vis: med] - OPP'\n },\n PMC_TITLE: {\n id: 'helper.PMC_TITLE',\n defaultMessage: 'PMC',\n description: '[Type: Label][Vis: med] - PMC title'\n },\n PMC_FULL_FORM: {\n id: 'helper.POINT_OF_MARGINAL_CHEAPNESS',\n defaultMessage: 'Point of marginal cheapness',\n description: '[Type: Label][Vis: med] - Point of marginal cheapness'\n },\n PME_TITLE: {\n id: 'helper.PME_TITLE',\n defaultMessage: 'PME',\n description: '[Type: Label][Vis: med] - PME title'\n },\n PME_FULL_FORM: {\n id: 'helper.POINT_OF_MARGINAL_EXPENSIVENESS',\n defaultMessage: 'Point of marginal expensiveness',\n description: '[Type: Label][Vis: med] - Point of marginal expensiveness'\n },\n IPP_TITLE: {\n id: 'helper.IPP_TITLE',\n defaultMessage: 'IPP',\n description: '[Type: Label][Vis: med] - IPP title'\n },\n IPP_FULL_FORM: {\n id: 'helper.INDIFFERENCE_PRICE_POINT',\n defaultMessage: 'Indifference price point',\n description: '[Type: Label][Vis: med] - Indifference Price Point'\n },\n OPP: {\n id: 'helper.OPP',\n defaultMessage: 'Optimal price point (OPP)',\n description: '[Type: Label][Vis: med] - OPP'\n },\n PMC: {\n id: 'helper.PMC',\n defaultMessage: 'Point of marginal cheapness (PMC)',\n description: '[Type: Label][Vis: med] - PMC'\n },\n PME: {\n id: 'helper.PME',\n defaultMessage: 'Point of marginal expensiveness (PME)',\n description: '[Type: Label][Vis: med] - PME'\n },\n IPP: {\n id: 'helper.IPP',\n defaultMessage: 'Indifference price point (IPP)',\n description: '[Type: Label][Vis: med] - IPP'\n }\n});\n// Provides data to different highChartSeries, tooltip key is used in datatable & series tooltip\nconst getHighchartSeriesData = data => {\n const {\n upperBound,\n indifferent,\n optimal,\n lowerBound\n } = data.metadata;\n const acceptableRange = [[lowerBound.price, 0.0], [lowerBound.price, 100.0], [upperBound.price, 100.0], [upperBound.price, 0]];\n const PME = {\n point: t(COPY$3.PME),\n title: t(COPY$3.PME_TITLE),\n description: t(COPY$3.PME_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(upperBound.price)}`,\n percentage: `${upperBound.percentage.toFixed(2)}%`,\n response: `${upperBound.responses.toFixed(2)}`\n };\n const IPP = {\n point: t(COPY$3.IPP),\n title: t(COPY$3.IPP_TITLE),\n description: t(COPY$3.IPP_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(indifferent.price)}`,\n percentage: `${indifferent.percentage.toFixed(2)}%`,\n response: `${indifferent.responses.toFixed(2)}`\n };\n const OPP = {\n point: t(COPY$3.OPP),\n title: t(COPY$3.OPP_TITLE),\n description: t(COPY$3.OPP_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(optimal.price)}`,\n percentage: `${optimal.percentage.toFixed(2)}%`,\n response: `${optimal.responses.toFixed(2)}`\n };\n const PMC = {\n point: t(COPY$3.PMC),\n title: t(COPY$3.PMC_TITLE),\n description: t(COPY$3.PMC_FULL_FORM),\n price: `$${new Intl.NumberFormat('en-US').format(lowerBound.price)}`,\n percentage: `${lowerBound.percentage.toFixed(2)}%`,\n response: `${lowerBound.responses.toFixed(2)}`\n };\n const defaultPoint = [0, 0];\n const pointsOfInterest = [{\n tooltip: OPP,\n point: [optimal.price, parseFloat(optimal.percentage.toFixed(2))] ?? defaultPoint\n }, {\n tooltip: PMC,\n point: [lowerBound.price, parseFloat(lowerBound.percentage.toFixed(2))] ?? defaultPoint\n }, {\n tooltip: PME,\n point: [upperBound.price, parseFloat(upperBound.percentage.toFixed(2))] ?? defaultPoint\n }, {\n tooltip: IPP,\n point: [indifferent.price, parseFloat(indifferent.percentage.toFixed(2))] ?? defaultPoint\n }];\n return {\n pointsOfInterest,\n acceptableRange\n };\n};\n// Transform data into the highchart series format.\nconst getHighchartSeries = (data, pointsOfInterest, acceptableRange) => {\n const intersections = map(pointsOfInterest, 'point');\n const series = data.series.map(el => ({\n ...el\n }));\n series.push({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n type: 'area',\n name: 'Acceptable price range',\n marker: {\n enabled: false\n },\n color: '#D2D2D2',\n opacity: 0.3,\n data: acceptableRange\n });\n series.push({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n type: 'scatter',\n name: 'Points of interest',\n data: intersections,\n dataLabels: {\n enabled: true,\n formatter() {\n return `$${this.point.x.toFixed(2)}`;\n }\n },\n marker: {\n radius: 1.5,\n symbol: 'circle',\n fillColor: 'black',\n lineColor: 'black',\n lineWidth: 2\n },\n states: {\n inactive: {\n opacity: 1\n }\n },\n showInLegend: false\n });\n return series;\n};\n// Check if tooltip point is the pointOfInterest\nconst getIntersectionPoints = (pointsOfInterest, x, y) => {\n return pointsOfInterest.filter(seriesPoint => seriesPoint.point[0] === x && seriesPoint.point[1] === y) || [];\n};\n\n/**\n * @file Base page for the VanWestendorpChartDataTable steps of the Study Setup\n */\nconst COPY$2 = defineMessages({\n PRICE: {\n id: 'VanWestendorpChartDataTable.PRICE',\n defaultMessage: 'Price',\n description: '[Type: Label][Vis: med] -Price'\n },\n PERCENTAGE_OF_RESPONSES: {\n id: 'VanWestendorpChartDataTable.PERCENTAGE_OF_RESPONSES',\n defaultMessage: '% of responses',\n description: '[Type: Label][Vis: med] - Percentage of responses'\n },\n RESPONSES: {\n id: 'VanWestendorpChartDataTable.RESPONSES',\n defaultMessage: 'Responses',\n description: '[Type: Label][Vis: med] - Responses'\n }\n});\nfunction VanWestendorpChartDataTable({\n data\n}) {\n const bodyRows = data.map(item => {\n return React.createElement(Table.Row, {\n key: `row-${item.title}`\n }, React.createElement(Table.HeaderCell, null, item.point), React.createElement(Table.Cell, null, item.price), React.createElement(Table.Cell, null, item.percentage), React.createElement(Table.Cell, null, item.response));\n });\n return React.createElement(Table, {\n xScroll: true\n }, React.createElement(Table.Header, null, React.createElement(Table.Row, null, React.createElement(Table.HeaderCell, null), React.createElement(Table.HeaderCell, null, t(COPY$2.PRICE)), React.createElement(Table.HeaderCell, null, t(COPY$2.PERCENTAGE_OF_RESPONSES)), React.createElement(Table.HeaderCell, null, t(COPY$2.RESPONSES)))), React.createElement(Table.Body, null, bodyRows));\n}\nconst getVanWestendorpChartOptions = (series, xBoundaries, pointsOfInterest, options, classNames) => {\n return merge$1(\n // overridable defaults\n {\n title: '',\n legend: {\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'top',\n itemStyle: {\n fontFamily: 'National 2',\n fontWeight: '400',\n fontSize: '12px',\n color: '#404040'\n }\n },\n plotOptions: {\n series: {\n events: {\n legendItemClick() {\n return false;\n }\n }\n },\n line: {\n states: {\n inactive: {\n opacity: 1\n },\n hover: {\n enabled: false\n }\n },\n dataLabels: {\n enabled: false\n }\n }\n },\n tooltip: {\n backgroundColor: 'white',\n borderColor: 'white',\n borderRadius: 4,\n useHTML: true,\n padding: 24,\n formatter() {\n const intersectionPoints = getIntersectionPoints(pointsOfInterest, this.x, this.y);\n let result = '';\n for (let i = 0; i < (intersectionPoints === null || intersectionPoints === void 0 ? void 0 : intersectionPoints.length); i += 1) {\n const intersectionPoint = intersectionPoints[i];\n if (i > 0) {\n result += `
`;\n }\n result += `\n \n \n \n \n \n \n
${intersectionPoint.tooltip.title}
${intersectionPoint.tooltip.description}${intersectionPoint.tooltip.price}
% of responses${intersectionPoint.tooltip.percentage}
Responses${intersectionPoint.tooltip.response}
`;\n }\n return result || false;\n }\n },\n yAxis: {\n min: 0,\n max: 100,\n title: {\n style: {\n color: '#404040',\n fontFamily: 'National 2',\n fontWeight: '600',\n fontSize: '12px'\n },\n text: 'Percent'\n },\n labels: {\n format: `{value}%`\n }\n },\n xAxis: {\n // tickInterval: 1, This used display more ticks\n labels: {\n formatter() {\n return `$${this.value}`;\n }\n },\n plotLines: [{\n color: '#000000',\n value: xBoundaries.upperBound,\n dashStyle: 'LongDash',\n width: 1\n }, {\n color: '#000000',\n value: xBoundaries.lowerBound,\n dashStyle: 'LongDash',\n width: 1\n }]\n }\n }, options,\n // not overridable\n {\n series,\n credits: {\n enabled: false\n }\n });\n};\nfunction VanWestendorpChart({\n data,\n options\n}) {\n const classNames = useStyles$1();\n const {\n upperBound,\n lowerBound\n } = data.metadata;\n const {\n pointsOfInterest,\n acceptableRange\n } = getHighchartSeriesData(data);\n const series = getHighchartSeries(data, pointsOfInterest, acceptableRange);\n const xBoundaries = {\n upperBound: upperBound.price,\n lowerBound: lowerBound.price\n };\n const dataTableValues = map(pointsOfInterest, 'tooltip') || [];\n const vanWestendorpChartOptions = getVanWestendorpChartOptions(series, xBoundaries, pointsOfInterest, options, classNames);\n return React.createElement(Box, null, React.createElement(HighchartsReact, {\n highcharts: Highcharts,\n options: vanWestendorpChartOptions\n }), React.createElement(VanWestendorpChartDataTable, {\n data: dataTableValues\n }));\n}\n\n/**\n * Converts the angle from Degrees to Radians\n */\nconst angleInRadian = angle => (angle - 90) * (Math.PI / 180.0);\n/**\n * Converts polar to cartesian so the path for each element is drawn correctly.\n * @returns {{x: {number}, y: {number}}} cartesian point\n */\nconst polarToCartesian = (centerX, centerY, radius, angleInDegrees) => {\n const angle = angleInRadian(angleInDegrees);\n return {\n x: centerX + radius * Math.cos(angle),\n y: centerY + radius * Math.sin(angle)\n };\n};\n/**\n * Returns the string representation of the SVG path.\n * @returns {string} SVG string\n */\nconst drawArc = (x, y, radius, startAngle, endAngle) => {\n const start = polarToCartesian(x, y, radius, endAngle);\n const end = polarToCartesian(x, y, radius, startAngle);\n let largeArcFlag;\n if (endAngle >= startAngle) {\n largeArcFlag = endAngle - startAngle <= 180 ? '0' : '1';\n } else {\n largeArcFlag = endAngle + 360.0 - startAngle <= 180 ? '0' : '1';\n }\n return `M${start.x} ${start.y} A${radius} ${radius} 0 ${largeArcFlag} 0 ${end.x} ${end.y}`;\n};\nfunction Gauge({\n score,\n max,\n min\n}) {\n let angle = -100;\n if (score > min) {\n angle = score <= max ? score : 100;\n }\n const gauge = Math.round(angle * 1.35);\n return React.createElement(\"svg\", {\n style: {\n overflow: 'visible'\n },\n height: \"10\",\n viewBox: \"0 0 40 40\",\n x: \"-1\",\n y: \"0\"\n }, React.createElement(\"g\", {\n transform: `rotate(${gauge} 30 600) translate(0,0)`\n }, React.createElement(\"polygon\", {\n points: \"50 15, 100 100, 0 100\",\n transform: \"translate(-25,120)\",\n fill: \"#fff\"\n }), React.createElement(\"circle\", {\n cx: \"30\",\n cy: \"600\",\n r: \"385\",\n fill: \"#fff\"\n })));\n}\nconst useStyles = createUseStyles(theme => ({\n chart: {\n textAlign: 'center',\n width: 'auto',\n fontFamily: theme.type.fontFamily.base\n },\n scale: {\n color: theme.palette.text.darkMuted,\n fill: theme.palette.text.darkMuted,\n fontSize: theme.type.fontSize.body,\n fontWeight: theme.type.fontWeight.regular\n },\n score: {\n fontWeight: theme.type.fontWeight.medium,\n fontSize: '56px'\n }\n}));\nconst COPY$1 = defineMessages({\n NPS_CHART: {\n id: 'NpsGaugeChart.NPS_CHART',\n defaultMessage: 'NPS gauge chart',\n description: '[Type: label][Vis: high] - aria-label for NPS gauge chart'\n },\n NPS_SCORE: {\n id: 'NpsGaugeChart.NPS_SCORE',\n defaultMessage: 'NPS score of {score}',\n description: '[Type: label][Vis: high] - aria-label for NPS score'\n },\n NPS_SCORE_TICK: {\n id: 'NpsGaugeChart.NPS_SCORE_TICK',\n defaultMessage: 'chart tick for {score} score mark position',\n description: '[Type: label][Vis: high] - aria-label showing the chart tick score mark'\n },\n GAUGE_ARC: {\n id: 'NpsGaugeChart.NPS_ARC',\n defaultMessage: 'gauge zone for scores between {min} and {max}',\n description: '[Type: label][Vis: high] - aria-label for the gauge chart arcs'\n }\n});\nfunction NpsGaugeChart({\n data,\n colors\n}) {\n const classes = useStyles();\n const ticks = [-100, -50, 0, 50, 100];\n const score = data.value || 0;\n const theme = useTheme();\n const chartColors = colors || [theme.palette.data.ten, theme.palette.data.four, theme.palette.data.three, theme.palette.data.two];\n const getScoreColor = () => {\n if (score <= ticks[1]) {\n return chartColors[0];\n }\n if (score < ticks[2]) {\n return chartColors[1];\n }\n if (score < ticks[3]) {\n return chartColors[2];\n }\n return chartColors[3];\n };\n return React.createElement(\"div\", {\n className: classes.chart\n }, React.createElement(\"svg\", {\n height: \"250\",\n viewBox: \"0 0 290 251\",\n \"aria-labelledby\": \"gaugeChartTitle\"\n }, React.createElement(\"title\", {\n id: \"gaugeChartTitle\"\n }, t(COPY$1.NPS_CHART)), React.createElement(\"g\", null, React.createElement(\"text\", {\n \"aria-label\": `${t(COPY$1.NPS_SCORE_TICK, {\n score\n })}`,\n className: classes.scale,\n x: \"10\",\n y: \"250\"\n }, ticks[0]), React.createElement(\"path\", {\n \"aria-label\": `${t(COPY$1.GAUGE_ARC, {\n min: ticks[0],\n max: ticks[1]\n })}`,\n fill: \"none\",\n stroke: chartColors[0],\n strokeWidth: \"20\",\n d: drawArc(150, 150, 110, 223, 291)\n }), React.createElement(\"text\", {\n \"aria-label\": `${t(COPY$1.NPS_SCORE_TICK, {\n score\n })}`,\n className: classes.scale,\n x: \"0\",\n y: \"105\"\n }, ticks[1]), React.createElement(\"path\", {\n \"aria-label\": `${t(COPY$1.GAUGE_ARC, {\n min: ticks[1],\n max: ticks[2]\n })}`,\n fill: \"none\",\n stroke: chartColors[1],\n strokeWidth: \"20\",\n d: drawArc(150, 150, 110, 293, 359)\n }), React.createElement(\"text\", {\n \"aria-label\": `${t(COPY$1.NPS_SCORE_TICK, {\n score\n })}`,\n className: classes.scale,\n x: \"145\",\n y: \"18\"\n }, ticks[2]), React.createElement(\"path\", {\n \"aria-label\": `${t(COPY$1.GAUGE_ARC, {\n min: ticks[2],\n max: ticks[3]\n })}`,\n fill: \"none\",\n stroke: chartColors[2],\n strokeWidth: \"20\",\n d: drawArc(150, 150, 110, 1, 67)\n }), React.createElement(\"text\", {\n \"aria-label\": `${t(COPY$1.NPS_SCORE_TICK, {\n score\n })}`,\n className: classes.scale,\n x: \"270\",\n y: \"105\"\n }, ticks[3]), React.createElement(\"path\", {\n \"aria-label\": `${t(COPY$1.GAUGE_ARC, {\n min: ticks[3],\n max: ticks[4]\n })}`,\n fill: \"none\",\n stroke: chartColors[3],\n strokeWidth: \"20\",\n d: drawArc(150, 150, 110, 69, 135)\n }), React.createElement(\"text\", {\n \"aria-label\": `${t(COPY$1.NPS_SCORE_TICK, {\n score\n })}`,\n className: classes.scale,\n x: \"250\",\n y: \"250\"\n }, ticks[4])), React.createElement(Gauge, {\n score: score,\n max: ticks[4],\n min: ticks[0]\n }), React.createElement(\"g\", null, React.createElement(\"text\", {\n \"aria-label\": `${t(COPY$1.NPS_SCORE, {\n score\n })}`,\n x: \"150\",\n y: \"145\",\n style: {\n fill: getScoreColor()\n },\n className: classes.score,\n textAnchor: \"middle\",\n alignmentBaseline: \"central\",\n dominantBaseline: \"middle\"\n }, score))));\n}\nconst COPY = defineMessages({\n UTILITY_SCORE_TOOLTIP: {\n id: 'MaxDiffChart.UTILITY_SCORE_TOOLTIP',\n defaultMessage: 'Utility score',\n description: '[Type: Label][Vis: low] - Utility score label for chart tooltip'\n },\n CONFIDENCE_INTERVAL_TOOLTIP: {\n id: 'MaxDiffChart.CONFIDENCE_INTERVAL_TOOLTIP',\n defaultMessage: 'Confidence interval',\n description: '[Type: Label][Vis: low] - Confidence interval label for chart tooltip'\n }\n});\nif (typeof Highcharts === 'object') {\n HighchartsMore(Highcharts);\n}\nconst getMaxDiffChartOptions = (data, options, confidenceInterval, isPercentage = false, decimalPlaces = 0) => {\n let enableTooltip = false;\n let disableDataLabel = true;\n if (confidenceInterval && confidenceInterval.length !== 0) {\n enableTooltip = true;\n disableDataLabel = false;\n }\n return merge(\n // overwritable defaults\n {\n plotOptions: {\n bar: {\n enableMouseTracking: true,\n states: {\n hover: {\n enabled: enableTooltip\n }\n },\n colorByPoint: true,\n dataLabels: {\n enabled: disableDataLabel,\n format: `{y:.${decimalPlaces}f}${isPercentage ? '%' : ''}`,\n inside: false\n }\n },\n errorbar: {\n dataLabels: {\n enabled: false\n }\n }\n },\n tooltip: {\n enabled: enableTooltip,\n shared: true,\n followPointer: false,\n followTouchMove: true,\n backgroundColor: '#404040',\n useHTML: true,\n formatter() {\n if (this && this.points && 'points' in this && confidenceInterval) {\n return `
${this.x}
${t(COPY.UTILITY_SCORE_TOOLTIP)}: ${this.y.toFixed(2)}
${t(COPY.CONFIDENCE_INTERVAL_TOOLTIP)}: (${confidenceInterval[this.points[0].point.index][0].toFixed(2)}, ${confidenceInterval[this.points[0].point.index][1].toFixed(2)})
`;\n }\n return undefined;\n }\n },\n xAxis: {\n labels: {\n formatter: formatLabelVerticalAxis\n }\n },\n yAxis: {\n labels: {\n format: `{value}${isPercentage ? '%' : ''}`\n }\n }\n }, options,\n // not overwritable\n {\n series: [{\n data,\n type: 'bar'\n }, {\n data: confidenceInterval,\n type: 'errorbar'\n }]\n });\n};\nfunction MaxDiffChart({\n data,\n options,\n confidenceInterval,\n isPercentage,\n decimalPlaces\n}) {\n const maxDiffChartOptions = getMaxDiffChartOptions(data, options, confidenceInterval, isPercentage, decimalPlaces);\n return React.createElement(BaseChart, {\n options: maxDiffChartOptions\n });\n}\nexport { AreaChart, BarChart, BaseChart, ColumnChart, DonutChart, LineChart, MaxDiffChart, NpsGaugeChart, PieChart, RatingChart, RatingChartLegend, SentimentBarChart, SentimentDonutChart, SentimentIcon, StackedBarChart, StackedColumnChart, VanWestendorpChart, WordCloud, isAreaChartData, isBarChartData, isChartData, isLineChartData, isNpsGaugeChartData, isPieOrDonutChartData, isRatingChartData, isScalarChartData, isStackedBarChartData, isTwoDimensionalChartData, isVanWestendorpChartData };","import * as React from 'react';\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nvar changedArray = function changedArray(a, b) {\n if (a === void 0) {\n a = [];\n }\n if (b === void 0) {\n b = [];\n }\n return a.length !== b.length || a.some(function (item, index) {\n return !Object.is(item, b[index]);\n });\n};\nvar initialState = {\n error: null\n};\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n function ErrorBoundary() {\n var _this;\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n _this.state = initialState;\n _this.updatedWithError = false;\n _this.resetErrorBoundary = function () {\n var _this$props;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this.props.onReset == null ? void 0 : (_this$props = _this.props).onReset.apply(_this$props, args);\n _this.reset();\n };\n return _this;\n }\n ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(error) {\n return {\n error: error\n };\n };\n var _proto = ErrorBoundary.prototype;\n _proto.reset = function reset() {\n this.updatedWithError = false;\n this.setState(initialState);\n };\n _proto.componentDidCatch = function componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) == null ? void 0 : _this$props$onError.call(_this$props2, error, info);\n };\n _proto.componentDidMount = function componentDidMount() {\n var error = this.state.error;\n if (error !== null) {\n this.updatedWithError = true;\n }\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var error = this.state.error;\n var resetKeys = this.props.resetKeys; // There's an edge case where if the thing that triggered the error\n // happens to *also* be in the resetKeys array, we'd end up resetting\n // the error boundary immediately. This would likely trigger a second\n // error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call\n // of cDU after the error is set\n\n if (error !== null && !this.updatedWithError) {\n this.updatedWithError = true;\n return;\n }\n if (error !== null && changedArray(prevProps.resetKeys, resetKeys)) {\n var _this$props$onResetKe, _this$props3;\n (_this$props$onResetKe = (_this$props3 = this.props).onResetKeysChange) == null ? void 0 : _this$props$onResetKe.call(_this$props3, prevProps.resetKeys, resetKeys);\n this.reset();\n }\n };\n _proto.render = function render() {\n var error = this.state.error;\n var _this$props4 = this.props,\n fallbackRender = _this$props4.fallbackRender,\n FallbackComponent = _this$props4.FallbackComponent,\n fallback = _this$props4.fallback;\n if (error !== null) {\n var _props = {\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if ( /*#__PURE__*/React.isValidElement(fallback)) {\n return fallback;\n } else if (typeof fallbackRender === 'function') {\n return fallbackRender(_props);\n } else if (FallbackComponent) {\n return /*#__PURE__*/React.createElement(FallbackComponent, _props);\n } else {\n throw new Error('react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop');\n }\n }\n return this.props.children;\n };\n return ErrorBoundary;\n}(React.Component);\nvar classnamesExports = {};\nvar classnames = {\n get exports() {\n return classnamesExports;\n },\n set exports(v) {\n classnamesExports = v;\n }\n};\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n(function (module) {\n /* global define */\n\n (function () {\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n return classes.join(' ');\n }\n if (module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else {\n window.classNames = classNames;\n }\n })();\n})(classnames);\nexport { ErrorBoundary as E };","import React__default from 'react';\nimport { E as ErrorBoundary } from './vendor-1535a03e.js';\nimport { createUseStyles } from 'react-jss';\nimport { defineMessages, t } from '@sm/intl';\nconst useStyles$1 = createUseStyles(theme => ({\n wdsIcons: ({\n color,\n size\n }) => {\n var _theme$palette, _theme$palette2, _theme$palette2$color;\n const fontSize = size ? {\n fontSize: theme.iconSize[size]\n } : {\n fontSize: 'inherit'\n };\n const chosenColor =\n // @ts-expect-error Fallback styles are acceptable\n ((_theme$palette = theme.palette) === null || _theme$palette === void 0 ? void 0 : _theme$palette.text[color]) || ((_theme$palette2 = theme.palette) === null || _theme$palette2 === void 0 ? void 0 : (_theme$palette2$color = _theme$palette2[color]) === null || _theme$palette2$color === void 0 ? void 0 : _theme$palette2$color.main) || 'currentColor';\n return {\n ...fontSize,\n width: '1em',\n height: '1em',\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'center',\n fill: chosenColor\n };\n }\n}));\n\n// https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging\nconst getDisplayName = Component => Component.displayName || Component.name || 'Component';\nfunction withIcon(Component) {\n function WithIcon({\n color,\n title,\n size,\n ...rest\n }) {\n const classes = useStyles$1({\n color,\n size\n });\n return React__default.createElement(\"svg\", {\n className: classes.wdsIcons,\n viewBox: \"0 0 16 16\",\n preserveAspectRatio: \"xMidYMid\",\n \"aria-label\": title,\n role: title ? 'img' : 'presentation',\n ...rest\n }, React__default.createElement(Component, null));\n }\n WithIcon.displayName = `WithIcon(${getDisplayName(Component)})`;\n WithIcon.getOriginalComponent = () => Component;\n return WithIcon;\n}\ncreateUseStyles({\n svgContainer: {\n display: 'inline-block',\n width: '1em',\n height: '1em'\n }\n});\nfunction DocumentXIconPath() {\n return React__default.createElement(\"path\", {\n d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM6.557 7.53 8 8.973 9.443 7.53a.765.765 0 0 1 1.083 1.082l-1.444 1.443 1.444 1.444a.765.765 0 0 1-1.083 1.082L8 11.138 6.557 12.58A.765.765 0 1 1 5.474 11.5l1.444-1.444-1.444-1.443A.765.765 0 1 1 6.557 7.53zM5.5 2.563 3.561 4.5H5.5V2.562z\"\n });\n}\nvar IconDocumentX = withIcon(DocumentXIconPath);\nconst useStyles = createUseStyles(theme => {\n var _theme$questionBody;\n return {\n fallbackComponent: {\n fontFamily: ((_theme$questionBody = theme.questionBody) === null || _theme$questionBody === void 0 ? void 0 : _theme$questionBody.fontFamily) ?? {},\n color: theme.questionColor,\n border: `1px solid ${theme.questionColor}`,\n borderRadius: '5px',\n width: '100%',\n height: '100%',\n minHeight: '220px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& svg': {\n fill: theme.questionColor\n }\n },\n errorMessage: {\n marginLeft: `8px` // equivalent to wrench theme.spacing[2]\n }\n };\n});\n\nconst COPY = defineMessages({\n ERROR: {\n id: 'FallbackComponent.ERROR',\n defaultMessage: 'Error loading question',\n description: '[Type: label][Vis: high] - error message indicating a question could not be loaded'\n }\n});\nfunction FallbackComponent() {\n const {\n fallbackComponent,\n errorMessage\n } = useStyles();\n return React__default.createElement(\"div\", {\n className: fallbackComponent\n }, React__default.createElement(IconDocumentX, null), React__default.createElement(\"p\", {\n className: errorMessage\n }, t(COPY.ERROR)));\n}\nconst withErrorBoundary = Component => {\n const displayName = Component.displayName || Component.name || 'Component';\n function ComponentWithErrorBoundary(props) {\n return React__default.createElement(ErrorBoundary, {\n FallbackComponent: FallbackComponent\n }, React__default.createElement(Component, {\n ...props\n }));\n }\n ComponentWithErrorBoundary.displayName = `withErrorBoundary(${displayName})`;\n return ComponentWithErrorBoundary;\n};\nexport { FallbackComponent, withErrorBoundary };","import * as React from 'react';\nimport React__default, { useState, useEffect, useCallback, useMemo, createElement, PureComponent, useLayoutEffect, useRef, createContext, memo, useReducer, useContext, cloneElement, forwardRef } from 'react';\nimport { unstable_batchedUpdates, createPortal } from 'react-dom';\nimport Highcharts from 'highcharts';\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar classnamesExports = {};\nvar classnames = {\n get exports() {\n return classnamesExports;\n },\n set exports(v) {\n classnamesExports = v;\n }\n};\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n(function (module) {\n /* global define */\n\n (function () {\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n return classes.join(' ');\n }\n if (module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else {\n window.classNames = classNames;\n }\n })();\n})(classnames);\nvar classNames = classnamesExports;\nfunction _setPrototypeOf$2(o, p) {\n _setPrototypeOf$2 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf$2(o, p);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf$2(subClass, superClass);\n}\nvar changedArray = function changedArray(a, b) {\n if (a === void 0) {\n a = [];\n }\n if (b === void 0) {\n b = [];\n }\n return a.length !== b.length || a.some(function (item, index) {\n return !Object.is(item, b[index]);\n });\n};\nvar initialState = {\n error: null\n};\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n function ErrorBoundary() {\n var _this;\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n _this.state = initialState;\n _this.updatedWithError = false;\n _this.resetErrorBoundary = function () {\n var _this$props;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this.props.onReset == null ? void 0 : (_this$props = _this.props).onReset.apply(_this$props, args);\n _this.reset();\n };\n return _this;\n }\n ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(error) {\n return {\n error: error\n };\n };\n var _proto = ErrorBoundary.prototype;\n _proto.reset = function reset() {\n this.updatedWithError = false;\n this.setState(initialState);\n };\n _proto.componentDidCatch = function componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) == null ? void 0 : _this$props$onError.call(_this$props2, error, info);\n };\n _proto.componentDidMount = function componentDidMount() {\n var error = this.state.error;\n if (error !== null) {\n this.updatedWithError = true;\n }\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var error = this.state.error;\n var resetKeys = this.props.resetKeys; // There's an edge case where if the thing that triggered the error\n // happens to *also* be in the resetKeys array, we'd end up resetting\n // the error boundary immediately. This would likely trigger a second\n // error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call\n // of cDU after the error is set\n\n if (error !== null && !this.updatedWithError) {\n this.updatedWithError = true;\n return;\n }\n if (error !== null && changedArray(prevProps.resetKeys, resetKeys)) {\n var _this$props$onResetKe, _this$props3;\n (_this$props$onResetKe = (_this$props3 = this.props).onResetKeysChange) == null ? void 0 : _this$props$onResetKe.call(_this$props3, prevProps.resetKeys, resetKeys);\n this.reset();\n }\n };\n _proto.render = function render() {\n var error = this.state.error;\n var _this$props4 = this.props,\n fallbackRender = _this$props4.fallbackRender,\n FallbackComponent = _this$props4.FallbackComponent,\n fallback = _this$props4.fallback;\n if (error !== null) {\n var _props = {\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if ( /*#__PURE__*/React.isValidElement(fallback)) {\n return fallback;\n } else if (typeof fallbackRender === 'function') {\n return fallbackRender(_props);\n } else if (FallbackComponent) {\n return /*#__PURE__*/React.createElement(FallbackComponent, _props);\n } else {\n throw new Error('react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop');\n }\n }\n return this.props.children;\n };\n return ErrorBoundary;\n}(React.Component);\nvar a = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nfunction i(t) {\n return function (e) {\n var n = e || {},\n r = n.width ? String(n.width) : t.defaultWidth;\n return t.formats[r] || t.formats[t.defaultWidth];\n };\n}\nvar o = {\n date: i({\n formats: {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n },\n defaultWidth: 'full'\n }),\n time: i({\n formats: {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n },\n defaultWidth: 'full'\n }),\n dateTime: i({\n formats: {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n },\n defaultWidth: 'full'\n })\n },\n u = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n };\nfunction s(t) {\n return function (e, n) {\n var r,\n a = n || {};\n if ('formatting' === (a.context ? String(a.context) : 'standalone') && t.formattingValues) {\n var i = t.defaultFormattingWidth || t.defaultWidth,\n o = a.width ? String(a.width) : i;\n r = t.formattingValues[o] || t.formattingValues[i];\n } else {\n var u = t.defaultWidth,\n s = a.width ? String(a.width) : t.defaultWidth;\n r = t.values[s] || t.values[u];\n }\n return r[t.argumentCallback ? t.argumentCallback(e) : e];\n };\n}\nfunction c(t) {\n return function (e, n) {\n var r = String(e),\n a = n || {},\n i = a.width,\n o = i && t.matchPatterns[i] || t.matchPatterns[t.defaultMatchWidth],\n u = r.match(o);\n if (!u) return null;\n var s,\n c = u[0],\n d = i && t.parsePatterns[i] || t.parsePatterns[t.defaultParseWidth];\n return s = '[object Array]' === Object.prototype.toString.call(d) ? function (t, e) {\n for (var n = 0; n < t.length; n++) if (e(t[n])) return n;\n }(d, function (t) {\n return t.test(c);\n }) : function (t, e) {\n for (var n in t) if (t.hasOwnProperty(n) && e(t[n])) return n;\n }(d, function (t) {\n return t.test(c);\n }), s = t.valueCallback ? t.valueCallback(s) : s, {\n value: s = a.valueCallback ? a.valueCallback(s) : s,\n rest: r.slice(c.length)\n };\n };\n}\nvar d,\n l = {\n code: 'en-US',\n formatDistance: function (t, e, n) {\n var r;\n return n = n || {}, r = 'string' == typeof a[t] ? a[t] : 1 === e ? a[t].one : a[t].other.replace('{{count}}', e), n.addSuffix ? n.comparison > 0 ? 'in ' + r : r + ' ago' : r;\n },\n formatLong: o,\n formatRelative: function (t, e, n, r) {\n return u[t];\n },\n localize: {\n ordinalNumber: function (t, e) {\n var n = Number(t),\n r = n % 100;\n if (r > 20 || r < 10) switch (r % 10) {\n case 1:\n return n + 'st';\n case 2:\n return n + 'nd';\n case 3:\n return n + 'rd';\n }\n return n + 'th';\n },\n era: s({\n values: {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n },\n defaultWidth: 'wide'\n }),\n quarter: s({\n values: {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n },\n defaultWidth: 'wide',\n argumentCallback: function (t) {\n return Number(t) - 1;\n }\n }),\n month: s({\n values: {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n },\n defaultWidth: 'wide'\n }),\n day: s({\n values: {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n },\n defaultWidth: 'wide'\n }),\n dayPeriod: s({\n values: {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n },\n defaultWidth: 'wide',\n formattingValues: {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n },\n defaultFormattingWidth: 'wide'\n })\n },\n match: {\n ordinalNumber: (d = {\n matchPattern: /^(\\d+)(th|st|nd|rd)?/i,\n parsePattern: /\\d+/i,\n valueCallback: function (t) {\n return parseInt(t, 10);\n }\n }, function (t, e) {\n var n = String(t),\n r = e || {},\n a = n.match(d.matchPattern);\n if (!a) return null;\n var i = a[0],\n o = n.match(d.parsePattern);\n if (!o) return null;\n var u = d.valueCallback ? d.valueCallback(o[0]) : o[0];\n return {\n value: u = r.valueCallback ? r.valueCallback(u) : u,\n rest: n.slice(i.length)\n };\n }),\n era: c({\n matchPatterns: {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {\n any: [/^b/i, /^(a|c)/i]\n },\n defaultParseWidth: 'any'\n }),\n quarter: c({\n matchPatterns: {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {\n any: [/1/i, /2/i, /3/i, /4/i]\n },\n defaultParseWidth: 'any',\n valueCallback: function (t) {\n return t + 1;\n }\n }),\n month: c({\n matchPatterns: {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n },\n defaultParseWidth: 'any'\n }),\n day: c({\n matchPatterns: {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n },\n defaultParseWidth: 'any'\n }),\n dayPeriod: c({\n matchPatterns: {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n },\n defaultMatchWidth: 'any',\n parsePatterns: {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n },\n defaultParseWidth: 'any'\n })\n },\n options: {\n weekStartsOn: 0,\n firstWeekContainsDate: 1\n }\n };\nfunction f(t) {\n if (null === t || !0 === t || !1 === t) return NaN;\n var e = Number(t);\n return isNaN(e) ? e : e < 0 ? Math.ceil(e) : Math.floor(e);\n}\nfunction h(t, e) {\n if (e.length < t) throw new TypeError(t + ' argument' + (t > 1 ? 's' : '') + ' required, but only ' + e.length + ' present');\n}\nfunction m(t) {\n h(1, arguments);\n var e = Object.prototype.toString.call(t);\n return t instanceof Date || 'object' == typeof t && '[object Date]' === e ? new Date(t.getTime()) : 'number' == typeof t || '[object Number]' === e ? new Date(t) : ('string' != typeof t && '[object String]' !== e || 'undefined' == typeof console || (console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"), console.warn(new Error().stack)), new Date(NaN));\n}\nfunction w(t, e) {\n h(2, arguments);\n var n = m(t).getTime(),\n r = f(e);\n return new Date(n + r);\n}\nfunction g(t, e) {\n h(2, arguments);\n var n = f(e);\n return w(t, -n);\n}\nfunction y(t, e) {\n switch (t) {\n case 'P':\n return e.date({\n width: 'short'\n });\n case 'PP':\n return e.date({\n width: 'medium'\n });\n case 'PPP':\n return e.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return e.date({\n width: 'full'\n });\n }\n}\nfunction b(t, e) {\n switch (t) {\n case 'p':\n return e.time({\n width: 'short'\n });\n case 'pp':\n return e.time({\n width: 'medium'\n });\n case 'ppp':\n return e.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return e.time({\n width: 'full'\n });\n }\n}\nvar D = {\n p: b,\n P: function (t, e) {\n var n,\n r = t.match(/(P+)(p+)?/),\n a = r[1],\n i = r[2];\n if (!i) return y(t, e);\n switch (a) {\n case 'P':\n n = e.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n n = e.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n n = e.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n n = e.dateTime({\n width: 'full'\n });\n }\n return n.replace('{{date}}', y(a, e)).replace('{{time}}', b(i, e));\n }\n};\nfunction T(t) {\n return t.getTime() % 6e4;\n}\nfunction p(t) {\n var e = new Date(t.getTime()),\n n = Math.ceil(e.getTimezoneOffset());\n return e.setSeconds(0, 0), 6e4 * n + (n > 0 ? (6e4 + T(e)) % 6e4 : T(e));\n}\nvar k = ['D', 'DD'],\n x = ['YY', 'YYYY'];\nfunction C(t) {\n return -1 !== k.indexOf(t);\n}\nfunction M(t) {\n return -1 !== x.indexOf(t);\n}\nfunction U(t) {\n if ('YYYY' === t) throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n if ('YY' === t) throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n if ('D' === t) throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n if ('DD' === t) throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n}\nfunction S(t, e) {\n h(1, arguments);\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.weekStartsOn,\n i = null == a ? 0 : f(a),\n o = null == n.weekStartsOn ? i : f(n.weekStartsOn);\n if (!(o >= 0 && o <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n var u = m(t),\n s = u.getUTCDay(),\n c = (s < o ? 7 : 0) + s - o;\n return u.setUTCDate(u.getUTCDate() - c), u.setUTCHours(0, 0, 0, 0), u;\n}\nfunction P(t, e) {\n h(1, arguments);\n var n = m(t, e),\n r = n.getUTCFullYear(),\n a = e || {},\n i = a.locale,\n o = i && i.options && i.options.firstWeekContainsDate,\n u = null == o ? 1 : f(o),\n s = null == a.firstWeekContainsDate ? u : f(a.firstWeekContainsDate);\n if (!(s >= 1 && s <= 7)) throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n var c = new Date(0);\n c.setUTCFullYear(r + 1, 0, s), c.setUTCHours(0, 0, 0, 0);\n var d = S(c, e),\n l = new Date(0);\n l.setUTCFullYear(r, 0, s), l.setUTCHours(0, 0, 0, 0);\n var w = S(l, e);\n return n.getTime() >= d.getTime() ? r + 1 : n.getTime() >= w.getTime() ? r : r - 1;\n}\nfunction Y(t) {\n h(1, arguments);\n var e = 1,\n n = m(t),\n r = n.getUTCDay(),\n a = (r < e ? 7 : 0) + r - e;\n return n.setUTCDate(n.getUTCDate() - a), n.setUTCHours(0, 0, 0, 0), n;\n}\nfunction N(t) {\n h(1, arguments);\n var e = m(t),\n n = e.getUTCFullYear(),\n r = new Date(0);\n r.setUTCFullYear(n + 1, 0, 4), r.setUTCHours(0, 0, 0, 0);\n var a = Y(r),\n i = new Date(0);\n i.setUTCFullYear(n, 0, 4), i.setUTCHours(0, 0, 0, 0);\n var o = Y(i);\n return e.getTime() >= a.getTime() ? n + 1 : e.getTime() >= o.getTime() ? n : n - 1;\n}\nfunction q(t) {\n h(1, arguments);\n var e = N(t),\n n = new Date(0);\n n.setUTCFullYear(e, 0, 4), n.setUTCHours(0, 0, 0, 0);\n var r = Y(n);\n return r;\n}\nfunction B(t) {\n h(1, arguments);\n var e = m(t),\n n = Y(e).getTime() - q(e).getTime();\n return Math.round(n / 6048e5) + 1;\n}\nfunction O(t, e) {\n h(1, arguments);\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.firstWeekContainsDate,\n i = null == a ? 1 : f(a),\n o = null == n.firstWeekContainsDate ? i : f(n.firstWeekContainsDate),\n u = P(t, e),\n s = new Date(0);\n s.setUTCFullYear(u, 0, o), s.setUTCHours(0, 0, 0, 0);\n var c = S(s, e);\n return c;\n}\nfunction H(t, e) {\n h(1, arguments);\n var n = m(t),\n r = S(n, e).getTime() - O(n, e).getTime();\n return Math.round(r / 6048e5) + 1;\n}\nfunction Ut(t) {\n h(1, arguments);\n var e = m(t);\n return !isNaN(e);\n}\nfunction St(t, e) {\n for (var n = t < 0 ? '-' : '', r = Math.abs(t).toString(); r.length < e;) r = '0' + r;\n return n + r;\n}\nvar Pt = function (t, e) {\n var n = t.getUTCFullYear(),\n r = n > 0 ? n : 1 - n;\n return St('yy' === e ? r % 100 : r, e.length);\n },\n Et = function (t, e) {\n var n = t.getUTCMonth();\n return 'M' === e ? String(n + 1) : St(n + 1, 2);\n },\n Yt = function (t, e) {\n return St(t.getUTCDate(), e.length);\n },\n Nt = function (t, e) {\n return St(t.getUTCHours() % 12 || 12, e.length);\n },\n qt = function (t, e) {\n return St(t.getUTCHours(), e.length);\n },\n Bt = function (t, e) {\n return St(t.getUTCMinutes(), e.length);\n },\n Ot = function (t, e) {\n return St(t.getUTCSeconds(), e.length);\n },\n Ht = function (t, e) {\n var n = e.length,\n r = t.getUTCMilliseconds();\n return St(Math.floor(r * Math.pow(10, n - 3)), e.length);\n };\nvar Lt = 'midnight',\n Wt = 'noon',\n Ft = 'morning',\n Qt = 'afternoon',\n Rt = 'evening',\n It = 'night',\n Xt = {\n G: function (t, e, n) {\n var r = t.getUTCFullYear() > 0 ? 1 : 0;\n switch (e) {\n case 'G':\n case 'GG':\n case 'GGG':\n return n.era(r, {\n width: 'abbreviated'\n });\n case 'GGGGG':\n return n.era(r, {\n width: 'narrow'\n });\n case 'GGGG':\n default:\n return n.era(r, {\n width: 'wide'\n });\n }\n },\n y: function (t, e, n) {\n if ('yo' === e) {\n var r = t.getUTCFullYear(),\n a = r > 0 ? r : 1 - r;\n return n.ordinalNumber(a, {\n unit: 'year'\n });\n }\n return Pt(t, e);\n },\n Y: function (t, e, n, r) {\n var a = P(t, r),\n i = a > 0 ? a : 1 - a;\n return 'YY' === e ? St(i % 100, 2) : 'Yo' === e ? n.ordinalNumber(i, {\n unit: 'year'\n }) : St(i, e.length);\n },\n R: function (t, e) {\n return St(N(t), e.length);\n },\n u: function (t, e) {\n return St(t.getUTCFullYear(), e.length);\n },\n Q: function (t, e, n) {\n var r = Math.ceil((t.getUTCMonth() + 1) / 3);\n switch (e) {\n case 'Q':\n return String(r);\n case 'QQ':\n return St(r, 2);\n case 'Qo':\n return n.ordinalNumber(r, {\n unit: 'quarter'\n });\n case 'QQQ':\n return n.quarter(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'QQQQQ':\n return n.quarter(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'QQQQ':\n default:\n return n.quarter(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n q: function (t, e, n) {\n var r = Math.ceil((t.getUTCMonth() + 1) / 3);\n switch (e) {\n case 'q':\n return String(r);\n case 'qq':\n return St(r, 2);\n case 'qo':\n return n.ordinalNumber(r, {\n unit: 'quarter'\n });\n case 'qqq':\n return n.quarter(r, {\n width: 'abbreviated',\n context: 'standalone'\n });\n case 'qqqqq':\n return n.quarter(r, {\n width: 'narrow',\n context: 'standalone'\n });\n case 'qqqq':\n default:\n return n.quarter(r, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n M: function (t, e, n) {\n var r = t.getUTCMonth();\n switch (e) {\n case 'M':\n case 'MM':\n return Et(t, e);\n case 'Mo':\n return n.ordinalNumber(r + 1, {\n unit: 'month'\n });\n case 'MMM':\n return n.month(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'MMMMM':\n return n.month(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'MMMM':\n default:\n return n.month(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n L: function (t, e, n) {\n var r = t.getUTCMonth();\n switch (e) {\n case 'L':\n return String(r + 1);\n case 'LL':\n return St(r + 1, 2);\n case 'Lo':\n return n.ordinalNumber(r + 1, {\n unit: 'month'\n });\n case 'LLL':\n return n.month(r, {\n width: 'abbreviated',\n context: 'standalone'\n });\n case 'LLLLL':\n return n.month(r, {\n width: 'narrow',\n context: 'standalone'\n });\n case 'LLLL':\n default:\n return n.month(r, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n w: function (t, e, n, r) {\n var a = H(t, r);\n return 'wo' === e ? n.ordinalNumber(a, {\n unit: 'week'\n }) : St(a, e.length);\n },\n I: function (t, e, n) {\n var r = B(t);\n return 'Io' === e ? n.ordinalNumber(r, {\n unit: 'week'\n }) : St(r, e.length);\n },\n d: function (t, e, n) {\n return 'do' === e ? n.ordinalNumber(t.getUTCDate(), {\n unit: 'date'\n }) : Yt(t, e);\n },\n D: function (t, e, n) {\n var r = function (t) {\n h(1, arguments);\n var e = m(t),\n n = e.getTime();\n e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0);\n var r = e.getTime(),\n a = n - r;\n return Math.floor(a / 864e5) + 1;\n }(t);\n return 'Do' === e ? n.ordinalNumber(r, {\n unit: 'dayOfYear'\n }) : St(r, e.length);\n },\n E: function (t, e, n) {\n var r = t.getUTCDay();\n switch (e) {\n case 'E':\n case 'EE':\n case 'EEE':\n return n.day(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'EEEEE':\n return n.day(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'EEEEEE':\n return n.day(r, {\n width: 'short',\n context: 'formatting'\n });\n case 'EEEE':\n default:\n return n.day(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n e: function (t, e, n, r) {\n var a = t.getUTCDay(),\n i = (a - r.weekStartsOn + 8) % 7 || 7;\n switch (e) {\n case 'e':\n return String(i);\n case 'ee':\n return St(i, 2);\n case 'eo':\n return n.ordinalNumber(i, {\n unit: 'day'\n });\n case 'eee':\n return n.day(a, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'eeeee':\n return n.day(a, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'eeeeee':\n return n.day(a, {\n width: 'short',\n context: 'formatting'\n });\n case 'eeee':\n default:\n return n.day(a, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n c: function (t, e, n, r) {\n var a = t.getUTCDay(),\n i = (a - r.weekStartsOn + 8) % 7 || 7;\n switch (e) {\n case 'c':\n return String(i);\n case 'cc':\n return St(i, e.length);\n case 'co':\n return n.ordinalNumber(i, {\n unit: 'day'\n });\n case 'ccc':\n return n.day(a, {\n width: 'abbreviated',\n context: 'standalone'\n });\n case 'ccccc':\n return n.day(a, {\n width: 'narrow',\n context: 'standalone'\n });\n case 'cccccc':\n return n.day(a, {\n width: 'short',\n context: 'standalone'\n });\n case 'cccc':\n default:\n return n.day(a, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n i: function (t, e, n) {\n var r = t.getUTCDay(),\n a = 0 === r ? 7 : r;\n switch (e) {\n case 'i':\n return String(a);\n case 'ii':\n return St(a, e.length);\n case 'io':\n return n.ordinalNumber(a, {\n unit: 'day'\n });\n case 'iii':\n return n.day(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'iiiii':\n return n.day(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'iiiiii':\n return n.day(r, {\n width: 'short',\n context: 'formatting'\n });\n case 'iiii':\n default:\n return n.day(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n a: function (t, e, n) {\n var r = t.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (e) {\n case 'a':\n case 'aa':\n case 'aaa':\n return n.dayPeriod(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaaaa':\n return n.dayPeriod(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return n.dayPeriod(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n b: function (t, e, n) {\n var r,\n a = t.getUTCHours();\n switch (r = 12 === a ? Wt : 0 === a ? Lt : a / 12 >= 1 ? 'pm' : 'am', e) {\n case 'b':\n case 'bb':\n case 'bbb':\n return n.dayPeriod(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbbbb':\n return n.dayPeriod(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return n.dayPeriod(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n B: function (t, e, n) {\n var r,\n a = t.getUTCHours();\n switch (r = a >= 17 ? Rt : a >= 12 ? Qt : a >= 4 ? Ft : It, e) {\n case 'B':\n case 'BB':\n case 'BBB':\n return n.dayPeriod(r, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return n.dayPeriod(r, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return n.dayPeriod(r, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n h: function (t, e, n) {\n if ('ho' === e) {\n var r = t.getUTCHours() % 12;\n return 0 === r && (r = 12), n.ordinalNumber(r, {\n unit: 'hour'\n });\n }\n return Nt(t, e);\n },\n H: function (t, e, n) {\n return 'Ho' === e ? n.ordinalNumber(t.getUTCHours(), {\n unit: 'hour'\n }) : qt(t, e);\n },\n K: function (t, e, n) {\n var r = t.getUTCHours() % 12;\n return 'Ko' === e ? n.ordinalNumber(r, {\n unit: 'hour'\n }) : St(r, e.length);\n },\n k: function (t, e, n) {\n var r = t.getUTCHours();\n return 0 === r && (r = 24), 'ko' === e ? n.ordinalNumber(r, {\n unit: 'hour'\n }) : St(r, e.length);\n },\n m: function (t, e, n) {\n return 'mo' === e ? n.ordinalNumber(t.getUTCMinutes(), {\n unit: 'minute'\n }) : Bt(t, e);\n },\n s: function (t, e, n) {\n return 'so' === e ? n.ordinalNumber(t.getUTCSeconds(), {\n unit: 'second'\n }) : Ot(t, e);\n },\n S: function (t, e) {\n return Ht(t, e);\n },\n X: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset();\n if (0 === a) return 'Z';\n switch (e) {\n case 'X':\n return At(a);\n case 'XXXX':\n case 'XX':\n return zt(a);\n case 'XXXXX':\n case 'XXX':\n default:\n return zt(a, ':');\n }\n },\n x: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset();\n switch (e) {\n case 'x':\n return At(a);\n case 'xxxx':\n case 'xx':\n return zt(a);\n case 'xxxxx':\n case 'xxx':\n default:\n return zt(a, ':');\n }\n },\n O: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset();\n switch (e) {\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + Gt(a, ':');\n case 'OOOO':\n default:\n return 'GMT' + zt(a, ':');\n }\n },\n z: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset();\n switch (e) {\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + Gt(a, ':');\n case 'zzzz':\n default:\n return 'GMT' + zt(a, ':');\n }\n },\n t: function (t, e, n, r) {\n var a = r._originalDate || t;\n return St(Math.floor(a.getTime() / 1e3), e.length);\n },\n T: function (t, e, n, r) {\n return St((r._originalDate || t).getTime(), e.length);\n }\n };\nfunction Gt(t, e) {\n var n = t > 0 ? '-' : '+',\n r = Math.abs(t),\n a = Math.floor(r / 60),\n i = r % 60;\n if (0 === i) return n + String(a);\n var o = e || '';\n return n + String(a) + o + St(i, 2);\n}\nfunction At(t, e) {\n return t % 60 == 0 ? (t > 0 ? '-' : '+') + St(Math.abs(t) / 60, 2) : zt(t, e);\n}\nfunction zt(t, e) {\n var n = e || '',\n r = t > 0 ? '-' : '+',\n a = Math.abs(t);\n return r + St(Math.floor(a / 60), 2) + n + St(a % 60, 2);\n}\nvar jt = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g,\n Kt = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,\n Jt = /^'([^]*?)'?$/,\n Zt = /''/g,\n _t = /[a-zA-Z]/;\nfunction $t(t, e, n) {\n h(2, arguments);\n var r = String(e),\n a = n || {},\n i = a.locale || l,\n o = i.options && i.options.firstWeekContainsDate,\n u = null == o ? 1 : f(o),\n s = null == a.firstWeekContainsDate ? u : f(a.firstWeekContainsDate);\n if (!(s >= 1 && s <= 7)) throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n var c = i.options && i.options.weekStartsOn,\n d = null == c ? 0 : f(c),\n w = null == a.weekStartsOn ? d : f(a.weekStartsOn);\n if (!(w >= 0 && w <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n if (!i.localize) throw new RangeError('locale must contain localize property');\n if (!i.formatLong) throw new RangeError('locale must contain formatLong property');\n var v = m(t);\n if (!Ut(v)) throw new RangeError('Invalid time value');\n var y = p(v),\n b = g(v, y),\n T = {\n firstWeekContainsDate: s,\n weekStartsOn: w,\n locale: i,\n _originalDate: v\n },\n k = r.match(Kt).map(function (t) {\n var e = t[0];\n return 'p' === e || 'P' === e ? (0, D[e])(t, i.formatLong, T) : t;\n }).join('').match(jt).map(function (t) {\n if (\"''\" === t) return \"'\";\n var e = t[0];\n if (\"'\" === e) return Vt(t);\n var n = Xt[e];\n if (n) return !a.useAdditionalWeekYearTokens && M(t) && U(t), !a.useAdditionalDayOfYearTokens && C(t) && U(t), n(b, t, i.localize, T);\n if (e.match(_t)) throw new RangeError('Format string contains an unescaped latin alphabet character `' + e + '`');\n return t;\n }).join('');\n return k;\n}\nfunction Vt(t) {\n return t.match(Jt)[1].replace(Zt, \"'\");\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction te(t, e) {\n h(2, arguments);\n var n = m(t),\n r = f(e);\n return isNaN(r) ? new Date(NaN) : r ? (n.setDate(n.getDate() + r), n) : n;\n}\nfunction ee(t, e) {\n h(1, arguments);\n var n = t || {},\n r = m(n.start),\n a = m(n.end),\n i = a.getTime();\n if (!(r.getTime() <= i)) throw new RangeError('Invalid interval');\n var o = [],\n u = r;\n u.setHours(0, 0, 0, 0);\n var s = e && 'step' in e ? Number(e.step) : 1;\n if (s < 1 || isNaN(s)) throw new RangeError('`options.step` must be a number greater than 1');\n for (; u.getTime() <= i;) o.push(m(u)), u.setDate(u.getDate() + s), u.setHours(0, 0, 0, 0);\n return o;\n}\nfunction ne(t, e) {\n h(1, arguments);\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.weekStartsOn,\n i = null == a ? 0 : f(a),\n o = null == n.weekStartsOn ? i : f(n.weekStartsOn);\n if (!(o >= 0 && o <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n var u = m(t),\n s = u.getDay(),\n c = 6 + (s < o ? -7 : 0) - (s - o);\n return u.setDate(u.getDate() + c), u.setHours(23, 59, 59, 999), u;\n}\nfunction re(t) {\n h(1, arguments);\n var e = m(t);\n return e.setDate(1), e.setHours(0, 0, 0, 0), e;\n}\nfunction ae(t, e) {\n h(1, arguments);\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.weekStartsOn,\n i = null == a ? 0 : f(a),\n o = null == n.weekStartsOn ? i : f(n.weekStartsOn);\n if (!(o >= 0 && o <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n var u = m(t),\n s = u.getDay(),\n c = (s < o ? 7 : 0) + s - o;\n return u.setDate(u.getDate() - c), u.setHours(0, 0, 0, 0), u;\n}\nfunction ie(t) {\n var e = void 0 === t ? {} : t,\n n = e.firstDayOfWeek,\n r = void 0 === n ? 1 : n,\n a = e.weekdayLabelFormat,\n i = void 0 === a ? function (t) {\n return $t(t, 'iiiiii');\n } : a,\n o = new Date();\n return ee({\n start: te(ae(o), r),\n end: te(ne(o), r)\n }).reduce(function (t, e) {\n return t.push(i(e)), t;\n }, []);\n}\nfunction oe(t) {\n var e = t.year,\n n = t.month,\n r = t.firstDayOfWeek,\n a = void 0 === r ? 1 : r,\n i = t.dayLabelFormat,\n o = void 0 === i ? function (t) {\n return $t(t, 'dd');\n } : i,\n u = new Date(e, n),\n s = re(u),\n c = function (t) {\n h(1, arguments);\n var e = m(t),\n n = e.getDay();\n return n;\n }(s),\n d = function (t) {\n h(1, arguments);\n var e = m(t),\n n = e.getMonth();\n return e.setFullYear(e.getFullYear(), n + 1, 0), e.setHours(23, 59, 59, 999), e;\n }(u);\n return function () {\n for (var t = 0, e = 0, n = arguments.length; e < n; e++) t += arguments[e].length;\n var r = Array(t),\n a = 0;\n for (e = 0; e < n; e++) for (var i = arguments[e], o = 0, u = i.length; o < u; o++, a++) r[a] = i[o];\n return r;\n }(Array.from(Array(c >= a ? c - a : 6 - a + c + 1).keys()).fill(0), ee({\n start: s,\n end: d\n }).map(function (t) {\n return {\n date: t,\n dayLabel: o(t)\n };\n }));\n}\nvar ue = function (t) {\n return $t(t, 'dd');\n },\n se = function (t) {\n return $t(t, 'eeeeee');\n },\n ce = function (t) {\n return $t(t, 'MMMM yyyy');\n };\nfunction de(e) {\n var n = e.year,\n r = e.month,\n a = e.firstDayOfWeek,\n i = void 0 === a ? 1 : a,\n o = e.dayLabelFormat,\n u = void 0 === o ? ue : o,\n s = e.weekdayLabelFormat,\n c = void 0 === s ? se : s,\n d = e.monthLabelFormat,\n l = void 0 === d ? ce : d;\n return {\n days: useMemo(function () {\n return oe({\n year: n,\n month: r,\n firstDayOfWeek: i,\n dayLabelFormat: u\n });\n }, [n, r, i, u]),\n weekdayLabels: useMemo(function () {\n return ie({\n firstDayOfWeek: i,\n weekdayLabelFormat: c\n });\n }, [i, c]),\n monthLabel: l(new Date(n, r))\n };\n}\nfunction le(t, e) {\n h(2, arguments);\n var n = m(t),\n r = m(e);\n return n.getTime() < r.getTime();\n}\nfunction fe(t, e) {\n h(2, arguments);\n var n = m(t),\n r = m(e);\n return n.getTime() > r.getTime();\n}\nfunction he(t, e) {\n h(2, arguments);\n var n = e || {},\n r = m(t).getTime(),\n a = m(n.start).getTime(),\n i = m(n.end).getTime();\n if (!(a <= i)) throw new RangeError('Invalid interval');\n return r >= a && r <= i;\n}\nfunction me(t) {\n h(1, arguments);\n var e = m(t);\n return e.setHours(0, 0, 0, 0), e;\n}\nfunction we(t, e) {\n h(2, arguments);\n var n = me(t),\n r = me(e);\n return n.getTime() === r.getTime();\n}\nfunction ge(t, e) {\n h(2, arguments);\n var n = m(t),\n r = f(e);\n if (isNaN(r)) return new Date(NaN);\n if (!r) return n;\n var a = n.getDate(),\n i = new Date(n.getTime());\n i.setMonth(n.getMonth() + r + 1, 0);\n var o = i.getDate();\n return a >= o ? i : (n.setFullYear(i.getFullYear(), i.getMonth(), a), n);\n}\nvar ve = function (t, e) {\n return void 0 === t && (t = []), t.some(function (t) {\n return we(e, t);\n });\n};\nfunction ye(t, e, n) {\n return !(!e || !n) && he(t, {\n start: e,\n end: n\n });\n}\nfunction be(t, e, n) {\n return !!(e && we(t, e) || n && we(t, n));\n}\nfunction De(t, e) {\n return !(!e || !we(t, e));\n}\nfunction Te(t, e) {\n return !(!e || !we(t, e));\n}\nfunction pe(t) {\n var e = t.date,\n n = t.minBookingDate,\n r = t.maxBookingDate,\n a = t.isDateBlockedFn,\n i = t.startDate,\n o = t.endDate,\n u = t.minBookingDays,\n s = void 0 === u ? 1 : u,\n c = t.unavailableDates,\n d = void 0 === c ? [] : c,\n l = n ? new Date(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0) : n,\n f = r ? new Date(r.getFullYear(), r.getMonth(), r.getDate(), 0, 0, 0) : r;\n return !!(ve(d, e) || l && le(e, l) || f && fe(e, f) || i && !o && s > 1 && he(e, {\n start: i,\n end: te(i, s - 2)\n }) || a && a(e));\n}\nfunction ke(t) {\n var e = re(t);\n return {\n year: function (t) {\n h(1, arguments);\n var e = m(t),\n n = e.getFullYear();\n return n;\n }(e),\n month: function (t) {\n h(1, arguments);\n var e = m(t),\n n = e.getMonth();\n return n;\n }(e),\n date: e\n };\n}\nfunction xe() {\n return ke(me(Date.now()));\n}\nfunction Ce(t, e) {\n var n = e ? ke(e) : xe(),\n r = n.date,\n a = [n];\n return t > 1 && (a = Array.from(Array(t - 1).keys()).reduce(function (t) {\n return r = ge(t[t.length - 1].date, 1), t.concat([ke(r)]);\n }, a)), a;\n}\nfunction Me(t, e, n, r) {\n var a = t[r ? n > 0 ? 0 : t.length - r : n > 0 ? t.length - 1 : 0].date;\n return Array.from(Array(e).keys()).reduce(function (t) {\n return a = 0 === t.length ? ge(a, n) : ge(a, n >= 0 ? 1 : -1), n > 0 ? t.concat([ke(a)]) : [ke(a)].concat(t);\n }, []);\n}\nfunction Se(t) {\n var e = t.startDate,\n n = t.endDate,\n r = t.isDateBlocked,\n a = t.minBookingDays,\n i = t.exactMinBookingDays,\n o = t.minBookingDate,\n u = t.maxBookingDate,\n s = !o || !le(e, te(o, -1)),\n c = !u || !fe(te(e, a - 1), u);\n return !(!e || 1 !== a || n || r(e)) || (e && a > 1 && !n && !i || e && a > 0 && i && s && c || e && a > 0 && i && !o && !u ? !ee({\n start: e,\n end: te(e, a - 1)\n }).some(function (t) {\n return r(t);\n }) : !(!e || !n || i) && !le(n, te(e, a - 1)) && !ee({\n start: e,\n end: n\n }).some(function (t) {\n return r(t);\n }));\n}\nvar Pe = 'startDate';\nfunction Ye(t) {\n var a = t.startDate,\n i = t.endDate,\n o = t.focusedInput,\n u = t.minBookingDate,\n s = t.maxBookingDate,\n c = t.onDatesChange,\n d = t.initialVisibleMonth,\n l = t.exactMinBookingDays,\n f = void 0 !== l && l,\n h = t.minBookingDays,\n m = void 0 === h ? 1 : h,\n w = t.numberOfMonths,\n g = void 0 === w ? 2 : w,\n v = t.firstDayOfWeek,\n y = void 0 === v ? 1 : v,\n b = t.isDateBlocked,\n D = void 0 === b ? function () {\n return !1;\n } : b,\n T = t.unavailableDates,\n p = void 0 === T ? [] : T,\n k = t.changeActiveMonthOnSelect,\n x = void 0 === k || k,\n C = useState(function () {\n return Ce(g, a || d || null);\n }),\n M = C[0],\n U = C[1],\n S = useState(null),\n P = S[0],\n E = S[1],\n Y = useState(a),\n N = Y[0],\n q = Y[1];\n useEffect(function () {\n return 'undefined' != typeof window && window.addEventListener && window.addEventListener('keydown', L), function () {\n window.removeEventListener && window.removeEventListener('keydown', L);\n };\n });\n var B = function (t) {\n return ve(p, t) || D(t);\n },\n O = function (t) {\n q(t), (!N || N && !we(t, N)) && U(Ce(g, t));\n },\n H = function (t) {\n return pe({\n date: t,\n minBookingDate: u,\n maxBookingDate: s,\n startDate: a,\n endDate: i,\n minBookingDays: m,\n isDateBlockedFn: B\n });\n };\n function L(t) {\n if (('ArrowRight' === t.key || 'ArrowLeft' === t.key || 'ArrowDown' === t.key || 'ArrowUp' === t.key) && !N) {\n var e = M[0];\n O(e.date), U(Ce(g, e.date));\n }\n }\n var W = useCallback(function () {\n U(Me(M, g, -1)), q(null);\n }, [M, g]),\n F = useCallback(function () {\n U(Me(M, g, -1, 1)), q(null);\n }, [M, g]),\n Q = useCallback(function () {\n U(Me(M, g, 1)), q(null);\n }, [M, g]),\n R = useCallback(function () {\n U(Me(M, g, 1, 1)), q(null);\n }, [M, g]),\n I = useCallback(function (t) {\n U(Ce(g, t)), q(null);\n }, [g]),\n X = useCallback(function (t) {\n void 0 === t && (t = 1), U(Me(M, g, -(12 * t - g + 1))), q(null);\n }, [M, g]),\n G = useCallback(function (t) {\n void 0 === t && (t = 1), U(Me(M, g, 12 * t - g + 1)), q(null);\n }, [M, g]);\n return {\n firstDayOfWeek: y,\n activeMonths: M,\n isDateSelected: function (t) {\n return ye(t, a, i);\n },\n isDateHovered: function (t) {\n return function (t) {\n var e = t.date,\n n = t.startDate,\n r = t.endDate,\n a = t.isDateBlocked,\n i = t.hoveredDate,\n o = t.minBookingDays,\n u = t.exactMinBookingDays;\n return i && o > 1 && u && he(e, {\n start: i,\n end: te(i, o - 1)\n }) ? !ee({\n start: i,\n end: te(i, o - 1)\n }).some(function (t) {\n return a(t);\n }) : n && !r && i && he(e, {\n start: n,\n end: te(n, o - 1)\n }) && we(n, i) && o > 1 ? !ee({\n start: n,\n end: te(n, o - 1)\n }).some(function (t) {\n return a(t);\n }) : !(!n || r || !i || le(i, n) || !he(e, {\n start: n,\n end: i\n })) && !ee({\n start: n,\n end: i\n }).some(function (t) {\n return a(t);\n });\n }({\n date: t,\n hoveredDate: P,\n startDate: a,\n endDate: i,\n minBookingDays: m,\n exactMinBookingDays: f,\n isDateBlocked: B\n });\n },\n isFirstOrLastSelectedDate: function (t) {\n return be(t, a, i);\n },\n isStartDate: function (t) {\n return De(t, a);\n },\n isEndDate: function (t) {\n return Te(t, i);\n },\n isDateBlocked: H,\n numberOfMonths: g,\n isDateFocused: function (t) {\n return !!N && we(t, N);\n },\n focusedDate: N,\n hoveredDate: P,\n onResetDates: function () {\n c({\n startDate: null,\n endDate: null,\n focusedInput: 'startDate'\n });\n },\n onDateHover: function (t) {\n if (t) {\n if (t) {\n var e = !H(t) || a && we(t, a),\n n = !u || !le(t, te(u, -1)),\n r = !s || !fe(t, s),\n o = te(t, m - 1),\n c = !u || !le(o, u),\n d = !s || !fe(o, s),\n l = f && m > 1 && n && r && c && d,\n h = a && !i && !f && n && r,\n w = !(m > 1 && a) || he(t, {\n start: a,\n end: te(a, m - 2)\n }),\n g = a && we(t, a) && w;\n e && (l || h || g) ? E(t) : null !== P && E(null);\n }\n } else E(null);\n },\n onDateSelect: function (t) {\n ('endDate' === o || 'startDate' === o) && m > 0 && f && Se({\n minBookingDays: m,\n exactMinBookingDays: f,\n minBookingDate: u,\n maxBookingDate: s,\n isDateBlocked: B,\n startDate: t,\n endDate: null\n }) ? c({\n startDate: t,\n endDate: te(t, m - 1),\n focusedInput: null\n }) : ('endDate' === o && a && le(t, a) || 'startDate' === o && i && fe(t, i)) && !f && Se({\n minBookingDays: m,\n isDateBlocked: B,\n startDate: t,\n endDate: null\n }) ? c({\n endDate: null,\n startDate: t,\n focusedInput: 'endDate'\n }) : 'startDate' === o && !f && Se({\n minBookingDays: m,\n isDateBlocked: B,\n endDate: i,\n startDate: t\n }) ? c({\n endDate: i,\n startDate: t,\n focusedInput: 'endDate'\n }) : 'startDate' === o && !f && Se({\n minBookingDays: m,\n isDateBlocked: B,\n endDate: null,\n startDate: t\n }) ? c({\n endDate: null,\n startDate: t,\n focusedInput: 'endDate'\n }) : 'endDate' === o && a && !le(t, a) && !f && Se({\n minBookingDays: m,\n isDateBlocked: B,\n startDate: a,\n endDate: t\n }) && c({\n startDate: a,\n endDate: t,\n focusedInput: null\n }), 'endDate' !== o && (!N || N && !we(t, N)) && x && U(Ce(g, t));\n },\n onDateFocus: O,\n goToPreviousMonths: W,\n goToPreviousMonthsByOneMonth: F,\n goToNextMonths: Q,\n goToNextMonthsByOneMonth: R,\n goToDate: I,\n goToPreviousYear: X,\n goToNextYear: G\n };\n}\nfunction Ne(t) {\n var e = t.date,\n n = t.focusedDate,\n a = t.isDateSelected,\n i = t.isDateFocused,\n o = t.isFirstOrLastSelectedDate,\n u = t.isDateHovered,\n s = t.isDateBlocked,\n c = t.onDateSelect,\n d = t.onDateFocus,\n l = t.onDateHover,\n f = useCallback(function () {\n return c(e);\n }, [e, c]),\n h = useCallback(function () {\n return l(e);\n }, [e, l]),\n m = s(e) && !u(e);\n return {\n tabIndex: null === n || i(e) ? 0 : -1,\n isSelected: a(e),\n isSelectedStartOrEnd: o(e),\n isWithinHoverRange: u(e),\n disabledDate: m,\n onKeyDown: function (t) {\n 'ArrowRight' === t.key ? d(te(e, 1)) : 'ArrowLeft' === t.key ? d(te(e, -1)) : 'ArrowUp' === t.key ? d(te(e, -7)) : 'ArrowDown' === t.key && d(te(e, 7));\n },\n onClick: m ? function () {} : f,\n onMouseEnter: h\n };\n}\nfunction _extends$9() {\n _extends$9 = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$9.apply(this, arguments);\n}\nfunction _assertThisInitialized$2(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nvar safeIsNaN = Number.isNaN || function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n};\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\nvar now = hasNativePerformanceNow ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction cancelTimeout(timeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\nfunction requestTimeout(callback, delay) {\n var start = now();\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n var timeoutID = {\n id: requestAnimationFrame(tick)\n };\n return timeoutID;\n}\nvar cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\n\nfunction getRTLOffsetType(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n if (cachedRTLResult === null || recalculate) {\n var outerDiv = document.createElement('div');\n var outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n var innerDiv = document.createElement('div');\n var innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n return cachedRTLResult;\n}\nif (process.env.NODE_ENV !== 'production') ;\nvar IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;\nvar defaultItemKey$1 = function defaultItemKey(index, data) {\n return index;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\nvar devWarningsDirection = null;\nvar devWarningsTagName$1 = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /*#__PURE__*/\n new WeakSet();\n devWarningsTagName$1 = /*#__PURE__*/\n new WeakSet();\n }\n}\nfunction createListComponent(_ref) {\n var _class, _temp;\n var getItemOffset = _ref.getItemOffset,\n getEstimatedTotalSize = _ref.getEstimatedTotalSize,\n getItemSize = _ref.getItemSize,\n getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,\n getStartIndexForOffset = _ref.getStartIndexForOffset,\n getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,\n initInstanceProps = _ref.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref.validateProps;\n return _temp = _class = /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(List, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function List(props) {\n var _this;\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized$2(_assertThisInitialized$2(_this)));\n _this._outerRef = void 0;\n _this._resetIsScrollingTimeoutId = null;\n _this.state = {\n instance: _assertThisInitialized$2(_assertThisInitialized$2(_this)),\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,\n scrollUpdateWasRequested: false\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {\n return _this.props.onItemsRendered({\n overscanStartIndex: overscanStartIndex,\n overscanStopIndex: overscanStopIndex,\n visibleStartIndex: visibleStartIndex,\n visibleStopIndex: visibleStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n scrollDirection: scrollDirection,\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n _this._getItemStyle = function (index) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n itemSize = _this$props.itemSize,\n layout = _this$props.layout;\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);\n var style;\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n var _offset = getItemOffset(_this.props, index, _this._instanceProps);\n var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var isRtl = direction === 'rtl';\n var offsetHorizontal = isHorizontal ? _offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? _offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n };\n }\n return style;\n };\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n _this._onScrollHorizontal = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollWidth = _event$currentTarget.scrollWidth;\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n var direction = _this.props.direction;\n var scrollOffset = scrollLeft;\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollLeft ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n _this._onScrollVertical = function (event) {\n var _event$currentTarget2 = event.currentTarget,\n clientHeight = _event$currentTarget2.clientHeight,\n scrollHeight = _event$currentTarget2.scrollHeight,\n scrollTop = _event$currentTarget2.scrollTop;\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);\n };\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1, null);\n });\n };\n return _this;\n }\n List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps$1(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n var _proto = List.prototype;\n _proto.scrollTo = function scrollTo(scrollOffset) {\n scrollOffset = Math.max(0, scrollOffset);\n this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true\n };\n }, this._resetIsScrollingDebounced);\n };\n _proto.scrollToItem = function scrollToItem(index, align) {\n if (align === void 0) {\n align = 'auto';\n }\n var itemCount = this.props.itemCount;\n var scrollOffset = this.state.scrollOffset;\n index = Math.max(0, Math.min(index, itemCount - 1));\n this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps));\n };\n _proto.componentDidMount = function componentDidMount() {\n var _this$props2 = this.props,\n direction = _this$props2.direction,\n initialScrollOffset = _this$props2.initialScrollOffset,\n layout = _this$props2.layout;\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n this._callPropsCallbacks();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props3 = this.props,\n direction = _this$props3.direction,\n layout = _this$props3.layout;\n var _this$state = this.state,\n scrollOffset = _this$state.scrollOffset,\n scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;\n if (scrollUpdateWasRequested && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n this._callPropsCallbacks();\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemCount = _this$props4.itemCount,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey$1 : _this$props4$itemKey,\n layout = _this$props4.layout,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;\n var _this$_getRangeToRend = this._getRangeToRender(),\n startIndex = _this$_getRangeToRend[0],\n stopIndex = _this$_getRangeToRend[1];\n var items = [];\n if (itemCount > 0) {\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n items.push(createElement(children, {\n data: itemData,\n key: itemKey(_index, itemData),\n index: _index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(_index)\n }));\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: onScroll,\n ref: this._outerRefSetter,\n style: _extends$9({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%'\n }\n }));\n };\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n var itemCount = this.props.itemCount;\n if (itemCount > 0) {\n var _this$_getRangeToRend2 = this._getRangeToRender(),\n _overscanStartIndex = _this$_getRangeToRend2[0],\n _overscanStopIndex = _this$_getRangeToRend2[1],\n _visibleStartIndex = _this$_getRangeToRend2[2],\n _visibleStopIndex = _this$_getRangeToRend2[3];\n this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);\n }\n }\n if (typeof this.props.onScroll === 'function') {\n var _this$state2 = this.state,\n _scrollDirection = _this$state2.scrollDirection,\n _scrollOffset = _this$state2.scrollOffset,\n _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);\n }\n }; // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n\n _proto._getRangeToRender = function _getRangeToRender() {\n var _this$props5 = this.props,\n itemCount = _this$props5.itemCount,\n overscanCount = _this$props5.overscanCount;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollDirection = _this$state3.scrollDirection,\n scrollOffset = _this$state3.scrollOffset;\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);\n var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;\n var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n return List;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false\n }, _temp;\n} // NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nvar validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {\n var children = _ref2.children,\n direction = _ref2.direction,\n height = _ref2.height,\n layout = _ref2.layout,\n innerTagName = _ref2.innerTagName,\n outerTagName = _ref2.outerTagName,\n width = _ref2.width;\n var instance = _ref3.instance;\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) {\n devWarningsTagName$1.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n } // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.');\n }\n break;\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + (\"\\\"\" + layout + \"\\\" was specified.\"));\n }\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n if (isHorizontal && typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\nvar FixedSizeList = /*#__PURE__*/\ncreateListComponent({\n getItemOffset: function getItemOffset(_ref, index) {\n var itemSize = _ref.itemSize;\n return index * itemSize;\n },\n getItemSize: function getItemSize(_ref2, index) {\n var itemSize = _ref2.itemSize;\n return itemSize;\n },\n getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {\n var itemCount = _ref3.itemCount,\n itemSize = _ref3.itemSize;\n return itemSize * itemCount;\n },\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset) {\n var direction = _ref4.direction,\n height = _ref4.height,\n itemCount = _ref4.itemCount,\n itemSize = _ref4.itemSize,\n layout = _ref4.layout,\n width = _ref4.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var lastItemOffset = Math.max(0, itemCount * itemSize - size);\n var maxOffset = Math.min(lastItemOffset, index * itemSize);\n var minOffset = Math.max(0, index * itemSize - size + itemSize);\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {\n var itemCount = _ref5.itemCount,\n itemSize = _ref5.itemSize;\n return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {\n var direction = _ref6.direction,\n height = _ref6.height,\n itemCount = _ref6.itemCount,\n itemSize = _ref6.itemSize,\n layout = _ref6.layout,\n width = _ref6.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var offset = startIndex * itemSize;\n var size = isHorizontal ? width : height;\n var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n ));\n },\n\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref7) {\n var itemSize = _ref7.itemSize;\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\nfunction useCombinedRefs(...refs) {\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' ||\n // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\nfunction isNode(node) {\n return 'nodeType' in node;\n}\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n if (!target) {\n return window;\n }\n if (isWindow(target)) {\n return target;\n }\n if (!isNode(target)) {\n return window;\n }\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n return node instanceof getWindow(node).HTMLElement;\n}\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n if (isWindow(target)) {\n return target.document;\n }\n if (!isNode(target)) {\n return document;\n }\n if (isDocument(target)) {\n return target;\n }\n if (isHTMLElement(target)) {\n return target.ownerDocument;\n }\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function (...args) {\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\nfunction useLatestValue(value, dependencies = [value]) {\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n node.current = element;\n },\n //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return `${prefix}-${id}`;\n }, [prefix, value]);\n}\nfunction createAdjustmentFn(modifier) {\n return (object, ...adjustments) => {\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n return accumulator;\n }, {\n ...object\n });\n };\n}\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n return null;\n}\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n const {\n x,\n y\n } = transform;\n return `translate3d(${x ? Math.round(x) : 0}px, ${y ? Math.round(y) : 0}px, 0)`;\n }\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n const {\n scaleX,\n scaleY\n } = transform;\n return `scaleX(${scaleX}) scaleY(${scaleY})`;\n }\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n },\n Transition: {\n toString({\n property,\n duration,\n easing\n }) {\n return `${property} ${duration}ms ${easing}`;\n }\n }\n});\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n return element.querySelector(SELECTOR);\n}\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React__default.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\nconst visuallyHidden = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n};\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement\n } = _ref;\n return React__default.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": true\n }, announcement);\n}\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of ');\n }\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n};\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n }), [announce, announcements]));\n if (!mounted) {\n return null;\n }\n const markup = React__default.createElement(React__default.Fragment, null, React__default.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React__default.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\nvar Action;\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\nfunction noop() {}\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n return useMemo(() => [...sensors].filter(sensor => sensor != null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n if (!eventCoordinates) {\n return '0 0';\n }\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n if (top === void 0) {\n top = rect.top;\n }\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n return collisions.sort(sortCollisionsDesc);\n};\nfunction adjustScale(transform, rect1, rect2) {\n return {\n ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n return adjustments.reduce((acc, adjustment) => ({\n ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), {\n ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n return null;\n}\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n if (!parsedTransform) {\n return rect;\n }\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n let rect = element.getBoundingClientRect();\n if (options.ignoreTransform) {\n const {\n getComputedStyle\n } = getWindow(element);\n const {\n transform,\n transformOrigin\n } = getComputedStyle(element);\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n return computedStyle.position === 'fixed';\n}\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n if (!node) {\n return scrollParents;\n }\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n const {\n getComputedStyle\n } = getWindow(node);\n const computedStyle = getComputedStyle(node);\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n return findScrollableAncestors(node.parentNode);\n }\n if (!element) {\n return scrollParents;\n }\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n if (isWindow(element)) {\n return element;\n }\n if (!isNode(element)) {\n return null;\n }\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n if (isHTMLElement(element)) {\n return element;\n }\n return null;\n}\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\nvar Direction;\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n return element === document.scrollingElement;\n}\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n if (acceleration === void 0) {\n acceleration = 10;\n }\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n return {\n direction,\n speed\n };\n}\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n if (!element) {\n return;\n }\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n if (!firstScrollableAncestor) {\n return;\n }\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = {\n ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n}\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n this.target = target;\n }\n add(eventName, handler, options) {\n var _this$target2;\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n}\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n return false;\n}\nvar EventName;\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\nvar KeyboardCode;\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n})(KeyboardCode || (KeyboardCode = {}));\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n switch (event.code) {\n case KeyboardCode.Right:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n case KeyboardCode.Left:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n case KeyboardCode.Down:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n case KeyboardCode.Up:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n return undefined;\n};\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n onStart(defaultCoordinates);\n }\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n break;\n }\n }\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n if (activator && event.target !== activator) {\n return false;\n }\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n return false;\n }\n}];\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n if (activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n return;\n }\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n return;\n }\n }\n this.handleStart();\n }\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n handleMove(event) {\n var _getEventCoordinates2;\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n if (!initialCoordinates) {\n return;\n }\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates);\n if (!activated && activationConstraint) {\n // Constraint validation\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n return;\n }\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n return;\n }\n }\n if (event.cancelable) {\n event.preventDefault();\n }\n onMove(coordinates);\n }\n handleEnd() {\n const {\n onEnd\n } = this.props;\n this.detach();\n onEnd();\n }\n handleCancel() {\n const {\n onCancel\n } = this.props;\n this.detach();\n onCancel();\n }\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n removeTextSelection() {\n var _this$document$getSel;\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n}\nconst events = {\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\nconst events$2 = {\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n if (touches.length > 1) {\n return false;\n }\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\nvar AutoScrollActivator;\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\nvar TraversalOrder;\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n if (!scrollContainer) {\n return;\n }\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n if (!scrollContainerRect) {\n continue;\n }\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id !== null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n if (id === null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\nvar MeasuringStrategy;\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\nvar MeasuringFrequency;\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [containerIdsScheduledForMeasurement, setContainerIdsScheduledForMeasurement] = useState(null);\n const measuringScheduled = containerIdsScheduledForMeasurement != null;\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n if (disabledRef.current) {\n return;\n }\n setContainerIdsScheduledForMeasurement(value => value ? value.concat(ids) : ids);\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n const ids = containerIdsScheduledForMeasurement;\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || ids != null) {\n const map = new Map();\n for (let container of containers) {\n if (!container) {\n continue;\n }\n if (ids && ids.length > 0 && !ids.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n if (rect) {\n map.set(container.id, rect);\n }\n }\n return map;\n }\n return previousValue;\n }, [containers, containerIdsScheduledForMeasurement, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n requestAnimationFrame(() => measureDroppableContainers());\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (measuringScheduled) {\n setContainerIdsScheduledForMeasurement(null);\n }\n }, [measuringScheduled]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n };\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n default:\n return !dragging;\n }\n }\n}\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n if (previousValue) {\n return previousValue;\n }\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n const [rect, measureRect] = useReducer(reducer, null);\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n for (const record of records) {\n const {\n type,\n target\n } = record;\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n function reducer(currentRect) {\n if (!element) {\n return null;\n }\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n const newRect = measure(element);\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n return newRect;\n }\n}\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n if (!scrollingElement) {\n return;\n }\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n },\n // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n acc[eventName] = event => {\n handler(event, id);\n };\n return acc;\n }, {});\n }, [listeners, id]);\n}\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, measureRects] = useReducer(reducer, defaultValue$2);\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n if (elements.length > 0 && rects === defaultValue$2) {\n measureRects();\n }\n useIsomorphicLayoutEffect(() => {\n if (elements.length) {\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n }\n }, [elements]);\n return rects;\n function reducer() {\n if (!elements.length) {\n return defaultValue$2;\n }\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n }\n}\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n if (node.children.length > 1) {\n return node;\n }\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? {\n ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n toArray() {\n return Array.from(this.values());\n }\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n}\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n case Action.DragMove:\n if (!state.draggable.active) {\n return state;\n }\n return {\n ...state,\n draggable: {\n ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n case Action.DragEnd:\n case Action.DragCancel:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers\n }\n };\n }\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n if (!element || key !== element.key) {\n return state;\n }\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, {\n ...element,\n disabled\n });\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers\n }\n };\n }\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n if (!element || key !== element.key) {\n return state;\n }\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers\n }\n };\n }\n default:\n {\n return state;\n }\n }\n}\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n const draggableNode = draggableNodes.get(previousActiveId);\n if (!draggableNode) {\n return;\n }\n const {\n activatorNode,\n node\n } = draggableNode;\n if (!activatorNode.current && !node.current) {\n return;\n }\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n const focusableNode = findFirstFocusableNode(element);\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: {\n ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: {\n ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: {\n ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n if (!x) {\n rectDelta.x = 0;\n }\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n initialized.current = true;\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\nconst ActiveDraggableContext = /*#__PURE__*/createContext({\n ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n if (activeRef.current == null) {\n return;\n }\n const activeNode = draggableNodes.get(activeRef.current);\n if (!activeNode) {\n return;\n }\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n onStart(initialCoordinates) {\n const id = activeRef.current;\n if (id == null) {\n return;\n }\n const draggableNode = draggableNodes.get(id);\n if (!draggableNode) {\n return;\n }\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n });\n },\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n unstable_batchedUpdates(() => {\n setActiveSensor(sensorInstance);\n setActivatorEvent(event.nativeEvent);\n });\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n if (\n // Another sensor is already instantiating\n activeRef.current !== null ||\n // No active draggable\n !activeDraggableNode ||\n // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n if (!active || !activatorEvent) {\n return;\n }\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({\n ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React__default.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React__default.createElement(InternalContext.Provider, {\n value: internalContext\n }, React__default.createElement(PublicContext.Provider, {\n value: publicContext\n }, React__default.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React__default.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React__default.createElement(Accessibility, {\n ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n if (typeof autoScroll === 'object') {\n return {\n ...autoScroll,\n enabled\n };\n }\n return {\n enabled\n };\n }\n});\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX$1 = 'Droppable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\nfunction useDndContext() {\n return useContext(PublicContext);\n}\nconst ID_PREFIX$1$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = {\n ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useIsomorphicLayoutEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React__default.createElement(React__default.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React__default.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React__default.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\nconst defaultTransition$1 = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition$1\n } = _ref;\n if (!rect) {\n return null;\n }\n const scaleAdjustedTransform = adjustScale ? transform : {\n ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = {\n ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React__default.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n const activeDraggable = draggableNodes.get(id);\n if (!activeDraggable) {\n return;\n }\n const activeNode = activeDraggable.node.current;\n if (!activeNode) {\n return;\n }\n const measurableNode = getMeasurableNode(node);\n if (!measurableNode) {\n return;\n }\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n if (!parsedTransform) {\n return;\n }\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = {\n ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({\n ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n key++;\n return key;\n }, [id]);\n}\nconst DragOverlay = /*#__PURE__*/React__default.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React__default.createElement(NullifiedContextProvider, null, React__default.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React__default.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n if (rect) {\n accumulator[index] = rect;\n }\n return accumulator;\n }, Array(items.length));\n}\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n return disabled;\n}\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n if (!newRect || !oldRect) {\n return null;\n }\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n if (!activeNodeRect) {\n return null;\n }\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n if (!overIndexRect) {\n return null;\n }\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n const itemGap = getItemGap$1(rects, index, activeIndex);\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n if (!currentRect) {\n return 0;\n }\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React__default.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers,\n measuringScheduled\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging && !measuringScheduled) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers, measuringScheduled]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React__default.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n if (!transition || !wasDragging) {\n return false;\n }\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n if (isSorting) {\n return true;\n }\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n requestAnimationFrame(() => {\n setDerivedtransform(null);\n });\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: {\n ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n if (activeId && !previous.current.activeId) {\n previous.current.activeId = activeId;\n return;\n }\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n function getTransition() {\n if (\n // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform ||\n // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({\n ...transition,\n property: transitionProperty\n });\n }\n return undefined;\n }\n}\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n[KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\n\n// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nvar metadata$1 = {\n \"version\": 4,\n \"country_calling_codes\": {\n \"1\": [\"US\", \"AG\", \"AI\", \"AS\", \"BB\", \"BM\", \"BS\", \"CA\", \"DM\", \"DO\", \"GD\", \"GU\", \"JM\", \"KN\", \"KY\", \"LC\", \"MP\", \"MS\", \"PR\", \"SX\", \"TC\", \"TT\", \"VC\", \"VG\", \"VI\"],\n \"7\": [\"RU\", \"KZ\"],\n \"20\": [\"EG\"],\n \"27\": [\"ZA\"],\n \"30\": [\"GR\"],\n \"31\": [\"NL\"],\n \"32\": [\"BE\"],\n \"33\": [\"FR\"],\n \"34\": [\"ES\"],\n \"36\": [\"HU\"],\n \"39\": [\"IT\", \"VA\"],\n \"40\": [\"RO\"],\n \"41\": [\"CH\"],\n \"43\": [\"AT\"],\n \"44\": [\"GB\", \"GG\", \"IM\", \"JE\"],\n \"45\": [\"DK\"],\n \"46\": [\"SE\"],\n \"47\": [\"NO\", \"SJ\"],\n \"48\": [\"PL\"],\n \"49\": [\"DE\"],\n \"51\": [\"PE\"],\n \"52\": [\"MX\"],\n \"53\": [\"CU\"],\n \"54\": [\"AR\"],\n \"55\": [\"BR\"],\n \"56\": [\"CL\"],\n \"57\": [\"CO\"],\n \"58\": [\"VE\"],\n \"60\": [\"MY\"],\n \"61\": [\"AU\", \"CC\", \"CX\"],\n \"62\": [\"ID\"],\n \"63\": [\"PH\"],\n \"64\": [\"NZ\"],\n \"65\": [\"SG\"],\n \"66\": [\"TH\"],\n \"81\": [\"JP\"],\n \"82\": [\"KR\"],\n \"84\": [\"VN\"],\n \"86\": [\"CN\"],\n \"90\": [\"TR\"],\n \"91\": [\"IN\"],\n \"92\": [\"PK\"],\n \"93\": [\"AF\"],\n \"94\": [\"LK\"],\n \"95\": [\"MM\"],\n \"98\": [\"IR\"],\n \"211\": [\"SS\"],\n \"212\": [\"MA\", \"EH\"],\n \"213\": [\"DZ\"],\n \"216\": [\"TN\"],\n \"218\": [\"LY\"],\n \"220\": [\"GM\"],\n \"221\": [\"SN\"],\n \"222\": [\"MR\"],\n \"223\": [\"ML\"],\n \"224\": [\"GN\"],\n \"225\": [\"CI\"],\n \"226\": [\"BF\"],\n \"227\": [\"NE\"],\n \"228\": [\"TG\"],\n \"229\": [\"BJ\"],\n \"230\": [\"MU\"],\n \"231\": [\"LR\"],\n \"232\": [\"SL\"],\n \"233\": [\"GH\"],\n \"234\": [\"NG\"],\n \"235\": [\"TD\"],\n \"236\": [\"CF\"],\n \"237\": [\"CM\"],\n \"238\": [\"CV\"],\n \"239\": [\"ST\"],\n \"240\": [\"GQ\"],\n \"241\": [\"GA\"],\n \"242\": [\"CG\"],\n \"243\": [\"CD\"],\n \"244\": [\"AO\"],\n \"245\": [\"GW\"],\n \"246\": [\"IO\"],\n \"247\": [\"AC\"],\n \"248\": [\"SC\"],\n \"249\": [\"SD\"],\n \"250\": [\"RW\"],\n \"251\": [\"ET\"],\n \"252\": [\"SO\"],\n \"253\": [\"DJ\"],\n \"254\": [\"KE\"],\n \"255\": [\"TZ\"],\n \"256\": [\"UG\"],\n \"257\": [\"BI\"],\n \"258\": [\"MZ\"],\n \"260\": [\"ZM\"],\n \"261\": [\"MG\"],\n \"262\": [\"RE\", \"YT\"],\n \"263\": [\"ZW\"],\n \"264\": [\"NA\"],\n \"265\": [\"MW\"],\n \"266\": [\"LS\"],\n \"267\": [\"BW\"],\n \"268\": [\"SZ\"],\n \"269\": [\"KM\"],\n \"290\": [\"SH\", \"TA\"],\n \"291\": [\"ER\"],\n \"297\": [\"AW\"],\n \"298\": [\"FO\"],\n \"299\": [\"GL\"],\n \"350\": [\"GI\"],\n \"351\": [\"PT\"],\n \"352\": [\"LU\"],\n \"353\": [\"IE\"],\n \"354\": [\"IS\"],\n \"355\": [\"AL\"],\n \"356\": [\"MT\"],\n \"357\": [\"CY\"],\n \"358\": [\"FI\", \"AX\"],\n \"359\": [\"BG\"],\n \"370\": [\"LT\"],\n \"371\": [\"LV\"],\n \"372\": [\"EE\"],\n \"373\": [\"MD\"],\n \"374\": [\"AM\"],\n \"375\": [\"BY\"],\n \"376\": [\"AD\"],\n \"377\": [\"MC\"],\n \"378\": [\"SM\"],\n \"380\": [\"UA\"],\n \"381\": [\"RS\"],\n \"382\": [\"ME\"],\n \"383\": [\"XK\"],\n \"385\": [\"HR\"],\n \"386\": [\"SI\"],\n \"387\": [\"BA\"],\n \"389\": [\"MK\"],\n \"420\": [\"CZ\"],\n \"421\": [\"SK\"],\n \"423\": [\"LI\"],\n \"500\": [\"FK\"],\n \"501\": [\"BZ\"],\n \"502\": [\"GT\"],\n \"503\": [\"SV\"],\n \"504\": [\"HN\"],\n \"505\": [\"NI\"],\n \"506\": [\"CR\"],\n \"507\": [\"PA\"],\n \"508\": [\"PM\"],\n \"509\": [\"HT\"],\n \"590\": [\"GP\", \"BL\", \"MF\"],\n \"591\": [\"BO\"],\n \"592\": [\"GY\"],\n \"593\": [\"EC\"],\n \"594\": [\"GF\"],\n \"595\": [\"PY\"],\n \"596\": [\"MQ\"],\n \"597\": [\"SR\"],\n \"598\": [\"UY\"],\n \"599\": [\"CW\", \"BQ\"],\n \"670\": [\"TL\"],\n \"672\": [\"NF\"],\n \"673\": [\"BN\"],\n \"674\": [\"NR\"],\n \"675\": [\"PG\"],\n \"676\": [\"TO\"],\n \"677\": [\"SB\"],\n \"678\": [\"VU\"],\n \"679\": [\"FJ\"],\n \"680\": [\"PW\"],\n \"681\": [\"WF\"],\n \"682\": [\"CK\"],\n \"683\": [\"NU\"],\n \"685\": [\"WS\"],\n \"686\": [\"KI\"],\n \"687\": [\"NC\"],\n \"688\": [\"TV\"],\n \"689\": [\"PF\"],\n \"690\": [\"TK\"],\n \"691\": [\"FM\"],\n \"692\": [\"MH\"],\n \"850\": [\"KP\"],\n \"852\": [\"HK\"],\n \"853\": [\"MO\"],\n \"855\": [\"KH\"],\n \"856\": [\"LA\"],\n \"880\": [\"BD\"],\n \"886\": [\"TW\"],\n \"960\": [\"MV\"],\n \"961\": [\"LB\"],\n \"962\": [\"JO\"],\n \"963\": [\"SY\"],\n \"964\": [\"IQ\"],\n \"965\": [\"KW\"],\n \"966\": [\"SA\"],\n \"967\": [\"YE\"],\n \"968\": [\"OM\"],\n \"970\": [\"PS\"],\n \"971\": [\"AE\"],\n \"972\": [\"IL\"],\n \"973\": [\"BH\"],\n \"974\": [\"QA\"],\n \"975\": [\"BT\"],\n \"976\": [\"MN\"],\n \"977\": [\"NP\"],\n \"992\": [\"TJ\"],\n \"993\": [\"TM\"],\n \"994\": [\"AZ\"],\n \"995\": [\"GE\"],\n \"996\": [\"KG\"],\n \"998\": [\"UZ\"]\n },\n \"countries\": {\n \"AC\": [\"247\", \"00\", \"(?:[01589]\\\\d|[46])\\\\d{4}\", [5, 6]],\n \"AD\": [\"376\", \"00\", \"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\", [6, 8, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[135-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]]],\n \"AE\": [\"971\", \"00\", \"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{2,9})\", \"$1 $2\", [\"60|8\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[236]|[479][2-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{5})\", \"$1 $2 $3\", [\"[479]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\"],\n \"AF\": [\"93\", \"00\", \"[2-7]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], \"0\"],\n \"AG\": [\"1\", \"011\", \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([457]\\\\d{6})$|1\", \"268$1\", 0, \"268\"],\n \"AI\": [\"1\", \"011\", \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2457]\\\\d{6})$|1\", \"264$1\", 0, \"264\"],\n \"AL\": [\"355\", \"00\", \"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\", [6, 7, 8, 9], [[\"(\\\\d{3})(\\\\d{3,4})\", \"$1 $2\", [\"80|9\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2358][2-5]|4\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[23578]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"]], \"0\"],\n \"AM\": [\"374\", \"00\", \"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]0\"], \"0 $1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2|3[12]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"1|47\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[3-9]\"], \"0$1\"]], \"0\"],\n \"AO\": [\"244\", \"00\", \"[29]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]]],\n \"AR\": [\"54\", \"00\", \"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\", [10, 11], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2-$3\", [\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\", \"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"1\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[68]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[23]\"], \"0$1\", 1], [\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9(?:2[2-469]|3[3-578])\", \"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\", \"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 15-$3-$4\", [\"91\"], \"0$1\", 0, \"$1 $2 $3-$4\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3-$4\"]], \"0\", 0, \"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\", \"9$1\"],\n \"AS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([267]\\\\d{6})$|1\", \"684$1\", 0, \"684\"],\n \"AT\": [\"43\", \"00\", \"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3,12})\", \"$1 $2\", [\"1(?:11|[2-9])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})\", \"$1 $2\", [\"517\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"5[079]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,10})\", \"$1 $2\", [\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,9})\", \"$1 $2\", [\"[2-467]|5[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], \"0\"],\n \"AU\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\", [5, 6, 7, 8, 9, 10, 12], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"16\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"16\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"14|4\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[2378]\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:30|[89])\"]]], \"0\", 0, \"(183[12])|0\", 0, 0, 0, [[\"(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\", [9]], [\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, [\"163\\\\d{2,6}\", [5, 6, 7, 8, 9]], [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"],\n \"AW\": [\"297\", \"00\", \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]]],\n \"AX\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\", [5, 6, 7, 8, 9, 10, 11, 12], 0, \"0\", 0, 0, 0, 0, \"18\", 0, \"00\"],\n \"AZ\": [\"994\", \"00\", \"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[28]|2|365|46\", \"1[28]|2|365[45]|46\", \"1[28]|2|365(?:4|5[02])|46\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], \"0\"],\n \"BA\": [\"387\", \"00\", \"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[1-3]|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2-$3\", [\"[3-5]|6[56]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"6\"], \"0$1\"]], \"0\"],\n \"BB\": [\"1\", \"011\", \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"246$1\", 0, \"246\"],\n \"BD\": [\"880\", \"00\", \"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1-$2\", [\"31[5-8]|[459]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1-$2\", [\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,6})\", \"$1-$2\", [\"[13-9]|22\"], \"0$1\"], [\"(\\\\d)(\\\\d{7,8})\", \"$1-$2\", [\"2\"], \"0$1\"]], \"0\"],\n \"BE\": [\"32\", \"00\", \"4\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:80|9)0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[239]|4[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[15-8]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4\"], \"0$1\"]], \"0\"],\n \"BF\": [\"226\", \"00\", \"[025-7]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]]],\n \"BG\": [\"359\", \"00\", \"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\", [6, 7, 8, 9, 12], [[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"43[1-6]|70[1-9]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:70|8)0\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"43[1-7]|7\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[48]|9[08]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"],\n \"BH\": [\"973\", \"00\", \"[136-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[047]\"]]]],\n \"BI\": [\"257\", \"00\", \"(?:[267]\\\\d|31)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]]],\n \"BJ\": [\"229\", \"00\", \"[24-689]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-689]\"]]]],\n \"BL\": [\"590\", \"00\", \"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"9(?:(?:395|76[018])\\\\d|475[0-2])\\\\d{4}\"]]],\n \"BM\": [\"1\", \"011\", \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"441$1\", 0, \"441\"],\n \"BN\": [\"673\", \"00\", \"[2-578]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]]],\n \"BO\": [\"591\", \"00(?:1\\\\d)?\", \"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\", [8, 9], [[\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[23]|4[46]\"]], [\"(\\\\d{8})\", \"$1\", [\"[67]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\", 0, \"0(1\\\\d)?\"],\n \"BQ\": [\"599\", \"00\", \"(?:[34]1|7\\\\d)\\\\d{5}\", [7], 0, 0, 0, 0, 0, 0, \"[347]\"],\n \"BR\": [\"55\", \"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\", \"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"300|4(?:0[02]|37)\", \"4(?:02|37)0|[34]00\"]], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:[358]|90)0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1 $2-$3\", [\"[16][1-9]|[2-57-9]\"], \"($1)\"]], \"0\", 0, \"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\", \"$2\"],\n \"BS\": [\"1\", \"011\", \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([3-8]\\\\d{6})$|1\", \"242$1\", 0, \"242\"],\n \"BT\": [\"975\", \"00\", \"[17]\\\\d{7}|[2-8]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-68]|7[246]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[67]|7\"]]]],\n \"BW\": [\"267\", \"00\", \"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[24-6]|3[15-79]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]],\n \"BY\": [\"375\", \"810\", \"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"800\"], \"8 $1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\", \"$1 $2 $3\", [\"800\"], \"8 $1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\", \"$1 $2-$3\", [\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\", \"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"1(?:[56]|7[467])|2[1-3]\"], \"8 0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-4]\"], \"8 0$1\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"8 $1\"]], \"8\", 0, \"0|80?\", 0, 0, 0, 0, \"8~10\"],\n \"BZ\": [\"501\", \"00\", \"(?:0800\\\\d|[2-8])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"0\"]]]],\n \"CA\": [\"1\", \"011\", \"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\", [7, 10], 0, \"1\", 0, 0, 0, 0, 0, [[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\", [10]], [\"\", [10]], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", [10]], [\"900[2-9]\\\\d{6}\", [10]], [\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\", [10]], 0, [\"310\\\\d{4}\", [7]], 0, [\"600[2-9]\\\\d{6}\", [10]]]],\n \"CC\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10, 12], 0, \"0\", 0, \"([59]\\\\d{7})$|0\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\", [9]], [\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, 0, [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"],\n \"CD\": [\"243\", \"00\", \"[189]\\\\d{8}|[1-68]\\\\d{6}\", [7, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[1-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\"],\n \"CF\": [\"236\", \"00\", \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]]],\n \"CG\": [\"242\", \"00\", \"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02]\"]]]],\n \"CH\": [\"41\", \"00\", \"8\\\\d{11}|[2-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8[047]|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-79]|81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"8\"], \"0$1\"]], \"0\"],\n \"CI\": [\"225\", \"00\", \"[02]\\\\d{9}\", [10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\", \"$1 $2 $3 $4\", [\"2\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]]],\n \"CK\": [\"682\", \"00\", \"[2-578]\\\\d{4}\", [5], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]]],\n \"CL\": [\"56\", \"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\", \"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\", [9, 10, 11], [[\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"219\", \"2196\"], \"($1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[1-36]\"], \"($1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"9[2-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"60|8\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"60\"]]]],\n \"CM\": [\"237\", \"00\", \"[26]\\\\d{8}|88\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"88\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[26]|88\"]]]],\n \"CN\": [\"86\", \"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\", \"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5,6})\", \"$1 $2\", [\"(?:10|2[0-57-9])[19]\", \"(?:10|2[0-57-9])(?:10|9[56])\", \"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\", \"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\", \"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\", \"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:4|80)0\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|2(?:[02-57-9]|1[1-9])\", \"10|2(?:[02-57-9]|1[1-9])\", \"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-578]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"1[3-9]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"[12]\"], \"0$1\", 1]], \"0\", 0, \"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\", 0, 0, 0, 0, \"00\"],\n \"CO\": [\"57\", \"00(?:4(?:[14]4|56)|[579])\", \"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\", [10, 11], [[\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"6\"], \"($1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3[0-357]|91\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1-$2-$3\", [\"1\"], \"0$1\", 0, \"$1 $2 $3\"]], \"0\", 0, \"0(4(?:[14]4|56)|[579])?\"],\n \"CR\": [\"506\", \"00\", \"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\", [8, 10], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[3-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[89]\"]]], 0, 0, \"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\n \"CU\": [\"53\", \"119\", \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\", [6, 7, 8, 10], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"2[1-4]|[34]\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{6,7})\", \"$1 $2\", [\"7\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"8\"], \"0$1\"]], \"0\"],\n \"CV\": [\"238\", \"0\", \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2-589]\"]]]],\n \"CW\": [\"599\", \"00\", \"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[3467]\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9[4-8]\"]]], 0, 0, 0, 0, 0, \"[69]\"],\n \"CX\": [\"61\", \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\", [6, 7, 8, 9, 10, 12], 0, \"0\", 0, \"([59]\\\\d{7})$|0\", \"8$1\", 0, 0, [[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\", [9]], [\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\", [9]], [\"180(?:0\\\\d{3}|2)\\\\d{3}\", [7, 10]], [\"190[0-26]\\\\d{6}\", [10]], 0, 0, 0, 0, [\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\", [9]], [\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\", [6, 8, 10, 12]]], \"0011\"],\n \"CY\": [\"357\", \"00\", \"(?:[279]\\\\d|[58]0)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]]],\n \"CZ\": [\"420\", \"00\", \"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]|9[015-7]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"96\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]]],\n \"DE\": [\"49\", \"00\", \"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [[\"(\\\\d{2})(\\\\d{3,13})\", \"$1 $2\", [\"3[02]|40|[68]9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,12})\", \"$1 $2\", [\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\", \"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2,11})\", \"$1 $2\", [\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\", \"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"138\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{2,10})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,11})\", \"$1 $2\", [\"181\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\", \"$1 $2 $3\", [\"1(?:3|80)|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"1[67]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7,12})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"185\", \"1850\", \"18500\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"18[68]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"15[0568]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"15[1279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{8})\", \"$1 $2\", [\"18\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\", \"$1 $2 $3\", [\"1(?:6[023]|7)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\", \"$1 $2 $3\", [\"15[279]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\", \"$1 $2 $3\", [\"15\"], \"0$1\"]], \"0\"],\n \"DJ\": [\"253\", \"00\", \"(?:2\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]]],\n \"DK\": [\"45\", \"00\", \"[2-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]]],\n \"DM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"767$1\", 0, \"767\"],\n \"DO\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"8001|8[024]9\"],\n \"DZ\": [\"213\", \"00\", \"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-8]\"], \"0$1\"]], \"0\"],\n \"EC\": [\"593\", \"00\", \"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\", [8, 9, 10, 11], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[2-7]\"], \"(0$1)\", 0, \"$1-$2-$3\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"EE\": [\"372\", \"00\", \"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\", \"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]], [\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[45]|8(?:00|[1-49])\", \"[45]|8(?:00[1-9]|[1-49])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]],\n \"EG\": [\"20\", \"00\", \"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{7,8})\", \"$1 $2\", [\"[23]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,7})\", \"$1 $2\", [\"1[35]|[4-6]|8[2468]|9[235-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[189]\"], \"0$1\"]], \"0\"],\n \"EH\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], 0, \"0\", 0, 0, 0, 0, \"528[89]\"],\n \"ER\": [\"291\", \"00\", \"[178]\\\\d{6}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], \"0\"],\n \"ES\": [\"34\", \"00\", \"[5-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]00\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-9]\"]]]],\n \"ET\": [\"251\", \"00\", \"(?:11|[2-579]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-579]\"], \"0$1\"]], \"0\"],\n \"FI\": [\"358\", \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\", [5, 6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, \"1[03-79]|[2-9]\", 0, \"00\"],\n \"FJ\": [\"679\", \"0(?:0|52)\", \"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\", [7, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[235-9]|45\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"FK\": [\"500\", \"00\", \"[2-7]\\\\d{4}\", [5]],\n \"FM\": [\"691\", \"00\", \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]]],\n \"FO\": [\"298\", \"00\", \"[2-9]\\\\d{5}\", [6], [[\"(\\\\d{6})\", \"$1\", [\"[2-9]\"]]], 0, 0, \"(10(?:01|[12]0|88))\"],\n \"FR\": [\"33\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0 $1\"], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[1-79]\"], \"0$1\"]], \"0\"],\n \"GA\": [\"241\", \"00\", \"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"11|[67]\"], \"0$1\"]], 0, 0, \"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\", \"$1\"],\n \"GB\": [\"44\", \"00\", \"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\", [7, 9, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"800\", \"8001\", \"80011\", \"800111\", \"8001111\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"845\", \"8454\", \"84546\", \"845464\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"1(?:38|5[23]|69|76|94)\", \"1(?:(?:38|69)7|5(?:24|39)|768|946)\", \"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"1(?:[2-69][02-9]|[78])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[25]|7(?:0|6[02-9])\", \"[25]|7(?:0|6(?:[03-9]|2[356]))\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1389]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:[0-5]\\\\d\\\\d|69[7-9]|70[0-579])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-2]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\", [9, 10]], [\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\", [10]], [\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"], [\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\", [7, 10]], [\"70\\\\d{8}\", [10]], 0, [\"(?:3[0347]|55)\\\\d{8}\", [10]], [\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\", [10]], [\"56\\\\d{8}\", [10]]], 0, \" x\"],\n \"GD\": [\"1\", \"011\", \"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"473$1\", 0, \"473\"],\n \"GE\": [\"995\", \"00\", \"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"32\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[57]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[348]\"], \"0$1\"]], \"0\"],\n \"GF\": [\"594\", \"00\", \"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[56]|9[47]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[89]\"], \"0$1\"]], \"0\"],\n \"GG\": [\"44\", \"00\", \"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\", [7, 9, 10], 0, \"0\", 0, \"([25-9]\\\\d{5})$|0\", \"1481$1\", 0, 0, [[\"1481[25-9]\\\\d{5}\", [10]], [\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\", [10]], [\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"], [\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\", [7, 10]], [\"70\\\\d{8}\", [10]], 0, [\"(?:3[0347]|55)\\\\d{8}\", [10]], [\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\", [10]], [\"56\\\\d{8}\", [10]]]],\n \"GH\": [\"233\", \"00\", \"(?:[235]\\\\d{3}|800)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[235]\"], \"0$1\"]], \"0\"],\n \"GI\": [\"350\", \"00\", \"(?:[25]\\\\d|60)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]]],\n \"GL\": [\"299\", \"00\", \"(?:19|[2-689]\\\\d|70)\\\\d{4}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-9]\"]]]],\n \"GM\": [\"220\", \"00\", \"[2-9]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"GN\": [\"224\", \"00\", \"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"3\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[67]\"]]]],\n \"GP\": [\"590\", \"00\", \"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"9(?:(?:395|76[018])\\\\d|475[0-2])\\\\d{4}\"]]],\n \"GQ\": [\"240\", \"00\", \"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235]\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[89]\"]]]],\n \"GR\": [\"30\", \"00\", \"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\", [10, 11, 12], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2689]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]]],\n \"GT\": [\"502\", \"00\", \"(?:1\\\\d{3}|[2-7])\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]]],\n \"GU\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([3-9]\\\\d{6})$|1\", \"671$1\", 0, \"671\"],\n \"GW\": [\"245\", \"00\", \"[49]\\\\d{8}|4\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"40\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"]]]],\n \"GY\": [\"592\", \"001\", \"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|862)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46-9]\"]]]],\n \"HK\": [\"852\", \"00(?:30|5[09]|[126-9]?)\", \"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\", [5, 6, 7, 8, 9, 11], [[\"(\\\\d{3})(\\\\d{2,5})\", \"$1 $2\", [\"900\", \"9003\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"HN\": [\"504\", \"00\", \"8\\\\d{10}|[237-9]\\\\d{7}\", [8, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]]],\n \"HR\": [\"385\", \"00\", \"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"6[01]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-5]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"],\n \"HT\": [\"509\", \"00\", \"(?:[2-489]\\\\d|55)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-589]\"]]]],\n \"HU\": [\"36\", \"00\", \"[235-7]\\\\d{8}|[1-9]\\\\d{7}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"], \"(06 $1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"06 $1\"]], \"06\"],\n \"ID\": [\"62\", \"00[89]\", \"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\", [7, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"15\"]], [\"(\\\\d{2})(\\\\d{5,9})\", \"$1 $2\", [\"2[124]|[36]1\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,7})\", \"$1 $2\", [\"800\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5,8})\", \"$1 $2\", [\"[2-79]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\", \"$1-$2-$3\", [\"8[1-35-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6,8})\", \"$1 $2\", [\"1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"804\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"80\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"]], \"0\"],\n \"IE\": [\"353\", \"00\", \"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"2[24-9]|47|58|6[237-9]|9[35-9]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[45]0\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2569]|4[1-69]|7[14]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"81\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"IL\": [\"972\", \"0(?:0|1[2-9])\", \"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{4})(\\\\d{3})\", \"$1-$2\", [\"125\"]], [\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"121\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[2-489]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"12\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1-$2\", [\"159\"]], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"1[7-9]\"]], [\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3-$4\", [\"15\"]]], \"0\"],\n \"IM\": [\"44\", \"00\", \"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"([25-8]\\\\d{5})$|0\", \"1624$1\", 0, \"74576|(?:16|7[56])24\"],\n \"IN\": [\"91\", \"00\", \"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\", [8, 9, 10, 11, 12, 13], [[\"(\\\\d{8})\", \"$1\", [\"5(?:0|2[23]|3[03]|[67]1|88)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"], 0, 1], [\"(\\\\d{4})(\\\\d{4,5})\", \"$1 $2\", [\"180\", \"1800\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"140\"], 0, 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\", \"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\", \"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\", \"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\", \"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"], \"0$1\", 1], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"[6-9]\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:6|8[06])\", \"1(?:6|8[06]0)\"], 0, 1], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"18\"], 0, 1]], \"0\"],\n \"IO\": [\"246\", \"00\", \"3\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]]],\n \"IQ\": [\"964\", \"00\", \"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"],\n \"IR\": [\"98\", \"00\", \"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\", [4, 5, 6, 7, 10], [[\"(\\\\d{4,5})\", \"$1\", [\"96\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4,5})\", \"$1 $2\", [\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-8]\"], \"0$1\"]], \"0\"],\n \"IS\": [\"354\", \"00|1(?:0(?:01|[12]0)|100)\", \"(?:38\\\\d|[4-9])\\\\d{6}\", [7, 9], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"IT\": [\"39\", \"00\", \"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"0[26]\"]], [\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]], [\"(\\\\d{4})(\\\\d{2,6})\", \"$1 $2\", [\"0(?:[13-579][2-46-8]|8[236-8])\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"894\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[26]|5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1(?:44|[679])|[378]\"]], [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]|14\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\", \"$1 $2 $3\", [\"0[26]\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"3\"]]], 0, 0, 0, 0, 0, 0, [[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"], [\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", [9, 10]], [\"80(?:0\\\\d{3}|3)\\\\d{3}\", [6, 9]], [\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\", [6, 8, 9, 10]], [\"1(?:78\\\\d|99)\\\\d{6}\", [9, 10]], 0, 0, 0, [\"55\\\\d{8}\", [10]], [\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\", [6, 9]]]],\n \"JE\": [\"44\", \"00\", \"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", [10], 0, \"0\", 0, \"([0-24-8]\\\\d{5})$|0\", \"1534$1\", 0, 0, [[\"1534[0-24-8]\\\\d{5}\"], [\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"], [\"80(?:07(?:35|81)|8901)\\\\d{4}\"], [\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"], [\"701511\\\\d{4}\"], 0, [\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"], [\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"], [\"56\\\\d{8}\"]]],\n \"JM\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"658|876\"],\n \"JO\": [\"962\", \"00\", \"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\", [8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2356]|87\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"70\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"],\n \"JP\": [\"81\", \"010\", \"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"(?:12|57|99)0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[36]|4(?:2[09]|7[01])\", \"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\", \"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"800\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[257-9]\"], \"0$1\"]], \"0\"],\n \"KE\": [\"254\", \"000\", \"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"[24-6]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[17]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\"],\n \"KG\": [\"996\", \"00\", \"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3(?:1[346]|[24-79])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235-79]|88\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"KH\": [\"855\", \"00[14-9]\", \"1\\\\d{9}|[1-9]\\\\d{7,8}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"KI\": [\"686\", \"00\", \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", [5, 8], 0, \"0\"],\n \"KM\": [\"269\", \"00\", \"[3478]\\\\d{6}\", [7], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[3478]\"]]]],\n \"KN\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"869$1\", 0, \"869\"],\n \"KP\": [\"850\", \"00|99\", \"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\", [8, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"]], \"0\"],\n \"KR\": [\"82\", \"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\", \"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\", [5, 6, 8, 9, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1-$2\", [\"(?:3[1-3]|[46][1-4]|5[1-5])1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"1\"]], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"[1346]|5[1-5]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1-$2-$3\", [\"5\"], \"0$1\"]], \"0\", 0, \"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\n \"KW\": [\"965\", \"00\", \"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[169]|2(?:[235]|4[1-35-9])|52\"]], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[245]\"]]]],\n \"KY\": [\"1\", \"011\", \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"345$1\", 0, \"345\"],\n \"KZ\": [\"7\", \"810\", \"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\", [10, 14], 0, \"8\", 0, 0, 0, 0, \"33|7\", 0, \"8~10\"],\n \"LA\": [\"856\", \"00\", \"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2[13]|3[14]|[4-8]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"30[013-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\"],\n \"LB\": [\"961\", \"00\", \"[27-9]\\\\d{7}|[13-9]\\\\d{6}\", [7, 8], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27-9]\"]]], \"0\"],\n \"LC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-8]\\\\d{6})$|1\", \"758$1\", 0, \"758\"],\n \"LI\": [\"423\", \"00\", \"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\", [7, 9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[2379]|8(?:0[09]|7)\", \"[2379]|8(?:0(?:02|9)|7)\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"69\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]]], \"0\", 0, \"(1001)|0\"],\n \"LK\": [\"94\", \"00\", \"[1-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[1-689]\"], \"0$1\"]], \"0\"],\n \"LR\": [\"231\", \"00\", \"(?:[25]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[4-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23578]\"], \"0$1\"]], \"0\"],\n \"LS\": [\"266\", \"00\", \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]]],\n \"LT\": [\"370\", \"00\", \"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"52[0-7]\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"8 $1\", 1], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"37|4(?:[15]|6[1-8])\"], \"(8-$1)\", 1], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"(8-$1)\", 1]], \"8\", 0, \"[08]\"],\n \"LU\": [\"352\", \"00\", \"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\", [4, 5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"20[2-689]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"80[01]|90[015]\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"20\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4 $5\", [\"2(?:[0367]|4[3-8])\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\", \"$1 $2 $3 $4\", [\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]], 0, 0, \"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\n \"LV\": [\"371\", \"00\", \"(?:[268]\\\\d|90)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]]],\n \"LY\": [\"218\", \"00\", \"[2-9]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], \"0\"],\n \"MA\": [\"212\", \"00\", \"[5-8]\\\\d{8}\", [9], [[\"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"5(?:29|38)\", \"5(?:29[1289]|389)\", \"529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5[45]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1-$2\", [\"5(?:2[2-489]|3[5-9]|9)|892\", \"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"8\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1-$2\", [\"[5-7]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"5293[01]\\\\d{4}|5(?:2(?:[0-25-7]\\\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"], [\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"], [\"80\\\\d{7}\"], [\"89\\\\d{7}\"], 0, 0, 0, 0, [\"592(?:4[0-2]|93)\\\\d{4}\"]]],\n \"MC\": [\"377\", \"00\", \"(?:[3489]|6\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[389]\"]], [\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], \"0\"],\n \"MD\": [\"373\", \"00\", \"(?:[235-7]\\\\d|[89]0)\\\\d{6}\", [8], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"22|3\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[25-7]\"], \"0$1\"]], \"0\"],\n \"ME\": [\"382\", \"00\", \"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-9]\"], \"0$1\"]], \"0\"],\n \"MF\": [\"590\", \"00\", \"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], 0, \"0\", 0, 0, 0, 0, 0, [[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"], [\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"], [\"80[0-5]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"9(?:(?:395|76[018])\\\\d|475[0-2])\\\\d{4}\"]]],\n \"MG\": [\"261\", \"00\", \"[23]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], \"0\", 0, \"([24-9]\\\\d{6})$|0\", \"20$1\"],\n \"MH\": [\"692\", \"011\", \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], \"1\"],\n \"MK\": [\"389\", \"00\", \"[2-578]\\\\d{7}\", [8], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2|34[47]|4(?:[37]7|5[47]|64)\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[347]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[58]\"], \"0$1\"]], \"0\"],\n \"ML\": [\"223\", \"00\", \"[24-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]]],\n \"MM\": [\"95\", \"00\", \"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\", [6, 7, 8, 9, 10], [[\"(\\\\d)(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"16|2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[4-7]|8[1-35]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\", \"$1 $2 $3\", [\"9(?:2[0-4]|[35-9]|4[137-9])\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"92\"], \"0$1\"], [\"(\\\\d)(\\\\d{5})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"],\n \"MN\": [\"976\", \"001\", \"[12]\\\\d{7,9}|[5-9]\\\\d{7}\", [8, 9, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[12]1\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]], [\"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[12]2[1-3]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\", \"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"], \"0$1\"], [\"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"[12]\"], \"0$1\"]], \"0\"],\n \"MO\": [\"853\", \"00\", \"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\", [7, 8], [[\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[268]\"]]]],\n \"MP\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"670$1\", 0, \"670\"],\n \"MQ\": [\"596\", \"00\", \"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"MR\": [\"222\", \"00\", \"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-48]\"]]]],\n \"MS\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([34]\\\\d{6})$|1\", \"664$1\", 0, \"664\"],\n \"MT\": [\"356\", \"00\", \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]]],\n \"MU\": [\"230\", \"0(?:0|[24-7]0|3[03])\", \"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\", [7, 8, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46]|8[013]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[57]\"]], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"8\"]]], 0, 0, 0, 0, 0, 0, 0, \"020\"],\n \"MV\": [\"960\", \"0(?:0|19)\", \"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\", [7, 10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[34679]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"MW\": [\"265\", \"00\", \"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\", [7, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[137-9]\"], \"0$1\"]], \"0\"],\n \"MX\": [\"52\", \"0[09]\", \"1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\", [10, 11], [[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], 0, 1], [\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], 0, 1], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], 0, 1]], \"01\", 0, \"0(?:[12]|4[45])|1\", 0, 0, 0, 0, \"00\"],\n \"MY\": [\"60\", \"00\", \"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"[4-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1-$2 $3\", [\"1(?:[02469]|[378][1-9]|53)|8\", \"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"], \"0$1\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"3\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3-$4\", [\"1(?:[367]|80)\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"15\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"1\"], \"0$1\"]], \"0\"],\n \"MZ\": [\"258\", \"00\", \"(?:2|8\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2|8[2-79]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]]],\n \"NA\": [\"264\", \"00\", \"[68]\\\\d{7,8}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"87\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"],\n \"NC\": [\"687\", \"00\", \"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\", [6], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[02-57-9]\"]]]],\n \"NE\": [\"227\", \"00\", \"[027-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"08\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[089]|2[013]|7[047]\"]]]],\n \"NF\": [\"672\", \"00\", \"[13]\\\\d{5}\", [6], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"1[0-3]\"]], [\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"[13]\"]]], 0, 0, \"([0-258]\\\\d{4})$\", \"3$1\"],\n \"NG\": [\"234\", \"009\", \"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\", [7, 8, 10, 11, 12, 13, 14], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"78\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]|9(?:0[3-9]|[1-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-7]|8[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"]], \"0\"],\n \"NI\": [\"505\", \"00\", \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]]],\n \"NL\": [\"31\", \"00\", \"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\", [5, 6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{4,7})\", \"$1 $2\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"66\"], \"0$1\"], [\"(\\\\d)(\\\\d{8})\", \"$1 $2\", [\"6\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-578]|91\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], \"0\"],\n \"NO\": [\"47\", \"00\", \"(?:0|[2-9]\\\\d{3})\\\\d{4}\", [5, 8], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-79]\"]]], 0, 0, 0, 0, 0, \"[02-689]|7[0-8]\"],\n \"NP\": [\"977\", \"00\", \"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d)(\\\\d{7})\", \"$1-$2\", [\"1[2-6]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1-$2\", [\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"9\"]]], \"0\"],\n \"NR\": [\"674\", \"00\", \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]]],\n \"NU\": [\"683\", \"00\", \"(?:[47]|888\\\\d)\\\\d{3}\", [4, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]]],\n \"NZ\": [\"64\", \"0(?:0|161)\", \"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,8})\", \"$1 $2\", [\"8[1-579]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"50[036-8]|[89]0\", \"50(?:[0367]|88)|[89]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"24|[346]|7[2-57-9]|9[2-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:10|74)|[59]|80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1|2[028]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\", \"$1 $2 $3\", [\"2(?:[169]|7[0-35-9])|7|86\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\"],\n \"OM\": [\"968\", \"00\", \"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\", [7, 8, 9], [[\"(\\\\d{3})(\\\\d{4,6})\", \"$1 $2\", [\"[58]\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[179]\"]]]],\n \"PA\": [\"507\", \"00\", \"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\", [7, 8, 10, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[1-57-9]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[68]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]]],\n \"PE\": [\"51\", \"00|19(?:1[124]|77|90)00\", \"(?:[14-8]|9\\\\d)\\\\d{7}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"1\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[4-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"]]], \"0\", 0, 0, 0, 0, 0, 0, \"00\", \" Anexo \"],\n \"PF\": [\"689\", \"00\", \"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\", [6, 8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"44\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4|8[7-9]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]]],\n \"PG\": [\"675\", \"00|140[1-3]\", \"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"18|[2-69]|85\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[78]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"PH\": [\"63\", \"00\", \"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\", [6, 8, 9, 10, 11, 12, 13], [[\"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"2\"], \"(0$1)\"], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\", \"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"346|4(?:27|9[35])|883\", \"3469|4(?:279|9(?:30|56))|8834\"], \"(0$1)\"], [\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|8[2-8]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"1\"]]], \"0\"],\n \"PK\": [\"92\", \"00\", \"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\", [8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\", \"$1 $2 $3\", [\"[89]0\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"1\"]], [\"(\\\\d{3})(\\\\d{6,7})\", \"$1 $2\", [\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\", \"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{7,8})\", \"$1 $2\", [\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"], \"(0$1)\"], [\"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"58\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[24-9]\"], \"(0$1)\"]], \"0\"],\n \"PL\": [\"48\", \"00\", \"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{5})\", \"$1\", [\"19\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"11|20|64\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\", \"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"64\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[2-8]|[2-7]|8[1-79]|9[145]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"8\"]]]],\n \"PM\": [\"508\", \"00\", \"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], \"0\"],\n \"PR\": [\"1\", \"011\", \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", [10], 0, \"1\", 0, 0, 0, 0, \"787|939\"],\n \"PS\": [\"970\", \"00\", \"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\", [8, 9, 10], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2489]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"PT\": [\"351\", \"00\", \"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2[12]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"16|[236-9]\"]]]],\n \"PW\": [\"680\", \"01[12]\", \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]]],\n \"PY\": [\"595\", \"00\", \"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\", [6, 7, 8, 9, 10, 11], [[\"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"[2-9]0\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{3})(\\\\d{4,5})\", \"$1 $2\", [\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"87\"]], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"9(?:[5-79]|8[1-6])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"]]], \"0\"],\n \"QA\": [\"974\", \"00\", \"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\", [7, 8, 9, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"2[16]|8\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[3-7]\"]]]],\n \"RE\": [\"262\", \"00\", \"(?:26|[689]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2689]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, [[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-3]))\\\\d{4}\"], [\"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|9(?:399[0-3]|479[0-2]|76(?:2[27]|3[0-37]|9\\\\d)))\\\\d{4}\"], [\"80\\\\d{7}\"], [\"89[1-37-9]\\\\d{6}\"], 0, 0, 0, 0, 0, [\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\n \"RO\": [\"40\", \"00\", \"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\", [6, 9], [[\"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"2[3-6]\", \"2[3-6]\\\\d9\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"219|31\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23]1\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[237-9]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, 0, \" int \"],\n \"RS\": [\"381\", \"00\", \"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\", [6, 7, 8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3,9})\", \"$1 $2\", [\"(?:2[389]|39)0|[7-9]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{5,10})\", \"$1 $2\", [\"[1-36]\"], \"0$1\"]], \"0\"],\n \"RU\": [\"7\", \"810\", \"8\\\\d{13}|[347-9]\\\\d{9}\", [10, 14], [[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"], \"8 ($1)\", 1], [\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-68]|2[1-9])\", \"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\", \"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"8 ($1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[349]|8(?:[02-7]|1[1-8])\"], \"8 ($1)\", 1], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"8\"], \"8 ($1)\"]], \"8\", 0, 0, 0, 0, \"3[04-689]|[489]\", 0, \"8~10\"],\n \"RW\": [\"250\", \"00\", \"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\", [8, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"]]], \"0\"],\n \"SA\": [\"966\", \"00\", \"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\", [9, 10], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"9\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"81\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], \"0\"],\n \"SB\": [\"677\", \"0[01]\", \"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\n \"SC\": [\"248\", \"010|0[0-2]\", \"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\", [7], [[\"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[246]|9[57]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"SD\": [\"249\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"],\n \"SE\": [\"46\", \"00\", \"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\", [6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"20\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"9(?:00|39|44|9)\"], \"0$1\", 0, \"$1 $2\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3\", [\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\", \"$1-$2 $3\", [\"9(?:00|39|44)\"], \"0$1\", 0, \"$1 $2 $3\"], [\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"10|7\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1-$2 $3 $4\", [\"9\"], \"0$1\", 0, \"$1 $2 $3 $4\"], [\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4 $5\", [\"[26]\"], \"0$1\", 0, \"$1 $2 $3 $4 $5\"]], \"0\"],\n \"SG\": [\"65\", \"0[0-3]\\\\d\", \"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\", [8, 10, 11], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[369]|8(?:0[1-6]|[1-9])\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]]],\n \"SH\": [\"290\", \"00\", \"(?:[256]\\\\d|8)\\\\d{3}\", [4, 5], 0, 0, 0, 0, 0, 0, \"[256]\"],\n \"SI\": [\"386\", \"00|10(?:22|66|88|99)\", \"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\", [5, 6, 7, 8], [[\"(\\\\d{2})(\\\\d{3,6})\", \"$1 $2\", [\"8[09]|9\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"59|8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37][01]|4[0139]|51|6\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[1-57]\"], \"(0$1)\"]], \"0\", 0, 0, 0, 0, 0, 0, \"00\"],\n \"SJ\": [\"47\", \"00\", \"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\", [5, 8], 0, 0, 0, 0, 0, 0, \"79\"],\n \"SK\": [\"421\", \"00\", \"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\", [6, 7, 9], [[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\", \"$1 $2 $3\", [\"21\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-5][1-8]1\", \"[3-5][1-8]1[67]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"2\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[689]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"[3-5]\"], \"0$1\"]], \"0\"],\n \"SL\": [\"232\", \"00\", \"(?:[237-9]\\\\d|66)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], \"0\"],\n \"SM\": [\"378\", \"00\", \"(?:0549|[5-7]\\\\d)\\\\d{6}\", [8, 10], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-7]\"]], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"0\"]]], 0, 0, \"([89]\\\\d{5})$\", \"0549$1\"],\n \"SN\": [\"221\", \"00\", \"(?:[378]\\\\d|93)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[379]\"]]]],\n \"SO\": [\"252\", \"00\", \"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\", [6, 7, 8, 9], [[\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"8[125]\"]], [\"(\\\\d{6})\", \"$1\", [\"[134]\"]], [\"(\\\\d)(\\\\d{6})\", \"$1 $2\", [\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]], [\"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"(?:2|90)4|[67]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3478]|64|90\"]], [\"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"1|28|6[0-35-9]|9[2-9]\"]]], \"0\"],\n \"SR\": [\"597\", \"00\", \"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\", [6, 7], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"56\"]], [\"(\\\\d{3})(\\\\d{3})\", \"$1-$2\", [\"[2-5]\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[6-8]\"]]]],\n \"SS\": [\"211\", \"00\", \"[19]\\\\d{8}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], \"0\"],\n \"ST\": [\"239\", \"00\", \"(?:22|9\\\\d)\\\\d{5}\", [7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]]],\n \"SV\": [\"503\", \"00\", \"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\", [7, 8, 11], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[89]\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[267]\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]]],\n \"SX\": [\"1\", \"011\", \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"(5\\\\d{6})$|1\", \"721$1\", 0, \"721\"],\n \"SY\": [\"963\", \"00\", \"[1-39]\\\\d{8}|[1-5]\\\\d{7}\", [8, 9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-5]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\", 1]], \"0\"],\n \"SZ\": [\"268\", \"00\", \"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\", [8, 9], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[0237]\"]], [\"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"9\"]]]],\n \"TA\": [\"290\", \"00\", \"8\\\\d{3}\", [4], 0, 0, 0, 0, 0, 0, \"8\"],\n \"TC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-479]\\\\d{6})$|1\", \"649$1\", 0, \"649\"],\n \"TD\": [\"235\", \"00|16\", \"(?:22|[69]\\\\d|77)\\\\d{6}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2679]\"]]], 0, 0, 0, 0, 0, 0, 0, \"00\"],\n \"TG\": [\"228\", \"00\", \"[279]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]]],\n \"TH\": [\"66\", \"00[1-9]\", \"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\", [8, 9, 10, 13], [[\"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[13-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], \"0\"],\n \"TJ\": [\"992\", \"810\", \"[0-57-9]\\\\d{8}\", [9], [[\"(\\\\d{6})(\\\\d)(\\\\d{2})\", \"$1 $2 $3\", [\"331\", \"3317\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[34]7|91[78]\"]], [\"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"3[1-5]\"]], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[0-57-9]\"]]], 0, 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"TK\": [\"690\", \"00\", \"[2-47]\\\\d{3,6}\", [4, 5, 6, 7]],\n \"TL\": [\"670\", \"00\", \"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\", [7, 8], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-489]|70\"]], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"7\"]]]],\n \"TM\": [\"993\", \"810\", \"[1-6]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"12\"], \"(8 $1)\"], [\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-5]\"], \"(8 $1)\"], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"6\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"TN\": [\"216\", \"00\", \"[2-57-9]\\\\d{7}\", [8], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]]],\n \"TO\": [\"676\", \"00\", \"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\", [5, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1-$2\", [\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]], [\"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[5-9]\"]]]],\n \"TR\": [\"90\", \"00\", \"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\", [7, 10, 12, 13], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"512|8[01589]|90\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5(?:[0-59]|61)\", \"5(?:[0-59]|616)\", \"5(?:[0-59]|6161)\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24][1-8]|3[1-9]\"], \"(0$1)\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\", \"$1 $2 $3\", [\"80\"], \"0$1\", 1]], \"0\"],\n \"TT\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-46-8]\\\\d{6})$|1\", \"868$1\", 0, \"868\"],\n \"TV\": [\"688\", \"00\", \"(?:2|7\\\\d\\\\d|90)\\\\d{4}\", [5, 6, 7], [[\"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2\"]], [\"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"90\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]]],\n \"TW\": [\"886\", \"0(?:0[25-79]|19)\", \"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\", [7, 8, 9, 10, 11], [[\"(\\\\d{2})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"202\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[258]0\"], \"0$1\"], [\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\", \"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, 0, \"#\"],\n \"TZ\": [\"255\", \"00[056]\", \"(?:[25-8]\\\\d|41|90)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[24]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"5\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"]], \"0\"],\n \"UA\": [\"380\", \"00\", \"[89]\\\\d{9}|[3-9]\\\\d{8}\", [9, 10], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\", \"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\", \"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|89|9[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], \"0\", 0, 0, 0, 0, 0, 0, \"0~0\"],\n \"UG\": [\"256\", \"00[057]\", \"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"202\", \"2024\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[27-9]|4(?:6[45]|[7-9])\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[34]\"], \"0$1\"]], \"0\"],\n \"US\": [\"1\", \"011\", \"[2-9]\\\\d{9}|3\\\\d{6}\", [10], [[\"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"310\"], 0, 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"($1) $2-$3\", [\"[2-9]\"], 0, 1, \"$1-$2-$3\"]], \"1\", 0, 0, 0, 0, 0, [[\"5056(?:[0-35-9]\\\\d|4[46])\\\\d{4}|(?:4722|505[2-57-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"], [\"\"], [\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"], [\"900[2-9]\\\\d{6}\"], [\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\n \"UY\": [\"598\", \"0(?:0|1[3-9]\\\\d)\", \"(?:0004|4)\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\", [7, 8, 10, 13], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"405|8|90\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[124]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]], \"0\", 0, 0, 0, 0, 0, 0, \"00\", \" int. \"],\n \"UZ\": [\"998\", \"810\", \"(?:33|[5-79]\\\\d|88)\\\\d{7}\", [9], [[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[35-9]\"], \"8 $1\"]], \"8\", 0, 0, 0, 0, 0, 0, \"8~10\"],\n \"VA\": [\"39\", \"00\", \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", [6, 7, 8, 9, 10, 11], 0, 0, 0, 0, 0, 0, \"06698\"],\n \"VC\": [\"1\", \"011\", \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-7]\\\\d{6})$|1\", \"784$1\", 0, \"784\"],\n \"VE\": [\"58\", \"00\", \"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\", [10], [[\"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"[24-689]\"], \"0$1\"]], \"0\"],\n \"VG\": [\"1\", \"011\", \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", [10], 0, \"1\", 0, \"([2-578]\\\\d{6})$|1\", \"284$1\", 0, \"284\"],\n \"VI\": [\"1\", \"011\", \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", [10], 0, \"1\", 0, \"([2-9]\\\\d{6})$|1\", \"340$1\", 0, \"340\"],\n \"VN\": [\"84\", \"00\", \"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\", [7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"0$1\", 1], [\"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"1\"], 0, 1], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[69]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\", 1], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[48]\"], \"0$1\", 1], [\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\", 1]], \"0\"],\n \"VU\": [\"678\", \"00\", \"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\", [5, 7], [[\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]]]],\n \"WF\": [\"681\", \"00\", \"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\", [6, 9], [[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[478]\"]], [\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]]]],\n \"WS\": [\"685\", \"0\", \"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\", [5, 6, 7, 10], [[\"(\\\\d{5})\", \"$1\", [\"[2-5]|6[1-9]\"]], [\"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[68]\"]], [\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]]],\n \"XK\": [\"383\", \"00\", \"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\", [8, 9], [[\"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[23]\"], \"0$1\"]], \"0\"],\n \"YE\": [\"967\", \"00\", \"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\", [7, 8, 9], [[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-6]|7(?:[24-6]|8[0-7])\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], \"0\"],\n \"YT\": [\"262\", \"00\", \"(?:(?:(?:26|63)9|80\\\\d)\\\\d|9398)\\\\d{5}\", [9], 0, \"0\", 0, 0, 0, 0, \"269|63|9398\"],\n \"ZA\": [\"27\", \"00\", \"[1-79]\\\\d{8}|8\\\\d{4,9}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8[1-4]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"860\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], \"0$1\"]], \"0\"],\n \"ZM\": [\"260\", \"00\", \"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\", [9], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[28]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[79]\"], \"0$1\"]], \"0\"],\n \"ZW\": [\"263\", \"00\", \"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\", [5, 6, 7, 8, 9, 10], [[\"(\\\\d{3})(\\\\d{3,5})\", \"$1 $2\", [\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"], \"0$1\"], [\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"80\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\", \"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"], \"(0$1)\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\", \"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"8\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"], \"0$1\"], [\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"29[013-9]|39|54\"], \"0$1\"], [\"(\\\\d{4})(\\\\d{3,5})\", \"$1 $2\", [\"(?:25|54)8\", \"258|5483\"], \"0$1\"]], \"0\"]\n },\n \"nonGeographic\": {\n \"800\": [\"800\", 0, \"(?:00|[1-9]\\\\d)\\\\d{6}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"\\\\d\"]]], 0, 0, 0, 0, 0, 0, [0, 0, [\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\n \"808\": [\"808\", 0, \"[1-9]\\\\d{7}\", [8], [[\"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, [\"[1-9]\\\\d{7}\"]]],\n \"870\": [\"870\", 0, \"7\\\\d{11}|[35-7]\\\\d{8}\", [9, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[35-7]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\n \"878\": [\"878\", 0, \"10\\\\d{10}\", [12], [[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\", \"$1 $2 $3\", [\"1\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"10\\\\d{10}\"]]],\n \"881\": [\"881\", 0, \"[0-36-9]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"[0-36-9]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"[0-36-9]\\\\d{8}\"]]],\n \"882\": [\"882\", 0, \"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\", [7, 8, 9, 10, 11, 12], [[\"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"16|342\"]], [\"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"49\"]], [\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"1[36]|9\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"3[23]\"]], [\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"16\"]], [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|23|3(?:[15]|4[57])|4|51\"]], [\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34\"]], [\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\", \"$1 $2 $3\", [\"[1-35]\"]]], 0, 0, 0, 0, 0, 0, [0, [\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\", [7, 8, 9, 10, 12]], 0, 0, 0, 0, 0, 0, [\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\n \"883\": [\"883\", 0, \"(?:[1-4]\\\\d|51)\\\\d{6,10}\", [8, 9, 10, 11, 12], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\", \"$1 $2 $3\", [\"[14]|2[24-689]|3[02-689]|51[24-9]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"510\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"21\"]], [\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"51[13]\"]], [\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[235]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, [\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\n \"888\": [\"888\", 0, \"\\\\d{11}\", [11], [[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, [\"\\\\d{11}\"]]],\n \"979\": [\"979\", 0, \"[1359]\\\\d{8}\", [9], [[\"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1359]\"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, [\"[1359]\\\\d{8}\"]]]\n }\n};\nvar propTypesExports$1 = {};\nvar propTypes$1 = {\n get exports() {\n return propTypesExports$1;\n },\n set exports(v) {\n propTypesExports$1 = v;\n }\n};\nvar reactIsExports = {};\nvar reactIs = {\n get exports() {\n return reactIsExports;\n },\n set exports(v) {\n reactIsExports = v;\n }\n};\nvar reactIs_production_min = {};\n\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReactIs_production_min;\nfunction requireReactIs_production_min() {\n if (hasRequiredReactIs_production_min) return reactIs_production_min;\n hasRequiredReactIs_production_min = 1;\n var b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n function z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n }\n function A(a) {\n return z(a) === m;\n }\n reactIs_production_min.AsyncMode = l;\n reactIs_production_min.ConcurrentMode = m;\n reactIs_production_min.ContextConsumer = k;\n reactIs_production_min.ContextProvider = h;\n reactIs_production_min.Element = c;\n reactIs_production_min.ForwardRef = n;\n reactIs_production_min.Fragment = e;\n reactIs_production_min.Lazy = t;\n reactIs_production_min.Memo = r;\n reactIs_production_min.Portal = d;\n reactIs_production_min.Profiler = g;\n reactIs_production_min.StrictMode = f;\n reactIs_production_min.Suspense = p;\n reactIs_production_min.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n };\n reactIs_production_min.isConcurrentMode = A;\n reactIs_production_min.isContextConsumer = function (a) {\n return z(a) === k;\n };\n reactIs_production_min.isContextProvider = function (a) {\n return z(a) === h;\n };\n reactIs_production_min.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n };\n reactIs_production_min.isForwardRef = function (a) {\n return z(a) === n;\n };\n reactIs_production_min.isFragment = function (a) {\n return z(a) === e;\n };\n reactIs_production_min.isLazy = function (a) {\n return z(a) === t;\n };\n reactIs_production_min.isMemo = function (a) {\n return z(a) === r;\n };\n reactIs_production_min.isPortal = function (a) {\n return z(a) === d;\n };\n reactIs_production_min.isProfiler = function (a) {\n return z(a) === g;\n };\n reactIs_production_min.isStrictMode = function (a) {\n return z(a) === f;\n };\n reactIs_production_min.isSuspense = function (a) {\n return z(a) === p;\n };\n reactIs_production_min.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n };\n reactIs_production_min.typeOf = z;\n return reactIs_production_min;\n}\nvar reactIs_development = {};\n\n/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasRequiredReactIs_development;\nfunction requireReactIs_development() {\n if (hasRequiredReactIs_development) return reactIs_development;\n hasRequiredReactIs_development = 1;\n if (process.env.NODE_ENV !== \"production\") {\n (function () {\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n }\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n reactIs_development.AsyncMode = AsyncMode;\n reactIs_development.ConcurrentMode = ConcurrentMode;\n reactIs_development.ContextConsumer = ContextConsumer;\n reactIs_development.ContextProvider = ContextProvider;\n reactIs_development.Element = Element;\n reactIs_development.ForwardRef = ForwardRef;\n reactIs_development.Fragment = Fragment;\n reactIs_development.Lazy = Lazy;\n reactIs_development.Memo = Memo;\n reactIs_development.Portal = Portal;\n reactIs_development.Profiler = Profiler;\n reactIs_development.StrictMode = StrictMode;\n reactIs_development.Suspense = Suspense;\n reactIs_development.isAsyncMode = isAsyncMode;\n reactIs_development.isConcurrentMode = isConcurrentMode;\n reactIs_development.isContextConsumer = isContextConsumer;\n reactIs_development.isContextProvider = isContextProvider;\n reactIs_development.isElement = isElement;\n reactIs_development.isForwardRef = isForwardRef;\n reactIs_development.isFragment = isFragment;\n reactIs_development.isLazy = isLazy;\n reactIs_development.isMemo = isMemo;\n reactIs_development.isPortal = isPortal;\n reactIs_development.isProfiler = isProfiler;\n reactIs_development.isStrictMode = isStrictMode;\n reactIs_development.isSuspense = isSuspense;\n reactIs_development.isValidElementType = isValidElementType;\n reactIs_development.typeOf = typeOf;\n })();\n }\n return reactIs_development;\n}\nvar hasRequiredReactIs;\nfunction requireReactIs() {\n if (hasRequiredReactIs) return reactIsExports;\n hasRequiredReactIs = 1;\n (function (module) {\n if (process.env.NODE_ENV === 'production') {\n module.exports = requireReactIs_production_min();\n } else {\n module.exports = requireReactIs_development();\n }\n })(reactIs);\n return reactIsExports;\n}\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\nvar objectAssign;\nvar hasRequiredObjectAssign;\nfunction requireObjectAssign() {\n if (hasRequiredObjectAssign) return objectAssign;\n hasRequiredObjectAssign = 1;\n /* eslint-disable no-unused-vars */\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n\n // Detect buggy property enumeration order in older V8 versions.\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n }\n\n // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n }\n objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n return objectAssign;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar ReactPropTypesSecret_1$1;\nvar hasRequiredReactPropTypesSecret$1;\nfunction requireReactPropTypesSecret$1() {\n if (hasRequiredReactPropTypesSecret$1) return ReactPropTypesSecret_1$1;\n hasRequiredReactPropTypesSecret$1 = 1;\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1$1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1$1;\n}\nvar has$1;\nvar hasRequiredHas$1;\nfunction requireHas$1() {\n if (hasRequiredHas$1) return has$1;\n hasRequiredHas$1 = 1;\n has$1 = Function.call.bind(Object.prototype.hasOwnProperty);\n return has$1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar checkPropTypes_1$1;\nvar hasRequiredCheckPropTypes$1;\nfunction requireCheckPropTypes$1() {\n if (hasRequiredCheckPropTypes$1) return checkPropTypes_1$1;\n hasRequiredCheckPropTypes$1 = 1;\n var printWarning = function () {};\n if (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = requireReactPropTypesSecret$1();\n var loggedTypeFailures = {};\n var has = requireHas$1();\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {/**/}\n };\n }\n\n /**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : '';\n printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n }\n }\n }\n }\n }\n\n /**\n * Resets warning cache when testing.\n *\n * @private\n */\n checkPropTypes.resetWarningCache = function () {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n };\n checkPropTypes_1$1 = checkPropTypes;\n return checkPropTypes_1$1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar factoryWithTypeCheckers$1;\nvar hasRequiredFactoryWithTypeCheckers$1;\nfunction requireFactoryWithTypeCheckers$1() {\n if (hasRequiredFactoryWithTypeCheckers$1) return factoryWithTypeCheckers$1;\n hasRequiredFactoryWithTypeCheckers$1 = 1;\n var ReactIs = requireReactIs();\n var assign = requireObjectAssign();\n var ReactPropTypesSecret = requireReactPropTypesSecret$1();\n var has = requireHas$1();\n var checkPropTypes = requireCheckPropTypes$1();\n var printWarning = function () {};\n if (process.env.NODE_ENV !== 'production') {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n factoryWithTypeCheckers$1 = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data : {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {\n expectedType: expectedType\n });\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n return emptyFunctionThatReturnsNull;\n }\n }\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = expectedTypes.length > 0 ? ', expected one of type [' + expectedTypes.join(', ') + ']' : '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError((componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.');\n }\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n return true;\n default:\n return false;\n }\n }\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n return factoryWithTypeCheckers$1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar factoryWithThrowingShims$1;\nvar hasRequiredFactoryWithThrowingShims$1;\nfunction requireFactoryWithThrowingShims$1() {\n if (hasRequiredFactoryWithThrowingShims$1) return factoryWithThrowingShims$1;\n hasRequiredFactoryWithThrowingShims$1 = 1;\n var ReactPropTypesSecret = requireReactPropTypesSecret$1();\n function emptyFunction() {}\n function emptyFunctionWithReset() {}\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n factoryWithThrowingShims$1 = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n function getShim() {\n return shim;\n } // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n return factoryWithThrowingShims$1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs$1 = requireReactIs();\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess$1 = true;\n propTypes$1.exports = requireFactoryWithTypeCheckers$1()(ReactIs$1.isElement, throwOnDirectAccess$1);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes$1.exports = requireFactoryWithThrowingShims$1()();\n}\nvar propTypesExports = {};\nvar propTypes = {\n get exports() {\n return propTypesExports;\n },\n set exports(v) {\n propTypesExports = v;\n }\n};\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar ReactPropTypesSecret_1;\nvar hasRequiredReactPropTypesSecret;\nfunction requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n}\nvar has;\nvar hasRequiredHas;\nfunction requireHas() {\n if (hasRequiredHas) return has;\n hasRequiredHas = 1;\n has = Function.call.bind(Object.prototype.hasOwnProperty);\n return has;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar checkPropTypes_1;\nvar hasRequiredCheckPropTypes;\nfunction requireCheckPropTypes() {\n if (hasRequiredCheckPropTypes) return checkPropTypes_1;\n hasRequiredCheckPropTypes = 1;\n var printWarning = function () {};\n if (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n var loggedTypeFailures = {};\n var has = requireHas();\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {/**/}\n };\n }\n\n /**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : '';\n printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n }\n }\n }\n }\n }\n\n /**\n * Resets warning cache when testing.\n *\n * @private\n */\n checkPropTypes.resetWarningCache = function () {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n };\n checkPropTypes_1 = checkPropTypes;\n return checkPropTypes_1;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar factoryWithTypeCheckers;\nvar hasRequiredFactoryWithTypeCheckers;\nfunction requireFactoryWithTypeCheckers() {\n if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;\n hasRequiredFactoryWithTypeCheckers = 1;\n var ReactIs = requireReactIs();\n var assign = requireObjectAssign();\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n var has = requireHas();\n var checkPropTypes = requireCheckPropTypes();\n var printWarning = function () {};\n if (process.env.NODE_ENV !== 'production') {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n factoryWithTypeCheckers = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data : {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {\n expectedType: expectedType\n });\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n return emptyFunctionThatReturnsNull;\n }\n }\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = expectedTypes.length > 0 ? ', expected one of type [' + expectedTypes.join(', ') + ']' : '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError((componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.');\n }\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n return true;\n default:\n return false;\n }\n }\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n return factoryWithTypeCheckers;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar factoryWithThrowingShims;\nvar hasRequiredFactoryWithThrowingShims;\nfunction requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n function emptyFunction() {}\n function emptyFunctionWithReset() {}\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n function getShim() {\n return shim;\n } // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n return factoryWithThrowingShims;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = requireReactIs();\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n propTypes.exports = requireFactoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n}\n\n// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\n//\n// Example:\n//\n// value - '88005553535'\n// caret - 2 // starting from 0; is positioned before the first zero\n// operation - 'Backspace'\n//\n// Returns\n// {\n// \tvalue: '8005553535'\n// \tcaret: 1\n// }\n//\n// Currently supports just 'Delete' and 'Backspace' operations\n//\nfunction edit(value, caret, operation) {\n switch (operation) {\n case 'Backspace':\n // If there exists the previous character,\n // then erase it and reposition the caret.\n if (caret > 0) {\n // Remove the previous character\n value = value.slice(0, caret - 1) + value.slice(caret); // Position the caret where the previous (erased) character was\n\n caret--;\n }\n break;\n case 'Delete':\n // Remove current digit (if any)\n value = value.slice(0, caret) + value.slice(caret + 1);\n break;\n }\n return {\n value: value,\n caret: caret\n };\n}\n\n// Parses the `text`.\n//\n// Returns `{ value, caret }` where `caret` is\n// the caret position inside `value`\n// corresponding to the `caret_position` inside `text`.\n//\n// The `text` is parsed by feeding each character sequentially to\n// `parse_character(character, value)` function\n// and appending the result (if it's not `undefined`) to `value`.\n//\n// Example:\n//\n// `text` is `8 (800) 555-35-35`,\n// `caret_position` is `4` (before the first `0`).\n// `parse_character` is `(character, value) =>\n// if (character >= '0' && character <= '9') { return character }`.\n//\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\n//\nfunction parse$1(text, caret_position, parse_character) {\n var value = '';\n var focused_input_character_index = 0;\n var index = 0;\n while (index < text.length) {\n var character = parse_character(text[index], value);\n if (character !== undefined) {\n value += character;\n if (caret_position !== undefined) {\n if (caret_position === index) {\n focused_input_character_index = value.length - 1;\n } else if (caret_position > index) {\n focused_input_character_index = value.length;\n }\n }\n }\n index++;\n } // If caret position wasn't specified\n\n if (caret_position === undefined) {\n // Then set caret position to \"after the last input character\"\n focused_input_character_index = value.length;\n }\n var result = {\n value: value,\n caret: focused_input_character_index\n };\n return result;\n}\nfunction _createForOfIteratorHelperLoose$c(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$f(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$f(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$f(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$f(o, minLen);\n}\nfunction _arrayLikeToArray$f(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n\n// Counts all occurences of a symbol in a string\nfunction count_occurences(symbol, string) {\n var count = 0; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // so skipping such miscellaneous \"exotic\" characters\n // won't matter here for just counting placeholder character occurrences.\n\n for (var _iterator = _createForOfIteratorHelperLoose$c(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n if (character === symbol) {\n count++;\n }\n }\n return count;\n}\nfunction closeBraces(retained_template, template) {\n var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var empty_placeholder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ' ';\n var cut_before = retained_template.length;\n var opening_braces = count_occurences('(', retained_template);\n var closing_braces = count_occurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n while (dangling_braces > 0 && cut_before < template.length) {\n retained_template += template[cut_before].replace(placeholder, empty_placeholder);\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n cut_before++;\n }\n return retained_template;\n}\nfunction _createForOfIteratorHelperLoose$b(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$e(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$e(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$e(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$e(o, minLen);\n}\nfunction _arrayLikeToArray$e(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\n//\n// Returns a function which takes `value` characters\n// and returns the `template` filled with those characters.\n// If the `template` can only be partially filled\n// then it is cut off.\n//\n// If `should_close_braces` is `true`,\n// then it will also make sure all dangling braces are closed,\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\n//\n\nfunction template_formatter(template) {\n var placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var should_close_braces = arguments.length > 2 ? arguments[2] : undefined;\n if (!template) {\n return function (value) {\n return {\n text: value\n };\n };\n }\n var characters_in_template = count_occurences(placeholder, template);\n return function (value) {\n if (!value) {\n return {\n text: '',\n template: template\n };\n }\n var value_character_index = 0;\n var filled_in_template = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // and appending UTF-8 characters to a string in parts still works.\n\n for (var _iterator = _createForOfIteratorHelperLoose$b(template.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n if (character !== placeholder) {\n filled_in_template += character;\n continue;\n }\n filled_in_template += value[value_character_index];\n value_character_index++; // If the last available value character has been filled in,\n // then return the filled in template\n // (either trim the right part or retain it,\n // if no more character placeholders in there)\n\n if (value_character_index === value.length) {\n // If there are more character placeholders\n // in the right part of the template\n // then simply trim it.\n if (value.length < characters_in_template) {\n break;\n }\n }\n }\n if (should_close_braces) {\n filled_in_template = closeBraces(filled_in_template, template);\n }\n return {\n text: filled_in_template,\n template: template\n };\n };\n}\n\n//\n// `{ value, caret }` attribute is the result of `parse()` function call.\n//\n// Returns `{ text, caret }` where the new `caret` is the caret position\n// inside `text` text corresponding to the original `caret` position inside `value`.\n//\n// `formatter(value)` is a function returning `{ text, template }`.\n//\n// `text` is the `value` value formatted using `template`.\n// It may either cut off the non-filled right part of the `template`\n// or it may fill the non-filled character placeholders\n// in the right part of the `template` with `spacer`\n// which is a space (' ') character by default.\n//\n// `template` is the template used to format the `value`.\n// It can be either a full-length template or a partial template.\n//\n// `formatter` can also be a string — a `template`\n// where character placeholders are denoted by 'x'es.\n// In this case `formatter` function is automatically created.\n//\n// Example:\n//\n// `value` is '880',\n// `caret` is `2` (before the first `0`)\n//\n// `formatter` is `'880' =>\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\n//\n// The result is `{ text: '8 (80 )', caret: 4 }`.\n//\n\nfunction format$1(value, caret, formatter) {\n if (typeof formatter === 'string') {\n formatter = template_formatter(formatter);\n }\n var _ref = formatter(value) || {},\n text = _ref.text,\n template = _ref.template;\n if (text === undefined) {\n text = value;\n }\n if (template) {\n if (caret === undefined) {\n caret = text.length;\n } else {\n var index = 0;\n var found = false;\n var possibly_last_input_character_index = -1;\n while (index < text.length && index < template.length) {\n // Character placeholder found\n if (text[index] !== template[index]) {\n if (caret === 0) {\n found = true;\n caret = index;\n break;\n }\n possibly_last_input_character_index = index;\n caret--;\n }\n index++;\n } // If the caret was positioned after last input character,\n // then the text caret index is just after the last input character.\n\n if (!found) {\n caret = possibly_last_input_character_index + 1;\n }\n }\n }\n return {\n text: text,\n caret: caret\n };\n}\nfunction isReadOnly(element) {\n return element.hasAttribute('readonly');\n} // Gets selection bounds\n\nfunction getSelection(element) {\n // If no selection, return nothing\n if (element.selectionStart === element.selectionEnd) {\n return;\n }\n return {\n start: element.selectionStart,\n end: element.selectionEnd\n };\n} // Key codes\n\nvar Keys = {\n Backspace: 8,\n Delete: 46\n}; // Finds out the operation to be intercepted and performed\n// based on the key down event `keyCode`.\n\nfunction getOperation(event) {\n switch (event.keyCode) {\n case Keys.Backspace:\n return 'Backspace';\n case Keys.Delete:\n return 'Delete';\n }\n} // Gets caret position\n\nfunction getCaretPosition(element) {\n return element.selectionStart;\n} // Sets caret position\n\nfunction setCaretPosition(element, caret_position) {\n // Sanity check\n if (caret_position === undefined) {\n return;\n } // Set caret position.\n // There has been an issue with caret positioning on Android devices.\n // https://github.com/catamphetamine/input-format/issues/2\n // I was revisiting this issue and looked for similar issues in other libraries.\n // For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\n // They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\n // The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\n // https://github.com/text-mask/text-mask/issues/300\n // They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\n // https://github.com/text-mask/text-mask/pull/400/files\n // I've implemented the same workaround here.\n\n if (isAndroid()) {\n setTimeout(function () {\n return element.setSelectionRange(caret_position, caret_position);\n }, 0);\n } else {\n element.setSelectionRange(caret_position, caret_position);\n }\n}\nfunction isAndroid() {\n // `navigator` is not defined when running mocha tests.\n if (typeof navigator !== 'undefined') {\n return ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent);\n }\n}\nvar ANDROID_USER_AGENT_REG_EXP = /Android/i;\nfunction onChange(event, input, _parse, _format, on_change) {\n formatInputText(input, _parse, _format, undefined, on_change);\n} // \"Delete\" and \"Backspace\" keys are special\n// in a way that they're not handled by the regular `onChange()` handler\n// and instead are intercepted and re-applied manually.\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\n// results in erasing a character, but that character might be any character,\n// while it would be a better \"user experience\" if it erased not just any character\n// but the closest \"meaningful\" character.\n// For example, if a template is `(xxx) xxx-xxxx`,\n// and the `` value is `(111) 222-3333`,\n// then, if a user begins erasing the `3333` part via \"Backspace\"\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\n// Nothing wrong with that, but it would be a better \"user experience\"\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\n// character, which would be the rightmost `2`.\n// So, what this `onKeyDown()` handler does is it intercepts\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\n// following the logic described above.\n\nfunction onKeyDown(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n var operation = getOperation(event);\n switch (operation) {\n case 'Delete':\n case 'Backspace':\n // Intercept this operation and perform it manually.\n event.preventDefault();\n var selection = getSelection(input); // If a selection is made, just erase the selected text.\n\n if (selection) {\n eraseSelection(input, selection);\n return formatInputText(input, _parse, _format, undefined, on_change);\n } // Else, perform the (character erasing) operation manually.\n\n return formatInputText(input, _parse, _format, operation, on_change);\n }\n}\n/**\r\n * Erases the selected text inside an ``.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\n\nfunction eraseSelection(input, selection) {\n var text = input.value;\n text = text.slice(0, selection.start) + text.slice(selection.end);\n input.value = text;\n setCaretPosition(input, selection.start);\n}\n/**\r\n * Parses and re-formats `` textual value.\r\n * E.g. when a user enters something into the ``\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\n\nfunction formatInputText(input, _parse, _format, operation, on_change) {\n // Parse `` textual value.\n // Get the `value` and `caret` position.\n var _parse2 = parse$1(input.value, getCaretPosition(input), _parse),\n value = _parse2.value,\n caret = _parse2.caret; // If a user performed an operation (\"Backspace\", \"Delete\")\n // then apply that operation and get the new `value` and `caret` position.\n\n if (operation) {\n var newValueAndCaret = edit(value, caret, operation);\n value = newValueAndCaret.value;\n caret = newValueAndCaret.caret;\n } // Format the `value`.\n // (and reposition the caret accordingly)\n\n var formatted = format$1(value, caret, _format);\n var text = formatted.text;\n caret = formatted.caret; // Set `` textual value manually\n // to prevent React from resetting the caret position\n // later inside a subsequent `render()`.\n // Doesn't work for custom `inputComponent`s for some reason.\n\n input.value = text; // Position the caret properly.\n\n setCaretPosition(input, caret); // If the `` textual value did change,\n // then the parsed `value` may have changed too.\n\n on_change(value);\n}\nvar _excluded$8 = [\"value\", \"parse\", \"format\", \"inputComponent\", \"onChange\", \"onKeyDown\"];\nfunction _extends$8() {\n _extends$8 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$8.apply(this, arguments);\n}\nfunction _objectWithoutProperties$8(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose$8(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose$8(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n//\n// this.setState({ phone })}\n// \tparse={character => character}\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\n//\n\nfunction Input(_ref, ref) {\n var value = _ref.value,\n parse = _ref.parse,\n format = _ref.format,\n InputComponent = _ref.inputComponent,\n onChange$1 = _ref.onChange,\n onKeyDown$1 = _ref.onKeyDown,\n rest = _objectWithoutProperties$8(_ref, _excluded$8);\n var internalRef = useRef();\n var setRef = useCallback(function (instance) {\n internalRef.current = instance;\n if (ref) {\n if (typeof ref === 'function') {\n ref(instance);\n } else {\n ref.current = instance;\n }\n }\n }, [ref]);\n var _onChange = useCallback(function (event) {\n return onChange(event, internalRef.current, parse, format, onChange$1);\n }, [internalRef, parse, format, onChange$1]);\n var _onKeyDown = useCallback(function (event) {\n if (onKeyDown$1) {\n onKeyDown$1(event);\n }\n return onKeyDown(event, internalRef.current, parse, format, onChange$1);\n }, [internalRef, parse, format, onChange$1, onKeyDown$1]);\n return /*#__PURE__*/React__default.createElement(InputComponent, _extends$8({}, rest, {\n ref: setRef,\n value: format(isEmptyValue(value) ? '' : value).text,\n onKeyDown: _onKeyDown,\n onChange: _onChange\n }));\n}\nInput = /*#__PURE__*/React__default.forwardRef(Input);\nInput.propTypes = {\n // Parses a single characher of `` text.\n parse: propTypesExports.func.isRequired,\n // Formats `value` into `` text.\n format: propTypesExports.func.isRequired,\n // Renders `` by default.\n inputComponent: propTypesExports.elementType.isRequired,\n // `` `type` attribute.\n type: propTypesExports.string.isRequired,\n // Is parsed from text.\n value: propTypesExports.string,\n // This handler is called each time `` text is changed.\n onChange: propTypesExports.func.isRequired,\n // Passthrough\n onKeyDown: propTypesExports.func,\n onCut: propTypesExports.func,\n onPaste: propTypesExports.func\n};\nInput.defaultProps = {\n // Renders `` by default.\n inputComponent: 'input',\n // `` `type` attribute.\n type: 'text'\n};\nvar Input$1 = Input;\nfunction isEmptyValue(value) {\n return value === undefined || value === null;\n}\nfunction _typeof$4(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof$4 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof$4(obj);\n}\nfunction _defineProperties$9(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$9(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$9(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$9(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _classCallCheck$9(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _inherits$1(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf$1(subClass, superClass);\n}\nfunction _createSuper$1(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct$1();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf$1(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf$1(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn$1(this, result);\n };\n}\nfunction _possibleConstructorReturn$1(self, call) {\n if (call && (_typeof$4(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized$1(self);\n}\nfunction _assertThisInitialized$1(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf$1(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf$1(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct$1()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf$1(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeReflectConstruct$1() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _setPrototypeOf$1(o, p) {\n _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf$1(o, p);\n}\nfunction _getPrototypeOf$1(o) {\n _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf$1(o);\n}\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits$1(ParseError, _Error);\n var _super = _createSuper$1(ParseError);\n function ParseError(code) {\n var _this;\n _classCallCheck$9(this, ParseError);\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized$1(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n return _createClass$9(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\n// The minimum length of the national significant number.\nvar MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nvar MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nvar MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nvar VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nvar WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nvar VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nvar PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n\n// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nfunction compare(a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\nfunction _typeof$3(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof$3 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof$3(obj);\n}\nfunction _classCallCheck$8(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$8(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$8(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$8(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$8(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck$8(this, Metadata);\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n _createClass$8(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n return Metadata;\n}();\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck$8(this, NumberingPlan);\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n _createClass$8(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n return NumberingPlan;\n}();\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck$8(this, Format);\n this._format = format;\n this.metadata = metadata;\n }\n _createClass$8(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() &&\n // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck$8(this, Type);\n this.type = type;\n this.metadata = metadata;\n }\n _createClass$8(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n return Type;\n}();\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n case 'MOBILE':\n return types[1];\n case 'TOLL_FREE':\n return types[2];\n case 'PREMIUM_RATE':\n return types[3];\n case 'PERSONAL_NUMBER':\n return types[4];\n case 'VOICEMAIL':\n return types[5];\n case 'UAN':\n return types[6];\n case 'PAGER':\n return types[7];\n case 'VOIP':\n return types[8];\n case 'SHARED_COST':\n return types[9];\n }\n}\nfunction validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof$3(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar type_of = function type_of(_) {\n return _typeof$3(_);\n};\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nfunction getCountryCallingCode$1(country, metadata) {\n metadata = new Metadata(metadata);\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n throw new Error(\"Unknown country: \".concat(country));\n}\nfunction isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\nfunction setVersion(metadata) {\n var version = metadata.version;\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\nfunction createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nvar VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nvar VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER +\n// Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp(\n// Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' +\n// Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nfunction isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nfunction isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nfunction extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n i++;\n }\n}\nfunction _createForOfIteratorHelperLoose$a(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$d(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$d(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$d(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$d(o, minLen);\n}\nfunction _arrayLikeToArray$d(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nvar DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n};\n\nfunction parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nfunction parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose$a(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n if (digit) {\n result += digit;\n }\n }\n return result;\n}\nfunction _createForOfIteratorHelperLoose$9(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$c(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$c(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$c(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$c(o, minLen);\n}\nfunction _arrayLikeToArray$c(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nfunction parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose$9(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nfunction parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n return '+';\n } // Allow digits.\n\n return parseDigit(character);\n}\nfunction _createForOfIteratorHelperLoose$8(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$b(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$b(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$b(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$b(o, minLen);\n}\nfunction _arrayLikeToArray$b(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nfunction mergeArrays(a, b) {\n var merged = a.slice();\n for (var _iterator = _createForOfIteratorHelperLoose$8(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n\nfunction checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nfunction checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n var mobile_type = metadata.type('MOBILE');\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nfunction isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n metadata = new Metadata(metadata);\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nfunction isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n\n/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nfunction matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\nfunction _createForOfIteratorHelperLoose$7(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$a(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$a(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$a(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$a(o, minLen);\n}\nfunction _arrayLikeToArray$a(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nfunction getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n return 'FIXED_LINE';\n }\n for (var _iterator = _createForOfIteratorHelperLoose$7(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nfunction isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n return matchesEntirely(nationalNumber, type.pattern());\n}\n\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nfunction isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n /**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nfunction getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return [];\n }\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n _metadata.selectNumberingPlan(country);\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n return false;\n}\n\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nfunction applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nvar FIRST_GROUP_PATTERN = /(\\$\\d)/;\nfunction formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix;\n _ref.carrierCode;\n _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() :\n // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n return formattedNumber;\n}\n\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nfunction getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nfunction formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n if (!number) {\n return '';\n }\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\nfunction _createForOfIteratorHelperLoose$6(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$9(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$9(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$9(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen);\n}\nfunction _arrayLikeToArray$9(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction ownKeys$6(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) {\n _defineProperty$6(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$6(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nfunction formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread$6(_objectSpread$6({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n metadata = new Metadata(metadata);\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n number = formatNationalNumber$1(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n number = formatNationalNumber$1(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\nfunction formatNationalNumber$1(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n if (!format) {\n return number;\n }\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose$6(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode$1(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber$1(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n return formattedNumber;\n }\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber$1(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\nfunction ownKeys$5(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) {\n _defineProperty$5(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$5(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck$7(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$7(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$7(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$7(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$7(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck$7(this, PhoneNumber);\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n _createClass$7(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossiblePhoneNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread$5(_objectSpread$5({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n return PhoneNumber;\n}();\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n }\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nfunction stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n return number;\n}\n\n/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nfunction extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n var nationalPrefix;\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n return {\n nationalNumber: number\n };\n}\n\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nfunction extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n return true;\n}\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n default:\n return true;\n }\n}\n\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nfunction extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode$1(country, metadata) : callingCode;\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n return {\n number: number\n };\n}\n\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nfunction extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n if (number[1] === '0') {\n return {};\n }\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n i++;\n }\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n\nfunction _createForOfIteratorHelperLoose$5(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$8(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$8(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$8(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen);\n}\nfunction _arrayLikeToArray$8(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n var matchingCountries = [];\n for (var _iterator = _createForOfIteratorHelperLoose$5(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If the `defaultCountry` is among the `matchingCountries` then return it.\n if (defaultCountry) {\n if (country === defaultCountry) {\n return country;\n }\n matchingCountries.push(country);\n } else {\n return country;\n }\n }\n } // Return the first (\"main\") one of the `matchingCountries`.\n\n if (matchingCountries.length > 0) {\n return matchingCountries[0];\n }\n}\nfunction getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n\n// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\nvar PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nvar RFC3966_PREFIX_ = 'tel:';\nvar RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nvar RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nfunction extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nfunction isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nfunction extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n var phoneNumberString;\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n\n// This is a port of Google Android `libphonenumber`'s\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nfunction parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n throw new ParseError('NOT_A_NUMBER');\n }\n return {};\n }\n var _parsePhoneNumber = parsePhoneNumber$3(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n return {};\n } // Validate national (significant) number length.\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n return {};\n }\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n if (country) {\n phoneNumber.country = country;\n }\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n if (ext) {\n phoneNumber.ext = ext;\n }\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n return;\n }\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n if (startsAt < 0) {\n return;\n }\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n var withExtensionStripped = extractExtension(number);\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n if (ext) {\n result.ext = ext;\n }\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\nfunction parsePhoneNumber$3(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n var country;\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n if (defaultCountry) {\n country = defaultCountry;\n }\n countryCallingCode = defaultCallingCode || getCountryCallingCode$1(defaultCountry, metadata.metadata);\n } else return {};\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') ;else {\n metadata.country(country);\n }\n }\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\nfunction ownKeys$4(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) {\n _defineProperty$4(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$4(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread$4(_objectSpread$4({}, options), {}, {\n v2: true\n }), metadata);\n}\nfunction _typeof$2(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof$2(obj);\n}\nfunction ownKeys$3(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) {\n _defineProperty$3(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$3(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _slicedToArray$2(arr, i) {\n return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$7(arr, i) || _nonIterableRest$2();\n}\nfunction _nonIterableRest$2() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$7(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$7(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen);\n}\nfunction _arrayLikeToArray$7(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit$2(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles$2(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\n// Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\nfunction normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray$2(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n if (arg_2) {\n options = _objectSpread$3({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof$2(_) === 'object';\n};\nfunction ownKeys$2(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) {\n _defineProperty$2(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty$2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction parsePhoneNumber$2(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread$2(_objectSpread$2({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) ;else {\n throw error;\n }\n }\n}\nfunction parsePhoneNumber$1() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n return parsePhoneNumber$2(text, options, metadata);\n}\nfunction _classCallCheck$6(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$6(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$6(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$6(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$6(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n _classCallCheck$6(this, AsYouTypeState);\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n _createClass$6(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n return this.digits;\n }\n }]);\n return AsYouTypeState;\n}();\nfunction _createForOfIteratorHelperLoose$4(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$6(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$6(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$6(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen);\n}\nfunction _arrayLikeToArray$6(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nvar DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nfunction repeat(string, times) {\n if (times < 1) {\n return '';\n }\n var result = '';\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n times >>= 1;\n string += string;\n }\n return result + string;\n}\nfunction cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nfunction stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n i++;\n }\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n return cleared_string;\n}\nfunction populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose$4(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n return [template, position];\n}\nfunction formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nfunction canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n state.nationalSignificantNumber;\n state.international;\n state.nationalPrefix;\n state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\nfunction _classCallCheck$5(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$5(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$5(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$5(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$5(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck$5(this, PatternParser);\n }\n _createClass$5(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n /* istanbul ignore if */\n\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n if (instructions.length === 1) {\n return instructions[0];\n }\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n var match = pattern.match(OPERATOR);\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n if (before) {\n this.parsePattern(before);\n }\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n if (before) {\n this.parsePattern(before);\n } // The top-level is an implicit \"or\" group, if required.\n\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n this.startContext({\n oneOfSet: true\n });\n break;\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n return PatternParser;\n}();\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n i++;\n }\n return values;\n}\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp(\n// any of:\n'(' +\n// or operator\n'\\\\|' +\n// or\n'|' +\n// or group start\n'\\\\(\\\\?\\\\:' +\n// or\n'|' +\n// or group end\n'\\\\)' +\n// or\n'|' +\n// one-of set start\n'\\\\[' +\n// or\n'|' +\n// one-of set end\n'\\\\]' + ')');\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n return array;\n}\nfunction _createForOfIteratorHelperLoose$3(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$5(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$5(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen);\n}\nfunction _arrayLikeToArray$5(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _classCallCheck$4(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$4(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$4(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$4(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$4(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck$4(this, PatternMatcher);\n this.matchTree = new PatternParser().parse(pattern);\n }\n _createClass$4(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n if (!string) {\n throw new Error('String is required');\n }\n var result = _match(string.split(''), this.matchTree, true);\n if (result && result.match) {\n delete result.matchedChars;\n }\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n return result;\n }\n }]);\n return PatternMatcher;\n}();\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n } // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore next */\n\n return {\n partialMatch: true // matchedChars: characters\n };\n }\n\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n return;\n }\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n while (i < tree.length) {\n var subtree = tree[i];\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true // matchedChars: characters\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true // matchedChars: characters\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n i++;\n } // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n\n /* istanbul ignore if */\n\n if (last) {\n return {\n overflow: true\n };\n }\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n switch (tree.op) {\n case '|':\n var partialMatch;\n for (var _iterator = _createForOfIteratorHelperLoose$3(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n var _result = _match(characters, branch, last);\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n if (partialMatch) {\n return {\n partialMatch: true // matchedChars: ...\n };\n } // Not even a partial match.\n\n return;\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose$3(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n if (last) {\n return {\n overflow: true\n };\n }\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n } // No character matches.\n\n return;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\nfunction _createForOfIteratorHelperLoose$2(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$4(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$4(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$4(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen);\n}\nfunction _arrayLikeToArray$4(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _classCallCheck$3(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$3(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$3(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$3(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' +\n// Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n _ref.state;\n var metadata = _ref.metadata;\n _classCallCheck$3(this, AsYouTypeFormatter);\n this.metadata = metadata;\n this.resetFormat();\n }\n _createClass$3(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose$2(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() &&\n // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error) /* istanbul ignore next */\n {\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n var _loop = function _loop() {\n var format = _step2.value;\n\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n _this3.chosenFormat = format;\n return \"break\";\n };\n\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose$2(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n var _ret = _loop();\n if (_ret === \"break\") break;\n if (_ret === \"continue\") continue;\n }\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n if (missingPlus) {\n return '';\n }\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n return AsYouTypeFormatter;\n}();\nfunction _slicedToArray$1(arr, i) {\n return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$3(arr, i) || _nonIterableRest$1();\n}\nfunction _nonIterableRest$1() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$3(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$3(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen);\n}\nfunction _arrayLikeToArray$3(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit$1(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles$1(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _classCallCheck$2(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$2(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$2(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$2(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n _classCallCheck$2(this, AsYouTypeParser);\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n _createClass$2(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray$1(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n if (digits) {\n this.inputDigits(digits, state);\n }\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode$1(state) {\n var _extractCountryCallin = extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n if (nationalNumber === nationalDigits) {\n return;\n }\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits;\n state.nationalSignificantNumber;\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode;\n _extractCountryCallin2.number;\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n return AsYouTypeParser;\n}();\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\nfunction extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray$1(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n return [formattedDigits, hasPlus];\n}\nfunction _typeof$1(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof$1(obj);\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$2(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$2(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);\n}\nfunction _arrayLikeToArray$2(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties$1(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass$1(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties$1(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck$1(this, AsYouType);\n this.metadata = new Metadata(metadata);\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n _createClass$1(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (_typeof$1(optionsOrDefaultCountry) === 'object') {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n var formattedNationalNumber;\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n } // A legacy alias.\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n if (digits) {\n return this._getCountry();\n }\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n var callingCode = this.state.callingCode;\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n if (prefix) {\n number = prefix + number;\n }\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata\n }));\n }\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n if (!digits) {\n return;\n }\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n var country = this._getCountry();\n if (!nationalSignificantNumber) {\n return;\n } // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n // So `country` and `callingCode` are totally independent.\n\n if (!country && !callingCode) {\n return;\n } // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // then it should also behave accordingly in cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n\n if (country) {\n if (country === this.defaultCountry) {\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n // So `state.country` and `state.callingCode` are totally independent.\n var metadata = new Metadata(this.metadata.metadata);\n metadata.selectNumberingPlan(country);\n var _callingCode = metadata.numberingPlan.callingCode();\n var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n if (ambiguousCountries.length > 1) {\n var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n countries: ambiguousCountries,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata.metadata\n });\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n }\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n if (!phoneNumber) {\n return false;\n }\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n if (!phoneNumber) {\n return false;\n }\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n return AsYouType;\n}();\nfunction getCountries(metadata) {\n return new Metadata(metadata).getCountries();\n}\n\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string?} country - Two-letter (\"ISO 3166-1 alpha-2\") country code.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nfunction formatIncompletePhoneNumber(value, country, metadata) {\n if (!metadata) {\n metadata = country;\n country = undefined;\n }\n return new AsYouType(country, metadata).input(value);\n}\nfunction getInputValuePrefix(_ref) {\n var country = _ref.country,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n metadata = _ref.metadata;\n return country && international && !withCountryCallingCode ? \"+\".concat(getCountryCallingCode$1(country, metadata)) : '';\n}\nfunction removeInputValuePrefix(value, prefix) {\n if (prefix) {\n value = value.slice(prefix.length);\n if (value[0] === ' ') {\n value = value.slice(1);\n }\n }\n return value;\n}\nvar _excluded$7 = [\"country\", \"international\", \"withCountryCallingCode\", \"metadata\"];\nfunction _extends$7() {\n _extends$7 = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$7.apply(this, arguments);\n}\nfunction _objectWithoutProperties$7(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose$7(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose$7(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction createInput$1(defaultMetadata) {\n /**\r\n * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n * that can be passed to ``. It parses and formats\r\n * the user's and maintains the caret's position in the process.\r\n * The caret positioning is maintained using `input-format` library.\r\n * Relies on being run in a DOM environment for calling caret positioning functions.\r\n */\n function InputSmart(_ref, ref) {\n var country = _ref.country,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n rest = _objectWithoutProperties$7(_ref, _excluded$7);\n var format = useCallback(function (value) {\n // \"As you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n var prefix = getInputValuePrefix({\n country: country,\n international: international,\n withCountryCallingCode: withCountryCallingCode,\n metadata: metadata\n }); // Format the number.\n\n var text = formatter.input(prefix + value);\n var template = formatter.getTemplate();\n if (prefix) {\n text = removeInputValuePrefix(text, prefix); // `AsYouType.getTemplate()` can be `undefined`.\n\n if (template) {\n template = removeInputValuePrefix(template, prefix);\n }\n }\n return {\n text: text,\n template: template\n };\n }, [country, metadata]);\n return /*#__PURE__*/React__default.createElement(Input$1, _extends$7({}, rest, {\n ref: ref,\n parse: parsePhoneNumberCharacter,\n format: format\n }));\n }\n InputSmart = /*#__PURE__*/React__default.forwardRef(InputSmart);\n InputSmart.propTypes = {\n /**\r\n * The parsed phone number.\r\n * \"Parsed\" not in a sense of \"E.164\"\r\n * but rather in a sense of \"having only\r\n * digits and possibly a leading plus character\".\r\n * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n value: propTypesExports$1.string.isRequired,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: propTypesExports$1.func.isRequired,\n /**\r\n * A two-letter country code for formatting `value`\r\n * as a national phone number (e.g. `(800) 555 35 35`).\r\n * E.g. \"US\", \"RU\", etc.\r\n * If no `country` is passed then `value`\r\n * is formatted as an international phone number.\r\n * (e.g. `+7 800 555 35 35`)\r\n * Perhaps the `country` property should have been called `defaultCountry`\r\n * because if `value` is an international number then `country` is ignored.\r\n */\n country: propTypesExports$1.string,\n /**\r\n * If `country` property is passed along with `international={true}` property\r\n * then the phone number will be input in \"international\" format for that `country`\r\n * (without \"country calling code\").\r\n * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n * (without \"country calling code\" `+1`).\r\n */\n international: propTypesExports$1.bool,\n /**\r\n * If `country` and `international` properties are set,\r\n * then by default it won't include \"country calling code\" in the input field.\r\n * To change that, pass `withCountryCallingCode` property,\r\n * and it will include \"country calling code\" in the input field.\r\n */\n withCountryCallingCode: propTypesExports$1.bool,\n /**\r\n * `libphonenumber-js` metadata.\r\n */\n metadata: propTypesExports$1.object\n };\n return InputSmart;\n}\nvar InputSmart = createInput$1();\nvar _excluded$6 = [\"value\", \"onChange\", \"country\", \"international\", \"withCountryCallingCode\", \"metadata\", \"inputComponent\"];\nfunction _extends$6() {\n _extends$6 = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$6.apply(this, arguments);\n}\nfunction _objectWithoutProperties$6(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose$6(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose$6(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction createInput(defaultMetadata) {\n /**\r\n * `InputBasic` is the most basic implementation of a `Component`\r\n * that can be passed to ``. It parses and formats\r\n * the user's input but doesn't control the caret in the process:\r\n * when erasing or inserting digits in the middle of a phone number\r\n * the caret usually jumps to the end (this is the expected behavior).\r\n * Why does `InputBasic` exist when there's `InputSmart`?\r\n * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n */\n function InputBasic(_ref, ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n country = _ref.country,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n _ref$inputComponent = _ref.inputComponent,\n Input = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n rest = _objectWithoutProperties$6(_ref, _excluded$6);\n var prefix = getInputValuePrefix({\n country: country,\n international: international,\n withCountryCallingCode: withCountryCallingCode,\n metadata: metadata\n });\n var _onChange = useCallback(function (event) {\n var newValue = parseIncompletePhoneNumber(event.target.value); // By default, if a value is something like `\"(123)\"`\n // then Backspace would only erase the rightmost brace\n // becoming something like `\"(123\"`\n // which would give the same `\"123\"` value\n // which would then be formatted back to `\"(123)\"`\n // and so a user wouldn't be able to erase the phone number.\n // Working around this issue with this simple hack.\n\n if (newValue === value) {\n var newValueFormatted = format(prefix, newValue, country, metadata);\n if (newValueFormatted.indexOf(event.target.value) === 0) {\n // Trim the last digit (or plus sign).\n newValue = newValue.slice(0, -1);\n }\n }\n onChange(newValue);\n }, [prefix, value, onChange, country, metadata]);\n return /*#__PURE__*/React__default.createElement(Input, _extends$6({}, rest, {\n ref: ref,\n value: format(prefix, value, country, metadata),\n onChange: _onChange\n }));\n }\n InputBasic = /*#__PURE__*/React__default.forwardRef(InputBasic);\n InputBasic.propTypes = {\n /**\r\n * The parsed phone number.\r\n * \"Parsed\" not in a sense of \"E.164\"\r\n * but rather in a sense of \"having only\r\n * digits and possibly a leading plus character\".\r\n * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n value: propTypesExports$1.string.isRequired,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: propTypesExports$1.func.isRequired,\n /**\r\n * A two-letter country code for formatting `value`\r\n * as a national phone number (e.g. `(800) 555 35 35`).\r\n * E.g. \"US\", \"RU\", etc.\r\n * If no `country` is passed then `value`\r\n * is formatted as an international phone number.\r\n * (e.g. `+7 800 555 35 35`)\r\n * Perhaps the `country` property should have been called `defaultCountry`\r\n * because if `value` is an international number then `country` is ignored.\r\n */\n country: propTypesExports$1.string,\n /**\r\n * If `country` property is passed along with `international={true}` property\r\n * then the phone number will be input in \"international\" format for that `country`\r\n * (without \"country calling code\").\r\n * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n * (without \"country calling code\" `+1`).\r\n */\n international: propTypesExports$1.bool,\n /**\r\n * If `country` and `international` properties are set,\r\n * then by default it won't include \"country calling code\" in the input field.\r\n * To change that, pass `withCountryCallingCode` property,\r\n * and it will include \"country calling code\" in the input field.\r\n */\n withCountryCallingCode: propTypesExports$1.bool,\n /**\r\n * `libphonenumber-js` metadata.\r\n */\n metadata: propTypesExports$1.object,\n /**\r\n * The `` component.\r\n */\n inputComponent: propTypesExports$1.elementType\n };\n return InputBasic;\n}\nvar InputBasic = createInput();\nfunction format(prefix, value, country, metadata) {\n return removeInputValuePrefix(formatIncompletePhoneNumber(prefix + value, country, metadata), prefix);\n}\n\n/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\nfunction getCountryFlag(country) {\n return getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1]);\n}\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\n\nfunction getRegionalIndicatorSymbol(letter) {\n return String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0));\n}\nvar _excluded$5 = [\"value\", \"onChange\", \"options\"],\n _excluded2$1 = [\"value\", \"options\", \"className\", \"iconComponent\", \"getIconAspectRatio\", \"arrowComponent\", \"unicodeFlags\"];\nfunction _createForOfIteratorHelperLoose$1(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _extends$5() {\n _extends$5 = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$5.apply(this, arguments);\n}\nfunction _objectWithoutProperties$5(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose$5(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose$5(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction CountrySelect(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n options = _ref.options,\n rest = _objectWithoutProperties$5(_ref, _excluded$5);\n var onChange_ = useCallback(function (event) {\n var value = event.target.value;\n onChange(value === 'ZZ' ? undefined : value);\n }, [onChange]);\n useMemo(function () {\n return getSelectedOption(options, value);\n }, [options, value]); // \"ZZ\" means \"International\".\n // (HTML requires each `