{"version":3,"file":"Widgets.CoverageMap-2d74c0099297a973ad5e.js","mappings":"yGAAO,SAASA,EAAiBC,EAAUC,EAAQC,IAQ5C,SAA8BC,EAAQH,EAAUC,EAAQC,GAC3D,MAAME,EAAcH,EAAOI,MAAM,KAEjC,IAAK,IAAIC,EAAI,EAAGA,EAAIN,EAASO,OAAQD,IAAK,CACtC,MAAME,EAAUR,EAASM,GAEzB,IAAK,IAAIG,EAAI,EAAGA,EAAIL,EAAYG,OAAQE,IAAK,CACzC,MAAMC,EAAQN,EAAYK,GAGtBD,EAAQT,iBAAiBW,EAAOR,EAIxC,CACJ,CACJ,CAvBIS,CAAqB,EAAOX,EAAUC,EAAQC,EAClD,C,wDCFA,IAAIU,EAAW,EAAQ,MACnBC,EAAM,EAAQ,OACdC,EAAW,EAAQ,OAMnBC,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,IAqLrBC,EAAOC,QA7HP,SAAkBC,EAAMC,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARZ,EACT,MAAM,IAAIa,UAzEQ,uBAmFpB,SAASC,EAAWC,GAClB,IAAIC,EAAOb,EACPc,EAAUb,EAKd,OAHAD,EAAWC,OAAWc,EACtBT,EAAiBM,EACjBT,EAASN,EAAKmB,MAAMF,EAASD,EAE/B,CAqBA,SAASI,EAAaL,GACpB,IAAIM,EAAoBN,EAAOP,EAM/B,YAAyBU,IAAjBV,GAA+Ba,GAAqBpB,GACzDoB,EAAoB,GAAOV,GANJI,EAAON,GAM8BJ,CACjE,CAEA,SAASiB,IACP,IAAIP,EAAOxB,IACX,GAAI6B,EAAaL,GACf,OAAOQ,EAAaR,GAGtBR,EAAUiB,WAAWF,EA3BvB,SAAuBP,GACrB,IAEIU,EAAcxB,GAFMc,EAAOP,GAI/B,OAAOG,EACHf,EAAU6B,EAAapB,GAJDU,EAAON,IAK7BgB,CACN,CAmBqCC,CAAcX,GACnD,CAEA,SAASQ,EAAaR,GAKpB,OAJAR,OAAUW,EAINN,GAAYT,EACPW,EAAWC,IAEpBZ,EAAWC,OAAWc,EACfZ,EACT,CAcA,SAASqB,IACP,IAAIZ,EAAOxB,IACPqC,EAAaR,EAAaL,GAM9B,GAJAZ,EAAW0B,UACXzB,EAAW0B,KACXtB,EAAeO,EAEXa,EAAY,CACd,QAAgBV,IAAZX,EACF,OAzEN,SAAqBQ,GAMnB,OAJAN,EAAiBM,EAEjBR,EAAUiB,WAAWF,EAAcrB,GAE5BS,EAAUI,EAAWC,GAAQT,CACtC,CAkEayB,CAAYvB,GAErB,GAAIG,EAIF,OAFAqB,aAAazB,GACbA,EAAUiB,WAAWF,EAAcrB,GAC5Ba,EAAWN,EAEtB,CAIA,YAHgBU,IAAZX,IACFA,EAAUiB,WAAWF,EAAcrB,IAE9BK,CACT,CAGA,OA3GAL,EAAOT,EAASS,IAAS,EACrBX,EAASY,KACXQ,IAAYR,EAAQQ,QAEpBL,GADAM,EAAS,YAAaT,GACHT,EAAUD,EAASU,EAAQG,UAAY,EAAGJ,GAAQI,EACrEO,EAAW,aAAcV,IAAYA,EAAQU,SAAWA,GAoG1De,EAAUM,OApCV,gBACkBf,IAAZX,GACFyB,aAAazB,GAEfE,EAAiB,EACjBN,EAAWK,EAAeJ,EAAWG,OAAUW,CACjD,EA+BAS,EAAUO,MA7BV,WACE,YAAmBhB,IAAZX,EAAwBD,EAASiB,EAAahC,IACvD,EA4BOoC,CACT,C,wBC5LA,IAAIQ,EAAO,EAAQ,OAsBnBrC,EAAOC,QAJG,WACR,OAAOoC,EAAKC,KAAK7C,KACnB,C,sECfI,EAAwC,SAAU0B,EAASoB,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC1F,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC7F,SAASF,EAAKvC,GAJlB,IAAesC,EAIatC,EAAO2C,KAAOR,EAAQnC,EAAOsC,QAJ1CA,EAIyDtC,EAAOsC,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,EAAQ,KAIjBM,KAAKP,EAAWK,EAAW,CAC7GH,GAAMN,EAAYA,EAAUpB,MAAMF,EAASoB,GAAc,KAAKS,OAClE,GACJ,EAKA,MAAMK,EAAY,CAAC,EACnB,IAAIC,EACJ,SAASC,EAAUC,GACf,MAA+C,SAAxCC,OAAOC,iBAAiBF,GAAIG,UAAsB,OAAaH,EAC1E,CACA,MAAMI,EAAc,CAChBC,cAAgBC,GAAa,OAAU,OAAQ,OAAQ,GAAQ,YACvDR,EACAQ,WAGiB,sCACTC,mBAIN,SACNC,WAAWC,kBAAkBC,IAAI,uDAC3B,wEC3BP,WACH,OAVkD/C,EAUjCa,KAVyDS,EAUnC,YAEnC,MAAMzC,QAAe,qCAErBmE,KAAKC,KAAK,KAAMpE,EAAOqE,QAC3B,EAbO,KAFgE7B,OAUxC,KARbA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC1F,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC7F,SAASF,EAAKvC,GAJlB,IAAesC,EAIatC,EAAO2C,KAAOR,EAAQnC,EAAOsC,QAJ1CA,EAIyDtC,EAAOsC,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,EAAQ,KAIjBM,KAAKP,EAAWK,EAAW,CAC7GH,GAAMN,EAAYA,EAAUpB,MAAMF,EAAuB,KAAK6B,OAClE,IAPwC,IAAU7B,EAAqBqB,EAAGC,CAgB9E,CDqBc6B,GACNhB,EAAIA,GAAKG,OAAOH,EAChBQ,KARIF,EAAYW,WASpB,IACAA,UAAW,KACPL,IAAI,QAAQM,SACZN,IAAI,4BAA4BM,QAAQ,EAE5CC,KAAOC,IACH,MAAMC,EAAgBD,EAAKE,KAAK,wBAC3BD,EAAcxF,SAGnBR,iBAAiB,oBAAoB,IAAM,OAAU,OAAQ,OAAQ,GAAQ,mBACpD,sCACToF,aACRH,EAAYW,WAEpB,MACAL,IAAIW,UAAUC,OAAM,WAChB,IAAIC,EAAqB,EACzBJ,EAAcK,MAAK,CAAC9F,EAAGsE,KACnB,MAAMyB,EAAef,IAAIV,GACzBI,EAAYsB,gBAAgBD,GAC5BA,EACKL,KAAK,0BACLO,IAAI,SACJC,GAAG,SAAUnC,IACde,WAAWqB,eAAepC,EAAEqC,eAAe,GAC3CtB,WAAWuB,2BAA2BtC,EAAEqC,cAAe,SAAU,SAAS,IAE9EL,EACKL,KAAK,mBACLO,MACAC,GAAG,SAAS,WACbxB,EAAYsB,gBAAgBD,EAChC,IACA,MAAMO,EAAcP,EAAaL,KAAK,yBAClCY,EAAYrG,OACZqG,EAAYJ,GAAG,QAAS,KAAK,WACzBxB,EAAY6B,mBAAmBR,EAAcO,EACjD,IAGIjC,EAAUC,GACVI,EAAY8B,OAAOT,GAGnBF,GAER,IAEAA,EAAqB,GACrBb,IAAIT,QAAQ2B,GAAG,gBAAiBxB,EAAY+B,gBAEpD,IAAE,EAENF,mBAAoB,CAACR,EAAcO,KAC/BA,EAAYL,IAAI,SAChBK,EAAYI,QAAQ,qCAAqChB,KAAK,SAASJ,SACvEgB,EAAYhB,SACZR,WAAW6B,WAAW,cAAe,YACrCZ,EAAaL,KAAK,mCAAmCkB,YAAY,UACjElC,EAAY8B,OAAOT,GACnB,MAAMc,EAAO,WACPC,EAAMf,EAAaW,QAAQ,OAAOG,MACxC,GAAIC,EAAI7G,OAAQ,CACZ,MAAM8G,EAAoD,UAA5CD,EAAI,GAAGE,aAAaH,GAAMI,cAClCC,EAAUC,OAAOC,OAAO,CAC1BC,OAAQ1B,SAAS2B,KAAKC,aACtBC,KAAM,cACPT,EAAQ,CAAEU,SAAU,OAAU,CAAEA,SAAU,oBAAqBC,IAAK/B,SAASgC,SAASC,OACzFrD,OAAOsD,OAAOC,YAAYZ,EAAS,IACvC,GAEJT,gBAAiB,KAAS,KAEtB,MAAMhB,EAAgBT,IAAI,wBAC1B,IAAI+C,EAAoB,EACxBtC,EAAcK,MAAK,CAAC9F,EAAGsE,KACnB,MAAMyB,EAAef,IAAIV,GACnBgC,EAAcP,EAAaL,KAAK,yBAClCK,EAAaiC,KAAK,gBAAkB1B,EAAYrG,OAAS,IAEzDoE,EAAUC,GACVI,EAAY8B,OAAOT,GAGnBgC,IACJ,IAEsB,IAAtBA,GACA/C,IAAIT,QAAQ0B,IAAI,gBAAiBvB,EAAY+B,gBACjD,GACD,KACHD,OAAST,IACDA,EAAaiC,KAAK,iBAGjB5D,GAMLU,WAAWC,kBAAkBC,IAAI,iDACjCN,EAAYuD,SAASlC,IANjBrB,EAAYC,eAAc,KACtBD,EAAY8B,OAAOT,EAAa,IAKN,EAEtCkC,SAAWlC,IACP,MAAMmC,EAAMnC,EAAaiC,KAAK,OACxBG,EAAMpC,EAAaiC,KAAK,OACxBI,EAAQrC,EAAaiC,KAAK,SAC1BK,EAAatC,EAAaiC,KAAK,eAErC7D,EAAUkE,GAAc,CAAC,EACzB,MAAMC,EAAgBvC,EAAaL,KAAK,YAAc2C,GAClDC,EAAcrI,QACdyE,EAAY6D,WAAWD,EAAcE,IAAI,GAAIN,EAAKC,EAAKC,EAAOC,GAElE,MAAMI,EAAiB1C,EAAaL,KAAK,aAAe2C,GACpDI,EAAexI,QACfyE,EAAYgE,YAAYD,EAAeD,IAAI,GAAIN,EAAKC,EAAKC,EAAOC,GAEpE,MAAMM,EAAmB5C,EAAaL,KAAK,eAAiB2C,GACxDM,EAAiB1I,QACjByE,EAAYkE,cAAcD,EAAiBH,IAAI,GAAIN,EAAKC,EAAKC,EAAOC,GAExEtC,EAAaL,KAAK,wBAAwBQ,GAAG,SAASnC,IAClDW,EAAYmE,WAAW9E,EAAGsE,EAAW,IAEzCtC,EAAaiC,KAAK,eAAe,EAAK,EAE1Ca,WAAY,CAAC9E,EAAGsE,KACZ,MAAMS,EAAW3E,EAAUkE,GACrBU,EAAa/D,IAAIjB,EAAEqC,eAAeS,KAAK,QACzCkC,IAAe,qBAAuBV,EACtCS,EAASE,OAAOC,YAEXF,IAAe,sBAAwBV,EAC5CS,EAASI,QAAQD,YAEZF,IAAe,wBAA0BV,GAC9CS,EAASK,UAAUF,WACvB,EAEJG,eAAgB,KACZ,MAAMC,EAAUvE,WAAWwE,uBAAuBC,YAElD,OADc7E,EAAY8E,wBAAwBH,EACtC,EAEhBI,UAAW,CAACvJ,EAASgI,EAAKC,EAAKuB,EAAkBC,KAC7C,MAAM7C,EAAM1C,EAAE0C,IAAI5G,EAAQ0J,GAAI,CAC1BC,OAAQ,CAAC3B,EAAKC,GACd2B,KAAM9E,IAAI9E,GAAS8H,KAAK,SAAW,GACnC+B,oBAAoB,EACpBC,iBAAiB,EACjBC,aAAa,EACbC,mBAAmB,EACnBC,KAAK,IAWT,OATAzF,EAAY0F,oBAAoBC,MAAMvD,GACtCpC,EAAY4F,iBAAiBxD,GAC7B6C,EAAMU,MAAMvD,GAC2C,SAAnDpC,EAAY6F,0BAA0BrK,IACtCwE,EAAY8F,oBAAoBtK,EAASgI,EAAKC,GAAKkC,MAAMvD,GAAK2D,UAAUf,GAE5E5C,EAAIZ,GAAG,WAAW,WACdxB,EAAYgG,UAAUxK,EAAS4G,EACnC,IACOA,CAAG,EAEdsD,kBAAmB,KACf,MAAMO,EAAcvG,EAAEwG,QAAQD,cAE9B,OADAA,EAAYE,eAAe,2NACpBF,CAAW,EAEtBnB,wBAA0BH,IACtB,MAAMyB,EAAoBhG,WAAWwE,uBAAuBwB,kBAC5D,OAAO1G,EAAE2G,SAAS,CACdC,YAAaF,EACbG,MAAO,mBAAqB5B,GAC9B,EAENkB,0BAA4BrK,GACjB8E,IAAI9E,GAAS8H,KAAK,gBAAgBf,cAE7CuD,oBAAqB,CAACtK,EAASgI,EAAKC,KAChC,MAAM+C,EAAgBlG,IAAI9E,GAAS8H,KAAK,cAClCmD,EAAU,IAAI/G,EAAEgH,KAAK,CACvBC,QAASH,EACTI,UAAW,gFACXC,SAAU,CAAC,GAAI,IACfC,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,IAClBC,WAAY,CAAC,GAAI,MAErB,OAAOtH,EAAEuH,OAAO,CAACzD,EAAKC,GAAM,CACxByD,KAAMT,GACR,EAENT,UAAW,CAACxK,EAAS4G,KACjBpC,EAAYmH,gBAAgB3L,EAAS,OAAQ4G,EAAIgF,UAAU,EAE/DvD,WAAY,CAACrI,EAASgI,EAAKC,EAAKuB,EAAkBrB,KAC9C,MAAMS,EAAW3E,EAAUkE,GACrB0D,EAAWrH,EAAY0E,iBACvBtC,EAAMpC,EAAY+E,UAAUvJ,EAASgI,EAAKC,EAAKuB,EAAkBqC,GACvEjD,EAASE,OAASlC,EAClB,MAAMkF,EAAa5H,EAAE6H,aACrBD,EAAWE,SAAS9H,EAAE+H,UAAU,GAAG5H,OAAOO,WAAWsH,iBAErDJ,EAAW9F,GAAG,SAAS,WAAc,IACrC8F,EAAW3B,MAAMvD,EAAI,EAEzB4B,YAAa,CAACxI,EAASgI,EAAKC,EAAKuB,EAAkBrB,KAC/C,MAAMS,EAAW3E,EAAUkE,GACrB0D,EAAWrH,EAAY0E,iBACvBtC,EAAMpC,EAAY+E,UAAUvJ,EAASgI,EAAKC,EAAKuB,EAAkBqC,GACvEjD,EAASI,QAAUpC,EACnB,MAAMuF,EAAYrH,IAAI9E,GAAS8H,KAAK,aACpC,IAAKqE,EACD,OACJ,MAAMC,EAAkBtH,IAAI9E,GAAS8H,KAAK,gBACpCuE,EAAe,IAAInI,EAAEgH,KAAK,CAC5BC,QAASiB,EACThB,UAAW,gFACXC,SAAU,CAAC,GAAI,IACfC,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,IAClBC,WAAY,CAAC,GAAI,MAEfc,EAAsB9H,EAAY6F,0BAA0BrK,GAClE,IAAK,IAAIF,EAAI,EAAGA,EAAIqM,EAAUpM,OAAQD,IAAK,CACvC,MAAMyM,EAAWJ,EAAUrM,GAM3B,GALAoE,EAAEuH,OAAO,CAACc,EAASvE,IAAKuE,EAAStE,KAAM,CACnCyD,KAAMW,IAELlC,MAAMvD,GACN2D,UAAUgC,EAASC,MACI,SAAxBF,EAAgC,CAChC,MAAMG,EAAO,CACT,CACIzE,IAAKA,EACLC,IAAKA,GAET,CACID,IAAKuE,EAASvE,IACdC,IAAKsE,EAAStE,MAGtB/D,EAAEwI,SAASD,EAAM,CACbE,MAAO,UACPC,QAAS,EACTC,OAAQ,IACT1C,MAAMvD,EACb,CACA,GAAI2F,EAASO,UAAYP,EAASO,SAAS/M,OAAQ,CAC/C,MAAMgN,EAAU,IAAI7I,EAAE8I,QAAQT,EAASO,SAAU,CAC7CH,MAAO,UACPE,OAAQ,EACRD,QAAS,GACTK,YAAa,KAEjBrG,EAAIoF,SAASe,EACjB,CACJ,GAEJrE,cAAe,CAAC1I,EAASgI,EAAKC,EAAKuB,EAAkBrB,KACjD,MAAMS,EAAW3E,EAAUkE,GACrB0D,EAAWrH,EAAY0E,iBAC7BN,EAASiD,SAAWA,EACpB,MAAMjF,EAAMpC,EAAY+E,UAAUvJ,EAASgI,EAAKC,EAAKuB,EAAkBqC,GACvEjD,EAASK,UAAYrC,EACrB,MAAMsG,EAAqBpI,IAAI9E,GAAS2H,SAASA,SACjDiB,EAASuE,UAAY,GACrBvE,EAASwE,aAAe,GACxB5I,EAAY6I,mBAAmBrN,EAASmI,GACxC+E,EACK1H,KAAK,+BACLQ,GAAG,UAAWnC,GAAMW,EAAY8I,iBAAiBzJ,EAAG7D,EAASmI,EAAY+E,KAC9EA,EACK1H,KAAK,gCACLQ,GAAG,UAAWnC,GAAMW,EAAY+I,iBAAiB1J,EAAG7D,EAASmI,EAAY+E,IAAoB,EAEtGI,iBAAkB,CAACzJ,EAAG7D,EAASmI,EAAY+E,KAGnCrJ,EAAEqC,cAAcsH,QAChB3J,EAAEqC,cAAcuH,aAAa,UAAW,IAGxC5J,EAAEqC,cAAcwH,gBAAgB,WAEpClJ,EAAY6I,mBAAmBrN,EAASmI,GACxC,MAAMwF,EAAW,GACbT,EAAmB1H,KAAK,qDAAqDzF,OAAS,GAC1DmN,EAAmB1H,KAAK,+CAChCI,MAAK,CAAC9F,EAAG8N,KACzBD,EAASE,KAAK/I,IAAI8I,GAAS9F,KAAK,mBAAmB,IAEvDtD,EAAYmH,gBAAgBuB,EAAoB,4BAA6BS,EAASG,SAGtFtJ,EAAYmH,gBAAgBuB,EAAoB,4BAA6B,KACjF,EAEJK,iBAAkB,CAAC1J,EAAG7D,EAASmI,EAAY+E,KAGvC,IAAIrJ,EAAEqC,cAAclF,SAAS+M,SAAQ,CAACC,EAAGlO,KACjC+D,EAAEqC,cAAc+H,gBAAkBnO,EAClCkO,EAAEP,aAAa,WAAY,IAG3BO,EAAEN,gBAAgB,WACtB,IAEJ,MAAMQ,EAAahB,EAAmB1H,KAAK,+BAG3C0I,EAAWvH,KAAK,UAAW,IAC3BuH,EAAWvG,SAASjB,YAAY,UAChC,MAAMyH,EAAWrJ,IAAIjB,EAAEqC,eAAeV,KAAK,aAC3ChB,EAAYmH,gBAAgBuB,EAAoB,uBAAwBiB,EAASC,OACjF5J,EAAYmH,gBAAgBuB,EAAoB,4BAA6B,MAC3C,GAA9BiB,EAASrG,KAAK,cACdoF,EACK1H,KAAK,oBAAsB2C,GAC3BR,SACA0G,SAAS,UAEgB,GAA9BF,EAASrG,KAAK,cACdoF,EACK1H,KAAK,mBAAqB2C,GAC1BR,SACA0G,SAAS,UAElB7J,EAAY6I,mBAAmBrN,EAASmI,EAAW,EAEvDkF,mBAAoB,SAAUiB,EAAWnG,GACrC,MAAMS,EAAW3E,EAAUkE,GAE3BS,EAASuE,UAAUoB,OAAO,EAAG3F,EAASuE,UAAUpN,QAChD,MAAM8L,EAAWjD,EAASiD,SAAS2C,eAC/B3C,EAAS4C,gBACTjK,EAAYkK,iBAAiBJ,EAAWzC,EAAUjD,GAGlDiD,EAAS7F,GAAG,cAAc,KACtBxB,EAAYkK,iBAAiBJ,EAAWzC,EAAUjD,EAAS,GAGvE,EACA8F,iBAAkB,CAACJ,EAAWzC,EAAUjD,KACpC9D,IAAIc,KAAKgD,EAASwE,cAAc,SAAUuB,EAAOjL,GACzCmI,EAAS+C,SAASlL,IAClBmI,EAASgD,YAAYnL,GACrBmI,EAASiD,UAAUpL,IACnBmI,EAASkD,aAAarL,EAC9B,IACAkF,EAASwE,aAAe,GACxBtI,IAAIA,IAAIwJ,GAAW3G,SAASA,SAASnC,KAAK,+BAA+B8C,MAAM0G,WAAWpJ,MAAK,CAAC9F,EAAGsE,KAC/F,MAAM6K,EAASnK,IAAIwJ,GAAW3G,SAASA,SAASnC,KAAK,gDACrD,GAAIpB,EAAGoJ,QAAS,CACZ,IAAI0B,EACAC,EAaJ,GAZwC,OAApCrK,IAAIV,GAAI0D,KAAK,oBACboH,EAAY,UACZC,EAAQF,EAAOnH,KAAK,cAEqB,OAApChD,IAAIV,GAAI0D,KAAK,oBAClBoH,EAAY,UACZC,EAAQF,EAAOnH,KAAK,cAEqB,OAApChD,IAAIV,GAAI0D,KAAK,qBAClBoH,EAAY,UACZC,EAAQF,EAAOnH,KAAK,cAEpBqH,GAASA,EAAMpP,OAAQ,CACvB,MAAMqP,EAASD,EAAMtP,MAAM,KAC3BiF,IAAIc,KAAKwJ,GAAQ,SAAUT,EAAOU,GAC9BzG,EAASwE,aAAaS,KAAKwB,GAC3B,MAAMC,EAASD,EAAExP,MAAM,KACvB,GAAsB,IAAlByP,EAAOvP,OAAc,CACrB,MAAMwP,EAASD,EAAO,GAChBH,EAAQG,EAAO,GACrBzD,EAAS2D,UAAUH,EAAG,CAClB/H,KAAM,SACNE,IAAK,YAAc+H,IAEvB1D,EAASG,SAAS,CACdtC,GAAI2F,EACJ/H,KAAM,OACNiI,OAAQF,EACR,eAAgBF,EAChBM,MAAO,CACH,aAAcP,EACd,eAAgB,KAG5B,CACJ,GACJ,CACJ,IACF,EAEN9E,iBAAkBxD,IACVhC,WAAW8K,mBACX9I,EAAI+I,SAASC,UACD1L,EAAEwG,QACTmF,WAAW,CACZC,QAAS,UAER3F,MAAMvD,GACPmJ,KAAK,qCACb,EAEJpE,gBAAiB,CAAC3L,EAASgQ,EAAatM,KACpC,MAAMkD,EAAM9B,IAAI9E,GAASwG,QAAQ,wBAC3ByJ,EAASrJ,EAAIkB,KAAK,gBAClBN,EAAMZ,EAAIkB,KAAK,aAChBmI,GAAWzI,IAGhBZ,EAAIkB,KAAK,eAAgBlD,WAAWsL,2BAA2BD,EAAQD,EAAatM,IACpFkD,EAAIkB,KAAK,YAAalD,WAAWsL,2BAA2B1I,EAAKwI,EAAatM,IAC9Ec,EAAYsB,gBAAgBc,GAAI,EAEpCd,gBAAkB9F,IACd,IAAIwH,EAAK2I,EACKrL,IAAI9E,GAASwF,KAAK,mBAAmB4K,GAAG,aAElD5I,EAAM1C,IAAI9E,GAAS8H,KAAK,gBACxBN,EAAMA,EAAI6I,QAAQ,KAAM,SACxBF,EAASrL,IAAI9E,GAAS8H,KAAK,qBAG3BN,EAAM1C,IAAI9E,GAAS8H,KAAK,aACxBqI,EAASrL,IAAI9E,GAAS8H,KAAK,iBAE/BhD,IAAI9E,GAASwF,KAAK,0BAA0B4I,IAAI+B,EAAOE,QAAQ,QAAS7I,GAAK,GAQrF5C,WAAW0L,WAAW,wFALtB,WACI1L,WAAW2L,YAAc/L,EACzBI,WAAW4L,WAAa,IAAMhM,EAAYa,KAAKP,IAAI,SACnDF,WAAW4L,YACf,G,gDEzdO,MAAMC,UAAgC,IACzC,WAAAC,GACIC,QACA/N,KAAKgO,MAAQ,QACjB,CACA,YAAAC,CAAaC,EAAUnR,EAAQuI,EAAOxE,GAClC,IACI,MACMoE,EAD0BlF,KAAKmO,6BACAjJ,KACrClF,KAAKoO,kBAAkB,CACnB9Q,MAAO,MAAM4Q,KAAYnR,IAASoH,cAClCkK,eAAgBH,EAChBI,aAAcvR,EACdwR,YAAajJ,EACbkJ,YAAaC,MAAM3N,QAAS1B,GAAa0B,EACzC4N,cAAexJ,EAAKyJ,QACpBC,oBAAqB1J,EAAK2J,eAElC,CACA,MAAOC,GACH9O,KAAK+O,QAAQC,MAAM,qCAAqCd,aAAoBnR,YAAiBuI,IAASwJ,EAC1G,CACJ,CACA,YAAAG,CAAarK,GACT,MAAMsK,EAA0BlP,KAAKmO,6BAC/BgB,EAASD,EAAwBC,OACvC,IACQA,EAAOC,wBACDxK,GAAOA,EAAIzH,QAAU,IAAM+R,EAAwBhK,OACrDN,EAAMsK,EAAwBhK,KAAKmK,aACvCnN,IAAIc,KAAKmM,EAAOG,UAAU,SAAUvD,EAAOwD,GACvCC,GAAG,SAAUD,EAAQE,cAAe,CAAE7F,KAAM2F,EAAQG,UAAWC,gBAAgB,GAAQ,QACnFJ,EAAQK,gBACRJ,GAAGD,EAAQG,UAAY,WAAY,UAEvCF,GAAGD,EAAQG,UAAY,OAAQ,eAAe,IACzC9K,GAAOA,EAAIzH,QAAU,EACtBqS,GAAGD,EAAQG,UAAY,QAAS,YAGhCF,GAAGD,EAAQG,UAAY,QAAS,WAAY,CACxChN,KAAMkC,GAGlB,IAER,CACA,MAAOkK,GACH9O,KAAK+O,QAAQC,MAAM,+BAA+BpK,IAAOkK,EAC7D,CACJ,CACA,qBAAAe,CAAsBjL,GAClB,IACI,MAAMsK,EAA0BlP,KAAKmO,6BAC/BO,EAAgBQ,EAAwBhK,KAAKyJ,UAC9C/J,GAAOA,EAAIzH,QAAU,KACtByH,EAAMsK,EAAwBhK,KAAKmK,eAElCzK,GAAOA,EAAIzH,QAAU,KACtByH,EAAM,GAAGC,SAASiL,WAAWjL,SAASkL,UAC1C,MAAMC,EAAiB,CACnB1S,MAAO,uBACP2S,UAAWrL,EACX8J,cAAeA,GAEnB1O,KAAKoO,kBAAkB4B,EAC3B,CACA,MAAOlB,GACH9O,KAAK+O,QAAQC,MAAM,4BAA6BF,EACpD,CACJ,CACA,aAAAoB,CAActL,GACV,IACI5E,KAAKiP,aAAarK,GAClB5E,KAAK6P,sBAAsBjL,EAC/B,CACA,MAAOkK,GACH9O,KAAK+O,QAAQC,MAAM,gCAAgCpK,IAAOkK,EAC9D,CACJ,CACA,UAAAqB,CAAWC,GACP,MAAM5O,EAAKqB,SAASwN,cAAc,QAElC,OADA7O,EAAG8O,OAAOzN,SAAS0N,eAAeH,IAC3B5O,EAAGgP,SACd,CACA,IAAA/N,GACI,OAhG8CtD,EAgG7Ba,KAhGqDS,EAgG/B,YAC/BT,KAAKyQ,wBAGHzQ,KAAK0Q,WACf,EAnGG,KAFgElQ,OAgGpC,KA9FjBA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC1F,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC7F,SAASF,EAAKvC,GAJlB,IAAesC,EAIatC,EAAO2C,KAAOR,EAAQnC,EAAOsC,QAJ1CA,EAIyDtC,EAAOsC,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,EAAQ,KAIjBM,KAAKP,EAAWK,EAAW,CAC7GH,GAAMN,EAAYA,EAAUpB,MAAMF,EAAuB,KAAK6B,OAClE,IAPwC,IAAU7B,EAAqBqB,EAAGC,CAsG1E,E,ICvGuED,EAAGC,E,WAAAA,EAYrC,YACjCgB,OAAOO,WAAWyO,wBAGhB,wCAINhP,OAAOO,WAAaqC,OAAOC,OAAO,IAAI,EAAqB7C,OAAOO,YAAc,CAAC,SAC3EP,OAAOO,WAAWS,QACxB,EAAAkO,EAAA,KACJ,EArBW,KAFgEnQ,OAY1C,KAVXA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC1F,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC7F,SAASF,EAAKvC,GAJlB,IAAesC,EAIatC,EAAO2C,KAAOR,EAAQnC,EAAOsC,QAJ1CA,EAIyDtC,EAAOsC,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,EAAQ,KAIjBM,KAAKP,EAAWK,EAAW,CAC7GH,GAAMN,EAAYA,EAAUpB,WAMnB,EANgD,KAAK2B,OAClE,G,wBCPG,SAAS4P,EAAapP,GACzB,GAA4C,SAAxCC,OAAOC,iBAAiBF,GAAIG,QAC5B,OAAO,EAIX,MAAMkP,EAAOrP,EAAGsP,wBACVC,EAAiBtP,OAAOuP,aAAenO,SAASoO,gBAAgBC,aACtE,OAAOL,EAAKM,OAAS,GAAKN,EAAKO,KAAO,GAAKP,EAAKO,KAAOL,CAC3D,C,wICPO,SAASM,IACZ,OAAOnP,IAAI,UACf,CACO,SAASoP,IACZpP,KAAI,WACA,MAAMyO,EAASU,IACVV,EAAOxT,QAEO,CACfoU,aAAc,KACdC,gBAAiB,KACjB/O,KAAM,WACF,MAAMgP,EAA2C,SAArCd,EAAOzL,KAAK,OAAOf,cACzBS,EAAM+L,EAAOzL,KAAK,OAClBwM,EAAYpR,KAAK7C,OACvB,QAAwB,CACpBH,MAAO,oBACPqU,iBAAkB,WAEtB,MAAMnQ,EAAKmP,EAAO,GACdc,GACA,KAA6B,CAAChQ,OAAQD,EAAIA,EAAGoQ,eAAgB,SAAU5R,KAAK6R,UAAUC,KAAK9R,OAC3F,KAA6B,CAACyB,QAAS,OAAQzB,KAAK6R,UAAUC,KAAK9R,SAGnE,KAA6B,CAACyB,OAAQD,EAAIA,EAAGoQ,eAAgB,SAAU5R,KAAK+R,OAAOD,KAAK9R,OACxF,KAA6B,CAACyB,QAAS,OAAQzB,KAAK+R,OAAOD,KAAK9R,QAEpEkC,IAAI8P,KAAK,CACLC,QAASjS,KACT0E,KAAM,MACNE,IAAKA,EACLsN,YAAa,cAEZ/Q,MAAK,SAAU+D,GAChByL,EAAO/N,KAAK,mBAAmBuP,KAAKjN,GACpClD,WAAWoQ,eACXpQ,WAAWqQ,eACPrQ,WAAW4L,YACX5L,WAAW4L,YAEnB,IACK0E,MAAK,SAAUC,EAAOC,EAAYxD,GACnC2B,EAAO/N,KAAK,mBAAmBuP,KAAKxB,EAAO/N,KAAK,iBAAiBuP,QACjEnQ,WAAW+M,QAAQC,MAAM,sCAAsCpK,cAAgB4N,aAAsBxD,oBAAwBuD,EAAME,iBACnI,QAAwB,CACpBnV,MAAO,eACPqU,iBAAkB,SAClB3C,MAAOA,GAEf,IACK0D,QAAO,KACR/B,EAAO/N,KAAK,iBAAiBJ,SAC7BmO,EAAO/N,KAAK,mBAAmBJ,SAC/B,MAAMmQ,EAAUrS,KAAK7C,OACrB,QAAwB,CACpBH,MAAO,kBACPqU,iBAAkB,SAClBiB,UAAWD,EAAUjB,GAAa,MAElCD,EACAzR,KAAK6R,YAGL7R,KAAK+R,QACT,GAER,EACAA,OAAQ,WACJc,mBAAmB7S,KAAKuR,cACxBvR,KAAKuR,aAAeuB,oBAAoB9S,KAAK+S,QAAQjB,KAAK9R,MAAO,CAC7DkN,QAAS,KAEjB,EACA6F,QAAS,WACLtR,OAAOsD,OAAOC,YAAY,CACtBL,SAAU,oBACVC,IAAK/B,SAASgC,SAASC,KACvBP,OAAQoM,EAAOpM,UAChB,IACP,EACAsN,UAAW,WACPgB,mBAAmB7S,KAAKwR,iBACxBxR,KAAKwR,gBAAkBsB,oBAAoB9S,KAAKgT,WAAWlB,KAAK9R,MAAO,CACnEkN,QAAS,KAEjB,EACA8F,WAAY,WACRvR,OAAOsD,OAAOC,YAAY,CACtBL,SAAU,MACVD,KAAM,aACNH,OAAQoM,EAAOpM,UAChB,IACP,GAEO9B,MACf,GACJ,C","sources":["webpack://@whistleout/webui/./Areas/Widgets/js/common/utils/EventHelper.js","webpack://@whistleout/webui/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","webpack://@whistleout/webui/../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","webpack://@whistleout/webui/./Areas/Widgets/js/CoverageMap.ts","webpack://@whistleout/webui/./Areas/Shared/js/vendor/deferred/cartodbjs.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/common.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/index.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/utils/ViewportHelper.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/widget.ts"],"sourcesContent":["export function addEventListener(elements, events, handler) {\n _addOrRemoveListener('add', elements, events, handler);\n}\n\nexport function removeEventListener(elements, events, handler) {\n _addOrRemoveListener('remove', elements, events, handler);\n}\n\nexport function _addOrRemoveListener(action, elements, events, handler) {\n const eventsArray = events.split(' ');\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n\n for (let j = 0; j < eventsArray.length; j++) {\n const event = eventsArray[j];\n\n if (action === 'add') {\n element.addEventListener(event, handler);\n } else {\n element.removeEventListener(event, handler);\n }\n }\n }\n}\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","// TODO: Fix ESLint violations and enable the rules below\n/* eslint-disable eqeqeq */\n/* eslint-disable block-scoped-var */\n/* eslint-disable no-redeclare */\n'use strict';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport debounce from 'lodash/debounce';\nimport { initBootstrapSelect } from '../../Shared/js/vendor/deferred';\nimport { initCartoDb } from '../../Shared/js/vendor/deferred/cartodbjs';\nimport { isInViewport } from './common/utils/ViewportHelper';\nconst instances = {};\nlet L;\nfunction isVisible(el) {\n return window.getComputedStyle(el).display !== 'none' && isInViewport(el);\n}\nconst coverageMap = {\n loadLibraries: (callback) => __awaiter(void 0, void 0, void 0, function* () {\n if (L) {\n callback();\n return;\n }\n const mapbox = yield import(/* webpackChunkName: \"mapbox\" */ 'mapbox-gl');\n if (!mapbox.supported()) {\n coverageMap.removeMap();\n return;\n }\n yield initBootstrapSelect();\n WhistleOut.applySelectPicker(wo$('.container-widget-coverage-map .selectpicker'));\n yield import(/* webpackChunkName: \"leaflet\" */ '../../Shared/js/vendor/deferred/leaflet');\n yield initCartoDb();\n L = L || window.L;\n callback();\n }),\n removeMap: () => {\n wo$('#map').remove();\n wo$('[data-goto-coverage-map]').remove();\n },\n init: (page) => {\n const mapContainers = page.find('[data-coverage-maps]');\n if (!mapContainers.length) {\n return;\n }\n addEventListener('DOMContentLoaded', () => __awaiter(void 0, void 0, void 0, function* () {\n const mapbox = yield import(/* webpackChunkName: \"mapbox\" */ 'mapbox-gl');\n if (!mapbox.supported()) {\n coverageMap.removeMap();\n }\n }));\n wo$(document).ready(function () {\n let mapsNotInitialized = 0;\n mapContainers.each((i, el) => {\n const mapContainer = wo$(el);\n coverageMap.updateWidgetUrl(mapContainer);\n mapContainer\n .find('input[data-embed-code]')\n .off('click')\n .on('click', (e) => {\n WhistleOut.focusAndSelect(e.currentTarget, true);\n WhistleOut.triggerPopoverNotification(e.currentTarget, 'Copied', 'bottom');\n });\n mapContainer\n .find('input[data-amp]')\n .off()\n .on('click', function () {\n coverageMap.updateWidgetUrl(mapContainer);\n });\n const placeholder = mapContainer.find('div[data-placeholder]');\n if (placeholder.length) {\n placeholder.on('click', 'a', function () {\n coverageMap.onMapActivateClick(mapContainer, placeholder);\n });\n }\n else {\n if (isVisible(el)) {\n coverageMap.doInit(mapContainer);\n }\n else {\n mapsNotInitialized++;\n }\n }\n });\n if (mapsNotInitialized > 0) {\n wo$(window).on('resize scroll', coverageMap.viewportChanged);\n }\n });\n },\n onMapActivateClick: (mapContainer, placeholder) => {\n placeholder.off('click');\n placeholder.closest('div.container-widget-coverage-map').find('style').remove();\n placeholder.remove();\n WhistleOut.trackEvent('CoverageMap', 'Activate');\n mapContainer.find('[data-map-content]>:first-child').removeClass('hidden');\n coverageMap.doInit(mapContainer);\n const attr = 'data-amp';\n const map = mapContainer.closest(`div[${attr}]`);\n if (map.length) {\n const isAmp = map[0].getAttribute(attr).toLowerCase() !== 'false';\n const message = Object.assign({\n height: document.body.scrollHeight,\n type: 'embed-size'\n }, isAmp ? { sentinel: 'amp' } : { sentinel: 'whistleout-widget', url: document.location.href });\n window.parent.postMessage(message, '*');\n }\n },\n viewportChanged: debounce(() => {\n console.log('scrolled maps');\n const mapContainers = wo$('[data-coverage-maps]');\n let mapsNotInitilized = 0;\n mapContainers.each((i, el) => {\n const mapContainer = wo$(el);\n const placeholder = mapContainer.find('div[data-placeholder]');\n if (mapContainer.data('initialised') || placeholder.length > 0)\n return;\n if (isVisible(el)) {\n coverageMap.doInit(mapContainer);\n }\n else {\n mapsNotInitilized++;\n }\n });\n if (mapsNotInitilized === 0) {\n wo$(window).off('resize scroll', coverageMap.viewportChanged);\n }\n }, 100),\n doInit: (mapContainer) => {\n if (mapContainer.data('initialised')) {\n return;\n }\n if (!L) {\n coverageMap.loadLibraries(() => {\n coverageMap.doInit(mapContainer);\n });\n return;\n }\n WhistleOut.applySelectPicker(wo$('.container-widget-coverage-map .selectpicker'));\n coverageMap.showMaps(mapContainer);\n },\n showMaps: (mapContainer) => {\n const lat = mapContainer.data('lat');\n const lng = mapContainer.data('lng');\n const label = mapContainer.data('label');\n const instanceId = mapContainer.data('instance-id');\n console.log('initialized map ' + instanceId);\n instances[instanceId] = {};\n const nbnMapElement = mapContainer.find('#nbn-map-' + instanceId);\n if (nbnMapElement.length) {\n coverageMap.showNbnMap(nbnMapElement.get(0), lat, lng, label, instanceId);\n }\n const adslMapElement = mapContainer.find('#adsl-map-' + instanceId);\n if (adslMapElement.length) {\n coverageMap.showAdslMap(adslMapElement.get(0), lat, lng, label, instanceId);\n }\n const mobileMapElement = mapContainer.find('#mobile-map-' + instanceId);\n if (mobileMapElement.length) {\n coverageMap.showMobileMap(mobileMapElement.get(0), lat, lng, label, instanceId);\n }\n mapContainer.find('a[data-toggle=\"tab\"]').on('click', e => {\n coverageMap.onTabClick(e, instanceId);\n });\n mapContainer.data('initialised', true);\n },\n onTabClick: (e, instanceId) => {\n const instance = instances[instanceId];\n const targetHref = wo$(e.currentTarget).attr('href');\n if (targetHref === '#nbn-coverage-tab-' + instanceId) {\n instance.nbnMap._onResize();\n }\n else if (targetHref === '#adsl-coverage-tab-' + instanceId) {\n instance.adslMap._onResize();\n }\n else if (targetHref === '#mobile-coverage-tab-' + instanceId) {\n instance.mobileMap._onResize();\n }\n },\n createMapBoxGl: () => {\n const styleId = WhistleOut.getSiteConfiguration().mapBoxStyle;\n const mapGl = coverageMap.createMapboxVectorLayer(styleId);\n return mapGl;\n },\n createMap: (element, lat, lng, formattedAddress, mapGl) => {\n const map = L.map(element.id, {\n center: [lat, lng],\n zoom: wo$(element).data('zoom') || 14,\n attributionControl: false,\n scrollWheelZoom: false,\n zoomControl: true,\n fullscreenControl: true,\n tap: false\n });\n coverageMap.createAttribution().addTo(map);\n coverageMap.setMobileOptions(map);\n mapGl.addTo(map);\n if (coverageMap.shouldShowCurrentLocation(element) === 'true') {\n coverageMap.createAddressMarker(element, lat, lng).addTo(map).bindPopup(formattedAddress);\n }\n map.on('zoomend', function () {\n coverageMap.onZoomEnd(element, map);\n });\n return map;\n },\n createAttribution: () => {\n const attribution = L.control.attribution();\n attribution.addAttribution('Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox');\n return attribution;\n },\n createMapboxVectorLayer: (styleId) => {\n const mapBoxAccessToken = WhistleOut.getSiteConfiguration().mapBoxAccessToken;\n return L.mapboxGL({\n accessToken: mapBoxAccessToken,\n style: 'mapbox://styles/' + styleId\n });\n },\n shouldShowCurrentLocation: (element) => {\n return wo$(element).data('show-current').toLowerCase();\n },\n createAddressMarker: (element, lat, lng) => {\n const markerIconUrl = wo$(element).data('marker-url');\n const redIcon = new L.Icon({\n iconUrl: markerIconUrl,\n shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n popupAnchor: [1, -34],\n shadowSize: [41, 41]\n });\n return L.marker([lat, lng], {\n icon: redIcon\n });\n },\n onZoomEnd: (element, map) => {\n coverageMap.updateEmbedUrls(element, 'zoom', map.getZoom());\n },\n showNbnMap: (element, lat, lng, formattedAddress, instanceId) => {\n const instance = instances[instanceId];\n const mapBoxGl = coverageMap.createMapBoxGl();\n const map = coverageMap.createMap(element, lat, lng, formattedAddress, mapBoxGl);\n instance.nbnMap = map;\n const nbnCoLayer = L.layerGroup();\n nbnCoLayer.addLayer(L.tileLayer(`${window.WhistleOut.nbnTileLayer}`));\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n nbnCoLayer.on('error', function () { }); // TODO: Log warning in Rollbar\n nbnCoLayer.addTo(map);\n },\n showAdslMap: (element, lat, lng, formattedAddress, instanceId) => {\n const instance = instances[instanceId];\n const mapBoxGl = coverageMap.createMapBoxGl();\n const map = coverageMap.createMap(element, lat, lng, formattedAddress, mapBoxGl);\n instance.adslMap = map;\n const exchanges = wo$(element).data('exchanges');\n if (!exchanges)\n return;\n const exchangeIconUrl = wo$(element).data('exchange-url');\n const exchangeIcon = new L.Icon({\n iconUrl: exchangeIconUrl,\n shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [32, 37],\n iconAnchor: [12, 37],\n popupAnchor: [1, -34],\n shadowSize: [41, 41]\n });\n const showCurrentLocation = coverageMap.shouldShowCurrentLocation(element);\n for (let i = 0; i < exchanges.length; i++) {\n const exchange = exchanges[i];\n L.marker([exchange.lat, exchange.lng], {\n icon: exchangeIcon\n })\n .addTo(map)\n .bindPopup(exchange.name);\n if (showCurrentLocation === 'true') {\n const path = [\n {\n lat: lat,\n lng: lng\n },\n {\n lat: exchange.lat,\n lng: exchange.lng\n }\n ];\n L.polyline(path, {\n color: '#FF0000',\n opacity: 1.0,\n weight: 2\n }).addTo(map);\n }\n if (exchange.boundary && exchange.boundary.length) {\n const polygon = new L.Polygon(exchange.boundary, {\n color: '#8e50d8',\n weight: 2,\n opacity: 0.6,\n fillOpacity: 0.5\n });\n map.addLayer(polygon);\n }\n }\n },\n showMobileMap: (element, lat, lng, formattedAddress, instanceId) => {\n const instance = instances[instanceId];\n const mapBoxGl = coverageMap.createMapBoxGl();\n instance.mapBoxGl = mapBoxGl;\n const map = coverageMap.createMap(element, lat, lng, formattedAddress, mapBoxGl);\n instance.mobileMap = map;\n const mobileMapContainer = wo$(element).parent().parent();\n instance.providers = [];\n instance.mapboxLayers = [];\n coverageMap.reloadMobileLayers(element, instanceId);\n mobileMapContainer\n .find('input[data-mobile-sublayer]')\n .on('change', (e) => coverageMap.onSublayerChange(e, element, instanceId, mobileMapContainer));\n mobileMapContainer\n .find('select[data-mobile-provider]')\n .on('change', (e) => coverageMap.onProviderChange(e, element, instanceId, mobileMapContainer));\n },\n onSublayerChange: (e, element, instanceId, mobileMapContainer) => {\n // The HTML element attributes are not updated by default,\n // do this here explicitly\n if (e.currentTarget.checked) {\n e.currentTarget.setAttribute('checked', '');\n }\n else {\n e.currentTarget.removeAttribute('checked');\n }\n coverageMap.reloadMobileLayers(element, instanceId);\n const networks = [];\n if (mobileMapContainer.find('input[data-mobile-sublayer]:visible:not(:checked)').length > 0) {\n const checkedNetworkTypes = mobileMapContainer.find('input[data-mobile-sublayer]:visible:checked');\n checkedNetworkTypes.each((i, network) => {\n networks.push(wo$(network).data('mobile-sublayer'));\n });\n coverageMap.updateEmbedUrls(mobileMapContainer, 'defaultMobileNetworkTypes', networks.join());\n }\n else {\n coverageMap.updateEmbedUrls(mobileMapContainer, 'defaultMobileNetworkTypes', null);\n }\n },\n onProviderChange: (e, element, instanceId, mobileMapContainer) => {\n // The HTML element attributes are not updated by default,\n // do this here explicitly\n [...e.currentTarget.options].forEach((p, i) => {\n if (e.currentTarget.selectedIndex === i) {\n p.setAttribute('selected', '');\n }\n else {\n p.removeAttribute('selected');\n }\n });\n const checkboxes = mobileMapContainer.find('input[data-mobile-sublayer]');\n // TODO: try using prop() instead of attr() or vanilla JS\n // HACK: .prop() doesn't work for some reason\n checkboxes.attr('checked', '');\n checkboxes.parent().removeClass('hidden');\n const selected = wo$(e.currentTarget).find(':selected');\n coverageMap.updateEmbedUrls(mobileMapContainer, 'defaultMobileNetwork', selected.val());\n coverageMap.updateEmbedUrls(mobileMapContainer, 'defaultMobileNetworkTypes', null);\n if (selected.data('3g-hidden') == true) {\n mobileMapContainer\n .find('#threeg-checkbox-' + instanceId)\n .parent()\n .addClass('hidden');\n }\n if (selected.data('5g-hidden') == true) {\n mobileMapContainer\n .find('#fiveg-checkbox-' + instanceId)\n .parent()\n .addClass('hidden');\n }\n coverageMap.reloadMobileLayers(element, instanceId);\n },\n reloadMobileLayers: function (container, instanceId) {\n const instance = instances[instanceId];\n // Remove existing items\n instance.providers.splice(0, instance.providers.length);\n const mapBoxGl = instance.mapBoxGl.getMapboxMap();\n if (mapBoxGl.isStyleLoaded()) {\n coverageMap.loadMapBoxLayers(container, mapBoxGl, instance);\n }\n else {\n mapBoxGl.on('style.load', () => {\n coverageMap.loadMapBoxLayers(container, mapBoxGl, instance);\n });\n }\n },\n loadMapBoxLayers: (container, mapBoxGl, instance) => {\n wo$.each(instance.mapboxLayers, function (index, value) {\n if (mapBoxGl.getLayer(value))\n mapBoxGl.removeLayer(value);\n if (mapBoxGl.getSource(value))\n mapBoxGl.removeSource(value);\n });\n instance.mapboxLayers = [];\n wo$(wo$(container).parent().parent().find('input[data-mobile-sublayer]').get().reverse()).each((i, el) => {\n const option = wo$(container).parent().parent().find('select[data-mobile-provider] option:selected');\n if (el.checked) {\n let fillColor;\n let layer;\n if (wo$(el).data('mobile-sublayer') === '3g') {\n fillColor = '#af8cdb';\n layer = option.data('3g-mapbox');\n }\n else if (wo$(el).data('mobile-sublayer') === '4g') {\n fillColor = '#8f53d5';\n layer = option.data('4g-mapbox');\n }\n else if (wo$(el).data('mobile-sublayer') === '5g') {\n fillColor = '#710FE3';\n layer = option.data('5g-mapbox');\n }\n if (layer && layer.length) {\n const layers = layer.split(',');\n wo$.each(layers, function (index, v) {\n instance.mapboxLayers.push(v);\n const values = v.split('|');\n if (values.length === 2) {\n const source = values[0];\n const layer = values[1];\n mapBoxGl.addSource(v, {\n type: 'vector',\n url: 'mapbox://' + source\n });\n mapBoxGl.addLayer({\n id: v,\n type: 'fill',\n source: v,\n 'source-layer': layer,\n paint: {\n 'fill-color': fillColor,\n 'fill-opacity': 0.5\n }\n });\n }\n });\n }\n }\n });\n },\n setMobileOptions: map => {\n if (WhistleOut.isMobileDevice()) {\n map.dragging.disable();\n const box = L.control\n .messagebox({\n timeout: 9999999\n })\n .addTo(map);\n box.show('Use two fingers to scroll the map');\n }\n },\n updateEmbedUrls: (element, queryString, value) => {\n const map = wo$(element).closest('[data-coverage-maps]');\n const ampUrl = map.data('embed-ampurl');\n const url = map.data('embed-url');\n if (!ampUrl || !url) {\n return;\n }\n map.data('embed-ampurl', WhistleOut.updateQueryStringParameter(ampUrl, queryString, value));\n map.data('embed-url', WhistleOut.updateQueryStringParameter(url, queryString, value));\n coverageMap.updateWidgetUrl(map);\n },\n updateWidgetUrl: (element) => {\n let url, format;\n const isAmp = wo$(element).find('input[data-amp]').is(':checked');\n if (isAmp) {\n url = wo$(element).data('embed-ampurl');\n url = url.replace(/&/g, '&');\n format = wo$(element).data('embed-ampformat');\n }\n else {\n url = wo$(element).data('embed-url');\n format = wo$(element).data('embed-format');\n }\n wo$(element).find('input[data-embed-code]').val(format.replace('{url}', url));\n }\n};\nfunction main() {\n WhistleOut.CoverageMap = coverageMap;\n WhistleOut.initWidget = () => coverageMap.init(wo$('body'));\n WhistleOut.initWidget();\n}\nWhistleOut.initModule(import.meta.url, main);\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nexport function initCartoDb() {\n return __awaiter(this, void 0, void 0, function* () {\n // eslint-disable-next-line import/no-unresolved\n const module = yield import('../../../../../js/responsive/maps/cartodb?raw');\n // eslint-disable-next-line no-useless-call, no-eval\n eval.call(null, module.default);\n });\n}\n","/* globals ga */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { WhistleOutContext } from '../../../Shared/js/common/common';\nexport class WhistleOutContextWidget extends WhistleOutContext {\n constructor() {\n super();\n this.scope = 'widget';\n }\n pushGtmEvent(category, action, label, value) {\n try {\n const analyticsClientSideData = this.getAnalyticsClientSideData();\n const data = analyticsClientSideData.data;\n this.pushDataLayerItem({\n event: `wo_${category}_${action}`.toLowerCase(),\n customCategory: category,\n customAction: action,\n customLabel: label,\n customValue: isNaN(value) ? undefined : +value,\n customCountry: data.country,\n customProductAreaId: data.productAreaId\n });\n }\n catch (err) {\n this.Rollbar.error(`WhistleOut.pushGtmEvent: category=${category}, action=${action}, label=${label}`, err);\n }\n }\n sendPageView(url) {\n const analyticsClientSideData = this.getAnalyticsClientSideData();\n const config = analyticsClientSideData.config;\n try {\n if (config.trackPageImpression) {\n if ((!url || url.length <= 0) && analyticsClientSideData.data)\n url = analyticsClientSideData.data.trackingUrl;\n wo$.each(config.accounts, function (index, account) {\n ga('create', account.accountNumber, { name: account.trackerId, useAmpClientId: true }, 'auto');\n if (account.linkIdTracking) {\n ga(account.trackerId + '.require', 'linkid');\n }\n ga(account.trackerId + '.set', 'anonymizeIp', true);\n if (!url || url.length <= 0) {\n ga(account.trackerId + '.send', 'pageview');\n }\n else {\n ga(account.trackerId + '.send', 'pageview', {\n page: url\n });\n }\n });\n }\n }\n catch (err) {\n this.Rollbar.error(`WhistleOut.sendPageView url=${url}`, err);\n }\n }\n pushGtmWidgetPageView(url) {\n try {\n const analyticsClientSideData = this.getAnalyticsClientSideData();\n const customCountry = analyticsClientSideData.data.country;\n if (!url || url.length <= 0) {\n url = analyticsClientSideData.data.trackingUrl;\n }\n if (!url || url.length <= 0)\n url = `${location.pathname}${location.search}`;\n const dataLayerValue = {\n event: 'widgetCustomPageView',\n customUrl: url,\n customCountry: customCountry\n };\n this.pushDataLayerItem(dataLayerValue);\n }\n catch (err) {\n this.Rollbar.error('WhistleOut.ushGtmPageView', err);\n }\n }\n trackPageView(url) {\n try {\n this.sendPageView(url);\n this.pushGtmWidgetPageView(url);\n }\n catch (err) {\n this.Rollbar.error(`WhistleOut.trackPageView url=${url}`, err);\n }\n }\n encodeHtml(str) {\n const el = document.createElement('span');\n el.append(document.createTextNode(str));\n return el.innerHTML;\n }\n init() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.isInitRequested) {\n return;\n }\n yield this.initBase();\n });\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport '../../../Shared/js/polyfills';\nimport { WhistleOutContextWidget as WhistleOutContext } from './common';\nimport { widgetInit } from './widget';\n(() => __awaiter(void 0, void 0, void 0, function* () {\n if (window.WhistleOut.isInitRequested) {\n return;\n }\n yield import(/* webpackMode: 'eager' */ '../vendor');\n // Some properties of window.WhistleOut can be initialised\n // by inline scripts before this main initialisation,\n // so we need to merge it\n window.WhistleOut = Object.assign(new WhistleOutContext(), window.WhistleOut || {});\n yield window.WhistleOut.init();\n widgetInit();\n}))();\n","export function isInViewport(el) {\n if (window.getComputedStyle(el).display === 'none') {\n return false;\n }\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n // Based on: https://github.com/Emmaccen/isElementInView/blob/main/view.js\n const rect = el.getBoundingClientRect();\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n return rect.bottom > 0 && rect.top >= 0 && rect.top <= viewportHeight;\n}\n","import { pushDataLayerItemWidget } from '../../../Shared/js/utils/datalayer';\nimport * as EventHelper from './utils/EventHelper';\nexport function getWidget() {\n return wo$('#widget');\n}\nexport function widgetInit() {\n wo$(function () {\n const widget = getWidget();\n if (!widget.length)\n return;\n const controller = {\n resizeTaskId: null,\n resizeTaskAmpId: null,\n init: function () {\n const amp = widget.data('amp').toLowerCase() === 'true';\n const url = widget.data('url');\n const startTime = Date.now();\n pushDataLayerItemWidget({\n event: 'widget_load_begin',\n widget_placement: 'iframe'\n });\n const el = widget[0];\n if (amp) {\n EventHelper.addEventListener([window, el, el.parentElement], 'resize', this.resizeAmp.bind(this));\n EventHelper.addEventListener([window], 'load', this.resizeAmp.bind(this));\n }\n else {\n EventHelper.addEventListener([window, el, el.parentElement], 'resize', this.resize.bind(this));\n EventHelper.addEventListener([window], 'load', this.resize.bind(this));\n }\n wo$.ajax({\n context: this,\n type: 'GET',\n url: url,\n contentType: 'text/html'\n })\n .done(function (data) {\n widget.find('#widget-content').html(data);\n WhistleOut.applyPopover();\n WhistleOut.showTracking();\n if (WhistleOut.initWidget) {\n WhistleOut.initWidget();\n }\n })\n .fail(function (jqXHR, textStatus, error) {\n widget.find('#widget-content').html(widget.find('#widget-error').html());\n WhistleOut.Rollbar.error(`ajax error in Widget.js requesting ${url}, status: ${textStatus}, error: ${error}, responseText: ${jqXHR.responseText}`);\n pushDataLayerItemWidget({\n event: 'widget_error',\n widget_placement: 'iframe',\n error: error\n });\n })\n .always(() => {\n widget.find('#widget-error').remove();\n widget.find('#widget-loading').remove();\n const endTime = Date.now();\n pushDataLayerItemWidget({\n event: 'widget_load_end',\n widget_placement: 'iframe',\n duration: (endTime - startTime) / 1000\n });\n if (amp) {\n this.resizeAmp();\n }\n else {\n this.resize();\n }\n });\n },\n resize: function () {\n cancelIdleCallback(this.resizeTaskId);\n this.resizeTaskId = requestIdleCallback(this._resize.bind(this), {\n timeout: 300\n });\n },\n _resize: function () {\n window.parent.postMessage({\n sentinel: 'whistleout-widget',\n url: document.location.href,\n height: widget.height()\n }, '*');\n },\n resizeAmp: function () {\n cancelIdleCallback(this.resizeTaskAmpId);\n this.resizeTaskAmpId = requestIdleCallback(this._resizeAmp.bind(this), {\n timeout: 300\n });\n },\n _resizeAmp: function () {\n window.parent.postMessage({\n sentinel: 'amp',\n type: 'embed-size',\n height: widget.height()\n }, '*');\n }\n };\n controller.init();\n });\n}\n"],"names":["addEventListener","elements","events","handler","action","eventsArray","split","i","length","element","j","event","_addOrRemoveListener","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","module","exports","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","clearTimeout","cancel","flush","root","Date","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","done","then","instances","L","isVisible","el","window","getComputedStyle","display","coverageMap","loadLibraries","callback","supported","WhistleOut","applySelectPicker","wo$","eval","call","default","initCartoDb","removeMap","remove","init","page","mapContainers","find","document","ready","mapsNotInitialized","each","mapContainer","updateWidgetUrl","off","on","focusAndSelect","currentTarget","triggerPopoverNotification","placeholder","onMapActivateClick","doInit","viewportChanged","closest","trackEvent","removeClass","attr","map","isAmp","getAttribute","toLowerCase","message","Object","assign","height","body","scrollHeight","type","sentinel","url","location","href","parent","postMessage","mapsNotInitilized","data","showMaps","lat","lng","label","instanceId","nbnMapElement","showNbnMap","get","adslMapElement","showAdslMap","mobileMapElement","showMobileMap","onTabClick","instance","targetHref","nbnMap","_onResize","adslMap","mobileMap","createMapBoxGl","styleId","getSiteConfiguration","mapBoxStyle","createMapboxVectorLayer","createMap","formattedAddress","mapGl","id","center","zoom","attributionControl","scrollWheelZoom","zoomControl","fullscreenControl","tap","createAttribution","addTo","setMobileOptions","shouldShowCurrentLocation","createAddressMarker","bindPopup","onZoomEnd","attribution","control","addAttribution","mapBoxAccessToken","mapboxGL","accessToken","style","markerIconUrl","redIcon","Icon","iconUrl","shadowUrl","iconSize","iconAnchor","popupAnchor","shadowSize","marker","icon","updateEmbedUrls","getZoom","mapBoxGl","nbnCoLayer","layerGroup","addLayer","tileLayer","nbnTileLayer","exchanges","exchangeIconUrl","exchangeIcon","showCurrentLocation","exchange","name","path","polyline","color","opacity","weight","boundary","polygon","Polygon","fillOpacity","mobileMapContainer","providers","mapboxLayers","reloadMobileLayers","onSublayerChange","onProviderChange","checked","setAttribute","removeAttribute","networks","network","push","join","forEach","p","selectedIndex","checkboxes","selected","val","addClass","container","splice","getMapboxMap","isStyleLoaded","loadMapBoxLayers","index","getLayer","removeLayer","getSource","removeSource","reverse","option","fillColor","layer","layers","v","values","source","addSource","paint","isMobileDevice","dragging","disable","messagebox","timeout","show","queryString","ampUrl","updateQueryStringParameter","format","is","replace","initModule","CoverageMap","initWidget","WhistleOutContextWidget","constructor","super","scope","pushGtmEvent","category","getAnalyticsClientSideData","pushDataLayerItem","customCategory","customAction","customLabel","customValue","isNaN","customCountry","country","customProductAreaId","productAreaId","err","Rollbar","error","sendPageView","analyticsClientSideData","config","trackPageImpression","trackingUrl","accounts","account","ga","accountNumber","trackerId","useAmpClientId","linkIdTracking","pushGtmWidgetPageView","pathname","search","dataLayerValue","customUrl","trackPageView","encodeHtml","str","createElement","append","createTextNode","innerHTML","isInitRequested","initBase","widget","isInViewport","rect","getBoundingClientRect","viewportHeight","innerHeight","documentElement","clientHeight","bottom","top","getWidget","widgetInit","resizeTaskId","resizeTaskAmpId","amp","startTime","widget_placement","parentElement","resizeAmp","bind","resize","ajax","context","contentType","html","applyPopover","showTracking","fail","jqXHR","textStatus","responseText","always","endTime","duration","cancelIdleCallback","requestIdleCallback","_resize","_resizeAmp"],"sourceRoot":""}