{"version":3,"file":"chunks/f5d6ae14f70625.js","mappings":"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,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,SAAU,CACN,IACA,KACA,KACA,KAEJ,QAAS,CACL,IACA,IACA,MAEJ,SAAU,CACN,IACA,KACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,KACA,KACA,IACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,KACA,KACA,IACA,KAEJ,QAAS,CACL,KACA,KACA,IACA,KAEJ,QAAS,CACL,KACA,IACA,KACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,IACA,KACA,KACA,MEzwCR,SAASC,GAA+BC,GACpC,IAAI7C,EAAY6C,EAAO7C,UASvB,QARkB/0C,IAAd+0C,GAEA6C,EAAOC,YAEPD,EAAOC,WAAWz1C,SAElB2yC,EAAY6C,EAAOC,WAAW,IAE9B9C,EACA,OAAQA,GACJ,IAAK,MACD,MAAO,IACX,IAAK,MACD,MAAO,IACX,IAAK,MACD,MAAO,IACX,IAAK,MACD,MAAO,IACX,QACI,MAAM,IAAI9tB,MAAM,qBAI5B,IACI6wB,EADAC,EAAcH,EAAOI,SASzB,MAPoB,SAAhBD,IACAD,EAAYF,EAAOK,WAAWC,SAEjBR,GAASI,GAAa,KACnCJ,GAASK,GAAe,KACxBL,GAAS,GAAGnsC,OAAOwsC,EAAa,UAChCL,GAAS,QACK,EACtB,CD3EA,IAAIS,GAA8B,IAAIxsB,OAAO,IAAIpgB,OAAO6oC,GAAsBx4B,OAAQ,MAClFw8B,GAA4B,IAAIzsB,OAAO,GAAGpgB,OAAO6oC,GAAsBx4B,OAAQ,OACnF,SAASy8B,GAAe98B,EAAOiuB,GAC3B,MAAO,CAAEjuB,MAAOA,EAAOiuB,IAAKA,EAChC,CAGA,IAAI8O,KAAwBzpC,OAAOwW,UAAUkzB,WACzCC,KAA2B3pC,OAAO4pC,cAClCC,KAAyB5sC,OAAOwgC,YAChCqM,KAAyB9pC,OAAOwW,UAAUuzB,YAC1CC,KAAiBhqC,OAAOwW,UAAUyzB,UAClCC,KAAelqC,OAAOwW,UAAU2zB,QAEhCC,GAD2BrqC,OAAOqqC,cAEhCrqC,OAAOqqC,cACP,SAAUrzB,GACR,MAAqB,iBAANA,GACXszB,SAAStzB,IACT9W,KAAKqqC,MAAMvzB,KAAOA,GAClB9W,KAAKu5B,IAAIziB,IAAM,gBACvB,EAEAwzB,IAAyB,EAC7B,IAQIA,GAA8F,OAA5C,QAAvBppB,GAPlBqpB,GAAG,4CAA6C,MAOtBC,KAAK,YAAyB,IAAPtpB,QAAgB,EAASA,GAAG,GAC1F,CACA,MAAOsU,GACH8U,IAAyB,CAC7B,CACA,IAyFIG,GAzFAhB,GAAaD,GAET,SAAoBhyB,EAAGkzB,EAAQryC,GAC3B,OAAOmf,EAAEiyB,WAAWiB,EAAQryC,EAChC,EAEA,SAAoBmf,EAAGkzB,EAAQryC,GAC3B,OAAOmf,EAAEtX,MAAM7H,EAAUA,EAAWqyC,EAAOp3C,UAAYo3C,CAC3D,EACJf,GAAgBD,GACd3pC,OAAO4pC,cAEL,WAEI,IADA,IAAIgB,EAAa,GACRjD,EAAK,EAAGA,EAAKt0C,UAAUE,OAAQo0C,IACpCiD,EAAWjD,GAAMt0C,UAAUs0C,GAM/B,IAJA,IAGIkD,EAHAxmC,EAAW,GACX9Q,EAASq3C,EAAWr3C,OACpBI,EAAI,EAEDJ,EAASI,GAAG,CAEf,IADAk3C,EAAOD,EAAWj3C,MACP,QACP,MAAMkyC,WAAWgF,EAAO,8BAC5BxmC,GACIwmC,EAAO,MACD7qC,OAAO8W,aAAa+zB,GACpB7qC,OAAO8W,aAAyC,QAA1B+zB,GAAQ,QAAY,IAAeA,EAAO,KAAS,MACvF,CACA,OAAOxmC,CACX,EACJo5B,GAEJoM,GACM5sC,OAAOwgC,YAEL,SAAqB5gB,GAEjB,IADA,IAAI1K,EAAM,CAAC,EACFw1B,EAAK,EAAGmD,EAAYjuB,EAAS8qB,EAAKmD,EAAUv3C,OAAQo0C,IAAM,CAC/D,IAAIxmB,EAAK2pB,EAAUnD,GAAK5pC,EAAIojB,EAAG,GAAIyD,EAAIzD,EAAG,GAC1ChP,EAAIpU,GAAK6mB,CACb,CACA,OAAOzS,CACX,EACJ43B,GAAcD,GAEV,SAAqBryB,EAAGkU,GACpB,OAAOlU,EAAEsyB,YAAYpe,EACzB,EAEA,SAAqBlU,EAAGkU,GACpB,IAAI9a,EAAO4G,EAAElkB,OACb,KAAIo4B,EAAQ,GAAKA,GAAS9a,GAA1B,CAGA,IACIw1B,EADA0E,EAAQtzB,EAAE+P,WAAWmE,GAEzB,OAAOof,EAAQ,OACXA,EAAQ,OACRpf,EAAQ,IAAM9a,IACbw1B,EAAS5uB,EAAE+P,WAAWmE,EAAQ,IAAM,OACrC0a,EAAS,MACP0E,EAC4B1E,EAAS,OAAnC0E,EAAQ,OAAW,IAA0B,KATrD,CAUJ,EACJd,GAAYD,GAER,SAAmBvyB,GACf,OAAOA,EAAEwyB,WACb,EAEA,SAAmBxyB,GACf,OAAOA,EAAEjC,QAAQ8zB,GAA6B,GAClD,EACJa,GAAUD,GAEN,SAAiBzyB,GACb,OAAOA,EAAE0yB,SACb,EAEA,SAAiB1yB,GACb,OAAOA,EAAEjC,QAAQ+zB,GAA2B,GAChD,EAER,SAASiB,GAAG/yB,EAAGxH,GACX,OAAO,IAAI6M,OAAOrF,EAAGxH,EACzB,CAGA,GAAIs6B,GAAwB,CAExB,IAAIS,GAAyBR,GAAG,4CAA6C,MAC7EE,GAAyB,SAAgCjzB,EAAGkU,GACxD,IAAIxK,EAGJ,OAFA6pB,GAAuBhS,UAAYrN,EAER,QAAnBxK,EADI6pB,GAAuBP,KAAKhzB,GACrB,UAAuB,IAAP0J,EAAgBA,EAAK,EAC5D,CACJ,MAGIupB,GAAyB,SAAgCjzB,EAAGkU,GAExD,IADA,IAAI3Y,EAAQ,KACC,CACT,IAAIi4B,EAAIlB,GAAYtyB,EAAGkU,GACvB,QAAUx6B,IAAN85C,GAAmBC,GAAcD,IAAME,GAAiBF,GACxD,MAEJj4B,EAAMjgB,KAAKk4C,GACXtf,GAASsf,GAAK,MAAU,EAAI,CAChC,CACA,OAAOrB,GAActsC,WAAM,EAAQ0V,EACvC,EAEJ,IAAI,GAAwB,WACxB,SAASo4B,EAAO9yB,EAAS/U,QACL,IAAZA,IAAsBA,EAAU,CAAC,GACrCtT,KAAKqoB,QAAUA,EACfroB,KAAKqI,SAAW,CAAEwO,OAAQ,EAAGukC,KAAM,EAAGC,OAAQ,GAC9Cr7C,KAAKs7C,YAAchoC,EAAQgoC,UAC3Bt7C,KAAK84C,OAASxlC,EAAQwlC,OACtB94C,KAAKu7C,sBAAwBjoC,EAAQioC,oBACrCv7C,KAAKw7C,uBAAyBloC,EAAQkoC,oBAC1C,CAqyBA,OApyBAL,EAAO50B,UAAUliB,MAAQ,WACrB,GAAsB,IAAlBrE,KAAK6W,SACL,MAAMsR,MAAM,gCAEhB,OAAOnoB,KAAKy7C,aAAa,EAAG,IAAI,EACpC,EACAN,EAAO50B,UAAUk1B,aAAe,SAAUC,EAAcC,EAAeC,GAEnE,IADA,IAAIxnC,EAAW,IACPpU,KAAK67C,SAAS,CAClB,IAAIC,EAAO97C,KAAK87C,OAChB,GAAa,MAATA,EAAwB,CAExB,IADI5mB,EAASl1B,KAAK+7C,cAAcL,EAAcE,IACnC10B,IACP,OAAOgO,EAEX9gB,EAAStR,KAAKoyB,EAAO7N,IACzB,KACK,IAAa,MAATy0B,GAA0BJ,EAAe,EAC9C,MAEC,GAAa,KAATI,GACc,WAAlBH,GAAgD,kBAAlBA,EAQ9B,IAAa,KAATG,IACJ97C,KAAKs7C,WACU,KAAhBt7C,KAAKq7B,OACP,CACE,GAAIugB,EACA,MAGA,OAAO57C,KAAKkoB,MAAM,wBAAiCqxB,GAAev5C,KAAKg8C,gBAAiBh8C,KAAKg8C,iBAErG,CACK,GAAa,KAATF,IACJ97C,KAAKs7C,WACNW,GAASj8C,KAAKq7B,QAAU,GAAI,CAE5B,IADInG,EAASl1B,KAAKk8C,SAASR,EAAcC,IAC9Bz0B,IACP,OAAOgO,EAEX9gB,EAAStR,KAAKoyB,EAAO7N,IACzB,KACK,CACD,IAAI6N,EACJ,IADIA,EAASl1B,KAAKm8C,aAAaT,EAAcC,IAClCz0B,IACP,OAAOgO,EAEX9gB,EAAStR,KAAKoyB,EAAO7N,IACzB,MAlCuE,CACnE,IAAIhf,EAAWrI,KAAKg8C,gBACpBh8C,KAAKo8C,OACLhoC,EAAStR,KAAK,CACVI,KAAMixC,EAAKiB,MACXrtB,SAAUwxB,GAAelxC,EAAUrI,KAAKg8C,kBAEhD,CA2BA,CACJ,CACA,MAAO,CAAE30B,IAAKjT,EAAU8S,IAAK,KACjC,EAmBAi0B,EAAO50B,UAAU21B,SAAW,SAAUR,EAAcC,GAChD,IAAIU,EAAgBr8C,KAAKg8C,gBACzBh8C,KAAKo8C,OACL,IAAI3iB,EAAUz5B,KAAKs8C,eAEnB,GADAt8C,KAAKu8C,YACDv8C,KAAKw8C,OAAO,MAEZ,MAAO,CACHn1B,IAAK,CACDnkB,KAAMixC,EAAKS,QACXl0C,MAAO,IAAI+L,OAAOgtB,EAAS,MAC3B1R,SAAUwxB,GAAe8C,EAAer8C,KAAKg8C,kBAEjD90B,IAAK,MAGR,GAAIlnB,KAAKw8C,OAAO,KAAM,CACvB,IAAIC,EAAiBz8C,KAAKy7C,aAAaC,EAAe,EAAGC,GAAe,GACxE,GAAIc,EAAev1B,IACf,OAAOu1B,EAEX,IAAIh8C,EAAWg8C,EAAep1B,IAE1Bq1B,EAAsB18C,KAAKg8C,gBAC/B,GAAIh8C,KAAKw8C,OAAO,MAAO,CACnB,GAAIx8C,KAAK67C,UAAYI,GAASj8C,KAAK87C,QAC/B,OAAO97C,KAAKkoB,MAAM,cAAuBqxB,GAAemD,EAAqB18C,KAAKg8C,kBAEtF,IAAIW,EAA8B38C,KAAKg8C,gBAEvC,OAAIviB,IADiBz5B,KAAKs8C,eAEft8C,KAAKkoB,MAAM,wBAAiCqxB,GAAeoD,EAA6B38C,KAAKg8C,mBAExGh8C,KAAKu8C,YACAv8C,KAAKw8C,OAAO,KAGV,CACHn1B,IAAK,CACDnkB,KAAMixC,EAAK74B,IACX5a,MAAO+4B,EACPh5B,SAAUA,EACVsnB,SAAUwxB,GAAe8C,EAAer8C,KAAKg8C,kBAEjD90B,IAAK,MATElnB,KAAKkoB,MAAM,cAAuBqxB,GAAemD,EAAqB18C,KAAKg8C,kBAW1F,CAEI,OAAOh8C,KAAKkoB,MAAM,eAAwBqxB,GAAe8C,EAAer8C,KAAKg8C,iBAErF,CAEI,OAAOh8C,KAAKkoB,MAAM,cAAuBqxB,GAAe8C,EAAer8C,KAAKg8C,iBAEpF,EAIAb,EAAO50B,UAAU+1B,aAAe,WAC5B,IA4qB6BtB,EA5qBzB4B,EAAc58C,KAAK6W,SAEvB,IADA7W,KAAKo8C,QACGp8C,KAAK67C,UA2qBH,MADmBb,EA1qBuBh7C,KAAK87C,SA4qBnD,KAANd,GACCA,GAAK,IAAMA,GAAK,IACX,KAANA,GACCA,GAAK,IAAMA,GAAK,KAChBA,GAAK,IAAMA,GAAK,IACZ,KAALA,GACCA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAASA,GAAK,MACnBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAWA,GAAK,SA5rBlBh7C,KAAKo8C,OAET,OAAOp8C,KAAKqoB,QAAQnY,MAAM0sC,EAAa58C,KAAK6W,SAChD,EACAskC,EAAO50B,UAAU41B,aAAe,SAAUT,EAAcC,GAGpD,IAFA,IAAIl/B,EAAQzc,KAAKg8C,gBACbt7C,EAAQ,KACC,CACT,IAAIm8C,EAAmB78C,KAAK88C,cAAcnB,GAC1C,GAAIkB,EACAn8C,GAASm8C,MADb,CAIA,IAAIE,EAAsB/8C,KAAKg9C,iBAAiBtB,EAAcC,GAC9D,GAAIoB,EACAr8C,GAASq8C,MADb,CAIA,IAAIE,EAAuBj9C,KAAKk9C,2BAChC,IAAID,EAIJ,MAHIv8C,GAASu8C,CAHb,CALA,CAYJ,CACA,IAAIl1B,EAAWwxB,GAAe98B,EAAOzc,KAAKg8C,iBAC1C,MAAO,CACH30B,IAAK,CAAEnkB,KAAMixC,EAAKS,QAASl0C,MAAOA,EAAOqnB,SAAUA,GACnDb,IAAK,KAEb,EACAi0B,EAAO50B,UAAU22B,yBAA2B,WACxC,OAAKl9C,KAAK67C,SACU,KAAhB77C,KAAK87C,SACJ97C,KAAKs7C,YAooBPW,GADckB,EAjoBQn9C,KAAKq7B,QAAU,IAkoBA,KAAd8hB,GA9nBnB,MAHHn9C,KAAKo8C,OACE,KA+nBnB,IAAyBe,CA5nBrB,EAMAhC,EAAO50B,UAAUu2B,cAAgB,SAAUnB,GACvC,GAAI37C,KAAK67C,SAA2B,KAAhB77C,KAAK87C,OACrB,OAAO,KAIX,OAAQ97C,KAAKq7B,QACT,KAAK,GAID,OAFAr7B,KAAKo8C,OACLp8C,KAAKo8C,OACE,IAEX,KAAK,IACL,KAAK,GACL,KAAK,GACL,KAAK,IACD,MACJ,KAAK,GACD,GAAsB,WAAlBT,GAAgD,kBAAlBA,EAC9B,MAEJ,OAAO,KACX,QACI,OAAO,KAEf37C,KAAKo8C,OACL,IAAIzB,EAAa,CAAC36C,KAAK87C,QAGvB,IAFA97C,KAAKo8C,QAEGp8C,KAAK67C,SAAS,CAClB,IAAIuB,EAAKp9C,KAAK87C,OACd,GAAW,KAAPsB,EAAqB,CACrB,GAAoB,KAAhBp9C,KAAKq7B,OAKJ,CAEDr7B,KAAKo8C,OACL,KACJ,CARIzB,EAAW73C,KAAK,IAEhB9C,KAAKo8C,MAOb,MAEIzB,EAAW73C,KAAKs6C,GAEpBp9C,KAAKo8C,MACT,CACA,OAAOzC,GAActsC,WAAM,EAAQstC,EACvC,EACAQ,EAAO50B,UAAUy2B,iBAAmB,SAAUtB,EAAcC,GACxD,GAAI37C,KAAK67C,QACL,OAAO,KAEX,IAAIuB,EAAKp9C,KAAK87C,OACd,OAAW,KAAPsB,GACO,MAAPA,GACQ,KAAPA,IACsB,WAAlBzB,GAAgD,kBAAlBA,IAC3B,MAAPyB,GAAwB1B,EAAe,EACjC,MAGP17C,KAAKo8C,OACEzC,GAAcyD,GAE7B,EACAjC,EAAO50B,UAAUw1B,cAAgB,SAAUL,EAAcE,GACrD,IAAIyB,EAAuBr9C,KAAKg8C,gBAGhC,GAFAh8C,KAAKo8C,OACLp8C,KAAKu8C,YACDv8C,KAAK67C,QACL,OAAO77C,KAAKkoB,MAAM,gCAAyCqxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAEzG,GAAoB,MAAhBh8C,KAAK87C,OAEL,OADA97C,KAAKo8C,OACEp8C,KAAKkoB,MAAM,iBAA0BqxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAG1F,IAAIt7C,EAAQV,KAAKs9C,4BAA4B58C,MAC7C,IAAKA,EACD,OAAOV,KAAKkoB,MAAM,qBAA8BqxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAG9F,GADAh8C,KAAKu8C,YACDv8C,KAAK67C,QACL,OAAO77C,KAAKkoB,MAAM,gCAAyCqxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAEzG,OAAQh8C,KAAK87C,QAET,KAAK,IAED,OADA97C,KAAKo8C,OACE,CACH/0B,IAAK,CACDnkB,KAAMixC,EAAKW,SAEXp0C,MAAOA,EACPqnB,SAAUwxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAExD90B,IAAK,MAIb,KAAK,GAGD,OAFAlnB,KAAKo8C,OACLp8C,KAAKu8C,YACDv8C,KAAK67C,QACE77C,KAAKkoB,MAAM,gCAAyCqxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAElGh8C,KAAKu9C,qBAAqB7B,EAAcE,EAAmBl7C,EAAO28C,GAE7E,QACI,OAAOr9C,KAAKkoB,MAAM,qBAA8BqxB,GAAe8D,EAAsBr9C,KAAKg8C,kBAEtG,EAKAb,EAAO50B,UAAU+2B,0BAA4B,WACzC,IAAIE,EAAmBx9C,KAAKg8C,gBACxBY,EAAc58C,KAAK6W,SACnBnW,EAAQ+5C,GAAuBz6C,KAAKqoB,QAASu0B,GAC7Ca,EAAYb,EAAcl8C,EAAM4C,OAIpC,OAHAtD,KAAK09C,OAAOD,GAGL,CAAE/8C,MAAOA,EAAOqnB,SADRwxB,GAAeiE,EADZx9C,KAAKg8C,iBAG3B,EACAb,EAAO50B,UAAUg3B,qBAAuB,SAAU7B,EAAcE,EAAmBl7C,EAAO28C,GACtF,IAAInsB,EAIAysB,EAAoB39C,KAAKg8C,gBACzB4B,EAAU59C,KAAKs9C,4BAA4B58C,MAC3Cm9C,EAAkB79C,KAAKg8C,gBAC3B,OAAQ4B,GACJ,IAAK,GAED,OAAO59C,KAAKkoB,MAAM,uBAAgCqxB,GAAeoE,EAAmBE,IACxF,IAAK,SACL,IAAK,OACL,IAAK,OAID79C,KAAKu8C,YACL,IAAIuB,EAAmB,KACvB,GAAI99C,KAAKw8C,OAAO,KAAM,CAClBx8C,KAAKu8C,YACL,IAAIwB,EAAqB/9C,KAAKg8C,gBAE9B,IADI9mB,EAASl1B,KAAKg+C,iCACP92B,IACP,OAAOgO,EAGX,GAAqB,KADjBlf,EAAQkkC,GAAQhlB,EAAO7N,MACjB/jB,OACN,OAAOtD,KAAKkoB,MAAM,wBAAiCqxB,GAAev5C,KAAKg8C,gBAAiBh8C,KAAKg8C,kBAGjG8B,EAAmB,CAAE9nC,MAAOA,EAAOioC,cADf1E,GAAewE,EAAoB/9C,KAAKg8C,iBAEhE,CAEA,IADIkC,EAAiBl+C,KAAKm+C,sBAAsBd,IAC7Bn2B,IACf,OAAOg3B,EAEX,IAAIE,EAAa7E,GAAe8D,EAAsBr9C,KAAKg8C,iBAE3D,GAAI8B,GAAoBrE,GAAWqE,aAA2D,EAASA,EAAiB9nC,MAAO,KAAM,GAAI,CAErI,IAAIy/B,EAAWuE,GAAU8D,EAAiB9nC,MAAM9F,MAAM,IACtD,GAAgB,WAAZ0tC,EAEA,OADI1oB,EAASl1B,KAAKq+C,8BAA8B5I,EAAUqI,EAAiBG,gBAChE/2B,IACAgO,EAEJ,CACH7N,IAAK,CAAEnkB,KAAMixC,EAAK3qB,OAAQ9oB,MAAOA,EAAOqnB,SAAUq2B,EAAYpoC,MAAOkf,EAAO7N,KAC5EH,IAAK,MAIT,GAAwB,IAApBuuB,EAASnyC,OACT,OAAOtD,KAAKkoB,MAAM,4BAAqCk2B,GAE3D,IAAIE,EAAkB7I,EAIlBz1C,KAAK84C,SACLwF,EC1hBrB,SAAwB7I,EAAUqD,GAErC,IADA,IAAIyF,EAAe,GACVC,EAAa,EAAGA,EAAa/I,EAASnyC,OAAQk7C,IAAc,CACjE,IAAIC,EAAchJ,EAASiJ,OAAOF,GAClC,GAAoB,MAAhBC,EAAqB,CAErB,IADA,IAAIE,EAAc,EACXH,EAAa,EAAI/I,EAASnyC,QAC7BmyC,EAASiJ,OAAOF,EAAa,KAAOC,GACpCE,IACAH,IAEJ,IAAII,EAAU,GAAmB,EAAdD,GACfE,EAAeF,EAAc,EAAI,EAAI,GAAKA,GAAe,GAEzDG,EAAWjG,GAA+BC,GAI9C,IAHgB,KAAZgG,GAA+B,KAAZA,IACnBD,EAAe,GAEZA,KAAiB,GACpBN,GANgB,IAQpB,KAAOK,KAAY,GACfL,EAAeO,EAAWP,CAElC,MAEIA,GADqB,MAAhBE,EACW,IAGAA,CAExB,CACA,OAAOF,CACX,CDyf8CQ,CAAetJ,EAAUz1C,KAAK84C,SAEpD,IAAI9iC,EAAQ,CACR9S,KAAMkxC,EAAciB,SACpB2J,QAASV,EACTv2B,SAAU+1B,EAAiBG,cAC3BgB,cAAej/C,KAAKw7C,qBACdhG,GAAsB8I,GACtB,CAAC,GAGX,MAAO,CACHj3B,IAAK,CAAEnkB,KAFY,SAAZ06C,EAAqBzJ,EAAKY,KAAOZ,EAAKa,KAE1Bt0C,MAAOA,EAAOqnB,SAAUq2B,EAAYpoC,MAAOA,GAC9DkR,IAAK,KAGjB,CAEA,MAAO,CACHG,IAAK,CACDnkB,KAAkB,WAAZ06C,EACAzJ,EAAK3qB,OACO,SAAZo0B,EACIzJ,EAAKY,KACLZ,EAAKa,KACft0C,MAAOA,EACPqnB,SAAUq2B,EACVpoC,MAA6G,QAArGkb,EAAK4sB,aAA2D,EAASA,EAAiB9nC,aAA0B,IAAPkb,EAAgBA,EAAK,MAE9IhK,IAAK,MAGb,IAAK,SACL,IAAK,gBACL,IAAK,SAID,IAAIg4B,EAAoBl/C,KAAKg8C,gBAE7B,GADAh8C,KAAKu8C,aACAv8C,KAAKw8C,OAAO,KACb,OAAOx8C,KAAKkoB,MAAM,iCAA0CqxB,GAAe2F,GAAmB,QAAS,CAAC,EAAGA,KAE/Gl/C,KAAKu8C,YASL,IAAI4C,EAAwBn/C,KAAKs9C,4BAC7B8B,EAAe,EACnB,GAAgB,WAAZxB,GAAwD,WAAhCuB,EAAsBz+C,MAAoB,CAClE,IAAKV,KAAKw8C,OAAO,KACb,OAAOx8C,KAAKkoB,MAAM,sCAA+CqxB,GAAev5C,KAAKg8C,gBAAiBh8C,KAAKg8C,kBAG/G,IAAI9mB,EACJ,GAFAl1B,KAAKu8C,aACDrnB,EAASl1B,KAAKq/C,uBAAuB,sCAA+C,yCAC7En4B,IACP,OAAOgO,EAGXl1B,KAAKu8C,YACL4C,EAAwBn/C,KAAKs9C,4BAC7B8B,EAAelqB,EAAO7N,GAC1B,CACA,IAII62B,EAJAoB,EAAgBt/C,KAAKu/C,8BAA8B7D,EAAckC,EAAShC,EAAmBuD,GACjG,GAAIG,EAAcp4B,IACd,OAAOo4B,EAGX,IADIpB,EAAiBl+C,KAAKm+C,sBAAsBd,IAC7Bn2B,IACf,OAAOg3B,EAEX,IAAIsB,EAAajG,GAAe8D,EAAsBr9C,KAAKg8C,iBAC3D,MAAgB,WAAZ4B,EACO,CACHv2B,IAAK,CACDnkB,KAAMixC,EAAKc,OACXv0C,MAAOA,EACP4S,QAASk6B,GAAY8R,EAAcj4B,KACnCU,SAAUy3B,GAEdt4B,IAAK,MAIF,CACHG,IAAK,CACDnkB,KAAMixC,EAAKe,OACXx0C,MAAOA,EACP4S,QAASk6B,GAAY8R,EAAcj4B,KACnCxQ,OAAQuoC,EACRK,WAAwB,WAAZ7B,EAAuB,WAAa,UAChD71B,SAAUy3B,GAEdt4B,IAAK,MAIjB,QACI,OAAOlnB,KAAKkoB,MAAM,wBAAiCqxB,GAAeoE,EAAmBE,IAEjG,EACA1C,EAAO50B,UAAU43B,sBAAwB,SAAUd,GAG/C,OAAIr9C,KAAK67C,SAA2B,MAAhB77C,KAAK87C,OACd97C,KAAKkoB,MAAM,gCAAyCqxB,GAAe8D,EAAsBr9C,KAAKg8C,mBAEzGh8C,KAAKo8C,OACE,CAAE/0B,KAAK,EAAMH,IAAK,MAC7B,EAIAi0B,EAAO50B,UAAUy3B,8BAAgC,WAG7C,IAFA,IAAI0B,EAAe,EACfrD,EAAgBr8C,KAAKg8C,iBACjBh8C,KAAK67C,SAET,OADS77C,KAAK87C,QAEV,KAAK,GAGD97C,KAAKo8C,OACL,IAAIuD,EAAqB3/C,KAAKg8C,gBAC9B,IAAKh8C,KAAK4/C,UAAU,KAChB,OAAO5/C,KAAKkoB,MAAM,mCAA4CqxB,GAAeoG,EAAoB3/C,KAAKg8C,kBAE1Gh8C,KAAKo8C,OACL,MAEJ,KAAK,IACDsD,GAAgB,EAChB1/C,KAAKo8C,OACL,MAEJ,KAAK,IACD,KAAIsD,EAAe,GAIf,MAAO,CACHr4B,IAAKrnB,KAAKqoB,QAAQnY,MAAMmsC,EAAcxlC,OAAQ7W,KAAK6W,UACnDqQ,IAAK,MALTw4B,GAAgB,EAQpB,MAEJ,QACI1/C,KAAKo8C,OAIjB,MAAO,CACH/0B,IAAKrnB,KAAKqoB,QAAQnY,MAAMmsC,EAAcxlC,OAAQ7W,KAAK6W,UACnDqQ,IAAK,KAEb,EACAi0B,EAAO50B,UAAU83B,8BAAgC,SAAU5I,EAAU1tB,GACjE,IAAIjgB,EAAS,GACb,IACIA,EFrsBL,SAAuC2tC,GAC1C,GAAwB,IAApBA,EAASnyC,OACT,MAAM,IAAI6kB,MAAM,mCAOpB,IAJA,IAGIrgB,EAAS,GACJ4vC,EAAK,EAAGmI,EAJEpK,EACd7yC,MAAM,IACNoM,QAAO,SAAUyZ,GAAK,OAAOA,EAAEnlB,OAAS,CAAG,IAEAo0C,EAAKmI,EAAev8C,OAAQo0C,IAAM,CAC9E,IACIoI,EADcD,EAAenI,GACA90C,MAAM,KACvC,GAA8B,IAA1Bk9C,EAAex8C,OACf,MAAM,IAAI6kB,MAAM,2BAGpB,IADA,IAAIivB,EAAO0I,EAAe,GAAIxsC,EAAUwsC,EAAe5vC,MAAM,GACpDghB,EAAK,EAAG6uB,EAAYzsC,EAAS4d,EAAK6uB,EAAUz8C,OAAQ4tB,IAEzD,GAAsB,IADT6uB,EAAU7uB,GACZ5tB,OACP,MAAM,IAAI6kB,MAAM,2BAGxBrgB,EAAOhF,KAAK,CAAEs0C,KAAMA,EAAM9jC,QAASA,GACvC,CACA,OAAOxL,CACX,CE4qBqBu2C,CAA8B5I,EAC3C,CACA,MAAOlsC,GACH,OAAOvJ,KAAKkoB,MAAM,0BAAmCH,EACzD,CACA,MAAO,CACHV,IAAK,CACDnkB,KAAMkxC,EAAc5qB,OACpB1hB,OAAQA,EACRigB,SAAUA,EACVk3B,cAAej/C,KAAKw7C,qBACd/D,GAAoB3vC,GACpB,CAAC,GAEXof,IAAK,KAEb,EAWAi0B,EAAO50B,UAAUg5B,8BAAgC,SAAU7D,EAAcC,EAAeqE,EAAgBC,GASpG,IARA,IAAI/uB,EACAgvB,GAAiB,EACjB5sC,EAAU,GACV6sC,EAAkB,IAAIlkB,IACtBmkB,EAAWH,EAAsBv/C,MAAO2/C,EAAmBJ,EAAsBl4B,WAIxE,CACT,GAAwB,IAApBq4B,EAAS98C,OAAc,CACvB,IAAI+4C,EAAgBr8C,KAAKg8C,gBACzB,GAAsB,WAAlBL,IAA8B37C,KAAKw8C,OAAO,KAU1C,MARA,IAAItnB,EAASl1B,KAAKq/C,uBAAuB,kCAA2C,oCACpF,GAAInqB,EAAOhO,IACP,OAAOgO,EAEXmrB,EAAmB9G,GAAe8C,EAAer8C,KAAKg8C,iBACtDoE,EAAWpgD,KAAKqoB,QAAQnY,MAAMmsC,EAAcxlC,OAAQ7W,KAAK6W,SAKjE,CAEA,GAAIspC,EAAgBv4B,IAAIw4B,GACpB,OAAOpgD,KAAKkoB,MAAwB,WAAlByzB,EACZ,qCACA,qCAA8C0E,GAEvC,UAAbD,IACAF,GAAiB,GAKrBlgD,KAAKu8C,YACL,IAAIc,EAAuBr9C,KAAKg8C,gBAChC,IAAKh8C,KAAKw8C,OAAO,KACb,OAAOx8C,KAAKkoB,MAAwB,WAAlByzB,EACZ,2CACA,2CAAoDpC,GAAev5C,KAAKg8C,gBAAiBh8C,KAAKg8C,kBAExG,IAAIsE,EAAiBtgD,KAAKy7C,aAAaC,EAAe,EAAGC,EAAeqE,GACxE,GAAIM,EAAep5B,IACf,OAAOo5B,EAEX,IAAIpC,EAAiBl+C,KAAKm+C,sBAAsBd,GAChD,GAAIa,EAAeh3B,IACf,OAAOg3B,EAEX5qC,EAAQxQ,KAAK,CACTs9C,EACA,CACI1/C,MAAO4/C,EAAej5B,IACtBU,SAAUwxB,GAAe8D,EAAsBr9C,KAAKg8C,oBAI5DmE,EAAgB7a,IAAI8a,GAEpBpgD,KAAKu8C,YACmC6D,GAAvClvB,EAAKlxB,KAAKs9C,6BAA2C58C,MAAO2/C,EAAmBnvB,EAAGnJ,QACvF,CACA,OAAuB,IAAnBzU,EAAQhQ,OACDtD,KAAKkoB,MAAwB,WAAlByzB,EACZ,kCACA,kCAA2CpC,GAAev5C,KAAKg8C,gBAAiBh8C,KAAKg8C,kBAE3Fh8C,KAAKu7C,sBAAwB2E,EACtBlgD,KAAKkoB,MAAM,uBAAgCqxB,GAAev5C,KAAKg8C,gBAAiBh8C,KAAKg8C,kBAEzF,CAAE30B,IAAK/T,EAAS4T,IAAK,KAChC,EACAi0B,EAAO50B,UAAU84B,uBAAyB,SAAUkB,EAAmBC,GACnE,IAAIC,EAAO,EACPjD,EAAmBx9C,KAAKg8C,gBACxBh8C,KAAKw8C,OAAO,MAEPx8C,KAAKw8C,OAAO,OACjBiE,GAAQ,GAIZ,IAFA,IAAIC,GAAY,EACZ77B,EAAU,GACN7kB,KAAK67C,SAAS,CAClB,IAAIuB,EAAKp9C,KAAK87C,OACd,KAAIsB,GAAM,IAAgBA,GAAM,IAM5B,MALAsD,GAAY,EACZ77B,EAAoB,GAAVA,GAAgBu4B,EAAK,IAC/Bp9C,KAAKo8C,MAKb,CACA,IAAIr0B,EAAWwxB,GAAeiE,EAAkBx9C,KAAKg8C,iBACrD,OAAK0E,EAIAvG,GADLt1B,GAAW47B,GAIJ,CAAEp5B,IAAKxC,EAASqC,IAAK,MAFjBlnB,KAAKkoB,MAAMs4B,EAAoBz4B,GAJ/B/nB,KAAKkoB,MAAMq4B,EAAmBx4B,EAO7C,EACAozB,EAAO50B,UAAU1P,OAAS,WACtB,OAAO7W,KAAKqI,SAASwO,MACzB,EACAskC,EAAO50B,UAAUs1B,MAAQ,WACrB,OAAO77C,KAAK6W,WAAa7W,KAAKqoB,QAAQ/kB,MAC1C,EACA63C,EAAO50B,UAAUy1B,cAAgB,WAE7B,MAAO,CACHnlC,OAAQ7W,KAAKqI,SAASwO,OACtBukC,KAAMp7C,KAAKqI,SAAS+yC,KACpBC,OAAQr7C,KAAKqI,SAASgzC,OAE9B,EAKAF,EAAO50B,UAAUu1B,KAAO,WACpB,IAAIjlC,EAAS7W,KAAKqI,SAASwO,OAC3B,GAAIA,GAAU7W,KAAKqoB,QAAQ/kB,OACvB,MAAM6kB,MAAM,gBAEhB,IAAIyyB,EAAOd,GAAY95C,KAAKqoB,QAASxR,GACrC,QAAa3V,IAAT05C,EACA,MAAMzyB,MAAM,UAAU1b,OAAOoK,EAAQ,6CAEzC,OAAO+jC,CACX,EACAO,EAAO50B,UAAU2B,MAAQ,SAAUy4B,EAAM54B,GACrC,MAAO,CACHV,IAAK,KACLH,IAAK,CACDy5B,KAAMA,EACNt4B,QAASroB,KAAKqoB,QACdN,SAAUA,GAGtB,EAEAozB,EAAO50B,UAAU61B,KAAO,WACpB,IAAIp8C,KAAK67C,QAAT,CAGA,IAAIjB,EAAO56C,KAAK87C,OACH,KAATlB,GACA56C,KAAKqI,SAAS+yC,MAAQ,EACtBp7C,KAAKqI,SAASgzC,OAAS,EACvBr7C,KAAKqI,SAASwO,QAAU,IAGxB7W,KAAKqI,SAASgzC,QAAU,EAExBr7C,KAAKqI,SAASwO,QAAU+jC,EAAO,MAAU,EAAI,EAVjD,CAYJ,EAOAO,EAAO50B,UAAUi2B,OAAS,SAAU59B,GAChC,GAAI66B,GAAWz5C,KAAKqoB,QAASzJ,EAAQ5e,KAAK6W,UAAW,CACjD,IAAK,IAAInT,EAAI,EAAGA,EAAIkb,EAAOtb,OAAQI,IAC/B1D,KAAKo8C,OAET,OAAO,CACX,CACA,OAAO,CACX,EAKAjB,EAAO50B,UAAUq5B,UAAY,SAAUZ,GACnC,IAAI4B,EAAgB5gD,KAAK6W,SACrB6kB,EAAQ17B,KAAKqoB,QAAQwI,QAAQmuB,EAAS4B,GAC1C,OAAIllB,GAAS,GACT17B,KAAK09C,OAAOhiB,IACL,IAGP17B,KAAK09C,OAAO19C,KAAKqoB,QAAQ/kB,SAClB,EAEf,EAKA63C,EAAO50B,UAAUm3B,OAAS,SAAUmD,GAChC,GAAI7gD,KAAK6W,SAAWgqC,EAChB,MAAM14B,MAAM,gBAAgB1b,OAAOo0C,EAAc,yDAAyDp0C,OAAOzM,KAAK6W,WAG1H,IADAgqC,EAAe7wC,KAAK8wC,IAAID,EAAc7gD,KAAKqoB,QAAQ/kB,UACtC,CACT,IAAIuT,EAAS7W,KAAK6W,SAClB,GAAIA,IAAWgqC,EACX,MAEJ,GAAIhqC,EAASgqC,EACT,MAAM14B,MAAM,gBAAgB1b,OAAOo0C,EAAc,6CAGrD,GADA7gD,KAAKo8C,OACDp8C,KAAK67C,QACL,KAER,CACJ,EAEAV,EAAO50B,UAAUg2B,UAAY,WACzB,MAAQv8C,KAAK67C,SAAWZ,GAAcj7C,KAAK87C,SACvC97C,KAAKo8C,MAEb,EAKAjB,EAAO50B,UAAU8U,KAAO,WACpB,GAAIr7B,KAAK67C,QACL,OAAO,KAEX,IAAIjB,EAAO56C,KAAK87C,OACZjlC,EAAS7W,KAAK6W,SACdkqC,EAAW/gD,KAAKqoB,QAAQkP,WAAW1gB,GAAU+jC,GAAQ,MAAU,EAAI,IACvE,OAAOmG,QAA2CA,EAAW,IACjE,EACO5F,CACX,CA/yB2B,GAszB3B,SAASc,GAASkB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,EACzC,CA8BA,SAASlC,GAAcD,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,CACR,CAKA,SAASE,GAAiBF,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,KAC7B,CEvvCA,SAASgG,GAAcC,GACnBA,EAAIp+C,SAAQ,SAAUojC,GAElB,UADOA,EAAGle,SACN,EAAgBke,IAAO,EAAgBA,GACvC,IAAK,IAAIn4B,KAAKm4B,EAAG3yB,eACN2yB,EAAG3yB,QAAQxF,GAAGia,SACrBi5B,GAAc/a,EAAG3yB,QAAQxF,GAAGpN,YAG3B,EAAgBulC,IAAO,GAAiBA,EAAGjwB,SAG1C,EAAciwB,IAAO,EAAcA,KACzC,GAAmBA,EAAGjwB,cAHfiwB,EAAGjwB,MAAM+R,SAMX,EAAake,IAClB+a,GAAc/a,EAAGxlC,SAEzB,GACJ,CACO,SAAS4D,GAAMgkB,EAAS7Z,QACd,IAATA,IAAmBA,EAAO,CAAC,GAC/BA,GAAO,QAAS,CAAEgtC,sBAAsB,EAAMD,qBAAqB,GAAQ/sC,GAC3E,IAAI0mB,EAAS,IAAI,GAAO7M,EAAS7Z,GAAMnK,QACvC,GAAI6wB,EAAOhO,IAAK,CACZ,IAAIgB,EAAQg5B,YAAY,EAAUhsB,EAAOhO,IAAIy5B,OAK7C,MAHAz4B,EAAMH,SAAWmN,EAAOhO,IAAIa,SAE5BG,EAAMi5B,gBAAkBjsB,EAAOhO,IAAImB,QAC7BH,CACV,CAIA,OAHM1Z,aAAmC,EAASA,EAAK4yC,kBACnDJ,GAAc9rB,EAAO7N,KAElB6N,EAAO7N,GAClB,CCtCO,SAAS8P,GAAQvyB,EAAI0O,GACxB,IAAI1S,EAAQ0S,GAAWA,EAAQ1S,MAAQ0S,EAAQ1S,MAAQygD,GACnDC,EAAahuC,GAAWA,EAAQguC,WAAahuC,EAAQguC,WAAaC,GAEtE,OADejuC,GAAWA,EAAQK,SAAWL,EAAQK,SAAW6tC,IAChD58C,EAAI,CAChBhE,MAAOA,EACP0gD,WAAYA,GAEpB,CAOA,SAASG,GAAQ78C,EAAIhE,EAAO0gD,EAAY3zC,GACpC,IAJiBjN,EAIb2rB,EAHa,OADA3rB,EAIUiN,IAHe,iBAAVjN,GAAuC,kBAAVA,EAG3BiN,EAAM2zC,EAAW3zC,GAC/C+zC,EAAgB9gD,EAAMo2B,IAAI3K,GAK9B,YAJ6B,IAAlBq1B,IACPA,EAAgB98C,EAAG5B,KAAKhD,KAAM2N,GAC9B/M,EAAM+gC,IAAItV,EAAUq1B,IAEjBA,CACX,CACA,SAASC,GAAS/8C,EAAIhE,EAAO0gD,GACzB,IAAIn+C,EAAOK,MAAM+iB,UAAUrW,MAAMlN,KAAKI,UAAW,GAC7CipB,EAAWi1B,EAAWn+C,GACtBu+C,EAAgB9gD,EAAMo2B,IAAI3K,GAK9B,YAJ6B,IAAlBq1B,IACPA,EAAgB98C,EAAGyI,MAAMrN,KAAMmD,GAC/BvC,EAAM+gC,IAAItV,EAAUq1B,IAEjBA,CACX,CACA,SAASE,GAASh9C,EAAIxE,EAASuT,EAAU/S,EAAOihD,GAC5C,OAAOluC,EAAS4Y,KAAKnsB,EAASwE,EAAIhE,EAAOihD,EAC7C,CACA,SAASL,GAAgB58C,EAAI0O,GAEzB,OAAOsuC,GAASh9C,EAAI5E,KADS,IAAd4E,EAAGtB,OAAem+C,GAAUE,GACPruC,EAAQ1S,MAAMw2B,SAAU9jB,EAAQguC,WACxE,CAUA,IAAIC,GAAoB,WACpB,OAAOn9C,KAAKE,UAAUlB,UAC1B,EAIA,SAAS0+C,KACL9hD,KAAKY,MAAQoM,OAAOoqB,OAAO,KAC/B,CACA0qB,GAA4Bv7B,UAAUyQ,IAAM,SAAUh2B,GAClD,OAAOhB,KAAKY,MAAMI,EACtB,EACA8gD,GAA4Bv7B,UAAUob,IAAM,SAAU3gC,EAAKN,GACvDV,KAAKY,MAAMI,GAAON,CACtB,EACA,ICnEWqhD,GDmEPV,GAAe,CACfjqB,OAAQ,WAEJ,OAAO,IAAI0qB,EACf,GAEOE,GAAa,CACpBL,SA/BJ,SAA0B/8C,EAAI0O,GAC1B,OAAOsuC,GAASh9C,EAAI5E,KAAM2hD,GAAUruC,EAAQ1S,MAAMw2B,SAAU9jB,EAAQguC,WACxE,EA8BIG,QA7BJ,SAAyB78C,EAAI0O,GACzB,OAAOsuC,GAASh9C,EAAI5E,KAAMyhD,GAASnuC,EAAQ1S,MAAMw2B,SAAU9jB,EAAQguC,WACvE,IC/CA,SAAWS,GAEPA,EAAyB,cAAI,gBAE7BA,EAAyB,cAAI,gBAE7BA,EAA4B,iBAAI,kBACnC,CAPD,CAOGA,KAAcA,GAAY,CAAC,IAC9B,ICRWE,GDQPC,GAA6B,SAAUC,GAEvC,SAASD,EAAYE,EAAKxH,EAAMuG,GAC5B,IAAIrR,EAAQqS,EAAOn/C,KAAKhD,KAAMoiD,IAAQpiD,KAGtC,OAFA8vC,EAAM8K,KAAOA,EACb9K,EAAMqR,gBAAkBA,EACjBrR,CACX,CAIA,OAVA,QAAUoS,EAAaC,GAOvBD,EAAY37B,UAAUhZ,SAAW,WAC7B,MAAO,oBAAoBd,OAAOzM,KAAK46C,KAAM,MAAMnuC,OAAOzM,KAAKqoB,QACnE,EACO65B,CACX,CAZgC,CAY9B/5B,OAEEk6B,GAAmC,SAAUF,GAE7C,SAASE,EAAkBC,EAAY5hD,EAAO4S,EAAS6tC,GACnD,OAAOgB,EAAOn/C,KAAKhD,KAAM,uBAAwByM,OAAO61C,EAAY,QAAU71C,OAAO/L,EAAO,oBAAsB+L,OAAOO,OAAOC,KAAKqG,GAASyT,KAAK,QAAS,KAAOg7B,GAAUQ,cAAepB,IAAoBnhD,IACpN,CACA,OAJA,QAAUqiD,EAAmBF,GAItBE,CACX,CANsC,CAMpCH,IAEEM,GAAuC,SAAUL,GAEjD,SAASK,EAAsB9hD,EAAOwC,EAAMi+C,GACxC,OAAOgB,EAAOn/C,KAAKhD,KAAM,cAAeyM,OAAO/L,EAAO,sBAAuB+L,OAAOvJ,GAAO6+C,GAAUQ,cAAepB,IAAoBnhD,IAC5I,CACA,OAJA,QAAUwiD,EAAuBL,GAI1BK,CACX,CAN0C,CAMxCN,IAEEO,GAAmC,SAAUN,GAE7C,SAASM,EAAkBH,EAAYnB,GACnC,OAAOgB,EAAOn/C,KAAKhD,KAAM,qCAAsCyM,OAAO61C,EAAY,sCAAwC71C,OAAO00C,EAAiB,KAAOY,GAAUW,cAAevB,IAAoBnhD,IAC1M,CACA,OAJA,QAAUyiD,EAAmBN,GAItBM,CACX,CANsC,CAMpCP,ICtBK,SAASS,GAAqB1c,GACjC,MAAqB,mBAAPA,CAClB,CAEO,SAAS2c,GAAc3B,EAAK4B,EAASC,EAAYC,EAAS9/B,EAAQ+/B,EAEzE7B,GAEI,GAAmB,IAAfF,EAAI39C,QAAgBqxC,EAAiBsM,EAAI,IACzC,MAAO,CACH,CACI/9C,KAAM++C,GAAUrN,QAChBl0C,MAAOugD,EAAI,GAAGvgD,QAK1B,IADA,IAAIw0B,EAAS,GACJwiB,EAAK,EAAGuL,EAAQhC,EAAKvJ,EAAKuL,EAAM3/C,OAAQo0C,IAAM,CACnD,IAAIzR,EAAKgd,EAAMvL,GAEf,GAAI/C,EAAiB1O,GACjB/Q,EAAOpyB,KAAK,CACRI,KAAM++C,GAAUrN,QAChBl0C,MAAOulC,EAAGvlC,aAMlB,GAAIy0C,EAAelP,GACmB,iBAAvB+c,GACP9tB,EAAOpyB,KAAK,CACRI,KAAM++C,GAAUrN,QAChBl0C,MAAOoiD,EAAWI,gBAAgBL,GAASM,OAAOH,SAJ9D,CASA,IAAII,EAAUnd,EAAGvlC,MAEjB,IAAMuiB,KAAUmgC,KAAWngC,GACvB,MAAM,IAAIw/B,GAAkBW,EAASjC,GAEzC,IAAIzgD,EAAQuiB,EAAOmgC,GACnB,GAAIvO,EAAkB5O,GACbvlC,GAA0B,iBAAVA,GAAuC,iBAAVA,IAC9CA,EACqB,iBAAVA,GAAuC,iBAAVA,EAC9BqP,OAAOrP,GACP,IAEdw0B,EAAOpyB,KAAK,CACRI,KAAuB,iBAAVxC,EAAqBuhD,GAAUrN,QAAUqN,GAAUx4B,OAChE/oB,MAAOA,SAOf,GAAI,EAAculC,GAAlB,CACI,IAAIjwB,EAA4B,iBAAbiwB,EAAGjwB,MAChB+sC,EAAQhO,KAAK9O,EAAGjwB,OAChB,GAAmBiwB,EAAGjwB,OAClBiwB,EAAGjwB,MAAMipC,mBACT/9C,EACVg0B,EAAOpyB,KAAK,CACRI,KAAM++C,GAAUrN,QAChBl0C,MAAOoiD,EACFO,kBAAkBR,EAAS7sC,GAC3BmtC,OAAOziD,IAGpB,MACA,GAAI,EAAculC,GACVjwB,EAA4B,iBAAbiwB,EAAGjwB,MAChB+sC,EAAQ/N,KAAK/O,EAAGjwB,OAChB,GAAmBiwB,EAAGjwB,OAClBiwB,EAAGjwB,MAAMipC,cACT8D,EAAQ/N,KAAKx0B,OACvB0U,EAAOpyB,KAAK,CACRI,KAAM++C,GAAUrN,QAChBl0C,MAAOoiD,EACFO,kBAAkBR,EAAS7sC,GAC3BmtC,OAAOziD,UAIpB,GAAI,EAAgBulC,IACZjwB,EAA4B,iBAAbiwB,EAAGjwB,MAChB+sC,EAAQv5B,OAAOyc,EAAGjwB,OAClB,GAAiBiwB,EAAGjwB,OAChBiwB,EAAGjwB,MAAMipC,mBACT/9C,IACG8U,EAAM6hC,QACfn3C,GAESsV,EAAM6hC,OAAS,GAE5B3iB,EAAOpyB,KAAK,CACRI,KAAM++C,GAAUrN,QAChBl0C,MAAOoiD,EACFI,gBAAgBL,EAAS7sC,GACzBmtC,OAAOziD,SAfpB,CAmBA,GAAI,EAAaulC,GAAK,CAClB,IAAIxlC,EAAWwlC,EAAGxlC,SAAU6iD,EAAUrd,EAAGvlC,MACrC6iD,EAAWtgC,EAAOqgC,GACtB,IAAKX,GAAqBY,GACtB,MAAM,IAAIf,GAAsBc,EAAS,WAAYnC,GAEzD,IACIqC,EAASD,EADDX,GAAcniD,EAAUoiD,EAASC,EAAYC,EAAS9/B,EAAQ+/B,GAC9Cn2C,KAAI,SAAU+jB,GAAK,OAAOA,EAAElwB,KAAO,KAC1D8C,MAAMqK,QAAQ21C,KACfA,EAAS,CAACA,IAEdtuB,EAAOpyB,KAAKuK,MAAM6nB,EAAQsuB,EAAO32C,KAAI,SAAUmuC,GAC3C,MAAO,CACH93C,KAAmB,iBAAN83C,EAAiBiH,GAAUrN,QAAUqN,GAAUx4B,OAC5D/oB,MAAOs6C,EAEf,IACJ,CACA,GAAI,EAAgB/U,GAApB,CAEI,KADIuR,EAAMvR,EAAG3yB,QAAQ5S,IAAUulC,EAAG3yB,QAAQmwC,OAEtC,MAAM,IAAIpB,GAAkBpc,EAAGvlC,MAAOA,EAAOsM,OAAOC,KAAKg5B,EAAG3yB,SAAU6tC,GAE1EjsB,EAAOpyB,KAAKuK,MAAM6nB,EAAQ0tB,GAAcpL,EAAI92C,MAAOmiD,EAASC,EAAYC,EAAS9/B,GAErF,MACA,GAAI,EAAgBgjB,GAApB,CACI,IAAIuR,EACJ,KADIA,EAAMvR,EAAG3yB,QAAQ,IAAI7G,OAAO/L,KACtB,CACN,IAAKgjD,KAAKC,YACN,MAAM,IAAIzB,GAAY,kHAAqHH,GAAU6B,iBAAkBzC,GAE3K,IAAI0C,EAAOf,EACNgB,eAAejB,EAAS,CAAE3/C,KAAM+iC,EAAGwZ,aACnCxK,OAAOv0C,GAASulC,EAAGpvB,QAAU,IAClC2gC,EAAMvR,EAAG3yB,QAAQuwC,IAAS5d,EAAG3yB,QAAQmwC,KACzC,CACA,IAAKjM,EACD,MAAM,IAAI6K,GAAkBpc,EAAGvlC,MAAOA,EAAOsM,OAAOC,KAAKg5B,EAAG3yB,SAAU6tC,GAE1EjsB,EAAOpyB,KAAKuK,MAAM6nB,EAAQ0tB,GAAcpL,EAAI92C,MAAOmiD,EAASC,EAAYC,EAAS9/B,EAAQviB,GAASulC,EAAGpvB,QAAU,IAEnH,CA3CA,CArEA,CAiHJ,CACA,OAxKkBktC,EAwKE7uB,GAvKV5xB,OAAS,EACRygD,EAEJA,EAAMh5C,QAAO,SAAUinB,EAAKgyB,GAC/B,IAAIC,EAAWjyB,EAAIA,EAAI1uB,OAAS,GAShC,OARK2gD,GACDA,EAAS/gD,OAAS++C,GAAUrN,SAC5BoP,EAAK9gD,OAAS++C,GAAUrN,QAIxBqP,EAASvjD,OAASsjD,EAAKtjD,MAHvBsxB,EAAIlvB,KAAKkhD,GAKNhyB,CACX,GAAG,IAfP,IAAsB+xB,CAyKtB,CCpJA,SAASG,GAAuBC,GAC5B,MAAO,CACH/sB,OAAQ,WACJ,MAAO,CACHJ,IAAK,SAAUh2B,GACX,OAAOmjD,EAAMnjD,EACjB,EACA2gC,IAAK,SAAU3gC,EAAKN,GAChByjD,EAAMnjD,GAAON,CACjB,EAER,EAER,EDtCA,SAAWuhD,GACPA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAkB,OAAI,GAAK,QACxC,CAHD,CAGGA,KAAcA,GAAY,CAAC,IC8EvB,IAAImC,GAAmC,WAC1C,SAASA,EAAkB/7B,EAASw6B,EAASwB,EAAiB71C,QAC1C,IAAZq0C,IAAsBA,EAAUuB,EAAkBE,eACtD,IApEcC,EAAeC,EAoEzB1U,EAAQ9vC,KA0CZ,GAzCAA,KAAKykD,eAAiB,CAClBj7B,OAAQ,CAAC,EACT6rB,SAAU,CAAC,EACXqP,YAAa,CAAC,GAElB1kD,KAAKmjD,OAAS,SAAUlgC,GACpB,IAAI8gC,EAAQjU,EAAM8S,cAAc3/B,GAEhC,GAAqB,IAAjB8gC,EAAMzgD,OACN,OAAOygD,EAAM,GAAGrjD,MAEpB,IAAIw0B,EAAS6uB,EAAMh5C,QAAO,SAAUinB,EAAKgyB,GASrC,OARKhyB,EAAI1uB,QACL0gD,EAAK9gD,OAAS++C,GAAUrN,SACO,iBAAxB5iB,EAAIA,EAAI1uB,OAAS,GAIxB0uB,EAAIA,EAAI1uB,OAAS,IAAM0gD,EAAKtjD,MAH5BsxB,EAAIlvB,KAAKkhD,EAAKtjD,OAKXsxB,CACX,GAAG,IACH,OAAIkD,EAAO5xB,QAAU,EACV4xB,EAAO,IAAM,GAEjBA,CACX,EACAl1B,KAAK4iD,cAAgB,SAAU3/B,GAC3B,OAAO2/B,GAAc9S,EAAM6U,IAAK7U,EAAM+S,QAAS/S,EAAMgT,WAAYhT,EAAMiT,QAAS9/B,OAAQ/hB,EAAW4uC,EAAMznB,QAC7G,EACAroB,KAAK4kD,gBAAkB,WACnB,IAAI1zB,EACJ,MAAO,CACH4nB,QAAyC,QAA/B5nB,EAAK4e,EAAM+U,sBAAmC,IAAP3zB,OAAgB,EAASA,EAAG3jB,aACzEm2C,KAAKoB,aAAaC,mBAAmBjV,EAAM+S,SAAS,GAEhE,EACA7iD,KAAKglD,OAAS,WAAc,OAAOlV,EAAM6U,GAAK,EAE9C3kD,KAAK6iD,QAAUA,EACf7iD,KAAK6kD,eAAiBT,EAAkBa,cAAcpC,GAC/B,iBAAZx6B,EAAsB,CAE7B,GADAroB,KAAKqoB,QAAUA,GACV+7B,EAAkBc,QACnB,MAAM,IAAI59B,UAAU,+EAExB,IAAI4J,EAAK1iB,GAAQ,CAAC,EAA+B22C,GAAfj0B,EAAG4xB,YAAwB,QAAO5xB,EAAI,CAAC,gBAEzElxB,KAAK2kD,IAAMP,EAAkBc,QAAQ78B,GAAS,SAAS,QAAS,CAAC,EAAG88B,GAAY,CAAErM,OAAQ94C,KAAK6kD,iBACnG,MAEI7kD,KAAK2kD,IAAMt8B,EAEf,IAAK7kB,MAAMqK,QAAQ7N,KAAK2kD,KACpB,MAAM,IAAIr9B,UAAU,kDAIxBtnB,KAAK+iD,SA/HSwB,EA+HcH,EAAkBrB,SA/HjByB,EA+H0BH,GA3HpDr3C,OAAOC,KAAKs3C,GAAex5C,QAAO,SAAUinB,EAAKlkB,GAb5D,IAAqBs3C,EAAIC,EAejB,OADArzB,EAAIlkB,IAdSs3C,EAcQb,EAAcz2C,IAdlBu3C,EAcsBb,EAAQ12C,KAV5C,SAAS,SAAS,QAAS,CAAC,EAAIs3C,GAAM,CAAC,GAAMC,GAAM,CAAC,GAAKr4C,OAAOC,KAAKm4C,GAAIr6C,QAAO,SAAUinB,EAAKlkB,GAElG,OADAkkB,EAAIlkB,IAAK,SAAS,QAAS,CAAC,EAAGs3C,EAAGt3C,IAAMu3C,EAAGv3C,IAAM,CAAC,GAC3CkkB,CACX,GAAG,CAAC,IALOozB,GAaApzB,CACX,IAAG,QAAS,CAAC,EAAGuyB,IALLA,GA8HPvkD,KAAK8iD,WACAt0C,GAAQA,EAAKs0C,YA1G1B,SAAiCliD,GAM7B,YALc,IAAVA,IAAoBA,EAAQ,CAC5B4oB,OAAQ,CAAC,EACT6rB,SAAU,CAAC,EACXqP,YAAa,CAAC,IAEX,CACHxB,gBAAiB/rB,IAAQ,WAGrB,IAFA,IAAIjG,EACA/tB,EAAO,GACFu0C,EAAK,EAAGA,EAAKt0C,UAAUE,OAAQo0C,IACpCv0C,EAAKu0C,GAAMt0C,UAAUs0C,GAEzB,OAAO,KAAMxmB,EAAKwyB,KAAKoB,cAAcv4B,KAAKlf,MAAM6jB,GAAI,QAAc,MAAC,GAAS/tB,GAAM,IACtF,GAAG,CACCvC,MAAOsjD,GAAuBtjD,EAAM4oB,QACpC7V,SAAUquC,GAAWL,WAEzB0B,kBAAmBlsB,IAAQ,WAGvB,IAFA,IAAIjG,EACA/tB,EAAO,GACFu0C,EAAK,EAAGA,EAAKt0C,UAAUE,OAAQo0C,IACpCv0C,EAAKu0C,GAAMt0C,UAAUs0C,GAEzB,OAAO,KAAMxmB,EAAKwyB,KAAK4B,gBAAgB/4B,KAAKlf,MAAM6jB,GAAI,QAAc,MAAC,GAAS/tB,GAAM,IACxF,GAAG,CACCvC,MAAOsjD,GAAuBtjD,EAAMy0C,UACpC1hC,SAAUquC,GAAWL,WAEzBmC,eAAgB3sB,IAAQ,WAGpB,IAFA,IAAIjG,EACA/tB,EAAO,GACFu0C,EAAK,EAAGA,EAAKt0C,UAAUE,OAAQo0C,IACpCv0C,EAAKu0C,GAAMt0C,UAAUs0C,GAEzB,OAAO,KAAMxmB,EAAKwyB,KAAKC,aAAap3B,KAAKlf,MAAM6jB,GAAI,QAAc,MAAC,GAAS/tB,GAAM,IACrF,GAAG,CACCvC,MAAOsjD,GAAuBtjD,EAAM8jD,aACpC/wC,SAAUquC,GAAWL,WAGjC,CAiEyC4D,CAAwBvlD,KAAKykD,eAClE,CAsFA,OArFAz3C,OAAOgkB,eAAeozB,EAAmB,gBAAiB,CACtDptB,IAAK,WAKD,OAJKotB,EAAkBoB,wBACnBpB,EAAkBoB,uBACd,IAAI9B,KAAKoB,cAAeF,kBAAkB9L,QAE3CsL,EAAkBoB,qBAC7B,EACAzuB,YAAY,EACZ8W,cAAc,IAElBuW,EAAkBoB,sBAAwB,KAC1CpB,EAAkBa,cAAgB,SAAUpC,GACxC,QAA2B,IAAhBa,KAAK+B,OAAhB,CAGA,IAAIC,EAAmBhC,KAAKoB,aAAaC,mBAAmBlC,GAC5D,OAAI6C,EAAiBpiD,OAAS,EACnB,IAAIogD,KAAK+B,OAAOC,EAAiB,IAErC,IAAIhC,KAAK+B,OAA0B,iBAAZ5C,EAAuBA,EAAUA,EAAQ,GALvE,CAMJ,EACAuB,EAAkBc,QAAU7gD,GAI5B+/C,EAAkBrB,QAAU,CACxBv5B,OAAQ,CACJm8B,QAAS,CACL3N,sBAAuB,GAE3BF,SAAU,CACN9hC,MAAO,YAEX4vC,QAAS,CACL5vC,MAAO,YAGf++B,KAAM,CACF8Q,MAAO,CACHhQ,MAAO,UACPC,IAAK,UACLH,KAAM,WAEVn1B,OAAQ,CACJq1B,MAAO,QACPC,IAAK,UACLH,KAAM,WAEVmQ,KAAM,CACFjQ,MAAO,OACPC,IAAK,UACLH,KAAM,WAEVoQ,KAAM,CACFhQ,QAAS,OACTF,MAAO,OACPC,IAAK,UACLH,KAAM,YAGdX,KAAM,CACF6Q,MAAO,CACH3P,KAAM,UACNC,OAAQ,WAEZ31B,OAAQ,CACJ01B,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZ0P,KAAM,CACF5P,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,SAElB0P,KAAM,CACF7P,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,WAInB+N,CACX,CAxJ6C,GCjFtC,SAAS,GAAQx/C,EAAI0O,GACxB,IAAI1S,EAAQ0S,GAAWA,EAAQ1S,MAAQ0S,EAAQ1S,MAAQ,GACnD0gD,EAAahuC,GAAWA,EAAQguC,WAAahuC,EAAQguC,WAAa,GAEtE,OADehuC,GAAWA,EAAQK,SAAWL,EAAQK,SAAW,IAChD/O,EAAI,CAChBhE,MAAOA,EACP0gD,WAAYA,GAEpB,CAOA,SAAS,GAAQ18C,EAAIhE,EAAO0gD,EAAY3zC,GACpC,IAJiBjN,EAIb2rB,EAHa,OADA3rB,EAIUiN,IAHe,iBAAVjN,GAAuC,kBAAVA,EAG3BiN,EAAM2zC,EAAW3zC,GAC/C+zC,EAAgB9gD,EAAMo2B,IAAI3K,GAK9B,YAJ6B,IAAlBq1B,IACPA,EAAgB98C,EAAG5B,KAAKhD,KAAM2N,GAC9B/M,EAAM+gC,IAAItV,EAAUq1B,IAEjBA,CACX,CACA,SAAS,GAAS98C,EAAIhE,EAAO0gD,GACzB,IAAIn+C,EAAOK,MAAM+iB,UAAUrW,MAAMlN,KAAKI,UAAW,GAC7CipB,EAAWi1B,EAAWn+C,GACtBu+C,EAAgB9gD,EAAMo2B,IAAI3K,GAK9B,YAJ6B,IAAlBq1B,IACPA,EAAgB98C,EAAGyI,MAAMrN,KAAMmD,GAC/BvC,EAAM+gC,IAAItV,EAAUq1B,IAEjBA,CACX,CACA,SAAS,GAAS98C,EAAIxE,EAASuT,EAAU/S,EAAOihD,GAC5C,OAAOluC,EAAS4Y,KAAKnsB,EAASwE,EAAIhE,EAAOihD,EAC7C,CACA,SAAS,GAAgBj9C,EAAI0O,GAEzB,OAAO,GAAS1O,EAAI5E,KADS,IAAd4E,EAAGtB,OAAe,GAAU,GACPgQ,EAAQ1S,MAAMw2B,SAAU9jB,EAAQguC,WACxE,CAUA,IAAI,GAAoB,WACpB,OAAOl9C,KAAKE,UAAUlB,UAC1B,EAIA,SAAS,KACLpD,KAAKY,MAAQoM,OAAOoqB,OAAO,KAC/B,CACA,GAA4B7Q,UAAUyQ,IAAM,SAAUh2B,GAClD,OAAOhB,KAAKY,MAAMI,EACtB,EACA,GAA4BulB,UAAUob,IAAM,SAAU3gC,EAAKN,GACvDV,KAAKY,MAAMI,GAAON,CACtB,EACA,ICnEWslD,GDmEP,GAAe,CACf5uB,OAAQ,WAEJ,OAAO,IAAI,EACf,GAEO,GAAa,CACpBuqB,SA/BJ,SAA0B/8C,EAAI0O,GAC1B,OAAO,GAAS1O,EAAI5E,KAAM,GAAUsT,EAAQ1S,MAAMw2B,SAAU9jB,EAAQguC,WACxE,EA8BIG,QA7BJ,SAAyB78C,EAAI0O,GACzB,OAAO,GAAS1O,EAAI5E,KAAM,GAASsT,EAAQ1S,MAAMw2B,SAAU9jB,EAAQguC,WACvE,IC/CA,SAAW0E,GACPA,EAA4B,aAAI,eAChCA,EAAqC,sBAAI,wBACzCA,EAA8B,eAAI,iBAClCA,EAA4B,aAAI,eAChCA,EAAmC,oBAAI,qBAC1C,CAND,CAMGA,KAAkBA,GAAgB,CAAC,IACtC,IAAIC,GAA2B,SAAU9D,GAErC,SAAS8D,EAAUrL,EAAMvyB,EAAS69B,GAC9B,IAAIpW,EAAQ9vC,KACRknB,EAAMg/B,EACJA,aAAqB/9B,MACjB+9B,EACA,IAAI/9B,MAAMpY,OAAOm2C,SACrBhlD,EAQN,OAPA4uC,EAAQqS,EAAOn/C,KAAKhD,KAAM,yBAAyByM,OAAOmuC,EAAM,MAAMnuC,OAAO4b,EAAS,MAAM5b,OAAOya,EAAM,KAAKza,OAAOya,EAAImB,QAAS,MAAM5b,OAAOya,EAAIoB,OAAS,MAAQtoB,MAC9J46C,KAAOA,EAE0B,mBAA5BzyB,MAAMg+B,mBAEbh+B,MAAMg+B,kBAAkBrW,EAAOmW,GAE5BnW,CACX,CACA,OAjBA,QAAUmW,EAAW9D,GAiBd8D,CACX,CAnB8B,CAmB5B99B,OAEEi+B,GAA2C,SAAUjE,GAErD,SAASiE,EAA0B/9B,EAAS69B,GACxC,OAAO/D,EAAOn/C,KAAKhD,KAAMgmD,GAAcK,sBAAuBh+B,EAAS69B,IAAclmD,IACzF,CACA,OAJA,QAAUomD,EAA2BjE,GAI9BiE,CACX,CAN8C,CAM5CH,IAEEK,GAAoC,SAAUnE,GAE9C,SAASmE,EAAmBj+B,EAAS69B,GACjC,OAAO/D,EAAOn/C,KAAKhD,KAAMgmD,GAAcO,eAAgBl+B,EAAS69B,IAAclmD,IAClF,CACA,OAJA,QAAUsmD,EAAoBnE,GAIvBmE,CACX,CANuC,CAMrCL,IAEEO,GAAkC,SAAUrE,GAE5C,SAASqE,EAAiBn+B,EAAS69B,GAC/B,OAAO/D,EAAOn/C,KAAKhD,KAAMgmD,GAAcS,aAAcp+B,EAAS69B,IAAclmD,IAChF,CACA,OAJA,QAAUwmD,EAAkBrE,GAIrBqE,CACX,CANqC,CAMnCP,IAEES,GAAiC,SAAUvE,GAE3C,SAASuE,EAAgBr+B,EAASywB,EAAQoN,GACtC,IAAIpW,EAAQqS,EAAOn/C,KAAKhD,KAAMgmD,GAAcW,aAAc,GAAGl6C,OAAO4b,EAAS,cAAc5b,OAAOqsC,EAAQ,MAAOoN,IAAclmD,KAE/H,OADA8vC,EAAMgJ,OAASA,EACRhJ,CACX,CACA,OANA,QAAU4W,EAAiBvE,GAMpBuE,CACX,CARoC,CAQlCT,IAEEW,GAAoC,SAAUzE,GAE9C,SAASyE,EAAmBv+B,EAASywB,EAAQlL,EAAYsY,GACrD,IAAIpW,EAAQqS,EAAOn/C,KAAKhD,KAAM,GAAGyM,OAAO4b,EAAS,iBAAiB5b,OAAOmhC,aAA+C,EAASA,EAAWj/B,GAAI,uBAAuBlC,OAAOmhC,aAA+C,EAASA,EAAWiZ,eAAgB,mBAAmBp6C,OAAOmhC,aAA+C,EAASA,EAAWkZ,YAAa,MAAOhO,EAAQoN,IAAclmD,KAGxY,OAFA8vC,EAAMlC,WAAaA,EACnBkC,EAAMgJ,OAASA,EACRhJ,CACX,CACA,OAPA,QAAU8W,EAAoBzE,GAOvByE,CACX,CATuC,CASrCF,IAEEK,GAAyC,SAAU5E,GAEnD,SAAS4E,EAAwBnZ,EAAYkL,GACzC,IAAIhJ,EAAQqS,EAAOn/C,KAAKhD,KAAMgmD,GAAcgB,oBAAqB,qBAAsBv6C,OAAOmhC,EAAWj/B,GAAI,kBAAoBlC,OAAOqsC,EAAQ,aAAcrsC,OAAOmhC,EAAWiZ,eAC1K,oBAAoBp6C,OAA4C,iBAA9BmhC,EAAWiZ,eACzCjZ,EAAWiZ,eACXjZ,EAAWiZ,eACRh6C,KAAI,SAAUtD,GAAK,IAAI2nB,EAAI,OAA0B,QAAlBA,EAAK3nB,EAAE7I,aAA0B,IAAPwwB,EAAgBA,EAAK9sB,KAAKE,UAAUiF,EAAI,IACrGwd,OAAQ,KACf,KAAM,mBAAqB/mB,KAEjC,OADA8vC,EAAMlC,WAAaA,EACZkC,CACX,CACA,OAZA,QAAUiX,EAAyB5E,GAY5B4E,CACX,CAd4C,CAc1Cd,ICrFK,SAASgB,GAAYnnD,EAAOonD,EAAWC,GAE1C,YADiB,IAAbA,IAAuBA,EAAW,CAAC,GAChCD,EAAUn8C,QAAO,SAAUq8C,EAAUnmD,GAOxC,OANIA,KAAQnB,EACRsnD,EAASnmD,GAAQnB,EAAMmB,GAElBA,KAAQkmD,IACbC,EAASnmD,GAAQkmD,EAASlmD,IAEvBmmD,CACX,GAAG,CAAC,EACR,CACA,IAYWC,GAAsB,CAC7BtE,QAAS,CAAC,EACVuE,SAAU,CAAC,EACXC,cAAUrmD,EACVojD,cAAe,KACfkD,eAAgB,CAAC,EACjBC,uBAAuB,EACvBC,QAnBsB,SAAUx/B,GAKpC,EAeIy/B,OAdqB,SAAUC,GAKnC,GAsBA,SAAS,GAAuBzD,GAC5B,MAAO,CACH/sB,OAAQ,WACJ,MAAO,CACHJ,IAAK,SAAUh2B,GACX,OAAOmjD,EAAMnjD,EACjB,EACA2gC,IAAK,SAAU3gC,EAAKN,GAChByjD,EAAMnjD,GAAON,CACjB,EAER,EAER,CAyFO,SAASmnD,GAAe9E,EAAS7/C,EAAMjC,EAAMymD,GAChD,IACIvE,EADA2E,EAAa/E,GAAWA,EAAQ7/C,GAKpC,GAHI4kD,IACA3E,EAAS2E,EAAW7mD,IAEpBkiD,EACA,OAAOA,EAEXuE,EAAQ,IAAItB,GAA0B,MAAM35C,OAAOvJ,EAAM,mBAAmBuJ,OAAOxL,IACvF,CC7JO,SAAS,GAAqB8mD,GACjCvT,EAAUuT,EAAM,+GAEpB,CACO,IAAI,IAAsB,SAAS,QAAS,CAAC,EAAG,IAA2B,CAAEC,cAAe,aAa5F,SAASC,GAAa93B,EAAMC,GAC/B,GAAID,IAASC,EACT,OAAO,EAEX,IAAKD,IAASC,EACV,OAAO,EAEX,IAAIC,EAAQrjB,OAAOC,KAAKkjB,GACpBG,EAAQtjB,OAAOC,KAAKmjB,GACpB3iB,EAAM4iB,EAAM/sB,OAChB,GAAIgtB,EAAMhtB,SAAWmK,EACjB,OAAO,EAEX,IAAK,IAAI/J,EAAI,EAAGA,EAAI+J,EAAK/J,IAAK,CAC1B,IAAI1C,EAAMqvB,EAAM3sB,GAChB,GAAIysB,EAAKnvB,KAASovB,EAAKpvB,KAClBgM,OAAOuZ,UAAUllB,eAAe2B,KAAKotB,EAAMpvB,GAC5C,OAAO,CAEf,CACA,OAAO,CACX,CCvCe,SAASknD,KACpB,IAAIH,EAAO,aAAiBz2B,GAE5B,OADA,GAAqBy2B,GACdA,CACX,CCQA,SAASI,GAAiBroD,GACtB,IAAIioD,EAAOG,KACPE,EAAgBL,EAAKK,cAAel3B,EAAK62B,EAAKC,cAAeK,OAAc,IAAPn3B,EAAgB,WAAiBA,EACrGviB,EAAK7O,EAAM6O,GAAIm4C,EAAchnD,EAAMgnD,YAAaD,EAAiB/mD,EAAM+mD,eAAgB5jC,EAASnjB,EAAMmjB,OAAQxiB,EAAWX,EAAMW,SAAU6nD,EAAKxoD,EAAM25B,QAAS75B,OAAmB,IAAP0oD,EAAgBD,EAAOC,EAEhMzlB,EAAQulB,EADK,CAAEz5C,GAAIA,EAAIm4C,YAAaA,EAAaD,eAAgBA,GAC/B5jC,EAAQ,CAC1Cq4B,UAHgNx7C,EAAMw7C,YAK1N,MAAwB,mBAAb76C,EACAA,EAAS+C,MAAMqK,QAAQg1B,GAASA,EAAQ,CAACA,IAEhDjjC,EACO,gBAAoBA,EAAW,KAAM,mBAAuBijC,IAEhE,gBAAoB,WAAgB,KAAMA,EACrD,CACAslB,GAAiBt+C,YAAc,mBAC/B,IAAI0+C,GAA2B,OAAWJ,IAvB1C,SAAkBK,EAAWC,GACzB,IAAIxlC,EAASulC,EAAUvlC,OAAQylC,GAAa,QAAOF,EAAW,CAAC,WAC3DG,EAAaF,EAAUxlC,OAAQ2lC,GAAiB,QAAOH,EAAW,CAAC,WACvE,OAAQR,GAAaU,EAAY1lC,IAC7BglC,GAAaS,EAAYE,EACjC,IAmBAL,GAAyB1+C,YAAc,2BACvC,4BChCA,MAAMg/C,GAAuB,KAC3B,KAAAr3B,eAAc,CAAEpO,MAAO,wBCgBnB0lC,GAAuC,CAC3CC,MAAO,GACPC,KAAM,GACNrsB,KAAM,GACNzU,MAAO,GACP+gC,KAAM,KAKFC,GACc,oBAAX12C,QAA0BA,OAAOnI,SACpC,EAAA8+C,gBACA,EAAAzkD,sCChCC,MAAM0kD,GAAoB1oD,GAC3BA,SAA0CoP,OAAOshC,MAAM1wC,IAClDoP,OAAOu5C,WAAW3oD,GAElB,EAF+B,EAMpC4oD,GAAmB,CACvBC,EACA7oD,EACA8oD,KAEA,MAAMC,EAA4B,QAApBF,EACRG,EAASD,EAAQz5C,KAAK25C,KAAKjpD,GAAS,GAAKA,EAE/C,OAAO,IAAIgjD,KAAKoB,aAAa2E,EAAQ,QAAU,QAAS,CACtDzzC,MAAO,WACP8hC,SAAUyR,EAEV/Q,sBACEgR,IAAiBC,EAAQ,EAAIL,GAAiBM,GAChD1R,sBAAuBwR,IAAiBC,EAAQ,EAAIL,GAAiBM,KACpEvG,OAAOuG,GAAU,EAAE,EAGXE,GAAoB,CAACL,EAAyB7oD,IACzD4oD,GAAiBC,EAAiB7oD,GAAO,GAE9BmpD,GAA4B,CACvCN,EACA7oD,IACG4oD,GAAiBC,EAAiB7oD,GAAO,GAEjCopD,GAAyB,CACpCC,EACArpD,IACG,IAAIgjD,KAAKoB,aAAaiF,GAAe5G,OAAOziD,GAAS,GC5BpDspD,GAA8C,CAClD,OAAY,iBACZ,UAAe,yBAIXC,GAAuB,CAACvpD,EAAeo3C,IAC1B,QAAbA,GAAsBp3C,EACjBA,EAAQ,IAEVA,EAGHwpD,GACJC,IAEA,MAAMC,EACJJ,GACEG,GAGJ,IAAKC,EACH,MAAM,IAAIjiC,MACR,sEAAsEgiC,MAI1E,OAAOC,CAAmB,EC1BfC,GAA+B,CAC1CC,EACAC,EACAC,EACAjB,EACAkB,EACAC,WAEA,IAAIC,EAEAC,EAEJ,GAAIH,EAAgB,CAClB,MAAMI,EAAWP,EAAkBG,GAGnC,GADAE,EAAmD,QAApC,EAAAE,aAAQ,EAARA,EAAUC,OAAOC,2BAAmB,eAAEl+C,KAAK+jB,GAAMA,EAAEk6B,UAC7DH,EACH,MAAM,IAAIxiC,MACR,4CAA4CsiC,KAIhD,MAAMO,ED8BkC,EAC1CL,EACApB,KAEA,MAAO0B,EAAYC,GAAa,CAAC,QAAS,QAAQr+C,KAAKs+C,GAErDR,EAAaS,MACVC,GACCA,EAAYC,wBAA0BH,GACjB,eAArBE,EAAYnoD,MACwB,oBAApCmoD,EAAYE,qBAGZF,EAAYvT,WAAayR,OAIxBiC,EAASC,GAAU,CAACR,EAAYC,GAAWr+C,KAAK6+C,IACrD,IAAKA,EACH,OAGF,MAAMC,EAAWD,EAAaE,MAAM,IAC9B,MAAEC,EAAK,UAAEC,EAAS,cAAEC,GAAkBJ,EAE5C,MAhD0B,EAC5BA,EACAG,EACAC,EACAjU,IAEA6T,EAAS9+C,KAAKm/C,IAAY,CACxBC,SAAS,EACTC,gBAAiBhC,GAAgC4B,GACjDK,gBAAiBJ,EACjBK,eAAgBJ,EAAQ3R,MACxBgS,eAAgBL,EAAQM,QACxBC,OAAQ,CACN,CACEzU,WACA0U,UAEMvC,GADU,cAAd6B,EACyBE,EAAQS,WACRT,EAAQU,WADY5U,SA+B5C6U,CACLd,EACAC,EACAC,EACAL,EAAa5T,SACd,IAGH,MAAO,CACL0T,UACAC,SACD,EClEwBmB,CACrBjC,EACApB,GAEF,GAAe,YAAXiB,GAAwBQ,EAAeQ,QACzCZ,EAAeI,EAAeQ,QAAQt7C,YACjC,IAAe,WAAXs6C,IAAuBQ,EAAeS,OAG/C,MAAM,IAAItjC,MACR,uEAAuEsiC,KAHzEG,EAAeI,EAAeS,OAAOv7C,aAMlC,CACL,QAAuBhP,IAAnBwpD,EACF,MAAM,IAAIviC,MAAM,qDAIlB,GADAwiC,EAAeJ,EAAsBG,QAChBxpD,IAAjBypD,EACF,MAAM,IAAIxiC,MACR,MAAMqiC,+CAAoDE,KAI9D,GAAe,YAAXF,GAAwBG,EAAaa,QACvCZ,EAAeD,EAAaa,QAAQt7C,YAC/B,IAAe,WAAXs6C,IAAuBG,EAAac,OAG7C,MAAM,IAAItjC,MACR,8CAA8CqiC,0CAA+CE,KAH/FE,EAAeD,EAAac,OAAOv7C,SAQvC,OAAO06C,CAAY,EClERiC,GAAoB,CAC/BtD,EACAgD,KACE,MACF,OAA2D,QAA3D,EAAAA,EAAOnB,MAAK,EAAGtT,cAAeA,IAAayR,WAAgB,eAAEiD,YAAa,CAAC,ECC9D,SAAS,GACtBM,EACAC,EACAlB,EACAtC,GAEA,MAAMyD,EAAenB,EAAMkB,GAE3B,IAAKC,EACH,MAAM,IAAI7kC,MAAM,qCAAqC2kC,MAGvD,MAAM,OAAEP,EAAM,eAAEH,EAAc,eAAEC,GAAmBW,EAC7CC,EAAaJ,GAAkBtD,EAAiBgD,EAAOr8C,SAG7D,MAAO,CACL+8C,aACAC,gBAJsBD,EAAaH,EAKnCK,sBAAsB,EAEtBC,UAAW,CACT,CACEC,YAAaP,EACbQ,sBAAuBjB,GAAkB,GAAKS,EAE9CV,eAAgBA,GAAkB,EAClCC,eAAgBA,GAAkB,EAElCkB,kBAAmBN,EACnBO,uBAAwBP,EAAaH,IAI7C,CC/Be,SAAS,GACtBA,EACAC,EACAlB,EACAtC,SAEA,IAAI0D,EAAa,EACbQ,EAAQ,EACZ,MAAML,EAAkC,GAElCM,EAAgBnB,GACpBM,GAAkBtD,EAAiBgD,IAGZ,IAArBQ,IACFA,EAAkBlB,EAAMvoD,OAAS,GAGnC,IAAIqqD,EAAM,EACV,IAAK,MAAMC,KAAQ/B,EAAO,CACxB,MAAM,eAAEO,EAAc,eAAEC,GAAmBuB,EACrCC,EAAoB79C,KAAK89C,KAAK1B,GAAkB,GAAK,EAAG,GAIxD2B,EAAoB1B,GAAkB,IACtCgB,EACJM,IAAQZ,EACJD,EAAWe,EACXE,EAAoBF,EAIxBJ,EAFEG,EAAK1B,kBAAoB,iBAEnBwB,EADS7B,EAAM8B,EAAM,GACCpB,OAAOr8C,SAG7Bw9C,EADU7B,EAAM77C,KAAK8wC,IAAI6M,EAAK9B,EAAMvoD,OAAS,IACtBipD,OAAOr8C,SAGxC,MAAMq9C,EAAoBF,EAAcI,EAcxC,GAbAR,GAAcM,EAEdH,EAAUtqD,KAAK,CACbuqD,cACAC,qBAAsBS,EAAoBV,EAE1CjB,eAAgByB,GAAqB,EACrCxB,eAAgB0B,EAEhBR,oBACAC,uBAAwBC,MAGpBE,EAAMZ,EACV,MAMJ,MAAO,CACLE,aACAC,gBAJsBD,EAAaH,EAMnCK,sBACU,QAAR,EAAAtB,EAAM,UAAE,eAAEK,mBAAoB,iBAEhCkB,YAEJ,CC/DA,MAAMY,GAAwB,CAAClB,EAAkBjB,IAC/CA,EAAMoC,WACJ,EAAG7B,iBAAgBC,oBACjBS,IAAaV,GAAkB,IAC/BU,IAAaT,GAAkBr8C,KAAKk+C,IAAI,GAAI,QAG3C,SAASC,GACdrB,EACAjB,EACAtC,EACAQ,EAAgB,SAEhB,IAAKj6C,OAAOu5C,UAAUyD,IAAaA,EAAW,EAC5C,MAAM,IAAI3kC,MACR,4DAA4D2kC,MAIhE,IAAKjB,GAA0B,IAAjBA,EAAMvoD,OAClB,MAAM,IAAI6kB,MACR,kEAAkE0jC,MAItEA,EAAM7oB,MAAK,CAAC1G,EAAgBC,aAC1B,OAAwB,QAAhB,EAAAD,EAAE8vB,sBAAc,QAAI,IAAsB,QAAhB,EAAA7vB,EAAE6vB,sBAAc,QAAI,EAAE,IAG1D,IAAIW,EAAkBiB,GAAsBlB,EAAUjB,GAEtD,MAAMmB,EAAenB,EAAMkB,GACrBqB,EAAYvC,EAAMA,EAAMvoD,OAAS,GACvC,IAGI+qD,EAHAC,EAAgCxB,EAChCyB,GAAqB,OAIJrtD,IAAjB8rD,EAEFqB,EAD4BrB,EAAad,kBAEf,wBACpB,GACA,GAENkC,GACAA,EAAUlC,kBAAoB,wBAE9BmC,EAAW,IAOXC,GAAwBF,aAAS,EAATA,EAAW/B,iBAAkB,EACrDU,EAAkBiB,GAAsBM,EAAuBzC,GAC/DwC,EAAW,GACXE,GAAqB,GAGvB,MAAMC,EAAWC,GACf3E,GAAuBC,EAAe0E,GAElCC,EAAYjB,GAAkB7D,GAAkBL,EAAiBkE,IAEjE,WAAER,EAAU,gBAAEC,EAAe,qBAAEC,EAAoB,UAAEC,GACzDiB,EAASC,EAAuBvB,EAAiBlB,EAAOtC,GAE1D,MAAO,CACL0D,aACA0B,oBAAqBD,EAASzB,GAE9BC,kBACA0B,yBAA0BF,EAASxB,GAEnCE,YAEAD,uBACAoB,qBACAM,mBAAoBzB,EAAUvgD,KAC5B,EACEwgD,cACAjB,iBACAC,iBACAiB,uBACAC,oBACAC,6BACI,CACJsB,qBAAsBN,EAAQnB,GAC9B0B,8BAA+BP,EAAQlB,GAEvC0B,wBAAyBR,EAAQpC,GACjC6C,wBAAyBT,EAAQnC,GAEjC6C,2BAA4BrF,GAC1BN,EACAgE,GAEF4B,gCAAiCtF,GAC/BN,EACAiE,OAKV,CCvHe,SAAS,GACtBjE,GAEA,MAAM6F,EAAYxF,GAAkBL,EAAiB,GAErD,MAAO,CACL0D,WAAY,EACZC,gBAAiB,EAEjByB,oBAAqBS,EACrBR,yBAA0BQ,EAE1BjC,sBAAsB,EACtBoB,oBAAoB,EAEpBnB,UAAW,CACT,CACEC,YAAa,EACbC,qBAAsB,EAEtBlB,eAAgB,EAChBC,eAAgB,EAEhBkB,kBAAmB,EACnBC,uBAAwB,IAG5BqB,mBAAoB,CAClB,CACEC,qBAAsB,IACtBC,8BAA+B,IAE/BC,wBAAyB,IACzBC,wBAAyB,IAEzBC,2BAA4BE,EAC5BD,gCAAiCC,IAIzC,CCzCe,SAASC,GAAkBle,GAMxC,IALA,IAGIrjC,EAHAo3B,EAAIiM,EAAI7tC,OACRgsD,EAAIpqB,EAAIA,EACRxhC,EAAI,EAGDwhC,GAAK,GAEVp3B,EAAmB,YAAV,OADTA,EAAwB,IAApBqjC,EAAI5Z,WAAW7zB,IAAmC,IAAtBytC,EAAI5Z,aAAa7zB,KAAc,GAA2B,IAAtBytC,EAAI5Z,aAAa7zB,KAAc,IAA4B,IAAtBytC,EAAI5Z,aAAa7zB,KAAc,OACzF,YAAZoK,IAAM,IAAmB,QAAW,IAGvEwhD,EAAmB,YAAV,MAAJA,KAA0C,YAAZA,IAAM,IAAmB,QAAW,KADvExhD,EAAmB,YAAV,OADTA,GAAKA,IAAM,OACoC,YAAZA,IAAM,IAAmB,QAAW,KAEvEo3B,GAAK,IACHxhC,EAGJ,OAAQwhC,GACN,KAAK,EACHoqB,IAA8B,IAAxBne,EAAI5Z,WAAW7zB,EAAI,KAAc,GAEzC,KAAK,EACH4rD,IAA8B,IAAxBne,EAAI5Z,WAAW7zB,EAAI,KAAc,EAEzC,KAAK,EAEH4rD,EAAmB,YAAV,OADTA,GAAyB,IAApBne,EAAI5Z,WAAW7zB,OAC2B,YAAZ4rD,IAAM,IAAmB,QAAW,IAM3E,OAFAA,EAAmB,YAAV,OADTA,GAAKA,IAAM,OACoC,YAAZA,IAAM,IAAmB,QAAW,MACvEA,GAAKA,IAAM,MACG,GAAG/hD,SAAS,GAC5B,iBChCA,MAWA,GANiB,CACfgiD,cAAc,EACdC,UAAU,EACVC,YAAa,IAAIxzB,IACjByzB,QATqB,CAACC,EAAWC,IAE1B5iD,OAAOwV,OAAO,CAAC,EAAGmtC,EAAWC,ICFhCC,GAAe,CAACC,EAAYC,IAAe,WAE/C,OADAD,EAAWJ,QAAQK,WAAaA,EACzBD,EAAWJ,WAAWtsD,UAC/B,EAEM4sD,GAAW,IAAI1c,QACR2c,GAAa,SAAoBH,EAAYI,EAAUC,EAAWC,EAAmBC,QACtE,IAAtBD,IACFA,EAAoB,aAGD,IAAjBC,IACFA,EAAe,CAAC,GAIlB,MAAMC,EAAW,SAASA,EAASC,EAASR,GAK1C,YAJmB,IAAfA,IACFA,EAAa,GAAGI,cAGXI,EAAQ,CACbv8C,SAAU,YAAoB67C,GAAaC,EAAYC,GAAcD,EAAWJ,QAChFc,SAAUV,EAAWU,SAEjBC,cAKF,OAJKT,GAASpoC,IAAIsoC,IAChBF,GAASruB,IAAIuuB,EAAU1nC,QAAQmU,KAA0G,wHAAwBozB,gBAAyBD,EAAW9uD,oCAGhMqvD,CACT,EAEAC,YACCF,IACL,EAEA,OAAO,WACL,OAAOE,EAASJ,KAAY9sD,WAAY+sD,EAC1C,CACF,ECxCM,GAAiBnjD,OAAOuZ,UAAUllB,eAClCqvD,GAAQ,IAAIpd,QACH,SAAS,GAAanjB,EAAMC,GACzC,GAAID,IAASC,EACX,OAAO,EAGT,GAAoB,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,EAC3E,OAAO,EAGT,GAAI5sB,MAAMqK,QAAQsiB,IAAS3sB,MAAMqK,QAAQuiB,GAAO,CAE9C,GAAID,EAAK7sB,SAAW8sB,EAAK9sB,OACvB,OAAO,EAGT,IAAK,IAAII,EAAI,EAAGA,EAAIysB,EAAK7sB,OAAQI,IAC/B,GAAIysB,EAAKzsB,KAAO0sB,EAAK1sB,GACnB,OAAO,EAIX,OAAO,CACT,CAAO,CAEL,MAAMitD,EAAO,GAAKxgC,EAGlB,GAAIwgC,IAFS,GAAKvgC,GAEe,MAAZugC,EAAK,IAAuB,oBAATA,EACtC,OAAO,EAIT,IAAIC,EASAC,EASJ,GAhBIH,GAAM9oC,IAAIuI,GACZygC,EAAQF,GAAM15B,IAAI7G,IAElBygC,EAAQ5jD,OAAOC,KAAKkjB,GACpBugC,GAAM/uB,IAAIxR,EAAMygC,IAKdF,GAAM9oC,IAAIwI,GACZygC,EAAQH,GAAM15B,IAAI5G,IAElBygC,EAAQ7jD,OAAOC,KAAKmjB,GACpBsgC,GAAM/uB,IAAIvR,EAAMygC,IAGdD,EAAMttD,SAAWutD,EAAMvtD,OACzB,OAAO,EAIT,IAAK,IAAII,EAAI,EAAGA,EAAIktD,EAAMttD,OAAQI,IAChC,IAAK,GAAeV,KAAKotB,EAAMwgC,EAAMltD,KAAOysB,EAAKygC,EAAMltD,MAAQ0sB,EAAKwgC,EAAMltD,IACxE,OAAO,EAIX,OAAO,CACT,CACF,CCjEA,MAcA,GAdyBosD,GAAc1tD,GAAQuL,IAC7C,IAAImjD,EACJ,MAAMngD,EAAQm/C,EAAWU,WACnBO,EAAY3uD,EAAKuO,EAAOhD,GAAKqjD,IACjCF,EAASE,CAAG,IAOd,OAJK,GAAaD,EAAWpgD,IAC3Bm/C,EAAW97C,SAAS+8C,GAGfD,CAAM,8BCbf,MAMA,GALY,IACiB,oBAAXt+C,QAAoD,mBAAnBy+C,eCGnD,IAAIC,IAA0B,EACvB,SAASC,GAAMvsD,GAEpB,OAAK,iBAA0B,OAAyBssD,IAIxDA,IAA0B,GAGnB,gCAAiB,+BAAmB,YACzC,KAAAE,yBAAwBxsD,GACxBssD,IAA0B,CAC5B,MATS,KAAAE,yBAAwBxsD,EAUnC,CChBA,MAAMysD,GAAQ,GACd,IAAIC,GC4CJ,UCTqBC,GDlCrB,SAA0BvwD,EAAKwwD,GAC7B,IAAIC,EAAY,GACZC,EAAeF,EACnB,MAAM1B,EAAa,CACjB9uD,MAEAwvD,SAAQ,IACCkB,EAGT19C,SAAS+8C,GACPW,EAAeX,EDXN,SAAkBnsD,GAE/B,IAAK,kBAA0B,KAAuB,OAAOusD,IAAM,IAAMvsD,MAGpEysD,GAAMprD,SAASrB,IAAKysD,GAAMvuD,KAAK8B,GAEhC0sD,KACJA,GAAYH,IAAM,KAChB,IAAIQ,EAEJ,KAAOA,EAAUN,GAAMO,SAASD,IAEhCL,GAAY,IAAI,IAEpB,CCDMO,CAAS/B,EAAWgC,OACtB,EAEAC,aACEjC,EAAW97C,SAASw9C,EACtB,EAEAM,SACE,IAAK,IAAIpuD,EAAI,EAAGA,EAAI+tD,EAAUnuD,OAAQI,IACpC+tD,EAAU/tD,GAAGosD,EAAWU,WAE5B,EAEAwB,UAAU1nD,IACRmnD,EAAYA,EAAUhlD,OAAOnC,GACtB,WACLmnD,EAAYA,EAAUziD,QAAOpK,GAAMA,IAAO0F,GAC5C,GAGFmnD,UAAS,IACAA,GAKX,OADA3B,EAAWJ,QEzCW,EAACI,EAAYL,IAAgBjsD,MAAMuO,KAAK09C,GAAahjD,OAAO1I,IAAQkuD,aAAY,CAAC7vD,EAAM8vD,IAAOA,EAAGpC,EAAHoC,CAAe9vD,IAAO,YFyCrH,CAAgB0tD,EAAY,gBAC1CA,CACT,ECPyC,WACvC,MAAMA,EAAayB,MAAoBnuD,WAEvC,GAAI,aAAqBoP,QAAUA,OAAO2/C,6BAA8B,CACtE,MAAMC,EAActC,EAAWJ,QAC/B,IAAI2C,EAEJ,MAAMC,EAAiB3kD,IACrB,MAAMunB,EAASk9B,EAAYzkD,GAE3B,IACE,IAAK0kD,EAAU,CACb,MAAME,EAAsC,mBAAtB,YAAmC,YAAkBzC,GAAc,CAAC,EAC1FuC,EAlDc,EAACvC,EAAYyC,KACnC,MAAMF,EAAW7/C,OAAO2/C,6BAA6BK,QAAQxlD,OAAOwV,OAAO,CACzEvhB,KAAM,SAAS6uD,EAAW9uD,MAC1B6gD,WAAW,GACV0Q,IA8BH,OA5BAF,EAASI,KAAK3C,EAAWU,YACzB6B,EAASL,WAAU3pC,IACjB,GAAqB,aAAjBA,EAAQnlB,KACV,OAAQmlB,EAAQvkB,QAAQZ,MACtB,IAAK,QAGH,OAFA4sD,EAAWiC,kBACXM,EAASI,KAAK3C,EAAWU,YAG3B,IAAK,SAEH,YADA6B,EAASI,KAAK3C,EAAWU,YAG3B,IAAK,WAGH,OAFAV,EAAW97C,SAAS5P,KAAKC,MAAMgkB,EAAQ1X,aACvC0hD,EAASI,KAAK3C,EAAWU,YAG3B,IAAK,gBACL,IAAK,iBAEH,YADAV,EAAW97C,SAAS5P,KAAKC,MAAMgkB,EAAQ1X,aAGtC,GAAqB,WAAjB0X,EAAQnlB,KAAmB,CACpC,IAAI2B,EAAST,KAAKC,MAAMgkB,EAAQvkB,SAChCgsD,EAAW97C,SAASnP,EAAOf,QAC7B,KAEKuuD,CAAQ,EAgBIK,CAAgB5C,EAAYyC,EACzC,CAEAF,EAASM,KAAK,CACZzvD,KAAM4sD,EAAWJ,QAAQK,WACzBjsD,QAAS6J,GACRmiD,EAAWU,WAAY,CAAC,EAAGV,EAAW9uD,IAC3C,CAAE,MAAOkmB,GAET,CAEA,OAAOgO,CAAM,EAGf46B,EAAWJ,QAAU4C,CACvB,CAEA,OAAOxC,CACT,GA/BqByB,OEed,MAAMqB,GAAkB,IAnDxB,MACL/yD,YAAYgzD,GACV,IAAI/iB,EAAQ9vC,UAES,IAAjB6yD,IACFA,EANsB,cASxB7yD,KAAK8yD,OAAS,IAAI/2B,IAElB/7B,KAAK+yD,UAAY,CAAC/xD,EAAKgyD,KACrB,MAAM,aACJxB,EAAY,QACZf,GACEuC,EACElD,EAAa,GAAiB9uD,EAAKwwD,GACnCnB,ETwBe,SAAqBI,EAASX,EAAYM,EAAmBC,GAStF,YAR0B,IAAtBD,IACFA,EAAoB,KAAM,CAAG,SAGV,IAAjBC,IACFA,EAAe,MAGVrjD,OAAOC,KAAKwjD,GAAS1lD,QAAO,CAACC,EAAK8C,KACvC9C,EAAI8C,GAAKmiD,GAAWH,EAAYW,EAAQ3iD,GAAIA,EAAGsiD,EAAmBC,GAAgBrlD,GAC3EA,IACN,CAAC,EACN,CSrC2BioD,CAAYxC,EAASX,GACpC3L,EAAQ,CACZ2L,aACAW,QAASJ,GAGX,OADArwD,KAAK8yD,OAAOnxB,IAAI3gC,EAAKmjD,GACdA,CAAK,EAGdnkD,KAAKkzD,SAAW,SAAUF,EAAOG,QACf,IAAZA,IACFA,EAAUrjB,EAAM+iB,cAGlB,MAAM7xD,EAAM8uC,EAAMsjB,YAAYJ,EAAOG,GAErC,OAAOrjB,EAAMgjB,OAAO97B,IAAIh2B,IAAQ8uC,EAAMijB,UAAU/xD,EAAKgyD,EACvD,EAEAhzD,KAAKqzD,YAAc,SAAUL,EAAOG,QAClB,IAAZA,IACFA,EAAUrjB,EAAM+iB,cAGlB,MAAM7xD,EAAM8uC,EAAMsjB,YAAYJ,EAAOG,GAErCrjB,EAAMgjB,OAAOQ,OAAOtyD,EACtB,EAEAhB,KAAKozD,YAAc,CAACJ,EAAOG,IAAY,GAAGH,EAAMhyD,OAAOmyD,IAEvDnzD,KAAK6yD,aAAeA,CACtB,GC/CW,GAAuB,gBAAoB,CACtDU,eAAgBX,GAChBM,SAAUN,GAAgBM,WACzB,IAAM,ICkBM,SAAS,GAACM,EAAUC,QACf,IAAdA,IACFA,GAAY,GAGd,IACIC,EADAC,EAAW,GAEXC,GAAa,EAmBjB,OAjBe,WACb,GAAIA,GA7BR,SAA2BH,EAAWI,EAAMzxD,GAC1C,GAAa,OAATyxD,GAA0B,OAATzxD,GAAiByxD,EAAKvwD,SAAWlB,EAAKkB,OAAQ,OAAO,EAG1E,GAAImwD,GAA6B,IAAhBI,EAAKvwD,OACpB,OAAOuwD,EAAK,KAAOzxD,EAAK,IAAM,GAAayxD,EAAK,GAAIzxD,EAAK,IAG3D,IAAK,IAAIsB,EAAI,EAAGA,EAAImwD,EAAKvwD,OAAQI,IAC/B,GAAgBmwD,EAAKnwD,KAAItB,EAAKsB,GAAK,OAAO,EAG5C,OAAO,CACT,CAgBsBowD,CAAkBL,EAAWrwD,UAAWuwD,GACxD,OAAOD,EAGT,MAAMK,EAAaP,EAASnmD,MAAMrN,KAAMoD,WAExC,OAAKqwD,GAAa,GAAaM,EAAYL,KAI3CA,EAAaK,EACbH,GAAa,EACbD,EAAWvwD,WALFswD,CAOX,CAGF,CCtBO,SAASM,GAAuB5T,GACrC,MAAM6T,EAA8C,mBAAxB7T,EAAS8T,YAA6B1wD,MAAMqK,QAAQuyC,EAAS+T,cAGzF,OAhCK,WACL,IAAK,IAAIxwD,EAAOP,UAAUE,OAAQ8wD,EAAQ,IAAI5wD,MAAMG,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChFwwD,EAAMxwD,GAAQR,UAAUQ,GAG1B,MAAMswD,EAAaE,EAAMC,MACnBF,EAAe3wD,MAAMqK,QAAQumD,EAAM,IAAMA,EAAM,GAAKA,EACpDE,EAAqB,IAAQ,WACjC,OAAOJ,EAAW7mD,MAAM,KAAMjK,UAChC,IAEMg9C,EAAW,IAAQ,WAEvB,MAAMmU,EAAS,GAEf,IAAK,IAAI7wD,EAAI,EAAGA,EAAIywD,EAAa7wD,OAAQI,IACvC6wD,EAAOzxD,KAAKqxD,EAAazwD,GAAG2J,MAAM,KAAMjK,YAI1C,OAAOkxD,EAAmBjnD,MAAM,KAAMknD,EACxC,IAAG,GAKH,OAFAnU,EAAS8T,WAAaA,EACtB9T,EAAS+T,aAAeA,EACjB/T,CACT,CAKSoU,CAFcP,EAAe7T,EAAS+T,aAAe,CAAC3sC,GAAKA,EAAG,CAACge,EAAG5U,IAAMA,GAC5DqjC,EAAe7T,EAAS8T,WAAa9T,EAE1D,CACA,MAAMx/C,GAAQ,IAAI0yC,QC/BZmhB,GAAiB,KAAe,EAEhCC,GAAmB/jD,GAASA,ECA3B,MAAMgkD,GACVC,GACD,EAAG5gD,eACDA,EAAS,CACP4gD,aACA,EAGOC,GACVC,GACD,EAAG9gD,eACDA,EAAS,CACP8gD,gBACA,EAGOC,GACVC,GACD,EAAGhhD,eACDA,EAAS,CACPghD,cACA,ECtBOxD,GAAiC,CAC5CoD,UAAW,GACXE,aAAc,UACdE,WAAY,IAGR7Q,GCLC,SAAqBpiD,GAC1B,IAKIf,GALA,KACFC,EAAO,GAAE,aACTuwD,EAAY,QACZf,GACE1uD,EAEJ,MAAO,CACDf,UAEF,OAAOA,IAAQA,EAfrB,SAAmBwwD,EAAcf,EAASxvD,GAExC,MAAO,CAACA,EAAM,IADDA,EAAkF,GAA3E+L,OAAOC,KAAKwjD,GAAS1lD,QAAO,CAACC,EAAK8C,IAAM9C,EAAMylD,EAAQ3iD,GAAGP,YAAY,KAChEnJ,KAAKE,UAAUktD,KAAgBxiD,OAAOzD,SAASwb,KAAK,KAC/E,CAY2BkuC,CAAUzD,EAAcf,EAASxvD,GACxD,EAEAuwD,eACAf,UAEJ,CDXcyE,CAAkD,CAC9Dj0D,KAAM,mBACNuwD,gBACAf,QAAO,IAGI0E,GFTN,SAAoBnC,EAAOnjB,GAChC,IAAI,SACFuQ,QACY,IAAVvQ,EAAmB,CAAC,EAAIA,EAC5B,OAAO,SAAuBulB,GAC5B,MAAM,SACJlC,IACE,IAAAtxD,YAAW,KACT,WACJkuD,EAAU,QACVW,GACEyC,EAASF,GACPqC,OAA2Bn0D,IAAbk0D,EACdE,GAAc,IAAA7wD,QAAO2wD,GAC3BE,EAAYrzD,QAAUmzD,EACtB,MAAMG,GAAgB,IAAArpD,UAAQ,IAAMk0C,EDajC,SAA6BA,EAAU0P,EAAY0F,GACxD,IAAKA,EAAU,CACR50D,GAAMgnB,IAAIkoC,IACblvD,GAAM+gC,IAAImuB,EAAY,IAAIxc,SAG5B,MAAMmiB,EAAiB70D,GAAMo2B,IAAI84B,GAMjC,OAJK2F,EAAe7tC,IAAIw4B,IACtBqV,EAAe9zB,IAAIye,EAAU4T,GAAuB5T,IAG/CqV,EAAez+B,IAAIopB,EAC5B,CAEA,OAAO4T,GAAuB5T,EAChC,CC7BmDsV,CAAoBtV,EAAU0P,EAAYuF,GAA4B,OAAbjV,EAAoBqU,GAAiBC,IAAkB,CAACW,EAAavF,IACvK6F,GAAc,IAAAnwD,cAAY,KAC9B,MAAMmL,EAAQuiD,EAASF,GAAOlD,WAAWU,WACzC,OAAO+E,EAAc5kD,EAAO2kD,EAAYrzD,QAAQ,GAC/C,CAACixD,EAAUqC,IAEd,MAAO,EADc,KAAAK,sBAAqB9F,EAAWkC,UAAW2D,EAAaA,GACvDlF,EACxB,CACF,CEdmCoF,CAAW1R,IElBjC2R,GACF,6BADEA,GAEH,6BAFGA,GAGH,4BAIV,IAAYC,GAcAC,GAQAC,GAOAC,GAKAC,IAlCZ,SAAYJ,GACV,2CACA,uEACA,8CACA,0DACA,uDACA,iDACA,yDACA,+DACA,+DACA,4EACA,uDACD,CAZD,CAAYA,KAAAA,GAAoB,KAchC,SAAYC,GACV,gBACA,iBACD,CAHD,CAAYA,KAAAA,GAAmB,KAQ/B,SAAYC,GACV,cACA,sBACA,oBACA,yBACD,CALD,CAAYA,KAAAA,GAAgB,KAO5B,SAAYC,GACV,kCACA,4CACD,CAHD,CAAYA,KAAAA,GAAkB,KAK9B,SAAYC,GACV,0CACA,iCACA,kDACD,CAJD,CAAYA,KAAAA,GAAiB,qBCrCd,SAASz2D,KAAQ,CCDhC,MACE8B,SAAQ,YACR8F,GAAQ,SACRC,ICIK,SAAqBC,GAC1B,MAAMC,EAAe,CAACC,EAAW5H,IAAU4H,EAAU5H,GAS/C6H,GAA4B,IAAAC,eAAcJ,GAChD,SAASD,EAASM,GAIhB,QAHc,IAAAjG,YAAW+F,IACAF,GACFI,EAEzB,CAiCA,MAAO,CACLP,SA9BF,SAAkBxH,GAChB,MAAM,SACJW,KACGoH,GACD/H,EAIEgI,EAASP,EAASM,GAGxB,OAAoB,gBAAoB,WAAgB,KAAMpH,EAASqH,GACzE,EAmBEtG,SAVF,SAAkB1B,GAChB,MAAMiI,GAAU,IAAAnG,YAAW+F,GACrBK,EAAUlI,EAAMY,OAAS+G,EACzBQ,GAAU,IAAAzC,cAAYqC,GAAcG,EAAQD,EAASF,IAAa,CAACE,EAASC,IAClF,OAAoB,gBAAoBL,EAAanG,SAAU,CAC7Dd,MAAOuH,GACNnI,EAAMW,SACX,EAIE8G,WAEJ,CDzDIW,EAAY,KAAM,CACpBhC,KAAM,kDEDO,MAAMrC,GACnBhE,YAAYC,IACV,QAAgBE,KAAM,qBAAqB,IAC3C,QAAgBA,KAAM,SAAS,KAG7B,MAAM8D,EAAU,IACX9D,KAAK8D,SAEV,OAAO,IAAID,GAAe,CACxBC,WACA,IAEJ9D,KAAK8D,QAAUhE,EAAMgE,OACvB,CACAC,OAAOC,GAUL,MATuB,mBAAZA,IACThE,KAAK8D,QAAUE,EAAQhE,KAAK8D,UAEP,iBAAZE,IACThE,KAAK8D,QAAU,IACV9D,KAAK8D,WACLE,IAGAhE,IACT,ECzBa,MAAMiE,WAAyBJ,GAC5ChE,YAAYC,GACVC,MAAMD,IACN,QAAgBE,KAAM,uBAAuB,IAC7C,QAAgBA,KAAM,SAAS,KAC7B,GAAIA,KAAKkE,SAKP,OAAO,KAET,MAAM9D,EAAU,IAAIJ,KAAKI,SACnB+D,EAAW,IAAInE,KAAKmE,UAOpBL,EAAUM,KAAKC,MAAMD,KAAKE,UAAUtE,KAAK8D,UAC/C,OAAO,IAAIG,GAAiB,CAC1B7D,UACA+D,WACAL,WACA,KAEJ,QAAgB9D,KAAM,QAAQE,IACxBF,KAAKkE,WAOTlE,KAAKmE,SAAStB,SAAQ0B,GAAWA,EAAQvE,KAAME,KAC/CF,KAAKkE,UAAW,EAAI,IAEtBlE,KAAKI,QAAUN,EAAMM,SAAW,GAChCJ,KAAKmE,SAAWrE,EAAMqE,UAAY,GAClCnE,KAAKkE,UAAW,CAClB,CACAH,OAAOC,GACL,OAAIhE,KAAKkE,SAKAlE,KAEFD,MAAMgE,OAAOC,EACtB,kBCzDK,MCDMQ,GAAgB9D,IAC3B,MAAMiB,GAAM,IAAA8C,QAAO/D,GAInB,OAHA,IAAAgE,YAAU,KACR/C,EAAIM,QAAUvB,CAAK,GAClB,CAACA,IACGiB,CAAG,ECGL,SAASgD,IAA4B,GAC1CC,EAAE,OACFC,EAAM,cACNC,EAAa,cACbC,EAAa,YACbC,EAAW,eACXC,EAAc,cACdC,IAEA,MAAM,qBACJC,GChBG,WACL,MAAMC,GHDC,IAAAxD,YAAW,MGSlB,MAAO,CACLuD,sBAR2B,UAAerB,GACnC,IAAIG,GAAiB,CAC1B7D,QAASgF,EAAiB3F,8BAC1B0E,SAAUiB,EAAiB5F,oCAC3BsE,aAED,CAACsB,IAIN,CDKMC,GAMEC,EAAUd,GAAcU,GACxBK,EAAQf,GAAcI,GAoC5B,OAnCgB,IAAAY,cAAY9E,IAC1B,MAAM+E,EAAiBN,EAAqB,CAC1CN,SACAE,cAAeA,GAAiBD,EAChCY,WAAY,CACVZ,gBACAE,cACAC,oBAOE7E,EAAU,CACd0E,gBACAE,cACAC,oBACGK,EAAQrD,SAEbwD,EAAerF,QAAQ0C,KAAK1C,GAG5B,MAAMuF,EAAQF,EAAeE,QACzBA,GACFA,EAAMC,KAAK,YAEbL,EAAMtD,QAAQvB,EAAO+E,EAAe,GACnC,CAEHZ,EAAQC,EAAeC,EAAeC,EAAaC,EAEnDE,EAEAG,EAASC,GAEX,6BE9DO,MAAM,GAAU,qBACV,GAAqB,QACrB,GAAc,CAAC,QAAS,QCFtB,SAAS,GAASzF,GAC/B,GAAIA,GAASA,EAAMkG,MAAO,CAExB,GAAI,MAAWlG,EAAMkG,MACnB,OAAOlG,EAAMkG,MAAM,IAGhB,GAAI,SAAUlG,EAAMkG,OAAS,YAAqBlG,EAAMkG,MAAME,MACjE,OAAOpG,EAAMkG,KAEjB,CAEA,MAAO,CACLE,KAAM,GAEV,CCOe,SAAS,GAAOE,EAAgBC,GAC7C,GAA8B,iBAAnBD,EACT,OAtBoBE,EAsBEF,EAtBWG,EAsBKF,EArBjCvG,IACL,MAAMkG,EAAQ,GAASlG,GACvB,GAAIA,GAASA,EAAMwG,IAAgBC,EAAU,CAC3C,MAAMC,EAAQD,EAASzG,EAAMwG,IAC7B,GAAIE,GAASA,EAAMR,EAAME,MAAO,CAC9B,MAAMxF,EAAQ8F,EAAMR,EAAME,MAC1B,GAAIxF,EACF,OAAOA,CAEX,CACF,CAEA,MAAO,EAAE,EAbb,IAAwB4F,EAAaC,EAwBnC,MAAMC,EAAQJ,EACd,OAAOtG,IAEL,MAAMkG,EAAQ,GAASlG,GAEvB,GAAIkG,EAAME,QAAQM,EAAO,CACvB,MAAM9F,EAAQ8F,EAAMR,EAAME,MAC1B,GAAIxF,EACF,OAAOA,CAEX,CACA,MAAO,EAAE,CAEb,CCpCO,MAIM,GAAO,UACP,GAAO,UACP,GAAO,UAMP,GAAO,UACP,GAAO,UACP,GAAO,UAQP,GAAO,UAKP,GAAM,UACN,GAAM,UACN,GAAO,UACP,GAAO,UACP,GAAO,UACP,GAAO,UACP,GAAO,UAqBP,GAAK,UAEL,GAAM,UAKN,GAAM,UAIN,GAAO,UAGP,GAAO,UAEP,GAAO,UACP,GAAO,UAOP,GAAO,wBACP,GAAO,wBAoBP,GAAQ,UAER,GAAQ,UACR,GAAQ,UAER,GAAQ,UAGR,GAAO,UACP,GAAO,UACP,GAAO,UAEP,GAAO,UAKP,GAAM,UCzHnB,SAASkc,GAAMvc,GACbA,EAAM0d,iBACN1d,EAAM8rC,iBACR,CAEA,SAASiqB,GAAM/1D,GADI,IAGbA,EAAMg2D,SAGVz5C,GAAMvc,EACR,CDuI0B,GAAO,CAC/B+G,MAAO,qBAAqB,MAC5BC,KAAM,qBAAqB,QAMG,GAAO,CACrCD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAMV,GAAO,CACpCD,MAAO,gDACPC,KAAM,wCAAwC,QAMf,GAAO,CACtCD,MAAO,6BAA6B,MACpCC,KAAM,6BAA6B,QAMjB,GAAO,CACzBD,MAAO,0BACPC,KAAM,kBAAkB,QAMD,GAAO,CAC9BD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMA,GAAO,CAC/BD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAMT,GAAO,CAC/BD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAMJ,GAAO,CACpCD,MAAO,2BAA2B,MAClCC,KAAM,qCAMe,GAAO,CAC5BD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMG,GAAO,CAClCD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAEV,GAAO,CAC9BD,MAAO,GACPC,KAAM,KAMY,GAAO,CACzBD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMD,GAAO,CAC9BD,MAAO,0BAA0B,MACjCC,KAAM,0BAA0B,QAMR,GAAO,CAC/BD,MAAO,0BAA0B,MACjCC,KAAM,0BAA0B,QAMP,GAAO,CAChCD,MAAO,4BAA4B,MACnCC,KAAM,4BAA4B,QAMb,GAAO,CAC5BD,MAAO,mCAAmC,MAC1CC,KAAM,mCAAmC,QAEvB,GAAO,CACzBD,MAAO,GACPC,KAAM,KAEY,GAAO,CACzBD,MAjOkB,UAkOlBC,KAnOkB,YAqOE,GAAO,CAC3BD,MA9OkB,UA+OlBC,KAjPkB,YAmPD,GAAO,CACxBD,MAAO,GACPC,KAAM,KAEc,GAAO,CAC3BD,MAAO,GACPC,KAAM,KAEa,GAAO,CAC1BD,MAAO,GACPC,KAAM,KC5RR,MAAMivD,GAAQ,CACZC,mBAAoB35C,GACpB45C,iBAAkB55C,GAGlB65C,iBAAkBL,GAClBM,eAAgBN,GAChBO,oBAAqB/5C,GACrBg6C,kBAAmBh6C,GACnBi6C,qBAAsBj6C,GACtBk6C,mBAAoBl6C,GACpBm6C,eAAgBn6C,GAEhBlT,QAASkT,IAELo6C,GAAa,CAAC,ECxBdC,GAAW,2BA4TjB,GA3Te,CAEbC,WAAY,CACV70C,QAAS,CACPA,QAAS,CACPjb,MAAO,gCAAgC,MACvCC,KAAM,gCAAgC,OAExC8vD,MAAO,CACL/vD,MAAO,wCAAwC,MAC/CC,KAAM,wCAAwC,OAEhD8R,OAAQ,CACN/R,MAAO,wCAAwC6vD,MAC/C5vD,KAAM,wCAAwC,OAEhDy2B,SAAU,CACR12B,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzC+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAG3CiwD,QAAS,CACPj1C,QAAS,CACPjb,MAAO,mCAAmC,MAC1CC,KAAM,mCAAmC,OAE3C8vD,MAAO,CACL/vD,MAAO,2CAA2C,MAClDC,KAAM,2CAA2C,OAEnD8R,OAAQ,CACN/R,MAAO,2CAA2C,MAClDC,KAAM,2CAA2C,OAEnDy2B,SAAU,CACR12B,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzC+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAG3CugD,QAAS,CACPvlC,QAAS,CACPjb,MAAO,qCAAqC,MAC5CC,KAAM,qCAAqC,OAE7C8vD,MAAO,CACL/vD,MAAO,6CAA6C,MACpDC,KAAM,6CAA6C,OAErD8R,OAAQ,CACN/R,MAAO,6CAA6C,MACpDC,KAAM,6CAA6C,OAErDy2B,SAAU,CACR12B,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzC+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAG3CkwD,OAAQ,CACNl1C,QAAS,CACPjb,MAAO,oCAAoC,MAC3CC,KAAM,oCAAoC,OAE5C8vD,MAAO,CACL/vD,MAAO,4CAA4C,MACnDC,KAAM,4CAA4C,OAEpD8R,OAAQ,CACN/R,MAAO,4CAA4C,MACnDC,KAAM,4CAA4C,OAEpDy2B,SAAU,CACR12B,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzC+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAG3CmwD,KAAM,CACJn1C,QAAS,CACPjb,MAAO,4CACPC,KAAM,6CAER+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAG3CowD,OAAQ,CACNp1C,QAAS,CACPjb,MAAO,4CACPC,KAAM,6CAER8vD,MAAO,CACL/vD,MAAO,+CAA+C,MACtDC,KAAM,+CAA+C,OAEvD8R,OAAQ,CACN/R,MAAO,+CAA+C6vD,MACtD5vD,KAAM,+CAA+C,OAEvDy2B,SAAU,CACR12B,MAAO,4CACPC,KAAM,6CAER+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAG3C,cAAe,CACbgb,QAAS,CACPjb,MAAO,4CACPC,KAAM,6CAER+vD,SAAU,CACRhwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,OAEzCgwD,cAAe,CACbjwD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,SAI7C6S,MAAO,CACLmI,QAAS,CACPA,QAAS,CACPjb,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAE1B8R,OAAQ,CACN/R,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAE1By2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAGrCiwD,QAAS,CACPj1C,QAAS,CACPjb,MAAO,0BAA0B,MACjCC,KAAM,0BAA0B,OAElCy2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAGrCugD,QAAS,CACPvlC,QAAS,CACPjb,MAAO,kCAAkC,MACzCC,KAAM,kCAAkC,OAE1Cy2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAGrCkwD,OAAQ,CACNl1C,QAAS,CACPjb,MAAO,0BAA0B,MACjCC,KAAM,0BAA0B,OAElCy2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAGrCmwD,KAAM,CACJn1C,QAAS,CACPjb,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAE1B8vD,MAAO,CACL/vD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAE1B8R,OAAQ,CACN/R,MAAO,0BAA0B,MACjCC,KAAM,0BAA0B,OAElCy2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAGrCowD,OAAQ,CACNp1C,QAAS,CACPjb,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAE1B8R,OAAQ,CACN/R,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAE1By2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAGrC,cAAe,CACbgb,QAAS,CACPjb,MAAO,yBAAyB,MAChCC,KAAM,yBAAyB,OAEjC8vD,MAAO,CACL/vD,MAAO,iCACPC,KAAM,yBAAyB,OAEjC8R,OAAQ,CACN/R,MAAO,0BACPC,KAAM,kBAAkB,OAE1By2B,SAAU,CACR12B,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnC+vD,SAAU,CACRhwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OAEnCgwD,cAAe,CACbjwD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,UCrSnCqwD,GAAU,CACdr1C,QAAY,GNAgB,GMAnB,KAETs1C,QAAY,GNFgB,GMEnB,KACT1O,KAAM,QAEF2O,GAAc,CAClBv1C,QAASq1C,GAAQr1C,QACjBs1C,QAASD,GAAQC,QACjB1O,KAAM,WAEFzyC,GAAU,CAEd6L,QAAS,SACTs1C,QAAS,SACT1O,KAAM,KAEF4O,GAAoB,CAExBF,QAAS,QACTt1C,QAAS,QACT4mC,KAAM,KAEF9nC,GAAgB,CACpBkB,QAAS,SACTs1C,QAAS,SACT1O,KAAM,YAEF6O,GACK,QADLA,GAEE,QAER,SAASC,IAAS,MAChB55B,EAAK,IACLn9B,EAAG,KACHkF,IAGA,OADai4B,EAAMn9B,IAAQm9B,EAAM9b,SACrBnc,EACd,CACA,SAAS8xD,IAAU,WACjBC,EAAU,IACVj3D,EAAG,KACHkF,IAEA,MAAO,CACLgxD,WAAYa,GAAS,CACnB55B,MAAO+5B,GAAOhB,WAAWe,GACzBj3D,MACAkF,SAGFgU,MAAO,GAAG69C,GAAS,CACjB55B,MAAO+5B,GAAOh+C,MAAM+9C,GACpBj3D,MACAkF,sBAGN,CAoHO,SAASiyD,IAAa,QAC3BC,IAEA,OAAO,SAAI,CACT3gD,QAAS,OAGT4gD,OAAoB,SAAZD,EAAqB,EAAIN,GACjCQ,SAAU,EACVx3C,WAAY,EACZy3C,UAAW,SACX9+C,SAAU,EACVC,WAAY,EACZ8+C,WAAY,QAEhB,CAGO,SAASC,IAAgB,QAC9BL,IAEA,OAAO,SAAI,CAETC,OAAoB,SAAZD,EAAqB,EAAIN,GAEjCQ,SAAU,EACVx3C,WAAY,EAEZhH,SAAU,SACVC,aAAc,WACdC,WAAY,UAEhB,CASO,MAAM0+C,GAAa,CAIxBrwD,SAAU,WACVkJ,KAAM,EACNE,IAAK,EACLD,MAAO,EACPF,OAAQ,EAERmG,QAAS,OACTkhD,eAAgB,SAChBC,WAAY,UCtORC,GAA+B,CACnC,MAAO,CACLpwD,cAAe,SAGnB,GAA4B,cAAiB,SAAoB3I,EAAO6B,GACtE,MAAM,WACJs2D,EAAa,UAAS,UACtBa,EAAS,QACTV,EAAU,UAAS,UACnBl6B,GAAY,EAAK,WACjBj0B,GAAa,EAAK,mBAClB8uD,GAAqB,EAAK,WAC1BC,GAAa,EAAK,WAClBC,EAAU,UACVC,EAAS,SACTz4D,EAAQ,UACRM,EAAS,KACTo4D,EAAI,QACJC,EAAO,SACPh5B,EAAW,EAAC,KACZl9B,GAAQi2D,OAAkBj4D,EAAX,UACfyI,YAAa0vD,EAAsB35D,GACnCgK,QAAS4vD,EAAkB55D,GAG3B0b,UAAWxb,GAAYu5D,EAAO,IAAM,UAAQ,OAC5ChwD,EAAM,gBACNowD,EAAe,iBAEfn0D,KACGirC,GACDvwC,EACE05D,GAAS,IAAA/0D,UACTyX,GAAS,IAAA1W,cAAY2W,IACzBq9C,EAAOv3D,QAAUka,EACN,MAAPxa,IAGe,mBAARA,EAMXA,EAAIM,QAAUka,EALZxa,EAAIwa,GAKY,GACjB,CAACq9C,EAAQ73D,KC5CC,SAAsBA,EAAKu8B,GACxC,MAAMu7B,GAAe,IAAAh1D,SAAO,IAC5B,IAAAC,YAAU,KACJ/C,GAAO83D,EAAax3D,SAAWi8B,GAAav8B,EAAIM,SAClDN,EAAIM,QAAQw9B,QAEdg6B,EAAax3D,SAAU,CAAK,GAC3B,CAACi8B,EAAWv8B,GACjB,CDuCE+3D,CAAaF,EAAQt7B,GACrB,MAAMy7B,GAAqB,IAAA/3D,YAAW,MAKhC8H,EAAU/E,GAA4B,CAC1CC,IALkB,IAAAY,cAAY,CAAC+D,EAAG9D,KAClCk0D,GAAsBA,EAAmBC,WAAWL,EAAiBhwD,EAAEswD,WACvEP,EAAgB/vD,EAAG9D,EAAe,GACjC,CAAC6zD,EAAiBK,EAAoBJ,IAGvC10D,OAAQ,UACRC,cAAe,SACfE,YAAa,mBACbC,eAAgB,SAChBC,cAAeE,IAIXuE,GAAc,IAAAnE,cAAYnF,IAC9BA,EAAM0d,iBACNs7C,EAAoBh5D,EAAM,GACzB,CAACg5D,KAGJ,IAAA30D,YAAU,KACR,MAAMuhC,EAAKuzB,EAAOv3D,QACdgI,GAAcg8B,GAAMA,IAAO57B,SAASi1B,eACtC2G,EAAG4F,MACL,GACC,CAAC5hC,IAGJ,MAAM6vD,EAAavuD,QAAQ6tD,GACrBW,GAAU,SDkIX,UAAsB,WAC3BD,IAEA,OAAO,SAAI,CACT9nD,QAAS8nD,EAAa,EAAI,EAC1BjnD,WAAY,gBAEhB,CCzIsBmnD,CAAa,CAC/BF,gBAEIG,GAAiBhwD,IAAe6vD,EAOtC,IAAII,EAAiB,CAAC,EAQtB,OAPIlB,GAAc/uD,GAA6B,YAAfguD,KAC9BiC,EAAiB,CACf,wBAAyB,CACvBC,QAAWnB,GAAc/uD,EAAa,yBAAyB,MAAU,kCAAkC,OAAnG,kBAIP,SAAI,KAAW,MAAM,SAAIrK,GAAW,QAAS,CAAC,EAAGywC,EAAM,CAC5D9tC,IAAK,CAACu2D,EAAWmB,EAAgB,KAAOpB,IACxC93D,UAAWA,EACXY,IAAKua,EACLxS,QAASA,EACTC,YAAaA,EACbm0B,SAAU7zB,EACVkvD,KAAMc,EAAgBd,OAAOj4D,EAG7B,qBAAoB44D,QAAoB54D,EACxC,cAAeiI,EACfjG,KAAMA,EAKNk9B,SAAUn2B,GAAc,EAAIm2B,GHzGjB,UAAqB,cAClC65B,IAEA,OAAOA,EAAgBjD,GAAaV,EACtC,CGsGK8D,CAAY,CACbH,mBACGhB,GAAa,SAAI,OAAQ,CAC5B12D,IAAK,CAACw3D,EAAS5B,GAAa,CAC1BC,cAEDa,GAAc,KAAMx4D,GAAW,SAAI,OAAQ,CAC5C8B,IAAK,CAACw3D,EAAStB,GAAgB,CAC7BL,cAED33D,GAAY,KAAMy4D,GAAY,SAAI,OAAQ,CAC3C32D,IAAK,CAACw3D,EAAS5B,GAAa,CAC1BC,cAEDc,GAAa,KAAME,GAAU,SAAI,OAAQ,CAC1C72D,IAAK,CAACm2D,GAAYwB,IACjBd,GAAW,MAChB,IEhJMiB,GAAiC,oBAAdrpB,WAA6BA,UAAUspB,UAAUx2C,cAAc+M,QAAQ,YAAc,EAUxG0pC,GAAsB,OAAyB,cAAiB,UACpE5wD,YAAa0vD,EAAsB35D,GACnC86D,UAAWC,EAAoB/6D,MAC5B2wC,GACF1uC,GACD,MAAM,KACJuE,GACE,KACE+xD,EAAa5nB,EAAK4nB,YAAc,UAChCG,EAAU/nB,EAAK+nB,SAAW,UAC1BW,EAAqBxtD,QAAQ8kC,EAAK0oB,oBAClCC,EAAaztD,QAAQ8kC,EAAK2oB,YAC1B0B,EC7BO,UAA6B,SAC1Cj6D,EAAQ,WACRw4D,EAAU,UACVC,IAEA,QAAIz4D,KAGAw4D,GAAeC,KAGdD,IAAcC,GAIrB,CDc2ByB,CAAoBtqB,IACtCtzB,EAAU69C,IAAe,IAAA9uD,WAAS,GAInCnC,GAAc,IAAAnE,cAAYnF,IAC9Bg5D,EAAoBh5D,GAChBg6D,IACFO,GAAY,EACd,GACC,CAACvB,EAAqBuB,IACnBJ,GAAY,IAAAh1D,cAAYnF,IAC5Bo6D,EAAkBp6D,GACdg6D,IACFO,GAAY,EACd,GACC,CAACH,EAAmBG,IACjB9B,GAAY,IAAA5sD,UAAQ,IHkCrB,UAAgB,WACrB+rD,EAAU,QACVG,EAAO,KACPlyD,EAAI,WACJ8yD,EAAU,mBACVD,EAAkB,iBAClB2B,IAEA,MAAMG,EAAa7C,GAAU,CAC3BC,aACAj3D,IAAKg4D,EAAa,WAAa,UAC/B9yD,SAEF,MAAO,CAEL0yD,WAAY,WACZkC,YAAa,EACbthD,aNlF8B,EMmF9BF,UAAW,aACX7B,QAAS,cACTgC,SAAU,UACVshD,UAAW,SAEXC,WAAY,UACZC,WAAY,IAEZ1hD,SAAU,OAEVlR,SAAU,WACV6yD,UAAW,SACXC,eAAgB,OAChBtoD,WAAY,kFACZmH,WAAY,YAET6gD,EACHr7C,OAAQ,UACR1E,OAAQ48C,GAAQU,GAChB1+C,WAAYk+C,GAAYQ,GACxB5hD,QAASkkD,EAAmB7C,GAAkBO,GAAW5hD,GAAQ4hD,GACjEj3C,cAAeA,GAAci3C,GAC7Bv9C,MAAOk+C,EAAqB,OAAS,OAErCJ,eAAgB,SAKhB,YAAa,IACRkC,GAEL,UAAW,IACN7C,GAAU,CACXC,aACAj3D,IAAKg4D,EAAa,WAAa,QAC/B9yD,SAEFi1D,eAAiBnC,GAA8B,SAAff,GAAwC,gBAAfA,EAA8C,UAAd,YAEzFmD,mBAAoB,aAGtB,WAAY,IACPpD,GAAU,CACXC,aACAj3D,IAAKg4D,EAAa,WAAa,SAC/B9yD,SAGFk1D,mBAAoB,UAGtB,mCAAoC,IAC/BpD,GAAU,CACXC,aACAj3D,IAAKg4D,EAAa,WAAa,SAC/B9yD,SAGFk1D,mBAAoB,UAMtB,cAAe,IAEVpD,GAAU,CACXC,aACAj3D,IAAK,WACLkF,SAEFsZ,OAAQ,cACR27C,eAAgB,QAElB,6BAA8B,CAC5B37C,OAAQ,UACR27C,eAAgB,QAGlB,sGAAuG,IAClGnD,GAAU,CACXC,aACAj3D,IAAKg4D,EAAa,WAAa,UAC/B9yD,UAGJ,sBAAuB,CACrBm1D,OAAQ,EACRhD,OAAQ,EACR7hD,QAAS,GAGf,CGlJkC8kD,CAAO,CACrCrD,aACAG,UACAlyD,OACA8yD,aACAD,qBACA2B,sBACE,CAACzC,EAAYG,EAASlyD,EAAM8yD,EAAYD,EAAoB2B,IAChE,OAAoB,gBAAoB,IAAY,QAAS,CAAC,EAAGrqB,EAAM,CACrE1uC,IAAKA,EACLm3D,UAAWA,EAIX,2BAA0B/7C,QAAkB7b,EAC5CyI,YAAaA,EACb6wD,UAAWA,IAEf,KAGAD,GAAO1wD,YAAc,SACrB,YExDM0xD,GAAuB,EAC3BC,iBACA/6D,cAGE,gBAACg7D,GAAY,CAACxD,WAAY,OAAQvuD,QAAS,IAAM8xD,KAC9C/6D,GAKDg7D,IAAe,OAAO,GAAO;WACxBhoB;;;;;;;aAOEC;;ECxBE,MAAM,GACnB7zC,YAAYC,IACV,QAAgBE,KAAM,qBAAqB,IAE3C,QAAgBA,KAAM,SAAS,KAG7B,MAAM8D,EAAU,IAAK9D,KAAK8D,SAE1B,OAAO,IAAI,GAAe,CACxBA,WACA,IAGJ9D,KAAK8D,QAAUhE,EAAMgE,OACvB,CAEAC,OAAOC,GAWL,MAVuB,mBAAZA,IACThE,KAAK8D,QAAUE,EAAQhE,KAAK8D,UAGP,iBAAZE,IACThE,KAAK8D,QAAU,IAAK9D,KAAK8D,WACpBE,IAIAhE,IACT,EC5Ba,MAAM,WAAyB,GAC5CH,YAAYC,GACVC,MAAMD,IAEN,QAAgBE,KAAM,uBAAuB,IAE7C,QAAgBA,KAAM,SAAS,KAC7B,GAAIA,KAAKkE,SAMP,OAAO,KAGT,MAAM9D,EAAU,IAAIJ,KAAKI,SACnB+D,EAAW,IAAInE,KAAKmE,UAOpBL,EAAUM,KAAKC,MAAMD,KAAKE,UAAUtE,KAAK8D,UAC/C,OAAO,IAAI,GAAiB,CAC1B1D,UACA+D,WACAL,WACA,KAGJ,QAAgB9D,KAAM,QAAQE,IACxBF,KAAKkE,WASTlE,KAAKmE,SAAStB,SAAQ0B,GAAWA,EAAQvE,KAAME,KAC/CF,KAAKkE,UAAW,EAAI,IAGtBlE,KAAKI,QAAUN,EAAMM,SAAW,GAChCJ,KAAKmE,SAAWrE,EAAMqE,UAAY,GAClCnE,KAAKkE,UAAW,CAClB,CAEAH,OAAOC,GACL,OAAIhE,KAAKkE,SAMAlE,KAGFD,MAAMgE,OAAOC,EACtB,ECnEK,SAAS,KACd,MAAMoB,GCDC,IAAAxD,YAAW,MDSlB,MAAO,CACLuD,sBAR2B,UAAerB,GACnC,IAAI,GAAiB,CAC1B1D,QAASgF,EAAiB3F,8BAC1B0E,SAAUiB,EAAiB5F,oCAC3BsE,aAED,CAACsB,IAIN,CEdO,MAAM,GAAgB1E,IAC3B,MAAMiB,GAAM,IAAA8C,QAAO/D,GAInB,OAHA,IAAAgE,YAAU,KACR/C,EAAIM,QAAUvB,CAAK,GAClB,CAACA,IACGiB,CAAG,GCFVH,SAAQ,GACR8F,SAAQ,GACRC,SAAQ,ICIH,SAAqBC,GAC1B,MAAMC,EAAe,CAACC,EAAW5H,IAAU4H,EAAU5H,GAS/C6H,GAA4B,IAAAC,eAAcJ,GAChD,SAASD,EAASM,GAIhB,QAHc,IAAAjG,YAAW+F,IACAF,GACFI,EAEzB,CAiCA,MAAO,CACLP,SA9BF,SAAkBxH,GAChB,MAAM,SACJW,KACGoH,GACD/H,EAIEgI,EAASP,EAASM,GAGxB,OAAoB,gBAAoB,WAAgB,KAAMpH,EAASqH,GACzE,EAmBEtG,SAVF,SAAkB1B,GAChB,MAAMiI,GAAU,IAAAnG,YAAW+F,GACrBK,EAAUlI,EAAMY,OAAS+G,EACzBQ,GAAU,IAAAzC,cAAYqC,GAAcG,EAAQD,EAASF,IAAa,CAACE,EAASC,IAClF,OAAoB,gBAAoBL,EAAanG,SAAU,CAC7Dd,MAAOuH,GACNnI,EAAMW,SACX,EAIE8G,WAEJ,CDzDI,EAAY,KAAM,CACpBrB,KAAM,YAGR,IACE1E,SAAQ,GACR8F,SAAQ,IEZJo0D,GAAmB,CACvBt0D,MAAO,CACL8vD,WAAY,8BAA8BvjB,KAC1CgoB,gBAAiB,sCAAsC,KACvDC,iBAAkB,sCAAsC,KACxDC,kBAAmB,mCAAmCh1D,KACtDi1D,uBAAwB,2CAA2CroB,KACnEsoB,wBAAyB,2CAA2CxoB,KACpEyoB,mBAAoB,8BAA8BpoB,KAClDqoB,WAAY,0BAA0BtoB,KACtCuoB,YAAa,mCACbC,UAAW,0BAA0Bt1D,KACrCw0D,OAAQ,0BAA0BxnB,KAClCuoB,YAAa,0BAA0BvoB,KACvCwoB,eAAgB,iCAAiCzoB,KACjD0oB,YAAa,4BAA4B,MAE3Cj1D,KAAM,CACJ6vD,WAAY,8BAA8BhjB,KAC1CynB,gBAAiB,sCAAsC1nB,KACvD2nB,iBAAkB,sCAAsC,KACxDC,kBAAmB,mCAAmCh1D,KACtDi1D,uBAAwB,2CAA2CtoB,KACnEuoB,wBAAyB,2CAA2C,KACpEC,mBAAoB,8BAA8B9nB,KAClD+nB,WAAY,0BAA0B/nB,KACtCgoB,YAAa,mCACbC,UAAW,0BAA0BjoB,KACrCmnB,OAAQ,kCACRe,YAAa,0BAA0BpoB,KACvCqoB,eAAgB,iCAAiCnoB,KACjDooB,YAAa,4BAA4B9oB,OClBvC,GCVS,WAAiB,EDW1B+oB,IAAqB,SAAI,CAC7B/lD,QAAS,sDAELgmD,IAAc,SAAI,CACtB/kD,QAAS,OACT6B,UAAW,aACXjR,SAAU,WACVuwD,WAAY,aACZoC,WrFC8B,uIqFC9B,mBAAoB,CAClB9gD,MAAO,2BAA2B45B,KAClCt0B,OAAQ,iBAGNi9C,IAAmB,SAAI,CAC3BviD,MAAO,kBAAkB65B,OAErB2oB,IAAkB,SAAI,CAC1BxiD,MAAO,kBAAkBjT,OAErB01D,IAAc,SAAI,CACtBllD,QAAS,OASToD,MAAO,OACPC,OAAQ,OAERu9C,OAAQ,yBACRhwD,SAAU,WACVuwD,WAAY,SACZD,eAAgB,SAChB73C,WAAY,EACZlY,gBAAiB,gCAGjByyD,OAAQ,qDACR7hD,aAAc,MACdojD,cAAe,OACfC,QAAS,OAOT,2BAA4B,0BAC5B,uBAAwB,sBACxB,oBAAqB,2BACrB,sBAAuB,EAGvB5qD,UAAW,sBACXY,WAAY,mEACZsO,cAAe,MACf27C,iBAAkB,OAClB,WAAY,CAEVjiD,MAAO,qBACPC,OAAQ,qBACRzS,SAAU,WACV6uD,WAAY,yBACZ19C,aAAc,MACdvL,QAAS,KACT+D,QAAS,2BACTa,WAAY,+DAEd,UAAW,CACT,2BAA4B,gCAC5B,uBAAwB,2BAE1B,WAAY,CACV,2BAA4B,kCAE9B,UAAW,CACT,uBAAwB,6BAE1B,YAAa,CACX,2BAA4B,kCAC5B,uBAAwB,kCACxB,sBAAuB,GAEzB,kBAAmB,CACjB,2BAA4B,wCAC5B,uBAAwB,yCAE1B,mBAAoB,CAClB,2BAA4B,yCAC5B,uBAAwB,4BACxB,oBAAqB,2BAEvB,kBAAmB,CACjB,uBAAwB,6BAG1B,2CAA4C,CAC1C,uBAAwB,wBAE1B,8FAA+F,CAC7F2M,OAAQ,cACR,2BAA4B,mCAC5B,uBAAwB,+BACxB,oBAAqB,6BAEvB,qBAAsB,CACpB,uBAAwB,iBAItBu9C,IAA6B,IAAAr7D,aAAW,SAAe5B,EAAO6B,GAClE,MAAM,UACJq7D,EAAS,WACT/yD,GAAa,EAAK,WAClBkiB,EAAU,UACV8wC,GAAY,EAAK,UACjBC,GAAY,EAAK,MACjBr7C,EAAK,KACL3b,EAAI,KACJjF,EAAI,SACJmwB,EAAW,GAAI,MACf1wB,EAAK,OACLyI,EAAM,iBACN/D,KAEGirC,GACDvwC,EACEq9D,EE1ID,UAAqC,GAC1Cv4D,EAAE,OACFC,EAAM,cACNC,EAAa,cACbC,EAAa,YACbC,EAAW,eACXC,EAAc,cACdC,IAEA,MAAM,qBACJC,GACE,KAKEG,EAAU,GAAcJ,GACxBK,EAAQ,GAAcX,GAiC5B,OAhCgB,IAAAY,cAAY9E,IAC1B,MAAM+E,EAAiBN,EAAqB,CAC1CN,SACAE,cAAeA,GAAiBD,EAChCY,WAAY,CACVZ,gBACAE,cACAC,oBAME7E,EAAU,CACd0E,gBACAE,cACAC,oBACGK,EAAQrD,SAEbwD,EAAerF,QAAQ0C,KAAK1C,GAE5B,MAAMuF,EAAQF,EAAeE,QAEzBA,GACFA,EAAMC,KAAK,YAGbL,EAAMtD,QAAQvB,EAAO+E,EAAe,GACnC,CACHZ,EAAQC,EAAeC,EAAeC,EAAaC,EACnDE,EACAG,EAASC,GAEX,CFuF4B,CAA4B,CACpDX,GAAIwsB,EACJvsB,OAAQ,UACRK,cAAeE,EACfN,cAAe,QACfE,YA7IgB,kBA8IhBC,eA7ImB,UA+Ifm4D,GAAwB,IAAAlxD,UAAQ,KAAM,SDxH/B,SAAkChG,GAC/C,MAAMm3D,EAAc3B,GAAiBx1D,GACrC,MAAO,CACL,qBAAsBm3D,EAAYnG,WAClC,4BAA6BmG,EAAYzB,iBACzC,6BAA8ByB,EAAYxB,kBAC1C,oCAAqCwB,EAAYtB,wBACjD,mCAAoCsB,EAAYvB,uBAChD,8BAA+BuB,EAAYrB,mBAC3C,2BAA4BqB,EAAY1B,gBACxC,iBAAkB0B,EAAYhC,OAC9B,0BAA2BgC,EAAYhB,eACvC,uBAAwBgB,EAAYjB,YACpC,uBAAwBiB,EAAYf,YACpC,qBAAsBe,EAAYlB,UAClC,sBAAuBkB,EAAYpB,WACnC,uBAAwBoB,EAAYnB,YACpC,kBAAmB,yBAAyBz1D,KAEhD,CCqGkD62D,CAAyBp3D,KAAQ,CAACA,IAClF,OAEE,SAAI,QAAS,CACX,cAAeiD,GAAU,GAAGA,iBAC5B,gBAAiBc,EAAa,YAAS/I,EAGvCqB,IAAK,CAACi6D,GAAsB,UAATt2D,EAAmBu2D,GAAmBC,MACxD,SAAI,SAAS,QAAS,CAAC,EAAGrsB,EAAM,CACjC,aAAc2sB,EACd92B,QAASg3B,EACTp/B,SAAU7zB,EACVhJ,KAAMA,EACNmwB,SAAU+rC,EACVI,SAAUpxC,EACVjpB,KAAM,QACNxC,MAAOA,EACP,cAAeyI,GAAU,GAAGA,iBAG5B,eAAgB8zD,EAAY,YAAS/7D,EAGrCqB,IAAK,CAACo6D,GAAaS,GACnBz7D,IAAKA,KACFkgB,GAAQ,SAAI,OAAQ,CACvBtf,IAAKg6D,IACJ16C,GAAS,KAEhB,IAmBA,IAR2B,IAAA9Y,OAAmB,IAAArH,aAAW,SAAe5B,EAAO6B,GAC7E,OAAO,SAAI,YAAsB,MAAM,EACrCuE,WACI,SAAI62D,IAAe,QAAS,CAAC,EAAGj9D,EAAO,CAC3C6B,IAAKA,EACLuE,KAAMA,MAEV,KG5LMs3D,GAAwB,EAC5BC,eACAC,6BAEA,MAAM3V,EAAOG,KACPyV,EAAY9U,OACX,aAAEiM,IAAgB,mBAAED,IAAwBM,KAE7CyI,EAAwBv9D,IACvBw0D,EAAmBx0D,EAAMoJ,OAAO/I,MAAuB,EAG9D,OACE,gCACE,gBAACm9D,GAAa,KACZ,gBAAC,GAAgB,CACflvD,GAAG,8BACHk4C,eAAe,yCACfC,YAAY,yCAIhB,gBAACgX,GAAa,KACZ,gBAAC,GAAK,CACJp9D,MAAO,UACPmhB,MAAOkmC,EAAKK,cAAc,CACxBz5C,GAAI,4BACJk4C,eAAgB,UAChBC,YAAa,sDAEf7lD,KAAK,8BACLkI,OAAO,sCACP+zD,UAA4B,YAAjBpI,EACX1jC,SAAUwsC,IAEZ,gBAACG,GAAmB,KAClB,gBAAC,GAAK,CACJr9D,MAAO,SACPmhB,MAAOkmC,EAAKK,cAAc,CACxBz5C,GAAI,2BACJk4C,eAAgB,WAChBC,YAAa,qDAEf7lD,KAAK,8BACLkI,OAAO,qCACP+zD,UAA4B,WAAjBpI,EACX1jC,SAAUwsC,MAKfD,GACC,gBAACK,GAAe,KACd,gBAACzC,GAAoB,CACnBC,eAAgB,KACdkC,GAAwBD,EAAa,GAGtCA,EACC,gBAAC,GAAgB,CACf9uD,GAAG,mBACHk4C,eAAe,uBACfC,YAAY,wDAGd,gBAAC,GAAgB,CACfn4C,GAAG,mBACHk4C,eAAe,sBACfC,YAAY,gDAOzB,EAGG+W,GAAgB,MAAS;;;;;;;;;;IAU3B/H;;;;;;EAQEmI,GAAoB,mHAMbj3D,mIAQP8uD,wLAeAA,4JAOgBjvD,mJAOMA,6EAGUA,yGAIRA,2CAM1BivD,gCAKEgI,GAAgB,OAAU;IAC5BG;;;;IAIAnI;;;;;;;;;EAWEiI,GAAsB,OAAU;IAClCE;;;;IAIAnI;;;EAKEkI,GAAkB,OAAU;;;;;;;MAO5BlI;;;;;;;kBCtMS,MAAM,GACnBj2D,YAAYC,IACV,QAAgBE,KAAM,qBAAqB,IAC3C,QAAgBA,KAAM,SAAS,KAG7B,MAAM8D,EAAU,IACX9D,KAAK8D,SAEV,OAAO,IAAI,GAAe,CACxBA,WACA,IAEJ9D,KAAK8D,QAAUhE,EAAMgE,OACvB,CACAC,OAAOC,GAUL,MATuB,mBAAZA,IACThE,KAAK8D,QAAUE,EAAQhE,KAAK8D,UAEP,iBAAZE,IACThE,KAAK8D,QAAU,IACV9D,KAAK8D,WACLE,IAGAhE,IACT,ECzBa,MAAM,WAAyB,GAC5CH,YAAYC,GACVC,MAAMD,IACN,QAAgBE,KAAM,uBAAuB,IAC7C,QAAgBA,KAAM,SAAS,KAC7B,GAAIA,KAAKkE,SAKP,OAAO,KAET,MAAM9D,EAAU,IAAIJ,KAAKI,SACnB+D,EAAW,IAAInE,KAAKmE,UAOpBL,EAAUM,KAAKC,MAAMD,KAAKE,UAAUtE,KAAK8D,UAC/C,OAAO,IAAI,GAAiB,CAC1B1D,UACA+D,WACAL,WACA,KAEJ,QAAgB9D,KAAM,QAAQE,IACxBF,KAAKkE,WAOTlE,KAAKmE,SAAStB,SAAQ0B,GAAWA,EAAQvE,KAAME,KAC/CF,KAAKkE,UAAW,EAAI,IAEtBlE,KAAKI,QAAUN,EAAMM,SAAW,GAChCJ,KAAKmE,SAAWrE,EAAMqE,UAAY,GAClCnE,KAAKkE,UAAW,CAClB,CACAH,OAAOC,GACL,OAAIhE,KAAKkE,SAKAlE,KAEFD,MAAMgE,OAAOC,EACtB,ECzDK,MCDM,GAAgBtD,IAC3B,MAAMiB,GAAM,IAAA8C,QAAO/D,GAInB,OAHA,IAAAgE,YAAU,KACR/C,EAAIM,QAAUvB,CAAK,GAClB,CAACA,IACGiB,CAAG,ECGL,SAAS,IAA4B,GAC1CiD,EAAE,OACFC,EAAM,cACNC,EAAa,cACbC,EAAa,YACbC,EAAW,eACXC,EAAc,cACdC,IAEA,MAAM,qBACJC,GChBG,WACL,MAAMC,GHDC,IAAAxD,YAAW,MGSlB,MAAO,CACLuD,sBAR2B,UAAerB,GACnC,IAAI,GAAiB,CAC1B1D,QAASgF,EAAiB3F,8BAC1B0E,SAAUiB,EAAiB5F,oCAC3BsE,aAED,CAACsB,IAIN,CDKM,GAMEE,EAAU,GAAcJ,GACxBK,EAAQ,GAAcX,GAoC5B,OAnCgB,IAAAY,cAAY9E,IAC1B,MAAM+E,EAAiBN,EAAqB,CAC1CN,SACAE,cAAeA,GAAiBD,EAChCY,WAAY,CACVZ,gBACAE,cACAC,oBAOE7E,EAAU,CACd0E,gBACAE,cACAC,oBACGK,EAAQrD,SAEbwD,EAAerF,QAAQ0C,KAAK1C,GAG5B,MAAMuF,EAAQF,EAAeE,QACzBA,GACFA,EAAMC,KAAK,YAEbL,EAAMtD,QAAQvB,EAAO+E,EAAe,GACnC,CAEHZ,EAAQC,EAAeC,EAAeC,EAAaC,EAEnDE,EAEAG,EAASC,GAEX,CE7DA,MACE/D,SAAQ,GACR8F,SAAQ,GACRC,SAAQ,ICIH,SAAqBC,GAC1B,MAAMC,EAAe,CAACC,EAAW5H,IAAU4H,EAAU5H,GAS/C6H,GAA4B,IAAAC,eAAcJ,GAChD,SAASD,EAASM,GAIhB,QAHc,IAAAjG,YAAW+F,IACAF,GACFI,EAEzB,CAiCA,MAAO,CACLP,SA9BF,SAAkBxH,GAChB,MAAM,SACJW,KACGoH,GACD/H,EAIEgI,EAASP,EAASM,GAGxB,OAAoB,gBAAoB,WAAgB,KAAMpH,EAASqH,GACzE,EAmBEtG,SAVF,SAAkB1B,GAChB,MAAMiI,GAAU,IAAAnG,YAAW+F,GACrBK,EAAUlI,EAAMY,OAAS+G,EACzBQ,GAAU,IAAAzC,cAAYqC,GAAcG,EAAQD,EAASF,IAAa,CAACE,EAASC,IAClF,OAAoB,gBAAoBL,EAAanG,SAAU,CAC7Dd,MAAOuH,GACNnI,EAAMW,SACX,EAIE8G,WAEJ,CDzDI,EAAY,KAAM,CACpBrB,KAAM,YERR,IAAInE,GAAMm8D,GAAUC,GAAcC,GAAWC,GAG7C,MACMC,KADsR,QAAxQv8D,QAAyPb,KAAlO,OAAfq9D,iBAAsC,IAAfA,YAAqE,QAAnCL,GAAWK,WAAWC,eAAkC,IAAbN,IAAiE,QAAjCC,GAAeD,GAASO,WAAkC,IAAjBN,QAA9H,EAAiKA,GAAaO,uBAAoD,IAAT38D,IAAkBA,KAClC,gBAAlO,OAAfw8D,iBAAsC,IAAfA,YAAsE,QAApCH,GAAYG,WAAWC,eAAmC,IAAdJ,IAAoE,QAAnCC,GAAgBD,GAAUK,WAAmC,IAAlBJ,QAAlI,EAAsKA,GAAcM,UCFzPC,GAAiB,6BACxBC,QAAmC,IAAZ,SAAkD,IAAhB,GAazDC,KAVyBD,IAEO,SAAtC,GAAgC,sBAKSA,IAEO,SAAhD,GAA0C,6BAEpCE,GAAqB,CAGzBC,mBAAoB,IAAIjjC,IACxBkjC,gBAAiB,SAAUC,GAKzB,OAAO,CACT,GAEIC,GAA8B,oBAAX3sD,OAAyBA,OAAS+rD,WCZpD,SAASa,GAAan+D,GAC3B,ODuBK,SAA4Bi+D,GACjC,GAAIJ,GAEF,MDvCiB,KAAI37D,KAClBm7D,IAKL91C,QAAQugC,SAAS5lD,EAAK,ECgCpB4lD,CAAM,kGA1CM,mCA0CsGmW,IAC3G,EAET,IACE,IAAIG,EACJ,MAAMnqC,EAAkE,QAAxDmqC,EAAyBF,GAAUP,WAAwD,IAA3BS,OAAoC,EAASA,EAAuBJ,gBAAgBC,GACpK,MAAsB,kBAAXhqC,GAET1M,QAAQmU,KAAK,GAAGuiC,kEACT,GAEFhqC,CACT,CAAE,MAAO3rB,GACP,OAAO,CACT,CACF,CCxCS+1D,CAAmBr+D,EAC5B,CDWAk+D,GAAUP,IAAkBO,GAAUP,KAAmBG,GE5BlD,MAAM,GAAU,qBACV,GAAqB,QACrB,GAAc,CAAC,QAAS,QCFtB,SAAS,GAASj/D,GAC/B,GAAIA,GAASA,EAAMkG,MAAO,CAExB,GAAI,MAAWlG,EAAMkG,MACnB,OAAOlG,EAAMkG,MAAM,IAGhB,GAAI,SAAUlG,EAAMkG,OAAS,YAAqBlG,EAAMkG,MAAME,MACjE,OAAOpG,EAAMkG,KAEjB,CAEA,MAAO,CACLE,KAAM,GAEV,CCOe,SAAS,GAAOE,EAAgBC,GAC7C,GAA8B,iBAAnBD,EACT,OAtBoBE,EAsBEF,EAtBWG,EAsBKF,EArBjCvG,IACL,MAAMkG,EAAQ,GAASlG,GACvB,GAAIA,GAASA,EAAMwG,IAAgBC,EAAU,CAC3C,MAAMC,EAAQD,EAASzG,EAAMwG,IAC7B,GAAIE,GAASA,EAAMR,EAAME,MAAO,CAC9B,MAAMxF,EAAQ8F,EAAMR,EAAME,MAC1B,GAAIxF,EACF,OAAOA,CAEX,CACF,CAEA,MAAO,EAAE,EAbb,IAAwB4F,EAAaC,EAwBnC,MAAMC,EAAQJ,EACd,OAAOtG,IAEL,MAAMkG,EAAQ,GAASlG,GAEvB,GAAIkG,EAAME,QAAQM,EAAO,CACvB,MAAM9F,EAAQ8F,EAAMR,EAAME,MAC1B,GAAIxF,EACF,OAAOA,CAEX,CACA,MAAO,EAAE,CAEb,CCpCO,MAIM,GAAO,UACP,GAAO,UAQP,GAAO,UASP,GAAO,UAMP,GAAM,UACN,GAAO,UACP,GAAO,UAEP,GAAO,UAsBP,GAAK,UACL,GAAM,UAEN,GAAM,UAQN,GAAO,UAMP,GAAO,UAGP,GAAO,UAyBP,GAAQ,UAGR,GAAQ,UACR,GAAQ,UAMR,GAAO,UAEP,GAAO,UAEP,GAAO,UCpHP6+D,IDgJa,GAAO,CAC/Bn4D,MAAO,qBAAqB,MAC5BC,KAAM,qBAAqB,QAMG,GAAO,CACrCD,MAAO,yCACPC,KAAM,iCAAiC,QAMV,GAAO,CACpCD,MAAO,wCAAwC,MAC/CC,KAAM,kDAMyB,GAAO,CACtCD,MAAO,6BAA6B,MACpCC,KAAM,6BAA6B,QAMjB,GAAO,CACzBD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMD,GAAO,CAC9BD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMA,GAAO,CAC/BD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAMT,GAAO,CAC/BD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAMJ,GAAO,CACpCD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAMZ,GAAO,CAC5BD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMG,GAAO,CAClCD,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,QAEV,GAAO,CAC9BD,MA1KiB,UA2KjBC,KAAM,KAMY,GAAO,CACzBD,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,QAMD,GAAO,CAC9BD,MAAO,kCACPC,KAAM,0BAA0B,QAMR,GAAO,CAC/BD,MAAO,kCACPC,KAAM,0BAA0B,QAMP,GAAO,CAChCD,MAAO,4BAA4B,MACnCC,KAAM,4BAA4B,QAMb,GAAO,CAC5BD,MAAO,mCAAmC,MAC1CC,KAAM,mCAAmC,QAEvB,GAAO,CACzBD,MAAO,GACPC,KAAM,KAEY,GAAO,CACzBD,MAjOkB,UAkOlBC,KAnOkB,YAqOE,GAAO,CAC3BD,MA9OkB,UA+OlBC,KAjPkB,YAmPD,GAAO,CACxBD,MAAO,GACPC,KAAM,KAEc,GAAO,CAC3BD,MAAO,GACPC,KAAM,KAEa,GAAO,CAC1BD,MAAO,GACPC,KAAM,KCtS+B,CACrCD,MAAO,iCAAiC,MACxCC,KAAM,iCAAiC,QAE5Bm4D,GAAyB,CACpCp4D,MAAO,8BAA8B,MACrCC,KAAM,8BAA8B,OAEzBo4D,GAA8B,CACzCr4D,MAAO,sCAAsC,MAC7CC,KAAM,sCAAsC,OAEjCq4D,GAA8B,CACzCt4D,MAAO,sCAAsC,MAC7CC,KAAM,sCAAsC,OAEjCs4D,GAAqB,CAChCv4D,MAAO,0BAA0Bg4D,GAAa,yDDkD5B,UAND,aC3CjB/3D,KAAM,0BAA0B+3D,GAAa,yDAA2D,GD+FtF,cC7FPQ,GAA0B,CACrCx4D,MAAO,4BAA4B,MACnCC,KAAM,4BAA4B,OAMvBw4D,GAAc,CACzBz4D,MAAO,cACPC,KAAM,eAEKy4D,GAAY,CACvB14D,MAAO,kBAAkB,MACzBC,KAAM,kBAAkB,OAMb04D,GAAuB,CAClC34D,MAAO,2BAA2B,MAClCC,KAAM,2BAA2B,OCpC7B24D,GAAgB,CACpB54D,MAAO,CACLwB,gBAAiB,SACjBq3D,qBAAsB,SACtBC,YAAa,SACbJ,UD0BK,oCCxBPz4D,KAAM,CACJuB,gBAAiB,QACjBq3D,qBAAsB,QACtBC,YAAa,QACbJ,UDqBI,qCClBFK,GAAe,CACnB/4D,MAAO,CAELwB,gBAAiB,SACjBq3D,qBAAsB,SAEtBG,qBAAsB,SACtBF,YAAa,2BAA2B,MACxCG,iBAAkB,UAEpBh5D,KAAM,CAEJuB,gBAAiB,QACjBq3D,qBAAsB,QAEtBG,qBAAsB,QACtBF,YAAa,2BAA2B,MACxCG,iBAAkB,UAGhBz3D,GAAkB,CACtB03D,SAAU,GACV7I,OAAQ,GACRxO,KAAM,IAEFmX,GAAuB,CAC3BE,SAAU,GACV7I,OAAQ,GACRxO,KAAM,IAEFgX,GAAuB,CAC3BK,SAAU,GACV7I,OAAQ,GACRxO,KAAM,IAEFiX,GAAc,CAClBI,SAAU,GACV7I,OAAQ,GACRxO,KAAM,IAEFoX,GAAmB,CACvBC,SAAU,GACV7I,OAAQ,GACRxO,KAAM,IAEFsX,GAAmB,CACvBD,SAAU,GACV7I,OD3CoC,CACpCrwD,MAAO,sCACPC,KAAM,uCC0CN4hD,KAAM,IAEFuX,GAAmC,CAACvI,EAAY/xD,KAAS,CAC7D0C,gBAAiBA,GAAgBqvD,GAAY/xD,GAC7Cg6D,YAAaA,GAAYjI,GAAY/xD,GACrCgU,MAAO,GAA0BhU,GACjCsZ,OAAQ,OACR,+BAAgC,CAC9B5W,gBAAiBq3D,GAAqBhI,GAAY/xD,GAClDg6D,YAAaK,GAAiBtI,GAAY/xD,IAE5C,sCAAuC,CACrC0C,gBAAiBw3D,GAAqBnI,GAAY/xD,GAClDg6D,YAAaG,GAAiBpI,GAAY/xD,GAC1Cu6D,UAAWrB,GAAa,yDAA2D,mBAAmBiB,GAAiBpI,GAAY/xD,UAAUhF,GAE/I,mBAAoB,CAClBgZ,MAAO8lD,GAAc95D,GAAM45D,UAC3BtgD,OAAQ,iBAGW,aAAfy4C,GAA6B,CAC/BrvD,gBAAiBo3D,GAAc95D,GAAM0C,gBACrCs3D,YAAaF,GAAc95D,GAAMg6D,cAGrC,yCAA0C,CACxCA,YAAaC,GAAaj6D,GAAMg6D,YAChCO,UAAWrB,GAAa,yDAA2D,mBAAmBe,GAAaj6D,GAAMg6D,mBAAgBh/D,GAE3I,+BAAgC,CAC9B0H,gBAAiBu3D,GAAaj6D,GAAMk6D,qBACpCF,YAAaC,GAAaj6D,GAAMm6D,iBAChCI,UAAWrB,GAAa,yDAA2D,mBAAmBe,GAAaj6D,GAAMm6D,wBAAqBn/D,GAEhJ,gDAAiD,CAC/C,+BAAgC,CAC9Bg/D,YAAa,aAEf,iBAAkB,CAChBA,YAAa,aAEf,mBAAoB,CAClBA,YAAa,eAIbQ,GAAW,CACfC,OAAQ,GACRpgD,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPC,OAAQ,KAEJkgD,GAAc/lD,GAAUA,EAAiBA,KAAS6lD,GAAWA,GAAS7lD,IAAUA,EAAhD,OCrHhCgmD,GAAkB,CACtB/7D,cAAe,YACfE,YAAa,sBACbC,eAAgB,SAEZ67D,IAAyB,IAAAp/D,aAAW,CAAC5B,EAAO6B,KAChD,MAAM,WACJs2D,EAAa,WAAU,UACvB8I,GAAY,EAAK,WACjB92D,GAAa,EAAK,UAClBgzD,GAAY,EAAK,WACjB9wC,GAAa,EAAK,WAClB60C,GAAa,EAAK,aAClBC,GAAe,EAAK,MACpBpmD,EAAK,eACLqmD,EAAc,gBACdC,EAAe,OACfh4D,EAAM,QACNkV,EAAO,OACPC,EAAM,YACN3U,EAAW,UACX5I,KACGqgE,GACDthE,EACEuhE,GAAW,IAAA58D,QAAO,OAClB,KACJyB,GACE,KACEo7D,EAAgB,GAA4B,CAChD18D,GAAIvE,IACFge,GAAWA,EAAQhe,EAAM,EAE3BwE,OAAQ,aACLg8D,KAECU,EAAe,GAA4B,CAC/C38D,GAAIvE,IACFie,GAAUA,EAAOje,EAAM,EAEzBwE,OAAQ,aACLg8D,KAECW,GAAoB,IAAAh8D,cAAYnF,IAIb,UADRA,EAAMoJ,OACVgwB,SACTp5B,EAAM0d,iBAEJsjD,GAAYA,EAASp/D,UAAYgI,GAAcI,SAASi1B,gBAAkB+hC,EAASp/D,SACrFo/D,EAASp/D,QAAQw9B,QAEnB91B,GAAeA,EAAYtJ,EAAM,GAChC,CAACsJ,EAAaM,IACXw3D,GAAc,IAAAj8D,cAAYk8D,IAC9BL,EAASp/D,QAAUy/D,EACd//D,IAGc,iBAARA,IAKTA,EAAIM,QAAUy/D,GAEG,mBAAR//D,GACTA,EAAI+/D,GACN,GACC,CAAC//D,IACEggE,GAAkB,IAAAz1D,UAAQ,IDgDH,EAAC+rD,EAAY/xD,EAAM2U,KAAU,CAC1D+9C,WAAY,YACT4H,GAAiCvI,EAAY/xD,GAChDsT,aAAc,EACdshD,YAAasE,GAAa,yDAA2D,EAAI,KAErFA,GAAa,0DAA2E,SAAfnH,EAAwB,CACnGzhD,QAAS,SACP,CAAC,EACLorD,YAA4B,SAAf3J,EAAwB,OAAS,QAC9C3+C,UAAW,aACX7B,QAAS,OACToqD,KAAM,WACNpoD,SLpH4B,GKqH5Bk/C,eAAgB,gBAChBp/C,SAAUqnD,GAAY/lD,GACtBf,SAAU,SACVjH,WAAY,mEACZ+G,SAAU,aACVuH,cAAe,MACf1Y,cAAe,SCpEuB,CAAmBwvD,EAAY/xD,EAAM2U,IAAQ,CAACo9C,EAAY/xD,EAAM2U,IAChGinD,GAAa,IAAA51D,UAAQ,IDqEFhG,KAAQ,CACjC0C,gBAAiB,cACjByyD,OAAQ,EACR/hD,UAAW,aACXY,MAAO,UACPsF,OAAQ,UACR/F,SLnI4B,GKoI5Boa,SAAU,IACVgpC,QAAS,OACThiD,MAAO,OACPnB,WAAY,GLvIgB,GKwI5BshD,WLtI8B,uIKuI9B,qBAAsB,CACpBA,WLvIgC,kHKyIlC,kBAAmB,CACjBxkD,QAAS,UACTsE,OAAQ,GAAG,GAA4BinD,QAAQ,QAEjD,wBAAyB,CACvBvrD,QAAS,UACTsE,OAAQ,IAAI,GLlJc,IKkJainD,QAAQ,QAEjD,cAAe,CAIbC,oBAAqBhC,GAAc95D,GAAM45D,WAG3C,eAAgB,CACdroD,QAAS,QAEX,YAAa,CACXgpD,UAAW,QAEb,iBAAkB,CAChBvmD,MAAO,GAAqChU,GAC5C,aAAc,CACZgU,MAAO8lD,GAAc95D,GAAM45D,YAG/B,gDAAiD,CAC/C,cAAe,CACb5lD,MAAO,eCjHsB,CAAehU,IAAO,CAACA,IACxD,OAGE,SAAI,MAAO,CACT,gBAAiB+D,QAA0B/I,EAC3C,eAAgB+7D,QAAwB/7D,EACxC,kCAAkC,EAClC,cAAeiI,GAAU,GAAGA,cAC5BQ,YAAa63D,EAIbj/D,IAAKo/D,EACL5gE,UAAWA,GACVogE,GAAiB,SAAI,SAAS,QAAS,CAAC,EAAGC,EAAa,CACzD,eAAgBL,QAAwB7/D,EACxC,kBAAmB+/D,QAA8B//D,EACjD,8BAA8B,EAC9B,cAAeiI,EACf,eAAgB8zD,QAAwB/7D,EACxC48B,SAAU7zB,EACVg4D,SAAUjB,EACVzD,SAAUpxC,EACV7N,OAAQijD,EACRljD,QAASijD,EACT3/D,IAAK8/D,EAILl/D,IAAKu/D,KACFZ,EACN,IAEHJ,GAAUj3D,YAAc,YAWxB,UAA4B,IAAAd,MAAK+3D,oBCvGjC,MAQaoB,GAAY,EACvBC,WACAC,oBAViC,EAWjCC,mBAAmBrM,GAAoBsM,WAEvC,MAAM,qBAAEn9D,GAAyB,MAC1BwL,GAAO,gBAAEgkD,IAAqBQ,MAC9BoN,EAAcC,IAAmB,IAAA12D,UAAS6E,EAAMikD,UAAUrnD,aAC1Dk1D,EAAaC,IAAkB,IAAA52D,UAASy2D,GAyD/C,OAvDA,IAAA79D,YAAU,KACR89D,EAAgB7xD,EAAMikD,UAAUrnD,WAAW,GAC1C,CAACoD,EAAMikD,YAsDR,gCACE,gBAAC+N,GAA4B,KAC3B,gBAAC,GAAgB,CACfh0D,GAAG,eACHk4C,eAAe,mCACfC,YAAY,qCAIhB,gBAAC8b,GAAuB,KACtB,gBAAC,GAAS,CACRxxC,SA/D+C,EAAG3nB,aACxD,IAAI/I,EAAQ+I,EAAO/I,MACfmiE,EAAc3+C,SAASxjB,EAAO,IAClC,GAAIoP,OAAOshC,MAAMyxB,GACfL,EAAgB,SAEhB,GAAIK,EAAc,EAChBL,EAAgB,QACX,CACD9hE,EAAM4C,OAAS8+D,IACjB1hE,EAAQA,EAAM6M,WAAW2C,MAAM,EAAGkyD,GAClCS,EAAc3+C,SAASxjB,EAAO,KAEX,IAAjBA,EAAM4C,QACRo/D,EAAehiE,EAAM6M,YAGvB,IAAIu1D,EAAW9yD,KAAK89C,IAAI+U,EAAa,GAEjCV,IACFW,EAAW9yD,KAAK8wC,IAAIgiB,EAAUX,IAGhCK,EAAgBM,EAASv1D,YACpBonD,EAAgBmO,KAwCnBpiE,MAAO6hE,EACPnL,UAAU,EACV94C,OArCO,EAAG9U,oBACmB,IAA/BA,EAAc9I,MAAM4C,OACtBk/D,EAAgBC,GAEhBC,EAAeH,EAAah1D,aAkCxB7D,QA9B6C,EAAGF,oBACtDA,EAAcyrC,QAAQ,EA8BhBp6B,MAAM,QAGR,gBAACkoD,GAAW,KACV,gBAAC7nD,GAAA,EAAO,CACNjN,QACE,gBAAC+0D,GAAuB,KACtB,gBAAC,GAAgB,CACfr0D,GAAG,qBACHk4C,eAAe,uGACfC,YAAY,8CAIlBz+C,SAAU,OAEV,gBAAC+R,GAAgB,CAACG,YAAa,KA1CnCpV,GACqBA,EAAqB,CAC1ClE,KAAM80D,GAAqBkN,gCAC3BphD,MAAOwgD,IAEMz8D,MAqCyC,EAAEw6B,SAAU,GAC5D,gBAAC,KAAkB,CACjBxf,KAAK,SACLiB,MAAM,IACNF,aAAc,gBAO3B,EAGGghD,GAA+B,MAAS;WACnC5uB;;;;;;;;;IASP+hB;;;;;EAOE8M,GAA0B,OAAU;;;;wBAIlB97D;;aAEXD;;;;;;;;;IASTivD;;;;;EAOEiN,GAAc,OAAU;;;;;;;;EAUxBC,GAA0B,OAAU;;EAIpC5oD,GAAmB,OAAU;;;;;8BCjL5B,MAAM8oD,GAAW,EACtBb,mBAAmBrM,GAAoBmN,MACvCC,gBAEA,MAAM,qBAAEj+D,GAAyB,MAY3B,mBAAE0pD,GAAuBuU,EAEzBC,EAAmBxU,EAAmBA,EAAmBvrD,OAAS,GACxE,IAAK+/D,EACH,MAAM,IAAIl7C,MAAM,wCAGlB,MAAM,wBACJ6mC,EAAuB,wBACvBC,EAAuB,qBACvBH,EAAoB,8BACpBC,GACEsU,EAEJ,OACE,gBAACC,GAAiB,KAChB,gBAACpoD,GAAA,EAAO,CACN9L,MAAO,IACPgM,UAAWmoD,GACXt1D,QACE,gCACE,gBAACu1D,GAAwB,KACvB,gBAAC,GAAgB,CACf70D,GAAG,kBACHk4C,eAAe,wBACfC,YAAY,2BAGhB,gBAAC2c,GAAe,MAChB,gBAACC,GAAqB,KACpB,gBAAC,GAAgB,CACf/0D,GAAG,OACHk4C,eAAe,OACfC,YAAY,gBAGhB,gBAAC6c,GAAe,KACd,gBAAC,GAAgB,CACfh1D,GAAG,SACHk4C,eAAe,wDACfC,YAAY,SACZ7jC,OAAQ,CACN+rC,0BACAC,8BAKN,gBAACyU,GAAqB,KACpB,gBAAC,GAAgB,CACf/0D,GAAG,cACHk4C,eAAe,eACfC,YAAY,uBAGhB,gBAAC6c,GAAe,KAAE7U,GAClB,gBAAC4U,GAAqB,KACpB,gBAAC,GAAgB,CACf/0D,GAAG,iBACHk4C,eAAe,kBACfC,YAAY,0BAGhB,gBAAC6c,GAAe,KAAE5U,IAGtB1mD,SAAU,cAEV,gBAAC,GAAgB,CAACkS,YAAa,KA7E/BpV,GACqBA,EAAqB,CAC1ClE,KAAM80D,GAAqB6N,yBAC3B/hD,MAAOwgD,IAEMz8D,MAwEqC,GAChD,gBAACi+D,GAAA,EAAO,CAAC7tD,MAAO,CAAEpN,gBAAiB,UAAWsR,MAAOpT,IACnD,gBAACg9D,GAAe,KACd,gBAAC,GAAgB,CACfn1D,GAAG,WACHk4C,eAAe,mEACfC,YAAY,YACZ7jC,OAAQ,CACN+rC,0BACAC,+BAKR,gBAAC8U,GAAqB,KACpB,gBAAC,KAAkB,CAACnjD,KAAK,SAASiB,MAAM,IAAIF,aAAa,cAKlE,EAGG2hD,GAAoB,OAAU;;;;EAM9BQ,GAAkB,OAAU;;;;;;;;EAU5BC,GAAwB,OAAU;;;;EAMlC,GAAmB,OAAU;;;;;;;EAS7BR,IAA0B,OAAO/oD,GAAA,EAAiB;gBACxCu5B;;;;;;EAQVyvB,GAA2B,OAAU;WAChC18D;;;;;;;;;EAWL28D,GAAkB,OAAU;gBAClB38D;;;;;EAOV48D,GAAwB,OAAU;WAC7B58D;;;;;;;;EAUL68D,GAAkB,OAAU;WACvB78D;;;;;;;;ECnMJ,IAAI,GCAA,GAwCA,IDvCX,SAAWutC,GAEPA,EAAUA,EAAyC,8BAAI,GAAK,gCAE5DA,EAAUA,EAA0B,eAAI,GAAK,iBAE7CA,EAAUA,EAA8B,mBAAI,GAAK,qBAEjDA,EAAUA,EAAgC,qBAAI,GAAK,uBAEnDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAmC,wBAAI,GAAK,0BAEtDA,EAAUA,EAAsC,2BAAI,GAAK,6BAEzDA,EAAUA,EAAkC,uBAAI,GAAK,yBAErDA,EAAUA,EAAqC,0BAAI,IAAM,4BAEzDA,EAAUA,EAA4C,iCAAI,IAAM,mCAEhEA,EAAUA,EAA0C,+BAAI,IAAM,iCAE9DA,EAAUA,EAA+C,oCAAI,IAAM,sCAEnEA,EAAUA,EAAgD,qCAAI,IAAM,uCAEpEA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAAoD,yCAAI,IAAM,2CAKxEA,EAAUA,EAAoD,yCAAI,IAAM,2CAExEA,EAAUA,EAA4C,iCAAI,IAAM,mCAKhEA,EAAUA,EAA8C,mCAAI,IAAM,qCAIlEA,EAAUA,EAA8C,mCAAI,IAAM,qCAElEA,EAAUA,EAAgC,qBAAI,IAAM,uBAEpDA,EAAUA,EAAuB,YAAI,IAAM,cAE3CA,EAAUA,EAA4B,iBAAI,IAAM,mBAEhDA,EAAUA,EAAiC,sBAAI,IAAM,wBAErDA,EAAUA,EAAwB,aAAI,IAAM,cAC/C,CA7DD,CA6DG,KAAc,GAAY,CAAC,IC7D9B,SAAWF,GAIPA,EAAKA,EAAc,QAAI,GAAK,UAI5BA,EAAKA,EAAe,SAAI,GAAK,WAI7BA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAa,OAAI,GAAK,SAK3BA,EAAKA,EAAY,MAAI,GAAK,QAI1BA,EAAKA,EAAU,IAAI,GAAK,KAC3B,CAtCD,CAsCG,KAAS,GAAO,CAAC,IAEpB,SAAWC,GACPA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CAHD,CAGG,KAAkB,GAAgB,CAAC,IC3C/B,IAAI,GAAwB,+CCI/B,GAAkB,4KAOf,SAAS,GAAsBqB,GAClC,IAAIvgB,EAAS,CAAC,EA0Gd,OAzGAugB,EAASlwB,QAAQ,IAAiB,SAAUxC,GACxC,IAAItV,EAAMsV,EAAMzf,OAChB,OAAQyf,EAAM,IAEV,IAAK,IACDmS,EAAOwgB,IAAc,IAARjoC,EAAY,OAAiB,IAARA,EAAY,SAAW,QACzD,MAEJ,IAAK,IACDynB,EAAOygB,KAAe,IAARloC,EAAY,UAAY,UACtC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAImoC,WAAW,gEAEzB,IAAK,IACL,IAAK,IACD,MAAM,IAAIA,WAAW,8CAEzB,IAAK,IACL,IAAK,IACD1gB,EAAO2gB,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAUpoC,EAAM,GACvE,MAEJ,IAAK,IACL,IAAK,IACD,MAAM,IAAImoC,WAAW,2CACzB,IAAK,IACD1gB,EAAO4gB,IAAM,CAAC,UAAW,WAAWroC,EAAM,GAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAImoC,WAAW,6DAEzB,IAAK,IACD1gB,EAAO6gB,QAAkB,IAARtoC,EAAY,QAAkB,IAARA,EAAY,SAAW,QAC9D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAImoC,WAAW,iDAEzB1gB,EAAO6gB,QAAU,CAAC,QAAS,OAAQ,SAAU,SAAStoC,EAAM,GAC5D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAImoC,WAAW,iDAEzB1gB,EAAO6gB,QAAU,CAAC,QAAS,OAAQ,SAAU,SAAStoC,EAAM,GAC5D,MAEJ,IAAK,IACDynB,EAAO8gB,QAAS,EAChB,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIJ,WAAW,8DAEzB,IAAK,IACD1gB,EAAO+gB,UAAY,MACnB/gB,EAAOghB,KAAO,CAAC,UAAW,WAAWzoC,EAAM,GAC3C,MACJ,IAAK,IACDynB,EAAO+gB,UAAY,MACnB/gB,EAAOghB,KAAO,CAAC,UAAW,WAAWzoC,EAAM,GAC3C,MACJ,IAAK,IACDynB,EAAO+gB,UAAY,MACnB/gB,EAAOghB,KAAO,CAAC,UAAW,WAAWzoC,EAAM,GAC3C,MACJ,IAAK,IACDynB,EAAO+gB,UAAY,MACnB/gB,EAAOghB,KAAO,CAAC,UAAW,WAAWzoC,EAAM,GAC3C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAImoC,WAAW,oEAEzB,IAAK,IACD1gB,EAAOihB,OAAS,CAAC,UAAW,WAAW1oC,EAAM,GAC7C,MAEJ,IAAK,IACDynB,EAAOkhB,OAAS,CAAC,UAAW,WAAW3oC,EAAM,GAC7C,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAImoC,WAAW,8DAEzB,IAAK,IACD1gB,EAAOmhB,aAAe5oC,EAAM,EAAI,QAAU,OAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAImoC,WAAW,wEAE7B,MAAO,EACX,IACO1gB,CACX,CCvHO,IAAI,GAAoB,wCC8B3B,GAA2B,mCAC3B,GAA8B,wBAC9B,GAAsB,0BACtB,GAA8B,SAClC,SAAS,GAA0Bic,GAC/B,IAAIjc,EAAS,CAAC,EA6Bd,MA5B4B,MAAxBic,EAAIA,EAAI7tC,OAAS,GACjB4xB,EAAOyhB,iBAAmB,gBAEG,MAAxBxF,EAAIA,EAAI7tC,OAAS,KACtB4xB,EAAOyhB,iBAAmB,iBAE9BxF,EAAI5rB,QAAQ,IAA6B,SAAUigB,EAAGoR,EAAIC,GAoBtD,MAlBkB,iBAAPA,GACP3hB,EAAO4hB,yBAA2BF,EAAGtzC,OACrC4xB,EAAO6hB,yBAA2BH,EAAGtzC,QAGzB,MAAPuzC,EACL3hB,EAAO4hB,yBAA2BF,EAAGtzC,OAGtB,MAAVszC,EAAG,GACR1hB,EAAO6hB,yBAA2BH,EAAGtzC,QAIrC4xB,EAAO4hB,yBAA2BF,EAAGtzC,OACrC4xB,EAAO6hB,yBACHH,EAAGtzC,QAAwB,iBAAPuzC,EAAkBA,EAAGvzC,OAAS,IAEnD,EACX,IACO4xB,CACX,CACA,SAAS,GAAUic,GACf,OAAQA,GACJ,IAAK,YACD,MAAO,CACH8F,YAAa,QAErB,IAAK,kBACL,IAAK,KACD,MAAO,CACHC,aAAc,cAEtB,IAAK,cACL,IAAK,KACD,MAAO,CACHD,YAAa,UAErB,IAAK,yBACL,IAAK,MACD,MAAO,CACHA,YAAa,SACbC,aAAc,cAEtB,IAAK,mBACL,IAAK,KACD,MAAO,CACHD,YAAa,cAErB,IAAK,8BACL,IAAK,MACD,MAAO,CACHA,YAAa,aACbC,aAAc,cAEtB,IAAK,aACL,IAAK,KACD,MAAO,CACHD,YAAa,SAG7B,CACA,SAAS,GAAyCG,GAE9C,IAAIliB,EAaJ,GAZgB,MAAZkiB,EAAK,IAA0B,MAAZA,EAAK,IACxBliB,EAAS,CACLmiB,SAAU,eAEdD,EAAOA,EAAKlnC,MAAM,IAED,MAAZknC,EAAK,KACVliB,EAAS,CACLmiB,SAAU,cAEdD,EAAOA,EAAKlnC,MAAM,IAElBglB,EAAQ,CACR,IAAI+hB,EAAcG,EAAKlnC,MAAM,EAAG,GAShC,GARoB,OAAhB+mC,GACA/hB,EAAO+hB,YAAc,SACrBG,EAAOA,EAAKlnC,MAAM,IAEG,OAAhB+mC,IACL/hB,EAAO+hB,YAAc,aACrBG,EAAOA,EAAKlnC,MAAM,KAEjB,GAA4BsV,KAAK4xB,GAClC,MAAM,IAAIjvB,MAAM,6CAEpB+M,EAAOoiB,qBAAuBF,EAAK9zC,MACvC,CACA,OAAO4xB,CACX,CACA,SAAS,GAAqBsiB,GAG1B,OADe,GAAUA,IADZ,CAAC,CAMlB,CAIO,SAAS,GAAoB1vC,GAEhC,IADA,IAAIotB,EAAS,CAAC,EACLwiB,EAAK,EAAGC,EAAW7vC,EAAQ4vC,EAAKC,EAASr0C,OAAQo0C,IAAM,CAC5D,IAAIE,EAAQD,EAASD,GACrB,OAAQE,EAAMR,MACV,IAAK,UACL,IAAK,IACDliB,EAAOlf,MAAQ,UACf,SACJ,IAAK,QACDkf,EAAOlf,MAAQ,UACfkf,EAAO2iB,MAAQ,IACf,SACJ,IAAK,WACD3iB,EAAOlf,MAAQ,WACfkf,EAAO4iB,SAAWF,EAAMtkC,QAAQ,GAChC,SACJ,IAAK,YACL,IAAK,KACD4hB,EAAO6iB,aAAc,EACrB,SACJ,IAAK,oBACL,IAAK,IACD7iB,EAAO8iB,sBAAwB,EAC/B,SACJ,IAAK,eACL,IAAK,OACD9iB,EAAOlf,MAAQ,OACfkf,EAAO+iB,KAAqBL,EAAMtkC,QAAQ,GArJ1CiS,QAAQ,UAAW,IAsJnB,SACJ,IAAK,gBACL,IAAK,IACD2P,EAAOmiB,SAAW,UAClBniB,EAAOgjB,eAAiB,QACxB,SACJ,IAAK,eACL,IAAK,KACDhjB,EAAOmiB,SAAW,UAClBniB,EAAOgjB,eAAiB,OACxB,SACJ,IAAK,aACDhjB,GAAS,SAAS,SAAS,QAAS,CAAC,EAAGA,GAAS,CAAEmiB,SAAU,eAAiBO,EAAMtkC,QAAQvI,QAAO,SAAUinB,EAAKwlB,GAAO,OAAQ,SAAS,QAAS,CAAC,EAAGxlB,GAAM,GAAqBwlB,GAAQ,GAAG,CAAC,IAC9L,SACJ,IAAK,cACDtiB,GAAS,SAAS,SAAS,QAAS,CAAC,EAAGA,GAAS,CAAEmiB,SAAU,gBAAkBO,EAAMtkC,QAAQvI,QAAO,SAAUinB,EAAKwlB,GAAO,OAAQ,SAAS,QAAS,CAAC,EAAGxlB,GAAM,GAAqBwlB,GAAQ,GAAG,CAAC,IAC/L,SACJ,IAAK,kBACDtiB,EAAOmiB,SAAW,WAClB,SAEJ,IAAK,oBACDniB,EAAOijB,gBAAkB,eACzBjjB,EAAOkjB,YAAc,SACrB,SACJ,IAAK,mBACDljB,EAAOijB,gBAAkB,OACzBjjB,EAAOkjB,YAAc,QACrB,SACJ,IAAK,uBACDljB,EAAOijB,gBAAkB,OACzBjjB,EAAOkjB,YAAc,OACrB,SACJ,IAAK,sBACDljB,EAAOijB,gBAAkB,SACzB,SACJ,IAAK,QACDjjB,EAAO2iB,MAAQ9yB,WAAW6yB,EAAMtkC,QAAQ,IACxC,SAEJ,IAAK,gBACD,GAAIskC,EAAMtkC,QAAQhQ,OAAS,EACvB,MAAM,IAAIsyC,WAAW,4DAEzBgC,EAAMtkC,QAAQ,GAAGiS,QAAQ,IAAqB,SAAUigB,EAAGoR,EAAIC,EAAIwB,EAAIC,EAAIC,GACvE,GAAI3B,EACA1hB,EAAOoiB,qBAAuBT,EAAGvzC,WAEhC,IAAI+0C,GAAMC,EACX,MAAM,IAAInwB,MAAM,sDAEf,GAAIowB,EACL,MAAM,IAAIpwB,MAAM,mDACpB,CACA,MAAO,EACX,IACA,SAGR,GAAI,GAA4B3C,KAAKoyB,EAAMR,MACvCliB,EAAOoiB,qBAAuBM,EAAMR,KAAK9zC,YAG7C,GAAI,GAAyBkiB,KAAKoyB,EAAMR,MAAxC,CAII,GAAIQ,EAAMtkC,QAAQhQ,OAAS,EACvB,MAAM,IAAIsyC,WAAW,iEAEzBgC,EAAMR,KAAK7xB,QAAQ,IAA0B,SAAUigB,EAAGoR,EAAIC,EAAIwB,EAAIC,EAAIC,GAkBtE,MAhBW,MAAP1B,EACA3hB,EAAOsjB,sBAAwB5B,EAAGtzC,OAG7B+0C,GAAgB,MAAVA,EAAG,GACdnjB,EAAO8iB,sBAAwBK,EAAG/0C,OAG7Bg1C,GAAMC,GACXrjB,EAAOsjB,sBAAwBF,EAAGh1C,OAClC4xB,EAAO8iB,sBAAwBM,EAAGh1C,OAASi1C,EAAGj1C,SAG9C4xB,EAAOsjB,sBAAwB5B,EAAGtzC,OAClC4xB,EAAO8iB,sBAAwBpB,EAAGtzC,QAE/B,EACX,IACA,IAAIk0C,EAAMI,EAAMtkC,QAAQ,GAEZ,MAARkkC,EACAtiB,GAAS,SAAS,QAAS,CAAC,EAAGA,GAAS,CAAEujB,oBAAqB,mBAE1DjB,IACLtiB,GAAS,SAAS,QAAS,CAAC,EAAGA,GAAS,GAA0BsiB,IAG1E,MAEA,GAAI,GAA4BhyB,KAAKoyB,EAAMR,MACvCliB,GAAS,SAAS,QAAS,CAAC,EAAGA,GAAS,GAA0B0iB,EAAMR,WAD5E,CAIA,IAAIsB,EAAW,GAAUd,EAAMR,MAC3BsB,IACAxjB,GAAS,SAAS,QAAS,CAAC,EAAGA,GAASwjB,IAE5C,IAAIC,EAAsC,GAAyCf,EAAMR,MACrFuB,IACAzjB,GAAS,SAAS,QAAS,CAAC,EAAGA,GAASyjB,GAP5C,CASJ,CACA,OAAOzjB,CACX,CCpSO,ICFH,GDEO,GAAW,CAClB,MAAO,CACH,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CAC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AyB,SAAgC1J,EAAGkU,GAExD,IADA,IAAI3Y,EAAQ,KACC,CACT,IAAIi4B,EAAI,GAAYxzB,EAAGkU,GACvB,QAAUx6B,IAAN85C,GAAmB,GAAcA,IAAM,GAAiBA,GACxD,MAEJj4B,EAAMjgB,KAAKk4C,GACXtf,GAASsf,GAAK,MAAU,EAAI,CAChC,CACA,OAAO,GAAc3tC,WAAM,EAAQ0V,EACvC,EAwzBJ,SAAS,GAASo6B,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,EACzC,CA8BA,SAAS,GAAcnC,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,CACR,CAKA,SAAS,GAAiBA,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAU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","sources":["webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/components/AnalyticsListener/LegacyAnalyticsListener.js","webpack:///./node_modules/@atlaskit/analytics-next/dist/es2019/components/AnalyticsListener/index.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useTrackedRef.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/usePlatformLeafEventHandler.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/theme/dist/es2019/constants.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/theme/dist/es2019/utils/get-theme.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/theme/dist/es2019/utils/themed.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/theme/dist/es2019/colors.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/theme/dist/es2019/components/theme.js","webpack:///./node_modules/@atlaskit/blanket/node_modules/@atlaskit/theme/dist/es2019/utils/create-theme.js","webpack:///./node_modules/@atlaskit/blanket/dist/es2019/blanket.js","webpack:///./node_modules/@atlaskit/ds-lib/dist/es2019/utils/keycodes.js","webpack:///./node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-close-on-escape-press.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/utils/use-force-render.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/entering/exiting-persistence.js","webpack:///./node_modules/@atlaskit/motion/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","webpack:///./node_modules/@atlaskit/motion/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@atlaskit/motion/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/utils/timer-hooks.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/entering/staggered-entrance.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/entering/keyframes-motion.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/utils/use-unique-id.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/entering/fade-in.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/utils/accessibility.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/utils/curves.js","webpack:///./node_modules/@atlaskit/motion/dist/es2019/utils/durations.js","webpack:///./node_modules/react-popper/lib/esm/usePopper.js","webpack:///./node_modules/react-popper/lib/esm/Popper.js","webpack:///./node_modules/@atlaskit/popper/dist/es2019/popper.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/internal/constants.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/internal/utils/portal-dom-utils.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/internal/components/internal-portal.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/internal/hooks/use-is-subsequent-render.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/internal/utils/portal-custom-event.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/internal/hooks/use-portal-event.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/constants.js","webpack:///./node_modules/@atlaskit/portal/dist/es2019/portal.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useTrackedRef.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/usePlatformLeafSyntheticEventHandler.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/internal/shared-schedule.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/internal/tooltip-manager.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/theme/dist/es2019/utils/get-theme.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/theme/dist/es2019/utils/themed.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/theme/dist/es2019/colors.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/theme/dist/es2019/components/theme.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/theme/dist/es2019/utils/create-theme.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/TooltipContainer.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/utilities.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/Tooltip.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/internal/use-unique-id.js","webpack:///./node_modules/@atlaskit/tooltip/dist/es2019/TooltipPrimitive.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@atlaskit/theme/dist/es2019/constants.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","webpack:///./node_modules/@atlaskit/tooltip/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/node_modules/@atlaskit/theme/dist/es2019/components/theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/node_modules/@atlaskit/theme/dist/es2019/utils/create-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/dist/es2019/components/utils.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/dist/es2019/constants.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/dist/es2019/components/styles.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/dist/es2019/components/icon.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/glyph/check.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/icon/glyph/question-circle.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/react-responsive/dist/react-responsive.js","webpack:///./node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack:///./node_modules/@emotion/styled/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack:///./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack:///./node_modules/bind-event-listener/dist/bind-all.js","webpack:///./node_modules/bind-event-listener/dist/bind.js","webpack:///./node_modules/bind-event-listener/dist/index.js","webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/react-clientside-effect/lib/index.es.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./node_modules/focus-lock/dist/es2015/constants.js","webpack:///./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack:///./node_modules/react-focus-lock/dist/es2015/medium.js","webpack:///./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/array.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/is.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/safe.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack:///./node_modules/focus-lock/dist/es2015/focusInside.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack:///./node_modules/focus-lock/dist/es2015/solver.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack:///./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack:///./node_modules/focus-lock/dist/es2015/utils/auto-focus.js","webpack:///./node_modules/focus-lock/dist/es2015/setFocus.js","webpack:///./node_modules/focus-lock/dist/es2015/index.js","webpack:///./node_modules/react-focus-lock/dist/es2015/util.js","webpack:///./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack:///./node_modules/focus-lock/dist/es2015/focusables.js","webpack:///./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack:///./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack:///./node_modules/react-focus-lock/dist/es2015/index.js","webpack:///./node_modules/react-popper/lib/esm/Manager.js","webpack:///./node_modules/react-popper/lib/esm/utils.js","webpack:///./node_modules/react-scrolllock/dist/ScrollLock.js","webpack:///./node_modules/react-scrolllock/dist/TouchScrollable.js","webpack:///./node_modules/react-scrolllock/dist/index.js","webpack:///./node_modules/react-scrolllock/dist/utils.js","webpack:///./node_modules/react-scrolllock/dist/withLockSheet.js","webpack:///./node_modules/react-scrolllock/dist/withTouchListeners.js","webpack:///./node_modules/react-uid/dist/es2019/context.js","webpack:///./node_modules/react-uid/dist/es2019/hooks.js","webpack:///./node_modules/react-uid/dist/es2019/uid.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/theme/dist/es2019/constants.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/theme/dist/es2019/utils/get-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/theme/dist/es2019/utils/themed.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/theme/dist/es2019/colors.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/react-intl/lib/src/components/injectIntl.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack:///./node_modules/intl-messageformat/node_modules/@formatjs/fast-memoize/lib/index.js","webpack:///./node_modules/intl-messageformat/lib/src/error.js","webpack:///./node_modules/intl-messageformat/lib/src/formatters.js","webpack:///./node_modules/intl-messageformat/lib/src/core.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/fast-memoize/lib/index.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/error.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/utils.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/react-intl/lib/src/utils.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/react-intl/lib/src/components/useIntl.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/react-intl/lib/src/components/message.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/hooks/use-desktop-media-query.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/hooks/use-fit-text.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/amounts-format.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/ccp-to-hams-pricing-plan-converter.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/extract-pricing-tiers-from-entry.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/get-local-unit-price.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/calculations/fixed-cost.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/calculations/marginal-per-unit.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/price-calculation.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/utils/get-free-price-calc.ts","webpack:///./node_modules/react-sweet-state/lib/esm/utils/hash.js","webpack:///./node_modules/react-sweet-state/lib/esm/defaults.js","webpack:///./node_modules/react-sweet-state/lib/esm/store/bind-actions.js","webpack:///./node_modules/react-sweet-state/lib/esm/utils/shallow-equal.js","webpack:///./node_modules/react-sweet-state/lib/esm/middlewares/update.js","webpack:///./node_modules/react-sweet-state/lib/esm/utils/supported-features.js","webpack:///./node_modules/react-sweet-state/lib/esm/utils/batched-updates.js","webpack:///./node_modules/react-sweet-state/lib/esm/utils/schedule.js","webpack:///./node_modules/react-sweet-state/lib/esm/store/create-state.js","webpack:///./node_modules/react-sweet-state/lib/esm/enhancers/devtools.js","webpack:///./node_modules/react-sweet-state/lib/esm/middlewares/index.js","webpack:///./node_modules/react-sweet-state/lib/esm/store/registry.js","webpack:///./node_modules/react-sweet-state/lib/esm/context.js","webpack:///./node_modules/react-sweet-state/lib/esm/utils/memoize.js","webpack:///./node_modules/react-sweet-state/lib/esm/utils/create-selector.js","webpack:///./node_modules/react-sweet-state/lib/esm/components/hook.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/store/actions.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/store/index.ts","webpack:///./node_modules/react-sweet-state/lib/esm/store/create.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/utils/constants.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/ds-lib/dist/es2019/utils/noop.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/theme/dist/es2019/components/theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/theme/dist/es2019/utils/create-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useTrackedRef.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/usePlatformLeafEventHandler.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/theme/dist/es2019/constants.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/theme/dist/es2019/utils/get-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/theme/dist/es2019/utils/themed.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/theme/dist/es2019/colors.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/dist/es2019/shared/block-events.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/dist/es2019/shared/colors.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/dist/es2019/shared/css.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/dist/es2019/shared/button-base.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-auto-focus.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/dist/es2019/button.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/button/dist/es2019/shared/get-is-only-single-icon.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-button.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useTrackedRef.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/theme/dist/es2019/components/theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/theme/dist/es2019/utils/create-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/radio/dist/es2019/styles.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/radio/dist/es2019/radio.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/ds-lib/dist/es2019/utils/noop.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/usePlatformLeafEventHandler.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/billing-period-selector.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useTrackedRef.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/usePlatformLeafEventHandler.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/theme/dist/es2019/components/theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/theme/dist/es2019/utils/create-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/platform-feature-flags/dist/es2019/debug.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/platform-feature-flags/dist/es2019/resolvers.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/platform-feature-flags/dist/es2019/index.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/theme/dist/es2019/constants.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/theme/dist/es2019/utils/get-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/theme/dist/es2019/utils/themed.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/node_modules/@atlaskit/theme/dist/es2019/colors.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/dist/es2019/component-tokens.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/dist/es2019/styles.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/textfield/dist/es2019/text-field.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/unit-count.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/user-tier.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/message.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/number.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/dateTime.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/plural.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/list.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/displayName.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@formatjs/intl/lib/src/create-intl.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/react-intl/lib/src/components/provider.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-intl-provider.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/icons/pricing-example-icon.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-states/pricing-example-header.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-states/pricing-example-annual.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-states/pricing-example-monthly.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-states/pricing-example.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-default.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-no-selector.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/pricing-example/pricing-example-container.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/feature-message.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/cta-button.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/modal-transition.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/analytics-next/dist/es2019/events/AnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/analytics-next/dist/es2019/events/UIAnalyticsEvent.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsContext.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useTrackedRef.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/usePlatformLeafEventHandler.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/analytics-next/dist/es2019/hooks/useAnalyticsEvents.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/utils/noop.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/theme/dist/es2019/constants.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/theme/dist/es2019/utils/get-theme.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/theme/dist/es2019/utils/themed.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/theme/dist/es2019/colors.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/constants.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/context.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/utils.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/components/positioner.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/components/modal-dialog.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-auto-focus.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/hooks/use-on-motion-finish.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/utils/merge-refs.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-lazy-ref.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-lazy-callback.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/hooks/use-modal-stack.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/internal/hooks/use-prevent-programmatic-scroll.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/dist/es2019/modal-wrapper.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-state-ref.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-previous-value.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/hooks/use-close-on-escape-press.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlaskit/modal-dialog/node_modules/@atlaskit/ds-lib/dist/es2019/utils/keycodes.js","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/modal-redirect-confirm.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-body.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-cards-container.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/center-justified-container.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/price-display.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/annual.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/enterprise/mobile-vertically-padded-container.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/enterprise/enterprise-contact.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/enterprise/enterprise-monthly.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/enterprise/enterprise-no-jpy.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/enterprise/enterprise-unmet-min.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/free.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/plan-card/plan-card-states/monthly.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/components/highest-display-price-font-size.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/hooks/use-fit-price-text-into-plan-card.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/price-finder.tsx","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/hooks/use-bounding-client-rect-ref.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/hooks/use-price-finder-data.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/node_modules/@atlassiansox/bxp-use-pricing/src/use-pricing.ts","webpack:///./node_modules/@atlassiansox/bxp-price-finder/src/utils/get-recommended-plan-name.ts","webpack:///./resources/js/react/cms-components/pricing-calculator/PriceFinderContainer.tsx","webpack:///./resources/js/react/cms-components/pricing-calculator/use-geo-currency.ts","webpack:///./node_modules/use-callback-ref/dist/es2019/useMergeRef.js","webpack:///./node_modules/use-callback-ref/dist/es2019/useRef.js","webpack:///./node_modules/use-callback-ref/dist/es2019/assignRef.js","webpack:///./node_modules/use-sidecar/dist/es2019/medium.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nconst ContextTypes = {\n getAtlaskitAnalyticsEventHandlers: PropTypes.func,\n getAtlaskitAnalyticsContext: PropTypes.func\n};\n\nconst noop = () => []; // eslint-disable-next-line @repo/internal/react/no-class-components\n\n\nclass AnalyticsListener extends Component {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"getChildContext\", () => ({\n getAtlaskitAnalyticsEventHandlers: this.getAnalyticsEventHandlers,\n getAtlaskitAnalyticsContext: this.getAtlaskitAnalyticsContext\n }));\n\n _defineProperty(this, \"getAnalyticsEventHandlers\", () => {\n const {\n channel,\n onEvent\n } = this.props;\n const {\n getAtlaskitAnalyticsEventHandlers = noop\n } = this.context;\n\n const handler = (event, eventChannel) => {\n if (channel === '*' || channel === eventChannel) {\n onEvent(event, eventChannel);\n }\n };\n\n return [handler, ...getAtlaskitAnalyticsEventHandlers()];\n });\n\n _defineProperty(this, \"getAtlaskitAnalyticsContext\", () => {\n const {\n getAtlaskitAnalyticsContext = noop\n } = this.context;\n return getAtlaskitAnalyticsContext();\n });\n\n this.contextValue = {\n getAtlaskitAnalyticsContext: this.getAtlaskitAnalyticsContext,\n getAtlaskitAnalyticsEventHandlers: this.getAnalyticsEventHandlers\n };\n }\n\n render() {\n const {\n children\n } = this.props;\n return /*#__PURE__*/React.createElement(AnalyticsReactContext.Provider, {\n value: this.contextValue\n }, children);\n }\n\n}\n\n_defineProperty(AnalyticsListener, \"contextTypes\", ContextTypes);\n\n_defineProperty(AnalyticsListener, \"childContextTypes\", ContextTypes);\n\nexport default AnalyticsListener;","import LegacyAnalyticsListener from './LegacyAnalyticsListener';\nimport ModernAnalyticsListener from './ModernAnalyticsListener';\nlet ExportedAnalyticsListener;\n\nif (typeof process !== 'undefined' && process.env['ANALYTICS_NEXT_MODERN_CONTEXT']) {\n ExportedAnalyticsListener = ModernAnalyticsListener;\n} else {\n ExportedAnalyticsListener = LegacyAnalyticsListener;\n}\n\nexport default ExportedAnalyticsListener;","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n constructor(props) {\n _defineProperty(this, \"_isAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n // just a shallow clone, don't change sub refs unless you want to\n // affect the original's too\n const payload = {\n ...this.payload\n };\n return new AnalyticsEvent({\n payload\n });\n });\n this.payload = props.payload;\n }\n update(updater) {\n if (typeof updater === 'function') {\n this.payload = updater(this.payload);\n }\n if (typeof updater === 'object') {\n this.payload = {\n ...this.payload,\n ...updater\n };\n }\n return this;\n }\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot clone an event after it's been fired.\");\n }\n return null;\n }\n const context = [...this.context];\n const handlers = [...this.handlers];\n\n /**\n * A hacky \"deep clone\" of the object. This is limited in that it wont\n * support functions, regexs, Maps, Sets, etc, but none of those need to\n * be represented in our payload.\n */\n const payload = JSON.parse(JSON.stringify(this.payload));\n return new UIAnalyticsEvent({\n context,\n handlers,\n payload\n });\n });\n _defineProperty(this, \"fire\", channel => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn('Cannot fire an event twice.');\n }\n return;\n }\n this.handlers.forEach(handler => handler(this, channel));\n this.hasFired = true;\n });\n this.context = props.context || [];\n this.handlers = props.handlers || [];\n this.hasFired = false;\n }\n update(updater) {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot update an event after it's been fired.\");\n }\n return this;\n }\n return super.update(updater);\n }\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n return useContext(AnalyticsReactContext);\n};","import { useEffect, useRef } from 'react';\nexport const useTrackedRef = value => {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n};","import { useCallback } from 'react';\nimport { useAnalyticsEvents } from './useAnalyticsEvents';\nimport { useTrackedRef } from './useTrackedRef';\n// WARNING: This hook will only function correctly for leaf node components - as in\n// no children inside the component will require analytics themselves.\n// Ignoring this warning will mean the analytics context of child components will not\n// include the context of this component, .e.g, lost data.\n// If you are going to have child components that require analytics use withAnalytics\n// or AnalyticsContext component instead.\nexport function usePlatformLeafEventHandler({\n fn,\n action,\n componentName,\n actionSubject,\n packageName,\n packageVersion,\n analyticsData\n}) {\n const {\n createAnalyticsEvent\n } = useAnalyticsEvents();\n\n // We put analyticsData and fn in a ref so that we don't need to break\n // memoization.\n // Generally these could be defined by consumers inline\n // and so we do this to avoid breaking memoization of useCallback\n const dataRef = useTrackedRef(analyticsData);\n const fnRef = useTrackedRef(fn);\n const handler = useCallback(value => {\n const analyticsEvent = createAnalyticsEvent({\n action,\n actionSubject: actionSubject || componentName,\n attributes: {\n componentName,\n packageName,\n packageVersion\n }\n });\n\n // To avoid wrapping this component in AnalyticsContext we manually\n // push the parent context's meta data into the context.\n // Note: this new 'context'\n const context = {\n componentName,\n packageName,\n packageVersion,\n ...dataRef.current\n };\n analyticsEvent.context.push(context);\n\n // fire an event on the atlaskit channel\n const clone = analyticsEvent.clone();\n if (clone) {\n clone.fire('atlaskit');\n }\n fnRef.current(value, analyticsEvent);\n }, [\n // These are strings and won't change\n action, componentName, actionSubject, packageName, packageVersion,\n // This function is memoized in the context\n createAnalyticsEvent,\n // these are a stable ref because of the useTrackedRef hook\n dataRef, fnRef]);\n return handler;\n}","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n const analyticsContext = useAnalyticsContext();\n const createAnalyticsEvent = useCallbackOne(payload => {\n return new UIAnalyticsEvent({\n context: analyticsContext.getAtlaskitAnalyticsContext(),\n handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n payload\n });\n }, [analyticsContext]);\n return {\n createAnalyticsEvent\n };\n}","import deprecationWarning from '@atlaskit/ds-lib/deprecation-warning';\nimport { B200, N30A, skeleton as skeletonColor } from './colors';\nexport const CHANNEL = '__ATLASKIT_THEME__';\nexport const DEFAULT_THEME_MODE = 'light';\nexport const THEME_MODES = ['light', 'dark'];\n\n/*\n These theme values are expressed as functions so that if we decide to make\n them dependent on props in the future, it wouldn't require a significant\n refactor everywhere they are being used.\n*/\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('border.radius', '3px')` instead.\n */\nexport const borderRadius = () => 3;\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('space.100', '8px')` instead with any of the space tokens.\n * Available space tokens can be found on {@link https://atlassian.design/foundations/spacing/#scale}\n */\nexport const gridSize = () => 8;\nexport const fontSize = () => 14;\nexport const fontSizeSmall = () => 11;\nexport const fontFamily = () => `-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\nexport const codeFontFamily = () => `'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace`;\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const focusRing = (color = `var(--ds-border-focused, ${B200})`, outlineWidth = gridSize() / 4) => {\n deprecationWarning('@atlaskit/theme', 'focus ring mixin', 'Please use `@atlaskit/focus-ring` instead.');\n return `\n &:focus {\n outline: none;\n box-shadow: 0px 0px 0px ${outlineWidth}px ${color};\n }\n`;\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const noFocusRing = () => `\n box-shadow: none;\n`;\nexport const layers = {\n card: () => 100,\n navigation: () => 200,\n dialog: () => 300,\n layer: () => 400,\n blanket: () => 500,\n modal: () => 510,\n flag: () => 600,\n spotlight: () => 700,\n tooltip: () => 9999\n};\n\n// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const visuallyHidden = () => {\n deprecationWarning('@atlaskit/theme', 'visually hidden mixin', 'Please use `@atlaskit/visually-hidden` instead.');\n return {\n border: '0 !important',\n clip: 'rect(1px, 1px, 1px, 1px) !important',\n height: '1px !important',\n overflow: 'hidden !important',\n padding: '0 !important',\n position: 'absolute !important',\n width: '1px !important',\n whiteSpace: 'nowrap !important'\n };\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const assistive = visuallyHidden;\n\n/**\n * These styles are mirrored in:\n * packages/design-system/menu/src/internal/components/skeleton-shimmer.tsx\n *\n * Please update both.\n */\nexport const skeletonShimmer = () => ({\n css: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate'\n },\n keyframes: {\n from: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`\n },\n to: {\n backgroundColor: `var(--ds-skeleton-subtle, ${N30A})`\n }\n }\n});","import { CHANNEL, DEFAULT_THEME_MODE, THEME_MODES } from '../constants';\n// Resolves the different types of theme objects in the current API\nexport default function getTheme(props) {\n if (props && props.theme) {\n // Theme is the global Atlaskit theme\n if (CHANNEL in props.theme) {\n return props.theme[CHANNEL];\n }\n // User has provided alternative modes\n else if ('mode' in props.theme && THEME_MODES.includes(props.theme.mode)) {\n return props.theme;\n }\n }\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE\n };\n}","/* eslint-disable prefer-rest-params */\n\nimport getTheme from './get-theme';\n// Unpack custom variants, and get correct value for the current theme\nfunction themedVariants(variantProp, variants) {\n return props => {\n const theme = getTheme(props);\n if (props && props[variantProp] && variants) {\n const modes = variants[props[variantProp]];\n if (modes && modes[theme.mode]) {\n const value = modes[theme.mode];\n if (value) {\n return value;\n } // TS believes value can be undefined\n }\n }\n\n return '';\n };\n}\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-4693 Internal documentation for deprecation (no external access)}\n */\nexport default function themed(modesOrVariant, variantModes) {\n if (typeof modesOrVariant === 'string') {\n return themedVariants(modesOrVariant, variantModes);\n }\n const modes = modesOrVariant;\n return props => {\n // Get theme from the user's props\n const theme = getTheme(props);\n // User isn't required to provide both light and dark values\n if (theme.mode in modes) {\n const value = modes[theme.mode]; // TS believes value can be undefined\n if (value) {\n return value;\n }\n }\n return '';\n };\n}","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */\n\nimport themed from './utils/themed';\n\n// Reds\nexport const R50 = '#FFEBE6';\nexport const R75 = '#FFBDAD';\nexport const R100 = '#FF8F73';\nexport const R200 = '#FF7452';\nexport const R300 = '#FF5630';\nexport const R400 = '#DE350B';\nexport const R500 = '#BF2600';\n\n// Yellows\nexport const Y50 = '#FFFAE6';\nexport const Y75 = '#FFF0B3';\nexport const Y100 = '#FFE380';\nexport const Y200 = '#FFC400';\nexport const Y300 = '#FFAB00';\nexport const Y400 = '#FF991F';\nexport const Y500 = '#FF8B00';\n\n// Greens\nexport const G50 = '#E3FCEF';\nexport const G75 = '#ABF5D1';\nexport const G100 = '#79F2C0';\nexport const G200 = '#57D9A3';\nexport const G300 = '#36B37E';\nexport const G400 = '#00875A';\nexport const G500 = '#006644';\n\n// Blues\nexport const B50 = '#DEEBFF';\nexport const B75 = '#B3D4FF';\nexport const B100 = '#4C9AFF';\nexport const B200 = '#2684FF';\nexport const B300 = '#0065FF';\nexport const B400 = '#0052CC';\nexport const B500 = '#0747A6';\n\n// Purples\nexport const P50 = '#EAE6FF';\nexport const P75 = '#C0B6F2';\nexport const P100 = '#998DD9';\nexport const P200 = '#8777D9';\nexport const P300 = '#6554C0';\nexport const P400 = '#5243AA';\nexport const P500 = '#403294';\n\n// Teals\nexport const T50 = '#E6FCFF';\nexport const T75 = '#B3F5FF';\nexport const T100 = '#79E2F2';\nexport const T200 = '#00C7E6';\nexport const T300 = '#00B8D9';\nexport const T400 = '#00A3BF';\nexport const T500 = '#008DA6';\n\n// Neutrals\nexport const N0 = '#FFFFFF';\nexport const N10 = '#FAFBFC';\nexport const N20 = '#F4F5F7';\nexport const N30 = '#EBECF0';\nexport const N40 = '#DFE1E6';\nexport const N50 = '#C1C7D0';\nexport const N60 = '#B3BAC5';\nexport const N70 = '#A5ADBA';\nexport const N80 = '#97A0AF';\nexport const N90 = '#8993A4';\nexport const N100 = '#7A869A';\nexport const N200 = '#6B778C';\nexport const N300 = '#5E6C84';\nexport const N400 = '#505F79';\nexport const N500 = '#42526E';\nexport const N600 = '#344563';\nexport const N700 = '#253858';\nexport const N800 = '#172B4D';\n\n// ATTENTION: update the tints if you update this\nexport const N900 = '#091E42';\n\n// Each tint is made of N900 and an alpha channel\nexport const N10A = 'rgba(9, 30, 66, 0.02)';\nexport const N20A = 'rgba(9, 30, 66, 0.04)';\nexport const N30A = 'rgba(9, 30, 66, 0.08)';\nexport const N40A = 'rgba(9, 30, 66, 0.13)';\nexport const N50A = 'rgba(9, 30, 66, 0.25)';\nexport const N60A = 'rgba(9, 30, 66, 0.31)';\nexport const N70A = 'rgba(9, 30, 66, 0.36)';\nexport const N80A = 'rgba(9, 30, 66, 0.42)';\nexport const N90A = 'rgba(9, 30, 66, 0.48)';\nexport const N100A = 'rgba(9, 30, 66, 0.54)';\nexport const N200A = 'rgba(9, 30, 66, 0.60)';\nexport const N300A = 'rgba(9, 30, 66, 0.66)';\nexport const N400A = 'rgba(9, 30, 66, 0.71)';\nexport const N500A = 'rgba(9, 30, 66, 0.77)';\nexport const N600A = 'rgba(9, 30, 66, 0.82)';\nexport const N700A = 'rgba(9, 30, 66, 0.89)';\nexport const N800A = 'rgba(9, 30, 66, 0.95)';\n\n// Dark Mode Neutrals\nexport const DN900 = '#E6EDFA';\nexport const DN800 = '#DCE5F5';\nexport const DN700 = '#CED9EB';\nexport const DN600 = '#B8C7E0';\nexport const DN500 = '#ABBBD6';\nexport const DN400 = '#9FB0CC';\nexport const DN300 = '#8C9CB8';\nexport const DN200 = '#7988A3';\nexport const DN100 = '#67758F';\nexport const DN90 = '#56637A';\nexport const DN80 = '#455166';\nexport const DN70 = '#3B475C';\nexport const DN60 = '#313D52';\nexport const DN50 = '#283447';\nexport const DN40 = '#202B3D';\nexport const DN30 = '#1B2638';\nexport const DN20 = '#121A29';\nexport const DN10 = '#0E1624';\n\n// ATTENTION: update the tints if you update this\nexport const DN0 = '#0D1424';\n\n// Each dark tint is made of DN0 and an alpha channel\nexport const DN800A = 'rgba(13, 20, 36, 0.06)';\nexport const DN700A = 'rgba(13, 20, 36, 0.14)';\nexport const DN600A = 'rgba(13, 20, 36, 0.18)';\nexport const DN500A = 'rgba(13, 20, 36, 0.29)';\nexport const DN400A = 'rgba(13, 20, 36, 0.36)';\nexport const DN300A = 'rgba(13, 20, 36, 0.40)';\nexport const DN200A = 'rgba(13, 20, 36, 0.47)';\nexport const DN100A = 'rgba(13, 20, 36, 0.53)';\nexport const DN90A = 'rgba(13, 20, 36, 0.63)';\nexport const DN80A = 'rgba(13, 20, 36, 0.73)';\nexport const DN70A = 'rgba(13, 20, 36, 0.78)';\nexport const DN60A = 'rgba(13, 20, 36, 0.81)';\nexport const DN50A = 'rgba(13, 20, 36, 0.85)';\nexport const DN40A = 'rgba(13, 20, 36, 0.89)';\nexport const DN30A = 'rgba(13, 20, 36, 0.92)';\nexport const DN20A = 'rgba(13, 20, 36, 0.95)';\nexport const DN10A = 'rgba(13, 20, 36, 0.97)';\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface')` instead.\n */\nexport const background = themed({\n light: `var(--ds-surface, ${N0})`,\n dark: `var(--ds-surface, ${DN30})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.selected')` instead.\n */\nexport const backgroundActive = themed({\n light: `var(--ds-background-selected, ${B50})`,\n dark: `var(--ds-background-selected, ${B75})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.neutral.hovered')` instead.\n */\nexport const backgroundHover = themed({\n light: `var(--ds-background-neutral-hovered, ${N30})`,\n dark: `var(--ds-background-neutral-hovered, ${DN70})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface.overlay')` instead.\n */\nexport const backgroundOnLayer = themed({\n light: `var(--ds-surface-overlay, ${N0})`,\n dark: `var(--ds-surface-overlay, ${DN50})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const text = themed({\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const textHover = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.selected')` instead.\n */\nexport const textActive = themed({\n light: `var(--ds-text-selected, ${B400})`,\n dark: `var(--ds-text-selected, ${B400})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use token('color.text.subtlest', N200) instead. Use DN200 as the fallback color for dark mode.\n */\nexport const placeholderText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const heading = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleHeading = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\nexport const codeBlock = themed({\n light: N20,\n dark: DN50\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link')` instead.\n */\nexport const link = themed({\n light: `var(--ds-link, ${B400})`,\n dark: `var(--ds-link, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkHover = themed({\n light: `var(--ds-link-pressed, ${B300})`,\n dark: `var(--ds-link-pressed, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkActive = themed({\n light: `var(--ds-link-pressed, ${B500})`,\n dark: `var(--ds-link-pressed, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.border.focused', B200)` instead.\n */\nexport const linkOutline = themed({\n light: `var(--ds-border-focused, ${B200})`,\n dark: `var(--ds-border-focused, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.brand.bold')` instead.\n */\nexport const primary = themed({\n light: `var(--ds-background-brand-bold, ${B400})`,\n dark: `var(--ds-background-brand-bold, ${B100})`\n});\nexport const blue = themed({\n light: B400,\n dark: B100\n});\nexport const teal = themed({\n light: T300,\n dark: T200\n});\nexport const purple = themed({\n light: P300,\n dark: P100\n});\nexport const red = themed({\n light: R300,\n dark: R300\n});\nexport const yellow = themed({\n light: Y300,\n dark: Y300\n});\nexport const green = themed({\n light: G300,\n dark: G300\n});\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.skeleton')` instead.\n */\nexport const skeleton = () => `var(--ds-skeleton, ${N20A})`;","import { createTheme } from '../utils/create-theme';\n\n// Create default global light theme\nconst {\n Provider,\n Consumer,\n useTheme\n} = createTheme(() => ({\n mode: 'light'\n}));\nexport { useTheme as useGlobalTheme };\nexport default {\n Provider,\n Consumer\n};","import React, { createContext, useCallback, useContext } from 'react';\n/**\n * createTheme is used to create a set of Providers and Consumers for theming components.\n * - Takes a default theme function; this theme function gets a set of props, and returns tokens\n * based on those props. An example of this default theme function is one that produces the standard\n * appearance of the component\n * - Returns three things - a Provider that allow for additional themes to be applied, a Consumer\n * that can get the current theme and fetch it, and a custom hook - useTheme which provides an alternate (although functionally the same) API\n * to the Consumer.\n */\nexport function createTheme(defaultGetTokens) {\n const emptyThemeFn = (getTokens, props) => getTokens(props);\n\n /**\n * Internally, Theme uses React Context, with internal providers and consumers.\n * The React Context passes only a function that gets props, and turns them into tokens. This\n * function gets mixed as more Providers with their own themes are added. This mixed function\n * is ultimately picked up by Consumers, which implement a context consumer internally to fetch\n * the theme.\n */\n const ThemeContext = /*#__PURE__*/createContext(defaultGetTokens);\n function useTheme(themeProps) {\n const theme = useContext(ThemeContext);\n const themeFn = theme || emptyThemeFn;\n const tokens = themeFn(themeProps);\n return tokens;\n }\n\n // The Theme Consumer takes a function as its child - this function takes tokens, and the\n // return value is generally a set of nodes with the tokens applied appropriately.\n function Consumer(props) {\n const {\n children,\n ...themeProps\n } = props;\n\n // @ts-ignore See issue for more info: https://github.com/Microsoft/TypeScript/issues/10727\n // Argument of type 'Pick ReactNode; }, Exclude>' is not assignable to parameter of type 'ThemeProps'.ts(2345)\n const tokens = useTheme(themeProps);\n // We add a fragment to ensure we don't break people upgrading.\n // Previously they may have been able to pass in undefined without things blowing up.\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(tokens));\n }\n\n /**\n * The Theme Provider takes regular nodes as its children, but also takes a *theme function*\n * - The theme function takes a set of props, as well as a function (getTokens) that can turn props into tokens.\n * - The getTokens function isn't called immediately - instead the props are passed\n * through a mix of parent theming functions\n * Children of this provider will receive this mixed theme\n */\n function Provider(props) {\n const themeFn = useContext(ThemeContext);\n const valueFn = props.value || emptyThemeFn;\n const mixedFn = useCallback(themeProps => valueFn(themeFn, themeProps), [themeFn, valueFn]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: mixedFn\n }, props.children);\n }\n return {\n Consumer,\n Provider,\n useTheme\n };\n}","/** @jsx jsx */\nimport { forwardRef, memo, useCallback, useRef } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { usePlatformLeafEventHandler } from '@atlaskit/analytics-next/usePlatformLeafEventHandler';\nimport noop from '@atlaskit/ds-lib/noop';\nimport { DN90A, N100A } from '@atlaskit/theme/colors';\nimport { useGlobalTheme } from '@atlaskit/theme/components';\nimport { layers } from '@atlaskit/theme/constants';\nconst packageName = \"@atlaskit/blanket\";\nconst packageVersion = \"12.4.3\";\nconst analyticsAttributes = {\n componentName: 'blanket',\n packageName,\n packageVersion\n};\nconst baseStyles = css({\n position: 'fixed',\n zIndex: layers.blanket(),\n inset: 0,\n overflowY: 'auto',\n pointerEvents: 'initial'\n});\nconst shouldAllowClickThroughStyles = css({\n pointerEvents: 'none'\n});\nconst invisibleStyles = css({\n backgroundColor: 'transparent'\n});\nconst lightBgStyles = css({\n backgroundColor: `var(--ds-blanket, ${N100A})`\n});\nconst darkBgStyles = css({\n backgroundColor: `var(--ds-blanket, ${DN90A})`\n});\nconst backgroundStyle = {\n light: lightBgStyles,\n dark: darkBgStyles\n};\n\n/**\n * __Blanket__\n *\n * A Blanket provides the overlay layer for components such as a modal dialog or a tooltip\n *\n * - [Examples](https://atlaskit.atlassian.com/examples/design-system/blanket/basic-usage)\n */\nconst Blanket = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Blanket({\n shouldAllowClickThrough = false,\n isTinted = false,\n onBlanketClicked = noop,\n testId,\n children,\n analyticsContext\n}, ref) {\n const {\n mode\n } = useGlobalTheme();\n const mouseDownTarget = useRef(null);\n const onBlanketClickedWithAnalytics = usePlatformLeafEventHandler({\n fn: onBlanketClicked,\n action: 'clicked',\n analyticsData: analyticsContext,\n ...analyticsAttributes\n });\n const blanketClickOutsideChildren = useCallback(e => e.currentTarget === e.target && mouseDownTarget.current === e.target ? onBlanketClickedWithAnalytics(e) : undefined, [onBlanketClickedWithAnalytics]);\n const onClick = shouldAllowClickThrough ? undefined : blanketClickOutsideChildren;\n const onMouseDown = useCallback(e => {\n mouseDownTarget.current = e.target;\n }, []);\n return jsx(\"div\", {\n role: \"presentation\",\n css: [baseStyles, shouldAllowClickThrough && shouldAllowClickThroughStyles, backgroundStyle[mode], !isTinted && invisibleStyles],\n onClick: onClick,\n onMouseDown: onMouseDown,\n \"data-testid\": testId,\n ref: ref\n }, children);\n}));\nBlanket.displayName = 'Blanket';\nexport default Blanket;","/**\n * Character key codes which can be used in keyboard events.\n */\nexport const KEY_UP = 'ArrowUp';\nexport const KEY_DOWN = 'ArrowDown';\nexport const KEY_HOME = 'Home';\nexport const KEY_END = 'End';\nexport const ESCAPE = 'Escape';","import { useCallback, useEffect, useRef } from 'react';\nimport { bindAll } from 'bind-event-listener';\nimport { ESCAPE } from '../utils/keycodes';\n/**\n * Calls back when the escape key is pressed.\n * To be used exclusively for closing layered components.\n * Use the `isDisabled` argument to ignore closing events.\n *\n * ```js\n * useCloseOnEscapePress({\n * onClose: () => {},\n * isDisabled: false,\n * });\n * ```\n */\nexport default function useCloseOnEscapePress({\n onClose,\n isDisabled\n}) {\n const escapePressed = useRef(false);\n const onKeyDown = useCallback(e => {\n if (isDisabled || escapePressed.current || e.key !== ESCAPE) {\n // We're either already handling the key down event or it's not escape.\n // Bail early!\n return;\n }\n escapePressed.current = true;\n onClose(e);\n }, [onClose, isDisabled]);\n const onKeyUp = useCallback(() => {\n escapePressed.current = false;\n }, []);\n useEffect(() => {\n return bindAll(document, [{\n type: 'keydown',\n listener: onKeyDown\n }, {\n type: 'keyup',\n listener: onKeyUp\n }], {\n capture: false\n });\n }, [onKeyDown, onKeyUp]);\n}","import { useCallback, useState } from 'react';\nexport const useForceRender = () => {\n const [, updateState] = useState({});\n const forceRender = useCallback(() => updateState({}), []);\n return forceRender;\n};","import React, { Children, createContext, memo, useContext, useMemo, useRef } from 'react';\nimport { isReducedMotion } from '../utils/accessibility';\nimport { useForceRender } from '../utils/use-force-render';\n\n/**\n * Internally we will be playing with an element that will always have a key defined.\n */\n\n/**\n * Internal data passed to child motions.\n */\n\n// We define empty context here so the object doesn't change.\nconst emptyContext = {\n // Motions will always appear if not inside a exiting persistence component.\n appear: true,\n isExiting: false\n};\nconst ExitingContext = /*#__PURE__*/createContext(emptyContext);\nconst isAnyPreviousKeysMissingFromCurrent = (currentMap, previous) => {\n for (let i = 0; i < previous.length; i++) {\n const element = previous[i];\n const key = element.key;\n if (!currentMap[key]) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * This method will wrap any React element with a context provider. We're using context (instead of\n * cloneElement) so we can communicate between multiple elements without the need of prop drilling\n * (results in a better API for consumers).\n */\nconst wrapChildWithContextProvider = (child, value = emptyContext) => {\n return /*#__PURE__*/React.createElement(ExitingContext.Provider, {\n key: `${child.key}-provider`,\n value: value\n }, child);\n};\nconst childrenToObj = children => {\n return children.reduce((acc, child) => {\n acc[child.key] = child;\n return acc;\n }, {});\n};\nconst spliceNewElementsIntoPrevious = (current, previous) => {\n const splicedChildren = previous.concat([]);\n const previousMap = childrenToObj(previous);\n for (let i = 0; i < current.length; i++) {\n const child = current[i];\n const childIsNew = !previousMap[child.key];\n if (childIsNew) {\n // This will insert the new element after the previous element.\n splicedChildren.splice(i + 1, 0, child);\n }\n }\n return splicedChildren;\n};\n\n/**\n * This function will convert all children types to an array while also filtering out non-valid React elements.\n */\nconst childrenToArray = children => {\n const childrenAsArray = [];\n\n // We convert children to an array using this helper method as it will add keys to children that do not\n // have them, such as when we have hardcoded children that are conditionally rendered.\n Children.toArray(children).forEach(child => {\n // We ignore any boolean children to make our code a little more simple later on,\n // and also filter out any falsies (empty strings, nulls, and undefined).\n if (typeof child !== 'boolean' && Boolean(child)) {\n // Children WILL have a key after being forced into an array using the React.Children helper.\n childrenAsArray.push(child);\n }\n });\n return childrenAsArray;\n};\n\n/**\n * This handles the case when a render updates during an exit motion.\n * If any child is mounted again we removed them from the exiting children object and return true.\n */\nconst hasAnyExitingChildMountedAgain = (exitingChildren, children) => {\n let exitingChildMountedAgain = false;\n children.forEach(child => {\n if (exitingChildren.current[child.key]) {\n exitingChildMountedAgain = true;\n delete exitingChildren.current[child.key];\n }\n });\n return exitingChildMountedAgain;\n};\n\n/**\n * __ExitingPersistence__\n *\n * Useful for enabling elements to persist and animate away when they are removed from the DOM.\n *\n * - [Examples](https://atlaskit.atlassian.com/packages/design-system/motion/docs/entering-motions)\n */\nconst ExitingPersistence = /*#__PURE__*/memo(({\n appear: appearFromProp = false,\n children: childs,\n exitThenEnter\n}) => {\n const children = childrenToArray(childs);\n const childrenObj = childrenToObj(children);\n const previousChildren = useRef([]);\n const persistedChildren = useRef([]);\n const forceRender = useForceRender();\n const exitingChildren = useRef({});\n const appear = useRef(appearFromProp);\n const defaultContextValue = useMemo(() => ({\n appear: appear.current,\n isExiting: false\n }),\n // React rules of hooks says this isn't needed because mutating appear won't cause a re-render.\n // While technically true - it will trigger this to make a new object on the _next_ render which is what we want.\n // Remove this or use appear instead of appear.current and you will notice a test breaks.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [appear.current]);\n if (isReducedMotion()) {\n return children;\n }\n if (!appear.current) {\n // We always want child motions to appear after the initial mount.\n appear.current = true;\n }\n\n // This entire block can't be an effect because we need it to run synchronously during a render\n // else when elements are being removed they will be remounted instead of being updated.\n if (previousChildren.current.length && isAnyPreviousKeysMissingFromCurrent(childrenObj, previousChildren.current)) {\n if (persistedChildren.current.length === 0 || hasAnyExitingChildMountedAgain(exitingChildren, children)) {\n persistedChildren.current = previousChildren.current;\n }\n\n // We have persisted children now set from previous children.\n // Let's update previous children so we have it available next render.\n previousChildren.current = children;\n return (exitThenEnter ? persistedChildren.current : spliceNewElementsIntoPrevious(children, persistedChildren.current)).map(child => {\n // eslint-disable-next-line @repo/internal/react/no-children-properties-access\n const currentChild = childrenObj[child.key];\n if (!currentChild) {\n // We've found an exiting child - mark it!\n exitingChildren.current[child.key] = true;\n return wrapChildWithContextProvider(child, {\n isExiting: true,\n appear: true,\n onFinish: () => {\n delete exitingChildren.current[child.key];\n\n // We will only remove the exiting elements when any subsequent exiting elements have also finished.\n // Think of removing many items from a todo list - when removing a few over a few clicks we don't\n // want the list jumping around when they exit.\n if (Object.keys(exitingChildren.current).length === 0) {\n // Set previous children to nothing.\n // This let's us skip the next render check as it's assumed children and previous will be the same.\n previousChildren.current = [];\n persistedChildren.current = [];\n\n // Re-render after the element(s) have animated away which will end up rendering the latest children.\n forceRender();\n }\n }\n });\n }\n\n // This element isn't exiting.\n // Wrap context and let's continue on our way.\n return wrapChildWithContextProvider(currentChild, defaultContextValue);\n });\n } else {\n previousChildren.current = children;\n }\n return children.map(child => wrapChildWithContextProvider(child, defaultContextValue));\n});\nexport const useExitingPersistence = () => {\n return useContext(ExitingContext);\n};\nExitingPersistence.displayName = 'ExitingPersistence';\nexport default ExitingPersistence;","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import { useCallback, useEffect, useRef } from 'react';\nconst getHookDeps = opts => {\n switch (opts.cleanup) {\n case 'next-effect':\n return undefined;\n case 'unmount':\n default:\n return [];\n }\n};\n\n/**\n * Will return request animation frame as a function which will clean itself up.\n */\nexport const useRequestAnimationFrame = (opts = {\n cleanup: 'unmount'\n}) => {\n const frames = useRef([]);\n useEffect(() => {\n return () => {\n if (frames.current.length) {\n frames.current.forEach(id => cancelAnimationFrame(id));\n frames.current = [];\n }\n };\n // We dynamically set this so we either clean up on the next effect - or on unmount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, getHookDeps(opts));\n return useCallback(handler => {\n const id = requestAnimationFrame(time => {\n frames.current = frames.current.filter(frameId => frameId !== id);\n handler(time);\n });\n frames.current.push(id);\n }, []);\n};\n\n/**\n * Will return set timeout as a function which will clean itself up.\n */\nexport const useSetTimeout = (opts = {\n cleanup: 'unmount'\n}) => {\n const timeouts = useRef([]);\n useEffect(() => {\n return () => {\n if (timeouts.current.length) {\n timeouts.current.forEach(id => clearTimeout(id));\n timeouts.current = [];\n }\n };\n // We dynamically set this so we either clean up on the next effect - or on unmount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, getHookDeps(opts));\n return useCallback((handler, timeout, ...args) => {\n const id = setTimeout(() => {\n timeouts.current = timeouts.current.filter(timeoutId => timeoutId !== id);\n handler();\n }, timeout, ...args);\n timeouts.current.push(id);\n }, []);\n};","import React, { createContext, useContext, useRef, useState } from 'react';\nimport noop from '@atlaskit/ds-lib/noop';\nimport { useLayoutEffect } from '../utils/use-layout-effect';\nimport { useUniqueId } from '../utils/use-unique-id';\nconst StaggeredEntranceContext = /*#__PURE__*/createContext(() => ({\n isReady: true,\n delay: 0,\n ref: noop\n}));\nexport const useStaggeredEntrance = () => {\n const indentifier = useUniqueId();\n const context = useContext(StaggeredEntranceContext);\n return context(indentifier);\n};\n\n/**\n * For a list of elements that need to animate in,\n * this should be used in conjunction with entering components.\n * This does not need Javascript to execute so it will run immediately for any SSR rendered React apps before the JS has executed.\n *\n * Will dynamically add delay to each child entering component.\n * Unfortunately all entering components _NEED_ to be a direct descendant.\n */\nconst StaggeredEntrance = ({\n children,\n column,\n columns = 'responsive',\n delayStep = 50\n}) => {\n const elementRefs = useRef([]);\n const indexes = [];\n const [actualColumns, setActualColumns] = useState(() => {\n if (typeof columns === 'number') {\n // A hardcoded columns is set so bail out and set it to that!\n return columns;\n }\n if (typeof column === 'number') {\n // A hardcoded column is set so we will set actualColumns to be 1.\n return 1;\n }\n\n // We are in \"responsive\" mode.\n // So we will be calculating when the Javascript executes on the client how many columns there will be.\n return 0;\n });\n useLayoutEffect(() => {\n // We want to only run this code when we are in \"responsive\" mode.\n // It is assumed we are in responsive mode if `columns` is \"responsive\",\n // we have children element refs ready to be read (i.e. if there are no children this won't run as well)\n // and finally that `actualColumns` is `0` - this is because for the first render cycle `actualColumns` will be `0` (set above)\n // and then after this layout effect runs the value for `actualColumns` will then be calculated and set.\n if (columns === 'responsive' && elementRefs.current.length && actualColumns === 0) {\n let currentTop = 0;\n let numberColumns = 0;\n if (elementRefs.current.length <= 1) {\n setActualColumns(1);\n return;\n }\n\n // We set the current top to the first elements.\n // We will be comparing this and incrementing the column count\n // until we hit an element that has a different offset top (or we run out of elements).\n currentTop = elementRefs.current[0] ? elementRefs.current[0].offsetTop : 0;\n for (let i = 0; i < elementRefs.current.length; i++) {\n const child = elementRefs.current[i];\n if (!child) {\n break;\n }\n if (currentTop === child.offsetTop) {\n numberColumns += 1;\n if (elementRefs.current.length - 1 === i) {\n setActualColumns(numberColumns);\n }\n continue;\n }\n setActualColumns(numberColumns);\n break;\n }\n }\n // We only want this effect to run once - on initial mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return /*#__PURE__*/React.createElement(StaggeredEntranceContext.Provider, {\n value: id => {\n if (!indexes.includes(id)) {\n indexes.push(id);\n }\n const isReady = actualColumns > 0;\n const index = indexes.indexOf(id);\n const currentColumn = column || index % actualColumns;\n const currentRow = Math.floor(index / actualColumns);\n const distanceFromTopLeftElement = currentRow + currentColumn;\n // We don't want loads of elements to have the same staggered delay as it ends up looking slow for users.\n // To get around that we calculate the logarithm using `distanceFromTopLeftElement` which ends making\n // elements appear faster the further away from the top left element.\n const delay = Math.ceil(Math.log(distanceFromTopLeftElement + 1) * delayStep * 1.5) || 0;\n return {\n delay,\n isReady,\n ref: element => elementRefs.current[index] = element\n };\n }\n }, children);\n};\nexport default StaggeredEntrance;","import React, { useEffect, useState } from 'react';\nimport { ClassNames, keyframes } from '@emotion/react';\nimport { prefersReducedMotion } from '../utils/accessibility';\nimport { largeDurationMs } from '../utils/durations';\nimport { useSetTimeout } from '../utils/timer-hooks';\nimport { useExitingPersistence } from './exiting-persistence';\nimport { useStaggeredEntrance } from './staggered-entrance';\n\n/**\n * These are props that motions should use as their external props for consumers.\n * See [FadeIn](packages/helpers/motion/src/entering/fade-in.tsx) for an example usage.\n */\n\n/**\n * Used to multiply the initial duration for exiting motions.\n */\nconst EXITING_MOTION_MULTIPLIER = 0.5;\n\n/**\n * This is the base INTERNAL component used for all other entering motions.\n * This does not need Javascript to execute on the client so it will run immediately\n * for any SSR rendered React apps before the JS has executed.\n */\nconst EnteringMotion = ({\n children,\n animationTimingFunction,\n enteringAnimation,\n exitingAnimation,\n isPaused,\n onFinish: onFinishMotion,\n duration = largeDurationMs\n}) => {\n const staggered = useStaggeredEntrance();\n const {\n isExiting,\n onFinish: onExitFinished,\n appear\n } = useExitingPersistence();\n const setTimeout = useSetTimeout();\n const paused = isPaused || !staggered.isReady;\n const delay = isExiting ? 0 : staggered.delay;\n const state = isExiting ? 'exiting' : 'entering';\n const [hasAnimationStyles, setHasAnimationStyles] = useState(appear);\n useEffect(() => {\n // Tracking this to prevent changing state on an unmounted component\n let isCancelled = false;\n if (paused) {\n return;\n }\n\n // On initial mount if elements aren't set to animate on appear, we return early and callback\n if (!appear) {\n onFinishMotion && onFinishMotion(state);\n return;\n }\n\n // Elements may need animation styles back after initial mount (they could animate out)\n setHasAnimationStyles(true);\n setTimeout(() => {\n if (state === 'exiting') {\n onExitFinished && onExitFinished();\n }\n if (!isCancelled) {\n setHasAnimationStyles(false);\n }\n onFinishMotion && onFinishMotion(state);\n }, isExiting ? duration * EXITING_MOTION_MULTIPLIER : duration + delay);\n return () => {\n isCancelled = true;\n };\n // We ignore this for onFinishMotion as consumers could potentially inline the function\n // which would then trigger this effect every re-render.\n // We want to make it easier for consumers so we go down this path unfortunately.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onExitFinished, state, isExiting, duration, delay, paused, setTimeout]);\n return /*#__PURE__*/React.createElement(ClassNames, null, ({\n css\n }) => children({\n ref: staggered.ref,\n className: hasAnimationStyles ? css({\n ...prefersReducedMotion(),\n animationDelay: `${delay}ms`,\n animationDuration: `${isExiting ? duration * EXITING_MOTION_MULTIPLIER : duration}ms`,\n animationFillMode: isExiting ? 'forwards' : 'backwards',\n animationName: `${keyframes(isExiting ? exitingAnimation || enteringAnimation : enteringAnimation)}`,\n animationPlayState: paused ? 'paused' : 'running',\n animationTimingFunction: animationTimingFunction(state)\n }) : ''\n }, state));\n};\nexport default EnteringMotion;","/* eslint-disable @repo/internal/react/disallow-unstable-values */\nimport { useRef } from 'react';\n\n/**\n * Will return a unique id that does not change between renders.\n * Try not use this to render DOM markup (attributes or otherwise)\n * as you will probably not get the same result on the Server vs. Client.\n */\nexport function useUniqueId() {\n const identifier = useRef('');\n if (!identifier.current) {\n identifier.current = '_' + (Number(String(Math.random()).slice(2)) + Date.now() + Math.round(performance.now())).toString(36);\n }\n return identifier.current;\n}","import React from 'react';\nimport { easeInOut } from '../utils/curves';\nimport { largeDurationMs } from '../utils/durations';\nimport KeyframesMotion from './keyframes-motion';\nconst directionMotions = {\n proportional: {\n bottom: 'translate3d(0, calc(5% + 4px), 0)',\n left: 'translate3d(calc(-5% - 4px), 0, 0)',\n right: 'translate3d(calc(5% + 4px), 0, 0)',\n top: 'translate3d(0, calc(-5% - 4px), 0)'\n },\n constant: {\n bottom: 'translate3d(0, 4px, 0)',\n left: 'translate3d(-4px, 0, 0)',\n right: 'translate3d(4px, 0, 0)',\n top: 'translate3d(0, -4px, 0)'\n }\n};\nconst invertedDirection = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nexport const fadeInAnimation = (direction, distance = 'proportional') => {\n return {\n from: {\n opacity: 0,\n ...(direction !== undefined && {\n transform: directionMotions[distance][direction]\n })\n },\n '50%': {\n opacity: 1\n },\n to: {\n transform: direction !== undefined ? 'none' : undefined\n }\n };\n};\nexport const fadeOutAnimation = (direction, distance = 'proportional') => ({\n from: {\n opacity: 1,\n transform: direction !== undefined ? 'translate3d(0, 0, 0)' : undefined\n },\n to: {\n opacity: 0,\n ...(direction !== undefined && {\n transform: directionMotions[distance][direction]\n })\n }\n});\n\n/**\n * Props for controlling the behavior of the FadeIn animation\n */\n\n/**\n * __FadeIn__\n *\n * Useful for fading in one or more elements.\n *\n * - [Examples](https://atlaskit.atlassian.com/packages/design-system/motion/docs/entering-motions)\n */\nconst FadeIn = ({\n children,\n duration = largeDurationMs,\n entranceDirection,\n exitDirection,\n distance = 'proportional',\n onFinish,\n isPaused\n}) => {\n const invertedEntranceDirection = entranceDirection && invertedDirection[entranceDirection];\n return /*#__PURE__*/React.createElement(KeyframesMotion, {\n duration: duration,\n enteringAnimation: fadeInAnimation(entranceDirection, distance),\n exitingAnimation: fadeOutAnimation(exitDirection || invertedEntranceDirection, distance),\n animationTimingFunction: () => easeInOut,\n onFinish: onFinish,\n isPaused: isPaused\n }, children);\n};\nexport default FadeIn;","import { useEffect, useState } from 'react';\nimport { bind } from 'bind-event-listener';\nconst isMatchMediaAvailable = () => typeof window !== 'undefined' && 'matchMedia' in window;\n\n/**\n * Use for any programatic motions needed at runtime.\n * Will return `true` if the current user prefers reduced motion.\n * This is generally set through OS preferences/settings.\n */\nexport const isReducedMotion = () => {\n if (!isMatchMediaAvailable()) {\n return false;\n }\n const {\n matches\n } = window.matchMedia('(prefers-reduced-motion: reduce)');\n return matches;\n};\n\n/**\n * A React hook version of {@link isReducedMotion}.\n * Useful for React components that need to re-render if the user's motion\n * preference changes at runtime.\n */\nexport const useIsReducedMotion = () => {\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(isReducedMotion);\n useEffect(() => {\n if (!isMatchMediaAvailable()) {\n return;\n }\n const mediaQueryList = window.matchMedia('(prefers-reduced-motion: reduce)');\n const onChange = event => setPrefersReducedMotion(event.matches);\n return bind(mediaQueryList, {\n type: 'change',\n listener: onChange\n });\n }, []);\n return prefersReducedMotion;\n};\n\n/**\n * Use for any CSS based motion (animation or transition).\n * Always put at the end of your declaration for correct use of the cascade.\n * Reduced motion preference is generally set through OS preferences/settings.\n */\nexport const prefersReducedMotion = () => ({\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'none',\n transition: 'none'\n }\n});","export const easeInOut = 'cubic-bezier(0.15,1,0.3,1)';\nexport const easeOut = 'cubic-bezier(0.2,0,0,1)';\nexport const easeIn = 'cubic-bezier(0.8,0,0,0.8)';","/**\n * Think of this as the motion equivalent of the @atlaskit/theme `grid()`.\n */\nexport const durationStep = 25;\nexport const smallDurationMs = durationStep * 4;\nexport const mediumDurationMs = durationStep * 14;\nexport const largeDurationMs = durationStep * 28;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import React, { useMemo } from 'react';\nimport { Popper as ReactPopper } from 'react-popper';\nexport { placements } from '@popperjs/core';\n// Export types from PopperJS / React Popper\n\nconst constantModifiers = [{\n name: 'flip',\n options: {\n flipVariations: false,\n padding: 5,\n boundary: 'clippingParents',\n rootBoundary: 'viewport'\n }\n}, {\n name: 'preventOverflow',\n options: {\n padding: 5,\n rootBoundary: 'document'\n }\n}];\nfunction defaultChildrenFn() {\n return null;\n}\nconst defaultOffset = [0, 8];\nexport function Popper({\n children = defaultChildrenFn,\n offset = defaultOffset,\n placement = 'bottom-start',\n referenceElement = undefined,\n modifiers,\n strategy = 'fixed'\n}) {\n const [offsetX, offsetY] = offset;\n // Merge a new offset modifier only if new offset values passed in\n const internalModifiers = useMemo(() => {\n const offsetModifier = {\n name: 'offset',\n options: {\n offset: [offsetX, offsetY]\n }\n };\n return [...constantModifiers, offsetModifier];\n }, [offsetX, offsetY]);\n\n // Merge custom props and memoize\n const mergedModifiers = useMemo(() => {\n if (modifiers == null) {\n return internalModifiers;\n }\n return [...internalModifiers, ...modifiers];\n }, [internalModifiers, modifiers]);\n return /*#__PURE__*/React.createElement(ReactPopper, {\n modifiers: mergedModifiers,\n placement: placement,\n strategy: strategy,\n referenceElement: referenceElement\n }, children);\n}","export const portalParentClassName = 'atlaskit-portal-container';\nexport const portalParentSelector = 'body > .atlaskit-portal-container';\nexport const portalClassName = 'atlaskit-portal';","import { portalClassName, portalParentClassName, portalParentSelector } from '../constants';\n\n/**\n * Creates a new portal container element with provided z-index and class name 'atlaskit-portal',\n * it is not be attached to any DOM node at this stage.\n * @param {number | string} zIndex - the z-index value of the newly created portal container element\n * @return {number} - The newly created container element\n */\nexport const createContainer = zIndex => {\n const container = document.createElement('div');\n container.className = portalClassName;\n container.style.zIndex = `${zIndex}`;\n return container;\n};\n\n/**\n * Returns document body element\n * @return {number} - The document body element\n */\nconst getBody = () => {\n return document.body;\n};\n\n/**\n * Returns portal parent container. If no container exists already then it creates a new container with class name 'atlaskit-portal-container'\n * @return {Element} - The portal parent container div element\n */\nconst getPortalParent = () => {\n const parentElement = document.querySelector(portalParentSelector);\n if (!parentElement) {\n const parent = document.createElement('div');\n parent.className = portalParentClassName;\n // we are setting display to flex because we want each portal to create a new stacking context\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n parent.style.display = 'flex';\n getBody().appendChild(parent);\n return parent;\n }\n return parentElement;\n};\n\n/**\n * Removes portal container from portal parent container\n * @param {HTMLDivElement | undefined} container - portal container to be removed from portal parent container\n */\nexport const removePortalContainer = container => {\n getPortalParent().removeChild(container);\n};\n\n/**\n * Appends portal container to portal parent container if it hasn't already been done\n * @param {HTMLDivElement | undefined} container - portal container to be added to portal parent container\n */\nexport const appendPortalContainerIfNotAppended = container => {\n if (!container.parentElement) {\n getPortalParent().appendChild(container);\n }\n};","import { useEffect, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\nimport { appendPortalContainerIfNotAppended, createContainer, removePortalContainer } from '../utils/portal-dom-utils';\nexport default function InternalPortal(props) {\n const {\n zIndex,\n children\n } = props;\n const container = useMemo(() => createContainer(zIndex), [zIndex]);\n\n // This is in the render method instead of useEffect so that\n // the portal will be added to the DOM before the children render.\n // For any further changes, ensure that the container does not have a\n // parent besides the portal parent.\n appendPortalContainerIfNotAppended(container);\n useEffect(() => {\n return () => {\n removePortalContainer(container);\n };\n }, [container]);\n return /*#__PURE__*/createPortal(children, container);\n}","import { useEffect, useState } from 'react';\nconst useIsSubsequentRender = () => {\n const [isSubsequentRender, setIsSubsequentRender] = useState(false);\n useEffect(() => {\n setIsSubsequentRender(true);\n }, []);\n return isSubsequentRender;\n};\nexport default useIsSubsequentRender;","const zIndexToName = {\n 100: 'card',\n 200: 'navigation',\n 300: 'dialog',\n 400: 'layer',\n 500: 'blanket',\n 510: 'modal',\n 600: 'flag',\n 700: 'spotlight',\n 800: 'tooltip'\n};\n\n/**\n * return layer name in Atlassian design system corresponding to given z-index\n * @param {number} zIndex - z-index value for which layer name is needed\n * @returns {LayerName | null} - The layer name for given z-index. If layer name is not found then null is returned\n */\nconst getLayerName = zIndex => {\n return zIndexToName.hasOwnProperty(zIndex) ? zIndexToName[zIndex] : null;\n};\n\n/**\n * Creates a PortalEvent object with given eventName, given zIndex and corresponding layer\n * @param {string} eventName - either of Mount or Unmount event name\n * @param {number} zIndex - z-index value which will be included in the event to be dispatched\n * @returns {PortalEvent} - The newly created PortalEvent object\n */\nconst getEvent = (eventName, zIndex) => {\n const detail = {\n layer: getLayerName(Number(zIndex)),\n zIndex\n };\n return new CustomEvent(eventName, {\n detail\n });\n};\n\n/**\n * Dispatches a custom event on window with given eventName, given zIndex and corresponding layer\n * @param {string} eventName - either of Mount or Unmount event name\n * @param {number} zIndex - z-index value which will be included in the event to be dispatched\n */\nexport default function firePortalEvent(eventName, zIndex) {\n const event = getEvent(eventName, zIndex);\n window.dispatchEvent(event);\n}","import { useEffect } from 'react';\nimport { PORTAL_MOUNT_EVENT, PORTAL_UNMOUNT_EVENT } from '../../constants';\nimport firePortalEvent from '../utils/portal-custom-event';\nconst useFirePortalEvent = zIndex => {\n const zIndexNumber = Number(zIndex);\n useEffect(() => {\n firePortalEvent(PORTAL_MOUNT_EVENT, zIndexNumber);\n return () => {\n firePortalEvent(PORTAL_UNMOUNT_EVENT, zIndexNumber);\n };\n }, [zIndexNumber]);\n};\nexport default useFirePortalEvent;","export const PORTAL_MOUNT_EVENT = 'akPortalMount';\nexport const PORTAL_UNMOUNT_EVENT = 'akPortalUnmount';","import React from 'react';\nimport InternalPortal from './internal/components/internal-portal';\nimport useIsSubsequentRender from './internal/hooks/use-is-subsequent-render';\nimport useFirePortalEvent from './internal/hooks/use-portal-event';\nexport default function Portal(props) {\n const {\n zIndex = 0,\n children\n } = props;\n const isSubsequentRender = useIsSubsequentRender();\n useFirePortalEvent(zIndex);\n return isSubsequentRender ? /*#__PURE__*/React.createElement(InternalPortal, {\n zIndex: zIndex\n }, children) : null;\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n constructor(props) {\n _defineProperty(this, \"_isAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n // just a shallow clone, don't change sub refs unless you want to\n // affect the original's too\n const payload = {\n ...this.payload\n };\n return new AnalyticsEvent({\n payload\n });\n });\n this.payload = props.payload;\n }\n update(updater) {\n if (typeof updater === 'function') {\n this.payload = updater(this.payload);\n }\n if (typeof updater === 'object') {\n this.payload = {\n ...this.payload,\n ...updater\n };\n }\n return this;\n }\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot clone an event after it's been fired.\");\n }\n return null;\n }\n const context = [...this.context];\n const handlers = [...this.handlers];\n\n /**\n * A hacky \"deep clone\" of the object. This is limited in that it wont\n * support functions, regexs, Maps, Sets, etc, but none of those need to\n * be represented in our payload.\n */\n const payload = JSON.parse(JSON.stringify(this.payload));\n return new UIAnalyticsEvent({\n context,\n handlers,\n payload\n });\n });\n _defineProperty(this, \"fire\", channel => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn('Cannot fire an event twice.');\n }\n return;\n }\n this.handlers.forEach(handler => handler(this, channel));\n this.hasFired = true;\n });\n this.context = props.context || [];\n this.handlers = props.handlers || [];\n this.hasFired = false;\n }\n update(updater) {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot update an event after it's been fired.\");\n }\n return this;\n }\n return super.update(updater);\n }\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n return useContext(AnalyticsReactContext);\n};","import { useEffect, useRef } from 'react';\nexport const useTrackedRef = value => {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n};","import { useCallback } from 'react';\nimport { useAnalyticsEvents } from './useAnalyticsEvents';\nimport { useTrackedRef } from './useTrackedRef';\n// WARNING: This hook will only function correctly for leaf node components - as in\n// no children inside the component will require analytics themselves.\n// Ignoring this warning will mean the analytics context of child components will not\n// include the context of this component, .e.g, lost data.\n// If you are going to have child components that require analytics use withAnalytics\n// or AnalyticsContext component instead.\nexport function usePlatformLeafSyntheticEventHandler({\n fn,\n action,\n componentName,\n packageName,\n packageVersion,\n analyticsData\n}) {\n const {\n createAnalyticsEvent\n } = useAnalyticsEvents();\n\n // We put analyticsData and fn in a ref so that we don't need to break\n // memoization.\n // Generally these could be defined by consumers inline\n // and so we do this to avoid breaking memoization of useCallback\n const dataRef = useTrackedRef(analyticsData);\n const fnRef = useTrackedRef(fn);\n const handler = useCallback(() => {\n const analyticsEvent = createAnalyticsEvent({\n action,\n actionSubject: componentName,\n attributes: {\n componentName,\n packageName,\n packageVersion\n }\n });\n\n // To avoid wrapping this component in AnalyticsContext we manually\n // push the parent context's meta data into the context.\n // Note: this new 'context'\n const context = {\n componentName,\n packageName,\n packageVersion,\n ...dataRef.current\n };\n analyticsEvent.context.push(context);\n\n // fire an event on the atlaskit channel\n const clone = analyticsEvent.clone();\n if (clone) {\n clone.fire('atlaskit');\n }\n fnRef.current(analyticsEvent);\n }, [\n // These are strings and won't change\n action, componentName, packageName, packageVersion,\n // This function is memoized in the context\n createAnalyticsEvent,\n // these are a stable ref because of the useTrackedRef hook\n dataRef, fnRef]);\n return handler;\n}","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n const analyticsContext = useAnalyticsContext();\n const createAnalyticsEvent = useCallbackOne(payload => {\n return new UIAnalyticsEvent({\n context: analyticsContext.getAtlaskitAnalyticsContext(),\n handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n payload\n });\n }, [analyticsContext]);\n return {\n createAnalyticsEvent\n };\n}","let delayId = null;\nexport function clearScheduled() {\n if (delayId != null) {\n window.clearTimeout(delayId);\n delayId = null;\n }\n}\nexport function scheduleTimeout(fn, delay) {\n clearScheduled();\n delayId = window.setTimeout(() => {\n delayId = null;\n fn();\n }, delay);\n}","import { clearScheduled, scheduleTimeout } from './shared-schedule';\n\n// This file is a singleton for managing tooltips\n\nlet active = null;\nexport function show(entry) {\n let phase = 'waiting-to-show';\n function isActive() {\n return Boolean(active && active.entry === entry);\n }\n function cleanup() {\n if (isActive()) {\n clearScheduled();\n active = null;\n }\n }\n function done() {\n if (isActive()) {\n entry.done();\n }\n phase = 'done';\n cleanup();\n }\n function immediatelyHideAndDone() {\n if (isActive()) {\n entry.hide({\n isImmediate: true\n });\n }\n done();\n }\n function keep() {\n if (!isActive()) {\n return;\n }\n\n // aborting a wait to hide\n if (phase === 'waiting-to-hide') {\n phase = 'shown';\n clearScheduled();\n return;\n }\n\n // aborting hide animation\n if (phase === 'hide-animating') {\n phase = 'shown';\n clearScheduled();\n entry.show({\n isImmediate: false\n });\n return;\n }\n }\n function requestHide({\n isImmediate\n }) {\n if (!isActive()) {\n return;\n }\n\n // If we were not showing yet anyway; finish straight away\n if (phase === 'waiting-to-show') {\n immediatelyHideAndDone();\n return;\n }\n\n // already waiting to hide\n if (phase === 'waiting-to-hide') {\n return;\n }\n if (isImmediate) {\n immediatelyHideAndDone();\n return;\n }\n phase = 'waiting-to-hide';\n scheduleTimeout(() => {\n phase = 'hide-animating';\n entry.hide({\n isImmediate: false\n });\n }, entry.delay);\n }\n function finishHideAnimation() {\n if (isActive() && phase === 'hide-animating') {\n done();\n }\n }\n function isVisible() {\n return phase === 'shown' || phase === 'waiting-to-hide' || phase === 'hide-animating';\n }\n function getInitialMouse() {\n if (entry.source.type === 'mouse') {\n return entry.source.mouse;\n }\n return null;\n }\n function start() {\n const showImmediately = Boolean(active && active.isVisible());\n\n // If there was an active tooltip; we tell it to remove itself at once!\n if (active) {\n clearScheduled();\n active.entry.hide({\n isImmediate: true\n });\n active.entry.done();\n active = null;\n }\n\n // this tooltip is now the active tooltip\n active = {\n entry,\n isVisible\n };\n function show() {\n phase = 'shown';\n entry.show({\n isImmediate: showImmediately\n });\n }\n if (showImmediately) {\n show();\n return;\n }\n phase = 'waiting-to-show';\n scheduleTimeout(show, entry.delay);\n }\n // let's get started!\n start();\n const result = {\n keep,\n abort: cleanup,\n isActive,\n requestHide,\n finishHideAnimation,\n mousePosition: getInitialMouse()\n };\n return result;\n}","import { CHANNEL, DEFAULT_THEME_MODE, THEME_MODES } from '../constants';\n// Resolves the different types of theme objects in the current API\nexport default function getTheme(props) {\n if (props && props.theme) {\n // Theme is the global Atlaskit theme\n if (CHANNEL in props.theme) {\n return props.theme[CHANNEL];\n }\n // User has provided alternative modes\n else if ('mode' in props.theme && THEME_MODES.includes(props.theme.mode)) {\n return props.theme;\n }\n }\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE\n };\n}","/* eslint-disable prefer-rest-params */\n\nimport getTheme from './get-theme';\n// Unpack custom variants, and get correct value for the current theme\nfunction themedVariants(variantProp, variants) {\n return props => {\n const theme = getTheme(props);\n if (props && props[variantProp] && variants) {\n const modes = variants[props[variantProp]];\n if (modes && modes[theme.mode]) {\n const value = modes[theme.mode];\n if (value) {\n return value;\n } // TS believes value can be undefined\n }\n }\n\n return '';\n };\n}\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-4693 Internal documentation for deprecation (no external access)}\n */\nexport default function themed(modesOrVariant, variantModes) {\n if (typeof modesOrVariant === 'string') {\n return themedVariants(modesOrVariant, variantModes);\n }\n const modes = modesOrVariant;\n return props => {\n // Get theme from the user's props\n const theme = getTheme(props);\n // User isn't required to provide both light and dark values\n if (theme.mode in modes) {\n const value = modes[theme.mode]; // TS believes value can be undefined\n if (value) {\n return value;\n }\n }\n return '';\n };\n}","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */\n\nimport themed from './utils/themed';\n\n// Reds\nexport const R50 = '#FFEBE6';\nexport const R75 = '#FFBDAD';\nexport const R100 = '#FF8F73';\nexport const R200 = '#FF7452';\nexport const R300 = '#FF5630';\nexport const R400 = '#DE350B';\nexport const R500 = '#BF2600';\n\n// Yellows\nexport const Y50 = '#FFFAE6';\nexport const Y75 = '#FFF0B3';\nexport const Y100 = '#FFE380';\nexport const Y200 = '#FFC400';\nexport const Y300 = '#FFAB00';\nexport const Y400 = '#FF991F';\nexport const Y500 = '#FF8B00';\n\n// Greens\nexport const G50 = '#E3FCEF';\nexport const G75 = '#ABF5D1';\nexport const G100 = '#79F2C0';\nexport const G200 = '#57D9A3';\nexport const G300 = '#36B37E';\nexport const G400 = '#00875A';\nexport const G500 = '#006644';\n\n// Blues\nexport const B50 = '#DEEBFF';\nexport const B75 = '#B3D4FF';\nexport const B100 = '#4C9AFF';\nexport const B200 = '#2684FF';\nexport const B300 = '#0065FF';\nexport const B400 = '#0052CC';\nexport const B500 = '#0747A6';\n\n// Purples\nexport const P50 = '#EAE6FF';\nexport const P75 = '#C0B6F2';\nexport const P100 = '#998DD9';\nexport const P200 = '#8777D9';\nexport const P300 = '#6554C0';\nexport const P400 = '#5243AA';\nexport const P500 = '#403294';\n\n// Teals\nexport const T50 = '#E6FCFF';\nexport const T75 = '#B3F5FF';\nexport const T100 = '#79E2F2';\nexport const T200 = '#00C7E6';\nexport const T300 = '#00B8D9';\nexport const T400 = '#00A3BF';\nexport const T500 = '#008DA6';\n\n// Neutrals\nexport const N0 = '#FFFFFF';\nexport const N10 = '#FAFBFC';\nexport const N20 = '#F4F5F7';\nexport const N30 = '#EBECF0';\nexport const N40 = '#DFE1E6';\nexport const N50 = '#C1C7D0';\nexport const N60 = '#B3BAC5';\nexport const N70 = '#A5ADBA';\nexport const N80 = '#97A0AF';\nexport const N90 = '#8993A4';\nexport const N100 = '#7A869A';\nexport const N200 = '#6B778C';\nexport const N300 = '#5E6C84';\nexport const N400 = '#505F79';\nexport const N500 = '#42526E';\nexport const N600 = '#344563';\nexport const N700 = '#253858';\nexport const N800 = '#172B4D';\n\n// ATTENTION: update the tints if you update this\nexport const N900 = '#091E42';\n\n// Each tint is made of N900 and an alpha channel\nexport const N10A = 'rgba(9, 30, 66, 0.02)';\nexport const N20A = 'rgba(9, 30, 66, 0.04)';\nexport const N30A = 'rgba(9, 30, 66, 0.08)';\nexport const N40A = 'rgba(9, 30, 66, 0.13)';\nexport const N50A = 'rgba(9, 30, 66, 0.25)';\nexport const N60A = 'rgba(9, 30, 66, 0.31)';\nexport const N70A = 'rgba(9, 30, 66, 0.36)';\nexport const N80A = 'rgba(9, 30, 66, 0.42)';\nexport const N90A = 'rgba(9, 30, 66, 0.48)';\nexport const N100A = 'rgba(9, 30, 66, 0.54)';\nexport const N200A = 'rgba(9, 30, 66, 0.60)';\nexport const N300A = 'rgba(9, 30, 66, 0.66)';\nexport const N400A = 'rgba(9, 30, 66, 0.71)';\nexport const N500A = 'rgba(9, 30, 66, 0.77)';\nexport const N600A = 'rgba(9, 30, 66, 0.82)';\nexport const N700A = 'rgba(9, 30, 66, 0.89)';\nexport const N800A = 'rgba(9, 30, 66, 0.95)';\n\n// Dark Mode Neutrals\nexport const DN900 = '#E6EDFA';\nexport const DN800 = '#DCE5F5';\nexport const DN700 = '#CED9EB';\nexport const DN600 = '#B8C7E0';\nexport const DN500 = '#ABBBD6';\nexport const DN400 = '#9FB0CC';\nexport const DN300 = '#8C9CB8';\nexport const DN200 = '#7988A3';\nexport const DN100 = '#67758F';\nexport const DN90 = '#56637A';\nexport const DN80 = '#455166';\nexport const DN70 = '#3B475C';\nexport const DN60 = '#313D52';\nexport const DN50 = '#283447';\nexport const DN40 = '#202B3D';\nexport const DN30 = '#1B2638';\nexport const DN20 = '#121A29';\nexport const DN10 = '#0E1624';\n\n// ATTENTION: update the tints if you update this\nexport const DN0 = '#0D1424';\n\n// Each dark tint is made of DN0 and an alpha channel\nexport const DN800A = 'rgba(13, 20, 36, 0.06)';\nexport const DN700A = 'rgba(13, 20, 36, 0.14)';\nexport const DN600A = 'rgba(13, 20, 36, 0.18)';\nexport const DN500A = 'rgba(13, 20, 36, 0.29)';\nexport const DN400A = 'rgba(13, 20, 36, 0.36)';\nexport const DN300A = 'rgba(13, 20, 36, 0.40)';\nexport const DN200A = 'rgba(13, 20, 36, 0.47)';\nexport const DN100A = 'rgba(13, 20, 36, 0.53)';\nexport const DN90A = 'rgba(13, 20, 36, 0.63)';\nexport const DN80A = 'rgba(13, 20, 36, 0.73)';\nexport const DN70A = 'rgba(13, 20, 36, 0.78)';\nexport const DN60A = 'rgba(13, 20, 36, 0.81)';\nexport const DN50A = 'rgba(13, 20, 36, 0.85)';\nexport const DN40A = 'rgba(13, 20, 36, 0.89)';\nexport const DN30A = 'rgba(13, 20, 36, 0.92)';\nexport const DN20A = 'rgba(13, 20, 36, 0.95)';\nexport const DN10A = 'rgba(13, 20, 36, 0.97)';\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface')` instead.\n */\nexport const background = themed({\n light: `var(--ds-surface, ${N0})`,\n dark: `var(--ds-surface, ${DN30})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.selected')` instead.\n */\nexport const backgroundActive = themed({\n light: `var(--ds-background-selected, ${B50})`,\n dark: `var(--ds-background-selected, ${B75})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.neutral.hovered')` instead.\n */\nexport const backgroundHover = themed({\n light: `var(--ds-background-neutral-hovered, ${N30})`,\n dark: `var(--ds-background-neutral-hovered, ${DN70})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface.overlay')` instead.\n */\nexport const backgroundOnLayer = themed({\n light: `var(--ds-surface-overlay, ${N0})`,\n dark: `var(--ds-surface-overlay, ${DN50})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const text = themed({\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const textHover = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.selected')` instead.\n */\nexport const textActive = themed({\n light: `var(--ds-text-selected, ${B400})`,\n dark: `var(--ds-text-selected, ${B400})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use token('color.text.subtlest', N200) instead. Use DN200 as the fallback color for dark mode.\n */\nexport const placeholderText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const heading = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleHeading = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\nexport const codeBlock = themed({\n light: N20,\n dark: DN50\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link')` instead.\n */\nexport const link = themed({\n light: `var(--ds-link, ${B400})`,\n dark: `var(--ds-link, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkHover = themed({\n light: `var(--ds-link-pressed, ${B300})`,\n dark: `var(--ds-link-pressed, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkActive = themed({\n light: `var(--ds-link-pressed, ${B500})`,\n dark: `var(--ds-link-pressed, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.border.focused', B200)` instead.\n */\nexport const linkOutline = themed({\n light: `var(--ds-border-focused, ${B200})`,\n dark: `var(--ds-border-focused, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.brand.bold')` instead.\n */\nexport const primary = themed({\n light: `var(--ds-background-brand-bold, ${B400})`,\n dark: `var(--ds-background-brand-bold, ${B100})`\n});\nexport const blue = themed({\n light: B400,\n dark: B100\n});\nexport const teal = themed({\n light: T300,\n dark: T200\n});\nexport const purple = themed({\n light: P300,\n dark: P100\n});\nexport const red = themed({\n light: R300,\n dark: R300\n});\nexport const yellow = themed({\n light: Y300,\n dark: Y300\n});\nexport const green = themed({\n light: G300,\n dark: G300\n});\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.skeleton')` instead.\n */\nexport const skeleton = () => `var(--ds-skeleton, ${N20A})`;","import { createTheme } from '../utils/create-theme';\n\n// Create default global light theme\nconst {\n Provider,\n Consumer,\n useTheme\n} = createTheme(() => ({\n mode: 'light'\n}));\nexport { useTheme as useGlobalTheme };\nexport default {\n Provider,\n Consumer\n};","import React, { createContext, useCallback, useContext } from 'react';\n/**\n * createTheme is used to create a set of Providers and Consumers for theming components.\n * - Takes a default theme function; this theme function gets a set of props, and returns tokens\n * based on those props. An example of this default theme function is one that produces the standard\n * appearance of the component\n * - Returns three things - a Provider that allow for additional themes to be applied, a Consumer\n * that can get the current theme and fetch it, and a custom hook - useTheme which provides an alternate (although functionally the same) API\n * to the Consumer.\n */\nexport function createTheme(defaultGetTokens) {\n const emptyThemeFn = (getTokens, props) => getTokens(props);\n\n /**\n * Internally, Theme uses React Context, with internal providers and consumers.\n * The React Context passes only a function that gets props, and turns them into tokens. This\n * function gets mixed as more Providers with their own themes are added. This mixed function\n * is ultimately picked up by Consumers, which implement a context consumer internally to fetch\n * the theme.\n */\n const ThemeContext = /*#__PURE__*/createContext(defaultGetTokens);\n function useTheme(themeProps) {\n const theme = useContext(ThemeContext);\n const themeFn = theme || emptyThemeFn;\n const tokens = themeFn(themeProps);\n return tokens;\n }\n\n // The Theme Consumer takes a function as its child - this function takes tokens, and the\n // return value is generally a set of nodes with the tokens applied appropriately.\n function Consumer(props) {\n const {\n children,\n ...themeProps\n } = props;\n\n // @ts-ignore See issue for more info: https://github.com/Microsoft/TypeScript/issues/10727\n // Argument of type 'Pick ReactNode; }, Exclude>' is not assignable to parameter of type 'ThemeProps'.ts(2345)\n const tokens = useTheme(themeProps);\n // We add a fragment to ensure we don't break people upgrading.\n // Previously they may have been able to pass in undefined without things blowing up.\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(tokens));\n }\n\n /**\n * The Theme Provider takes regular nodes as its children, but also takes a *theme function*\n * - The theme function takes a set of props, as well as a function (getTokens) that can turn props into tokens.\n * - The getTokens function isn't called immediately - instead the props are passed\n * through a mix of parent theming functions\n * Children of this provider will receive this mixed theme\n */\n function Provider(props) {\n const themeFn = useContext(ThemeContext);\n const valueFn = props.value || emptyThemeFn;\n const mixedFn = useCallback(themeProps => valueFn(themeFn, themeProps), [themeFn, valueFn]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: mixedFn\n }, props.children);\n }\n return {\n Consumer,\n Provider,\n useTheme\n };\n}","/** @jsx jsx */\nimport { forwardRef } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { DN0, DN600, N0, N800 } from '@atlaskit/theme/colors';\nimport GlobalTheme from '@atlaskit/theme/components';\nimport TooltipPrimitive from './TooltipPrimitive';\nconst baseStyles = css({\n boxSizing: 'border-box',\n maxWidth: '240px',\n padding: `${\"var(--ds-space-025, 2px)\"} ${\"var(--ds-space-075, 6px)\"}`,\n top: \"var(--ds-space-0, 0px)\",\n left: \"var(--ds-space-0, 0px)\",\n borderRadius: \"var(--ds-radius-100, 3px)\",\n fontSize: \"var(--ds-font-size-075, 12px)\",\n lineHeight: 1.3,\n overflowWrap: 'break-word',\n wordWrap: 'break-word'\n});\nconst truncateStyles = css({\n maxWidth: '420px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n});\nconst lightStyles = css({\n backgroundColor: `var(--ds-background-neutral-bold, ${N800})`,\n color: `var(--ds-text-inverse, ${N0})`\n});\nconst darkStyles = css({\n backgroundColor: `var(--ds-background-neutral-bold, ${DN0})`,\n color: `var(--ds-text-inverse, ${DN600})`\n});\nconst TooltipContainer = /*#__PURE__*/forwardRef(function TooltipContainer({\n style,\n className,\n children,\n truncate,\n placement,\n testId,\n onMouseOut,\n onMouseOver,\n id\n}, ref) {\n return jsx(GlobalTheme.Consumer, null, ({\n mode\n }) =>\n // eslint-disable-next-line jsx-a11y/mouse-events-have-key-events\n jsx(TooltipPrimitive, {\n ref: ref,\n style: style,\n className: className,\n placement: placement,\n testId: testId,\n id: id,\n onMouseOut: onMouseOut,\n onMouseOver: onMouseOver,\n css: [baseStyles, truncate ? truncateStyles : null, mode === 'light' ? lightStyles : darkStyles]\n }, children));\n});\nTooltipContainer.displayName = 'TooltipContainer';\nexport default TooltipContainer;","export function getMousePosition(mouseCoordinates) {\n const safeMouse = mouseCoordinates || {\n top: 0,\n left: 0\n };\n const getBoundingClientRect = () => ({\n top: safeMouse.top,\n left: safeMouse.left,\n bottom: safeMouse.top,\n right: safeMouse.left,\n width: 0,\n height: 0\n });\n return {\n getBoundingClientRect,\n clientWidth: 0,\n clientHeight: 0\n };\n}","import _extends from \"@babel/runtime/helpers/extends\";\n/** @jsx jsx */\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { jsx } from '@emotion/react';\nimport { bind } from 'bind-event-listener';\nimport { usePlatformLeafSyntheticEventHandler } from '@atlaskit/analytics-next';\nimport noop from '@atlaskit/ds-lib/noop';\nimport useCloseOnEscapePress from '@atlaskit/ds-lib/use-close-on-escape-press';\nimport { ExitingPersistence, FadeIn } from '@atlaskit/motion';\nimport { mediumDurationMs } from '@atlaskit/motion/durations';\nimport { Popper } from '@atlaskit/popper';\nimport Portal from '@atlaskit/portal';\nimport { layers } from '@atlaskit/theme/constants';\nimport { show } from './internal/tooltip-manager';\nimport useUniqueId from './internal/use-unique-id';\nimport TooltipContainer from './TooltipContainer';\nimport { getMousePosition } from './utilities';\nconst tooltipZIndex = layers.tooltip();\nconst analyticsAttributes = {\n componentName: 'tooltip',\n packageName: \"@atlaskit/tooltip\",\n packageVersion: \"17.8.2\"\n};\n\n// Inverts motion direction\nconst invertedDirection = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\n/**\n * Converts a Popper placement to it's general direction.\n *\n * @param position - Popper Placement value, e.g. 'top-start'\n * @returns Popper Direction, e.g. 'top'\n */\nconst getDirectionFromPlacement = placement => placement.split('-')[0];\nfunction Tooltip({\n children,\n position = 'bottom',\n mousePosition = 'bottom',\n content,\n truncate = false,\n component: Container = TooltipContainer,\n tag: TargetContainer = 'div',\n testId,\n delay = 300,\n onShow = noop,\n onHide = noop,\n hideTooltipOnClick = false,\n hideTooltipOnMouseDown = false,\n analyticsContext,\n strategy = 'fixed'\n}) {\n const tooltipPosition = position === 'mouse' ? mousePosition : position;\n const onShowHandler = usePlatformLeafSyntheticEventHandler({\n fn: onShow,\n action: 'displayed',\n analyticsData: analyticsContext,\n ...analyticsAttributes\n });\n const onHideHandler = usePlatformLeafSyntheticEventHandler({\n fn: onHide,\n action: 'hidden',\n analyticsData: analyticsContext,\n ...analyticsAttributes\n });\n const apiRef = useRef(null);\n const [state, setState] = useState('hide');\n const targetRef = useRef(null);\n const containerRef = useRef(null);\n const setRef = useCallback(node => {\n if (!node) {\n return;\n }\n if (typeof children === 'function') {\n // @ts-ignore - React Ref typing is too strict for this use case\n targetRef.current = node;\n } else {\n // @ts-ignore - React Ref typing is too strict for this use case\n containerRef.current = node;\n // @ts-ignore - React Ref typing is too strict for this use case\n targetRef.current = node.firstChild;\n }\n }, [children]);\n\n // Putting a few things into refs so that we don't have to break memoization\n const lastState = useRef(state);\n const lastDelay = useRef(delay);\n const lastHandlers = useRef({\n onShowHandler,\n onHideHandler\n });\n const hasCalledShowHandler = useRef(false);\n useEffect(() => {\n lastState.current = state;\n lastDelay.current = delay;\n lastHandlers.current = {\n onShowHandler,\n onHideHandler\n };\n }, [delay, onHideHandler, onShowHandler, state]);\n const start = useCallback(api => {\n // @ts-ignore\n apiRef.current = api;\n hasCalledShowHandler.current = false;\n }, []);\n const done = useCallback(() => {\n if (!apiRef.current) {\n return;\n }\n // Only call onHideHandler if we have called onShowHandler\n if (hasCalledShowHandler.current) {\n lastHandlers.current.onHideHandler();\n }\n // @ts-ignore\n apiRef.current = null;\n // @ts-ignore\n hasCalledShowHandler.current = false;\n // just in case\n setState('hide');\n }, []);\n const abort = useCallback(() => {\n if (!apiRef.current) {\n return;\n }\n apiRef.current.abort();\n // Only call onHideHandler if we have called onShowHandler\n if (hasCalledShowHandler.current) {\n lastHandlers.current.onHideHandler();\n }\n // @ts-ignore\n apiRef.current = null;\n }, []);\n useEffect(function mount() {\n return function unmount() {\n if (apiRef.current) {\n abort();\n }\n };\n }, [abort]);\n const showTooltip = useCallback(source => {\n if (apiRef.current && !apiRef.current.isActive()) {\n abort();\n }\n\n // Tell the tooltip to keep showing\n if (apiRef.current && apiRef.current.isActive()) {\n apiRef.current.keep();\n return;\n }\n const entry = {\n source,\n delay: lastDelay.current,\n show: ({\n isImmediate\n }) => {\n // Call the onShow handler if it hasn't been called yet\n if (!hasCalledShowHandler.current) {\n hasCalledShowHandler.current = true;\n lastHandlers.current.onShowHandler();\n }\n setState(isImmediate ? 'show-immediate' : 'fade-in');\n },\n hide: ({\n isImmediate\n }) => {\n if (isImmediate) {\n setState('hide');\n } else {\n setState('before-fade-out');\n }\n },\n done: done\n };\n const api = show(entry);\n start(api);\n }, [abort, done, start]);\n const hideTooltipOnEsc = useCallback(() => {\n var _apiRef$current;\n (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 ? void 0 : _apiRef$current.requestHide({\n isImmediate: true\n });\n }, [apiRef]);\n useCloseOnEscapePress({\n onClose: hideTooltipOnEsc,\n isDisabled: state === 'hide' || state === 'fade-out'\n });\n useEffect(() => {\n if (state === 'hide') {\n return noop;\n }\n if (state === 'before-fade-out') {\n setState('fade-out');\n }\n const unbind = bind(window, {\n type: 'scroll',\n listener: () => {\n if (apiRef.current) {\n apiRef.current.requestHide({\n isImmediate: true\n });\n }\n },\n options: {\n capture: true,\n passive: true,\n once: true\n }\n });\n return unbind;\n }, [state]);\n const onMouseDown = useCallback(() => {\n if (hideTooltipOnMouseDown && apiRef.current) {\n apiRef.current.requestHide({\n isImmediate: true\n });\n }\n }, [hideTooltipOnMouseDown]);\n const onClick = useCallback(() => {\n if (hideTooltipOnClick && apiRef.current) {\n apiRef.current.requestHide({\n isImmediate: true\n });\n }\n }, [hideTooltipOnClick]);\n\n // Ideally we would be using onMouseEnter here, but\n // because we are binding the event to the target parent\n // we need to listen for the mouseover of all sub elements\n // This means when moving along a tooltip we are quickly toggling\n // between api.requestHide and api.keep. This it not ideal\n const onMouseOver = useCallback(event => {\n // Ignoring events from the container ref\n if (containerRef.current && event.target === containerRef.current) {\n return;\n }\n\n // Using prevent default as a signal that parent tooltips\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n const source = position === 'mouse' ? {\n type: 'mouse',\n // TODO: ideally not recalculating this object each time\n mouse: getMousePosition({\n left: event.clientX,\n top: event.clientY\n })\n } : {\n type: 'keyboard'\n };\n showTooltip(source);\n }, [position, showTooltip]);\n\n // Ideally we would be using onMouseEnter here, but\n // because we are binding the event to the target parent\n // we need to listen for the mouseout of all sub elements\n // This means when moving along a tooltip we are quickly toggling\n // between api.requestHide and api.keep. This it not ideal\n const onMouseOut = useCallback(event => {\n // Ignoring events from the container ref\n if (containerRef.current && event.target === containerRef.current) {\n return;\n }\n\n // Using prevent default as a signal that parent tooltips\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n if (apiRef.current) {\n apiRef.current.requestHide({\n isImmediate: false\n });\n }\n }, []);\n const onMouseMove = position === 'mouse' ? event => {\n var _apiRef$current2;\n if ((_apiRef$current2 = apiRef.current) !== null && _apiRef$current2 !== void 0 && _apiRef$current2.isActive()) {\n apiRef.current.mousePosition = getMousePosition({\n left: event.clientX,\n top: event.clientY\n });\n }\n } : undefined;\n const onMouseOverTooltip = useCallback(() => {\n if (apiRef.current && apiRef.current.isActive()) {\n apiRef.current.keep();\n return;\n }\n }, []);\n const onFocus = useCallback(() => {\n showTooltip({\n type: 'keyboard'\n });\n }, [showTooltip]);\n const onBlur = useCallback(() => {\n if (apiRef.current) {\n apiRef.current.requestHide({\n isImmediate: false\n });\n }\n }, []);\n const onAnimationFinished = useCallback(transition => {\n // Using lastState here because motion is not picking up the latest value\n if (transition === 'exiting' && lastState.current === 'fade-out' && apiRef.current) {\n // @ts-ignore: refs are writeable\n apiRef.current.finishHideAnimation();\n }\n }, []);\n\n // Doing a cast because typescript is struggling to narrow the type\n const CastTargetContainer = TargetContainer;\n const shouldRenderTooltipContainer = state !== 'hide' && Boolean(content);\n const shouldRenderTooltipChildren = state !== 'hide' && state !== 'fade-out';\n const getReferenceElement = () => {\n var _apiRef$current3;\n if (position === 'mouse' && (_apiRef$current3 = apiRef.current) !== null && _apiRef$current3 !== void 0 && _apiRef$current3.mousePosition) {\n var _apiRef$current4;\n return (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 ? void 0 : _apiRef$current4.mousePosition;\n }\n return targetRef.current || undefined;\n };\n const tooltipId = useUniqueId('tooltip', shouldRenderTooltipContainer);\n const tooltipTriggerProps = {\n onMouseOver,\n onMouseOut,\n onMouseMove,\n onMouseDown,\n onClick,\n onFocus,\n onBlur,\n ref: setRef\n };\n\n // Don't set `data-testid` unless it's defined, as it's not in the interface.\n if (testId) {\n // @ts-expect-error - Adding `data-testid` to the TriggerProps interface breaks Buttons.\n tooltipTriggerProps['data-testid'] = `${testId}--container`;\n }\n\n // This useEffect is purely for managing the aria attribute when using the\n // wrapped children approach.\n useEffect(() => {\n // If there is no container element, we should exit early, because that\n // means they are using the render prop API, and that is implemented in a\n // different way. If there is no target element yet or tooltipId, we also\n // shouldn't do anything because there is nothing to operate on or with.\n if (!containerRef.current || !targetRef.current || !tooltipId) {\n return;\n }\n\n // Necessary for TS to know that it has the attribute methods\n const target = targetRef.current;\n if (shouldRenderTooltipContainer) {\n target.setAttribute('aria-describedby', tooltipId);\n } else {\n target.removeAttribute('aria-describedby');\n }\n }, [shouldRenderTooltipContainer, tooltipId]);\n return jsx(React.Fragment, null, typeof children === 'function' ?\n // once we deprecate the wrapped approach, we can put the aria\n // attribute back into the tooltipTriggerProps and make it required\n // instead of optional in `types`\n children({\n ...tooltipTriggerProps,\n 'aria-describedby': tooltipId\n }) : jsx(CastTargetContainer, _extends({}, tooltipTriggerProps, {\n role: \"presentation\"\n }), children), shouldRenderTooltipContainer ? jsx(Portal, {\n zIndex: tooltipZIndex\n }, jsx(Popper, {\n placement: tooltipPosition,\n referenceElement: getReferenceElement(),\n strategy: strategy\n }, ({\n ref,\n style,\n update,\n placement\n }) => {\n // Invert the entrance and exit directions.\n // E.g. a tooltip's position is on the 'right', it should enter from and exit to the 'left'\n // This gives the effect the tooltip is appearing from the target\n const direction = position === 'mouse' ? undefined : invertedDirection[getDirectionFromPlacement(placement)];\n return jsx(ExitingPersistence, {\n appear: true\n }, shouldRenderTooltipChildren && jsx(FadeIn, {\n distance: \"constant\",\n entranceDirection: direction,\n exitDirection: direction,\n onFinish: onAnimationFinished,\n duration: state === 'show-immediate' ? 0 : mediumDurationMs\n }, ({\n className\n }) =>\n // eslint-disable-next-line jsx-a11y/mouse-events-have-key-events\n jsx(Container, {\n ref: ref\n /**\n * \"Tooltip\" classname is a hook used by tests to manipulate\n * and hide tooltips, including in VR snapshots\n **/,\n className: `Tooltip ${className}`,\n style: style,\n truncate: truncate,\n placement: tooltipPosition,\n testId: testId,\n onMouseOut: onMouseOut,\n onMouseOver: onMouseOverTooltip,\n id: tooltipId\n }, typeof content === 'function' ? content({\n update\n }) : content)));\n })) : null);\n}\nTooltip.displayName = 'Tooltip';\nexport default Tooltip;","import { useUIDSeed } from 'react-uid';\nexport default function useUniqueId(prefix, shouldRenderId) {\n const seed = useUIDSeed();\n return shouldRenderId ? `${seed(prefix)}` : undefined;\n}","/** @jsx jsx */\nimport { forwardRef } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { layers } from '@atlaskit/theme/constants';\nconst VAR_PRIMITIVE_ZINDEX = 'tooltipPrimitiveZindex';\nconst primitiveStyles = css({\n zindex: `var(${VAR_PRIMITIVE_ZINDEX})`,\n cursor: `default`\n});\nconst TooltipPrimitive = /*#__PURE__*/forwardRef(function TooltipPrimitive({\n style,\n className,\n children,\n placement,\n testId,\n onMouseOut,\n onMouseOver,\n id\n}, ref) {\n const styleWithZIndex = {\n ...style,\n [VAR_PRIMITIVE_ZINDEX]: layers.tooltip()\n };\n return jsx(\"div\", {\n ref: ref,\n style: styleWithZIndex,\n \"data-testid\": testId ? `${testId}--wrapper` : undefined\n }, jsx(\"div\", {\n role: \"tooltip\",\n className: className,\n onMouseOut: onMouseOut,\n onMouseOver: onMouseOver,\n css: primitiveStyles,\n \"data-placement\": placement,\n \"data-testid\": testId,\n id: id\n }, children));\n});\nTooltipPrimitive.displayName = 'TooltipPrimitive';\nexport default TooltipPrimitive;","import deprecationWarning from '@atlaskit/ds-lib/deprecation-warning';\nimport { B200, N30A, skeleton as skeletonColor } from './colors';\nexport const CHANNEL = '__ATLASKIT_THEME__';\nexport const DEFAULT_THEME_MODE = 'light';\nexport const THEME_MODES = ['light', 'dark'];\n\n/*\n These theme values are expressed as functions so that if we decide to make\n them dependent on props in the future, it wouldn't require a significant\n refactor everywhere they are being used.\n*/\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('border.radius', '3px')` instead.\n */\nexport const borderRadius = () => 3;\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('space.100', '8px')` instead with any of the space tokens.\n * Available space tokens can be found on {@link https://atlassian.design/foundations/spacing/#scale}\n */\nexport const gridSize = () => 8;\nexport const fontSize = () => 14;\nexport const fontSizeSmall = () => 11;\nexport const fontFamily = () => `-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\nexport const codeFontFamily = () => `'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace`;\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const focusRing = (color = `var(--ds-border-focused, ${B200})`, outlineWidth = gridSize() / 4) => {\n deprecationWarning('@atlaskit/theme', 'focus ring mixin', 'Please use `@atlaskit/focus-ring` instead.');\n return `\n &:focus {\n outline: none;\n box-shadow: 0px 0px 0px ${outlineWidth}px ${color};\n }\n`;\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const noFocusRing = () => `\n box-shadow: none;\n`;\nexport const layers = {\n card: () => 100,\n navigation: () => 200,\n dialog: () => 300,\n layer: () => 400,\n blanket: () => 500,\n modal: () => 510,\n flag: () => 600,\n spotlight: () => 700,\n tooltip: () => 9999\n};\n\n// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const visuallyHidden = () => {\n deprecationWarning('@atlaskit/theme', 'visually hidden mixin', 'Please use `@atlaskit/visually-hidden` instead.');\n return {\n border: '0 !important',\n clip: 'rect(1px, 1px, 1px, 1px) !important',\n height: '1px !important',\n overflow: 'hidden !important',\n padding: '0 !important',\n position: 'absolute !important',\n width: '1px !important',\n whiteSpace: 'nowrap !important'\n };\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const assistive = visuallyHidden;\n\n/**\n * These styles are mirrored in:\n * packages/design-system/menu/src/internal/components/skeleton-shimmer.tsx\n *\n * Please update both.\n */\nexport const skeletonShimmer = () => ({\n css: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate'\n },\n keyframes: {\n from: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`\n },\n to: {\n backgroundColor: `var(--ds-skeleton-subtle, ${N30A})`\n }\n }\n});","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import { createTheme } from '../utils/create-theme';\n\n// Create default global light theme\nconst {\n Provider,\n Consumer,\n useTheme\n} = createTheme(() => ({\n mode: 'light'\n}));\nexport { useTheme as useGlobalTheme };\nexport default {\n Provider,\n Consumer\n};","import React, { createContext, useCallback, useContext } from 'react';\n/**\n * createTheme is used to create a set of Providers and Consumers for theming components.\n * - Takes a default theme function; this theme function gets a set of props, and returns tokens\n * based on those props. An example of this default theme function is one that produces the standard\n * appearance of the component\n * - Returns three things - a Provider that allow for additional themes to be applied, a Consumer\n * that can get the current theme and fetch it, and a custom hook - useTheme which provides an alternate (although functionally the same) API\n * to the Consumer.\n */\nexport function createTheme(defaultGetTokens) {\n const emptyThemeFn = (getTokens, props) => getTokens(props);\n\n /**\n * Internally, Theme uses React Context, with internal providers and consumers.\n * The React Context passes only a function that gets props, and turns them into tokens. This\n * function gets mixed as more Providers with their own themes are added. This mixed function\n * is ultimately picked up by Consumers, which implement a context consumer internally to fetch\n * the theme.\n */\n const ThemeContext = /*#__PURE__*/createContext(defaultGetTokens);\n function useTheme(themeProps) {\n const theme = useContext(ThemeContext);\n const themeFn = theme || emptyThemeFn;\n const tokens = themeFn(themeProps);\n return tokens;\n }\n\n // The Theme Consumer takes a function as its child - this function takes tokens, and the\n // return value is generally a set of nodes with the tokens applied appropriately.\n function Consumer(props) {\n const {\n children,\n ...themeProps\n } = props;\n\n // @ts-ignore See issue for more info: https://github.com/Microsoft/TypeScript/issues/10727\n // Argument of type 'Pick ReactNode; }, Exclude>' is not assignable to parameter of type 'ThemeProps'.ts(2345)\n const tokens = useTheme(themeProps);\n // We add a fragment to ensure we don't break people upgrading.\n // Previously they may have been able to pass in undefined without things blowing up.\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(tokens));\n }\n\n /**\n * The Theme Provider takes regular nodes as its children, but also takes a *theme function*\n * - The theme function takes a set of props, as well as a function (getTokens) that can turn props into tokens.\n * - The getTokens function isn't called immediately - instead the props are passed\n * through a mix of parent theming functions\n * Children of this provider will receive this mixed theme\n */\n function Provider(props) {\n const themeFn = useContext(ThemeContext);\n const valueFn = props.value || emptyThemeFn;\n const mixedFn = useCallback(themeProps => valueFn(themeFn, themeProps), [themeFn, valueFn]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: mixedFn\n }, props.children);\n }\n return {\n Consumer,\n Provider,\n useTheme\n };\n}","const themedBackground = {\n light: \"var(--ds-surface, #FFFFFF)\",\n dark: \"var(--ds-surface, #1B2638)\"\n};\n\n/**\n * Returns the background color depending on the passed through mode.\n * @param mode\n */\nexport const getBackground = (mode = 'light') => themedBackground[mode];","export const sizes = {\n small: '16px',\n medium: '24px',\n large: '32px',\n xlarge: '48px'\n};\nexport const sizeMap = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n xlarge: 'xlarge'\n};\nexport const dimensions = {\n small: {\n width: sizes.small,\n height: sizes.small\n },\n medium: {\n width: sizes.medium,\n height: sizes.medium\n },\n large: {\n width: sizes.large,\n height: sizes.large\n },\n xlarge: {\n width: sizes.xlarge,\n height: sizes.xlarge\n }\n};","import { dimensions } from '../constants';\nimport { css } from '@emotion/react';\nexport const commonSVGStyles = {\n overflow: 'hidden',\n pointerEvents: 'none',\n /**\n * Stop-color doesn't properly apply in chrome when the inherited/current color changes.\n * We have to initially set stop-color to inherit (either via DOM attribute or an initial CSS\n * rule) and then override it with currentColor for the color changes to be picked up.\n */\n stop: {\n stopColor: 'currentColor'\n }\n};\nconst smallStyles = css(dimensions.small);\nconst mediumStyles = css(dimensions.medium);\nconst largeStyles = css(dimensions.large);\nconst xlargeStyles = css(dimensions.xlarge);\n\n// pre-built css style-size map\nexport const sizeStyleMap = {\n small: smallStyles,\n medium: mediumStyles,\n large: largeStyles,\n xlarge: xlargeStyles\n};\n\n/**\n * Returns the width of the icon's parent span. This function has\n * special behaviour to deal with icon-file-type specifically.\n *\n * The reality is the SVG still has its own dimensions, so this is\n * a secondary fallback which in 95% of cases is not required.\n * It's only really being kept to maintain backward compatability.\n */\nexport const getIconSize = ({\n width,\n height,\n size\n}) => {\n if (width && height) {\n return {\n width,\n height\n };\n }\n if (size) {\n return dimensions[size];\n }\n return undefined;\n};","import _extends from \"@babel/runtime/helpers/extends\";\n/** @jsx jsx */\nimport { memo } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { useGlobalTheme } from '@atlaskit/theme/components';\nimport { getBackground } from './utils';\nimport { commonSVGStyles, getIconSize } from './styles';\n\n/**\n * We are hiding these props from consumers as they're used to\n * hack around icon sizing specifically for icon-file-type.\n */\n\nconst iconStyles = css({\n display: 'inline-block',\n flexShrink: 0,\n lineHeight: 1,\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '> svg': {\n ...commonSVGStyles,\n maxWidth: '100%',\n maxHeight: '100%',\n color: 'var(--icon-primary-color)',\n fill: 'var(--icon-secondary-color)',\n verticalAlign: 'bottom'\n }\n});\n/**\n * For windows high contrast mode\n */\nconst baseHcmStyles = css({\n '@media screen and (forced-colors: active)': {\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '> svg': {\n filter: 'grayscale(1)',\n '--icon-primary-color': 'CanvasText',\n // foreground\n '--icon-secondary-color': 'Canvas' // background\n }\n }\n});\n\nconst primaryEqualsSecondaryHcmStyles = css({\n '@media screen and (forced-colors: active)': {\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '> svg': {\n // if the primaryColor is the same as the secondaryColor we\n // set the --icon-primary-color to Canvas\n // this is usually to convey state i.e. Checkbox checked -> not checked\n '--icon-primary-color': 'Canvas' // foreground\n }\n }\n});\n\nconst secondaryTransparentHcmStyles = css({\n '@media screen and (forced-colors: active)': {\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '> svg': {\n '--icon-secondary-color': 'transparent' // background\n }\n }\n});\n\n/**\n * __Icon__\n *\n * An icon is used as a visual representation of common actions and commands to provide context.\n *\n * - [Examples](https://atlaskit.atlassian.com/packages/design-system/icon)\n * - [Code](https://atlaskit.atlassian.com/packages/design-system/icon/docs/custom-icons)\n */\nexport const Icon = /*#__PURE__*/memo(function Icon(props) {\n const {\n glyph: Glyph,\n dangerouslySetGlyph,\n primaryColor = 'currentColor',\n secondaryColor,\n size,\n testId,\n label,\n width,\n height\n } = props;\n const glyphProps = dangerouslySetGlyph ? {\n dangerouslySetInnerHTML: {\n __html: dangerouslySetGlyph\n }\n } : {\n children: Glyph ? jsx(Glyph, {\n role: \"presentation\"\n }) : null\n };\n const dimensions = getIconSize({\n width,\n height,\n size\n });\n const {\n mode\n } = useGlobalTheme();\n return jsx(\"span\", _extends({\n \"data-testid\": testId,\n role: label ? 'img' : undefined,\n \"aria-label\": label ? label : undefined,\n \"aria-hidden\": label ? undefined : true,\n style: {\n '--icon-primary-color': primaryColor,\n '--icon-secondary-color': secondaryColor || getBackground(mode)\n }\n }, glyphProps, {\n css: [iconStyles, baseHcmStyles, primaryColor === secondaryColor && primaryEqualsSecondaryHcmStyles, secondaryColor === 'transparent' && secondaryTransparentHcmStyles,\n // NB: This can be resolved if this component, composes base SVG / and/or skeleton\n // We could then simplify how common styles are dealt with simply by encapsualting them\n // at their appropriate level and/or having a singular approach to css variables in the package\n dimensions &&\n // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage\n css({\n width: dimensions.width,\n height: dimensions.height,\n '> svg': dimensions\n })]\n }));\n});\nexport default Icon;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _base = require(\"@atlaskit/icon/base\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst CheckIcon = props => /*#__PURE__*/_react.default.createElement(_base.Icon, Object.assign({\n dangerouslySetGlyph: ``\n}, props));\n\nCheckIcon.displayName = 'CheckIcon';\nvar _default = CheckIcon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _base = require(\"@atlaskit/icon/base\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst QuestionCircleIcon = props => /*#__PURE__*/_react.default.createElement(_base.Icon, Object.assign({\n dangerouslySetGlyph: ``\n}, props));\n\nQuestionCircleIcon.displayName = 'QuestionCircleIcon';\nvar _default = QuestionCircleIcon;\nexports.default = _default;","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MediaQuery\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"MediaQuery\"] = factory(root[\"React\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE_react__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./node_modules/css-mediaquery/index.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/css-mediaquery/index.js ***!\n \\**********************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse;\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n var typeMatch = query.type === 'all' || values.type === query.type;\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false;\n }\n\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n\n // Missing or falsy values don't match.\n if (!value) { return false; }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase();\n\n case 'width':\n case 'height':\n case 'device-width':\n case 'device-height':\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n\n case 'resolution':\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n\n case 'grid':\n case 'color':\n case 'color-index':\n case 'monochrome':\n expValue = parseInt(expValue, 10) || 1;\n value = parseInt(value, 10) || 0;\n break;\n }\n\n switch (modifier) {\n case 'min': return value >= expValue;\n case 'max': return value <= expValue;\n default : return value === expValue;\n }\n });\n\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n });\n}\n\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(',').map(function (query) {\n query = query.trim();\n\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || '',\n parsed = {};\n\n parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n parsed.type = type ? type.toLowerCase() : 'all';\n\n // Split expressions into a list.\n expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n return {\n modifier: feature[1],\n feature : feature[2],\n value : captures[2]\n };\n });\n\n return parsed;\n });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n var decimal = Number(ratio),\n numbers;\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n\n return decimal;\n}\n\nfunction toDpi(resolution) {\n var value = parseFloat(resolution),\n units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n switch (units) {\n case 'dpcm': return value / 2.54;\n case 'dppx': return value * 96;\n default : return value;\n }\n}\n\nfunction toPx(length) {\n var value = parseFloat(length),\n units = String(length).match(RE_LENGTH_UNIT)[1];\n\n switch (units) {\n case 'em' : return value * 16;\n case 'rem': return value * 16;\n case 'cm' : return value * 96 / 2.54;\n case 'mm' : return value * 96 / 2.54 / 10;\n case 'in' : return value * 96;\n case 'pt' : return value * 72;\n case 'pc' : return value * 72 / 12;\n default : return value;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/hyphenate-style-name/index.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/hyphenate-style-name/index.js ***!\n \\****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hyphenateStyleName);\n\n\n/***/ }),\n\n/***/ \"./node_modules/matchmediaquery/index.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/matchmediaquery/index.js ***!\n \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nvar staticMatch = (__webpack_require__(/*! css-mediaquery */ \"./node_modules/css-mediaquery/index.js\").match);\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n var self = this;\n if(dynamicMatch && !forceStatic){\n var mql = dynamicMatch.call(window, query);\n this.matches = mql.matches;\n this.media = mql.media;\n // TODO: is there a time it makes sense to remove this listener?\n mql.addListener(update);\n } else {\n this.matches = staticMatch(query, values);\n this.media = query;\n }\n\n this.addListener = addListener;\n this.removeListener = removeListener;\n this.dispose = dispose;\n\n function addListener(listener){\n if(mql){\n mql.addListener(listener);\n }\n }\n\n function removeListener(listener){\n if(mql){\n mql.removeListener(listener);\n }\n }\n\n // update ourselves!\n function update(evt){\n self.matches = evt.matches;\n self.media = evt.media;\n }\n\n function dispose(){\n if(mql){\n mql.removeListener(update);\n }\n }\n}\n\nfunction matchMedia(query, values, forceStatic){\n return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n\n\n/***/ }),\n\n/***/ \"./node_modules/object-assign/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/object-assign/index.js ***!\n \\*********************************************/\n/***/ ((module) => {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/checkPropTypes.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/prop-types/checkPropTypes.js ***!\n \\***************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\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\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = __webpack_require__(/*! ./lib/has */ \"./node_modules/prop-types/lib/has.js\");\n\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 */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\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(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\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(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\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\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/factoryWithTypeCheckers.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!\n \\************************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\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\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar has = __webpack_require__(/*! ./lib/has */ \"./node_modules/prop-types/lib/has.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar printWarning = function() {};\n\nif (true) {\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = 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\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\n function createChainableTypeChecker(validate) {\n if (true) {\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\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\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\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\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\n return new PropTypeError(\n '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\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\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\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\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\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\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\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\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\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\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\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\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\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\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\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(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\n return createChainableTypeChecker(validate);\n }\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\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\n return true;\n default:\n return false;\n }\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\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\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/index.js\":\n/*!******************************************!*\\\n !*** ./node_modules/prop-types/index.js ***!\n \\******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\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 (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\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 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!\n \\*************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\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\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/lib/has.js\":\n/*!********************************************!*\\\n !*** ./node_modules/prop-types/lib/has.js ***!\n \\********************************************/\n/***/ ((module) => {\n\nmodule.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n\n\n/***/ }),\n\n/***/ \"./node_modules/react-is/cjs/react-is.development.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/react-is/cjs/react-is.development.js ***!\n \\***********************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\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.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar 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\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // 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\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\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\n default:\n var $$typeofType = type && type.$$typeof;\n\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\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction 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\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/react-is/index.js\":\n/*!****************************************!*\\\n !*** ./node_modules/react-is/index.js ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/shallow-equal/dist/index.esm.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/shallow-equal/dist/index.esm.js ***!\n \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"shallowEqualArrays\": () => (/* binding */ shallowEqualArrays),\n/* harmony export */ \"shallowEqualObjects\": () => (/* binding */ shallowEqualObjects)\n/* harmony export */ });\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n\n\n/***/ }),\n\n/***/ \"./src/Component.ts\":\n/*!**************************!*\\\n !*** ./src/Component.ts ***!\n \\**************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar useMediaQuery_1 = __importDefault(__webpack_require__(/*! ./useMediaQuery */ \"./src/useMediaQuery.ts\"));\n// ReactNode and ReactElement typings are a little funky for functional components, so the ReactElement cast is needed on the return\nvar MediaQuery = function (_a) {\n var children = _a.children, device = _a.device, onChange = _a.onChange, settings = __rest(_a, [\"children\", \"device\", \"onChange\"]);\n var matches = (0, useMediaQuery_1.default)(settings, device, onChange);\n if (typeof children === 'function') {\n return children(matches);\n }\n return matches ? children : null;\n};\nexports[\"default\"] = MediaQuery;\n\n\n/***/ }),\n\n/***/ \"./src/Context.ts\":\n/*!************************!*\\\n !*** ./src/Context.ts ***!\n \\************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar react_1 = __webpack_require__(/*! react */ \"react\");\nvar Context = (0, react_1.createContext)(undefined);\nexports[\"default\"] = Context;\n\n\n/***/ }),\n\n/***/ \"./src/index.ts\":\n/*!**********************!*\\\n !*** ./src/index.ts ***!\n \\**********************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Context = exports.toQuery = exports.useMediaQuery = exports[\"default\"] = void 0;\nvar useMediaQuery_1 = __importDefault(__webpack_require__(/*! ./useMediaQuery */ \"./src/useMediaQuery.ts\"));\nexports.useMediaQuery = useMediaQuery_1.default;\nvar Component_1 = __importDefault(__webpack_require__(/*! ./Component */ \"./src/Component.ts\"));\nexports[\"default\"] = Component_1.default;\nvar toQuery_1 = __importDefault(__webpack_require__(/*! ./toQuery */ \"./src/toQuery.ts\"));\nexports.toQuery = toQuery_1.default;\nvar Context_1 = __importDefault(__webpack_require__(/*! ./Context */ \"./src/Context.ts\"));\nexports.Context = Context_1.default;\n\n\n/***/ }),\n\n/***/ \"./src/mediaQuery.ts\":\n/*!***************************!*\\\n !*** ./src/mediaQuery.ts ***!\n \\***************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar prop_types_1 = __importDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar stringOrNumber = prop_types_1.default.oneOfType([\n prop_types_1.default.string,\n prop_types_1.default.number\n]);\n// media types\nvar types = {\n all: prop_types_1.default.bool,\n grid: prop_types_1.default.bool,\n aural: prop_types_1.default.bool,\n braille: prop_types_1.default.bool,\n handheld: prop_types_1.default.bool,\n print: prop_types_1.default.bool,\n projection: prop_types_1.default.bool,\n screen: prop_types_1.default.bool,\n tty: prop_types_1.default.bool,\n tv: prop_types_1.default.bool,\n embossed: prop_types_1.default.bool\n};\n// properties that match media queries\nvar matchers = {\n orientation: prop_types_1.default.oneOf([\n 'portrait',\n 'landscape'\n ]),\n scan: prop_types_1.default.oneOf([\n 'progressive',\n 'interlace'\n ]),\n aspectRatio: prop_types_1.default.string,\n deviceAspectRatio: prop_types_1.default.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: prop_types_1.default.bool,\n colorIndex: prop_types_1.default.bool,\n monochrome: prop_types_1.default.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar type = matchers.type, featureMatchers = __rest(matchers\n// media features\n, [\"type\"]);\n// media features\nvar features = __assign({ minAspectRatio: prop_types_1.default.string, maxAspectRatio: prop_types_1.default.string, minDeviceAspectRatio: prop_types_1.default.string, maxDeviceAspectRatio: prop_types_1.default.string, minHeight: stringOrNumber, maxHeight: stringOrNumber, minDeviceHeight: stringOrNumber, maxDeviceHeight: stringOrNumber, minWidth: stringOrNumber, maxWidth: stringOrNumber, minDeviceWidth: stringOrNumber, maxDeviceWidth: stringOrNumber, minColor: prop_types_1.default.number, maxColor: prop_types_1.default.number, minColorIndex: prop_types_1.default.number, maxColorIndex: prop_types_1.default.number, minMonochrome: prop_types_1.default.number, maxMonochrome: prop_types_1.default.number, minResolution: stringOrNumber, maxResolution: stringOrNumber }, featureMatchers);\nvar all = __assign(__assign({}, types), features);\nexports[\"default\"] = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n};\n\n\n/***/ }),\n\n/***/ \"./src/toQuery.ts\":\n/*!************************!*\\\n !*** ./src/toQuery.ts ***!\n \\************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar hyphenate_style_name_1 = __importDefault(__webpack_require__(/*! hyphenate-style-name */ \"./node_modules/hyphenate-style-name/index.js\"));\nvar mediaQuery_1 = __importDefault(__webpack_require__(/*! ./mediaQuery */ \"./src/mediaQuery.ts\"));\nvar negate = function (cond) { return \"not \".concat(cond); };\nvar keyVal = function (k, v) {\n var realKey = (0, hyphenate_style_name_1.default)(k);\n // px shorthand\n if (typeof v === 'number') {\n v = \"\".concat(v, \"px\");\n }\n if (v === true) {\n return realKey;\n }\n if (v === false) {\n return negate(realKey);\n }\n return \"(\".concat(realKey, \": \").concat(v, \")\");\n};\nvar join = function (conds) { return conds.join(' and '); };\nvar toQuery = function (obj) {\n var rules = [];\n Object.keys(mediaQuery_1.default.all).forEach(function (k) {\n var v = obj[k];\n if (v != null) {\n rules.push(keyVal(k, v));\n }\n });\n return join(rules);\n};\nexports[\"default\"] = toQuery;\n\n\n/***/ }),\n\n/***/ \"./src/useMediaQuery.ts\":\n/*!******************************!*\\\n !*** ./src/useMediaQuery.ts ***!\n \\******************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar react_1 = __webpack_require__(/*! react */ \"react\");\nvar matchmediaquery_1 = __importDefault(__webpack_require__(/*! matchmediaquery */ \"./node_modules/matchmediaquery/index.js\"));\nvar hyphenate_style_name_1 = __importDefault(__webpack_require__(/*! hyphenate-style-name */ \"./node_modules/hyphenate-style-name/index.js\"));\nvar shallow_equal_1 = __webpack_require__(/*! shallow-equal */ \"./node_modules/shallow-equal/dist/index.esm.js\");\nvar toQuery_1 = __importDefault(__webpack_require__(/*! ./toQuery */ \"./src/toQuery.ts\"));\nvar Context_1 = __importDefault(__webpack_require__(/*! ./Context */ \"./src/Context.ts\"));\nvar makeQuery = function (settings) { return settings.query || (0, toQuery_1.default)(settings); };\nvar hyphenateKeys = function (obj) {\n if (!obj)\n return undefined;\n var keys = Object.keys(obj);\n return keys.reduce(function (result, key) {\n result[(0, hyphenate_style_name_1.default)(key)] = obj[key];\n return result;\n }, {});\n};\nvar useIsUpdate = function () {\n var ref = (0, react_1.useRef)(false);\n (0, react_1.useEffect)(function () {\n ref.current = true;\n }, []);\n return ref.current;\n};\nvar useDevice = function (deviceFromProps) {\n var deviceFromContext = (0, react_1.useContext)(Context_1.default);\n var getDevice = function () {\n return hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n };\n var _a = (0, react_1.useState)(getDevice), device = _a[0], setDevice = _a[1];\n (0, react_1.useEffect)(function () {\n var newDevice = getDevice();\n if (!(0, shallow_equal_1.shallowEqualObjects)(device, newDevice)) {\n setDevice(newDevice);\n }\n }, [deviceFromProps, deviceFromContext]);\n return device;\n};\nvar useQuery = function (settings) {\n var getQuery = function () { return makeQuery(settings); };\n var _a = (0, react_1.useState)(getQuery), query = _a[0], setQuery = _a[1];\n (0, react_1.useEffect)(function () {\n var newQuery = getQuery();\n if (query !== newQuery) {\n setQuery(newQuery);\n }\n }, [settings]);\n return query;\n};\nvar useMatchMedia = function (query, device) {\n var getMatchMedia = function () { return (0, matchmediaquery_1.default)(query, device || {}, !!device); };\n var _a = (0, react_1.useState)(getMatchMedia), mq = _a[0], setMq = _a[1];\n var isUpdate = useIsUpdate();\n (0, react_1.useEffect)(function () {\n if (isUpdate) {\n // skip on mounting, it has already been set\n var newMq_1 = getMatchMedia();\n setMq(newMq_1);\n return function () {\n if (newMq_1) {\n newMq_1.dispose();\n }\n };\n }\n }, [query, device]);\n return mq;\n};\nvar useMatches = function (mediaQuery) {\n var _a = (0, react_1.useState)(mediaQuery.matches), matches = _a[0], setMatches = _a[1];\n (0, react_1.useEffect)(function () {\n var updateMatches = function (ev) {\n setMatches(ev.matches);\n };\n mediaQuery.addListener(updateMatches);\n setMatches(mediaQuery.matches);\n return function () {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]);\n return matches;\n};\nvar useMediaQuery = function (settings, device, onChange) {\n var deviceSettings = useDevice(device);\n var query = useQuery(settings);\n if (!query)\n throw new Error('Invalid or missing MediaQuery!');\n var mq = useMatchMedia(query, deviceSettings);\n var matches = useMatches(mq);\n var isUpdate = useIsUpdate();\n (0, react_1.useEffect)(function () {\n if (isUpdate && onChange) {\n onChange(matches);\n }\n }, [matches]);\n (0, react_1.useEffect)(function () { return function () {\n if (mq) {\n mq.dispose();\n }\n }; }, []);\n return matches;\n};\nexports[\"default\"] = useMediaQuery;\n\n\n/***/ }),\n\n/***/ \"react\":\n/*!**************************************************************************************!*\\\n !*** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"} ***!\n \\**************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=react-responsive.js.map","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true // focus-lock sidecar is not required on the server\n // however, it might be required for JSDOM tests\n // ssr: true,\n\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n // report incorrect integration - https://github.com/theKashey/react-focus-lock/issues/123\n if (!observed.current && typeof Container !== 'string') {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), // first tabbed element guard\n hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n hasPositiveIndices: undefined,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\nexport var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); };\n","import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n if (!b.tabIndex) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function (nodes, filterNegative, keepGuards) {\n return toArray(nodes)\n .map(function (node, index) { return ({\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? ((node.dataset || {}).focusGuard ? 0 : -1) : node.tabIndex,\n }); })\n .filter(function (data) { return !filterNegative || data.tabIndex >= 0; })\n .sort(tabSort);\n};\n","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\nvar getFocusablesWithShadowDom = function (parent, withGuards) {\n return toArray((parent.shadowRoot || parent).children).reduce(function (acc, child) {\n return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child));\n }, []);\n};\nvar getFocusablesWithIFrame = function (parent, withGuards) {\n var _a;\n // contentDocument of iframe will be null if current origin cannot access it\n if (parent instanceof HTMLIFrameElement && ((_a = parent.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n return getFocusables([parent.contentDocument.body], withGuards);\n }\n return [parent];\n};\nexport var getFocusables = function (parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n var _a;\n var focusableWithShadowDom = getFocusablesWithShadowDom(parent, withGuards);\n var focusableWithIframes = (_a = []).concat.apply(_a, focusableWithShadowDom.map(function (node) { return getFocusablesWithIFrame(node, withGuards); }));\n return acc.concat(\n // add all tabbables inside and within shadow DOMs in DOM order\n focusableWithIframes, \n // add if node is tabbable itself\n parent.parentNode\n ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) { return node === parent; })\n : []);\n }, []);\n};\n/**\n * return a list of focusable nodes within an area marked as \"auto-focusable\"\n * @param parent\n */\nexport var getParentAutofocusables = function (parent) {\n var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n return toArray(parentFocus)\n .map(function (node) { return getFocusables([node]); })\n .reduce(function (acc, nodes) { return acc.concat(nodes); }, []);\n};\n","/**\n * list of the object to be considered as focusable\n */\nexport var tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n // elements with explicit roles will also use explicit tabindex\n // '[role=\"button\"]',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n];\n","import { toArray } from './array';\nimport { isAutoFocusAllowedCached, isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\n/**\n * given list of focusable elements keeps the ones user can interact with\n * @param nodes\n * @param visibilityCache\n */\nexport var filterFocusable = function (nodes, visibilityCache) {\n return toArray(nodes)\n .filter(function (node) { return isVisibleCached(visibilityCache, node); })\n .filter(function (node) { return notHiddenInput(node); });\n};\nexport var filterAutoFocusable = function (nodes, cache) {\n if (cache === void 0) { cache = new Map(); }\n return toArray(nodes).filter(function (node) { return isAutoFocusAllowedCached(cache, node); });\n};\n/**\n * only tabbable ones\n * (but with guards which would be ignored)\n */\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * actually anything \"focusable\", not only tabbable\n * (without guards, as long as they are not expected to be focused)\n */\nexport var getAllTabbableNodes = function (topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\n/**\n * return list of nodes which are expected to be auto-focused\n * @param topNode\n * @param visibilityCache\n */\nexport var parentAutofocusables = function (topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};\n/*\n * Determines if element is contained in scope, including nested shadow DOMs\n */\nexport var contains = function (scope, element) {\n if (scope.shadowRoot) {\n return contains(scope.shadowRoot, element);\n }\n else {\n if (Object.getPrototypeOf(scope).contains !== undefined &&\n Object.getPrototypeOf(scope).contains.call(scope, element)) {\n return true;\n }\n return toArray(scope.children).some(function (child) {\n var _a;\n if (child instanceof HTMLIFrameElement) {\n var iframeBody = (_a = child.contentDocument) === null || _a === void 0 ? void 0 : _a.body;\n if (iframeBody) {\n return contains(iframeBody, element);\n }\n return false;\n }\n return contains(child, element);\n });\n }\n};\n","/**\n * returns active element from document or from nested shadowdoms\n */\nimport { safeProbe } from './safe';\nexport var getActiveElement = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n if (!inDocument || !inDocument.activeElement) {\n return undefined;\n }\n var activeElement = inDocument.activeElement;\n return (activeElement.shadowRoot\n ? getActiveElement(activeElement.shadowRoot)\n : activeElement instanceof HTMLIFrameElement && safeProbe(function () { return activeElement.contentWindow.document; })\n ? getActiveElement(activeElement.contentWindow.document)\n : activeElement);\n};\n","export var safeProbe = function (cb) {\n try {\n return cb();\n }\n catch (e) {\n return undefined;\n }\n};\n","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n/**\n * in case of multiple nodes nested inside each other\n * keeps only top ones\n * this is O(nlogn)\n * @param nodes\n * @returns {*}\n */\nvar filterNested = function (nodes) {\n var contained = new Set();\n var l = nodes.length;\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n /* eslint-disable no-bitwise */\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n /* eslint-enable */\n }\n }\n return nodes.filter(function (_, index) { return !contained.has(index); });\n};\n/**\n * finds top most parent for a node\n * @param node\n * @returns {*}\n */\nvar getTopParent = function (node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n/**\n * returns all \"focus containers\" inside a given node\n * @param node\n * @returns {T}\n */\nexport var getAllAffectedNodes = function (node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, (group\n ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\"))))\n : [currentNode]));\n return acc;\n }, []);\n};\n","import { contains } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getFirst, toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\nvar focusInFrame = function (frame, activeElement) { return frame === activeElement; };\nvar focusInsideIframe = function (topNode, activeElement) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node, activeElement); }));\n};\n/**\n * @returns {Boolean} true, if the current focus is inside given node or nodes\n */\nexport var focusInside = function (topNode, activeElement) {\n // const activeElement = document && getActiveElement();\n if (activeElement === void 0) { activeElement = getActiveElement(getFirst(topNode).ownerDocument); }\n if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) {\n return false;\n }\n return getAllAffectedNodes(topNode).some(function (node) {\n return contains(node, activeElement) || focusInsideIframe(node, activeElement);\n });\n};\n","import { isRadioElement } from './is';\nvar findSelectedRadio = function (node, nodes) {\n return nodes\n .filter(isRadioElement)\n .filter(function (el) { return el.name === node.name; })\n .filter(function (el) { return el.checked; })[0] || node;\n};\nexport var correctNode = function (node, nodes) {\n if (isRadioElement(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n return node;\n};\n/**\n * giving a set of radio inputs keeps only selected (tabbable) ones\n * @param nodes\n */\nexport var correctNodes = function (nodes) {\n // IE11 has no Set(array) constructor\n var resultSet = new Set();\n nodes.forEach(function (node) { return resultSet.add(correctNode(node, nodes)); });\n // using filter to support IE11\n return nodes.filter(function (node) { return resultSet.has(node); });\n};\n","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function (nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n return nodes[0];\n};\nexport var pickFocusable = function (nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n return index;\n};\n","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\n/**\n * Main solver for the \"find next focus\" question\n * @param innerNodes\n * @param outerNodes\n * @param activeElement\n * @param lastNode\n * @returns {number|string|undefined|*}\n */\nexport var newFocus = function (innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n // focus is inside\n if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n // new focus\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n // old focus\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n // first element\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n // last element\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n // jump out, but not on the guard\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n // focus above lock\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n // focus below lock\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n // index is inside tab order, but outside Lock\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n // do nothing\n return undefined;\n};\n","import { parentAutofocusables } from './DOMutils';\nimport { contains } from './DOMutils';\nimport { asArray } from './array';\nvar getParents = function (node, parents) {\n if (parents === void 0) { parents = []; }\n parents.push(node);\n if (node.parentNode) {\n getParents(node.parentNode.host || node.parentNode, parents);\n }\n return parents;\n};\n/**\n * finds a parent for both nodeA and nodeB\n * @param nodeA\n * @param nodeB\n * @returns {boolean|*}\n */\nexport var getCommonParent = function (nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n return false;\n};\nexport var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n if (common) {\n if (!topCommon || contains(common, topCommon)) {\n topCommon = common;\n }\n else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n // TODO: add assert here?\n return topCommon;\n};\n/**\n * return list of nodes which are expected to be autofocused inside a given top nodes\n * @param entries\n * @param visibilityCache\n */\nexport var allParentAutofocusables = function (entries, visibilityCache) {\n return entries.reduce(function (acc, node) { return acc.concat(parentAutofocusables(node, visibilityCache)); }, []);\n};\n","import { NEW_FOCUS, newFocus } from './solver';\nimport { getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { asArray, getFirst } from './utils/array';\nimport { pickAutofocus } from './utils/auto-focus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\nvar reorderNodes = function (srcNodes, dstNodes) {\n var remap = new Map();\n // no Set(dstNodes) for IE11 :(\n dstNodes.forEach(function (entity) { return remap.set(entity.node, entity); });\n // remap to dstNodes\n return srcNodes.map(function (node) { return remap.get(node); }).filter(isDefined);\n};\n/**\n * given top node(s) and the last active element return the element to be focused next\n * @param topNode\n * @param lastNode\n */\nexport var getFocusMerge = function (topNode, lastNode) {\n var activeElement = getActiveElement(asArray(topNode).length > 0 ? document : getFirst(topNode).ownerDocument);\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n if (!innerElements[0]) {\n return undefined;\n }\n }\n var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n if (newId === NEW_FOCUS) {\n var focusNode = pickAutofocus(anyFocusable, innerNodes, allParentAutofocusables(entries, visibilityCache));\n if (focusNode) {\n return { node: focusNode };\n }\n else {\n console.warn('focus-lock: cannot find any node to move focus into');\n return undefined;\n }\n }\n if (newId === undefined) {\n return newId;\n }\n return orderedInnerElements[newId];\n};\n","import { filterAutoFocusable } from './DOMutils';\nimport { pickFirstFocus } from './firstFocus';\nimport { getDataset } from './is';\nvar findAutoFocused = function (autoFocusables) {\n return function (node) {\n var _a;\n var autofocus = (_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus;\n return (\n // @ts-expect-error\n node.autofocus ||\n //\n (autofocus !== undefined && autofocus !== 'false') ||\n //\n autoFocusables.indexOf(node) >= 0);\n };\n};\nexport var pickAutofocus = function (nodesIndexes, orderedNodes, groups) {\n var nodes = nodesIndexes.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var autoFocusable = filterAutoFocusable(nodes.filter(findAutoFocused(groups)));\n if (autoFocusable && autoFocusable.length) {\n return pickFirstFocus(autoFocusable);\n }\n return pickFirstFocus(filterAutoFocusable(orderedNodes));\n};\n","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function (target, focusOptions) {\n if ('focus' in target) {\n target.focus(focusOptions);\n }\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * Sets focus at a given node. The last focused element will help to determine which element(first or last) should be focused.\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @param topNode\n * @param lastNode\n * @param options\n */\nexport var setFocus = function (topNode, lastNode, options) {\n if (options === void 0) { options = {}; }\n var focusable = getFocusMerge(topNode, lastNode);\n if (lockDisabled) {\n return;\n }\n if (focusable) {\n if (guardCount > 2) {\n // tslint:disable-next-line:no-console\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' +\n 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};\n","import * as constants from './constants';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { getFocusabledIn, getFocusableIn } from './focusables';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getActiveElement } from './utils/getActiveElement';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusableIn, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement, getActiveElement, };\nexport default setFocus;\n//\n","export function deferAction(action) {\n // Hidding setImmediate from Webpack to avoid inserting polyfill\n var _window = window,\n setImmediate = _window.setImmediate;\n\n if (typeof setImmediate !== 'undefined') {\n setImmediate(action);\n } else {\n setTimeout(action, 1);\n }\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","/* eslint-disable no-mixed-operators */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && ( // find host equal to active element and check nested active element\n el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !( // active element is \"inside\" working area\n focusInside(workingArea) || // check for shadow-dom contained elements\n activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n setTimeout(function () {\n focusWasOutsideWindow = 'meanwhile';\n }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\n/**\n * return list of focusable elements inside a given top node\n * @deprecated use {@link getFocusableIn}. Yep, there is typo in the function name\n */\nexport var getFocusabledIn = function (topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache)\n .filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n })\n .map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node, index = _a.index;\n return ({\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node),\n });\n });\n};\n/**\n * return list of focusable elements inside a given top node\n */\nexport var getFocusableIn = getFocusabledIn;\n","import { FOCUS_ALLOW } from './constants';\nimport { contains } from './utils/DOMutils';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n/**\n * focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\n * @returns {boolean} focus is currently is in \"allow\" area\n */\nexport var focusIsHidden = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n var activeElement = getActiveElement(inDocument);\n if (!activeElement) {\n return false;\n }\n // this does not support setting FOCUS_ALLOW within shadow dom\n return toArray(inDocument.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) { return contains(node, activeElement); });\n};\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\n\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\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\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _exenv = require('exenv');\n\nvar _TouchScrollable = require('./TouchScrollable');\n\nvar _withLockSheet = require('./withLockSheet');\n\nvar _withLockSheet2 = _interopRequireDefault(_withLockSheet);\n\nvar _withTouchListeners = require('./withTouchListeners');\n\nvar _withTouchListeners2 = _interopRequireDefault(_withTouchListeners);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ScrollLock = function (_PureComponent) {\n _inherits(ScrollLock, _PureComponent);\n\n function ScrollLock() {\n _classCallCheck(this, ScrollLock);\n\n return _possibleConstructorReturn(this, (ScrollLock.__proto__ || Object.getPrototypeOf(ScrollLock)).apply(this, arguments));\n }\n\n _createClass(ScrollLock, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!_exenv.canUseDOM) return;\n this.initialHeight = window.innerHeight;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var offset = window.innerHeight - this.initialHeight;\n\n // adjust scroll if the window has been resized since the lock was engaged\n // e.g. mobile safari dynamic chrome heights\n if (offset) {\n window.scrollTo(0, window.pageYOffset + offset);\n }\n\n // reset the initial height in case this scroll lock is used again\n this.initialHeight = window.innerHeight;\n }\n }, {\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return children ? _react2.default.createElement(\n _TouchScrollable.TouchScrollable,\n null,\n children\n ) : null;\n }\n }]);\n\n return ScrollLock;\n}(_react.PureComponent);\n\n// attach the stylesheet and inject styles on [un]mount\n\n\nvar compose = (0, _utils.pipe)(_withTouchListeners2.default, _withLockSheet2.default);\nvar SheetLock = compose(ScrollLock);\n\n// toggle the lock based on `isActive` prop\nvar LockToggle = function LockToggle(props) {\n return props.isActive ? _react2.default.createElement(SheetLock, props) : props.children;\n};\n\nLockToggle.defaultProps = {\n accountForScrollbars: true,\n children: null,\n isActive: true\n};\n\nexports.default = LockToggle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TouchScrollable = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _exenv = require('exenv');\n\nvar _utils = require('./utils');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TouchScrollable = exports.TouchScrollable = function (_PureComponent) {\n _inherits(TouchScrollable, _PureComponent);\n\n function TouchScrollable() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, TouchScrollable);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = TouchScrollable.__proto__ || Object.getPrototypeOf(TouchScrollable)).call.apply(_ref, [this].concat(args))), _this), _this.getScrollableArea = function (ref) {\n _this.scrollableArea = ref;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(TouchScrollable, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!_exenv.canUseEventListeners) return;\n\n this.scrollableArea.addEventListener('touchstart', _utils.preventInertiaScroll, _utils.listenerOptions);\n this.scrollableArea.addEventListener('touchmove', _utils.allowTouchMove, _utils.listenerOptions);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (!_exenv.canUseEventListeners) return;\n\n this.scrollableArea.removeEventListener('touchstart', _utils.preventInertiaScroll, _utils.listenerOptions);\n this.scrollableArea.removeEventListener('touchmove', _utils.allowTouchMove, _utils.listenerOptions);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n rest = _objectWithoutProperties(_props, ['children']);\n\n return typeof children === 'function' ? children(this.getScrollableArea) : (0, _react.cloneElement)(children, _extends({ ref: this.getScrollableArea }, rest));\n }\n }]);\n\n return TouchScrollable;\n}(_react.PureComponent);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ScrollLock = require('./ScrollLock');\n\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ScrollLock).default;\n }\n});\n\nvar _TouchScrollable = require('./TouchScrollable');\n\nObject.defineProperty(exports, 'TouchScrollable', {\n enumerable: true,\n get: function get() {\n return _TouchScrollable.TouchScrollable;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.pipe = exports.listenerOptions = undefined;\nexports.preventTouchMove = preventTouchMove;\nexports.allowTouchMove = allowTouchMove;\nexports.preventInertiaScroll = preventInertiaScroll;\nexports.isTouchDevice = isTouchDevice;\nexports.camelToKebab = camelToKebab;\nexports.parse = parse;\nexports.getPadding = getPadding;\nexports.getWindowHeight = getWindowHeight;\nexports.getDocumentHeight = getDocumentHeight;\nexports.makeStyleTag = makeStyleTag;\nexports.injectStyles = injectStyles;\nexports.insertStyleTag = insertStyleTag;\n\nvar _exenv = require('exenv');\n\nvar listenerOptions = exports.listenerOptions = {\n capture: false,\n passive: false\n};\n\n// ==============================\n// Touch Helpers\n// ==============================\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n\n return false;\n}\n\nfunction allowTouchMove(e) {\n var target = e.currentTarget;\n\n if (target.scrollHeight > target.clientHeight) {\n e.stopPropagation();\n return true;\n }\n\n e.preventDefault();\n return false;\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n if (!_exenv.canUseDOM) return false;\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\n// ==============================\n// Misc.\n// ==============================\n\nfunction camelToKebab(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction parse(val) {\n return isNaN(val) ? val : val + 'px';\n}\n\n// Take a list of functions and return a function that applies the list of\n// functions from left to right\n\nvar pipeFns = function pipeFns(a, b) {\n return function () {\n return b(a.apply(undefined, arguments));\n };\n};\nvar pipe = exports.pipe = function pipe() {\n for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return fns.reduce(pipeFns);\n};\n\n// ==============================\n// Document Helpers\n// ==============================\n\nfunction getPadding() {\n if (!_exenv.canUseDOM) return 0;\n\n var paddingRight = parseInt(window.getComputedStyle(document.body).paddingRight, 10);\n var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n return paddingRight + scrollbarWidth;\n}\n\nfunction getWindowHeight() {\n var multiplier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n if (_exenv.canUseDOM) {\n return window.innerHeight * multiplier;\n }\n}\n\nfunction getDocumentHeight() {\n if (_exenv.canUseDOM) {\n return document.body.clientHeight;\n }\n}\n\n// ==============================\n// Style Sheets\n// ==============================\n\nfunction makeStyleTag() {\n if (!_exenv.canUseDOM) return;\n\n var tag = document.createElement('style');\n tag.type = 'text/css';\n tag.setAttribute('data-react-scrolllock', '');\n\n return tag;\n}\nfunction injectStyles(tag, css) {\n if (!_exenv.canUseDOM) return;\n\n if (tag.styleSheet) {\n tag.styleSheet.cssText = css;\n } else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n if (!_exenv.canUseDOM) return;\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n head.appendChild(tag);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = withLockSheet;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction withLockSheet(WrappedComponent) {\n return function (_PureComponent) {\n _inherits(SheetProvider, _PureComponent);\n\n function SheetProvider() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, SheetProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = SheetProvider.__proto__ || Object.getPrototypeOf(SheetProvider)).call.apply(_ref, [this].concat(args))), _this), _this.addSheet = function () {\n var styles = _this.getStyles();\n\n var sheet = (0, _utils.makeStyleTag)();\n if (!sheet) return;\n\n (0, _utils.injectStyles)(sheet, styles);\n (0, _utils.insertStyleTag)(sheet);\n\n _this.sheet = sheet;\n }, _this.getStyles = function () {\n var accountForScrollbars = _this.props.accountForScrollbars;\n\n\n var height = (0, _utils.getDocumentHeight)();\n var paddingRight = accountForScrollbars ? (0, _utils.getPadding)() : null;\n var styles = 'body {\\n box-sizing: border-box !important;\\n overflow: hidden !important;\\n position: relative !important;\\n ' + (height ? 'height: ' + height + 'px !important;' : '') + '\\n ' + (paddingRight ? 'padding-right: ' + paddingRight + 'px !important;' : '') + '\\n }';\n\n return styles;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(SheetProvider, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.addSheet();\n }\n }, {\n key: 'removeSheet',\n value: function removeSheet() {\n if (!this.sheet) return;\n\n // $FlowFixMe\n this.sheet.parentNode.removeChild(this.sheet);\n this.sheet = null;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeSheet();\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(WrappedComponent, this.props);\n }\n }]);\n\n return SheetProvider;\n }(_react.PureComponent);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = withTouchListeners;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _exenv = require('exenv');\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Mobile Safari ignores { overflow: hidden } declaration on the body,\n// so we have to prevent touchmove events via JS\nfunction withTouchListeners(WrappedComponent) {\n return function (_PureComponent) {\n _inherits(TouchProvider, _PureComponent);\n\n function TouchProvider() {\n _classCallCheck(this, TouchProvider);\n\n return _possibleConstructorReturn(this, (TouchProvider.__proto__ || Object.getPrototypeOf(TouchProvider)).apply(this, arguments));\n }\n\n _createClass(TouchProvider, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!_exenv.canUseDOM || !(0, _utils.isTouchDevice)()) return;\n\n document.addEventListener('touchmove', _utils.preventTouchMove, _utils.listenerOptions);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (!_exenv.canUseDOM || !(0, _utils.isTouchDevice)()) return;\n\n document.removeEventListener('touchmove', _utils.preventTouchMove, _utils.listenerOptions);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(WrappedComponent, this.props);\n }\n }]);\n\n return TouchProvider;\n }(_react.PureComponent);\n}","import * as React from 'react';\nimport { generateUID } from './uid';\nexport const createSource = (prefix = '') => ({\n value: 1,\n prefix: prefix,\n uid: generateUID(),\n});\nexport const counter = createSource();\nexport const source = React.createContext(createSource());\nexport const getId = (source) => source.value++;\nexport const getPrefix = (source) => (source ? source.prefix : '');\n","import * as React from 'react';\nimport { useContext, useState } from 'react';\nimport { counter, getId, getPrefix, source } from './context';\nconst generateUID = (context) => {\n const quartz = context || counter;\n const prefix = getPrefix(quartz);\n const id = getId(quartz);\n const uid = prefix + id;\n const gen = (item) => uid + quartz.uid(item);\n return { uid, gen };\n};\nconst useUIDState = () => {\n if (process.env.NODE_ENV !== 'production') {\n if (!('useContext' in React)) {\n throw new Error('Hooks API requires React 16.8+');\n }\n }\n const context = useContext(source);\n const [uid] = useState(() => generateUID(context));\n return uid;\n};\n/**\n * returns and unique id. SSR friendly\n * returns {String}\n * @see {@link UIDConsumer}\n * @see https://github.com/thearnica/react-uid#hooks-168\n * @example\n * const id = useUID();\n * id == 1; // for example\n */\nexport const useUID = () => {\n const { uid } = useUIDState();\n return uid;\n};\n/**\n * returns an uid generator\n * @see {@link UIDConsumer}\n * @see https://github.com/thearnica/react-uid#hooks-168\n * @example\n * const uid = useUIDSeed();\n * return (\n * <>\n * Email: \n * \n * {data.map(item => ...\n * >\n * )\n */\nexport const useUIDSeed = () => {\n const { gen } = useUIDState();\n return gen;\n};\n","/**\n * generates a UID factory\n * @internal\n * @example\n * const uid = generateUID();\n * uid(object) = 1;\n * uid(object) = 1;\n * uid(anotherObject) = 2;\n */\nexport const generateUID = () => {\n let counter = 1;\n const map = new WeakMap();\n /**\n * @borrows {uid}\n */\n const uid = (item, index) => {\n if (typeof item === 'number' || typeof item === 'string') {\n return index ? `idx-${index}` : `val-${item}`;\n }\n if (!map.has(item)) {\n map.set(item, counter++);\n return uid(item);\n }\n return 'uid' + map.get(item);\n };\n return uid;\n};\n/**\n * @name uid\n * returns an UID associated with {item}\n * @param {Object} item - object to generate UID for\n * @param {Number} index, a fallback index\n * @example\n * uid(object) == 1;\n * uid(object) == 1;\n * uid(anotherObject) == 2;\n * uid(\"not object\", 42) == 42\n *\n * @see {@link useUID}\n */\nexport const uid = generateUID();\n","import deprecationWarning from '@atlaskit/ds-lib/deprecation-warning';\nimport { B100, N30A, skeleton as skeletonColor } from './colors';\nexport const CHANNEL = '__ATLASKIT_THEME__';\nexport const DEFAULT_THEME_MODE = 'light';\nexport const THEME_MODES = ['light', 'dark'];\n\n/*\n These theme values are expressed as functions so that if we decide to make\n them dependent on props in the future, it wouldn't require a significant\n refactor everywhere they are being used.\n*/\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('border.radius.100', '3px')` instead.\n */\nexport const borderRadius = () => 3;\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('space.100', '8px')` instead with any of the space tokens.\n * Available space tokens can be found on {@link https://atlassian.design/foundations/spacing/#scale}\n */\nexport const gridSize = () => 8;\nexport const fontSize = () => 14;\nexport const fontSizeSmall = () => 11;\nexport const fontFamily = () => `-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\nexport const codeFontFamily = () => `'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace`;\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const focusRing = (color = `var(--ds-border-focused, ${B100})`, outlineWidth = gridSize() / 4) => {\n deprecationWarning('@atlaskit/theme', 'focus ring mixin', 'Please use `@atlaskit/focus-ring` instead.');\n return `\n &:focus {\n outline: none;\n box-shadow: 0px 0px 0px ${outlineWidth}px ${color};\n }\n`;\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const noFocusRing = () => `\n box-shadow: none;\n`;\nexport const layers = {\n card: () => 100,\n navigation: () => 200,\n dialog: () => 300,\n layer: () => 400,\n blanket: () => 500,\n modal: () => 510,\n flag: () => 600,\n spotlight: () => 700,\n tooltip: () => 800\n};\n\n// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const visuallyHidden = () => {\n deprecationWarning('@atlaskit/theme', 'visually hidden mixin', 'Please use `@atlaskit/visually-hidden` instead.');\n return {\n border: '0 !important',\n clip: 'rect(1px, 1px, 1px, 1px) !important',\n height: '1px !important',\n overflow: 'hidden !important',\n padding: '0 !important',\n position: 'absolute !important',\n width: '1px !important',\n whiteSpace: 'nowrap !important'\n };\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const assistive = visuallyHidden;\n\n/**\n * These styles are mirrored in:\n * packages/design-system/menu/src/internal/components/skeleton-shimmer.tsx\n *\n * Please update both.\n */\nexport const skeletonShimmer = () => ({\n css: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate'\n },\n keyframes: {\n from: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`\n },\n to: {\n backgroundColor: `var(--ds-skeleton-subtle, ${N30A})`\n }\n }\n});","import { CHANNEL, DEFAULT_THEME_MODE, THEME_MODES } from '../constants';\n// Resolves the different types of theme objects in the current API\nexport default function getTheme(props) {\n if (props && props.theme) {\n // Theme is the global Atlaskit theme\n if (CHANNEL in props.theme) {\n return props.theme[CHANNEL];\n }\n // User has provided alternative modes\n else if ('mode' in props.theme && THEME_MODES.includes(props.theme.mode)) {\n return props.theme;\n }\n }\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE\n };\n}","/* eslint-disable prefer-rest-params */\n\nimport getTheme from './get-theme';\n// Unpack custom variants, and get correct value for the current theme\nfunction themedVariants(variantProp, variants) {\n return props => {\n const theme = getTheme(props);\n if (props && props[variantProp] && variants) {\n const modes = variants[props[variantProp]];\n if (modes && modes[theme.mode]) {\n const value = modes[theme.mode];\n if (value) {\n return value;\n } // TS believes value can be undefined\n }\n }\n\n return '';\n };\n}\nexport default function themed(modesOrVariant, variantModes) {\n if (typeof modesOrVariant === 'string') {\n return themedVariants(modesOrVariant, variantModes);\n }\n const modes = modesOrVariant;\n return props => {\n // Get theme from the user's props\n const theme = getTheme(props);\n // User isn't required to provide both light and dark values\n if (theme.mode in modes) {\n const value = modes[theme.mode]; // TS believes value can be undefined\n if (value) {\n return value;\n }\n }\n return '';\n };\n}","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */\n\nimport themed from './utils/themed';\n\n// Reds\nexport const R50 = '#FFEBE6';\nexport const R75 = '#FFBDAD';\nexport const R100 = '#FF8F73';\nexport const R200 = '#FF7452';\nexport const R300 = '#FF5630';\nexport const R400 = '#DE350B';\nexport const R500 = '#BF2600';\n\n// Yellows\nexport const Y50 = '#FFFAE6';\nexport const Y75 = '#FFF0B3';\nexport const Y100 = '#FFE380';\nexport const Y200 = '#FFC400';\nexport const Y300 = '#FFAB00';\nexport const Y400 = '#FF991F';\nexport const Y500 = '#FF8B00';\n\n// Greens\nexport const G50 = '#E3FCEF';\nexport const G75 = '#ABF5D1';\nexport const G100 = '#79F2C0';\nexport const G200 = '#57D9A3';\nexport const G300 = '#36B37E';\nexport const G400 = '#00875A';\nexport const G500 = '#006644';\n\n// Blues\nexport const B50 = '#DEEBFF';\nexport const B75 = '#B3D4FF';\nexport const B100 = '#4C9AFF';\nexport const B200 = '#2684FF';\nexport const B300 = '#0065FF';\nexport const B400 = '#0052CC';\nexport const B500 = '#0747A6';\n\n// Purples\nexport const P50 = '#EAE6FF';\nexport const P75 = '#C0B6F2';\nexport const P100 = '#998DD9';\nexport const P200 = '#8777D9';\nexport const P300 = '#6554C0';\nexport const P400 = '#5243AA';\nexport const P500 = '#403294';\n\n// Teals\nexport const T50 = '#E6FCFF';\nexport const T75 = '#B3F5FF';\nexport const T100 = '#79E2F2';\nexport const T200 = '#00C7E6';\nexport const T300 = '#00B8D9';\nexport const T400 = '#00A3BF';\nexport const T500 = '#008DA6';\n\n// Neutrals\nexport const N0 = '#FFFFFF';\nexport const N10 = '#FAFBFC';\nexport const N20 = '#F4F5F7';\nexport const N30 = '#EBECF0';\nexport const N40 = '#DFE1E6';\nexport const N50 = '#C1C7D0';\nexport const N60 = '#B3BAC5';\nexport const N70 = '#A5ADBA';\nexport const N80 = '#97A0AF';\nexport const N90 = '#8993A4';\nexport const N100 = '#7A869A';\nexport const N200 = '#6B778C';\nexport const N300 = '#5E6C84';\nexport const N400 = '#505F79';\nexport const N500 = '#42526E';\nexport const N600 = '#344563';\nexport const N700 = '#253858';\nexport const N800 = '#172B4D';\n\n// ATTENTION: update the tints if you update this\nexport const N900 = '#091E42';\n\n// Each tint is made of N900 and an alpha channel\nexport const N10A = 'rgba(9, 30, 66, 0.02)';\nexport const N20A = 'rgba(9, 30, 66, 0.04)';\nexport const N30A = 'rgba(9, 30, 66, 0.08)';\nexport const N40A = 'rgba(9, 30, 66, 0.13)';\nexport const N50A = 'rgba(9, 30, 66, 0.25)';\nexport const N60A = 'rgba(9, 30, 66, 0.31)';\nexport const N70A = 'rgba(9, 30, 66, 0.36)';\nexport const N80A = 'rgba(9, 30, 66, 0.42)';\nexport const N90A = 'rgba(9, 30, 66, 0.48)';\nexport const N100A = 'rgba(9, 30, 66, 0.54)';\nexport const N200A = 'rgba(9, 30, 66, 0.60)';\nexport const N300A = 'rgba(9, 30, 66, 0.66)';\nexport const N400A = 'rgba(9, 30, 66, 0.71)';\nexport const N500A = 'rgba(9, 30, 66, 0.77)';\nexport const N600A = 'rgba(9, 30, 66, 0.82)';\nexport const N700A = 'rgba(9, 30, 66, 0.89)';\nexport const N800A = 'rgba(9, 30, 66, 0.95)';\n\n// Dark Mode Neutrals\nexport const DN900 = '#E6EDFA';\nexport const DN800 = '#DCE5F5';\nexport const DN700 = '#CED9EB';\nexport const DN600 = '#B8C7E0';\nexport const DN500 = '#ABBBD6';\nexport const DN400 = '#9FB0CC';\nexport const DN300 = '#8C9CB8';\nexport const DN200 = '#7988A3';\nexport const DN100 = '#67758F';\nexport const DN90 = '#56637A';\nexport const DN80 = '#455166';\nexport const DN70 = '#3B475C';\nexport const DN60 = '#313D52';\nexport const DN50 = '#283447';\nexport const DN40 = '#202B3D';\nexport const DN30 = '#1B2638';\nexport const DN20 = '#121A29';\nexport const DN10 = '#0E1624';\n\n// ATTENTION: update the tints if you update this\nexport const DN0 = '#0D1424';\n\n// Each dark tint is made of DN0 and an alpha channel\nexport const DN800A = 'rgba(13, 20, 36, 0.06)';\nexport const DN700A = 'rgba(13, 20, 36, 0.14)';\nexport const DN600A = 'rgba(13, 20, 36, 0.18)';\nexport const DN500A = 'rgba(13, 20, 36, 0.29)';\nexport const DN400A = 'rgba(13, 20, 36, 0.36)';\nexport const DN300A = 'rgba(13, 20, 36, 0.40)';\nexport const DN200A = 'rgba(13, 20, 36, 0.47)';\nexport const DN100A = 'rgba(13, 20, 36, 0.53)';\nexport const DN90A = 'rgba(13, 20, 36, 0.63)';\nexport const DN80A = 'rgba(13, 20, 36, 0.73)';\nexport const DN70A = 'rgba(13, 20, 36, 0.78)';\nexport const DN60A = 'rgba(13, 20, 36, 0.81)';\nexport const DN50A = 'rgba(13, 20, 36, 0.85)';\nexport const DN40A = 'rgba(13, 20, 36, 0.89)';\nexport const DN30A = 'rgba(13, 20, 36, 0.92)';\nexport const DN20A = 'rgba(13, 20, 36, 0.95)';\nexport const DN10A = 'rgba(13, 20, 36, 0.97)';\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface')` instead.\n */\nexport const background = themed({\n light: `var(--ds-surface, ${N0})`,\n dark: `var(--ds-surface, ${DN30})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.selected')` instead.\n */\nexport const backgroundActive = themed({\n light: `var(--ds-background-selected, ${B50})`,\n dark: `var(--ds-background-selected, ${B75})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.neutral.hovered')` instead.\n */\nexport const backgroundHover = themed({\n light: `var(--ds-background-neutral-hovered, ${N30})`,\n dark: `var(--ds-background-neutral-hovered, ${DN70})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface.overlay')` instead.\n */\nexport const backgroundOnLayer = themed({\n light: `var(--ds-surface-overlay, ${N0})`,\n dark: `var(--ds-surface-overlay, ${DN50})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const text = themed({\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const textHover = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.selected')` instead.\n */\nexport const textActive = themed({\n light: `var(--ds-text-selected, ${B400})`,\n dark: `var(--ds-text-selected, ${B400})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use token('color.text.subtlest', N200) instead. Use DN200 as the fallback color for dark mode.\n */\nexport const placeholderText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const heading = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleHeading = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\nexport const codeBlock = themed({\n light: N20,\n dark: DN50\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link')` instead.\n */\nexport const link = themed({\n light: `var(--ds-link, ${B400})`,\n dark: `var(--ds-link, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkHover = themed({\n light: `var(--ds-link-pressed, ${B300})`,\n dark: `var(--ds-link-pressed, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkActive = themed({\n light: `var(--ds-link-pressed, ${B500})`,\n dark: `var(--ds-link-pressed, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.border.focused')` instead.\n */\nexport const linkOutline = themed({\n light: `var(--ds-border-focused, ${B100})`,\n dark: `var(--ds-border-focused, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.brand.bold')` instead.\n */\nexport const primary = themed({\n light: `var(--ds-background-brand-bold, ${B400})`,\n dark: `var(--ds-background-brand-bold, ${B100})`\n});\nexport const blue = themed({\n light: B400,\n dark: B100\n});\nexport const teal = themed({\n light: T300,\n dark: T200\n});\nexport const purple = themed({\n light: P300,\n dark: P100\n});\nexport const red = themed({\n light: R300,\n dark: R300\n});\nexport const yellow = themed({\n light: Y300,\n dark: Y300\n});\nexport const green = themed({\n light: G300,\n dark: G300\n});\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.skeleton')` instead.\n */\nexport const skeleton = () => `var(--ds-skeleton, ${N20A})`;","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined'\n ? window.__REACT_INTL_CONTEXT__ ||\n (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nexport var IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import { useMediaQuery } from 'react-responsive';\n\nconst useDesktopMediaQuery = () =>\n useMediaQuery({ query: '(min-width: 1024px)' });\n\nexport { useDesktopMediaQuery };\n","import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState\n} from 'react';\n\nexport type TLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';\n\nexport type TOptions = {\n logLevel?: TLogLevel;\n maxFontSize?: number;\n minFontSize?: number;\n onFinish?: (fontSize: number) => void;\n onStart?: () => void;\n resolution?: number;\n};\n\nconst LOG_LEVEL: Record = {\n debug: 10,\n info: 20,\n warn: 30,\n error: 40,\n none: 100\n};\n\n// Suppress `useLayoutEffect` warning when rendering on the server\n// https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useIsoLayoutEffect =\n typeof window !== 'undefined' && window.document\n ? useLayoutEffect\n : useEffect;\n\nconst useFitText = ({\n logLevel: logLevelOption = 'info',\n maxFontSize = 100,\n minFontSize = 20,\n onFinish,\n onStart,\n resolution = 5\n}: TOptions = {}) => {\n const logLevel = LOG_LEVEL[logLevelOption];\n\n const initState = useCallback(() => {\n return {\n calcKey: 0,\n fontSize: maxFontSize,\n fontSizePrev: minFontSize,\n fontSizeMax: maxFontSize,\n fontSizeMin: minFontSize\n };\n }, [maxFontSize, minFontSize]);\n\n const ref = useRef(null);\n const innerHtmlPrevRef = useRef();\n const isCalculatingRef = useRef(false);\n const [state, setState] = useState(initState);\n const { calcKey, fontSize, fontSizeMax, fontSizeMin, fontSizePrev } = state;\n\n // Montior div size changes and recalculate on resize\n let animationFrameId: number | null = null;\n const [ro] = useState(\n () =>\n new ResizeObserver(() => {\n animationFrameId = window.requestAnimationFrame(() => {\n if (isCalculatingRef.current) {\n return;\n }\n onStart && onStart();\n isCalculatingRef.current = true;\n // `calcKey` is used in the dependencies array of\n // `useIsoLayoutEffect` below. It is incremented so that the font size\n // will be recalculated even if the previous state didn't change (e.g.\n // when the text fit initially).\n setState({\n ...initState(),\n calcKey: calcKey + 1\n });\n });\n })\n );\n\n useEffect(() => {\n if (ref.current) {\n ro.observe(ref.current);\n }\n return () => {\n animationFrameId && window.cancelAnimationFrame(animationFrameId);\n ro.disconnect();\n };\n }, [animationFrameId, ro, ref.current]);\n\n // Recalculate when the div contents change\n const innerHtml = ref.current && ref.current.innerHTML;\n useEffect(() => {\n if (calcKey === 0 || isCalculatingRef.current) {\n return;\n }\n if (innerHtml !== innerHtmlPrevRef.current) {\n onStart && onStart();\n setState({\n ...initState(),\n calcKey: calcKey + 1\n });\n }\n if (innerHtml !== null) {\n innerHtmlPrevRef.current = innerHtml;\n }\n }, [calcKey, initState, innerHtml, onStart]);\n\n // Check overflow and resize font\n useIsoLayoutEffect(() => {\n // Don't start calculating font size until the `resizeKey` is incremented\n // above in the `ResizeObserver` callback. This avoids an extra resize\n // on initialization.\n if (calcKey === 0) {\n return;\n }\n\n const isWithinResolution = Math.abs(fontSize - fontSizePrev) <= resolution;\n const isOverflow =\n !!ref.current &&\n (ref.current.scrollHeight > ref.current.offsetHeight ||\n ref.current.scrollWidth > ref.current.offsetWidth);\n const isFailed = isOverflow && fontSize === fontSizePrev;\n const isAsc = fontSize > fontSizePrev;\n\n // Return if the font size has been adjusted \"enough\" (change within `resolution`)\n // reduce font size by one increment if it's overflowing.\n if (isWithinResolution) {\n if (isFailed) {\n isCalculatingRef.current = false;\n if (logLevel <= LOG_LEVEL.info) {\n console.info(\n `[use-fit-text] reached \\`minFontSize = ${minFontSize}\\` without fitting text`\n );\n }\n } else if (isOverflow) {\n setState({\n fontSize: isAsc ? fontSizePrev : fontSizeMin,\n fontSizeMax,\n fontSizeMin,\n fontSizePrev,\n calcKey\n });\n } else {\n isCalculatingRef.current = false;\n onFinish && onFinish(fontSize);\n }\n return;\n }\n\n // Binary search to adjust font size\n let delta: number;\n let newMax = fontSizeMax;\n let newMin = fontSizeMin;\n if (isOverflow) {\n delta = isAsc ? fontSizePrev - fontSize : fontSizeMin - fontSize;\n newMax = Math.min(fontSizeMax, fontSize);\n } else {\n delta = isAsc ? fontSizeMax - fontSize : fontSizePrev - fontSize;\n newMin = Math.max(fontSizeMin, fontSize);\n }\n setState({\n calcKey,\n fontSize: fontSize + delta / 2,\n fontSizeMax: newMax,\n fontSizeMin: newMin,\n fontSizePrev: fontSize\n });\n }, [\n calcKey,\n fontSize,\n fontSizeMax,\n fontSizeMin,\n fontSizePrev,\n onFinish,\n ref,\n resolution\n ]);\n\n return { fontSize: `${fontSize}%`, ref };\n};\n\nexport { useFitText };\n","export const getNumFracDigits = (value: number | null | undefined) => {\n if (value !== null && value !== undefined && !Number.isNaN(value)) {\n return Number.isInteger(+value) ? 0 : 2;\n } else {\n return 0;\n }\n};\n\nconst fmtCurrencyValue = (\n currencyISOCode: string,\n value: number | null | undefined,\n useTwoDigits: boolean\n) => {\n const isJPY = currencyISOCode === 'JPY';\n const adjVal = isJPY ? Math.ceil(value || 0) : value;\n\n return new Intl.NumberFormat(isJPY ? 'ja-JP' : 'en-US', {\n style: 'currency',\n currency: currencyISOCode,\n // Note: JPY does not use decimals\n minimumFractionDigits:\n useTwoDigits && !isJPY ? 2 : getNumFracDigits(adjVal),\n maximumFractionDigits: useTwoDigits && !isJPY ? 2 : getNumFracDigits(adjVal)\n }).format(adjVal || 0);\n};\n\nexport const getFormattedPrice = (currencyISOCode: string, value: number) =>\n fmtCurrencyValue(currencyISOCode, value, false);\n\nexport const getTwoDigitFormattedPrice = (\n currencyISOCode: string,\n value: number\n) => fmtCurrencyValue(currencyISOCode, value, true);\n\nexport const getFormattedUnitAmount = (\n localeISOCode: string,\n value: number | null\n) => new Intl.NumberFormat(localeISOCode).format(value || 0);\n","import {\n CCPPricingPlanContent,\n CCPPricingPlanItem,\n CCPPricingPlanTier,\n PricingPlans,\n PricingStrategy,\n PricingTier\n} from '@atlassiansox/asc-product-catalog';\n\nconst HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY = {\n ['VOLUME']: PricingStrategy.FIXED_COST,\n ['GRADUATED']: PricingStrategy.MARGINAL_PER_UNIT\n};\n\n// CCP Amounts are stored in cents - Note: JPY needs no conversion\nconst formatCentsToDollars = (value: number, currency: string): number => {\n if (currency === 'USD' && value) {\n return value / 100;\n }\n return value;\n};\n\nconst convertCCPPricingStrategyToHAMS = (\n ccpPricingPolicy: string\n): PricingStrategy => {\n const hamsPricingStrategy =\n HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY[\n ccpPricingPolicy as 'GRADUATED' | 'VOLUME'\n ];\n\n if (!hamsPricingStrategy) {\n throw new Error(\n `Could not find HAMS pricing strategy to match CCP pricing policy: \"${ccpPricingPolicy}\"`\n );\n }\n\n return hamsPricingStrategy;\n};\n\nconst convertCCPTiersToHAMS = (\n ccpTiers: CCPPricingPlanTier[],\n tiersMode: string,\n chargeElement: string,\n currency: string\n): PricingTier[] =>\n ccpTiers.map((ccpTier) => ({\n starter: false,\n pricingStrategy: convertCCPPricingStrategyToHAMS(tiersMode),\n unitDescription: chargeElement,\n unitLimitLower: ccpTier.floor,\n unitLimitUpper: ccpTier.ceiling,\n prices: [\n {\n currency,\n unitPrice:\n tiersMode === 'GRADUATED'\n ? formatCentsToDollars(ccpTier.unitAmount, currency)\n : formatCentsToDollars(ccpTier.flatAmount, currency)\n }\n ]\n }));\n\nexport const convertCCPPricingPlansToHAMS = (\n pricingPlans: CCPPricingPlanContent[],\n currencyISOCode: string\n): PricingPlans => {\n const [monthlyCCP, annualCCP] = ['MONTH', 'YEAR'].map((primaryCycle) =>\n // Per CCP Team: We need to filter by COMMERCIAL, DEFAULT_PRICING\n pricingPlans.find(\n (pricingPlan) =>\n pricingPlan.primaryCycle_interval === primaryCycle &&\n pricingPlan.type === 'COMMERCIAL' &&\n pricingPlan.activatedWithReason === 'DEFAULT_PRICING' &&\n // We filter by currencyISOCode as we need both USD & JPY Pricing for Pricing Pages\n // If needed, can filter by USD only which we will pass in directly in those components\n pricingPlan.currency === currencyISOCode\n )\n );\n\n const [monthly, annual] = [monthlyCCP, annualCCP].map((ccpPPContent) => {\n if (!ccpPPContent) {\n return undefined;\n }\n\n const ccpTiers = ccpPPContent.items[0] as CCPPricingPlanItem;\n const { tiers, tiersMode, chargeElement } = ccpTiers;\n\n return convertCCPTiersToHAMS(\n tiers,\n tiersMode,\n chargeElement,\n ccpPPContent.currency\n );\n });\n\n return {\n monthly,\n annual\n };\n};\n","import { convertCCPPricingPlansToHAMS } from '.';\nimport {\n ContentfulOffering,\n OfferingSKUMap,\n PricingPeriod,\n PricingPlans,\n PricingTier,\n ProductKeyMap\n} from '../models';\n\nexport const extractPricingTiersFromEntry = (\n ccpOfferingsBySKU: OfferingSKUMap,\n hamsPricingPlansByKey: ProductKeyMap,\n period: PricingPeriod,\n currencyISOCode: string,\n ccpOfferingSKU?: string,\n hamsProductKey?: string\n): PricingTier[] => {\n let pricingPlans;\n\n let pricingTiers: PricingTier[];\n\n if (ccpOfferingSKU) {\n const offering = ccpOfferingsBySKU[ccpOfferingSKU];\n\n pricingPlans = offering?.fields.defaultPricingPlans?.map((p) => p.fields);\n if (!pricingPlans) {\n throw new Error(\n `Offering empty of pricing plan data for: ${ccpOfferingSKU}`\n );\n }\n\n const convertedTiers = convertCCPPricingPlansToHAMS(\n pricingPlans,\n currencyISOCode\n );\n if (period === 'MONTHLY' && convertedTiers.monthly) {\n pricingTiers = convertedTiers.monthly.slice();\n } else if (period === 'ANNUAL' && convertedTiers.annual) {\n pricingTiers = convertedTiers.annual.slice();\n } else {\n throw new Error(\n `Found neither monthly or annual pricing tiers for CCP Offering SKU: ${ccpOfferingSKU}`\n );\n }\n } else {\n if (hamsProductKey === undefined) {\n throw new Error(`HAMS product key was undefined for price request!`);\n }\n\n pricingPlans = hamsPricingPlansByKey[hamsProductKey];\n if (pricingPlans === undefined) {\n throw new Error(\n `No ${period} pricing plans found for HAMS product key: ${hamsProductKey}`\n );\n }\n\n if (period === 'MONTHLY' && pricingPlans.monthly) {\n pricingTiers = pricingPlans.monthly.slice();\n } else if (period === 'ANNUAL' && pricingPlans.annual) {\n pricingTiers = pricingPlans.annual.slice();\n } else {\n throw new Error(\n `Found neither monthly or annual (period is ${period}) pricing tiers for HAMS product key: ${hamsProductKey}`\n );\n }\n }\n\n return pricingTiers;\n};\n","import { CurrencyISOCode, PricingTierPrice } from '../models';\n\nexport const getLocalUnitPrice = (\n currencyISOCode: CurrencyISOCode,\n prices: PricingTierPrice[]\n) =>\n prices.find(({ currency }) => currency === currencyISOCode)?.unitPrice || 0;\n","import { getLocalUnitPrice } from '..';\nimport {\n CurrencyISOCode,\n PriceCalculationResponse,\n PricingTier\n} from '../../models';\n\nexport default function (\n numUnits: number,\n matchingTierIdx: number,\n tiers: PricingTier[],\n currencyISOCode: CurrencyISOCode\n): PriceCalculationResponse {\n const matchingTier = tiers[matchingTierIdx];\n\n if (!matchingTier) {\n throw new Error(`Matching price tier not found for ${numUnits}.`);\n }\n\n const { prices, unitLimitLower, unitLimitUpper } = matchingTier;\n const totalPrice = getLocalUnitPrice(currencyISOCode, prices.slice());\n const avgPerUnitPrice = totalPrice / numUnits;\n\n return {\n totalPrice,\n avgPerUnitPrice,\n hasFlatRateFirstTier: true,\n\n breakdown: [\n {\n unitsInTier: numUnits,\n unitsAvailableInTier: (unitLimitUpper || 0) - numUnits,\n\n unitLimitLower: unitLimitLower || 1,\n unitLimitUpper: unitLimitUpper || 0,\n\n totalPriceForTier: totalPrice,\n avgPerUnitPriceForTier: totalPrice / numUnits\n }\n ]\n };\n}\n","import { getLocalUnitPrice } from '..';\nimport {\n BreakdownPriceTier,\n CurrencyISOCode,\n PriceCalculationResponse,\n PricingStrategy,\n PricingTier,\n PricingTierPrice\n} from '../../models';\n\nexport default function (\n numUnits: number,\n matchingTierIdx: number,\n tiers: PricingTier[],\n currencyISOCode: CurrencyISOCode\n): PriceCalculationResponse {\n let totalPrice = 0;\n let price = 0;\n const breakdown: BreakdownPriceTier[] = [];\n\n const getUnitPrice = (prices: PricingTierPrice[]) =>\n getLocalUnitPrice(currencyISOCode, prices);\n\n // if no matching tier then default to highest (last) tier\n if (matchingTierIdx === -1) {\n matchingTierIdx = tiers.length - 1;\n }\n\n let idx = 0;\n for (const tier of tiers) {\n const { unitLimitLower, unitLimitUpper } = tier;\n const adjUnitLimitLower = Math.max((unitLimitLower || 0) - 1, 0);\n\n // the upper unit limit can't be undefined so we can just set it to\n // one million units as an upper bound\n const adjUnitLimitUpper = unitLimitUpper || 1000000;\n const unitsInTier =\n idx === matchingTierIdx\n ? numUnits - adjUnitLimitLower\n : adjUnitLimitUpper - adjUnitLimitLower;\n\n if (tier.pricingStrategy === PricingStrategy.FIXED_COST) {\n const nextTier = tiers[idx + 1] as PricingTier;\n price = getUnitPrice(nextTier.prices.slice());\n } else {\n const finalTier = tiers[Math.min(idx, tiers.length - 1)] as PricingTier;\n price = getUnitPrice(finalTier.prices.slice());\n }\n\n const totalPriceForTier = unitsInTier * price;\n totalPrice += totalPriceForTier;\n\n breakdown.push({\n unitsInTier,\n unitsAvailableInTier: adjUnitLimitUpper - unitsInTier,\n\n unitLimitLower: adjUnitLimitLower || 1,\n unitLimitUpper: adjUnitLimitUpper,\n\n totalPriceForTier,\n avgPerUnitPriceForTier: price\n });\n\n if (++idx > matchingTierIdx) {\n break;\n }\n }\n\n const avgPerUnitPrice = totalPrice / numUnits;\n\n return {\n totalPrice,\n avgPerUnitPrice,\n\n hasFlatRateFirstTier:\n tiers[0]?.pricingStrategy === PricingStrategy.FIXED_COST,\n\n breakdown\n };\n}\n","import {\n PricingTier,\n PricingStrategy\n} from '@atlassiansox/asc-product-catalog';\nimport {\n getFormattedPrice,\n getFormattedUnitAmount,\n getTwoDigitFormattedPrice\n} from '.';\nimport { CurrencyISOCode, FormattedPriceCalculationResponse } from '../models';\nimport calculateFixedCost from './calculations/fixed-cost';\nimport {\n default as calculateMarginalPerUnit,\n default as marginalPerUnit\n} from './calculations/marginal-per-unit';\n\nconst getTierIdxForNumUnits = (numUnits: number, tiers: PricingTier[]) =>\n tiers.findIndex(\n ({ unitLimitLower, unitLimitUpper }) =>\n numUnits >= (unitLimitLower || 0) &&\n numUnits <= (unitLimitUpper || Math.pow(10, 1000))\n );\n\nexport function calculatePrice(\n numUnits: number,\n tiers: PricingTier[],\n currencyISOCode: CurrencyISOCode,\n localeISOCode = 'en-US'\n): FormattedPriceCalculationResponse {\n if (!Number.isInteger(numUnits) || numUnits < 1) {\n throw new Error(\n `Number of units must be a positive non-zero integer, got ${numUnits}.`\n );\n }\n\n if (!tiers || tiers.length === 0) {\n throw new Error(\n `Price tiers must not be null, undefined or an empty array, got ${tiers}.`\n );\n }\n\n tiers.sort((a: PricingTier, b: PricingTier) => {\n return (a.unitLimitLower ?? 0) - (b.unitLimitLower ?? 0);\n });\n\n let matchingTierIdx = getTierIdxForNumUnits(numUnits, tiers);\n\n const matchingTier = tiers[matchingTierIdx];\n const finalTier = tiers[tiers.length - 1];\n let adjustedNumberOfUnits: number = numUnits;\n let hasExceededMaxTier = false;\n\n let calcFunc;\n\n if (matchingTier !== undefined) {\n const tierPricingStrategy = matchingTier.pricingStrategy;\n calcFunc =\n tierPricingStrategy === PricingStrategy.MARGINAL_PER_UNIT\n ? calculateMarginalPerUnit\n : calculateFixedCost;\n } else if (\n finalTier &&\n finalTier.pricingStrategy === PricingStrategy.MARGINAL_PER_UNIT\n ) {\n calcFunc = marginalPerUnit;\n } else {\n /*\n * When a user input is greater than the max tier limit\n * we will reset the number of users to max tier limit\n * of that product and perform price calculations.\n * */\n adjustedNumberOfUnits = finalTier?.unitLimitUpper || 0;\n matchingTierIdx = getTierIdxForNumUnits(adjustedNumberOfUnits, tiers);\n calcFunc = calculateFixedCost;\n hasExceededMaxTier = true;\n }\n\n const fmtUnit = (amount: number | null) =>\n getFormattedUnitAmount(localeISOCode, amount);\n\n const fmtPrice = (price: number) => getFormattedPrice(currencyISOCode, price);\n\n const { totalPrice, avgPerUnitPrice, hasFlatRateFirstTier, breakdown } =\n calcFunc(adjustedNumberOfUnits, matchingTierIdx, tiers, currencyISOCode);\n\n return {\n totalPrice,\n formattedTotalPrice: fmtPrice(totalPrice),\n\n avgPerUnitPrice,\n formattedAvgPerUnitPrice: fmtPrice(avgPerUnitPrice),\n\n breakdown,\n\n hasFlatRateFirstTier,\n hasExceededMaxTier,\n formattedBreakdown: breakdown.map(\n ({\n unitsInTier,\n unitLimitLower,\n unitLimitUpper,\n unitsAvailableInTier,\n totalPriceForTier,\n avgPerUnitPriceForTier\n }) => ({\n formattedUnitsInTier: fmtUnit(unitsInTier),\n formattedUnitsAvailableInTier: fmtUnit(unitsAvailableInTier),\n\n formattedUnitLimitLower: fmtUnit(unitLimitLower),\n formattedUnitLimitUpper: fmtUnit(unitLimitUpper),\n\n formattedTotalPriceForTier: getTwoDigitFormattedPrice(\n currencyISOCode,\n totalPriceForTier\n ),\n formattedAvgPerUnitPriceForTier: getTwoDigitFormattedPrice(\n currencyISOCode,\n avgPerUnitPriceForTier\n )\n })\n )\n };\n}\n","import { getFormattedPrice } from '.';\nimport { CurrencyISOCode, FormattedPriceCalculationResponse } from '..';\n\nexport default function (\n currencyISOCode: CurrencyISOCode\n): FormattedPriceCalculationResponse {\n const zeroPrice = getFormattedPrice(currencyISOCode, 0);\n\n return {\n totalPrice: 0,\n avgPerUnitPrice: 0,\n\n formattedTotalPrice: zeroPrice,\n formattedAvgPerUnitPrice: zeroPrice,\n\n hasFlatRateFirstTier: true,\n hasExceededMaxTier: false,\n\n breakdown: [\n {\n unitsInTier: 0,\n unitsAvailableInTier: 0,\n\n unitLimitLower: 0,\n unitLimitUpper: 0,\n\n totalPriceForTier: 0,\n avgPerUnitPriceForTier: 0\n }\n ],\n formattedBreakdown: [\n {\n formattedUnitsInTier: '0',\n formattedUnitsAvailableInTier: '0',\n\n formattedUnitLimitLower: '0',\n formattedUnitLimitUpper: '0',\n\n formattedTotalPriceForTier: zeroPrice,\n formattedAvgPerUnitPriceForTier: zeroPrice\n }\n ]\n };\n}\n","/* eslint-disable */\n// murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nexport default function murmurhash2_32_gc(str) {\n var l = str.length,\n h = l ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return (h >>> 0).toString(36);\n}","import React from 'react';\n\nconst defaultMutator = (prevState, partialState) => {\n // Merge the partial state and the previous state.\n return Object.assign({}, prevState, partialState);\n};\n\nconst defaults = {\n batchUpdates: 'useSyncExternalStore' in React,\n devtools: false,\n middlewares: new Set(),\n mutator: defaultMutator\n};\nexport default defaults;","import defaults from '../defaults';\n\nconst namedMutator = (storeState, actionName) => function () {\n storeState.mutator.actionName = actionName;\n return storeState.mutator(...arguments);\n};\n\nconst warnings = new WeakMap();\nexport const bindAction = function bindAction(storeState, actionFn, actionKey, getContainerProps, boundActions) {\n if (getContainerProps === void 0) {\n getContainerProps = () => {};\n }\n\n if (boundActions === void 0) {\n boundActions = {};\n }\n\n // Setting mutator name so we can log action name for better debuggability\n const dispatch = function dispatch(thunkFn, actionName) {\n if (actionName === void 0) {\n actionName = `${actionKey}.dispatch`;\n }\n\n return thunkFn({\n setState: defaults.devtools ? namedMutator(storeState, actionName) : storeState.mutator,\n getState: storeState.getState,\n\n get actions() {\n if (!warnings.has(actionFn)) {\n warnings.set(actionFn, console.warn(`react-sweet-state 'actions' property has been deprecated and will be removed in the next mayor. ` + `Please check action '${actionName}' of Store '${storeState.key}' and use 'dispatch' instead`));\n }\n\n return boundActions;\n },\n\n dispatch\n }, getContainerProps());\n };\n\n return function () {\n return dispatch(actionFn(...arguments), actionKey);\n };\n};\nexport const bindActions = function bindActions(actions, storeState, getContainerProps, boundActions) {\n if (getContainerProps === void 0) {\n getContainerProps = () => ({});\n }\n\n if (boundActions === void 0) {\n boundActions = null;\n }\n\n return Object.keys(actions).reduce((acc, k) => {\n acc[k] = bindAction(storeState, actions[k], k, getContainerProps, boundActions || acc);\n return acc;\n }, {});\n};","// Mostly copied from fbjs/packages/fbjs/src/core/shallowEqual.js\n// enhanced with keys cache as might get called multiple times with same args\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst CACHE = new WeakMap();\nexport default function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (Array.isArray(objA) && Array.isArray(objB)) {\n // do array comparison\n if (objA.length !== objB.length) {\n return false;\n }\n\n for (let i = 0; i < objA.length; i++) {\n if (objA[i] !== objB[i]) {\n return false;\n }\n }\n\n return true;\n } else {\n // Handle Date, RegExp, String, Number, ... and complex objects\n const strA = '' + objA;\n const strB = '' + objB;\n\n if (strA !== strB || strA[0] === '[' && strA !== '[object Object]') {\n return false;\n } // do object comparison\n\n\n let keysA;\n\n if (CACHE.has(objA)) {\n keysA = CACHE.get(objA);\n } else {\n keysA = Object.keys(objA);\n CACHE.set(objA, keysA);\n }\n\n let keysB;\n\n if (CACHE.has(objB)) {\n keysB = CACHE.get(objB);\n } else {\n keysB = Object.keys(objB);\n CACHE.set(objB, keysB);\n }\n\n if (keysA.length !== keysB.length) {\n return false;\n } // Test for A's keys different from B.\n\n\n for (let i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n }\n}","import shallowEqual from '../utils/shallow-equal';\n\nconst updateMiddleware = storeState => next => arg => {\n let output;\n const state = storeState.getState();\n const nextState = next(state, arg, out => {\n output = out;\n });\n\n if (!shallowEqual(nextState, state)) {\n storeState.setState(nextState);\n }\n\n return output;\n};\n\nexport default updateMiddleware;","const supports = {\n scheduling() {\n return typeof window !== 'undefined' && typeof MessageChannel === 'function';\n }\n\n};\nexport default supports;","/* eslint-disable import/no-unresolved */\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { unstable_scheduleCallback as scheduleCallback, unstable_ImmediatePriority as ImmediatePriority } from 'scheduler';\nimport defaults from '../defaults';\nimport supports from './supported-features';\nlet isInsideBatchedSchedule = false;\nexport function batch(fn) {\n // if we are in node/tests or nested schedule\n if (!defaults.batchUpdates || !supports.scheduling() || isInsideBatchedSchedule) {\n return unstable_batchedUpdates(fn);\n }\n\n isInsideBatchedSchedule = true; // Use ImmediatePriority as it has -1ms timeout\n // https://github.com/facebook/react/blob/main/packages/scheduler/src/forks/Scheduler.js#L65\n\n return scheduleCallback(ImmediatePriority, function scheduleBatchedUpdates() {\n unstable_batchedUpdates(fn);\n isInsideBatchedSchedule = false;\n });\n}","import defaults from '../defaults';\nimport { batch } from './batched-updates';\nimport supports from './supported-features';\nconst QUEUE = [];\nlet scheduled;\nexport default function schedule(fn) {\n // if we are in node/tests or feature disabled, make updates sync batched\n if (!defaults.batchUpdates || !supports.scheduling()) return batch(() => fn()); // Add to queue if not already there\n // so we avoid multiple notifications to same store listeners\n\n if (!QUEUE.includes(fn)) QUEUE.push(fn); // if something already started schedule, skip\n\n if (scheduled) return;\n scheduled = batch(() => {\n let queueFn;\n\n while (queueFn = QUEUE.shift()) queueFn();\n\n scheduled = null;\n });\n}","import applyMiddleware from '../middlewares';\nimport withDevtools from '../enhancers/devtools';\nimport defaults from '../defaults';\nimport schedule from '../utils/schedule';\n\nfunction createStoreState(key, initialState) {\n let listeners = [];\n let currentState = initialState;\n const storeState = {\n key,\n\n getState() {\n return currentState;\n },\n\n setState(nextState) {\n currentState = nextState; // Instead of notifying all hooks immediately, we wait next tick\n // so multiple actions affecting the same store gets combined\n\n schedule(storeState.notify);\n },\n\n resetState() {\n storeState.setState(initialState);\n },\n\n notify() {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i](storeState.getState());\n }\n },\n\n subscribe(listener) {\n listeners = listeners.concat(listener);\n return function unsubscribe() {\n listeners = listeners.filter(fn => fn !== listener);\n };\n },\n\n listeners() {\n return listeners;\n }\n\n };\n storeState.mutator = applyMiddleware(storeState, defaults.middlewares);\n return storeState;\n}\n\nexport default withDevtools(createStoreState);","import defaults from '../defaults';\n\nconst connectDevTools = (storeState, config) => {\n const devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(Object.assign({\n name: `Store ${storeState.key}`,\n serialize: true\n }, config));\n\n devTools.init(storeState.getState());\n devTools.subscribe(message => {\n if (message.type === 'DISPATCH') {\n switch (message.payload.type) {\n case 'RESET':\n storeState.resetState();\n devTools.init(storeState.getState());\n return;\n\n case 'COMMIT':\n devTools.init(storeState.getState());\n return;\n\n case 'ROLLBACK':\n storeState.setState(JSON.parse(message.state));\n devTools.init(storeState.getState());\n return;\n\n case 'JUMP_TO_STATE':\n case 'JUMP_TO_ACTION':\n storeState.setState(JSON.parse(message.state));\n return;\n }\n } else if (message.type === 'ACTION') {\n let action = JSON.parse(message.payload);\n storeState.setState(action.payload);\n }\n });\n return devTools;\n};\n\nconst withDevtools = createStoreState => function () {\n const storeState = createStoreState(...arguments);\n\n if (defaults.devtools && window && window.__REDUX_DEVTOOLS_EXTENSION__) {\n const origMutator = storeState.mutator;\n let devTools;\n\n const devtoolMutator = arg => {\n const result = origMutator(arg);\n\n try {\n if (!devTools) {\n const config = typeof defaults.devtools === 'function' ? defaults.devtools(storeState) : {};\n devTools = connectDevTools(storeState, config);\n }\n\n devTools.send({\n type: storeState.mutator.actionName,\n payload: arg\n }, storeState.getState(), {}, storeState.key);\n } catch (err) {\n /* ignore devtools errors */\n }\n\n return result;\n };\n\n storeState.mutator = devtoolMutator;\n }\n\n return storeState;\n};\n\nexport default withDevtools;","import defaults from '../defaults';\nimport update from './update';\n\nconst applyMiddleware = (storeState, middlewares) => Array.from(middlewares).concat(update).reduceRight((next, mw) => mw(storeState)(next), defaults.mutator);\n\nexport default applyMiddleware;","import { bindActions } from './bind-actions';\nimport createStoreState from './create-state';\nexport const GLOBAL_SCOPE = '__global__';\nexport class StoreRegistry {\n constructor(defaultScope) {\n var _this = this;\n\n if (defaultScope === void 0) {\n defaultScope = GLOBAL_SCOPE;\n }\n\n this.stores = new Map();\n\n this.initStore = (key, Store) => {\n const {\n initialState,\n actions\n } = Store;\n const storeState = createStoreState(key, initialState);\n const boundActions = bindActions(actions, storeState);\n const store = {\n storeState,\n actions: boundActions\n };\n this.stores.set(key, store);\n return store;\n };\n\n this.getStore = function (Store, scopeId) {\n if (scopeId === void 0) {\n scopeId = _this.defaultScope;\n }\n\n const key = _this.generateKey(Store, scopeId);\n\n return _this.stores.get(key) || _this.initStore(key, Store);\n };\n\n this.deleteStore = function (Store, scopeId) {\n if (scopeId === void 0) {\n scopeId = _this.defaultScope;\n }\n\n const key = _this.generateKey(Store, scopeId);\n\n _this.stores.delete(key);\n };\n\n this.generateKey = (Store, scopeId) => `${Store.key}@${scopeId}`;\n\n this.defaultScope = defaultScope;\n }\n\n}\nexport const defaultRegistry = new StoreRegistry();","import React from 'react';\nimport { defaultRegistry } from './store'; // Provide static calculateChangedBit to opt-out from context updates\n// as we use our own subscription model\n\nexport const Context = /*#__PURE__*/React.createContext({\n globalRegistry: defaultRegistry,\n getStore: defaultRegistry.getStore\n}, () => 0);","import shallowEqual from './shallow-equal';\n\nfunction exactEqual(objA, objB) {\n return objA === objB;\n}\n\nfunction areArgumentsEqual(propsMode, prev, next) {\n if (prev === null || next === null || prev.length !== next.length) return false; // If propsMode and 2 arguments, means it is an input selector\n // and we check for shallow equality on 2nd one to optimise props\n\n if (propsMode && prev.length === 2) {\n return prev[0] === next[0] && shallowEqual(prev[1], next[1]);\n }\n\n for (let i = 0; i < prev.length; i++) {\n if (!exactEqual(prev[i], next[i])) return false;\n }\n\n return true;\n}\n/**\n * Tailor made memoisation\n */\n\n\nexport default function (resultFn, propsMode) {\n if (propsMode === void 0) {\n propsMode = false;\n }\n\n let lastArgs = [];\n let lastResult;\n let calledOnce = false;\n\n const result = function result() {\n if (calledOnce && areArgumentsEqual(propsMode, arguments, lastArgs)) {\n return lastResult;\n }\n\n const nextResult = resultFn.apply(this, arguments);\n\n if (!propsMode && shallowEqual(nextResult, lastResult)) {\n return lastResult;\n }\n\n lastResult = nextResult;\n calledOnce = true;\n lastArgs = arguments;\n return lastResult;\n };\n\n return result;\n}","import memoize from './memoize'; // customised version of reselect\n\nexport function createSelector() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n const resultFunc = funcs.pop();\n const dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n const memoizedResultFunc = memoize(function () {\n return resultFunc.apply(null, arguments);\n }); // this memoisation is optimised for 2 arguments (state, props)\n\n const selector = memoize(function () {\n // calculate all dependencies results\n const params = [];\n\n for (let i = 0; i < dependencies.length; i++) {\n params.push(dependencies[i].apply(null, arguments));\n } // then call the final func with all them as arguments\n\n\n return memoizedResultFunc.apply(null, params);\n }, true); // expose so we can create per scope selectors\n // API compatible with reselect@^4\n\n selector.resultFunc = resultFunc;\n selector.dependencies = dependencies;\n return selector;\n}\nexport function createMemoizedSelector(selector) {\n const isReselector = typeof selector.resultFunc === 'function' && Array.isArray(selector.dependencies);\n const dependencies = isReselector ? selector.dependencies : [s => s, (_, p) => p];\n const resultFunc = isReselector ? selector.resultFunc : selector;\n return createSelector(dependencies, resultFunc);\n}\nconst cache = new WeakMap();\nexport function getSelectorInstance(selector, storeState, hasProps) {\n if (!hasProps) {\n if (!cache.has(storeState)) {\n cache.set(storeState, new WeakMap());\n }\n\n const scopeSelectors = cache.get(storeState);\n\n if (!scopeSelectors.has(selector)) {\n scopeSelectors.set(selector, createMemoizedSelector(selector));\n }\n\n return scopeSelectors.get(selector);\n }\n\n return createMemoizedSelector(selector);\n}","import { useMemo, useContext, useRef, useCallback } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { Context } from '../context';\nimport { getSelectorInstance } from '../utils/create-selector';\n\nconst EMPTY_SELECTOR = () => undefined;\n\nconst DEFAULT_SELECTOR = state => state;\n\nexport function createHook(Store, _temp) {\n let {\n selector\n } = _temp === void 0 ? {} : _temp;\n return function useSweetState(propsArg) {\n const {\n getStore\n } = useContext(Context);\n const {\n storeState,\n actions\n } = getStore(Store);\n const hasPropsArg = propsArg !== undefined;\n const propsArgRef = useRef(propsArg);\n propsArgRef.current = propsArg;\n const stateSelector = useMemo(() => selector ? getSelectorInstance(selector, storeState, hasPropsArg) : selector === null ? EMPTY_SELECTOR : DEFAULT_SELECTOR, [hasPropsArg, storeState]);\n const getSnapshot = useCallback(() => {\n const state = getStore(Store).storeState.getState();\n return stateSelector(state, propsArgRef.current);\n }, [getStore, stateSelector]);\n const currentState = useSyncExternalStore(storeState.subscribe, getSnapshot, getSnapshot);\n return [currentState, actions];\n };\n}\nexport function createActionsHook(Store) {\n const useHook = createHook(Store, {\n selector: null\n });\n return function useSweetStateActions() {\n return useHook()[1];\n };\n}\nexport function createStateHook(Store, _temp2) {\n let {\n selector\n } = _temp2 === void 0 ? {} : _temp2;\n const useHook = createHook(Store, {\n selector\n });\n return function useSweetStateState(propsArg) {\n return useHook(propsArg)[0];\n };\n}","import {\n FormattedPriceCalculationResponse,\n PricingPeriod\n} from '@atlassiansox/bxp-use-pricing';\nimport { Action } from 'react-sweet-state';\nimport { PriceFinderState } from '../models';\n\nexport const updateUnitCount =\n (unitCount: number): Action =>\n ({ setState }) => {\n setState({\n unitCount\n });\n };\n\nexport const updateBillingCycle =\n (billingCycle: PricingPeriod): Action =>\n ({ setState }) => {\n setState({\n billingCycle\n });\n };\n\nexport const updatePriceCalcs =\n (priceCalcs: FormattedPriceCalculationResponse[]): Action =>\n ({ setState }) => {\n setState({\n priceCalcs\n });\n };\n","import { createHook, createStore } from 'react-sweet-state';\nimport { PriceFinderState } from '../models';\nimport * as actions from './actions';\n\ntype PriceFinderActions = typeof actions;\n\nexport const initialState: PriceFinderState = {\n unitCount: 10,\n billingCycle: 'MONTHLY',\n priceCalcs: []\n};\n\nconst store = createStore({\n name: 'bxp-price-finder',\n initialState,\n actions\n});\n\nexport const usePriceFinderStore = createHook(store);\n","import hash from '../utils/hash';\n\nfunction createKey(initialState, actions, name) {\n const src = !name ? Object.keys(actions).reduce((acc, k) => acc + actions[k].toString(), '') : '';\n return [name, hash(src + JSON.stringify(initialState))].filter(Boolean).join('__');\n}\n\nexport function createStore(_ref) {\n let {\n name = '',\n initialState,\n actions\n } = _ref;\n let key;\n return {\n get key() {\n // lazy evaluate key on first access\n return key || (key = createKey(initialState, actions, name));\n },\n\n initialState,\n actions\n };\n}","export const deviceMediaQueries = {\n desktop: `@media (min-width: 1024px)`,\n tablet: `@media (max-width: 1023px)`,\n mobile: `@media (max-width: 768px)`,\n extraSmall: `@media (max-width: 360px)`\n};\n\nexport enum TRACKING_EVENT_NAMES {\n unitTierBox = 'pricing_page_unit_tier_box',\n unitDescriptionTooltipTriggered = 'unit-description-tooltip-triggered',\n billingCycleChanged = 'billing-cycle-changed',\n planCardCTAButtonClicked = 'edition-table-button-clicked',\n unitBreachModalDecision = 'unit-breach-modal-decision',\n unitLimitBreachModal = 'unit-limit-breach-modal',\n userTierTooltipTriggered = 'user-tier-tooltip-triggered',\n showPricingExampleTriggered = 'show-pricing-example-triggered',\n hidePricingExampleTriggered = 'hide-pricing-example-triggered',\n pricingExampleBillingCycleChanged = 'pricing-example-billing-cycle-changed',\n promoCardCTAButtonClicked = 'promo-card-button-clicked'\n}\n\nexport enum UNIT_TRACKING_TERMS {\n users = 'users',\n agents = 'agents'\n}\n\nexport const DEFAULT_COUNTRY_ISO_CODE = 'US';\nexport const DEFAULT_CURRENCY_ISO_CODE = 'USD';\n\nexport enum SpecialPlanNames {\n FREE = 'Free',\n STANDARD = 'Standard',\n PREMIUM = 'Premium',\n ENTERPRISE = 'Enterprise'\n}\n\nexport enum SpecialProductKeys {\n JSM = 'jira-servicedesk.ondemand',\n BITBUCKET = 'com.atlassian.bitbucket.manual'\n}\n\nexport enum DefaultPlanLimits {\n UNIT_LIMIT_FREE = 10,\n UNIT_LIMIT = 50000,\n UNIT_MIN_ENTERPRISE = 801\n}\n","/**\n * An empty function which does nothing.\n */\n// eslint-disable-next-line @repo/internal/react/use-noop\nexport default function noop() {}","import { createTheme } from '../utils/create-theme';\n\n// Create default global light theme\nconst {\n Provider,\n Consumer,\n useTheme\n} = createTheme(() => ({\n mode: 'light'\n}));\nexport { useTheme as useGlobalTheme };\nexport default {\n Provider,\n Consumer\n};","import React, { createContext, useCallback, useContext } from 'react';\n/**\n * createTheme is used to create a set of Providers and Consumers for theming components.\n * - Takes a default theme function; this theme function gets a set of props, and returns tokens\n * based on those props. An example of this default theme function is one that produces the standard\n * appearance of the component\n * - Returns three things - a Provider that allow for additional themes to be applied, a Consumer\n * that can get the current theme and fetch it, and a custom hook - useTheme which provides an alternate (although functionally the same) API\n * to the Consumer.\n */\nexport function createTheme(defaultGetTokens) {\n const emptyThemeFn = (getTokens, props) => getTokens(props);\n\n /**\n * Internally, Theme uses React Context, with internal providers and consumers.\n * The React Context passes only a function that gets props, and turns them into tokens. This\n * function gets mixed as more Providers with their own themes are added. This mixed function\n * is ultimately picked up by Consumers, which implement a context consumer internally to fetch\n * the theme.\n */\n const ThemeContext = /*#__PURE__*/createContext(defaultGetTokens);\n function useTheme(themeProps) {\n const theme = useContext(ThemeContext);\n const themeFn = theme || emptyThemeFn;\n const tokens = themeFn(themeProps);\n return tokens;\n }\n\n // The Theme Consumer takes a function as its child - this function takes tokens, and the\n // return value is generally a set of nodes with the tokens applied appropriately.\n function Consumer(props) {\n const {\n children,\n ...themeProps\n } = props;\n\n // @ts-ignore See issue for more info: https://github.com/Microsoft/TypeScript/issues/10727\n // Argument of type 'Pick ReactNode; }, Exclude>' is not assignable to parameter of type 'ThemeProps'.ts(2345)\n const tokens = useTheme(themeProps);\n // We add a fragment to ensure we don't break people upgrading.\n // Previously they may have been able to pass in undefined without things blowing up.\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(tokens));\n }\n\n /**\n * The Theme Provider takes regular nodes as its children, but also takes a *theme function*\n * - The theme function takes a set of props, as well as a function (getTokens) that can turn props into tokens.\n * - The getTokens function isn't called immediately - instead the props are passed\n * through a mix of parent theming functions\n * Children of this provider will receive this mixed theme\n */\n function Provider(props) {\n const themeFn = useContext(ThemeContext);\n const valueFn = props.value || emptyThemeFn;\n const mixedFn = useCallback(themeProps => valueFn(themeFn, themeProps), [themeFn, valueFn]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: mixedFn\n }, props.children);\n }\n return {\n Consumer,\n Provider,\n useTheme\n };\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n constructor(props) {\n _defineProperty(this, \"_isAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n // just a shallow clone, don't change sub refs unless you want to\n // affect the original's too\n const payload = {\n ...this.payload\n };\n return new AnalyticsEvent({\n payload\n });\n });\n this.payload = props.payload;\n }\n update(updater) {\n if (typeof updater === 'function') {\n this.payload = updater(this.payload);\n }\n if (typeof updater === 'object') {\n this.payload = {\n ...this.payload,\n ...updater\n };\n }\n return this;\n }\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot clone an event after it's been fired.\");\n }\n return null;\n }\n const context = [...this.context];\n const handlers = [...this.handlers];\n\n /**\n * A hacky \"deep clone\" of the object. This is limited in that it wont\n * support functions, regexs, Maps, Sets, etc, but none of those need to\n * be represented in our payload.\n */\n const payload = JSON.parse(JSON.stringify(this.payload));\n return new UIAnalyticsEvent({\n context,\n handlers,\n payload\n });\n });\n _defineProperty(this, \"fire\", channel => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn('Cannot fire an event twice.');\n }\n return;\n }\n this.handlers.forEach(handler => handler(this, channel));\n this.hasFired = true;\n });\n this.context = props.context || [];\n this.handlers = props.handlers || [];\n this.hasFired = false;\n }\n update(updater) {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot update an event after it's been fired.\");\n }\n return this;\n }\n return super.update(updater);\n }\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n return useContext(AnalyticsReactContext);\n};","import { useEffect, useRef } from 'react';\nexport const useTrackedRef = value => {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n};","import { useCallback } from 'react';\nimport { useAnalyticsEvents } from './useAnalyticsEvents';\nimport { useTrackedRef } from './useTrackedRef';\n// WARNING: This hook will only function correctly for leaf node components - as in\n// no children inside the component will require analytics themselves.\n// Ignoring this warning will mean the analytics context of child components will not\n// include the context of this component, .e.g, lost data.\n// If you are going to have child components that require analytics use withAnalytics\n// or AnalyticsContext component instead.\nexport function usePlatformLeafEventHandler({\n fn,\n action,\n componentName,\n actionSubject,\n packageName,\n packageVersion,\n analyticsData\n}) {\n const {\n createAnalyticsEvent\n } = useAnalyticsEvents();\n\n // We put analyticsData and fn in a ref so that we don't need to break\n // memoization.\n // Generally these could be defined by consumers inline\n // and so we do this to avoid breaking memoization of useCallback\n const dataRef = useTrackedRef(analyticsData);\n const fnRef = useTrackedRef(fn);\n const handler = useCallback(value => {\n const analyticsEvent = createAnalyticsEvent({\n action,\n actionSubject: actionSubject || componentName,\n attributes: {\n componentName,\n packageName,\n packageVersion\n }\n });\n\n // To avoid wrapping this component in AnalyticsContext we manually\n // push the parent context's meta data into the context.\n // Note: this new 'context'\n const context = {\n componentName,\n packageName,\n packageVersion,\n ...dataRef.current\n };\n analyticsEvent.context.push(context);\n\n // fire an event on the atlaskit channel\n const clone = analyticsEvent.clone();\n if (clone) {\n clone.fire('atlaskit');\n }\n fnRef.current(value, analyticsEvent);\n }, [\n // These are strings and won't change\n action, componentName, actionSubject, packageName, packageVersion,\n // This function is memoized in the context\n createAnalyticsEvent,\n // these are a stable ref because of the useTrackedRef hook\n dataRef, fnRef]);\n return handler;\n}","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n const analyticsContext = useAnalyticsContext();\n const createAnalyticsEvent = useCallbackOne(payload => {\n return new UIAnalyticsEvent({\n context: analyticsContext.getAtlaskitAnalyticsContext(),\n handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n payload\n });\n }, [analyticsContext]);\n return {\n createAnalyticsEvent\n };\n}","import deprecationWarning from '@atlaskit/ds-lib/deprecation-warning';\nimport { B200, N30A, skeleton as skeletonColor } from './colors';\nexport const CHANNEL = '__ATLASKIT_THEME__';\nexport const DEFAULT_THEME_MODE = 'light';\nexport const THEME_MODES = ['light', 'dark'];\n\n/*\n These theme values are expressed as functions so that if we decide to make\n them dependent on props in the future, it wouldn't require a significant\n refactor everywhere they are being used.\n*/\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('border.radius', '3px')` instead.\n */\nexport const borderRadius = () => 3;\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('space.100', '8px')` instead with any of the space tokens.\n * Available space tokens can be found on {@link https://atlassian.design/foundations/spacing/#scale}\n */\nexport const gridSize = () => 8;\nexport const fontSize = () => 14;\nexport const fontSizeSmall = () => 11;\nexport const fontFamily = () => `-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\nexport const codeFontFamily = () => `'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace`;\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const focusRing = (color = `var(--ds-border-focused, ${B200})`, outlineWidth = gridSize() / 4) => {\n deprecationWarning('@atlaskit/theme', 'focus ring mixin', 'Please use `@atlaskit/focus-ring` instead.');\n return `\n &:focus {\n outline: none;\n box-shadow: 0px 0px 0px ${outlineWidth}px ${color};\n }\n`;\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const noFocusRing = () => `\n box-shadow: none;\n`;\nexport const layers = {\n card: () => 100,\n navigation: () => 200,\n dialog: () => 300,\n layer: () => 400,\n blanket: () => 500,\n modal: () => 510,\n flag: () => 600,\n spotlight: () => 700,\n tooltip: () => 9999\n};\n\n// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const visuallyHidden = () => {\n deprecationWarning('@atlaskit/theme', 'visually hidden mixin', 'Please use `@atlaskit/visually-hidden` instead.');\n return {\n border: '0 !important',\n clip: 'rect(1px, 1px, 1px, 1px) !important',\n height: '1px !important',\n overflow: 'hidden !important',\n padding: '0 !important',\n position: 'absolute !important',\n width: '1px !important',\n whiteSpace: 'nowrap !important'\n };\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const assistive = visuallyHidden;\n\n/**\n * These styles are mirrored in:\n * packages/design-system/menu/src/internal/components/skeleton-shimmer.tsx\n *\n * Please update both.\n */\nexport const skeletonShimmer = () => ({\n css: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate'\n },\n keyframes: {\n from: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`\n },\n to: {\n backgroundColor: `var(--ds-skeleton-subtle, ${N30A})`\n }\n }\n});","import { CHANNEL, DEFAULT_THEME_MODE, THEME_MODES } from '../constants';\n// Resolves the different types of theme objects in the current API\nexport default function getTheme(props) {\n if (props && props.theme) {\n // Theme is the global Atlaskit theme\n if (CHANNEL in props.theme) {\n return props.theme[CHANNEL];\n }\n // User has provided alternative modes\n else if ('mode' in props.theme && THEME_MODES.includes(props.theme.mode)) {\n return props.theme;\n }\n }\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE\n };\n}","/* eslint-disable prefer-rest-params */\n\nimport getTheme from './get-theme';\n// Unpack custom variants, and get correct value for the current theme\nfunction themedVariants(variantProp, variants) {\n return props => {\n const theme = getTheme(props);\n if (props && props[variantProp] && variants) {\n const modes = variants[props[variantProp]];\n if (modes && modes[theme.mode]) {\n const value = modes[theme.mode];\n if (value) {\n return value;\n } // TS believes value can be undefined\n }\n }\n\n return '';\n };\n}\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-4693 Internal documentation for deprecation (no external access)}\n */\nexport default function themed(modesOrVariant, variantModes) {\n if (typeof modesOrVariant === 'string') {\n return themedVariants(modesOrVariant, variantModes);\n }\n const modes = modesOrVariant;\n return props => {\n // Get theme from the user's props\n const theme = getTheme(props);\n // User isn't required to provide both light and dark values\n if (theme.mode in modes) {\n const value = modes[theme.mode]; // TS believes value can be undefined\n if (value) {\n return value;\n }\n }\n return '';\n };\n}","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */\n\nimport themed from './utils/themed';\n\n// Reds\nexport const R50 = '#FFEBE6';\nexport const R75 = '#FFBDAD';\nexport const R100 = '#FF8F73';\nexport const R200 = '#FF7452';\nexport const R300 = '#FF5630';\nexport const R400 = '#DE350B';\nexport const R500 = '#BF2600';\n\n// Yellows\nexport const Y50 = '#FFFAE6';\nexport const Y75 = '#FFF0B3';\nexport const Y100 = '#FFE380';\nexport const Y200 = '#FFC400';\nexport const Y300 = '#FFAB00';\nexport const Y400 = '#FF991F';\nexport const Y500 = '#FF8B00';\n\n// Greens\nexport const G50 = '#E3FCEF';\nexport const G75 = '#ABF5D1';\nexport const G100 = '#79F2C0';\nexport const G200 = '#57D9A3';\nexport const G300 = '#36B37E';\nexport const G400 = '#00875A';\nexport const G500 = '#006644';\n\n// Blues\nexport const B50 = '#DEEBFF';\nexport const B75 = '#B3D4FF';\nexport const B100 = '#4C9AFF';\nexport const B200 = '#2684FF';\nexport const B300 = '#0065FF';\nexport const B400 = '#0052CC';\nexport const B500 = '#0747A6';\n\n// Purples\nexport const P50 = '#EAE6FF';\nexport const P75 = '#C0B6F2';\nexport const P100 = '#998DD9';\nexport const P200 = '#8777D9';\nexport const P300 = '#6554C0';\nexport const P400 = '#5243AA';\nexport const P500 = '#403294';\n\n// Teals\nexport const T50 = '#E6FCFF';\nexport const T75 = '#B3F5FF';\nexport const T100 = '#79E2F2';\nexport const T200 = '#00C7E6';\nexport const T300 = '#00B8D9';\nexport const T400 = '#00A3BF';\nexport const T500 = '#008DA6';\n\n// Neutrals\nexport const N0 = '#FFFFFF';\nexport const N10 = '#FAFBFC';\nexport const N20 = '#F4F5F7';\nexport const N30 = '#EBECF0';\nexport const N40 = '#DFE1E6';\nexport const N50 = '#C1C7D0';\nexport const N60 = '#B3BAC5';\nexport const N70 = '#A5ADBA';\nexport const N80 = '#97A0AF';\nexport const N90 = '#8993A4';\nexport const N100 = '#7A869A';\nexport const N200 = '#6B778C';\nexport const N300 = '#5E6C84';\nexport const N400 = '#505F79';\nexport const N500 = '#42526E';\nexport const N600 = '#344563';\nexport const N700 = '#253858';\nexport const N800 = '#172B4D';\n\n// ATTENTION: update the tints if you update this\nexport const N900 = '#091E42';\n\n// Each tint is made of N900 and an alpha channel\nexport const N10A = 'rgba(9, 30, 66, 0.02)';\nexport const N20A = 'rgba(9, 30, 66, 0.04)';\nexport const N30A = 'rgba(9, 30, 66, 0.08)';\nexport const N40A = 'rgba(9, 30, 66, 0.13)';\nexport const N50A = 'rgba(9, 30, 66, 0.25)';\nexport const N60A = 'rgba(9, 30, 66, 0.31)';\nexport const N70A = 'rgba(9, 30, 66, 0.36)';\nexport const N80A = 'rgba(9, 30, 66, 0.42)';\nexport const N90A = 'rgba(9, 30, 66, 0.48)';\nexport const N100A = 'rgba(9, 30, 66, 0.54)';\nexport const N200A = 'rgba(9, 30, 66, 0.60)';\nexport const N300A = 'rgba(9, 30, 66, 0.66)';\nexport const N400A = 'rgba(9, 30, 66, 0.71)';\nexport const N500A = 'rgba(9, 30, 66, 0.77)';\nexport const N600A = 'rgba(9, 30, 66, 0.82)';\nexport const N700A = 'rgba(9, 30, 66, 0.89)';\nexport const N800A = 'rgba(9, 30, 66, 0.95)';\n\n// Dark Mode Neutrals\nexport const DN900 = '#E6EDFA';\nexport const DN800 = '#DCE5F5';\nexport const DN700 = '#CED9EB';\nexport const DN600 = '#B8C7E0';\nexport const DN500 = '#ABBBD6';\nexport const DN400 = '#9FB0CC';\nexport const DN300 = '#8C9CB8';\nexport const DN200 = '#7988A3';\nexport const DN100 = '#67758F';\nexport const DN90 = '#56637A';\nexport const DN80 = '#455166';\nexport const DN70 = '#3B475C';\nexport const DN60 = '#313D52';\nexport const DN50 = '#283447';\nexport const DN40 = '#202B3D';\nexport const DN30 = '#1B2638';\nexport const DN20 = '#121A29';\nexport const DN10 = '#0E1624';\n\n// ATTENTION: update the tints if you update this\nexport const DN0 = '#0D1424';\n\n// Each dark tint is made of DN0 and an alpha channel\nexport const DN800A = 'rgba(13, 20, 36, 0.06)';\nexport const DN700A = 'rgba(13, 20, 36, 0.14)';\nexport const DN600A = 'rgba(13, 20, 36, 0.18)';\nexport const DN500A = 'rgba(13, 20, 36, 0.29)';\nexport const DN400A = 'rgba(13, 20, 36, 0.36)';\nexport const DN300A = 'rgba(13, 20, 36, 0.40)';\nexport const DN200A = 'rgba(13, 20, 36, 0.47)';\nexport const DN100A = 'rgba(13, 20, 36, 0.53)';\nexport const DN90A = 'rgba(13, 20, 36, 0.63)';\nexport const DN80A = 'rgba(13, 20, 36, 0.73)';\nexport const DN70A = 'rgba(13, 20, 36, 0.78)';\nexport const DN60A = 'rgba(13, 20, 36, 0.81)';\nexport const DN50A = 'rgba(13, 20, 36, 0.85)';\nexport const DN40A = 'rgba(13, 20, 36, 0.89)';\nexport const DN30A = 'rgba(13, 20, 36, 0.92)';\nexport const DN20A = 'rgba(13, 20, 36, 0.95)';\nexport const DN10A = 'rgba(13, 20, 36, 0.97)';\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface')` instead.\n */\nexport const background = themed({\n light: `var(--ds-surface, ${N0})`,\n dark: `var(--ds-surface, ${DN30})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.selected')` instead.\n */\nexport const backgroundActive = themed({\n light: `var(--ds-background-selected, ${B50})`,\n dark: `var(--ds-background-selected, ${B75})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.neutral.hovered')` instead.\n */\nexport const backgroundHover = themed({\n light: `var(--ds-background-neutral-hovered, ${N30})`,\n dark: `var(--ds-background-neutral-hovered, ${DN70})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface.overlay')` instead.\n */\nexport const backgroundOnLayer = themed({\n light: `var(--ds-surface-overlay, ${N0})`,\n dark: `var(--ds-surface-overlay, ${DN50})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const text = themed({\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const textHover = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.selected')` instead.\n */\nexport const textActive = themed({\n light: `var(--ds-text-selected, ${B400})`,\n dark: `var(--ds-text-selected, ${B400})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use token('color.text.subtlest', N200) instead. Use DN200 as the fallback color for dark mode.\n */\nexport const placeholderText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const heading = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleHeading = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\nexport const codeBlock = themed({\n light: N20,\n dark: DN50\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link')` instead.\n */\nexport const link = themed({\n light: `var(--ds-link, ${B400})`,\n dark: `var(--ds-link, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkHover = themed({\n light: `var(--ds-link-pressed, ${B300})`,\n dark: `var(--ds-link-pressed, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkActive = themed({\n light: `var(--ds-link-pressed, ${B500})`,\n dark: `var(--ds-link-pressed, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.border.focused', B200)` instead.\n */\nexport const linkOutline = themed({\n light: `var(--ds-border-focused, ${B200})`,\n dark: `var(--ds-border-focused, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.brand.bold')` instead.\n */\nexport const primary = themed({\n light: `var(--ds-background-brand-bold, ${B400})`,\n dark: `var(--ds-background-brand-bold, ${B100})`\n});\nexport const blue = themed({\n light: B400,\n dark: B100\n});\nexport const teal = themed({\n light: T300,\n dark: T200\n});\nexport const purple = themed({\n light: P300,\n dark: P100\n});\nexport const red = themed({\n light: R300,\n dark: R300\n});\nexport const yellow = themed({\n light: Y300,\n dark: Y300\n});\nexport const green = themed({\n light: G300,\n dark: G300\n});\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.skeleton')` instead.\n */\nexport const skeleton = () => `var(--ds-skeleton, ${N20A})`;","function abort(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nconst tabKeyCode = 9;\nfunction onKey(event) {\n // Allowing tab so that a user can move focus away\n if (event.keyCode === tabKeyCode) {\n return;\n }\n abort(event);\n}\nconst block = {\n onMouseDownCapture: abort,\n onMouseUpCapture: abort,\n // because we have tabIndex = -1 when disabled,\n // keyboard events can only occur when there is an overlay\n onKeyDownCapture: onKey,\n onKeyUpCapture: onKey,\n onTouchStartCapture: abort,\n onTouchEndCapture: abort,\n onPointerDownCapture: abort,\n onPointerUpCapture: abort,\n onClickCapture: abort,\n // Just smashing the existing onClick for good measure\n onClick: abort\n};\nconst doNotBlock = {};\nexport default function blockEvents({\n isInteractive\n}) {\n return isInteractive ? doNotBlock : block;\n}","import * as colors from '@atlaskit/theme/colors';\n// Hard coding the active rgba color value rather than using a helper to convert it\n// With helper it would be: hex2rgba(colors.B75, 0.6)\nconst fadedB75 = 'rgba(179, 212, 255, 0.6)';\nconst values = {\n // Default appearance\n background: {\n default: {\n default: {\n light: `var(--ds-background-neutral, ${colors.N20A})`,\n dark: `var(--ds-background-neutral, ${colors.DN70})`\n },\n hover: {\n light: `var(--ds-background-neutral-hovered, ${colors.N30A})`,\n dark: `var(--ds-background-neutral-hovered, ${colors.DN60})`\n },\n active: {\n light: `var(--ds-background-neutral-pressed, ${fadedB75})`,\n dark: `var(--ds-background-neutral-pressed, ${colors.B75})`\n },\n disabled: {\n light: `var(--ds-background-disabled, ${colors.N20A})`,\n dark: `var(--ds-background-disabled, ${colors.DN70})`\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.DN0})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.DN0})`\n }\n },\n primary: {\n default: {\n light: `var(--ds-background-brand-bold, ${colors.B400})`,\n dark: `var(--ds-background-brand-bold, ${colors.B100})`\n },\n hover: {\n light: `var(--ds-background-brand-bold-hovered, ${colors.B300})`,\n dark: `var(--ds-background-brand-bold-hovered, ${colors.B75})`\n },\n active: {\n light: `var(--ds-background-brand-bold-pressed, ${colors.B500})`,\n dark: `var(--ds-background-brand-bold-pressed, ${colors.B200})`\n },\n disabled: {\n light: `var(--ds-background-disabled, ${colors.N20A})`,\n dark: `var(--ds-background-disabled, ${colors.DN70})`\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.DN0})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.DN0})`\n }\n },\n warning: {\n default: {\n light: `var(--ds-background-warning-bold, ${colors.Y300})`,\n dark: `var(--ds-background-warning-bold, ${colors.Y300})`\n },\n hover: {\n light: `var(--ds-background-warning-bold-hovered, ${colors.Y200})`,\n dark: `var(--ds-background-warning-bold-hovered, ${colors.Y200})`\n },\n active: {\n light: `var(--ds-background-warning-bold-pressed, ${colors.Y400})`,\n dark: `var(--ds-background-warning-bold-pressed, ${colors.Y400})`\n },\n disabled: {\n light: `var(--ds-background-disabled, ${colors.N20A})`,\n dark: `var(--ds-background-disabled, ${colors.DN70})`\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.Y400})`,\n dark: `var(--ds-background-selected, ${colors.Y400})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.Y400})`,\n dark: `var(--ds-background-selected, ${colors.Y400})`\n }\n },\n danger: {\n default: {\n light: `var(--ds-background-danger-bold, ${colors.R400})`,\n dark: `var(--ds-background-danger-bold, ${colors.R400})`\n },\n hover: {\n light: `var(--ds-background-danger-bold-hovered, ${colors.R300})`,\n dark: `var(--ds-background-danger-bold-hovered, ${colors.R300})`\n },\n active: {\n light: `var(--ds-background-danger-bold-pressed, ${colors.R500})`,\n dark: `var(--ds-background-danger-bold-pressed, ${colors.R500})`\n },\n disabled: {\n light: `var(--ds-background-disabled, ${colors.N20A})`,\n dark: `var(--ds-background-disabled, ${colors.DN70})`\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.R500})`,\n dark: `var(--ds-background-selected, ${colors.R500})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.R500})`,\n dark: `var(--ds-background-selected, ${colors.R500})`\n }\n },\n link: {\n default: {\n light: \"var(--ds-background-neutral-subtle, none)\",\n dark: \"var(--ds-background-neutral-subtle, none)\"\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.N20})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.N20})`\n }\n },\n subtle: {\n default: {\n light: \"var(--ds-background-neutral-subtle, none)\",\n dark: \"var(--ds-background-neutral-subtle, none)\"\n },\n hover: {\n light: `var(--ds-background-neutral-subtle-hovered, ${colors.N30A})`,\n dark: `var(--ds-background-neutral-subtle-hovered, ${colors.DN60})`\n },\n active: {\n light: `var(--ds-background-neutral-subtle-pressed, ${fadedB75})`,\n dark: `var(--ds-background-neutral-subtle-pressed, ${colors.B75})`\n },\n disabled: {\n light: \"var(--ds-background-neutral-subtle, none)\",\n dark: \"var(--ds-background-neutral-subtle, none)\"\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.DN0})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.DN0})`\n }\n },\n 'subtle-link': {\n default: {\n light: \"var(--ds-background-neutral-subtle, none)\",\n dark: \"var(--ds-background-neutral-subtle, none)\"\n },\n selected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.N20})`\n },\n focusSelected: {\n light: `var(--ds-background-selected, ${colors.N700})`,\n dark: `var(--ds-background-selected, ${colors.N20})`\n }\n }\n },\n color: {\n default: {\n default: {\n light: `var(--ds-text, ${colors.N500})`,\n dark: `var(--ds-text, ${colors.DN400})`\n },\n active: {\n light: `var(--ds-text, ${colors.B400})`,\n dark: `var(--ds-text, ${colors.B400})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN30})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n }\n },\n primary: {\n default: {\n light: `var(--ds-text-inverse, ${colors.N0})`,\n dark: `var(--ds-text-inverse, ${colors.DN30})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN30})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n }\n },\n warning: {\n default: {\n light: `var(--ds-text-warning-inverse, ${colors.N800})`,\n dark: `var(--ds-text-warning-inverse, ${colors.N800})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN30})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N800})`,\n dark: `var(--ds-text-selected, ${colors.N800})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N800})`,\n dark: `var(--ds-text-selected, ${colors.N800})`\n }\n },\n danger: {\n default: {\n light: `var(--ds-text-inverse, ${colors.N0})`,\n dark: `var(--ds-text-inverse, ${colors.N0})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN30})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N0})`,\n dark: `var(--ds-text-selected, ${colors.N0})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N0})`,\n dark: `var(--ds-text-selected, ${colors.N0})`\n }\n },\n link: {\n default: {\n light: `var(--ds-link, ${colors.B400})`,\n dark: `var(--ds-link, ${colors.B100})`\n },\n hover: {\n light: `var(--ds-link, ${colors.B300})`,\n dark: `var(--ds-link, ${colors.B75})`\n },\n active: {\n light: `var(--ds-link-pressed, ${colors.B500})`,\n dark: `var(--ds-link-pressed, ${colors.B200})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN100})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.N700})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.N700})`\n }\n },\n subtle: {\n default: {\n light: `var(--ds-text, ${colors.N500})`,\n dark: `var(--ds-text, ${colors.DN400})`\n },\n active: {\n light: `var(--ds-text, ${colors.B400})`,\n dark: `var(--ds-text, ${colors.B400})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN100})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n }\n },\n 'subtle-link': {\n default: {\n light: `var(--ds-text-subtle, ${colors.N200})`,\n dark: `var(--ds-text-subtle, ${colors.DN400})`\n },\n hover: {\n light: `var(--ds-text-subtle, ${colors.N90})`,\n dark: `var(--ds-text-subtle, ${colors.B50})`\n },\n active: {\n light: `var(--ds-text, ${colors.N400})`,\n dark: `var(--ds-text, ${colors.DN300})`\n },\n disabled: {\n light: `var(--ds-text-disabled, ${colors.N70})`,\n dark: `var(--ds-text-disabled, ${colors.DN100})`\n },\n selected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n },\n focusSelected: {\n light: `var(--ds-text-selected, ${colors.N20})`,\n dark: `var(--ds-text-selected, ${colors.DN400})`\n }\n }\n }\n};\nexport default values;","import { css } from '@emotion/react';\nimport { borderRadius as getBorderRadius, fontSize as getFontSize,\n// eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports\ngridSize as getGridSize } from '@atlaskit/theme/constants';\nimport colors from './colors';\nconst borderRadius = getBorderRadius();\nconst gridSize = getGridSize();\nconst fontSize = getFontSize();\n\n// ## Button layout\n//\n// /------------------------------------------------------------------------------------------------------------------\\\n// | → | ← | | → | ← | | → | ← | | → | ← |\n// | 10px → | ← 2px | icon | 2px → | ← 2px | | 2px → | ← 2px | icon | 2px → | ← 10px |\n// | padding | margin | before | margin | margin | content | margin | margin | after | margin | padding |\n// | (12px total) | | (4px total) | | (4px total) | | (12px total) |\n// | → | ← | | → | ← | | → | ← | | → | ← |\n// \\------------------------------------------------------------------------------------------------------------------/\n// ↑ ↑\n// Margins don't collapse with inline-flex\n//\nconst heights = {\n default: `${gridSize * 4 / fontSize}em`,\n // 32px\n compact: `${gridSize * 3 / fontSize}em`,\n none: 'auto'\n};\nconst lineHeights = {\n default: heights.default,\n compact: heights.compact,\n none: 'inherit'\n};\nconst padding = {\n // 10px gutter\n default: `0 ${gridSize + gridSize / 4}px`,\n compact: `0 ${gridSize + gridSize / 4}px`,\n none: '0'\n};\nconst singleIconPadding = {\n // 2px gutter\n compact: `0 ${gridSize / 4}px`,\n default: `0 ${gridSize / 4}px`,\n none: '0'\n};\nconst verticalAlign = {\n default: 'middle',\n compact: 'middle',\n none: 'baseline'\n};\nconst innerMargin = {\n content: `0 ${gridSize / 4}px`,\n icon: `0 ${gridSize / 4}px`\n};\nfunction getColor({\n group,\n key,\n mode\n}) {\n const rule = group[key] || group.default;\n return rule[mode];\n}\nfunction getColors({\n appearance,\n key,\n mode\n}) {\n return {\n background: getColor({\n group: colors.background[appearance],\n key,\n mode\n }),\n // Needing to add !important to overcome specificity issue caused by deprecated AtlaskitThemeProvider\n color: `${getColor({\n group: colors.color[appearance],\n key,\n mode\n })} !important`\n };\n}\nexport function getCss({\n appearance,\n spacing,\n mode,\n isSelected,\n shouldFitContainer,\n isOnlySingleIcon\n}) {\n const baseColors = getColors({\n appearance,\n key: isSelected ? 'selected' : 'default',\n mode\n });\n return {\n // 0px margin added to css-reset\n alignItems: 'baseline',\n borderWidth: 0,\n borderRadius,\n boxSizing: 'border-box',\n display: 'inline-flex',\n fontSize: 'inherit',\n fontStyle: 'normal',\n // Chrome recently changed button so that they use 'arial' as the font family\n fontFamily: 'inherit',\n fontWeight: 500,\n // margin for button has been applied to css reset\n maxWidth: '100%',\n // Needed to position overlay\n position: 'relative',\n textAlign: 'center',\n textDecoration: 'none',\n transition: 'background 0.1s ease-out, box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38)',\n whiteSpace: 'nowrap',\n // dynamic styles\n ...baseColors,\n cursor: 'pointer',\n height: heights[spacing],\n lineHeight: lineHeights[spacing],\n padding: isOnlySingleIcon ? singleIconPadding[spacing] : padding[spacing],\n verticalAlign: verticalAlign[spacing],\n width: shouldFitContainer ? '100%' : 'auto',\n // justifyContent required for shouldFitContainer buttons with an icon inside\n justifyContent: 'center',\n // Note: we cannot disable pointer events when there is an overlay.\n // That would be easy for styling, but it would start letting events through on disabled buttons\n\n // Disabling visited styles (just using the base colors)\n '&:visited': {\n ...baseColors\n },\n '&:hover': {\n ...getColors({\n appearance,\n key: isSelected ? 'selected' : 'hover',\n mode\n }),\n textDecoration: !isSelected && (appearance === 'link' || appearance === 'subtle-link') ? 'underline' : 'inherit',\n // background, box-shadow\n transitionDuration: '0s, 0.15s'\n },\n // giving active styles preference by listing them after focus\n '&:active': {\n ...getColors({\n appearance,\n key: isSelected ? 'selected' : 'active',\n mode\n }),\n // background, box-shadow\n transitionDuration: '0s, 0s'\n },\n // preventDefault prevents regular active styles from applying in Firefox\n '&[data-firefox-is-active=\"true\"]': {\n ...getColors({\n appearance,\n key: isSelected ? 'selected' : 'active',\n mode\n }),\n // background, box-shadow\n transitionDuration: '0s, 0s'\n },\n // Giving disabled styles preference over active by listing them after.\n // Not using '&:disabled' because :disabled is not a valid state for all element types\n // so we are targeting the attribute\n // Attributes have the same specificity a pseudo classes so we are overriding :disabled here\n '&[disabled]': {\n // always using 'disabled' even when selected\n ...getColors({\n appearance,\n key: 'disabled',\n mode\n }),\n cursor: 'not-allowed',\n textDecoration: 'none'\n },\n '&[data-has-overlay=\"true\"]': {\n cursor: 'default',\n textDecoration: 'none'\n },\n // disabling hover and active color changes when there is an overlay, but the button is not disabled\n '&[data-has-overlay=\"true\"]:not([disabled]):hover, &[data-has-overlay=\"true\"]:not([disabled]):active': {\n ...getColors({\n appearance,\n key: isSelected ? 'selected' : 'default',\n mode\n })\n },\n '&::-moz-focus-inner': {\n border: 0,\n margin: 0,\n padding: 0\n }\n };\n}\n\n// inline-flex child\nexport function getIconStyle({\n spacing\n}) {\n return css({\n display: 'flex',\n // icon size cannot grow and shrink\n // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing\n margin: spacing === 'none' ? 0 : innerMargin.icon,\n flexGrow: 0,\n flexShrink: 0,\n alignSelf: 'center',\n fontSize: 0,\n lineHeight: 0,\n userSelect: 'none'\n });\n}\n\n// inline-flex child\nexport function getContentStyle({\n spacing\n}) {\n return css({\n // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing\n margin: spacing === 'none' ? 0 : innerMargin.content,\n // content can grow and shrink\n flexGrow: 1,\n flexShrink: 1,\n // ellipsis for overflow text\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n });\n}\nexport function getFadingCss({\n hasOverlay\n}) {\n return css({\n opacity: hasOverlay ? 0 : 1,\n transition: 'opacity 0.3s'\n });\n}\nexport const overlayCss = {\n // stretching to full width / height of button\n // this is important as we need it to still block\n // event if clicking in the button's own padding\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n // Putting all children in the center\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n};","import _extends from \"@babel/runtime/helpers/extends\";\n/** @jsx jsx */\nimport React, { useCallback, useContext, useEffect, useRef } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { usePlatformLeafEventHandler } from '@atlaskit/analytics-next';\nimport noop from '@atlaskit/ds-lib/noop';\nimport useAutoFocus from '@atlaskit/ds-lib/use-auto-focus';\nimport FocusRing from '@atlaskit/focus-ring';\n// eslint-disable-next-line no-duplicate-imports\nimport InteractionContext from '@atlaskit/interaction-context';\nimport { N500 } from '@atlaskit/theme/colors';\nimport blockEvents from './block-events';\nimport { getContentStyle, getFadingCss, getIconStyle, overlayCss } from './css';\n\n// Disabled buttons will still publish events for nested elements in webkit.\n// We are disabling pointer events on child elements so that\n// the button will always be the target of events\n// Note: firefox does not have this behaviour for child elements\nconst noPointerEventsOnChildrenCss = {\n '> *': {\n pointerEvents: 'none'\n }\n};\nexport default /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n const {\n appearance = 'default',\n buttonCss,\n spacing = 'default',\n autoFocus = false,\n isDisabled = false,\n shouldFitContainer = false,\n isSelected = false,\n iconBefore,\n iconAfter,\n children,\n className,\n href,\n overlay,\n tabIndex = 0,\n type = !href ? 'button' : undefined,\n onMouseDown: providedOnMouseDown = noop,\n onClick: providedOnClick = noop,\n // use the provided component prop,\n // else default to anchor if there is a href, and button if there is no href\n component: Component = href ? 'a' : 'button',\n testId,\n interactionName,\n // I don't think this should be in button, but for now it is\n analyticsContext,\n ...rest\n } = props;\n const ourRef = useRef();\n const setRef = useCallback(node => {\n ourRef.current = node;\n if (ref == null) {\n return;\n }\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n // @ts-ignore\n ref.current = node;\n }, [ourRef, ref]);\n\n // Cross browser auto focusing is pretty broken, so we are doing it ourselves\n useAutoFocus(ourRef, autoFocus);\n const interactionContext = useContext(InteractionContext);\n const handleClick = useCallback((e, analyticsEvent) => {\n interactionContext && interactionContext.tracePress(interactionName, e.timeStamp);\n providedOnClick(e, analyticsEvent);\n }, [providedOnClick, interactionContext, interactionName]);\n const onClick = usePlatformLeafEventHandler({\n fn: handleClick,\n action: 'clicked',\n componentName: 'button',\n packageName: \"@atlaskit/button\",\n packageVersion: \"16.7.5\",\n analyticsData: analyticsContext\n });\n\n // Button currently calls preventDefault, which is not standard button behaviour\n const onMouseDown = useCallback(event => {\n event.preventDefault();\n providedOnMouseDown(event);\n }, [providedOnMouseDown]);\n\n // Lose focus when becoming disabled (standard button behaviour)\n useEffect(() => {\n const el = ourRef.current;\n if (isDisabled && el && el === document.activeElement) {\n el.blur();\n }\n }, [isDisabled]);\n\n // we are 'disabling' input with a button when there is an overlay\n const hasOverlay = Boolean(overlay);\n const fadeCss = css(getFadingCss({\n hasOverlay\n }));\n const isInteractive = !isDisabled && !hasOverlay;\n\n /**\n * HACK: Spinner needs to have different colours in the \"new\" tokens design compared to the old design.\n * For now, while we support both, these styles reach into Spinner when a theme is set, applies the right color.\n * Ticket to remove: https://product-fabric.atlassian.net/browse/DSP-2067\n */\n var spinnerHackCss = {};\n if (isSelected || isDisabled || appearance === 'warning') {\n spinnerHackCss = {\n '[data-theme] & circle': {\n stroke: `${isSelected || isDisabled ? `var(--ds-icon-subtle, ${N500})` : `var(--ds-icon-warning-inverse, ${N500})`} !important`\n }\n };\n }\n return jsx(FocusRing, null, jsx(Component, _extends({}, rest, {\n css: [buttonCss, isInteractive ? null : noPointerEventsOnChildrenCss],\n className: className,\n ref: setRef,\n onClick: onClick,\n onMouseDown: onMouseDown,\n disabled: isDisabled,\n href: isInteractive ? href : undefined\n // using undefined so that the property doesn't exist when false\n ,\n \"data-has-overlay\": hasOverlay ? true : undefined,\n \"data-testid\": testId,\n type: type\n // Adding a tab index so element is always focusable, even when not a or \n // Disabling focus via keyboard navigation when disabled\n // as this is standard button behaviour\n ,\n tabIndex: isDisabled ? -1 : tabIndex\n }, blockEvents({\n isInteractive\n })), iconBefore ? jsx(\"span\", {\n css: [fadeCss, getIconStyle({\n spacing\n })]\n }, iconBefore) : null, children ? jsx(\"span\", {\n css: [fadeCss, getContentStyle({\n spacing\n })]\n }, children) : null, iconAfter ? jsx(\"span\", {\n css: [fadeCss, getIconStyle({\n spacing\n })]\n }, iconAfter) : null, overlay ? jsx(\"span\", {\n css: [overlayCss, spinnerHackCss]\n }, overlay) : null));\n});","import { useEffect, useRef } from 'react';\n\n/**\n * Focusing on the passed element ref after initial mount.\n * Will only focus on initial mount.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/autofocus\n *\n * ```tsx\n * import useAutoFocus from '@atlaskit/ds-lib/use-auto-focus';\n *\n * const elementRef = useRef();\n * useAutoFocus(elementRef, true);\n *\n * ;\n * ```\n *\n * @param ref\n * @param autoFocus\n */\nexport default function useAutoFocus(ref, autoFocus) {\n const initialMount = useRef(true);\n useEffect(() => {\n if (ref && initialMount.current && autoFocus && ref.current) {\n ref.current.focus();\n }\n initialMount.current = false;\n }, [autoFocus, ref]);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { useCallback, useMemo, useState } from 'react';\nimport noop from '@atlaskit/ds-lib/noop';\nimport { useGlobalTheme } from '@atlaskit/theme/components';\nimport ButtonBase from './shared/button-base';\nimport { getCss } from './shared/css';\nimport getIsOnlySingleIcon from './shared/get-is-only-single-icon';\nconst isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n/**\n * __Button__\n *\n * A button triggers an event or action. They let users know what will happen next.\n *\n * - [Examples](https://atlassian.design/components/button/examples)\n * - [Code](https://atlassian.design/components/button/code)\n * - [Usage](https://atlassian.design/components/button/usage)\n */\nconst Button = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Button({\n onMouseDown: providedOnMouseDown = noop,\n onMouseUp: providedOnMouseUp = noop,\n ...rest\n}, ref) {\n const {\n mode\n } = useGlobalTheme();\n const appearance = rest.appearance || 'default';\n const spacing = rest.spacing || 'default';\n const shouldFitContainer = Boolean(rest.shouldFitContainer);\n const isSelected = Boolean(rest.isSelected);\n const isOnlySingleIcon = getIsOnlySingleIcon(rest);\n const [isActive, setIsActive] = useState(false);\n\n // Wrap onMouseDown / onMouseUp to manually trigger active state\n // in Firefox\n const onMouseDown = useCallback(event => {\n providedOnMouseDown(event);\n if (isFirefox) {\n setIsActive(true);\n }\n }, [providedOnMouseDown, setIsActive]);\n const onMouseUp = useCallback(event => {\n providedOnMouseUp(event);\n if (isFirefox) {\n setIsActive(false);\n }\n }, [providedOnMouseUp, setIsActive]);\n const buttonCss = useMemo(() => getCss({\n appearance,\n spacing,\n mode,\n isSelected,\n shouldFitContainer,\n isOnlySingleIcon\n }), [appearance, spacing, mode, isSelected, shouldFitContainer, isOnlySingleIcon]);\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({}, rest, {\n ref: ref,\n buttonCss: buttonCss\n // Due to how click events are set, we need to set active styles\n // manually in Firefox and wrap onMouseDown/onMouseUp\n ,\n \"data-firefox-is-active\": isActive ? true : undefined,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }));\n}));\n\n// Tools including enzyme rely on components having a display name\nButton.displayName = 'Button';\nexport default Button;","export default function getIsOnlySingleIcon({\n children,\n iconBefore,\n iconAfter\n}) {\n if (children) {\n return false;\n }\n if (iconBefore && !iconAfter) {\n return true;\n }\n if (!iconBefore && iconAfter) {\n return true;\n }\n return false;\n}","import Button from '@atlaskit/button';\nimport styled from '@emotion/styled';\nimport { B300, B500 } from '@atlaskit/theme/colors';\n\nimport React, { PropsWithChildren } from 'react';\n\ntype PricingExampleButtonProps = {\n highlighted?: boolean;\n disabled?: boolean;\n onClickHandler: () => void;\n};\n\nconst PricingExampleButton = ({\n onClickHandler,\n children\n}: PropsWithChildren) => {\n return (\n onClickHandler()}>\n {children}\n \n );\n};\n\nconst StyledButton = styled(Button)`\n color: ${B300} !important;\n font-family: 'Charlie Text';\n font-size: 16px;\n font-weight: 400;\n text-decoration: underline;\n text-underline-offset: 4px;\n &:hover {\n color: ${B500} !important;\n }\n`;\n\nexport { PricingExampleButton };\n","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n var _obj$constructor;\n\n return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) || // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n constructor(props) {\n _defineProperty(this, \"_isAnalyticsEvent\", true);\n\n _defineProperty(this, \"clone\", () => {\n // just a shallow clone, don't change sub refs unless you want to\n // affect the original's too\n const payload = { ...this.payload\n };\n return new AnalyticsEvent({\n payload\n });\n });\n\n this.payload = props.payload;\n }\n\n update(updater) {\n if (typeof updater === 'function') {\n this.payload = updater(this.payload);\n }\n\n if (typeof updater === 'object') {\n this.payload = { ...this.payload,\n ...updater\n };\n }\n\n return this;\n }\n\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n var _obj$constructor;\n\n return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) || // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n\n _defineProperty(this, \"clone\", () => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot clone an event after it's been fired.\");\n }\n\n return null;\n }\n\n const context = [...this.context];\n const handlers = [...this.handlers];\n /**\n * A hacky \"deep clone\" of the object. This is limited in that it wont\n * support functions, regexs, Maps, Sets, etc, but none of those need to\n * be represented in our payload.\n */\n\n const payload = JSON.parse(JSON.stringify(this.payload));\n return new UIAnalyticsEvent({\n context,\n handlers,\n payload\n });\n });\n\n _defineProperty(this, \"fire\", channel => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn('Cannot fire an event twice.');\n }\n\n return;\n }\n\n this.handlers.forEach(handler => handler(this, channel));\n this.hasFired = true;\n });\n\n this.context = props.context || [];\n this.handlers = props.handlers || [];\n this.hasFired = false;\n }\n\n update(updater) {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot update an event after it's been fired.\");\n }\n\n return this;\n }\n\n return super.update(updater);\n }\n\n}","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n const analyticsContext = useAnalyticsContext();\n const createAnalyticsEvent = useCallbackOne(payload => {\n return new UIAnalyticsEvent({\n context: analyticsContext.getAtlaskitAnalyticsContext(),\n handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n payload\n });\n }, [analyticsContext]);\n return {\n createAnalyticsEvent\n };\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n return useContext(AnalyticsReactContext);\n};","import { useEffect, useRef } from 'react';\nexport const useTrackedRef = value => {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n};","import { createTheme } from '../utils/create-theme';\n\n// Create default global light theme\nconst {\n Provider,\n Consumer,\n useTheme\n} = createTheme(() => ({\n mode: 'light'\n}));\nexport { useTheme as useGlobalTheme };\nexport default {\n Provider,\n Consumer\n};","import React, { createContext, useCallback, useContext } from 'react';\n/**\n * createTheme is used to create a set of Providers and Consumers for theming components.\n * - Takes a default theme function; this theme function gets a set of props, and returns tokens\n * based on those props. An example of this default theme function is one that produces the standard\n * appearance of the component\n * - Returns three things - a Provider that allow for additional themes to be applied, a Consumer\n * that can get the current theme and fetch it, and a custom hook - useTheme which provides an alternate (although functionally the same) API\n * to the Consumer.\n */\nexport function createTheme(defaultGetTokens) {\n const emptyThemeFn = (getTokens, props) => getTokens(props);\n\n /**\n * Internally, Theme uses React Context, with internal providers and consumers.\n * The React Context passes only a function that gets props, and turns them into tokens. This\n * function gets mixed as more Providers with their own themes are added. This mixed function\n * is ultimately picked up by Consumers, which implement a context consumer internally to fetch\n * the theme.\n */\n const ThemeContext = /*#__PURE__*/createContext(defaultGetTokens);\n function useTheme(themeProps) {\n const theme = useContext(ThemeContext);\n const themeFn = theme || emptyThemeFn;\n const tokens = themeFn(themeProps);\n return tokens;\n }\n\n // The Theme Consumer takes a function as its child - this function takes tokens, and the\n // return value is generally a set of nodes with the tokens applied appropriately.\n function Consumer(props) {\n const {\n children,\n ...themeProps\n } = props;\n\n // @ts-ignore See issue for more info: https://github.com/Microsoft/TypeScript/issues/10727\n // Argument of type 'Pick ReactNode; }, Exclude>' is not assignable to parameter of type 'ThemeProps'.ts(2345)\n const tokens = useTheme(themeProps);\n // We add a fragment to ensure we don't break people upgrading.\n // Previously they may have been able to pass in undefined without things blowing up.\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(tokens));\n }\n\n /**\n * The Theme Provider takes regular nodes as its children, but also takes a *theme function*\n * - The theme function takes a set of props, as well as a function (getTokens) that can turn props into tokens.\n * - The getTokens function isn't called immediately - instead the props are passed\n * through a mix of parent theming functions\n * Children of this provider will receive this mixed theme\n */\n function Provider(props) {\n const themeFn = useContext(ThemeContext);\n const valueFn = props.value || emptyThemeFn;\n const mixedFn = useCallback(themeProps => valueFn(themeFn, themeProps), [themeFn, valueFn]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: mixedFn\n }, props.children);\n }\n return {\n Consumer,\n Provider,\n useTheme\n };\n}","import { B100, B200, B300, B400, B50, B75, DN10, DN200, DN30, DN80, DN90, N10, N20, N30, N40, N70, R300 } from '@atlaskit/theme/colors';\nconst radioThemeColors = {\n light: {\n background: `var(--ds-background-input, ${N10})`,\n backgroundHover: `var(--ds-background-input-hovered, ${N30})`,\n backgroundActive: `var(--ds-background-input-pressed, ${N30})`,\n backgroundChecked: `var(--ds-background-brand-bold, ${B400})`,\n backgroundCheckedHover: `var(--ds-background-brand-bold-hovered, ${B300})`,\n backgroundCheckedActive: `var(--ds-background-brand-bold-pressed, ${B50})`,\n backgroundDisabled: `var(--ds-background-input, ${N20})`,\n dotChecked: `var(--ds-text-inverse, ${N10})`,\n dotDisabled: `var(--ds-text-disabled, ${N70})`,\n dotActive: `var(--ds-text-inverse, ${B400})`,\n border: `var(--ds-border-input, ${N40})`,\n borderHover: `var(--ds-border-input, ${N40})`,\n borderDisabled: `var(--ds-background-disabled, ${N20})`,\n borderFocus: `var(--ds-border-focused, ${B100})`\n },\n dark: {\n background: `var(--ds-background-input, ${DN10})`,\n backgroundHover: `var(--ds-background-input-hovered, ${DN30})`,\n backgroundActive: `var(--ds-background-input-pressed, ${B200})`,\n backgroundChecked: `var(--ds-background-brand-bold, ${B400})`,\n backgroundCheckedHover: `var(--ds-background-brand-bold-hovered, ${B75})`,\n backgroundCheckedActive: `var(--ds-background-brand-bold-pressed, ${B200})`,\n backgroundDisabled: `var(--ds-background-input, ${DN10})`,\n dotChecked: `var(--ds-text-inverse, ${DN10})`,\n dotDisabled: `var(--ds-text-disabled, ${DN90})`,\n dotActive: `var(--ds-text-inverse, ${DN10})`,\n border: `var(--ds-border-input, ${DN80})`,\n borderHover: `var(--ds-border-input, ${DN200})`,\n borderDisabled: `var(--ds-background-disabled, ${DN10})`,\n borderFocus: `var(--ds-border-focused, ${B75})`\n }\n};\nexport default function getRadioCustomProperties(mode) {\n const radioColors = radioThemeColors[mode];\n return {\n '--local-background': radioColors.background,\n '--local-background-active': radioColors.backgroundActive,\n '--local-background-checked': radioColors.backgroundChecked,\n '--local-background-checked-active': radioColors.backgroundCheckedActive,\n '--local-background-checked-hover': radioColors.backgroundCheckedHover,\n '--local-background-disabled': radioColors.backgroundDisabled,\n '--local-background-hover': radioColors.backgroundHover,\n '--local-border': radioColors.border,\n '--local-border-disabled': radioColors.borderDisabled,\n '--local-border-hover': radioColors.borderHover,\n '--local-border-focus': radioColors.borderFocus,\n '--local-dot-active': radioColors.dotActive,\n '--local-dot-checked': radioColors.dotChecked,\n '--local-dot-disabled': radioColors.dotDisabled,\n '--local-invalid': `var(--ds-icon-danger, ${R300})`\n };\n}","import _extends from \"@babel/runtime/helpers/extends\";\n\n/** @jsx jsx */\nimport { forwardRef, memo, useMemo } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { usePlatformLeafEventHandler } from '@atlaskit/analytics-next/usePlatformLeafEventHandler';\nimport __noop from '@atlaskit/ds-lib/noop';\nimport { DN600, N80, N900 } from '@atlaskit/theme/colors';\nimport GlobalTheme from '@atlaskit/theme/components';\nimport { fontFamily as getFontFamily } from '@atlaskit/theme/constants';\nimport getRadioCustomProperties from './styles';\nconst packageName = \"@atlaskit/radio\";\nconst packageVersion = \"5.4.3\";\nconst fontFamily = getFontFamily();\nconst noop = __noop;\nconst labelPaddingStyles = css({\n padding: `${\"var(--ds-scale-025, 2px)\"} ${\"var(--ds-scale-050, 4px)\"}`\n});\nconst labelStyles = css({\n display: 'flex',\n boxSizing: 'border-box',\n position: 'relative',\n alignItems: 'flex-start',\n fontFamily: fontFamily,\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '&[data-disabled]': {\n color: `var(--ds-text-disabled, ${N80})`,\n cursor: 'not-allowed'\n }\n});\nconst lightLabelStyles = css({\n color: `var(--ds-text, ${N900})`\n});\nconst darkLabelStyles = css({\n color: `var(--ds-text, ${DN600})`\n});\nconst radioStyles = css({\n display: 'flex',\n\n /*\n The circle should be 14px * 14px centred in a 24px * 24px box.\n This is inclusive of a 2px border and inner circle with 2px radius.\n There is a Chrome bug that makes the circle become an oval and the\n inner circle not be centred at various zoom levels. This bug is fixed\n in all browsers if a scale of 14/24 is applied.\n */\n width: '24px',\n height: '24px',\n // TODO Delete this comment after verifying spacing token -> previous value `0`\n margin: \"var(--ds-scale-0, 0px)\",\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n backgroundColor: 'var(--radio-background-color)',\n\n /* Border should be 2px, multiply by 24/14 to offset scale */\n border: 'calc(2px * 12 / 7) solid var(--radio-border-color)',\n borderRadius: '50%',\n MozAppearance: 'none',\n outline: 'none',\n\n /*\n Change the variables --radio-background-color, --radio-border-color,\n -radio-dot-color and -radio-dot-opacity according to user interactions.\n All other variables are constant\n */\n '--radio-background-color': 'var(--local-background)',\n '--radio-border-color': 'var(--local-border)',\n '--radio-dot-color': 'var(--local-dot-checked)',\n '--radio-dot-opacity': 0,\n\n /* 24px * 7 / 12 === 14px height and width */\n transform: 'scale(calc(7 / 12))',\n transition: 'border-color 0.2s ease-in-out, background-color 0.2s ease-in-out',\n verticalAlign: 'top',\n WebkitAppearance: 'none',\n '&::after': {\n /* Height and width should by 4px, multiply by 24/14 to offset scale */\n width: 'calc(4px * 12 / 7)',\n height: 'calc(4px * 12 / 7)',\n position: 'absolute',\n background: 'var(--radio-dot-color)',\n borderRadius: '50%',\n content: \"''\",\n opacity: 'var(--radio-dot-opacity)',\n transition: 'background-color 0.2s ease-in-out, opacity 0.2s ease-in-out'\n },\n '&:hover': {\n '--radio-background-color': 'var(--local-background-hover)',\n '--radio-border-color': 'var(local-border-hover)'\n },\n '&:active': {\n '--radio-background-color': 'var(--local-background-active)'\n },\n '&:focus': {\n '--radio-border-color': 'var(--local-border-focus)'\n },\n '&:checked': {\n '--radio-background-color': 'var(--local-background-checked)',\n '--radio-border-color': 'var(--local-background-checked)',\n '--radio-dot-opacity': 1\n },\n '&:checked:hover': {\n '--radio-background-color': 'var(--local-background-checked-hover)',\n '--radio-border-color': 'var(--local-background-checked-hover)'\n },\n '&:checked:active': {\n '--radio-background-color': 'var(--local-background-checked-active)',\n '--radio-border-color': 'var(--local-border-hover)',\n '--radio-dot-color': 'var(--local-dot-active)'\n },\n '&:checked:focus': {\n '--radio-border-color': 'var(--local-border-focus)'\n },\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '&[data-invalid], &:checked[data-invalid]': {\n '--radio-border-color': 'var(--local-invalid)'\n },\n '&:disabled, &:disabled:hover, &:disabled:focus, &:disabled:active, &:disabled[data-invalid]': {\n cursor: 'not-allowed',\n '--radio-background-color': 'var(--local-background-disabled)',\n '--radio-border-color': 'var(--local-border-disabled)',\n '--radio-dot-color': 'var(--local-dot-disabled)'\n },\n '&:checked:disabled': {\n '--radio-border-color': 'transparent' // TODO: Investigate token solution\n\n }\n});\nconst RadioWithMode = /*#__PURE__*/forwardRef(function Radio(props, ref) {\n const {\n ariaLabel,\n isDisabled = false,\n isRequired,\n isInvalid = false,\n isChecked = false,\n label,\n mode,\n name,\n onChange = noop,\n value,\n testId,\n analyticsContext,\n // events and all other input props\n ...rest\n } = props;\n const onChangeAnalytics = usePlatformLeafEventHandler({\n fn: onChange,\n action: 'changed',\n analyticsData: analyticsContext,\n componentName: 'radio',\n packageName,\n packageVersion\n });\n const radioCustomProperties = useMemo(() => css(getRadioCustomProperties(mode)), [mode]);\n return (// https://product-fabric.atlassian.net/browse/DST-1971\n // eslint-disable-next-line jsx-a11y/label-has-associated-control,jsx-a11y/label-has-for\n jsx(\"label\", {\n \"data-testid\": testId && `${testId}--radio-label`,\n \"data-disabled\": isDisabled ? 'true' : undefined // TODO these will no longer be dynamic styles when legacy theming removed\n // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage\n ,\n css: [labelStyles, mode === 'light' ? lightLabelStyles : darkLabelStyles]\n }, jsx(\"input\", _extends({}, rest, {\n \"aria-label\": ariaLabel,\n checked: isChecked,\n disabled: isDisabled,\n name: name,\n onChange: onChangeAnalytics,\n required: isRequired,\n type: \"radio\",\n value: value,\n \"data-testid\": testId && `${testId}--radio-input` // isInvalid is used in a nonstandard way so cannot\n // use :invalid selector\n ,\n \"data-invalid\": isInvalid ? 'true' : undefined // TODO radioCustomProperties can be defined at top of file when legacy theming removed\n // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage\n ,\n css: [radioStyles, radioCustomProperties],\n ref: ref\n })), label ? jsx(\"span\", {\n css: labelPaddingStyles\n }, label) : null)\n );\n});\n/**\n * __Radio__\n *\n * A radio input allows users to select only one option from a number of choices. Radio is generally displayed in a radio group.\n *\n * - [Examples](https://atlassian.design/components/radio/examples)\n * - [Code](https://atlassian.design/components/radio/code)\n * - [Usage](https://atlassian.design/components/radio/usage)\n */\n\nconst Radio = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Radio(props, ref) {\n return jsx(GlobalTheme.Consumer, null, ({\n mode\n }) => jsx(RadioWithMode, _extends({}, props, {\n ref: ref,\n mode: mode\n })));\n}));\nexport default Radio;","/**\n * An empty function which does nothing.\n */\n// eslint-disable-next-line @repo/internal/react/use-noop\nexport default function noop() {}","import { useCallback } from 'react';\nimport { useAnalyticsEvents } from './useAnalyticsEvents';\nimport { useTrackedRef } from './useTrackedRef';\n// WARNING: This hook will only function correctly for leaf node components - as in\n// no children inside the component will require analytics themselves.\n// Ignoring this warning will mean the analytics context of child components will not\n// include the context of this component, .e.g, lost data.\n// If you are going to have child components that require analytics use withAnalytics\n// or AnalyticsContext component instead.\nexport function usePlatformLeafEventHandler({\n fn,\n action,\n componentName,\n actionSubject,\n packageName,\n packageVersion,\n analyticsData\n}) {\n const {\n createAnalyticsEvent\n } = useAnalyticsEvents(); // We put analyticsData and fn in a ref so that we don't need to break\n // memoization.\n // Generally these could be defined by consumers inline\n // and so we do this to avoid breaking memoization of useCallback\n\n const dataRef = useTrackedRef(analyticsData);\n const fnRef = useTrackedRef(fn);\n const handler = useCallback(value => {\n const analyticsEvent = createAnalyticsEvent({\n action,\n actionSubject: actionSubject || componentName,\n attributes: {\n componentName,\n packageName,\n packageVersion\n }\n }); // To avoid wrapping this component in AnalyticsContext we manually\n // push the parent context's meta data into the context.\n // Note: this new 'context'\n\n const context = {\n componentName,\n packageName,\n packageVersion,\n ...dataRef.current\n };\n analyticsEvent.context.push(context); // fire an event on the atlaskit channel\n\n const clone = analyticsEvent.clone();\n\n if (clone) {\n clone.fire('atlaskit');\n }\n\n fnRef.current(value, analyticsEvent);\n }, [// These are strings and won't change\n action, componentName, actionSubject, packageName, packageVersion, // This function is memoized in the context\n createAnalyticsEvent, // these are a stable ref because of the useTrackedRef hook\n dataRef, fnRef]);\n return handler;\n}","import { PricingPeriod } from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport { N800, B400 } from '@atlaskit/theme/colors';\nimport React, { ChangeEvent } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDesktopMediaQuery } from '../hooks';\nimport { usePriceFinderStore } from '../store';\nimport { deviceMediaQueries } from '../utils/constants';\nimport { PricingExampleButton } from './pricing-example/pricing-example-button';\nimport { Radio } from '@atlaskit/radio';\n\ntype BillingPeriodSelectorProps = {\n exampleShown: boolean;\n onShowHideExampleClick: (show: boolean) => void;\n};\nconst BillingPeriodSelector = ({\n exampleShown,\n onShowHideExampleClick\n}: BillingPeriodSelectorProps) => {\n const intl = useIntl();\n const isDesktop = useDesktopMediaQuery();\n const [{ billingCycle }, { updateBillingCycle }] = usePriceFinderStore();\n\n const onBillingCycleChange = (event: ChangeEvent): void => {\n void updateBillingCycle(event.target.value as PricingPeriod);\n };\n\n return (\n <>\n \n \n \n\n \n \n \n \n \n \n\n {isDesktop && (\n \n {\n onShowHideExampleClick(!exampleShown);\n }}\n >\n {exampleShown ? (\n \n ) : (\n \n )}\n \n \n )}\n >\n );\n};\n\nconst HeaderMessage = styled.h4`\n font-size: 16px;\n grid-column: 2;\n grid-row: 3;\n letter-spacing: 0.3px;\n line-height: 20px;\n margin: 0;\n padding-right: 30px;\n padding-top: 15px;\n\n ${deviceMediaQueries.desktop} {\n display: inline;\n font-size: 20px;\n line-height: 29px;\n padding-top: 2px;\n }\n`;\n\nconst billingToggleBase = `\n grid-row: 3;\n display:flex;\n label {\n font-family: Charlie Text;\n font-weight: 400;\n color: ${N800};\n cursor: pointer;\n left: -5px;\n width: fit-content;\n align-items: center;\n letter-spacing:.3px;\n\n\n ${deviceMediaQueries.desktop} { \n font-family: Charlie Display;\n font-size: 20px;\n }\n }\n\n\n \n input {\n cursor: pointer;\n\n + span {\n padding-left: 6px;\n }\n \n ${deviceMediaQueries.desktop} {\n + span {\n padding-left: 11px;\n }\n width: 24px;\n height: 24px;\n background-color: white;\n border-color: ${B400};\n border-width: 2px;\n transform: none;\n\n &:after {\n width: 14px;\n height: 14px;\n background-color: ${B400};\n }\n &:focus-visible {\n box-shadow: 0px 0px 3px 3px ${B400}; \n &:after {\n width: 14px;\n height: 14px;\n background-color: ${B400};\n }\n }\n }\n }\n\n ${deviceMediaQueries.tablet} {\n grid-row: 4;\n }\n`;\n\nconst BillingToggle = styled.div`\n ${billingToggleBase}\n grid-column: 3;\n letter-spacing: 0.3px;\n\n ${deviceMediaQueries.tablet} {\n display: flex;\n\n label {\n margin-left: 0;\n padding: 15px;\n padding-left: 0;\n }\n }\n`;\n\nconst AnnualBillingToggle = styled.div`\n ${billingToggleBase}\n grid-column: 4;\n padding-left: 30px;\n\n ${deviceMediaQueries.desktop} {\n padding-left: 42px;\n }\n`;\n\nconst ShowHideExample = styled.div`\n grid-column: 5;\n grid-row: 3;\n button {\n line-height: 14px;\n margin-left: 30px;\n\n ${deviceMediaQueries.desktop} {\n line-height: 32px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n`;\n\nexport { BillingPeriodSelector };\n","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n constructor(props) {\n _defineProperty(this, \"_isAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n // just a shallow clone, don't change sub refs unless you want to\n // affect the original's too\n const payload = {\n ...this.payload\n };\n return new AnalyticsEvent({\n payload\n });\n });\n this.payload = props.payload;\n }\n update(updater) {\n if (typeof updater === 'function') {\n this.payload = updater(this.payload);\n }\n if (typeof updater === 'object') {\n this.payload = {\n ...this.payload,\n ...updater\n };\n }\n return this;\n }\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot clone an event after it's been fired.\");\n }\n return null;\n }\n const context = [...this.context];\n const handlers = [...this.handlers];\n\n /**\n * A hacky \"deep clone\" of the object. This is limited in that it wont\n * support functions, regexs, Maps, Sets, etc, but none of those need to\n * be represented in our payload.\n */\n const payload = JSON.parse(JSON.stringify(this.payload));\n return new UIAnalyticsEvent({\n context,\n handlers,\n payload\n });\n });\n _defineProperty(this, \"fire\", channel => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn('Cannot fire an event twice.');\n }\n return;\n }\n this.handlers.forEach(handler => handler(this, channel));\n this.hasFired = true;\n });\n this.context = props.context || [];\n this.handlers = props.handlers || [];\n this.hasFired = false;\n }\n update(updater) {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot update an event after it's been fired.\");\n }\n return this;\n }\n return super.update(updater);\n }\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n return useContext(AnalyticsReactContext);\n};","import { useEffect, useRef } from 'react';\nexport const useTrackedRef = value => {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n};","import { useCallback } from 'react';\nimport { useAnalyticsEvents } from './useAnalyticsEvents';\nimport { useTrackedRef } from './useTrackedRef';\n// WARNING: This hook will only function correctly for leaf node components - as in\n// no children inside the component will require analytics themselves.\n// Ignoring this warning will mean the analytics context of child components will not\n// include the context of this component, .e.g, lost data.\n// If you are going to have child components that require analytics use withAnalytics\n// or AnalyticsContext component instead.\nexport function usePlatformLeafEventHandler({\n fn,\n action,\n componentName,\n actionSubject,\n packageName,\n packageVersion,\n analyticsData\n}) {\n const {\n createAnalyticsEvent\n } = useAnalyticsEvents();\n\n // We put analyticsData and fn in a ref so that we don't need to break\n // memoization.\n // Generally these could be defined by consumers inline\n // and so we do this to avoid breaking memoization of useCallback\n const dataRef = useTrackedRef(analyticsData);\n const fnRef = useTrackedRef(fn);\n const handler = useCallback(value => {\n const analyticsEvent = createAnalyticsEvent({\n action,\n actionSubject: actionSubject || componentName,\n attributes: {\n componentName,\n packageName,\n packageVersion\n }\n });\n\n // To avoid wrapping this component in AnalyticsContext we manually\n // push the parent context's meta data into the context.\n // Note: this new 'context'\n const context = {\n componentName,\n packageName,\n packageVersion,\n ...dataRef.current\n };\n analyticsEvent.context.push(context);\n\n // fire an event on the atlaskit channel\n const clone = analyticsEvent.clone();\n if (clone) {\n clone.fire('atlaskit');\n }\n fnRef.current(value, analyticsEvent);\n }, [\n // These are strings and won't change\n action, componentName, actionSubject, packageName, packageVersion,\n // This function is memoized in the context\n createAnalyticsEvent,\n // these are a stable ref because of the useTrackedRef hook\n dataRef, fnRef]);\n return handler;\n}","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n const analyticsContext = useAnalyticsContext();\n const createAnalyticsEvent = useCallbackOne(payload => {\n return new UIAnalyticsEvent({\n context: analyticsContext.getAtlaskitAnalyticsContext(),\n handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n payload\n });\n }, [analyticsContext]);\n return {\n createAnalyticsEvent\n };\n}","import { createTheme } from '../utils/create-theme';\n\n// Create default global light theme\nconst {\n Provider,\n Consumer,\n useTheme\n} = createTheme(() => ({\n mode: 'light'\n}));\nexport { useTheme as useGlobalTheme };\nexport default {\n Provider,\n Consumer\n};","import React, { createContext, useCallback, useContext } from 'react';\n/**\n * createTheme is used to create a set of Providers and Consumers for theming components.\n * - Takes a default theme function; this theme function gets a set of props, and returns tokens\n * based on those props. An example of this default theme function is one that produces the standard\n * appearance of the component\n * - Returns three things - a Provider that allow for additional themes to be applied, a Consumer\n * that can get the current theme and fetch it, and a custom hook - useTheme which provides an alternate (although functionally the same) API\n * to the Consumer.\n */\nexport function createTheme(defaultGetTokens) {\n const emptyThemeFn = (getTokens, props) => getTokens(props);\n\n /**\n * Internally, Theme uses React Context, with internal providers and consumers.\n * The React Context passes only a function that gets props, and turns them into tokens. This\n * function gets mixed as more Providers with their own themes are added. This mixed function\n * is ultimately picked up by Consumers, which implement a context consumer internally to fetch\n * the theme.\n */\n const ThemeContext = /*#__PURE__*/createContext(defaultGetTokens);\n function useTheme(themeProps) {\n const theme = useContext(ThemeContext);\n const themeFn = theme || emptyThemeFn;\n const tokens = themeFn(themeProps);\n return tokens;\n }\n\n // The Theme Consumer takes a function as its child - this function takes tokens, and the\n // return value is generally a set of nodes with the tokens applied appropriately.\n function Consumer(props) {\n const {\n children,\n ...themeProps\n } = props;\n\n // @ts-ignore See issue for more info: https://github.com/Microsoft/TypeScript/issues/10727\n // Argument of type 'Pick ReactNode; }, Exclude>' is not assignable to parameter of type 'ThemeProps'.ts(2345)\n const tokens = useTheme(themeProps);\n // We add a fragment to ensure we don't break people upgrading.\n // Previously they may have been able to pass in undefined without things blowing up.\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(tokens));\n }\n\n /**\n * The Theme Provider takes regular nodes as its children, but also takes a *theme function*\n * - The theme function takes a set of props, as well as a function (getTokens) that can turn props into tokens.\n * - The getTokens function isn't called immediately - instead the props are passed\n * through a mix of parent theming functions\n * Children of this provider will receive this mixed theme\n */\n function Provider(props) {\n const themeFn = useContext(ThemeContext);\n const valueFn = props.value || emptyThemeFn;\n const mixedFn = useCallback(themeProps => valueFn(themeFn, themeProps), [themeFn, valueFn]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: mixedFn\n }, props.children);\n }\n return {\n Consumer,\n Provider,\n useTheme\n };\n}","var _ref, _process, _process$env, _process2, _process2$env;\n// We can't rely on NODE_ENV === 'test' if its value is already configured by the consumer to some other value, so better to use JEST_WORKER_ID\n// https://jestjs.io/docs/environment-variables#jest_worker_id\nconst TESTS_MODE = (_ref = (globalThis === null || globalThis === void 0 ? void 0 : (_process = globalThis.process) === null || _process === void 0 ? void 0 : (_process$env = _process.env) === null || _process$env === void 0 ? void 0 : _process$env.JEST_WORKER_ID) !== undefined) !== null && _ref !== void 0 ? _ref : false;\nconst DEBUG_MODE = !TESTS_MODE && (globalThis === null || globalThis === void 0 ? void 0 : (_process2 = globalThis.process) === null || _process2 === void 0 ? void 0 : (_process2$env = _process2.env) === null || _process2$env === void 0 ? void 0 : _process2$env.NODE_ENV) !== 'production';\nexport const debug = (...args) => {\n if (!DEBUG_MODE) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console.debug(...args);\n};","import { debug } from './debug';\nconst pkgName = '@atlaskit/platform-feature-flags';\nexport const PFF_GLOBAL_KEY = '__PLATFORM_FEATURE_FLAGS__';\nconst hasProcessEnv = typeof process !== 'undefined' && typeof process.env !== 'undefined';\n\n// FF global overrides can be configured by test runners or Storybook\nconst ENV_ENABLE_PLATFORM_FF = hasProcessEnv ?\n// Use global \"process\" variable and process.env['FLAG_NAME'] syntax, so it can be replaced by webpack DefinePlugin\nprocess.env['ENABLE_PLATFORM_FF'] === 'true' : false;\n\n// STORYBOOK_ENABLE_PLATFORM_FF is included as storybook only allows env vars prefixed with STORYBOOK\n// https://github.com/storybookjs/storybook/issues/12270\n\nconst ENV_STORYBOOK_ENABLE_PLATFORM_FF = hasProcessEnv ?\n// Use global \"process\" variable and process.env['FLAG_NAME'] syntax, so it can be replaced by webpack DefinePlugin\nprocess.env['STORYBOOK_ENABLE_PLATFORM_FF'] === 'true' : false;\nconst ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE = ENV_ENABLE_PLATFORM_FF || ENV_STORYBOOK_ENABLE_PLATFORM_FF;\nconst DEFAULT_PFF_GLOBAL = {\n // In development mode we want to capture any feature flag checks that happen using the default resolver and log this result when the resolver is replaced.\n // This is because evaluating feature flags when the resolver/FF client is loaded asynchronously could cause unexpected issues.\n earlyResolvedFlags: new Map(),\n booleanResolver: function (flagKey) {\n if (process.env.NODE_ENV !== 'production') {\n const unresolvedFlagCount = this.earlyResolvedFlags.get(flagKey) || 0;\n this.earlyResolvedFlags.set(flagKey, unresolvedFlagCount + 1);\n }\n return false;\n }\n};\nconst globalVar = typeof window !== 'undefined' ? window : globalThis;\nglobalVar[PFF_GLOBAL_KEY] = globalVar[PFF_GLOBAL_KEY] || DEFAULT_PFF_GLOBAL;\nexport function setBooleanResolver(resolver) {\n globalVar[PFF_GLOBAL_KEY].booleanResolver = resolver;\n if (process.env.NODE_ENV !== 'production') {\n var _globalVar$PFF_GLOBAL, _globalVar$PFF_GLOBAL2;\n if (((_globalVar$PFF_GLOBAL = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL === void 0 ? void 0 : (_globalVar$PFF_GLOBAL2 = _globalVar$PFF_GLOBAL.earlyResolvedFlags) === null || _globalVar$PFF_GLOBAL2 === void 0 ? void 0 : _globalVar$PFF_GLOBAL2.size) > 0) {\n debug(`[%s]: The following list of Feature Flags were called, the following number of times, before setBooleanResolver.`, pkgName, Array.from(globalVar[PFF_GLOBAL_KEY].earlyResolvedFlags.entries()));\n globalVar[PFF_GLOBAL_KEY].earlyResolvedFlags.clear();\n }\n }\n}\nexport function resolveBooleanFlag(flagKey) {\n if (ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE) {\n debug('[%s]: The feature flags were enabled while running tests. The flag \"%s\" will be always enabled.', pkgName, flagKey);\n return true;\n }\n try {\n var _globalVar$PFF_GLOBAL3;\n const result = (_globalVar$PFF_GLOBAL3 = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL3 === void 0 ? void 0 : _globalVar$PFF_GLOBAL3.booleanResolver(flagKey);\n if (typeof result !== 'boolean') {\n // eslint-disable-next-line no-console\n console.warn(`${flagKey} resolved to a non-boolean value, returning false for safety`);\n return false;\n }\n return result;\n } catch (e) {\n return false;\n }\n}","import { setBooleanResolver, resolveBooleanFlag } from './resolvers';\n\n/**\n * This creates a boolean flag resolver that allows calls to `getBooleanFF` inside of Platform components to use a Product's\n * feature flag client and LD project, rather than installing a feature flag client of their own, or passing those flags in via props.\n *\n * @param flagResolver\n */\nexport function setBooleanFeatureFlagResolver(flagResolver) {\n setBooleanResolver(flagResolver);\n}\n\n/**\n * Returns the value of a feature flag. If the flag does not resolve, it returns the \"false\" as a default value.\n *\n * @param name\n */\nexport function getBooleanFF(name) {\n return resolveBooleanFlag(name);\n}","import deprecationWarning from '@atlaskit/ds-lib/deprecation-warning';\nimport { B200, N30A, skeleton as skeletonColor } from './colors';\nexport const CHANNEL = '__ATLASKIT_THEME__';\nexport const DEFAULT_THEME_MODE = 'light';\nexport const THEME_MODES = ['light', 'dark'];\n\n/*\n These theme values are expressed as functions so that if we decide to make\n them dependent on props in the future, it wouldn't require a significant\n refactor everywhere they are being used.\n*/\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('border.radius', '3px')` instead.\n */\nexport const borderRadius = () => 3;\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('space.100', '8px')` instead with any of the space tokens.\n * Available space tokens can be found on {@link https://atlassian.design/foundations/spacing/#scale}\n */\nexport const gridSize = () => 8;\nexport const fontSize = () => 14;\nexport const fontSizeSmall = () => 11;\nexport const fontFamily = () => `-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\nexport const codeFontFamily = () => `'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace`;\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const focusRing = (color = `var(--ds-border-focused, ${B200})`, outlineWidth = gridSize() / 4) => {\n deprecationWarning('@atlaskit/theme', 'focus ring mixin', 'Please use `@atlaskit/focus-ring` instead.');\n return `\n &:focus {\n outline: none;\n box-shadow: 0px 0px 0px ${outlineWidth}px ${color};\n }\n`;\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const noFocusRing = () => `\n box-shadow: none;\n`;\nexport const layers = {\n card: () => 100,\n navigation: () => 200,\n dialog: () => 300,\n layer: () => 400,\n blanket: () => 500,\n modal: () => 510,\n flag: () => 600,\n spotlight: () => 700,\n tooltip: () => 9999\n};\n\n// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const visuallyHidden = () => {\n deprecationWarning('@atlaskit/theme', 'visually hidden mixin', 'Please use `@atlaskit/visually-hidden` instead.');\n return {\n border: '0 !important',\n clip: 'rect(1px, 1px, 1px, 1px) !important',\n height: '1px !important',\n overflow: 'hidden !important',\n padding: '0 !important',\n position: 'absolute !important',\n width: '1px !important',\n whiteSpace: 'nowrap !important'\n };\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const assistive = visuallyHidden;\n\n/**\n * These styles are mirrored in:\n * packages/design-system/menu/src/internal/components/skeleton-shimmer.tsx\n *\n * Please update both.\n */\nexport const skeletonShimmer = () => ({\n css: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate'\n },\n keyframes: {\n from: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`\n },\n to: {\n backgroundColor: `var(--ds-skeleton-subtle, ${N30A})`\n }\n }\n});","import { CHANNEL, DEFAULT_THEME_MODE, THEME_MODES } from '../constants';\n// Resolves the different types of theme objects in the current API\nexport default function getTheme(props) {\n if (props && props.theme) {\n // Theme is the global Atlaskit theme\n if (CHANNEL in props.theme) {\n return props.theme[CHANNEL];\n }\n // User has provided alternative modes\n else if ('mode' in props.theme && THEME_MODES.includes(props.theme.mode)) {\n return props.theme;\n }\n }\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE\n };\n}","/* eslint-disable prefer-rest-params */\n\nimport getTheme from './get-theme';\n// Unpack custom variants, and get correct value for the current theme\nfunction themedVariants(variantProp, variants) {\n return props => {\n const theme = getTheme(props);\n if (props && props[variantProp] && variants) {\n const modes = variants[props[variantProp]];\n if (modes && modes[theme.mode]) {\n const value = modes[theme.mode];\n if (value) {\n return value;\n } // TS believes value can be undefined\n }\n }\n\n return '';\n };\n}\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-4693 Internal documentation for deprecation (no external access)}\n */\nexport default function themed(modesOrVariant, variantModes) {\n if (typeof modesOrVariant === 'string') {\n return themedVariants(modesOrVariant, variantModes);\n }\n const modes = modesOrVariant;\n return props => {\n // Get theme from the user's props\n const theme = getTheme(props);\n // User isn't required to provide both light and dark values\n if (theme.mode in modes) {\n const value = modes[theme.mode]; // TS believes value can be undefined\n if (value) {\n return value;\n }\n }\n return '';\n };\n}","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */\n\nimport themed from './utils/themed';\n\n// Reds\nexport const R50 = '#FFEBE6';\nexport const R75 = '#FFBDAD';\nexport const R100 = '#FF8F73';\nexport const R200 = '#FF7452';\nexport const R300 = '#FF5630';\nexport const R400 = '#DE350B';\nexport const R500 = '#BF2600';\n\n// Yellows\nexport const Y50 = '#FFFAE6';\nexport const Y75 = '#FFF0B3';\nexport const Y100 = '#FFE380';\nexport const Y200 = '#FFC400';\nexport const Y300 = '#FFAB00';\nexport const Y400 = '#FF991F';\nexport const Y500 = '#FF8B00';\n\n// Greens\nexport const G50 = '#E3FCEF';\nexport const G75 = '#ABF5D1';\nexport const G100 = '#79F2C0';\nexport const G200 = '#57D9A3';\nexport const G300 = '#36B37E';\nexport const G400 = '#00875A';\nexport const G500 = '#006644';\n\n// Blues\nexport const B50 = '#DEEBFF';\nexport const B75 = '#B3D4FF';\nexport const B100 = '#4C9AFF';\nexport const B200 = '#2684FF';\nexport const B300 = '#0065FF';\nexport const B400 = '#0052CC';\nexport const B500 = '#0747A6';\n\n// Purples\nexport const P50 = '#EAE6FF';\nexport const P75 = '#C0B6F2';\nexport const P100 = '#998DD9';\nexport const P200 = '#8777D9';\nexport const P300 = '#6554C0';\nexport const P400 = '#5243AA';\nexport const P500 = '#403294';\n\n// Teals\nexport const T50 = '#E6FCFF';\nexport const T75 = '#B3F5FF';\nexport const T100 = '#79E2F2';\nexport const T200 = '#00C7E6';\nexport const T300 = '#00B8D9';\nexport const T400 = '#00A3BF';\nexport const T500 = '#008DA6';\n\n// Neutrals\nexport const N0 = '#FFFFFF';\nexport const N10 = '#FAFBFC';\nexport const N20 = '#F4F5F7';\nexport const N30 = '#EBECF0';\nexport const N40 = '#DFE1E6';\nexport const N50 = '#C1C7D0';\nexport const N60 = '#B3BAC5';\nexport const N70 = '#A5ADBA';\nexport const N80 = '#97A0AF';\nexport const N90 = '#8993A4';\nexport const N100 = '#7A869A';\nexport const N200 = '#6B778C';\nexport const N300 = '#5E6C84';\nexport const N400 = '#505F79';\nexport const N500 = '#42526E';\nexport const N600 = '#344563';\nexport const N700 = '#253858';\nexport const N800 = '#172B4D';\n\n// ATTENTION: update the tints if you update this\nexport const N900 = '#091E42';\n\n// Each tint is made of N900 and an alpha channel\nexport const N10A = 'rgba(9, 30, 66, 0.02)';\nexport const N20A = 'rgba(9, 30, 66, 0.04)';\nexport const N30A = 'rgba(9, 30, 66, 0.08)';\nexport const N40A = 'rgba(9, 30, 66, 0.13)';\nexport const N50A = 'rgba(9, 30, 66, 0.25)';\nexport const N60A = 'rgba(9, 30, 66, 0.31)';\nexport const N70A = 'rgba(9, 30, 66, 0.36)';\nexport const N80A = 'rgba(9, 30, 66, 0.42)';\nexport const N90A = 'rgba(9, 30, 66, 0.48)';\nexport const N100A = 'rgba(9, 30, 66, 0.54)';\nexport const N200A = 'rgba(9, 30, 66, 0.60)';\nexport const N300A = 'rgba(9, 30, 66, 0.66)';\nexport const N400A = 'rgba(9, 30, 66, 0.71)';\nexport const N500A = 'rgba(9, 30, 66, 0.77)';\nexport const N600A = 'rgba(9, 30, 66, 0.82)';\nexport const N700A = 'rgba(9, 30, 66, 0.89)';\nexport const N800A = 'rgba(9, 30, 66, 0.95)';\n\n// Dark Mode Neutrals\nexport const DN900 = '#E6EDFA';\nexport const DN800 = '#DCE5F5';\nexport const DN700 = '#CED9EB';\nexport const DN600 = '#B8C7E0';\nexport const DN500 = '#ABBBD6';\nexport const DN400 = '#9FB0CC';\nexport const DN300 = '#8C9CB8';\nexport const DN200 = '#7988A3';\nexport const DN100 = '#67758F';\nexport const DN90 = '#56637A';\nexport const DN80 = '#455166';\nexport const DN70 = '#3B475C';\nexport const DN60 = '#313D52';\nexport const DN50 = '#283447';\nexport const DN40 = '#202B3D';\nexport const DN30 = '#1B2638';\nexport const DN20 = '#121A29';\nexport const DN10 = '#0E1624';\n\n// ATTENTION: update the tints if you update this\nexport const DN0 = '#0D1424';\n\n// Each dark tint is made of DN0 and an alpha channel\nexport const DN800A = 'rgba(13, 20, 36, 0.06)';\nexport const DN700A = 'rgba(13, 20, 36, 0.14)';\nexport const DN600A = 'rgba(13, 20, 36, 0.18)';\nexport const DN500A = 'rgba(13, 20, 36, 0.29)';\nexport const DN400A = 'rgba(13, 20, 36, 0.36)';\nexport const DN300A = 'rgba(13, 20, 36, 0.40)';\nexport const DN200A = 'rgba(13, 20, 36, 0.47)';\nexport const DN100A = 'rgba(13, 20, 36, 0.53)';\nexport const DN90A = 'rgba(13, 20, 36, 0.63)';\nexport const DN80A = 'rgba(13, 20, 36, 0.73)';\nexport const DN70A = 'rgba(13, 20, 36, 0.78)';\nexport const DN60A = 'rgba(13, 20, 36, 0.81)';\nexport const DN50A = 'rgba(13, 20, 36, 0.85)';\nexport const DN40A = 'rgba(13, 20, 36, 0.89)';\nexport const DN30A = 'rgba(13, 20, 36, 0.92)';\nexport const DN20A = 'rgba(13, 20, 36, 0.95)';\nexport const DN10A = 'rgba(13, 20, 36, 0.97)';\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface')` instead.\n */\nexport const background = themed({\n light: `var(--ds-surface, ${N0})`,\n dark: `var(--ds-surface, ${DN30})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.selected')` instead.\n */\nexport const backgroundActive = themed({\n light: `var(--ds-background-selected, ${B50})`,\n dark: `var(--ds-background-selected, ${B75})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.neutral.hovered')` instead.\n */\nexport const backgroundHover = themed({\n light: `var(--ds-background-neutral-hovered, ${N30})`,\n dark: `var(--ds-background-neutral-hovered, ${DN70})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface.overlay')` instead.\n */\nexport const backgroundOnLayer = themed({\n light: `var(--ds-surface-overlay, ${N0})`,\n dark: `var(--ds-surface-overlay, ${DN50})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const text = themed({\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const textHover = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.selected')` instead.\n */\nexport const textActive = themed({\n light: `var(--ds-text-selected, ${B400})`,\n dark: `var(--ds-text-selected, ${B400})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use token('color.text.subtlest', N200) instead. Use DN200 as the fallback color for dark mode.\n */\nexport const placeholderText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const heading = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleHeading = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\nexport const codeBlock = themed({\n light: N20,\n dark: DN50\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link')` instead.\n */\nexport const link = themed({\n light: `var(--ds-link, ${B400})`,\n dark: `var(--ds-link, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkHover = themed({\n light: `var(--ds-link-pressed, ${B300})`,\n dark: `var(--ds-link-pressed, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkActive = themed({\n light: `var(--ds-link-pressed, ${B500})`,\n dark: `var(--ds-link-pressed, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.border.focused', B200)` instead.\n */\nexport const linkOutline = themed({\n light: `var(--ds-border-focused, ${B200})`,\n dark: `var(--ds-border-focused, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.brand.bold')` instead.\n */\nexport const primary = themed({\n light: `var(--ds-background-brand-bold, ${B400})`,\n dark: `var(--ds-background-brand-bold, ${B100})`\n});\nexport const blue = themed({\n light: B400,\n dark: B100\n});\nexport const teal = themed({\n light: T300,\n dark: T200\n});\nexport const purple = themed({\n light: P300,\n dark: P100\n});\nexport const red = themed({\n light: R300,\n dark: R300\n});\nexport const yellow = themed({\n light: Y300,\n dark: Y300\n});\nexport const green = themed({\n light: G300,\n dark: G300\n});\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.skeleton')` instead.\n */\nexport const skeleton = () => `var(--ds-skeleton, ${N20A})`;","import { getBooleanFF } from '@atlaskit/platform-feature-flags';\nimport { B100, B75, DN10, DN200, DN30, DN40, DN600, DN90, N0, N10, N100, N200, N30, N40, N70, N900 } from '@atlaskit/theme/colors';\nexport const disabledBackgroundColor = {\n light: `var(--ds-background-disabled, ${N10})`,\n dark: `var(--ds-background-disabled, ${DN10})`\n};\nexport const defaultBackgroundColor = {\n light: `var(--ds-background-input, ${N10})`,\n dark: `var(--ds-background-input, ${DN10})`\n};\nexport const defaultBackgroundColorFocus = {\n light: `var(--ds-background-input-pressed, ${N0})`,\n dark: `var(--ds-background-input-pressed, ${DN10})`\n};\nexport const defaultBackgroundColorHover = {\n light: `var(--ds-background-input-hovered, ${N30})`,\n dark: `var(--ds-background-input-hovered, ${DN30})`\n};\nexport const defaultBorderColor = {\n light: `var(--ds-border-input, ${getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? N100 : N40})`,\n dark: `var(--ds-border-input, ${getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? DN200 : DN40})`\n};\nexport const defaultBorderColorFocus = {\n light: `var(--ds-border-focused, ${B100})`,\n dark: `var(--ds-border-focused, ${B75})`\n};\nexport const subtleBorderColorHover = {\n light: \"var(--ds-border-input, transparent)\",\n dark: \"var(--ds-border-input, transparent)\"\n};\nexport const transparent = {\n light: 'transparent',\n dark: 'transparent'\n};\nexport const textColor = {\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n};\nexport const disabledTextColor = {\n light: `var(--ds-text-disabled, ${N70})`,\n dark: `var(--ds-text-disabled, ${DN90})`\n};\nexport const placeholderTextColor = {\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n};","import { getBooleanFF } from '@atlaskit/platform-feature-flags';\nimport { R400 } from '@atlaskit/theme/colors';\nimport { codeFontFamily, fontFamily, fontSize as getFontSize,\n// eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports\ngridSize as getGridSize } from '@atlaskit/theme/constants';\nimport * as componentTokens from './component-tokens';\nconst fontSize = getFontSize();\nconst gridSize = getGridSize();\nconst disabledRules = {\n light: {\n backgroundColor: componentTokens.disabledBackgroundColor.light,\n backgroundColorHover: componentTokens.disabledBackgroundColor.light,\n borderColor: componentTokens.disabledBackgroundColor.light,\n textColor: componentTokens.disabledTextColor.light\n },\n dark: {\n backgroundColor: componentTokens.disabledBackgroundColor.dark,\n backgroundColorHover: componentTokens.disabledBackgroundColor.dark,\n borderColor: componentTokens.disabledBackgroundColor.dark,\n textColor: componentTokens.disabledTextColor.dark\n }\n};\nconst invalidRules = {\n light: {\n // ----\n backgroundColor: componentTokens.defaultBackgroundColor.light,\n backgroundColorHover: componentTokens.defaultBackgroundColorHover.light,\n // ^--- the above values aren't used directly they remain because its exposed by the `textFieldColors` export\n backgroundColorFocus: componentTokens.defaultBackgroundColorFocus.light,\n borderColor: `var(--ds-border-danger, ${R400})`,\n borderColorFocus: componentTokens.defaultBorderColorFocus.light\n },\n dark: {\n // ----\n backgroundColor: componentTokens.defaultBackgroundColor.dark,\n backgroundColorHover: componentTokens.defaultBackgroundColorHover.dark,\n // ^--- the above values aren't used directly they remain because its exposed by the `textFieldColors` export\n backgroundColorFocus: componentTokens.defaultBackgroundColorFocus.dark,\n borderColor: `var(--ds-border-danger, ${R400})`,\n borderColorFocus: componentTokens.defaultBorderColorFocus.dark\n }\n};\nconst backgroundColor = {\n standard: componentTokens.defaultBackgroundColor,\n subtle: componentTokens.transparent,\n none: componentTokens.transparent\n};\nconst backgroundColorFocus = {\n standard: componentTokens.defaultBackgroundColorFocus,\n subtle: componentTokens.defaultBackgroundColorFocus,\n none: componentTokens.transparent\n};\nconst backgroundColorHover = {\n standard: componentTokens.defaultBackgroundColorHover,\n subtle: componentTokens.defaultBackgroundColorHover,\n none: componentTokens.transparent\n};\nconst borderColor = {\n standard: componentTokens.defaultBorderColor,\n subtle: componentTokens.transparent,\n none: componentTokens.transparent\n};\nconst borderColorFocus = {\n standard: componentTokens.defaultBorderColorFocus,\n subtle: componentTokens.defaultBorderColorFocus,\n none: componentTokens.transparent\n};\nconst borderColorHover = {\n standard: componentTokens.defaultBorderColor,\n subtle: componentTokens.subtleBorderColorHover,\n none: componentTokens.transparent\n};\nconst getContainerTextBgAndBorderColor = (appearance, mode) => ({\n backgroundColor: backgroundColor[appearance][mode],\n borderColor: borderColor[appearance][mode],\n color: componentTokens.textColor[mode],\n cursor: 'text',\n '&:hover:not([data-disabled])': {\n backgroundColor: backgroundColorHover[appearance][mode],\n borderColor: borderColorHover[appearance][mode]\n },\n '&:focus-within:not([data-disabled])': {\n backgroundColor: backgroundColorFocus[appearance][mode],\n borderColor: borderColorFocus[appearance][mode],\n boxShadow: getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? `inset 0 0 0 1px ${borderColorFocus[appearance][mode]}` : undefined\n },\n '&[data-disabled]': {\n color: disabledRules[mode].textColor,\n cursor: 'not-allowed',\n // Disabled background and border styles should not be applied to components that\n // have either no background or transparent background to begin with\n ...(appearance === 'standard' && {\n backgroundColor: disabledRules[mode].backgroundColor,\n borderColor: disabledRules[mode].borderColor\n })\n },\n '&[data-invalid], &[data-invalid]:hover': {\n borderColor: invalidRules[mode].borderColor,\n boxShadow: getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? `inset 0 0 0 1px ${invalidRules[mode].borderColor}` : undefined\n },\n '&[data-invalid]:focus-within': {\n backgroundColor: invalidRules[mode].backgroundColorFocus,\n borderColor: invalidRules[mode].borderColorFocus,\n boxShadow: getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? `inset 0 0 0 1px ${invalidRules[mode].borderColorFocus}` : undefined\n },\n '@media screen and (-ms-high-contrast: active)': {\n '&[data-invalid]:focus-within': {\n borderColor: 'Highlight'\n },\n '&:focus-within': {\n borderColor: 'Highlight'\n },\n '&[data-disabled]': {\n borderColor: 'GrayText'\n }\n }\n});\nconst widthMap = {\n xsmall: 80,\n small: 160,\n medium: 240,\n large: 320,\n xlarge: 480\n};\nconst getMaxWidth = width => !width ? `100%` : width in widthMap ? widthMap[width] : +width;\nexport const containerStyles = (appearance, mode, width) => ({\n alignItems: 'center',\n ...getContainerTextBgAndBorderColor(appearance, mode),\n borderRadius: 3,\n borderWidth: getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? 1 : 2,\n // add 1px padding on both top and bottom to keep the same overall height after border reduced from 2px to 1px under feature flag\n ...(getBooleanFF('platform.design-system-team.update-border-input_ff9l1') && appearance !== 'none' ? {\n padding: '1px 0'\n } : {}),\n borderStyle: appearance === 'none' ? 'none' : 'solid',\n boxSizing: 'border-box',\n display: 'flex',\n flex: '1 1 100%',\n fontSize,\n justifyContent: 'space-between',\n maxWidth: getMaxWidth(width),\n overflow: 'hidden',\n transition: `background-color 0.2s ease-in-out, border-color 0.2s ease-in-out`,\n wordWrap: 'break-word',\n verticalAlign: 'top',\n pointerEvents: 'auto'\n});\nexport const inputStyles = mode => ({\n backgroundColor: 'transparent',\n border: 0,\n boxSizing: 'border-box',\n color: 'inherit',\n cursor: 'inherit',\n fontSize,\n minWidth: '0',\n outline: 'none',\n width: '100%',\n lineHeight: gridSize * 2.5 / fontSize,\n fontFamily: fontFamily(),\n '&[data-monospaced]': {\n fontFamily: codeFontFamily()\n },\n '&[data-compact]': {\n padding: `${gridSize / 2}px ${gridSize - 2}px`,\n height: `${(gridSize * 3.5 / fontSize).toFixed(2)}em`\n },\n '&:not([data-compact])': {\n padding: `${gridSize}px ${gridSize - 2}px`,\n height: `${(gridSize * 4.5 / fontSize).toFixed(2)}em`\n },\n '&[disabled]': {\n // Safari (WebKit) adds a -webkit-text-fill-color style to disabled inputs\n // which takes priority over color and makes the text unreadable. Need to\n // override it with the color we want.\n WebkitTextFillColor: disabledRules[mode].textColor\n },\n // Hide the clear indicator on Edge (Windows only)\n '&::-ms-clear': {\n display: 'none'\n },\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::placeholder': {\n color: componentTokens.placeholderTextColor[mode],\n '&:disabled': {\n color: disabledRules[mode].textColor\n }\n },\n '@media screen and (-ms-high-contrast: active)': {\n '&[disabled]': {\n color: 'GrayText'\n }\n }\n});\n\n// TODO: Remove when removing legacy theming.\nexport const textFieldColors = {\n backgroundColor,\n backgroundColorFocus,\n backgroundColorHover,\n borderColor,\n borderColorFocus,\n borderColorHover,\n placeholderTextColor: componentTokens.placeholderTextColor,\n textColor: componentTokens.textColor,\n invalidRules,\n disabledRules\n};","import _extends from \"@babel/runtime/helpers/extends\";\n/** @jsx jsx */\nimport React, { forwardRef, memo, useCallback, useMemo, useRef } from 'react';\nimport { jsx } from '@emotion/react';\nimport { usePlatformLeafEventHandler } from '@atlaskit/analytics-next';\nimport { useGlobalTheme } from '@atlaskit/theme/components';\nimport { containerStyles as getContainerStyles, inputStyles as getInputStyles } from './styles';\nconst analyticsParams = {\n componentName: 'textField',\n packageName: \"@atlaskit/textfield\",\n packageVersion: \"5.5.0\"\n};\nconst Textfield = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n appearance = 'standard',\n isCompact = false,\n isDisabled = false,\n isInvalid = false,\n isRequired = false,\n isReadOnly = false,\n isMonospaced = false,\n width,\n elemAfterInput,\n elemBeforeInput,\n testId,\n onFocus,\n onBlur,\n onMouseDown,\n className,\n ...spreadProps\n } = props;\n const inputRef = useRef(null);\n const {\n mode\n } = useGlobalTheme();\n const handleOnFocus = usePlatformLeafEventHandler({\n fn: event => {\n onFocus && onFocus(event);\n },\n action: 'focused',\n ...analyticsParams\n });\n const handleOnBlur = usePlatformLeafEventHandler({\n fn: event => {\n onBlur && onBlur(event);\n },\n action: 'blurred',\n ...analyticsParams\n });\n const handleOnMouseDown = useCallback(event => {\n // Running e.preventDefault() on the INPUT prevents double click behaviour\n // Sadly we needed this cast as the target type is being correctly set\n const target = event.target;\n if (target.tagName !== 'INPUT') {\n event.preventDefault();\n }\n if (inputRef && inputRef.current && !isDisabled && document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n onMouseDown && onMouseDown(event);\n }, [onMouseDown, isDisabled]);\n const setInputRef = useCallback(inputElement => {\n inputRef.current = inputElement;\n if (!ref) {\n return;\n }\n if (typeof ref === 'object') {\n // This is a blunder on the part of @types/react\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065\n // .current should be assignable\n // @ts-expect-error\n ref.current = inputElement;\n }\n if (typeof ref === 'function') {\n ref(inputElement);\n }\n }, [ref]);\n const containerStyles = useMemo(() => getContainerStyles(appearance, mode, width), [appearance, mode, width]);\n const inputStyle = useMemo(() => getInputStyles(mode), [mode]);\n return (\n // We use event bubbling here to listen to any child element mouse down event.\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n jsx(\"div\", {\n \"data-disabled\": isDisabled ? isDisabled : undefined,\n \"data-invalid\": isInvalid ? isInvalid : undefined,\n \"data-ds--text-field--container\": true,\n \"data-testid\": testId && `${testId}-container`,\n onMouseDown: handleOnMouseDown\n // TODO: When removing legacy theming fix this.\n // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage\n ,\n css: containerStyles,\n className: className\n }, elemBeforeInput, jsx(\"input\", _extends({}, spreadProps, {\n \"data-compact\": isCompact ? isCompact : undefined,\n \"data-monospaced\": isMonospaced ? isMonospaced : undefined,\n \"data-ds--text-field--input\": true,\n \"data-testid\": testId,\n \"aria-invalid\": isInvalid ? isInvalid : undefined,\n disabled: isDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n onBlur: handleOnBlur,\n onFocus: handleOnFocus,\n ref: setInputRef\n // TODO: When removing legacy theming fix this.\n // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage\n ,\n css: inputStyle\n })), elemAfterInput)\n );\n});\nTextfield.displayName = 'Textfield';\n\n/**\n * __Textfield__\n *\n * A text field is an input that allows a user to write or edit text.\n *\n * - [Examples](https://atlassian.design/components/textfield/examples)\n * - [Code](https://atlassian.design/components/textfield/code)\n * - [Usage](https://atlassian.design/components/textfield/usage)\n */\nexport default /*#__PURE__*/memo(Textfield);\n// The above generic is used to let ERTC know what props to extract.\n// See: https://github.com/atlassian/extract-react-types/issues/201","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport QuestionCircleIcon from '@atlaskit/icon/glyph/question-circle';\nimport Textfield from '@atlaskit/textfield';\nimport { B400, N0, N90, N900 } from '@atlaskit/theme/colors';\nimport Tooltip from '@atlaskit/tooltip';\nimport styled from '@emotion/styled';\nimport React, {\n ChangeEventHandler,\n MouseEventHandler,\n useEffect,\n useState\n} from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { usePriceFinderStore } from '../store';\nimport {\n deviceMediaQueries,\n TRACKING_EVENT_NAMES,\n UNIT_TRACKING_TERMS\n} from '../utils/constants';\n\nconst DEFAULT_NUM_DIGITS_ALLOWED = 5;\n\nexport type UnitCountProps = {\n readonly maxUnits?: number;\n readonly maxNumberOfDigits?: number;\n readonly unitTrackingTerm?: UNIT_TRACKING_TERMS;\n};\n\nexport const UnitCount = ({\n maxUnits,\n maxNumberOfDigits = DEFAULT_NUM_DIGITS_ALLOWED,\n unitTrackingTerm = UNIT_TRACKING_TERMS.agents\n}: UnitCountProps) => {\n const { createAnalyticsEvent } = useAnalyticsEvents();\n const [state, { updateUnitCount }] = usePriceFinderStore();\n const [currentUnits, setCurrentUnits] = useState(state.unitCount.toString());\n const [storedUnits, setStoredUnits] = useState(currentUnits);\n\n useEffect(() => {\n setCurrentUnits(state.unitCount.toString());\n }, [state.unitCount]);\n\n const onChange: ChangeEventHandler = ({ target }) => {\n let value = target.value;\n let parsedValue = parseInt(value, 10);\n if (Number.isNaN(parsedValue)) {\n setCurrentUnits('');\n } else {\n if (parsedValue < 1) {\n setCurrentUnits('');\n } else {\n if (value.length > maxNumberOfDigits) {\n value = value.toString().slice(0, maxNumberOfDigits);\n parsedValue = parseInt(value, 10);\n }\n if (value.length === 1) {\n setStoredUnits(value.toString());\n }\n\n let newUnits = Math.max(parsedValue, 0);\n\n if (maxUnits) {\n newUnits = Math.min(newUnits, maxUnits);\n }\n\n setCurrentUnits(newUnits.toString());\n void updateUnitCount(newUnits);\n }\n }\n };\n\n const onBlur = ({ currentTarget }: React.FocusEvent) => {\n if (currentTarget.value.length === 0) {\n setCurrentUnits(storedUnits);\n } else {\n setStoredUnits(currentUnits.toString());\n }\n };\n\n const onClick: MouseEventHandler = ({ currentTarget }) => {\n currentTarget.select();\n };\n\n const onMouseOver = () => {\n if (createAnalyticsEvent) {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.unitDescriptionTooltipTriggered,\n label: unitTrackingTerm\n });\n analyticsEvent.fire();\n }\n };\n\n return (\n <>\n \n \n \n\n \n \n\n \n \n \n \n }\n position={'top'}\n >\n onMouseOver()} tabIndex={0}>\n \n \n \n \n \n >\n );\n};\n\nconst HowManyUnitsMessageContainer = styled.h4`\n color: ${N900};\n font-size: 20px;\n grid-column: 1 / 4;\n letter-spacing: 0.3px;\n line-height: 24px;\n margin: 0;\n padding-right: 12px;\n padding-top: 10px;\n\n ${deviceMediaQueries.desktop} {\n font-size: 20px;\n grid-column: 2;\n line-height: 24px;\n }\n`;\n\nconst UnitCountInputContainer = styled.div`\n display: flex;\n\n input {\n background-color: ${N0};\n box-sizing: border-box;\n color: ${B400};\n font-size: 24px;\n height: 40px !important;\n left: 0px;\n line-height: 32px;\n top: 0px;\n width: 134px;\n }\n\n ${deviceMediaQueries.tablet} {\n justify-content: center;\n padding-top: 16px;\n width: 100%;\n }\n`;\n\nconst TooltipBase = styled.div`\n grid-column: 4;\n padding-left: 5px;\n padding-top: 10px;\n\n > div {\n width: 25px;\n }\n`;\n\nconst TooltipMessageContainer = styled.div`\n font-family: Charlie Text;\n`;\n\nconst TooltipContainer = styled.div`\n > span {\n display: block;\n line-height: 0;\n }\n`;\n","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport QuestionCircleIcon from '@atlaskit/icon/glyph/question-circle';\nimport Lozenge from '@atlaskit/lozenge';\nimport { N0, N900 } from '@atlaskit/theme/colors';\nimport Tooltip, { TooltipPrimitive } from '@atlaskit/tooltip';\nimport { FormattedPriceCalculationResponse } from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { TRACKING_EVENT_NAMES, UNIT_TRACKING_TERMS } from '../utils/constants';\n\nexport type UserTierProps = {\n readonly unitTrackingTerm?: UNIT_TRACKING_TERMS;\n readonly priceCalc: FormattedPriceCalculationResponse;\n};\n\nexport const UserTier = ({\n unitTrackingTerm = UNIT_TRACKING_TERMS.users,\n priceCalc\n}: UserTierProps) => {\n const { createAnalyticsEvent } = useAnalyticsEvents();\n\n const onMouseOver = () => {\n if (createAnalyticsEvent) {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.userTierTooltipTriggered,\n label: unitTrackingTerm\n });\n analyticsEvent.fire();\n }\n };\n\n const { formattedBreakdown } = priceCalc;\n\n const fmtBreakdownTier = formattedBreakdown[formattedBreakdown.length - 1];\n if (!fmtBreakdownTier) {\n throw new Error('No breakdown provided for user tier.');\n }\n\n const {\n formattedUnitLimitLower,\n formattedUnitLimitUpper,\n formattedUnitsInTier,\n formattedUnitsAvailableInTier\n } = fmtBreakdownTier;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n {formattedUnitsInTier}\n \n \n \n {formattedUnitsAvailableInTier}\n >\n }\n position={'bottom-end'}\n >\n onMouseOver()}>\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst UserTierContainer = styled.div`\n cursor: pointer;\n display: flex;\n justify-content: center;\n`;\n\nconst UserTierMessage = styled.div`\n border-radius: 4px;\n font-family: 'Charlie Text';\n font-size: 11px;\n font-style: normal;\n font-weight: normal;\n line-height: 16px;\n text-transform: uppercase;\n`;\n\nconst QuestionIconContainer = styled.div`\n align-items: center;\n display: flex;\n margin-left: 12px;\n`;\n\nconst TooltipContainer = styled.div`\n align-items: center;\n display: flex;\n\n svg {\n font-weight: normal;\n }\n`;\n\nconst TooltipContentContainer = styled(TooltipPrimitive)`\n background: ${N900};\n border-radius: 12px;\n box-shadow: 0px 3px 5px rgba(9, 30, 66, 0.2),\n 0px 0px 1px rgba(9, 30, 66, 0.31);\n max-width: 240px;\n padding: 3px 3px 3px 1px;\n`;\n\nconst UserTierDetailsContainer = styled.div`\n color: ${N0};\n font-family: Charlie Display;\n font-size: 20px;\n letter-spacing: 0.3px;\n line-height: 24px;\n margin-bottom: 20px;\n margin-left: 40px;\n margin-top: 20px;\n padding-right: 32px;\n`;\n\nconst MarginContainer = styled.div`\n background: ${N0};\n height: 1px;\n margin-bottom: 20px;\n margin-left: 30px;\n width: 176px;\n`;\n\nconst ToolTipLabelContainer = styled.div`\n color: ${N0};\n font-family: Charlie Display;\n font-size: 12px;\n height: 21px;\n letter-spacing: 1px;\n line-height: 21px;\n margin-left: 30px;\n text-transform: uppercase;\n`;\n\nconst LimitsContainer = styled.div`\n color: ${N0};\n font-family: Charlie Text;\n font-size: 16px;\n height: 24px;\n line-height: 24px;\n margin-bottom: 20px;\n margin-left: 30px;\n text-transform: uppercase;\n`;\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { getNamedFormat, filterProps } from './utils';\nimport { IntlFormatError } from './error';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlFormatError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting list.', locale, e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n 'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting display name.', locale, e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, assignUniqueKeysToParts, shallowEqual, } from '../utils';\nimport { formatMessage as coreFormatMessage, createIntl as coreCreateIntl, createIntlCache, } from '@formatjs/intl';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { \n // @ts-expect-error fix this\n formatMessage: formatMessage.bind(null, resolvedConfig, coreIntl.formatters), \n // @ts-expect-error fix this\n $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","import React, { PropsWithChildren } from 'react';\nimport { IntlProvider } from 'react-intl';\n\nexport type PricingIntlProviderProps = {\n locale: string;\n messages: Record;\n};\n\nconst PricingIntlProvider = ({\n locale,\n messages,\n children\n}: PropsWithChildren) => (\n \n {children}\n \n);\n\nexport { PricingIntlProvider };\n","import React from 'react';\n\nconst PricingExampleIcon = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default PricingExampleIcon;\n","import { N900 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport type PricingExampleHeaderProps = {\n unitCounts: number[];\n};\n\nexport const PricingExampleHeader = ({ unitCount }: { unitCount: number }) => (\n <>\n \n \n \n \n \n \n >\n);\n\nconst Header = styled.h3`\n color: ${N900};\n font-family: Charlie Display;\n font-size: 20px;\n font-weight: 600;\n letter-spacing: 0.3px;\n line-height: 24px;\n margin: 0;\n`;\n\nconst SubHeader = styled.div`\n color: ${N900};\n font-family: 'Charlie Text';\n font-size: 14px;\n font-weight: 400;\n line-height: 18px;\n margin-top: 4px;\n`;\n","import {\n CurrencyISOCode,\n FormattedPriceCalculationResponse,\n getFormattedPrice\n} from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport PricingExampleIcon from '../../../icons/pricing-example-icon';\nimport { deviceMediaQueries } from '../../../utils';\nimport { PricingExampleHeader } from './pricing-example-header';\n\nexport type PricingExampleAnnualProps = {\n unitCounts: number[];\n priceCalc: FormattedPriceCalculationResponse;\n currencyISOCode: CurrencyISOCode;\n};\n\nexport const PricingExampleAnnual = ({\n unitCounts,\n priceCalc,\n currencyISOCode\n}: PricingExampleAnnualProps) => {\n const { formattedTotalPrice, formattedBreakdown, breakdown, totalPrice } =\n priceCalc;\n\n const existingFmtBreakdown = formattedBreakdown[0];\n const totalUnits = breakdown.reduce(\n // linting is broken in pipeline (for no reason) where it thinks these are untyped\n // and freaks out about trying to use plus operand on untyped vars\n (totalUnits: number, { unitsInTier }) => totalUnits + Number(unitsInTier),\n 0\n );\n\n if (!existingFmtBreakdown) {\n throw new Error('Formatted pricing breakdown was undefined.');\n }\n const {\n formattedUnitsAvailableInTier,\n formattedUnitLimitLower,\n formattedUnitLimitUpper\n } = existingFmtBreakdown;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {formattedUnitLimitLower} - {formattedUnitLimitUpper}{' '}\n \n \n \n \n \n \n \n \n \n {unitCounts[1] || 250}\n \n \n \n \n \n \n \n {formattedUnitsAvailableInTier}\n \n \n \n \n \n \n \n {' '}\n {formattedTotalPrice}\n \n \n \n \n {' '}\n \n {getFormattedPrice(currencyISOCode, totalPrice / totalUnits / 12)}\n \n \n \n \n \n \n \n >\n );\n};\n\nconst DetailContainer = styled.div`\n position: relative;\n`;\n\nconst IconContainer = styled.div`\n position: absolute;\n right: 16px;\n top: 15%;\n\n svg {\n height: 68px;\n width: 68px;\n }\n\n ${deviceMediaQueries.desktop} {\n right: 0;\n top: 0;\n\n svg {\n height: 160px;\n width: 160px;\n }\n }\n`;\n\nconst PriceBreakDownContainer = styled.div`\n font-family: 'Charlie Text';\n font-size: 14px;\n line-height: 18px;\n\n .seats {\n padding-top: 8px;\n }\n\n .annual-cost {\n padding-top: 16px;\n }\n\n .average-cost {\n padding-bottom: 24px;\n padding-top: 4px;\n }\n\n .price-structure {\n margin-top: 16px;\n }\n\n ${deviceMediaQueries.desktop} {\n font-size: 16px;\n line-height: 24px;\n\n .user-tier {\n padding-top: 8px;\n }\n\n .price-structure {\n display: flex;\n justify-content: space-between;\n width: 271px;\n }\n\n .annual-cost {\n padding-top: 48px;\n }\n }\n`;\n\nconst RegularText = styled.span`\n font-weight: 400;\n`;\n\nconst BoldText = styled.span`\n font-weight: 700;\n`;\n","import { N900 } from '@atlaskit/theme/colors';\nimport {\n FormattedBreakdownPriceTier,\n FormattedPriceCalculationResponse\n} from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport PricingExampleIcon from '../../../icons/pricing-example-icon';\nimport { deviceMediaQueries } from '../../../utils';\nimport { PricingExampleHeader } from './pricing-example-header';\n\nexport type PricingExampleMonthlyProps = {\n unitCounts: number[];\n priceCalc: FormattedPriceCalculationResponse;\n showFirstFlatRateTier: boolean;\n};\n\nexport const PricingExampleMonthly = ({\n unitCounts,\n priceCalc,\n showFirstFlatRateTier\n}: PricingExampleMonthlyProps) => {\n const {\n hasFlatRateFirstTier,\n formattedTotalPrice,\n formattedAvgPerUnitPrice,\n formattedBreakdown\n } = priceCalc;\n\n return (\n <>\n \n \n {showFirstFlatRateTier && (\n \n \n \n )}\n \n \n \n \n \n \n\n \n {formattedBreakdown.map(\n (fmtBreakdownTier: FormattedBreakdownPriceTier, idx: number) => {\n const isFlatRateTier =\n showFirstFlatRateTier && hasFlatRateFirstTier && idx == 0;\n\n return (\n \n {fmtBreakdownTier.formattedUnitsInTier}\n \n \n \n \n {isFlatRateTier\n ? fmtBreakdownTier.formattedTotalPriceForTier\n : fmtBreakdownTier.formattedAvgPerUnitPriceForTier}\n \n {isFlatRateTier && (\n \n \n \n )}\n \n );\n }\n )}\n \n\n \n \n \n {unitCounts[0]}\n \n \n \n \n \n \n \n \n {' '}\n {formattedTotalPrice}\n \n \n \n \n {' '}\n {formattedAvgPerUnitPrice}\n \n \n {!showFirstFlatRateTier && (\n \n \n \n )}\n \n >\n );\n};\n\nconst DetailContainer = styled.div`\n position: relative;\n`;\n\nconst UserCount = styled.div`\n margin-bottom: 4px;\n margin-top: 16px;\n\n ${deviceMediaQueries.desktop} {\n margin-bottom: 8px;\n }\n`;\n\nconst IconContainer = styled.div`\n position: absolute;\n right: 16px;\n top: 15%;\n\n svg {\n height: 68px;\n width: 68px;\n }\n\n ${deviceMediaQueries.desktop} {\n right: 0;\n top: 0;\n\n svg {\n height: 160px;\n width: 160px;\n }\n }\n`;\n\nconst FlatRateIconContainer = styled(IconContainer)`\n ${deviceMediaQueries.extraSmall} {\n display: block;\n margin-left: auto;\n margin-right: auto;\n padding-top: 16px;\n ${deviceMediaQueries.desktop} {\n position: relative;\n }\n width: 20%;\n\n svg {\n height: 75px;\n width: 75px;\n }\n }\n`;\n\nconst PriceBreakDownContainer = styled.div`\n font-family: 'Charlie Text';\n font-size: 14px;\n line-height: 18px;\n\n .users {\n padding-top: 8px;\n }\n\n .monthly-cost {\n padding-top: 12px;\n }\n\n .average-cost {\n padding-bottom: 24px;\n padding-top: 4px;\n }\n\n ${deviceMediaQueries.desktop} {\n font-size: 16px;\n line-height: 24px;\n }\n`;\n\nconst PriceBreakDownListingContainer = styled.span`\n display: inline-grid;\n grid-template-columns: repeat(4, auto);\n`;\n\nconst RegularText = styled.span`\n font-weight: 400;\n`;\n\nconst NumUnits = styled.span`\n grid-column: 1;\n text-align: right;\n`;\n\nconst TotalUnits = styled.span`\n font-weight: 700;\n text-align: right;\n`;\n\nconst UsersLabel = styled.span`\n padding-left: 8px;\n`;\n\nconst TotalUsersLabel = styled.span`\n font-weight: 700;\n grid-column: 2;\n padding-left: 7px;\n`;\n\nconst TierPrice = styled.span`\n font-weight: 700;\n grid-column: 3;\n padding-left: 10px;\n text-align: right;\n`;\n\nconst BoldText = styled.span`\n font-weight: 700;\n`;\n\nconst Border = styled.div`\n border-top: 1px solid ${N900};\n margin-top: 8px;\n width: 140px;\n\n ${deviceMediaQueries.desktop} {\n width: 180px;\n }\n`;\n\nconst FlatRateMessageContainer = styled.span`\n font-weight: 700;\n grid-column: 4;\n padding-left: 10px;\n`;\n","import { colors } from '@atlaskit/theme';\nimport { CurrencyISOCode } from '@atlassiansox/bxp-use-pricing';\nimport { FormattedPriceCalculationResponse } from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React, { useEffect, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { usePriceFinderStore } from '../../../store';\nimport { PricingExampleAnnual } from './pricing-example-annual';\nimport { PricingExampleMonthly } from './pricing-example-monthly';\nimport { deviceMediaQueries } from '../../../utils';\n\nexport type PricingExampleProps = {\n unitCounts: number[];\n priceCalc: FormattedPriceCalculationResponse;\n showFirstFlatRateTier: boolean;\n currencyISOCode: CurrencyISOCode;\n};\n\nexport const PricingExample = ({\n unitCounts,\n priceCalc,\n showFirstFlatRateTier,\n currencyISOCode\n}: PricingExampleProps) => {\n const [{ billingCycle }] = usePriceFinderStore();\n const [billingPeriod, setBillingPeriod] = useState(billingCycle);\n\n useEffect(() => {\n setBillingPeriod(billingCycle);\n }, [billingCycle]);\n\n return (\n \n {billingPeriod === 'MONTHLY' && (\n \n \n \n )}\n\n {billingPeriod === 'ANNUAL' && (\n \n \n \n )}\n \n {billingCycle === 'MONTHLY' ? (\n \n ) : (\n \n )}\n \n \n {billingPeriod === 'MONTHLY' && (\n \n )}\n\n {billingPeriod === 'ANNUAL' && (\n \n )}\n \n \n );\n};\n\nconst BillingDescription = styled.div`\n ${deviceMediaQueries.desktop} {\n color: #000000;\n font-family: 'Charlie Text';\n font-size: 16px;\n font-weight: 400;\n line-height: 24px;\n margin: 0 auto;\n margin-bottom: 24px;\n margin-top: 5px;\n text-align: center;\n width: 468px;\n }\n ${deviceMediaQueries.mobile} {\n line-height: 18px;\n margin-bottom: 24px;\n }\n ${deviceMediaQueries.tablet} {\n grid-column: 1 / 4;\n margin-bottom: 24px;\n }\n`;\n\nconst DesktopContainer = styled.div`\n ${deviceMediaQueries.desktop} {\n grid-column: 1 / 7;\n grid-row: 4;\n margin: 0 auto;\n padding-top: 24px;\n width: 568px;\n }\n ${deviceMediaQueries.mobile} {\n margin-top: 8px;\n padding-top: 20px;\n }\n`;\n\nconst Example = styled.p`\n color: #000000;\n font-family: 'Charlie Text';\n font-size: 12px;\n font-style: italic;\n font-weight: 400;\n line-height: 18px;\n margin: 0;\n`;\n\nconst MainContainer = styled.div`\n margin-top: 4px;\n ${deviceMediaQueries.mobile} {\n border-radius: 2px;\n }\n ${deviceMediaQueries.desktop} {\n background-color: white;\n border: 1px solid ${colors.N80};\n border-radius: 4px;\n margin-top: 4px;\n padding: 28px 48px 24px 32px;\n }\n`;\n","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport { N10 } from '@atlaskit/theme/colors';\nimport {\n CurrencyISOCode,\n FormattedPriceCalculationResponse\n} from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React, { useEffect, useState } from 'react';\nimport { useDesktopMediaQuery } from '../../hooks';\nimport { deviceMediaQueries, TRACKING_EVENT_NAMES } from '../../utils';\nimport { BillingPeriodSelector } from '../billing-period-selector';\nimport { UnitCount } from '../unit-count';\nimport { PricingExampleContainerProps } from './pricing-example-container';\nimport { PricingExample } from './pricing-example-states';\nimport { PricingExampleButton } from './pricing-example-button';\nimport { FormattedMessage } from 'react-intl';\n\nexport type PricingExampleDefaultProps = Omit<\n PricingExampleContainerProps,\n 'hideBillingSelector'\n> & {\n priceCalc: FormattedPriceCalculationResponse;\n currencyISOCode: CurrencyISOCode;\n};\n\nconst PricingExampleDefault = ({\n unitTrackingTerm,\n pricingExampleUnitCounts,\n priceCalc,\n showFirstFlatRateTier,\n currencyISOCode\n}: PricingExampleDefaultProps) => {\n const [showExample, setShowExample] = useState(false);\n const { createAnalyticsEvent } = useAnalyticsEvents();\n const isDesktop = useDesktopMediaQuery();\n\n // send analytics event if pricing example has been shown\n useEffect(() => {\n const analyticsEvent = createAnalyticsEvent({\n name: !showExample\n ? TRACKING_EVENT_NAMES.showPricingExampleTriggered\n : TRACKING_EVENT_NAMES.hidePricingExampleTriggered\n });\n analyticsEvent.fire();\n }, [showExample]);\n\n return (\n \n \n \n\n \n setShowExample(setExampleShown)\n }\n />\n {!showExample && !isDesktop && (\n \n {\n setShowExample(true);\n }}\n >\n \n \n \n )}\n {showExample && (\n \n )}\n {showExample && !isDesktop && (\n \n {\n setShowExample(false);\n }}\n >\n \n \n \n )}\n \n \n );\n};\nexport const GridContainer = `\n display: grid;\n grid-template-columns: 1fr repeat(4, minmax(max-content, auto)) 1fr;\n ${deviceMediaQueries.tablet} {\n display: block;\n margin: auto;\n max-width: 400px;\n }\n`;\n\nconst SelectorGridContainer = styled.div`\n ${GridContainer}\n grid-template-rows: minmax(max-content, auto) 20px minmax(max-content, auto) 1fr;\n`;\n\nexport const BoxShadowContainer = styled.div`\n align-items: center;\n background-color: ${N10};\n border-radius: 4px;\n box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.1);\n padding: 20px;\n`;\n\nconst ExampleLabel = styled.div`\n button {\n margin: 0px;\n padding: 0px;\n }\n`;\n\nexport { PricingExampleDefault };\n","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport {\n CurrencyISOCode,\n FormattedPriceCalculationResponse\n} from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React, { useEffect, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useDesktopMediaQuery } from '../../hooks';\nimport { deviceMediaQueries, TRACKING_EVENT_NAMES } from '../../utils';\nimport { UnitCount } from '../unit-count';\nimport { PricingExampleContainerProps } from './pricing-example-container';\nimport { BoxShadowContainer, GridContainer } from './pricing-example-default';\nimport { PricingExample } from './pricing-example-states';\nimport { PricingExampleButton } from './pricing-example-button';\n\ntype PricingExampleNoSelectorProps = Omit<\n PricingExampleContainerProps,\n 'hideBillingSelector'\n> & {\n priceCalc: FormattedPriceCalculationResponse;\n currencyISOCode: CurrencyISOCode;\n};\n\nconst PricingExampleNoSelector = ({\n unitTrackingTerm,\n pricingExampleUnitCounts,\n priceCalc,\n showFirstFlatRateTier,\n currencyISOCode\n}: PricingExampleNoSelectorProps) => {\n const [showExample, setShowExample] = useState(false);\n const { createAnalyticsEvent } = useAnalyticsEvents();\n const isDesktop = useDesktopMediaQuery();\n\n // send analytics event if pricing example has been shown\n useEffect(() => {\n const analyticsEvent = createAnalyticsEvent({\n name: !showExample\n ? TRACKING_EVENT_NAMES.showPricingExampleTriggered\n : TRACKING_EVENT_NAMES.hidePricingExampleTriggered\n });\n analyticsEvent.fire();\n }, [showExample]);\n return (\n \n \n \n {isDesktop && (\n \n {\n setShowExample(!showExample);\n }}\n >\n {showExample ? (\n \n ) : (\n \n )}\n \n \n )}\n {!showExample && !isDesktop && (\n \n {\n setShowExample(true);\n }}\n >\n \n \n \n )}\n\n {showExample && (\n \n )}\n\n {showExample && !isDesktop && (\n \n {\n setShowExample(false);\n }}\n >\n \n \n \n )}\n \n \n );\n};\n\nconst NoSelectorGridContainer = styled.div`\n ${GridContainer}\n`;\n\nconst ShowHideExample = styled.div`\n ${deviceMediaQueries.desktop} {\n padding-top: 4px;\n }\n\n button {\n ${deviceMediaQueries.desktop} {\n line-height: 32px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n`;\n\nconst ExampleLabel = styled.div`\n button {\n margin: 0px;\n padding: 0px;\n }\n`;\nexport { PricingExampleNoSelector };\n","import { CurrencyISOCode } from '@atlassiansox/bxp-use-pricing';\nimport React from 'react';\nimport { usePriceFinderStore } from '../../store';\nimport { UNIT_TRACKING_TERMS } from '../../utils';\nimport { PricingExampleDefault } from './pricing-example-default';\nimport { PricingExampleNoSelector } from './pricing-example-no-selector';\n\nexport interface PricingExampleContainerProps {\n unitTrackingTerm: UNIT_TRACKING_TERMS;\n pricingExampleUnitCounts: number[];\n hideBillingSelector: boolean;\n showFirstFlatRateTier: boolean;\n currencyISOCode: CurrencyISOCode;\n}\n\nconst PricingExampleContainer = ({\n unitTrackingTerm,\n pricingExampleUnitCounts,\n hideBillingSelector,\n showFirstFlatRateTier,\n currencyISOCode\n}: PricingExampleContainerProps) => {\n const [{ priceCalcs }] = usePriceFinderStore();\n const examplePriceCalc = priceCalcs[priceCalcs.length - 1];\n\n if (!examplePriceCalc) {\n throw new Error('Price calculation for pricing example was not found.');\n }\n\n return !hideBillingSelector ? (\n \n ) : (\n \n );\n};\n\nexport { PricingExampleContainer };\n","import CheckIcon from '@atlaskit/icon/glyph/check';\nimport Lozenge from '@atlaskit/lozenge';\nimport { B300, B500, G400, N40, N500, N900 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport type FeatureMessageProps = {\n isLabelPresent?: boolean;\n message: string;\n modalTargetId?: string;\n};\n\nconst FeatureMessage = ({\n isLabelPresent,\n message,\n modalTargetId\n}: FeatureMessageProps) => {\n return (\n <>\n \n \n {modalTargetId && (\n {\n e.preventDefault();\n\n const modalTrigger: HTMLElement | null = document?.querySelector(\n `[data-target='#modal-${modalTargetId}']`\n );\n\n if (modalTrigger) {\n modalTrigger.click();\n } else {\n throw new Error(\n `Feature modal trigger was not found for modal id: ${modalTargetId} with label \"${message}\"`\n );\n }\n }}\n >\n {message}\n \n )}\n {!modalTargetId && (\n {message}\n )}\n \n {isLabelPresent && (\n \n \n \n \n \n \n \n )}\n >\n );\n};\n\nconst FeatureMessageContainer = styled.div`\n display: flex;\n padding-left: 18px;\n padding-top: 16px;\n\n button {\n background: none;\n border: none;\n color: ${B300};\n cursor: pointer;\n font-family: 'Charlie Text';\n font-size: 16px;\n font-weight: 400;\n padding-left: 4px;\n text-align: left;\n text-decoration: underline;\n text-decoration-style: dashed;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n\n &:hover {\n color: ${B500};\n }\n }\n`;\n\nconst MessageWithoutUnderline = styled.div`\n color: ${N900};\n padding-left: 4px;\n`;\n\nconst Label = styled.div`\n border-radius: 4px;\n font-size: 11px;\n font-weight: normal;\n line-height: 16px;\n text-align: center;\n text-transform: uppercase;\n`;\n\nconst LabelContainer = styled.div`\n padding-left: 46px;\n`;\n\nexport { FeatureMessage };\n","import { B400, N10, N40, N900 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React, { PropsWithChildren } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useDesktopMediaQuery } from '../../hooks';\nimport { FeatureMessage } from '../feature-message';\n\nexport type PlanCardProps = {\n first?: boolean;\n last?: boolean;\n rightHighlighted?: boolean;\n highlighted?: boolean;\n planName: string;\n ctaButton: React.ReactNode;\n featureMessagePlanName?: string;\n planFeatureMessages?: {\n message: string;\n modalTargetId?: string;\n isLabelPresent?: boolean;\n }[];\n};\n\nconst PlanCard = ({\n first = false,\n last = false,\n rightHighlighted = false,\n highlighted = false,\n planName,\n ctaButton,\n featureMessagePlanName,\n planFeatureMessages,\n children\n}: PropsWithChildren) => {\n const isMobile = !useDesktopMediaQuery();\n\n if (isMobile) {\n first = last = true;\n }\n\n const baseBorderStyles = `\n border-color: ${highlighted ? B400 : N40};\n border-left-width: ${first ? '1px' : '0'};\n border-right-color: ${highlighted || rightHighlighted ? B400 : N40};\n border-right-width: 1px;\n border-top-width: 0;\n border-bottom-width: 0;\n border-style: solid;\n `;\n\n return (\n <>\n \n {planName}\n \n\n \n {children}\n\n {ctaButton}\n \n\n {planFeatureMessages && planFeatureMessages.length > 0 && (\n \n {featureMessagePlanName && (\n \n \n \n )}\n {planFeatureMessages.map((featureMessage, index) => (\n \n \n \n ))}\n \n )}\n >\n );\n};\n\nconst Header = styled.div<{\n first: boolean;\n last: boolean;\n highlighted: boolean;\n baseBorderStyles: string;\n}>`\n ${(props) => props.baseBorderStyles}\n background-color: ${(props) => (props.highlighted ? B400 : N10)};\n border-top: 1px solid ${(props) => (props.highlighted ? B400 : N40)};\n border-top-left-radius: ${(props) => (props.first ? '9' : '0')}px;\n border-top-right-radius: ${(props) => (props.last ? '9' : '0')}px;\n color: ${(props) => (props.highlighted ? 'white' : N900)};\n font-size: 16px;\n grid-row: 1;\n line-height: 24px;\n padding: 20px 25px 20px;\n text-align: center;\n`;\n\nconst PlanMessagingContainer = styled.div<{\n highlighted: boolean;\n baseBorderStyles: string;\n first: boolean;\n last: boolean;\n planFeatureMessagesLength: number | undefined;\n isMobile: boolean;\n}>`\n ${(props) => props.baseBorderStyles}\n background-color: ${(props) => (props.highlighted ? '#F1F7FF' : 'white')};\n border-bottom-left-radius: ${(props) =>\n !props.planFeatureMessagesLength && props.first ? '9' : '0'}px;\n border-bottom-right-radius: ${(props) =>\n !props.planFeatureMessagesLength && props.last ? '9' : '0'}px;\n border-bottom-width: 1px;\n display: flex;\n flex-direction: column;\n grid-row: 2;\n margin-bottom: ${(props) =>\n props.isMobile && !props.planFeatureMessagesLength ? '25' : '0'}px;\n padding: 0 20px;\n text-align: center;\n`;\n\nconst CTAButtonContainer = styled.div`\n margin-bottom: 32px;\n`;\n\nconst PlanName = styled.h3<{\n highlighted: boolean;\n}>`\n color: ${(props) => (props.highlighted ? 'white' : N900)} !important;\n font-size: 24px;\n line-height: 32px;\n margin: 0 0 8px;\n padding: 0;\n`;\n\nconst FeatureMessagesList = styled.div<{\n first: boolean;\n last: boolean;\n baseBorderStyles: string;\n highlighted: boolean;\n isMobile: boolean;\n}>`\n ${(props) => props.baseBorderStyles}\n background: white;\n border-bottom: 1px solid ${(props) => (props.highlighted ? B400 : N40)};\n border-bottom-left-radius: ${(props) => (props.first ? '9' : '0')}px;\n border-bottom-right-radius: ${(props) => (props.last ? '9' : '0')}px;\n font-size: 16px;\n grid-row: 3;\n line-height: 24px;\n margin-bottom: ${(props) => (props.isMobile ? '25' : '0')}px;\n padding-bottom: 20px;\n padding-right: 20px;\n`;\n\nconst FeatureMessageTitle = styled.div`\n font-weight: 700;\n padding: 16px 0 0 46px;\n`;\n\nexport { PlanCard };\n","import Button from '@atlaskit/button';\nimport { B400 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React, { PropsWithChildren } from 'react';\n\nexport type CTAButtonProps = {\n highlighted?: boolean;\n disabled?: boolean;\n onClickHandler: () => void;\n};\n\nconst CTAButton = ({\n highlighted = false,\n disabled = false,\n onClickHandler,\n children\n}: PropsWithChildren) => {\n const style: React.CSSProperties = {\n border: !highlighted && !disabled ? `1px solid ${B400}` : 'none',\n font: 'Charlie Text',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '20px',\n height: 'auto',\n textDecoration: 'none',\n width: 'fit-content',\n whiteSpace: 'normal',\n paddingTop: '8px',\n paddingBottom: '8px'\n };\n\n if (disabled) {\n style.backgroundColor = 'rgba(9, 30, 66, 0.04)';\n }\n\n return (\n \n onClickHandler()}\n isDisabled={disabled}\n style={style}\n >\n {children}\n \n \n );\n};\n\nconst ButtonWrapper = styled.div`\n span {\n white-space: normal;\n }\n`;\n\nexport { CTAButton };\n","import React from 'react';\nimport ExitingPersistence from '@atlaskit/motion/exiting-persistence';\n\n/**\n * __Modal transition__\n *\n * A modal transition wraps a modal to provide a fluid transition upon opening and closing.\n *\n * - [Examples](https://atlassian.design/components/modal-dialog/examples)\n * - [Code](https://atlassian.design/components/modal-dialog/code)\n * - [Usage](https://atlassian.design/components/modal-dialog/usage)\n */\nconst ModalTransition = props => {\n return /*#__PURE__*/React.createElement(ExitingPersistence, {\n appear: true\n }, props.children);\n};\nexport default ModalTransition;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport const isAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof AnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'AnalyticsEvent';\n};\nexport default class AnalyticsEvent {\n constructor(props) {\n _defineProperty(this, \"_isAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n // just a shallow clone, don't change sub refs unless you want to\n // affect the original's too\n const payload = {\n ...this.payload\n };\n return new AnalyticsEvent({\n payload\n });\n });\n this.payload = props.payload;\n }\n update(updater) {\n if (typeof updater === 'function') {\n this.payload = updater(this.payload);\n }\n if (typeof updater === 'object') {\n this.payload = {\n ...this.payload,\n ...updater\n };\n }\n return this;\n }\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport AnalyticsEvent from './AnalyticsEvent';\nexport const isUIAnalyticsEvent = obj => {\n var _obj$constructor;\n return obj instanceof UIAnalyticsEvent || !!(obj !== null && obj !== void 0 && obj._isUIAnalyticsEvent) ||\n // Backwards compatibility with older analytics-next packages\n (obj === null || obj === void 0 ? void 0 : (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) === 'UIAnalyticsEvent';\n};\nexport default class UIAnalyticsEvent extends AnalyticsEvent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"_isUIAnalyticsEvent\", true);\n _defineProperty(this, \"clone\", () => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot clone an event after it's been fired.\");\n }\n return null;\n }\n const context = [...this.context];\n const handlers = [...this.handlers];\n\n /**\n * A hacky \"deep clone\" of the object. This is limited in that it wont\n * support functions, regexs, Maps, Sets, etc, but none of those need to\n * be represented in our payload.\n */\n const payload = JSON.parse(JSON.stringify(this.payload));\n return new UIAnalyticsEvent({\n context,\n handlers,\n payload\n });\n });\n _defineProperty(this, \"fire\", channel => {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn('Cannot fire an event twice.');\n }\n return;\n }\n this.handlers.forEach(handler => handler(this, channel));\n this.hasFired = true;\n });\n this.context = props.context || [];\n this.handlers = props.handlers || [];\n this.hasFired = false;\n }\n update(updater) {\n if (this.hasFired) {\n if (process.env.NODE_ENV !== 'production' && !process.env.CI) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot update an event after it's been fired.\");\n }\n return this;\n }\n return super.update(updater);\n }\n}","import { useContext } from 'react';\nimport { default as AnalyticsReactContext } from '@atlaskit/analytics-next-stable-react-context';\nexport const useAnalyticsContext = () => {\n return useContext(AnalyticsReactContext);\n};","import { useEffect, useRef } from 'react';\nexport const useTrackedRef = value => {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n};","import { useCallback } from 'react';\nimport { useAnalyticsEvents } from './useAnalyticsEvents';\nimport { useTrackedRef } from './useTrackedRef';\n// WARNING: This hook will only function correctly for leaf node components - as in\n// no children inside the component will require analytics themselves.\n// Ignoring this warning will mean the analytics context of child components will not\n// include the context of this component, .e.g, lost data.\n// If you are going to have child components that require analytics use withAnalytics\n// or AnalyticsContext component instead.\nexport function usePlatformLeafEventHandler({\n fn,\n action,\n componentName,\n actionSubject,\n packageName,\n packageVersion,\n analyticsData\n}) {\n const {\n createAnalyticsEvent\n } = useAnalyticsEvents();\n\n // We put analyticsData and fn in a ref so that we don't need to break\n // memoization.\n // Generally these could be defined by consumers inline\n // and so we do this to avoid breaking memoization of useCallback\n const dataRef = useTrackedRef(analyticsData);\n const fnRef = useTrackedRef(fn);\n const handler = useCallback(value => {\n const analyticsEvent = createAnalyticsEvent({\n action,\n actionSubject: actionSubject || componentName,\n attributes: {\n componentName,\n packageName,\n packageVersion\n }\n });\n\n // To avoid wrapping this component in AnalyticsContext we manually\n // push the parent context's meta data into the context.\n // Note: this new 'context'\n const context = {\n componentName,\n packageName,\n packageVersion,\n ...dataRef.current\n };\n analyticsEvent.context.push(context);\n\n // fire an event on the atlaskit channel\n const clone = analyticsEvent.clone();\n if (clone) {\n clone.fire('atlaskit');\n }\n fnRef.current(value, analyticsEvent);\n }, [\n // These are strings and won't change\n action, componentName, actionSubject, packageName, packageVersion,\n // This function is memoized in the context\n createAnalyticsEvent,\n // these are a stable ref because of the useTrackedRef hook\n dataRef, fnRef]);\n return handler;\n}","import { useCallbackOne } from 'use-memo-one';\nimport UIAnalyticsEvent from '../events/UIAnalyticsEvent';\nimport { useAnalyticsContext } from './useAnalyticsContext';\nexport function useAnalyticsEvents() {\n const analyticsContext = useAnalyticsContext();\n const createAnalyticsEvent = useCallbackOne(payload => {\n return new UIAnalyticsEvent({\n context: analyticsContext.getAtlaskitAnalyticsContext(),\n handlers: analyticsContext.getAtlaskitAnalyticsEventHandlers(),\n payload\n });\n }, [analyticsContext]);\n return {\n createAnalyticsEvent\n };\n}","/**\n * An empty function which does nothing.\n */\n// eslint-disable-next-line @repo/internal/react/use-noop\nexport default function noop() {}","import deprecationWarning from '@atlaskit/ds-lib/deprecation-warning';\nimport { B200, N30A, skeleton as skeletonColor } from './colors';\nexport const CHANNEL = '__ATLASKIT_THEME__';\nexport const DEFAULT_THEME_MODE = 'light';\nexport const THEME_MODES = ['light', 'dark'];\n\n/*\n These theme values are expressed as functions so that if we decide to make\n them dependent on props in the future, it wouldn't require a significant\n refactor everywhere they are being used.\n*/\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('border.radius', '3px')` instead.\n */\nexport const borderRadius = () => 3;\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated Use `token('space.100', '8px')` instead with any of the space tokens.\n * Available space tokens can be found on {@link https://atlassian.design/foundations/spacing/#scale}\n */\nexport const gridSize = () => 8;\nexport const fontSize = () => 14;\nexport const fontSizeSmall = () => 11;\nexport const fontFamily = () => `-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\nexport const codeFontFamily = () => `'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace`;\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const focusRing = (color = `var(--ds-border-focused, ${B200})`, outlineWidth = gridSize() / 4) => {\n deprecationWarning('@atlaskit/theme', 'focus ring mixin', 'Please use `@atlaskit/focus-ring` instead.');\n return `\n &:focus {\n outline: none;\n box-shadow: 0px 0px 0px ${outlineWidth}px ${color};\n }\n`;\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/focus-ring` instead.\n */\nexport const noFocusRing = () => `\n box-shadow: none;\n`;\nexport const layers = {\n card: () => 100,\n navigation: () => 200,\n dialog: () => 300,\n layer: () => 400,\n blanket: () => 500,\n modal: () => 510,\n flag: () => 600,\n spotlight: () => 700,\n tooltip: () => 9999\n};\n\n// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const visuallyHidden = () => {\n deprecationWarning('@atlaskit/theme', 'visually hidden mixin', 'Please use `@atlaskit/visually-hidden` instead.');\n return {\n border: '0 !important',\n clip: 'rect(1px, 1px, 1px, 1px) !important',\n height: '1px !important',\n overflow: 'hidden !important',\n padding: '0 !important',\n position: 'absolute !important',\n width: '1px !important',\n whiteSpace: 'nowrap !important'\n };\n};\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * Please use `@atlaskit/visually-hidden`\n */\nexport const assistive = visuallyHidden;\n\n/**\n * These styles are mirrored in:\n * packages/design-system/menu/src/internal/components/skeleton-shimmer.tsx\n *\n * Please update both.\n */\nexport const skeletonShimmer = () => ({\n css: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate'\n },\n keyframes: {\n from: {\n backgroundColor: `var(--ds-skeleton, ${skeletonColor()})`\n },\n to: {\n backgroundColor: `var(--ds-skeleton-subtle, ${N30A})`\n }\n }\n});","import { CHANNEL, DEFAULT_THEME_MODE, THEME_MODES } from '../constants';\n// Resolves the different types of theme objects in the current API\nexport default function getTheme(props) {\n if (props && props.theme) {\n // Theme is the global Atlaskit theme\n if (CHANNEL in props.theme) {\n return props.theme[CHANNEL];\n }\n // User has provided alternative modes\n else if ('mode' in props.theme && THEME_MODES.includes(props.theme.mode)) {\n return props.theme;\n }\n }\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE\n };\n}","/* eslint-disable prefer-rest-params */\n\nimport getTheme from './get-theme';\n// Unpack custom variants, and get correct value for the current theme\nfunction themedVariants(variantProp, variants) {\n return props => {\n const theme = getTheme(props);\n if (props && props[variantProp] && variants) {\n const modes = variants[props[variantProp]];\n if (modes && modes[theme.mode]) {\n const value = modes[theme.mode];\n if (value) {\n return value;\n } // TS believes value can be undefined\n }\n }\n\n return '';\n };\n}\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-4693 Internal documentation for deprecation (no external access)}\n */\nexport default function themed(modesOrVariant, variantModes) {\n if (typeof modesOrVariant === 'string') {\n return themedVariants(modesOrVariant, variantModes);\n }\n const modes = modesOrVariant;\n return props => {\n // Get theme from the user's props\n const theme = getTheme(props);\n // User isn't required to provide both light and dark values\n if (theme.mode in modes) {\n const value = modes[theme.mode]; // TS believes value can be undefined\n if (value) {\n return value;\n }\n }\n return '';\n };\n}","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */\n\nimport themed from './utils/themed';\n\n// Reds\nexport const R50 = '#FFEBE6';\nexport const R75 = '#FFBDAD';\nexport const R100 = '#FF8F73';\nexport const R200 = '#FF7452';\nexport const R300 = '#FF5630';\nexport const R400 = '#DE350B';\nexport const R500 = '#BF2600';\n\n// Yellows\nexport const Y50 = '#FFFAE6';\nexport const Y75 = '#FFF0B3';\nexport const Y100 = '#FFE380';\nexport const Y200 = '#FFC400';\nexport const Y300 = '#FFAB00';\nexport const Y400 = '#FF991F';\nexport const Y500 = '#FF8B00';\n\n// Greens\nexport const G50 = '#E3FCEF';\nexport const G75 = '#ABF5D1';\nexport const G100 = '#79F2C0';\nexport const G200 = '#57D9A3';\nexport const G300 = '#36B37E';\nexport const G400 = '#00875A';\nexport const G500 = '#006644';\n\n// Blues\nexport const B50 = '#DEEBFF';\nexport const B75 = '#B3D4FF';\nexport const B100 = '#4C9AFF';\nexport const B200 = '#2684FF';\nexport const B300 = '#0065FF';\nexport const B400 = '#0052CC';\nexport const B500 = '#0747A6';\n\n// Purples\nexport const P50 = '#EAE6FF';\nexport const P75 = '#C0B6F2';\nexport const P100 = '#998DD9';\nexport const P200 = '#8777D9';\nexport const P300 = '#6554C0';\nexport const P400 = '#5243AA';\nexport const P500 = '#403294';\n\n// Teals\nexport const T50 = '#E6FCFF';\nexport const T75 = '#B3F5FF';\nexport const T100 = '#79E2F2';\nexport const T200 = '#00C7E6';\nexport const T300 = '#00B8D9';\nexport const T400 = '#00A3BF';\nexport const T500 = '#008DA6';\n\n// Neutrals\nexport const N0 = '#FFFFFF';\nexport const N10 = '#FAFBFC';\nexport const N20 = '#F4F5F7';\nexport const N30 = '#EBECF0';\nexport const N40 = '#DFE1E6';\nexport const N50 = '#C1C7D0';\nexport const N60 = '#B3BAC5';\nexport const N70 = '#A5ADBA';\nexport const N80 = '#97A0AF';\nexport const N90 = '#8993A4';\nexport const N100 = '#7A869A';\nexport const N200 = '#6B778C';\nexport const N300 = '#5E6C84';\nexport const N400 = '#505F79';\nexport const N500 = '#42526E';\nexport const N600 = '#344563';\nexport const N700 = '#253858';\nexport const N800 = '#172B4D';\n\n// ATTENTION: update the tints if you update this\nexport const N900 = '#091E42';\n\n// Each tint is made of N900 and an alpha channel\nexport const N10A = 'rgba(9, 30, 66, 0.02)';\nexport const N20A = 'rgba(9, 30, 66, 0.04)';\nexport const N30A = 'rgba(9, 30, 66, 0.08)';\nexport const N40A = 'rgba(9, 30, 66, 0.13)';\nexport const N50A = 'rgba(9, 30, 66, 0.25)';\nexport const N60A = 'rgba(9, 30, 66, 0.31)';\nexport const N70A = 'rgba(9, 30, 66, 0.36)';\nexport const N80A = 'rgba(9, 30, 66, 0.42)';\nexport const N90A = 'rgba(9, 30, 66, 0.48)';\nexport const N100A = 'rgba(9, 30, 66, 0.54)';\nexport const N200A = 'rgba(9, 30, 66, 0.60)';\nexport const N300A = 'rgba(9, 30, 66, 0.66)';\nexport const N400A = 'rgba(9, 30, 66, 0.71)';\nexport const N500A = 'rgba(9, 30, 66, 0.77)';\nexport const N600A = 'rgba(9, 30, 66, 0.82)';\nexport const N700A = 'rgba(9, 30, 66, 0.89)';\nexport const N800A = 'rgba(9, 30, 66, 0.95)';\n\n// Dark Mode Neutrals\nexport const DN900 = '#E6EDFA';\nexport const DN800 = '#DCE5F5';\nexport const DN700 = '#CED9EB';\nexport const DN600 = '#B8C7E0';\nexport const DN500 = '#ABBBD6';\nexport const DN400 = '#9FB0CC';\nexport const DN300 = '#8C9CB8';\nexport const DN200 = '#7988A3';\nexport const DN100 = '#67758F';\nexport const DN90 = '#56637A';\nexport const DN80 = '#455166';\nexport const DN70 = '#3B475C';\nexport const DN60 = '#313D52';\nexport const DN50 = '#283447';\nexport const DN40 = '#202B3D';\nexport const DN30 = '#1B2638';\nexport const DN20 = '#121A29';\nexport const DN10 = '#0E1624';\n\n// ATTENTION: update the tints if you update this\nexport const DN0 = '#0D1424';\n\n// Each dark tint is made of DN0 and an alpha channel\nexport const DN800A = 'rgba(13, 20, 36, 0.06)';\nexport const DN700A = 'rgba(13, 20, 36, 0.14)';\nexport const DN600A = 'rgba(13, 20, 36, 0.18)';\nexport const DN500A = 'rgba(13, 20, 36, 0.29)';\nexport const DN400A = 'rgba(13, 20, 36, 0.36)';\nexport const DN300A = 'rgba(13, 20, 36, 0.40)';\nexport const DN200A = 'rgba(13, 20, 36, 0.47)';\nexport const DN100A = 'rgba(13, 20, 36, 0.53)';\nexport const DN90A = 'rgba(13, 20, 36, 0.63)';\nexport const DN80A = 'rgba(13, 20, 36, 0.73)';\nexport const DN70A = 'rgba(13, 20, 36, 0.78)';\nexport const DN60A = 'rgba(13, 20, 36, 0.81)';\nexport const DN50A = 'rgba(13, 20, 36, 0.85)';\nexport const DN40A = 'rgba(13, 20, 36, 0.89)';\nexport const DN30A = 'rgba(13, 20, 36, 0.92)';\nexport const DN20A = 'rgba(13, 20, 36, 0.95)';\nexport const DN10A = 'rgba(13, 20, 36, 0.97)';\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface')` instead.\n */\nexport const background = themed({\n light: `var(--ds-surface, ${N0})`,\n dark: `var(--ds-surface, ${DN30})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.selected')` instead.\n */\nexport const backgroundActive = themed({\n light: `var(--ds-background-selected, ${B50})`,\n dark: `var(--ds-background-selected, ${B75})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.neutral.hovered')` instead.\n */\nexport const backgroundHover = themed({\n light: `var(--ds-background-neutral-hovered, ${N30})`,\n dark: `var(--ds-background-neutral-hovered, ${DN70})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('elevation.surface.overlay')` instead.\n */\nexport const backgroundOnLayer = themed({\n light: `var(--ds-surface-overlay, ${N0})`,\n dark: `var(--ds-surface-overlay, ${DN50})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const text = themed({\n light: `var(--ds-text, ${N900})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const textHover = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.selected')` instead.\n */\nexport const textActive = themed({\n light: `var(--ds-text-selected, ${B400})`,\n dark: `var(--ds-text-selected, ${B400})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use token('color.text.subtlest', N200) instead. Use DN200 as the fallback color for dark mode.\n */\nexport const placeholderText = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text')` instead.\n */\nexport const heading = themed({\n light: `var(--ds-text, ${N800})`,\n dark: `var(--ds-text, ${DN600})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.text.subtlest')` instead.\n */\nexport const subtleHeading = themed({\n light: `var(--ds-text-subtlest, ${N200})`,\n dark: `var(--ds-text-subtlest, ${DN300})`\n});\nexport const codeBlock = themed({\n light: N20,\n dark: DN50\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link')` instead.\n */\nexport const link = themed({\n light: `var(--ds-link, ${B400})`,\n dark: `var(--ds-link, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkHover = themed({\n light: `var(--ds-link-pressed, ${B300})`,\n dark: `var(--ds-link-pressed, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.link.pressed')` instead.\n */\nexport const linkActive = themed({\n light: `var(--ds-link-pressed, ${B500})`,\n dark: `var(--ds-link-pressed, ${B100})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.border.focused', B200)` instead.\n */\nexport const linkOutline = themed({\n light: `var(--ds-border-focused, ${B200})`,\n dark: `var(--ds-border-focused, ${B200})`\n});\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.background.brand.bold')` instead.\n */\nexport const primary = themed({\n light: `var(--ds-background-brand-bold, ${B400})`,\n dark: `var(--ds-background-brand-bold, ${B100})`\n});\nexport const blue = themed({\n light: B400,\n dark: B100\n});\nexport const teal = themed({\n light: T300,\n dark: T200\n});\nexport const purple = themed({\n light: P300,\n dark: P100\n});\nexport const red = themed({\n light: R300,\n dark: R300\n});\nexport const yellow = themed({\n light: Y300,\n dark: Y300\n});\nexport const green = themed({\n light: G300,\n dark: G300\n});\n\n/**\n * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-386 Internal documentation for deprecation (no external access)}\n * @deprecated use `token('color.skeleton')` instead.\n */\nexport const skeleton = () => `var(--ds-skeleton, ${N20A})`;","import { N30, R400, text, Y400 } from '@atlaskit/theme/colors';\nimport { borderRadius as getBorderRadius,\n// eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports\ngridSize as getGridSize } from '@atlaskit/theme/constants';\nexport const width = {\n values: ['small', 'medium', 'large', 'x-large'],\n widths: {\n small: 400,\n medium: 600,\n large: 800,\n 'x-large': 968\n },\n defaultValue: 'medium'\n};\nexport const gutter = 60;\nconst gridSize = getGridSize();\nexport const borderRadius = getBorderRadius();\nexport const verticalOffset = gridSize * 2;\nexport const padding = gridSize * 3;\nexport const titleIconMargin = gridSize;\nexport const keylineHeight = 2;\nexport const keylineColor = `var(--ds-border, ${N30})`;\nexport const textColor = `var(--ds-text, ${text()})`;\nexport const iconColor = {\n danger: `var(--ds-icon-danger, ${R400})`,\n warning: `var(--ds-icon-warning, ${Y400})`\n};","/* eslint-disable @repo/internal/react/require-jsdoc */\nimport { createContext } from 'react';\nexport const ModalContext = /*#__PURE__*/createContext(null);\nexport const ScrollContext = /*#__PURE__*/createContext(null);","import { width } from './constants';\nexport const dialogWidth = input => {\n if (!input) {\n return 'auto';\n }\n const isWidthName = width.values.indexOf(input.toString()) !== -1;\n const widthName = isWidthName && input;\n if (widthName) {\n return `${width.widths[widthName]}px`;\n }\n return typeof input === 'number' ? `${input}px` : input;\n};\nexport const dialogHeight = input => {\n if (!input) {\n return 'auto';\n }\n return typeof input === 'number' ? `${input}px` : input;\n};","/* eslint-disable @atlaskit/design-system/ensure-design-token-usage-spacing */\n/** @jsx jsx */\n\nimport { css, jsx } from '@emotion/react';\nimport { easeInOut } from '@atlaskit/motion/curves';\nimport { mediumDurationMs } from '@atlaskit/motion/durations';\nimport { layers } from '@atlaskit/theme/constants';\nimport { gutter, verticalOffset } from '../constants';\nconst maxWidthDimensions = `calc(100vw - ${gutter * 2}px)`;\nconst maxHeightDimensions = `calc(100vh - ${gutter * 2 - 1}px)`;\n\n// Flex and min-content are set to constrain the height of the body and support multi-column scrolling experiences\nconst positionerStyles = css({\n display: 'flex',\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n position: 'fixed',\n zIndex: layers.modal(),\n top: 0,\n left: 0,\n flexDirection: 'column'\n});\nconst viewportScrollStyles = css({\n height: 'auto',\n position: 'relative',\n '@media (min-width: 480px)': {\n margin: `${gutter}px auto`,\n pointerEvents: 'none'\n }\n});\nconst bodyScrollStyles = css({\n '@media (min-width: 480px)': {\n maxWidth: maxWidthDimensions,\n maxHeight: maxHeightDimensions,\n marginRight: 'auto',\n marginLeft: 'auto',\n position: 'absolute',\n top: `${gutter}px`,\n right: 0,\n left: 0,\n pointerEvents: 'none'\n }\n});\nconst stackTransitionStyles = css({\n transitionDuration: `${mediumDurationMs}ms`,\n transitionProperty: 'transform',\n transitionTimingFunction: easeInOut,\n /**\n * Duplicated from @atlaskit/motion/accessibility\n * because @repo/internal/styles/consistent-style-ordering\n * doesn't work well with object spreading.\n */\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'none',\n transition: 'none'\n }\n});\nconst stackTransformStyles = css({\n transform: 'translateY(var(--modal-dialog-translate-y))'\n});\nconst stackIdleStyles = css({\n transform: 'none'\n});\nconst Positioner = props => {\n const {\n children,\n stackIndex,\n shouldScrollInViewport,\n testId\n } = props;\n return jsx(\"div\", {\n style: {\n '--modal-dialog-translate-y': `${stackIndex * (verticalOffset / 2)}px`\n },\n css: [positionerStyles, stackTransitionStyles, /* We only want to apply transform on modals shifting to the back of the stack. */\n stackIndex > 0 ? stackTransformStyles : stackIdleStyles, shouldScrollInViewport ? viewportScrollStyles : bodyScrollStyles],\n \"data-testid\": testId && `${testId}--positioner`\n }, children);\n};\n\n// eslint-disable-next-line @repo/internal/react/require-jsdoc\nexport default Positioner;","import _extends from \"@babel/runtime/helpers/extends\";\n/** @jsx jsx */\nimport { useMemo } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport { useUID } from 'react-uid';\nimport mergeRefs from '@atlaskit/ds-lib/merge-refs';\nimport useAutoFocus from '@atlaskit/ds-lib/use-auto-focus';\nimport FocusRing from '@atlaskit/focus-ring';\nimport FadeIn from '@atlaskit/motion/fade-in';\nimport { N0, N30A, N60A } from '@atlaskit/theme/colors';\nimport { borderRadius, textColor } from '../constants';\nimport { ModalContext, ScrollContext } from '../context';\nimport useOnMotionFinish from '../hooks/use-on-motion-finish';\nimport { dialogHeight, dialogWidth } from '../utils';\nimport Positioner from './positioner';\nconst dialogStyles = css({\n display: 'flex',\n width: '100%',\n maxWidth: '100vw',\n height: '100%',\n minHeight: 0,\n maxHeight: '100vh',\n // Flex-grow set to 0 to prevent this element from filling its parent flexbox container\n flex: '0 1 auto',\n flexDirection: 'column',\n backgroundColor: `var(--ds-surface-overlay, ${N0})`,\n color: textColor,\n pointerEvents: 'auto',\n '@media (min-width: 480px)': {\n width: 'var(--modal-dialog-width)',\n maxWidth: 'inherit',\n // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing\n marginRight: 'inherit',\n // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing\n marginLeft: 'inherit',\n borderRadius,\n boxShadow: `var(--ds-shadow-overlay, ${`0 0 0 1px ${N30A}, 0 2px 1px ${N30A}, 0 0 20px -6px ${N60A}`})`\n },\n /**\n * This is to support scrolling if the modal's children are wrapped in\n * a form.\n */\n // eslint-disable-next-line @repo/internal/styles/no-nested-styles\n '& > form:only-child': {\n display: 'inherit',\n maxHeight: 'inherit',\n flexDirection: 'inherit'\n }\n});\nconst viewportScrollStyles = css({\n /**\n * This ensures that the element fills the viewport on mobile\n * while also allowing it to overflow if its height is larger than\n * the viewport.\n */\n minHeight: '100vh',\n maxHeight: 'none',\n '@media (min-width: 480px)': {\n minHeight: 'var(--modal-dialog-height)'\n }\n});\nconst bodyScrollStyles = css({\n '@media (min-width: 480px)': {\n height: 'var(--modal-dialog-height)',\n maxHeight: 'inherit'\n }\n});\nconst ModalDialog = props => {\n const {\n width = 'medium',\n shouldScrollInViewport = false,\n autoFocus,\n stackIndex,\n onClose,\n onCloseComplete,\n onOpenComplete,\n height,\n children,\n testId\n } = props;\n const id = useUID();\n const titleId = `modal-dialog-title-${id}`;\n useAutoFocus(typeof autoFocus === 'object' ? autoFocus : undefined,\n // When a user supplies a ref to focus we enable this hook\n typeof autoFocus === 'object');\n const [motionRef, onMotionFinish] = useOnMotionFinish({\n onOpenComplete,\n onCloseComplete\n });\n const modalDialogContext = useMemo(() => ({\n testId,\n titleId,\n onClose\n }), [testId, titleId, onClose]);\n return jsx(Positioner, {\n stackIndex: stackIndex,\n shouldScrollInViewport: shouldScrollInViewport,\n testId: testId\n }, jsx(ModalContext.Provider, {\n value: modalDialogContext\n }, jsx(ScrollContext.Provider, {\n value: shouldScrollInViewport\n }, jsx(FadeIn, {\n entranceDirection: \"bottom\",\n onFinish: onMotionFinish\n }, bottomFadeInProps => jsx(FocusRing, null, jsx(\"section\", _extends({}, bottomFadeInProps, {\n ref: mergeRefs([bottomFadeInProps.ref, motionRef]),\n style: {\n '--modal-dialog-width': dialogWidth(width),\n '--modal-dialog-height': dialogHeight(height)\n },\n css: [dialogStyles, shouldScrollInViewport ? viewportScrollStyles : bodyScrollStyles],\n role: \"dialog\",\n \"aria-labelledby\": titleId,\n \"data-testid\": testId,\n \"data-modal-stack\": stackIndex,\n tabIndex: -1,\n \"aria-modal\": true\n }), children))))));\n};\n\n// eslint-disable-next-line @repo/internal/react/require-jsdoc\nexport default ModalDialog;","import { useEffect, useRef } from 'react';\n\n/**\n * Focusing on the passed element ref after initial mount.\n * Will only focus on initial mount.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/autofocus\n *\n * ```tsx\n * import useAutoFocus from '@atlaskit/ds-lib/use-auto-focus';\n *\n * const elementRef = useRef();\n * useAutoFocus(elementRef, true);\n *\n * ;\n * ```\n *\n * @param ref\n * @param autoFocus\n */\nexport default function useAutoFocus(ref, autoFocus) {\n const initialMount = useRef(true);\n useEffect(() => {\n if (ref && initialMount.current && autoFocus && ref.current) {\n ref.current.focus();\n }\n initialMount.current = false;\n }, [autoFocus, ref]);\n}","import { useCallback, useRef } from 'react';\n// eslint-disable-next-line @repo/internal/react/require-jsdoc\nexport default function useOnMotionFinish({\n onOpenComplete,\n onCloseComplete\n}) {\n const motionRef = useRef(null);\n const onMotionFinish = useCallback(state => {\n if (state === 'entering' && onOpenComplete) {\n onOpenComplete(motionRef.current, true);\n }\n if (state === 'exiting' && onCloseComplete) {\n onCloseComplete(motionRef.current);\n }\n }, [onOpenComplete, onCloseComplete]);\n return [motionRef, onMotionFinish];\n}","/**\n * Assigns the node to all the refs passed in the argument.\n *\n * @param refs: An array of refs (as function or ref object)\n */\nexport default function mergeRefs(refs) {\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null) {\n ref.current = value;\n }\n });\n };\n}","import { useRef } from 'react';\nconst uniqueReferencedValue = {};\n\n/**\n * Executes the initializer function once and saves its result into a ref.\n *\n * ```js\n * const ref = useLazyRef(() => 10);\n * ```\n *\n * @param initializer\n */\nexport default function useLazyRef(initializer) {\n const ref = useRef(uniqueReferencedValue);\n if (ref.current === uniqueReferencedValue) {\n ref.current = initializer();\n }\n return ref;\n}","import useLazyRef from './use-lazy-ref';\n\n/**\n * Saves the passed through `callback` to a ref to ensure stability between renders.\n * As a feature this callback will only be created **once**,\n * this means it will have a stale closure on subsequent render.\n *\n * If you need to access things in the parent scope make sure to do it with refs.\n *\n * ```js\n * const callback = useLazyCallback(() => 10);\n * ```\n *\n * @param callback\n */\nexport default function useLazyCallback(callback) {\n const ref = useLazyRef(() => callback);\n return ref.current;\n}","import { useEffect } from 'react';\nimport useLazyCallback from '@atlaskit/ds-lib/use-lazy-callback';\nimport usePreviousValue from '@atlaskit/ds-lib/use-previous-value';\nimport useStateRef from '@atlaskit/ds-lib/use-state-ref';\nimport { useExitingPersistence } from '@atlaskit/motion/exiting-persistence';\n\n/**\n * ________________________________________________\n * | MAJOR VERSIONS WILL NOT KNOW ABOUT EACH OTHER! |\n * ------------------------------------------------\n *\n * An array which holds references to all currently open modal dialogs.\n * This will only work for modal dialogs of the same major version,\n * as the reference will be different between them.\n *\n * E.g. V11 won't know about any from V12.\n */\nconst modalStackRegister = [];\n/**\n * Returns the position of the calling modal dialog in the modal dialog stack.\n * Stack index of `0` is the highest position in the stack,\n * with every higher number being behind in the stack.\n */\nexport default function useModalStack({\n onStackChange\n}) {\n const {\n isExiting\n } = useExitingPersistence();\n const [stackIndexRef, setStackIndex] = useStateRef(0);\n const currentStackIndex = stackIndexRef.current;\n const previousStackIndex = usePreviousValue(stackIndexRef.current);\n\n // We want to ensure this function **never changes** during the lifecycle of this component.\n // This is why it's assigned to a ref and not in a useMemo/useCallback.\n const updateStack = useLazyCallback(() => {\n const newStackIndex = modalStackRegister.indexOf(updateStack);\n\n // We access the stack index ref instead of state because this closure will always only\n // have the initial state and not any of the later values.\n if (stackIndexRef.current !== newStackIndex) {\n setStackIndex(newStackIndex);\n stackIndexRef.current = newStackIndex;\n }\n });\n useEffect(() => {\n const currentStackIndex = modalStackRegister.indexOf(updateStack);\n if (!isExiting && currentStackIndex === -1) {\n // We are opening the modal dialog.\n // Add ourselves to the modal stack register!\n modalStackRegister.unshift(updateStack);\n }\n if (isExiting && currentStackIndex !== -1) {\n // We are closing the modal dialog using a wrapping modal transition component.\n // Remove ourselves from the modal stack register!\n // NOTE: Modal dialogs that don't have a wrapping modal transition component won't flow through here!\n // For that scenario we cleanup when the component unmounts.\n modalStackRegister.splice(currentStackIndex, 1);\n }\n\n // Fire all registered modal dialogs to update their position in the stack.\n modalStackRegister.forEach(cb => cb());\n }, [updateStack, isExiting]);\n useEffect(() => () => {\n // Final cleanup just in case this modal dialog did not have a wrapping modal transition.\n const currentStackIndex = modalStackRegister.indexOf(updateStack);\n if (currentStackIndex !== -1) {\n modalStackRegister.splice(currentStackIndex, 1);\n modalStackRegister.forEach(cb => cb());\n }\n }, [updateStack]);\n useEffect(() => {\n if (previousStackIndex === undefined) {\n // Initial case that we don't need to notify about.\n return;\n }\n if (previousStackIndex !== currentStackIndex) {\n onStackChange(currentStackIndex);\n }\n }, [onStackChange, previousStackIndex, currentStackIndex]);\n return currentStackIndex;\n}","import { useCallback, useEffect, useLayoutEffect, useState } from 'react';\nimport { bind } from 'bind-event-listener';\n\n/**\n * Returns how far the body is scrolled from the top of the viewport.\n *\n * ____\n * ||____|| <-- overflow\n * | | <-- viewport\n * |____|\n *\n * Scroll distance is the height of overflow outside the viewport.\n */\nfunction getScrollDistance() {\n var _document$documentEle, _document$body;\n return window.pageYOffset || ((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.scrollTop) || ((_document$body = document.body) === null || _document$body === void 0 ? void 0 : _document$body.scrollTop) || 0;\n}\n\n/**\n * Prevents programatic scrolling of the viewport with `scrollIntoView`.\n * Should be used in conjunction with a scroll lock to prevent a user from scrolling.\n *\n * @returns scroll top offset of the viewport\n */\nexport default function usePreventProgrammaticScroll() {\n const [scrollTopOffset, setScrollTopOffset] = useState(0);\n useLayoutEffect(() => {\n setScrollTopOffset(getScrollDistance());\n }, []);\n const onWindowScroll = useCallback(() => {\n if (getScrollDistance() !== scrollTopOffset) {\n window.scrollTo(window.pageXOffset, scrollTopOffset);\n }\n }, [scrollTopOffset]);\n useEffect(() => {\n return bind(window, {\n type: 'scroll',\n listener: onWindowScroll\n });\n }, [onWindowScroll]);\n return scrollTopOffset;\n}","import _extends from \"@babel/runtime/helpers/extends\";\n/** @jsx jsx */\n\nimport { useCallback } from 'react';\nimport { css, jsx } from '@emotion/react';\nimport FocusLock from 'react-focus-lock';\nimport ScrollLock, { TouchScrollable } from 'react-scrolllock';\nimport { usePlatformLeafEventHandler } from '@atlaskit/analytics-next';\nimport Blanket from '@atlaskit/blanket';\nimport noop from '@atlaskit/ds-lib/noop';\nimport useCloseOnEscapePress from '@atlaskit/ds-lib/use-close-on-escape-press';\nimport FadeIn from '@atlaskit/motion/fade-in';\nimport Portal from '@atlaskit/portal';\nimport { layers } from '@atlaskit/theme/constants';\nimport ModalDialog from './internal/components/modal-dialog';\nimport useModalStack from './internal/hooks/use-modal-stack';\nimport usePreventProgrammaticScroll from './internal/hooks/use-prevent-programmatic-scroll';\nconst fillScreenStyles = css({\n width: '100vw',\n height: '100vh',\n position: 'fixed',\n // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing\n top: 0,\n // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing\n left: 0,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch'\n});\nconst whiteListElements = element => {\n // allows focus to reach elements outside the modal if they contain the data-atlas-extension attribute\n return !element.hasAttribute('data-atlas-extension');\n};\n\n/**\n * __Modal wrapper__\n *\n * A modal wrapper displays content that requires user interaction, in a layer above the page.\n * This component is primary container for other modal components.\n *\n * - [Examples](https://atlassian.design/components/modal-dialog/examples)\n * - [Code](https://atlassian.design/components/modal-dialog/code)\n * - [Usage](https://atlassian.design/components/modal-dialog/usage)\n */\nconst ModalWrapper = props => {\n const {\n autoFocus = true,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n shouldScrollInViewport = false,\n stackIndex: stackIndexOverride,\n onClose = noop,\n onStackChange = noop,\n isBlanketHidden,\n children,\n height,\n width,\n onCloseComplete,\n onOpenComplete,\n testId\n } = props;\n const calculatedStackIndex = useModalStack({\n onStackChange\n });\n const stackIndex = stackIndexOverride || calculatedStackIndex;\n const isForeground = stackIndex === 0;\n\n // When a user supplies a ref to focus we skip auto focus via react-focus-lock\n const autoFocusLock = typeof autoFocus === 'boolean' ? autoFocus : false;\n const onCloseHandler = usePlatformLeafEventHandler({\n fn: onClose,\n action: 'closed',\n componentName: 'modalDialog',\n packageName: \"@atlaskit/modal-dialog\",\n packageVersion: \"12.5.5\"\n });\n const onBlanketClicked = useCallback(e => {\n if (shouldCloseOnOverlayClick) {\n onCloseHandler(e);\n }\n }, [shouldCloseOnOverlayClick, onCloseHandler]);\n usePreventProgrammaticScroll();\n useCloseOnEscapePress({\n onClose: onCloseHandler,\n isDisabled: !shouldCloseOnEscapePress || !isForeground\n });\n const modalDialogWithBlanket = jsx(Blanket, {\n isTinted: !isBlanketHidden,\n onBlanketClicked: onBlanketClicked,\n testId: testId && `${testId}--blanket`\n }, jsx(ModalDialog, {\n testId: testId,\n autoFocus: autoFocus,\n stackIndex: stackIndex,\n onClose: onCloseHandler,\n shouldScrollInViewport: shouldScrollInViewport,\n height: height,\n width: width,\n onCloseComplete: onCloseComplete,\n onOpenComplete: onOpenComplete\n }, children));\n return jsx(Portal, {\n zIndex: layers.modal()\n }, jsx(FadeIn, null, fadeInProps => jsx(\"div\", _extends({}, fadeInProps, {\n css: fillScreenStyles,\n \"aria-hidden\": !isForeground\n }), jsx(FocusLock, {\n autoFocus: autoFocusLock,\n disabled: !isForeground,\n returnFocus: true,\n whiteList: whiteListElements\n }, jsx(ScrollLock, null), shouldScrollInViewport ? jsx(TouchScrollable, null, modalDialogWithBlanket) : modalDialogWithBlanket))));\n};\nexport default ModalWrapper;","import { useRef, useState } from 'react';\n\n/**\n * Functions similarly to `useState` however the return value is a ref.\n *\n * ```js\n * const [valueRef, setValue] = useStateRef(0);\n * ```\n *\n * @param initialState\n */\nexport default function useStateRef(initialState) {\n const [value, setValue] = useState(initialState);\n const valueRef = useRef(value);\n valueRef.current = value;\n return [valueRef, setValue];\n}","import { useEffect, useRef } from 'react';\n\n/**\n * Returns the previous value in a given render cycle.\n *\n * ```js\n * const [currentValue] = useState(1);\n * const previousValue = usePreviousValue(currentValue);\n *\n * previousValue; // undefined\n * currentValue; // 1\n * ```\n *\n * @param value\n */\nexport default function usePreviousValue(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}","import { useCallback, useEffect, useRef } from 'react';\nimport { bindAll } from 'bind-event-listener';\nimport { ESCAPE } from '../utils/keycodes';\n/**\n * Calls back when the escape key is pressed.\n * To be used exclusively for closing layered components.\n * Use the `isDisabled` argument to ignore closing events.\n *\n * ```js\n * useCloseOnEscapePress({\n * onClose: () => {},\n * isDisabled: false,\n * });\n * ```\n */\nexport default function useCloseOnEscapePress({\n onClose,\n isDisabled\n}) {\n const escapePressed = useRef(false);\n const onKeyDown = useCallback(e => {\n if (isDisabled || escapePressed.current || e.key !== ESCAPE) {\n // We're either already handling the key down event or it's not escape.\n // Bail early!\n return;\n }\n escapePressed.current = true;\n onClose(e);\n }, [onClose, isDisabled]);\n const onKeyUp = useCallback(() => {\n escapePressed.current = false;\n }, []);\n useEffect(() => {\n return bindAll(document, [{\n type: 'keydown',\n listener: onKeyDown\n }, {\n type: 'keyup',\n listener: onKeyUp\n }], {\n capture: false\n });\n }, [onKeyDown, onKeyUp]);\n}","/**\n * Character key codes which can be used in keyboard events.\n */\nexport const KEY_UP = 'ArrowUp';\nexport const KEY_DOWN = 'ArrowDown';\nexport const KEY_HOME = 'Home';\nexport const KEY_END = 'End';\nexport const ESCAPE = 'Escape';","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport Button from '@atlaskit/button';\nimport ModalDialog, { ModalTransition } from '@atlaskit/modal-dialog';\nimport { B400 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { TRACKING_EVENT_NAMES } from '../utils';\n\ntype ModalRedirectConfirmProps = {\n readonly showModal: boolean;\n readonly setShowModal: (showModal: boolean) => void;\n readonly ctaURL: string;\n readonly freeLimit: number;\n};\n\nconst SIGN_UP = 'SIGN_UP';\nconst CANCEL = 'CANCEL';\n\nexport const ModalRedirectConfirm = ({\n showModal,\n setShowModal,\n ctaURL,\n freeLimit\n}: ModalRedirectConfirmProps) => {\n const { createAnalyticsEvent } = useAnalyticsEvents();\n\n const closeAndRedirect = () => {\n if (createAnalyticsEvent) {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.unitBreachModalDecision,\n label: 'sign-up-for-free'\n });\n analyticsEvent.fire();\n }\n\n setShowModal(false);\n window.location.href = ctaURL;\n };\n\n const cancelAndCloseModal = () => {\n if (createAnalyticsEvent) {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.unitBreachModalDecision,\n label: 'cancel'\n });\n analyticsEvent.fire();\n }\n setShowModal(false);\n };\n\n const actions = [\n {\n id: 1,\n name: SIGN_UP,\n text: (\n \n ),\n onClick: closeAndRedirect\n },\n {\n id: 2,\n name: CANCEL,\n text: (\n \n ),\n onClick: cancelAndCloseModal\n }\n ];\n\n return (\n \n {showModal && (\n cancelAndCloseModal()} autoFocus={false}>\n \n \n \n \n \n \n \n {actions.map((action) => {\n return (\n \n {action.text}\n \n );\n })}\n \n \n )}\n \n );\n};\n\nconst ModalHeader = styled.h4`\n font-family: Charlie Display;\n font-size: 20px;\n font-weight: 600;\n line-height: 24px;\n margin: 26px 24px 12px 24px;\n`;\n\nconst ModalBody = styled.div`\n font-family: Charlie Text;\n font-size: 14px;\n line-height: 20px;\n margin: 0 24px;\n\n a {\n -webkit-appearance: none;\n color: ${B400};\n outline: none;\n text-decoration: none;\n }\n`;\n\nconst ModalFooter = styled.div`\n font-family: Charlie Text;\n margin: 24px 24px;\n overflow: auto;\n\n button {\n float: right;\n line-height: 36px !important;\n margin: 2px 2px 2px 6px;\n }\n`;\n","import { PricingPeriod } from '@atlassiansox/bxp-use-pricing';\nimport React, { ReactNode } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport {\n Annual,\n CenterJustifiedContainer,\n EnterpriseAnnualBillingMessage,\n EnterpriseContact,\n EnterpriseNoJPY,\n EnterpriseUnmetMin,\n Free,\n Monthly,\n SpecialPlanNames,\n SpecialProductKeys\n} from '../..';\nimport { usePriceFinderStore } from '../../store';\n\ntype PlanCardBodyProps = {\n billingCycle: PricingPeriod;\n fontSize: string;\n overSignupLimit: boolean;\n planName: string;\n currencyISOCode: string;\n unitCount: number;\n unitMinEnterprise: number;\n productKey: string;\n priceCalcIdx: number;\n contactURL: string;\n};\n\nconst PlanCardBody = ({\n billingCycle,\n fontSize,\n overSignupLimit,\n planName,\n currencyISOCode,\n unitCount,\n unitMinEnterprise,\n productKey,\n priceCalcIdx,\n contactURL\n}: PlanCardBodyProps) => {\n const [{ priceCalcs }, actions] = usePriceFinderStore();\n const priceCalc = priceCalcs[priceCalcIdx];\n\n if (!priceCalc) {\n throw new Error(\n `Price calculation was not found for index ${priceCalcIdx}`\n );\n }\n\n const { formattedTotalPrice } = priceCalc;\n\n let planMessage =\n billingCycle === 'MONTHLY' ? (\n \n ) : (\n \n );\n\n if (overSignupLimit && productKey === SpecialProductKeys.BITBUCKET) {\n planMessage = (\n \n contact our sales team.\"\n values={{\n a: (chunks: ReactNode) => {chunks}\n }}\n />\n \n );\n } else if (overSignupLimit) {\n planMessage = (\n \n \n \n );\n }\n\n switch (planName) {\n case SpecialPlanNames.FREE:\n planMessage = (\n \n );\n break;\n\n case SpecialPlanNames.ENTERPRISE:\n if (billingCycle === 'MONTHLY') {\n planMessage = (\n actions.updateBillingCycle('ANNUAL')}\n />\n );\n } else if (currencyISOCode === 'JPY') {\n planMessage = ;\n } else if (overSignupLimit) {\n planMessage = ;\n } else if (unitCount < unitMinEnterprise) {\n planMessage = (\n \n );\n }\n break;\n }\n return planMessage;\n};\n\nexport { PlanCardBody };\n","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport styled from '@emotion/styled';\nimport React, { LegacyRef, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useDesktopMediaQuery } from '../../hooks';\nimport { ProductPlan } from '../../models';\nimport { usePriceFinderStore } from '../../store';\nimport {\n DefaultPlanLimits,\n deviceMediaQueries,\n SpecialPlanNames,\n TRACKING_EVENT_NAMES\n} from '../../utils';\nimport { CTAButton } from '../cta-button';\nimport { ModalRedirectConfirm } from '../modal-redirect-confirm';\nimport { PlanCard } from './plan-card';\nimport { PlanCardBody } from './plan-card-body';\n\ntype PlanCardsContainerProps = {\n productKey: string;\n productPlans: ProductPlan[];\n recommendedPlanName: string;\n signupURL: string;\n contactURL: string;\n currencyISOCode: string;\n fontSize: string;\n cardRef: LegacyRef;\n unitLimitFree: number;\n unitMinEnterprise: number;\n};\n\nconst PlanCardsContainer = ({\n productKey,\n productPlans,\n recommendedPlanName,\n signupURL,\n contactURL,\n currencyISOCode,\n fontSize,\n cardRef,\n unitLimitFree,\n unitMinEnterprise\n}: PlanCardsContainerProps) => {\n const { createAnalyticsEvent } = useAnalyticsEvents();\n const isDesktop = useDesktopMediaQuery();\n const [showModal, setShowModal] = useState(false);\n const [state] = usePriceFinderStore();\n\n return (\n \n \n {productPlans.map((productPlan, idx, productPlans) => {\n const {\n planName,\n signupURLSuffix,\n planFeatureMessages,\n signupUnitLimit\n } = productPlan;\n\n const isHighlighted = planName === recommendedPlanName;\n const isRightHighlighted =\n isDesktop &&\n ((isHighlighted && idx === 0) ||\n productPlans[idx + 1]?.planName === recommendedPlanName);\n\n const overSignupLimit =\n state.unitCount > (signupUnitLimit || DefaultPlanLimits.UNIT_LIMIT);\n\n let ctaButton = (\n {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.planCardCTAButtonClicked,\n label: `${planName}-start-trial`,\n userBoxValue: state.unitCount\n });\n analyticsEvent.fire();\n\n window.location.href = signupURL + (signupURLSuffix || '');\n }}\n >\n \n \n );\n\n switch (planName) {\n case SpecialPlanNames.FREE:\n ctaButton = (\n {\n if (state.unitCount > unitLimitFree) {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.unitLimitBreachModal\n });\n analyticsEvent.fire();\n\n setShowModal(true);\n } else {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.planCardCTAButtonClicked,\n label: `${planName}-get-it-now`,\n userBoxValue: state.unitCount\n });\n analyticsEvent.fire();\n\n window.location.href =\n signupURL + (signupURLSuffix || '');\n }\n }}\n >\n \n \n );\n break;\n\n case SpecialPlanNames.ENTERPRISE:\n ctaButton = (\n {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.planCardCTAButtonClicked,\n label: `${planName}-contact-sales`,\n userBoxValue: state.unitCount\n });\n analyticsEvent.fire();\n\n window.location.href = contactURL;\n }}\n >\n \n \n );\n break;\n }\n\n return (\n \n \n \n );\n })}\n \n \n \n );\n};\n\nconst ComponentWrapper = styled.div<{\n productPlansLength: number;\n}>`\n display: grid;\n ${deviceMediaQueries.desktop} {\n ${(props) =>\n props.productPlansLength <= 2 ? 'justify-content:center' : ''}\n }\n`;\n\nconst CardsContainer = styled.div<{\n productPlansLength: number;\n}>`\n margin-top: 16px;\n\n ${deviceMediaQueries.desktop} {\n display: grid;\n grid-template-columns: repeat(\n ${(props) => props.productPlansLength},\n minmax(0, ${(props) => (props.productPlansLength >= 3 ? '1fr' : '390px')})\n );\n grid-template-rows: 1fr;\n margin-top: 25px;\n }\n`;\n\nexport { PlanCardsContainer };\n","import styled from '@emotion/styled';\nimport React, { PropsWithChildren } from 'react';\n\nexport const CenterJustifiedContainer = ({\n children\n}: PropsWithChildren) => {children};\n\nconst CenterJustified = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n justify-content: center;\n line-height: 24px;\n`;\n","import { N900 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React from 'react';\n\nexport type PriceDisplayProps = {\n readonly formattedPrice: string;\n readonly fontSize: string;\n readonly planName: string;\n};\n\nexport const PriceDisplay = ({\n formattedPrice,\n fontSize,\n planName\n}: PriceDisplayProps) => (\n \n \n {formattedPrice}\n \n \n);\n\nconst FormattedPriceDisplay = styled.div`\n align-self: center;\n color: ${N900};\n font-family: Charlie Display;\n font-size: 54px;\n font-weight: 500;\n line-height: 54px;\n margin: 24px 0 8px;\n`;\n","import { FormattedPriceCalculationResponse } from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { UserTier } from '../../user-tier';\nimport { CenterJustifiedContainer } from './center-justified-container';\nimport { PriceDisplay } from './price-display';\n\nexport type AnnualProps = {\n readonly priceCalc: FormattedPriceCalculationResponse;\n readonly fontSize: string;\n readonly planName: string;\n};\n\nexport const Annual = ({ priceCalc, fontSize, planName }: AnnualProps) => (\n <>\n \n \n \n \n \n \n \n \n \n >\n);\n\nconst PriceDesc = styled.div`\n font-size: 16px;\n line-height: 24px;\n`;\n\nconst UserTierContainer = styled.div`\n margin: 15px 0 32px;\n`;\n","import styled from '@emotion/styled';\nimport React, { PropsWithChildren } from 'react';\nimport { useDesktopMediaQuery } from '../../../../hooks';\n\nexport const MobileVerticallyPaddedContainer = ({\n children\n}: PropsWithChildren) => {\n const isMobile = !useDesktopMediaQuery();\n\n return {children};\n};\n\nconst MobilePadded = styled.div<{\n isMobile: boolean;\n}>`\n padding: ${(props) => (props.isMobile ? '32px 0' : '0')};\n`;\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CenterJustifiedContainer } from '../center-justified-container';\nimport { MobileVerticallyPaddedContainer } from './mobile-vertically-padded-container';\n\nconst EnterpriseContact = () => (\n \n \n \n \n \n);\n\nexport { EnterpriseContact };\n","import { B300, B500 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React, { ReactNode } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CenterJustifiedContainer } from '../center-justified-container';\nimport { MobileVerticallyPaddedContainer } from './mobile-vertically-padded-container';\n\nexport type EnterpriseAnnualBillingMessageProps = {\n onToggleToAnnualBilling: () => void;\n};\n\nconst EnterpriseAnnualBillingMessage = ({\n onToggleToAnnualBilling\n}: EnterpriseAnnualBillingMessageProps) => (\n \n \n Billed annually. Switch the Billing cycle to Annual to view Enterprise pricing.\"\n values={{\n a: (chunks: ReactNode) => (\n {\n e.preventDefault();\n onToggleToAnnualBilling();\n }}\n >\n {chunks}\n \n )\n }}\n >\n \n \n);\n\nconst StyledBilledAnnual = styled.a`\n color: ${B300};\n &:hover {\n color: ${B500};\n }\n`;\n\nexport { EnterpriseAnnualBillingMessage };\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CenterJustifiedContainer } from '../center-justified-container';\nimport { MobileVerticallyPaddedContainer } from './mobile-vertically-padded-container';\n\nconst EnterpriseNoJPY = () => (\n \n \n \n \n \n);\n\nexport { EnterpriseNoJPY };\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CenterJustifiedContainer } from '../center-justified-container';\nimport { MobileVerticallyPaddedContainer } from './mobile-vertically-padded-container';\n\nexport type EnterpriseUnmetMinProps = {\n minRequiredUnits: number;\n};\n\nconst EnterpriseUnmetMin = ({ minRequiredUnits }: EnterpriseUnmetMinProps) => (\n \n \n \n \n \n);\n\nexport { EnterpriseUnmetMin };\n","import { N900 } from '@atlaskit/theme/colors';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CenterJustifiedContainer } from './center-justified-container';\nimport { PriceDisplay } from './price-display';\n\nexport type FreeProps = {\n formattedZeroPrice: string;\n fontSize: string;\n planName: string;\n};\n\nexport const Free = ({ planName, formattedZeroPrice, fontSize }: FreeProps) => (\n <>\n \n \n \n \n \n \n \n \n \n >\n);\n\nconst PriceDesc = styled.div`\n font-size: 16px;\n line-height: 24px;\n`;\n\nconst MonthlyDesc = styled.div`\n color: ${N900};\n font-size: 16px;\n font-weight: bold;\n line-height: 24px;\n margin-bottom: 32px;\n`;\n","import { N900 } from '@atlaskit/theme/colors';\nimport { FormattedPriceCalculationResponse } from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { CenterJustifiedContainer } from './center-justified-container';\nimport { PriceDisplay } from './price-display';\n\nexport type MonthlyProps = {\n readonly priceCalc: FormattedPriceCalculationResponse;\n readonly fontSize: string;\n readonly planName: string;\n};\n\nexport const Monthly = ({ priceCalc, fontSize, planName }: MonthlyProps) => {\n const { formattedTotalPrice, formattedAvgPerUnitPrice } = priceCalc;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n >\n );\n};\n\nconst PriceDescLine1 = styled.div`\n font-size: 16px;\n line-height: 24px;\n`;\n\nconst PriceDescLine2 = styled.div`\n color: ${N900};\n font-size: 16px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 32px;\n`;\n","import React, { useEffect } from 'react';\nimport { useFitPriceTextIntoPlanCard } from '../hooks/use-fit-price-text-into-plan-card';\n\nexport type HighestDisplayPriceProps = {\n readonly cardWidth: number;\n readonly onFontSizeHandler: (fontSize: string) => void;\n};\n\nexport const HighestDisplayPriceFontSize = ({\n cardWidth,\n onFontSizeHandler\n}: HighestDisplayPriceProps) => {\n const { ref, fontSize, highestDisplayPrice } = useFitPriceTextIntoPlanCard();\n\n useEffect(() => {\n onFontSizeHandler(fontSize);\n }, [fontSize]);\n\n return (\n \n \n {highestDisplayPrice}\n \n \n );\n};\n","import { FormattedPriceCalculationResponse } from '@atlassiansox/bxp-use-pricing';\nimport { useFitText } from '../hooks';\nimport { usePriceFinderStore } from '../store';\n\nexport const useFitPriceTextIntoPlanCard = () => {\n const { fontSize, ref } = useFitText({ resolution: 5 });\n const [{ billingCycle, priceCalcs }] = usePriceFinderStore();\n\n const sortOnTotal = (\n { formattedTotalPrice: priceA }: FormattedPriceCalculationResponse,\n { formattedTotalPrice: priceB }: FormattedPriceCalculationResponse\n ) => priceB.length - priceA.length;\n\n const sortOnAvg = (\n { formattedAvgPerUnitPrice: priceA }: FormattedPriceCalculationResponse,\n { formattedAvgPerUnitPrice: priceB }: FormattedPriceCalculationResponse\n ) => priceB.length - priceA.length;\n\n let highestDisplayPrice = '$0';\n const getPrice = (\n sortOn: (\n a: FormattedPriceCalculationResponse,\n b: FormattedPriceCalculationResponse\n ) => number\n ) => priceCalcs.slice().sort(sortOn)[0];\n\n if (priceCalcs.length) {\n if (billingCycle === 'MONTHLY') {\n highestDisplayPrice = getPrice(sortOnAvg)?.formattedAvgPerUnitPrice || '';\n } else {\n highestDisplayPrice = getPrice(sortOnTotal)?.formattedTotalPrice || '';\n }\n }\n\n return { ref, fontSize, highestDisplayPrice };\n};\n","import { useAnalyticsEvents } from '@atlaskit/analytics-next';\nimport { N900 } from '@atlaskit/theme/colors';\nimport { AsyncResult } from '@atlassiansox/bxp-react-core';\nimport { CurrencyISOCode, FetchPricing } from '@atlassiansox/bxp-use-pricing';\nimport styled from '@emotion/styled';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { PlanCardsContainer, PricingExampleContainer } from './components';\nimport { HighestDisplayPriceFontSize } from './components/highest-display-price-font-size';\nimport {\n useBoundingClientRectRef,\n useDesktopMediaQuery,\n usePriceFinderPricingData\n} from './hooks';\nimport { ProductPlan } from './models';\nimport { initialState, usePriceFinderStore } from './store';\nimport {\n DefaultPlanLimits,\n deviceMediaQueries,\n TRACKING_EVENT_NAMES,\n UNIT_TRACKING_TERMS\n} from './utils/constants';\nimport { getRecommendedPlanName } from './utils/get-recommended-plan-name';\n\nexport type PriceFinderProps = {\n readonly productKey?: string;\n readonly productPlans: ProductPlan[];\n\n readonly signupURL?: string;\n readonly halpSignupURLs?: string[];\n readonly contactURL?: string;\n\n readonly currencyISOCode?: string;\n readonly localeISOCode?: string;\n readonly fetchPricing: FetchPricing;\n\n readonly defaultUnitCount?: number;\n\n readonly unitTrackingTerm?: UNIT_TRACKING_TERMS;\n\n readonly pricingExampleUnitCounts?: number[];\n readonly hideBillingSelector?: boolean;\n readonly unitLimitFree?: number;\n readonly unitMinEnterprise?: number;\n readonly showFirstFlatRateTier?: boolean;\n};\n\nconst PriceFinder = ({\n productKey = '',\n productPlans,\n\n signupURL = '/try/cloud/signup',\n contactURL = '/contact/enterprise',\n\n defaultUnitCount = 10,\n pricingExampleUnitCounts = [300, 250],\n\n currencyISOCode = 'USD',\n localeISOCode = 'en-US',\n fetchPricing,\n\n hideBillingSelector = false,\n unitTrackingTerm = UNIT_TRACKING_TERMS.users,\n\n unitLimitFree = DefaultPlanLimits.UNIT_LIMIT_FREE,\n unitMinEnterprise = DefaultPlanLimits.UNIT_MIN_ENTERPRISE,\n\n showFirstFlatRateTier\n}: PriceFinderProps) => {\n // setting this up here to take care of default unitCount for products like JSM, Bitbucket.\n initialState.unitCount = defaultUnitCount;\n\n const isDesktop = useDesktopMediaQuery();\n const { createAnalyticsEvent } = useAnalyticsEvents();\n const [{ unitCount, billingCycle }, actions] = usePriceFinderStore();\n const [fontSize, setFontSize] = useState('100%');\n\n useEffect(() => {\n void actions.updateUnitCount(defaultUnitCount);\n }, []);\n\n const [cardsContainerRect, cardRef] = useBoundingClientRectRef();\n\n // send analytics event if unit count has changed\n useEffect(() => {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.unitTierBox,\n unitBoxValue: unitCount\n });\n analyticsEvent.fire();\n }, [unitCount]);\n\n // send analytics event if billing cycle has changed\n useEffect(() => {\n const analyticsEvent = createAnalyticsEvent({\n name: TRACKING_EVENT_NAMES.billingCycleChanged,\n newPeriod: billingCycle\n });\n analyticsEvent.fire();\n }, [billingCycle]);\n\n const fetchPriceCalcs = usePriceFinderPricingData(\n pricingExampleUnitCounts,\n productKey,\n productPlans,\n currencyISOCode as CurrencyISOCode,\n localeISOCode,\n fetchPricing,\n unitMinEnterprise\n );\n\n const completedCalcsClone = AsyncResult.isComplete(fetchPriceCalcs)\n ? fetchPriceCalcs.resolve()\n : null;\n const completedCalcsRef = useRef(completedCalcsClone);\n completedCalcsRef.current = completedCalcsClone;\n\n if (AsyncResult.isPending(fetchPriceCalcs)) {\n return ; // no loading state currently\n } else if (AsyncResult.isComplete(fetchPriceCalcs)) {\n const completedCalcs = fetchPriceCalcs.resolve();\n void actions.updatePriceCalcs(completedCalcs);\n } else if (AsyncResult.isError(fetchPriceCalcs)) {\n throw fetchPriceCalcs.error;\n }\n\n const recommendedPlanName = getRecommendedPlanName(unitCount, productPlans);\n\n let cardWidth = cardsContainerRect\n ? Math.floor(cardsContainerRect.width / productPlans.length) * 0.75\n : -1;\n\n if (!isDesktop) {\n cardWidth = (cardsContainerRect && cardsContainerRect.width) || 200;\n }\n\n return (\n \n \n\n \n \n \n\n \n\n \n \n );\n};\n\nexport const PriceFinderContainer = styled.div`\n color: ${N900};\n font-family: Charlie Text;\n\n width: 100%;\n h3 {\n font-family: Charlie Display;\n font-weight: 500;\n }\n\n h4 {\n font-family: Charlie Display;\n font-weight: normal;\n }\n`;\n\nconst PlansAndPricingHeader = styled.h2`\n color: ${N900};\n font-family: Charlie Display;\n font-size: 20px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n margin: 32px 0;\n text-align: center;\n\n ${deviceMediaQueries.desktop} {\n font-size: 36px;\n line-height: 44px;\n margin-bottom: 48px 0;\n }\n`;\n\nexport default PriceFinder;\n","import { Ref, useCallback, useEffect, useRef, useState } from 'react';\n\nexport function useBoundingClientRectRef(): [\n ClientRect | undefined,\n Ref\n] {\n const onResizeRef = useRef();\n const [clientRect, setClientRect] = useState();\n const ref = useCallback((element: HTMLDivElement | null) => {\n const onResize = () => {\n if (element) {\n setClientRect(element.getBoundingClientRect());\n }\n };\n\n onResizeRef.current = onResize;\n\n if (element) {\n onResize();\n window.addEventListener('resize', onResize);\n }\n }, []);\n\n useEffect(() => {\n const { current } = onResizeRef;\n return () => {\n if (current) {\n window.removeEventListener('resize', current);\n }\n };\n }, []);\n\n return [clientRect, ref];\n}\n","import {\n CurrencyISOCode,\n FetchPricing,\n PriceCalculationRequest,\n PricingPeriod,\n usePricing\n} from '@atlassiansox/bxp-use-pricing';\nimport { useMemo } from 'react';\nimport { ProductPlan } from '../models';\nimport { usePriceFinderStore } from '../store';\nimport { DefaultPlanLimits, SpecialPlanNames } from '../utils';\n\nconst getPriceFinderRequests = (\n pricingExampleUnitCounts: number[],\n productKey: string,\n productPlans: ProductPlan[],\n unitMinEnterprise: number,\n unitCount: number,\n billingCycle: PricingPeriod\n): PriceCalculationRequest[] => {\n return useMemo(() => {\n const getNumUnits = (planName: string, signupUnitLimit: number) => {\n let adjNumUnits = 0;\n\n // following scenarios do not have pricing and should send a zero unit count,\n // the zero pricing will not be displayed and is needed only to retain the\n // correct array order of the pricing requests/responses\n\n // Free plan has no pricing\n const isFree = planName === SpecialPlanNames.FREE;\n\n // Enterprise plans do not have monthly pricing\n const isMonthlyEnterprise =\n planName === SpecialPlanNames.ENTERPRISE && billingCycle === 'MONTHLY';\n\n // Enterprise plans have a minimum unit count\n const isUnmetUnitCountEnterprise =\n planName === SpecialPlanNames.ENTERPRISE &&\n unitCount < unitMinEnterprise;\n const isOverSignupUnitLimit = unitCount > signupUnitLimit;\n\n if (\n ![\n isFree,\n isMonthlyEnterprise,\n isUnmetUnitCountEnterprise,\n isOverSignupUnitLimit\n ].includes(true)\n ) {\n adjNumUnits = unitCount;\n }\n\n // keep unit count to general maximum limit\n return Math.min(adjNumUnits, DefaultPlanLimits.UNIT_LIMIT);\n };\n\n const planPriceReqs: PriceCalculationRequest[] = productPlans.map(\n ({ offeringSku, planName, signupUnitLimit }) => ({\n ccpOfferingSKU: offeringSku,\n hamsProductKey:\n productKey +\n (planName === SpecialPlanNames.STANDARD\n ? ''\n : `.${planName.toLowerCase()}`),\n numUnits: getNumUnits(\n planName,\n signupUnitLimit || DefaultPlanLimits.UNIT_LIMIT\n ),\n period: billingCycle\n })\n );\n\n const standardProductPlan = productPlans.find(\n (plan) => plan.planName === SpecialPlanNames.STANDARD\n );\n\n if (!standardProductPlan) {\n throw new Error(\n 'Standard product plan was not provided as required for pricing example.'\n );\n }\n\n const pricingExampleRequest: PriceCalculationRequest = {\n ccpOfferingSKU: standardProductPlan.offeringSku,\n hamsProductKey: productKey,\n numUnits:\n pricingExampleUnitCounts[billingCycle === 'MONTHLY' ? 0 : 1] || 300,\n period: billingCycle\n };\n\n return planPriceReqs.concat(pricingExampleRequest);\n }, [unitCount, billingCycle]);\n};\n\nexport function usePriceFinderPricingData(\n pricingExampleUnitCounts: number[],\n productKey: string,\n productPlans: ProductPlan[],\n currencyISOCode: CurrencyISOCode,\n localeISOCode: string,\n fetchPricing: FetchPricing,\n unitMinEnterprise: number\n) {\n const [{ unitCount, billingCycle }] = usePriceFinderStore();\n const priceCalcReqs = getPriceFinderRequests(\n pricingExampleUnitCounts,\n productKey,\n productPlans,\n unitMinEnterprise,\n unitCount,\n billingCycle\n );\n\n return usePricing(\n priceCalcReqs,\n fetchPricing,\n currencyISOCode,\n localeISOCode\n );\n}\n","import {\n ContentfulOffering,\n OfferingSKUMap,\n PricingPlans,\n ProductKeyMap\n} from '@atlassiansox/asc-product-catalog';\nimport { AsyncResult, useAsync } from '@atlassiansox/bxp-react-core';\nimport { useState } from 'react';\nimport { FetchPricing } from './models';\nimport {\n CurrencyISOCode,\n FormattedPriceCalculationResponse,\n PriceCalculationRequest\n} from './models/price-req-response';\nimport { calculatePrice, extractPricingTiersFromEntry } from './utils';\nimport getFreePriceCalc from './utils/get-free-price-calc';\n\nexport function usePricing(\n getPriceRequests: readonly PriceCalculationRequest[],\n fetchPricing: FetchPricing,\n currencyISOCode: CurrencyISOCode,\n localeISOCode: string\n): AsyncResult {\n const [cachedHAMSPricingPlansByKey, setCachedHAMSPricingPlansByKey] =\n useState>();\n\n const [cachedCCPOfferingsBySKU, setCachedCCPOfferingsBySKU] = useState<\n undefined | OfferingSKUMap\n >();\n\n return useAsync(async () => {\n const offeringSKUs = new Set();\n const hamsProductKeys = new Set();\n\n for (const getPriceRequest of getPriceRequests) {\n const { ccpOfferingSKU, hamsProductKey } = getPriceRequest;\n\n if (\n [ccpOfferingSKU, hamsProductKey].every(\n (v) => v === null || v === undefined || v === ''\n )\n ) {\n console.error(\n `Request for pricing did not contain CCP SKU or HAMS product key, request will be skipped: ${JSON.stringify(\n getPriceRequest\n )}`\n );\n }\n\n if (ccpOfferingSKU) {\n offeringSKUs.add(ccpOfferingSKU);\n }\n\n if (hamsProductKey) {\n hamsProductKeys.add(hamsProductKey);\n }\n }\n\n const uncachedCCPSKUs = [];\n for (const sku of offeringSKUs) {\n if (!cachedCCPOfferingsBySKU || !cachedCCPOfferingsBySKU[sku]) {\n uncachedCCPSKUs.push(sku);\n }\n }\n\n const uncachedHAMSProductKeys = [];\n for (const key of hamsProductKeys) {\n if (!cachedHAMSPricingPlansByKey || !cachedHAMSPricingPlansByKey[key]) {\n uncachedHAMSProductKeys.push(key);\n }\n }\n\n let ccpOfferingsBySKU = cachedCCPOfferingsBySKU;\n if (uncachedCCPSKUs.length) {\n const newCCPOfferingsBySKU = await fetchPricing.getOfferingsBySKU({\n offeringSKUs: Array.from(uncachedCCPSKUs)\n });\n\n ccpOfferingsBySKU = {\n ...cachedCCPOfferingsBySKU,\n ...newCCPOfferingsBySKU\n };\n\n setCachedCCPOfferingsBySKU(ccpOfferingsBySKU);\n }\n\n let hamsPricingPlansByKey = cachedHAMSPricingPlansByKey;\n if (uncachedHAMSProductKeys.length) {\n const newHamsPricingPlansByKey = await fetchPricing.getPricing({\n productKeys: Array.from(uncachedHAMSProductKeys)\n });\n\n hamsPricingPlansByKey = {\n ...cachedHAMSPricingPlansByKey,\n ...newHamsPricingPlansByKey\n };\n\n setCachedHAMSPricingPlansByKey(hamsPricingPlansByKey);\n }\n\n const priceCalculations = [];\n for (const {\n ccpOfferingSKU,\n hamsProductKey,\n numUnits,\n period\n } of getPriceRequests) {\n if (numUnits === 0) {\n priceCalculations.push(getFreePriceCalc(currencyISOCode));\n } else {\n const pricingTiers = extractPricingTiersFromEntry(\n ccpOfferingsBySKU as OfferingSKUMap,\n hamsPricingPlansByKey as ProductKeyMap,\n period,\n currencyISOCode,\n ccpOfferingSKU,\n hamsProductKey\n );\n\n if (!pricingTiers) {\n throw new Error(`Pricing tiers not found for ${period}.`);\n }\n\n priceCalculations.push(\n calculatePrice(numUnits, pricingTiers, currencyISOCode, localeISOCode)\n );\n }\n }\n\n return priceCalculations;\n }, [getPriceRequests, currencyISOCode, localeISOCode]);\n}\n","import { ProductPlan } from '../models';\n\nconst getRecommendedPlanIdx = (unitCount: number, minUnitCounts: number[]) => {\n const len = minUnitCounts.length - 1;\n\n return (\n len -\n minUnitCounts\n .reverse()\n .findIndex((minUnitCount) => unitCount > minUnitCount)\n );\n};\n\nexport const getRecommendedPlanName = (\n unitCount: number,\n productPlans: ProductPlan[]\n) => {\n const recommendedPlanIdx = getRecommendedPlanIdx(\n unitCount,\n productPlans.map(\n (productPlan) => productPlan.requiredMinUnitCountForRecommendation\n )\n );\n\n return productPlans[recommendedPlanIdx]?.planName ?? '';\n};\n","import PriceFinder, {\n PricingIntlProvider,\n} from \"@atlassiansox/bxp-price-finder\";\nimport React from \"react\";\nimport useGeoCurrency from \"./use-geo-currency\";\nimport { AnalyticsListener } from \"@atlaskit/analytics-next\";\nimport tracking from \"../../../utils/tracking\";\nimport { fetchPricing } from \"../../../utils/get-catalog-client\";\n\nconst sendAnalytics = (analytic) => {\n const eventName =\n analytic.payload && analytic.payload.name\n ? analytic.payload.name\n : \"price-finder-component-track-event\";\n\n let eventPayload = analytic.payload;\n if (analytic.context[0]) {\n eventPayload = Object.assign(analytic.context[0], analytic.payload);\n }\n\n if (eventPayload.name !== undefined) {\n delete eventPayload.name;\n }\n\n try {\n tracking.trackEvent(eventName, eventPayload);\n } catch (e) {\n console.log(eventName, \"AnalyticsListener did not find tracker\");\n }\n};\n\nconst LANGS = [\n \"de\",\n \"en\",\n \"es\",\n \"fr\",\n \"it\",\n \"ko\",\n \"hu\",\n \"nl\",\n \"ja\",\n \"pl\",\n \"br\",\n \"ru\",\n \"zh\",\n];\n\nconst PriceFinderContainer = ({\n basePriceFinderConfig,\n priceFinderConfig,\n productPlans,\n signupURL,\n contactURL,\n // planFeatureMessages,\n}) => {\n // get union of all config keys (base and specific product config)\n const configKeys = new Set();\n const allKeys = Object.keys(basePriceFinderConfig).concat(\n Object.keys(priceFinderConfig)\n );\n\n for (const allConfigKey of allKeys) {\n configKeys.add(allConfigKey);\n }\n\n let integratedPriceFinderConfig = {};\n for (const configKey of configKeys) {\n integratedPriceFinderConfig[configKey] =\n priceFinderConfig[configKey] || basePriceFinderConfig[configKey];\n }\n\n const {\n productKey,\n defaultUnitCount,\n halpSignupURLs,\n // planDescHeaderMessages,\n unitLimitFree,\n unitMinEnterprise,\n hideBillingCycleSelector,\n showFirstFlatRateTier,\n forceCurrencyISOCode,\n } = integratedPriceFinderConfig;\n\n const docLang = document.documentElement.lang;\n\n const getLocalizedKey = (keyName, lang) =>\n lang === \"en\" ? keyName : `${keyName}_${lang}`;\n\n // const localizedPlanDescHeaderMessagesKey = getLocalizedKey(\n // \"planDescHeaderMessages\",\n // docLang\n // );\n\n // const localizedPlanDescHeaderMessages =\n // integratedPriceFinderConfig[localizedPlanDescHeaderMessagesKey] ||\n // planDescHeaderMessages;\n\n for (let idx = 0; idx < productPlans.length; idx++) {\n const productPlan = productPlans[idx];\n\n // UNUSED currently!\n // productPlan.planDescHeaderMessage =\n // localizedPlanDescHeaderMessages[idx] || \"\";\n\n productPlan.planDescHeaderMessage =\n priceFinderConfig[\n getLocalizedKey(\"planHeaderMessage\" + (idx + 1), docLang)\n ] || \"\";\n\n // featureMessages are UNUSED currently!\n // const featureMessages = planFeatureMessages[idx];\n // for (const messageObj of featureMessages) {\n // messageObj.message =\n // messageObj[getLocalizedKey(\"message\", docLang)] ||\n // messageObj.message ||\n // \"\";\n // }\n\n // productPlan.planFeatureMessages = featureMessages;\n\n // UNUSED\n // for (let planFeatureMessage of productPlan.planFeatureMessages) {\n // planFeatureMessage.isLabelPresent =\n // planFeatureMessage.isLabelPresent === \"true\";\n // }\n\n const coreFeaturesStartIdx = idx * 6 + 1;\n const planCoreFeatures = [];\n\n for (\n let coreFeatureIdx = coreFeaturesStartIdx;\n coreFeatureIdx < coreFeaturesStartIdx + 6;\n coreFeatureIdx++\n ) {\n planCoreFeatures.push(\n priceFinderConfig[\n getLocalizedKey(\"coreFeature\" + coreFeatureIdx, docLang)\n ]\n );\n }\n\n const planCoreFeatureObjs = [];\n for (const coreFeatureText of planCoreFeatures) {\n if (coreFeatureText && coreFeatureText !== \"\") {\n const regex =\n / {(?[a-zA-Z0-9]{8})?:(?true|)}$/;\n\n const match = coreFeatureText.match(regex);\n if (!match) {\n planCoreFeatureObjs.push({ message: coreFeatureText });\n } else {\n const { modalTargetId, isLabelPresent } = match.groups;\n\n planCoreFeatureObjs.push({\n message: coreFeatureText.replace(regex, \"\"),\n modalTargetId,\n isLabelPresent,\n });\n }\n }\n }\n\n productPlan.planFeatureMessages = planCoreFeatureObjs;\n }\n\n const messages = {};\n for (const lang of LANGS) {\n const keysForLang = Object.keys(integratedPriceFinderConfig).filter((key) =>\n lang === \"en\" ? !key.match(/_[a-z]{2}$/) : key.endsWith(\"_\" + lang)\n );\n\n const langMessages = {};\n for (const keyForLang of keysForLang) {\n langMessages[keyForLang.replace(\"_\" + lang, \"\")] =\n integratedPriceFinderConfig[keyForLang];\n }\n\n messages[lang] = langMessages;\n }\n\n const geoCurrency = useGeoCurrency();\n\n if (!geoCurrency.isPending) {\n return (\n \n \n \n \n \n );\n } else {\n return null;\n }\n};\n\nexport default PriceFinderContainer;\n","import { useAsync } from \"@atlassiansox/bxpkit-core\";\nimport Environment from '../../../common/environment';\n\nconst LOCALE_CACHE_KEY = \"bxp.currentLocale\";\nconst DEFAULT_LOCALE = \"US\";\nexport const LOCALE_TO_CURRENCY = {\n US: \"USD\",\n JP: \"JPY\"\n};\n\nexport default function useGeoCurrency(setCurrencyIsoCode) {\n return useAsync(() => {\n if (setCurrencyIsoCode) return Promise.resolve(setCurrencyIsoCode);\n\n const currentLocale = sessionStorage.getItem(LOCALE_CACHE_KEY);\n const localePromise = currentLocale\n ? Promise.resolve(currentLocale)\n : fetch(`${Environment.getWacIntegrationUrl()}/endpoint/location`)\n .then(response => response.json())\n .then(json => json.countryIsoCode || DEFAULT_LOCALE)\n .catch(() => DEFAULT_LOCALE);\n\n return localePromise.then(locale => {\n sessionStorage.setItem(LOCALE_CACHE_KEY, locale);\n return LOCALE_TO_CURRENCY[locale] || LOCALE_TO_CURRENCY[DEFAULT_LOCALE];\n });\n }, []);\n}\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return ...\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, (newValue) => refs.forEach((ref) => assignRef(ref, newValue)));\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n const [ref] = useState(() => ({\n // value\n value: initialValue,\n // last callback\n callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n const last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }));\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","function ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware = ItoI) {\n let buffer = [];\n let assigned = false;\n const medium = {\n read() {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium(data) {\n const item = middleware(data, assigned);\n buffer.push(item);\n return () => {\n buffer = buffer.filter((x) => x !== item);\n };\n },\n assignSyncMedium(cb) {\n assigned = true;\n while (buffer.length) {\n const cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: (x) => cb(x),\n filter: () => buffer,\n };\n },\n assignMedium(cb) {\n assigned = true;\n let pendingQueue = [];\n if (buffer.length) {\n const cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n const executeQueue = () => {\n const cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n const cycle = () => Promise.resolve().then(executeQueue);\n cycle();\n buffer = {\n push: (x) => {\n pendingQueue.push(x);\n cycle();\n },\n filter: (filter) => {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware = ItoI) {\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options = {}) {\n const medium = innerCreateMedium(null);\n medium.options = {\n async: true,\n ssr: false,\n ...options,\n };\n return medium;\n}\n","export default 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}"],"names":["ContextTypes","getAtlaskitAnalyticsEventHandlers","getAtlaskitAnalyticsContext","noop","AnalyticsListener","Component","constructor","props","super","this","getAnalyticsEventHandlers","channel","onEvent","context","event","eventChannel","contextValue","render","children","value","ExportedAnalyticsListener","cache","serialized","isStringTag","className","key","name","undefined","registered","styles","hasOwnProperty","EmotionCacheContext","HTMLElement","Provider","func","forwardRef","ref","useContext","typePropName","Insertion","_ref","inserted","current","insert","sheet","next","Emotion$1","cssProp","css","WrappedComponent","registeredStyles","classNames","rawClassName","split","forEach","push","newProps","call","jsx","type","args","arguments","argsLength","length","createElementArgArray","Array","createEmotionProps","i","_len","_key","AnalyticsEvent","payload","update","updater","UIAnalyticsEvent","hasFired","handlers","JSON","parse","stringify","handler","useTrackedRef","useRef","useEffect","usePlatformLeafEventHandler","fn","action","componentName","actionSubject","packageName","packageVersion","analyticsData","createAnalyticsEvent","analyticsContext","useAnalyticsEvents","dataRef","fnRef","useCallback","analyticsEvent","attributes","clone","fire","CHANNEL","DEFAULT_THEME_MODE","THEME_MODES","theme","includes","mode","themed","modesOrVariant","variantModes","variantProp","variants","modes","R300","Y300","G300","B100","B400","N0","N200","N800","DN600","DN300","DN50","light","dark","Consumer","useTheme","defaultGetTokens","emptyThemeFn","getTokens","ThemeContext","createContext","themeProps","tokens","themeFn","valueFn","mixedFn","createTheme","analyticsAttributes","baseStyles","position","zIndex","inset","overflowY","pointerEvents","shouldAllowClickThroughStyles","invisibleStyles","backgroundColor","backgroundStyle","Blanket","memo","shouldAllowClickThrough","isTinted","onBlanketClicked","testId","mouseDownTarget","onBlanketClickedWithAnalytics","blanketClickOutsideChildren","e","currentTarget","target","onClick","onMouseDown","role","displayName","ESCAPE","useCloseOnEscapePress","onClose","isDisabled","escapePressed","onKeyDown","onKeyUp","document","listener","capture","emptyContext","appear","isExiting","ExitingContext","wrapChildWithContextProvider","child","childrenToObj","reduce","acc","ExitingPersistence","appearFromProp","childs","exitThenEnter","childrenAsArray","Children","Boolean","childrenToArray","childrenObj","previousChildren","persistedChildren","forceRender","updateState","useState","useForceRender","exitingChildren","defaultContextValue","useMemo","currentMap","previous","isAnyPreviousKeysMissingFromCurrent","exitingChildMountedAgain","hasAnyExitingChildMountedAgain","splicedChildren","concat","previousMap","splice","spliceNewElementsIntoPrevious","map","currentChild","onFinish","Object","keys","useExitingPersistence","keyframes","insertable","apply","anim","toString","classnames","len","cls","arg","toAdd","isArray","k","serializedArr","ClassNames","content","cx","_len2","_key2","merge","ele","useSetTimeout","opts","cleanup","timeouts","id","clearTimeout","getHookDeps","timeout","setTimeout","filter","timeoutId","StaggeredEntranceContext","isReady","delay","animationTimingFunction","enteringAnimation","exitingAnimation","isPaused","onFinishMotion","duration","staggered","indentifier","identifier","Number","String","Math","random","slice","Date","now","round","performance","useUniqueId","useStaggeredEntrance","onExitFinished","paused","state","hasAnimationStyles","setHasAnimationStyles","isCancelled","animationDelay","animationDuration","animationFillMode","animationName","animationPlayState","directionMotions","proportional","bottom","left","right","top","constant","invertedDirection","fadeInAnimation","direction","distance","from","opacity","transform","to","fadeOutAnimation","entranceDirection","exitDirection","invertedEntranceDirection","isReducedMotion","window","matches","matchMedia","prefersReducedMotion","animation","transition","easeInOut","mediumDurationMs","durationStep","largeDurationMs","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","options","prevOptions","optionsWithDefaults","onFirstUpdate","placement","strategy","modifiers","_React$useState","popper","arrow","setState","updateStateModifier","enabled","phase","elements","element","requires","popperOptions","newOptions","popperInstanceRef","setOptions","popperInstance","createPopper","destroy","forceUpdate","NOOP","NOOP_PROMISE","Promise","resolve","Popper","_ref$placement","_ref$strategy","_ref$modifiers","innerRef","referenceNode","Manager","setPopperElement","_React$useState2","arrowElement","setArrowElement","_usePopper","childrenProps","style","hasPopperEscaped","modifiersData","hide","isReferenceHidden","arrowProps","constantModifiers","flipVariations","padding","boundary","rootBoundary","defaultChildrenFn","defaultOffset","offset","offsetX","offsetY","internalModifiers","mergedModifiers","createContainer","container","createElement","getPortalParent","parentElement","querySelector","parent","display","body","appendChild","removePortalContainer","removeChild","appendPortalContainerIfNotAppended","InternalPortal","createPortal","isSubsequentRender","setIsSubsequentRender","zIndexToName","getLayerName","firePortalEvent","eventName","detail","layer","CustomEvent","getEvent","dispatchEvent","zIndexNumber","Portal","useAnalyticsContext","usePlatformLeafSyntheticEventHandler","delayId","clearScheduled","scheduleTimeout","active","getTheme","B200","boxSizing","maxWidth","borderRadius","fontSize","lineHeight","overflowWrap","wordWrap","truncateStyles","overflow","textOverflow","whiteSpace","lightStyles","color","darkStyles","TooltipContainer","truncate","onMouseOut","onMouseOver","TooltipPrimitive","getMousePosition","mouseCoordinates","safeMouse","getBoundingClientRect","width","height","clientWidth","clientHeight","tooltipZIndex","Tooltip","mousePosition","component","Container","tag","TargetContainer","onShow","onHide","hideTooltipOnClick","hideTooltipOnMouseDown","tooltipPosition","onShowHandler","onHideHandler","apiRef","targetRef","containerRef","setRef","node","firstChild","lastState","lastDelay","lastHandlers","hasCalledShowHandler","start","api","done","abort","showTooltip","source","isActive","keep","entry","immediatelyHideAndDone","isImmediate","isVisible","showImmediately","show","requestHide","finishHideAnimation","mouse","hideTooltipOnEsc","_apiRef$current","passive","once","defaultPrevented","preventDefault","clientX","clientY","onMouseMove","_apiRef$current2","onMouseOverTooltip","onFocus","onBlur","onAnimationFinished","CastTargetContainer","shouldRenderTooltipContainer","shouldRenderTooltipChildren","tooltipId","prefix","shouldRenderId","seed","tooltipTriggerProps","setAttribute","removeAttribute","_apiRef$current3","_apiRef$current4","getDirectionFromPlacement","VAR_PRIMITIVE_ZINDEX","primitiveStyles","zindex","cursor","styleWithZIndex","layers","card","navigation","dialog","blanket","modal","flag","spotlight","tooltip","themedBackground","getBackground","sizes","dimensions","small","medium","large","xlarge","getIconSize","size","iconStyles","flexShrink","stop","stopColor","maxHeight","fill","verticalAlign","baseHcmStyles","primaryEqualsSecondaryHcmStyles","secondaryTransparentHcmStyles","Icon","glyph","Glyph","dangerouslySetGlyph","primaryColor","secondaryColor","label","glyphProps","dangerouslySetInnerHTML","__html","exports","obj","_react","__esModule","default","_base","CheckIcon","assign","_default","QuestionCircleIcon","factory","__WEBPACK_EXTERNAL_MODULE_react__","__webpack_modules__","__unused_webpack_module","match","mediaQuery","values","parseQuery","some","query","inverse","typeMatch","expressionsMatch","expressions","every","expression","feature","modifier","expValue","toLowerCase","toPx","toDpi","toDecimal","parseInt","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","captures","trim","parsed","ratio","numbers","decimal","resolution","parseFloat","r","d","uppercasePattern","msPattern","toHyphenLower","__WEBPACK_DEFAULT_EXPORT__","hName","replace","test","module","__unused_webpack_exports","staticMatch","dynamicMatch","Mql","forceStatic","self","mql","media","addListener","evt","removeListener","dispose","getOwnPropertySymbols","prototype","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","n","join","test3","letter","err","shouldUseNative","symbols","val","TypeError","toObject","s","printWarning","ReactPropTypesSecret","loggedTypeFailures","has","checkPropTypes","typeSpecs","location","getStack","typeSpecName","error","Error","ex","message","stack","text","console","x","resetWarningCache","ReactIs","emptyFunctionThatReturnsNull","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","Symbol","iterator","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","number","object","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","elementType","isValidElementType","instanceOf","expectedClass","expectedClassName","isNode","objectOf","propType","oneOf","expectedValues","y","valuesString","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","bind","iteratorFn","maybeIterable","getIteratorFn","step","entries","RegExp","isSymbol","PropTypes","isElement","Function","hasSymbol","for","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","shallowEqualObjects","objA","objB","aKeys","bKeys","shallowEqualArrays","arrA","arrB","__rest","t","p","indexOf","__importDefault","mod","defineProperty","useMediaQuery_1","_a","device","onChange","settings","Context","toQuery","useMediaQuery","Component_1","toQuery_1","Context_1","__assign","prop_types_1","stringOrNumber","types","all","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","matchers","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","featureMatchers","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","minDeviceHeight","maxDeviceHeight","minWidth","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","hyphenate_style_name_1","mediaQuery_1","rules","v","realKey","keyVal","react_1","matchmediaquery_1","shallow_equal_1","hyphenateKeys","result","useIsUpdate","deviceSettings","deviceFromProps","deviceFromContext","getDevice","setDevice","newDevice","useDevice","getQuery","makeQuery","setQuery","newQuery","useQuery","mq","getMatchMedia","setMq","isUpdate","newMq_1","useMatchMedia","setMatches","updateMatches","ev","useMatches","__webpack_module_cache__","moduleId","cachedModule","definition","o","enumerable","get","prop","toStringTag","memoize","create","reactPropsRegex","isPropValid","charCodeAt","registerStyles","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","insertStyles","newStyled","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","__emotion_styles","raw","Styled","w","FinalTag","as","classInterpolations","mergedProps","T","finalShouldForwardProp","defaultProps","withComponent","nextTag","nextOptions","tagName","bindAll","bind_1","toOptions","bindings","sharedOptions","unbinds","original","binding","getBinding","unbind","addEventListener","removeEventListener","bind_all_1","canUseDOM","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","reducePropsToState","handleStateChangeOnClient","mountedInstances","emitChange","instance","SideEffect","_PureComponent","peek","_proto","componentDidMount","componentDidUpdate","componentWillUnmount","index","PureComponent","getDisplayName","hasElementType","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","it","flags","valueOf","warn","FOCUS_GROUP","FOCUS_DISABLED","hiddenGuard","InFocusGuard","propTypes","mediumFocus","mediumBlur","mediumEffect","mediumSidecar","async","emptyArray","FocusLock","parentRef","_extends2","realObserved","setObserved","observed","originalFocusedElement","disabled","noFocusGuards","persistentFocus","crossFrame","autoFocus","group","allowTextSelection","whiteList","hasPositiveIndices","_props$shards","shards","_props$as","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","returnFocus","focusOptions","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","activeElement","allowDefer","returnFocusTo","focus","howToReturnFocus","returnFocusOptions","then","useMedium","setObserveNode","newObserved","hasLeadingGuards","hasTailingGuards","mergedRef","useMergeRef","tabIndex","toArray","ret","asArray","getFirst","getParentNode","parentNode","nodeType","Node","DOCUMENT_FRAGMENT_NODE","host","isTopNode","DOCUMENT_NODE","isVisibleCached","visibilityCache","cached","checkParent","ELEMENT_NODE","computedStyle","getComputedStyle","getPropertyValue","isElementHidden","isVisibleUncached","set","isAutoFocusAllowedCached","isAutoFocusAllowed","isAutoFocusAllowedUncached","getDataset","dataset","isHTMLInputElement","isRadioElement","attribute","getAttribute","isGuard","focusGuard","isNotAGuard","isDefined","tabSort","tabDiff","indexDiff","orderByTabIndex","nodes","filterNegative","keepGuards","sort","queryTabbables","queryGuardTabbables","getFocusablesWithShadowDom","withGuards","shadowRoot","getFocusables","parents","focusableWithShadowDom","focusableWithIframes","HTMLIFrameElement","contentDocument","getFocusablesWithIFrame","querySelectorAll","filterFocusable","isHTMLButtonElement","notHiddenInput","filterAutoFocusable","getTabbableNodes","topNodes","getAllTabbableNodes","contains","scope","getPrototypeOf","iframeBody","getActiveElement","inDocument","cb","contentWindow","safeProbe","getTopParent","getAllAffectedNodes","currentNode","contained","l","j","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","add","DOCUMENT_POSITION_CONTAINS","_","filterNested","focusInside","topNode","ownerDocument","frame","focusInFrame","focusInsideIframe","correctNode","el","checked","findSelectedRadio","pickFirstFocus","pickFocusable","NEW_FOCUS","getParents","getCommonParent","nodeA","nodeB","parentsA","parentsB","currentParent","getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","subEntry","common","getFocusMerge","lastNode","nodesIndexes","orderedNodes","groups","autoFocusables","autoFocusable","commonParent","anyFocusable","innerElements","srcNodes","dstNodes","remap","outerNodes","orderedInnerElements","entity","innerNodes","newId","cnt","firstFocus","lastFocus","isOnGuard","resultSet","activeIndex","lastIndex","lastNodeInside","firstNodeIndex","lastNodeIndex","correctedNodes","correctedIndexDiff","returnFirstNode","returnLastNode","abs","newFocus","focusNode","parentFocus","parentAutofocusables","allParentAutofocusables","autofocus","guardCount","lockDisabled","focusable","deferAction","setImmediate","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","autoGuard","startIndex","end","allNodes","lastGuard","item","guard","focusAutoGuard","lockItem","extractRef","checkInHost","check","activateTrap","_lastActiveTrap","workingNode","portaledElement","workingArea","focusWhitelisted","focusIsHidden","area","withinHost","blur","newActiveElement","focusedIndex","_ref2","_ref3","onTrap","stopPropagation","onWindowBlur","assignSyncMedium","observerNode","assignMedium","moveFocusInside","propsList","_ref5","traps","trap","lastTrap","sameTrap","_ref6","FocusLockCombination","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","fromEntries","useIsomorphicLayoutEffect","_createClass","defineProperties","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_exenv","_TouchScrollable","_withLockSheet2","_withTouchListeners2","_utils","ScrollLock","_classCallCheck","ReferenceError","_possibleConstructorReturn","__proto__","subClass","superClass","setPrototypeOf","_inherits","initialHeight","innerHeight","scrollTo","pageYOffset","TouchScrollable","SheetLock","pipe","compose","LockToggle","accountForScrollbars","_extends","_temp","_this","getScrollableArea","scrollableArea","preventInertiaScroll","listenerOptions","allowTouchMove","_props","rest","_objectWithoutProperties","cloneElement","_ScrollLock","preventTouchMove","scrollHeight","scrollTop","totalScroll","currentScroll","offsetHeight","isTouchDevice","navigator","maxTouchPoints","camelToKebab","str","isNaN","getPadding","paddingRight","innerWidth","documentElement","getWindowHeight","multiplier","getDocumentHeight","makeStyleTag","injectStyles","styleSheet","cssText","createTextNode","insertStyleTag","head","getElementsByTagName","pipeFns","fns","SheetProvider","addSheet","getStyles","removeSheet","TouchProvider","createSource","uid","counter","getId","getPrefix","useUIDState","quartz","gen","generateUID","useUID","useUIDSeed","WeakMap","B50","B75","B300","B500","N10","N20","N40","N80","N900","DN200","DN30","DN10","TYPE","SKELETON_TYPE","ErrorKind","IntlContext","__REACT_INTL_CONTEXT__","invariant","condition","Err","isLiteralElement","literal","isArgumentElement","argument","date","time","select","plural","isPoundElement","pound","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","minimumIntegerDigits","parseNotationOptions","opt","parseNumberSkeleton","_i","tokens_1","token","scale","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","signOpts","conciseScientificAndEngineeringOpts","timeData","getDefaultHourSymbolFromLocale","locale","hourCycles","regionTag","languageTag","language","maximize","region","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","isFinite","floor","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","codePoints","code","entries_1","first","IDENTIFIER_PREFIX_RE_1","c","_isWhiteSpace","_isPatternSyntax","Parser","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","closingTagNameStartPosition","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","parseIdentifierIfPossible","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","dateTimePattern","skeletonCopy","patternPos","patternChar","charAt","extraLength","hourLen","dayPeriodLen","hourChar","getBestPattern","pattern","parsedOptions","typeEndPosition_1","identifierAndLocation","pluralOffset","tryParseDecimalInteger","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","nestedBraces","apostrophePosition","bumpUntil","stringTokens_1","stemAndOptions","options_1","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","fragmentResult","expectNumberError","invalidNumberError","sign","hasDigits","kind","currentOffset","targetOffset","min","nextCode","pruneLocation","els","SyntaxError","originalMessage","captureLocation","cacheDefault","serializer","serializerDefault","strategyDefault","monadic","computedValue","variadic","assemble","serialize","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","_super","msg","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","format","varName","getDateTimeFormat","value_1","formatFn","chunks","other","Intl","PluralRules","MISSING_INTL_API","rule","getPluralRules","parts","part","lastPart","createFastMemoizeCache","store","IntlMessageFormat","overrideFormats","defaultLocale","defaultConfig","configs","formatterCache","pluralRules","ast","resolvedOptions","resolvedLocale","NumberFormat","supportedLocalesOf","getAst","resolveLocale","__parse","parseOpts","c1","c2","DateTimeFormat","createDefaultFormatters","memoizedDefaultLocale","Locale","supportedLocales","integer","percent","short","long","full","IntlErrorCode","IntlError","exception","captureStackTrace","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","IntlFormatError","FORMAT_ERROR","MessageFormatError","defaultMessage","description","MissingTranslationError","MISSING_TRANSLATION","filterProps","allowlist","defaults","filtered","DEFAULT_INTL_CONFIG","messages","timeZone","defaultFormats","fallbackOnEmptyString","onError","onWarn","warning","getNamedFormat","formatType","intl","textComponent","shallowEqual","useIntl","FormattedMessage","formatMessage","Text","_b","MemoizedFormattedMessage","prevProps","nextProps","otherProps","nextValues","nextOtherProps","useDesktopMediaQuery","LOG_LEVEL","debug","info","none","useIsoLayoutEffect","useLayoutEffect","getNumFracDigits","isInteger","fmtCurrencyValue","currencyISOCode","useTwoDigits","isJPY","adjVal","ceil","getFormattedPrice","getTwoDigitFormattedPrice","getFormattedUnitAmount","localeISOCode","HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY","formatCentsToDollars","convertCCPPricingStrategyToHAMS","ccpPricingPolicy","hamsPricingStrategy","extractPricingTiersFromEntry","ccpOfferingsBySKU","hamsPricingPlansByKey","period","ccpOfferingSKU","hamsProductKey","pricingPlans","pricingTiers","offering","fields","defaultPricingPlans","convertedTiers","monthlyCCP","annualCCP","primaryCycle","find","pricingPlan","primaryCycle_interval","activatedWithReason","monthly","annual","ccpPPContent","ccpTiers","items","tiers","tiersMode","chargeElement","ccpTier","starter","pricingStrategy","unitDescription","unitLimitLower","unitLimitUpper","ceiling","prices","unitPrice","unitAmount","flatAmount","convertCCPTiersToHAMS","convertCCPPricingPlansToHAMS","getLocalUnitPrice","numUnits","matchingTierIdx","matchingTier","totalPrice","avgPerUnitPrice","hasFlatRateFirstTier","breakdown","unitsInTier","unitsAvailableInTier","totalPriceForTier","avgPerUnitPriceForTier","price","getUnitPrice","idx","tier","adjUnitLimitLower","max","adjUnitLimitUpper","getTierIdxForNumUnits","findIndex","pow","calculatePrice","finalTier","calcFunc","adjustedNumberOfUnits","hasExceededMaxTier","fmtUnit","amount","fmtPrice","formattedTotalPrice","formattedAvgPerUnitPrice","formattedBreakdown","formattedUnitsInTier","formattedUnitsAvailableInTier","formattedUnitLimitLower","formattedUnitLimitUpper","formattedTotalPriceForTier","formattedAvgPerUnitPriceForTier","zeroPrice","murmurhash2_32_gc","h","batchUpdates","devtools","middlewares","mutator","prevState","partialState","namedMutator","storeState","actionName","warnings","bindAction","actionFn","actionKey","getContainerProps","boundActions","dispatch","thunkFn","getState","actions","CACHE","strA","keysA","keysB","output","nextState","out","MessageChannel","isInsideBatchedSchedule","batch","unstable_batchedUpdates","QUEUE","scheduled","createStoreState","initialState","listeners","currentState","queueFn","shift","schedule","notify","resetState","subscribe","reduceRight","mw","__REDUX_DEVTOOLS_EXTENSION__","origMutator","devTools","devtoolMutator","config","connect","init","connectDevTools","send","defaultRegistry","defaultScope","stores","initStore","Store","bindActions","getStore","scopeId","generateKey","deleteStore","delete","globalRegistry","resultFn","propsMode","lastResult","lastArgs","calledOnce","prev","areArgumentsEqual","nextResult","createMemoizedSelector","isReselector","resultFunc","dependencies","funcs","pop","memoizedResultFunc","params","createSelector","EMPTY_SELECTOR","DEFAULT_SELECTOR","updateUnitCount","unitCount","updateBillingCycle","billingCycle","updatePriceCalcs","priceCalcs","createKey","createStore","usePriceFinderStore","propsArg","hasPropsArg","propsArgRef","stateSelector","hasProps","scopeSelectors","getSelectorInstance","getSnapshot","useSyncExternalStore","createHook","deviceMediaQueries","TRACKING_EVENT_NAMES","UNIT_TRACKING_TERMS","SpecialPlanNames","SpecialProductKeys","DefaultPlanLimits","onKey","keyCode","block","onMouseDownCapture","onMouseUpCapture","onKeyDownCapture","onKeyUpCapture","onTouchStartCapture","onTouchEndCapture","onPointerDownCapture","onPointerUpCapture","onClickCapture","doNotBlock","fadedB75","background","hover","selected","focusSelected","primary","danger","link","subtle","heights","compact","lineHeights","singleIconPadding","innerMargin","getColor","getColors","appearance","colors","getIconStyle","spacing","margin","flexGrow","alignSelf","userSelect","getContentStyle","overlayCss","justifyContent","alignItems","noPointerEventsOnChildrenCss","buttonCss","shouldFitContainer","isSelected","iconBefore","iconAfter","href","overlay","providedOnMouseDown","providedOnClick","interactionName","ourRef","initialMount","useAutoFocus","interactionContext","tracePress","timeStamp","hasOverlay","fadeCss","getFadingCss","isInteractive","spinnerHackCss","stroke","blockEvents","isFirefox","userAgent","Button","onMouseUp","providedOnMouseUp","isOnlySingleIcon","getIsOnlySingleIcon","setIsActive","baseColors","borderWidth","fontStyle","fontFamily","fontWeight","textAlign","textDecoration","transitionDuration","border","getCss","PricingExampleButton","onClickHandler","StyledButton","radioThemeColors","backgroundHover","backgroundActive","backgroundChecked","backgroundCheckedHover","backgroundCheckedActive","backgroundDisabled","dotChecked","dotDisabled","dotActive","borderHover","borderDisabled","borderFocus","labelPaddingStyles","labelStyles","lightLabelStyles","darkLabelStyles","radioStyles","MozAppearance","outline","WebkitAppearance","RadioWithMode","ariaLabel","isInvalid","isChecked","onChangeAnalytics","radioCustomProperties","radioColors","getRadioCustomProperties","required","BillingPeriodSelector","exampleShown","onShowHideExampleClick","isDesktop","onBillingCycleChange","HeaderMessage","BillingToggle","AnnualBillingToggle","ShowHideExample","billingToggleBase","_process","_process$env","_process2","_process2$env","DEBUG_MODE","globalThis","process","env","JEST_WORKER_ID","NODE_ENV","PFF_GLOBAL_KEY","hasProcessEnv","ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE","DEFAULT_PFF_GLOBAL","earlyResolvedFlags","booleanResolver","flagKey","globalVar","getBooleanFF","_globalVar$PFF_GLOBAL3","resolveBooleanFlag","disabledBackgroundColor","defaultBackgroundColor","defaultBackgroundColorFocus","defaultBackgroundColorHover","defaultBorderColor","defaultBorderColorFocus","transparent","textColor","placeholderTextColor","disabledRules","backgroundColorHover","borderColor","invalidRules","backgroundColorFocus","borderColorFocus","standard","borderColorHover","getContainerTextBgAndBorderColor","boxShadow","widthMap","xsmall","getMaxWidth","analyticsParams","Textfield","isCompact","isReadOnly","isMonospaced","elemAfterInput","elemBeforeInput","spreadProps","inputRef","handleOnFocus","handleOnBlur","handleOnMouseDown","setInputRef","inputElement","containerStyles","borderStyle","flex","inputStyle","toFixed","WebkitTextFillColor","readOnly","UnitCount","maxUnits","maxNumberOfDigits","unitTrackingTerm","agents","currentUnits","setCurrentUnits","storedUnits","setStoredUnits","HowManyUnitsMessageContainer","UnitCountInputContainer","parsedValue","newUnits","TooltipBase","TooltipMessageContainer","unitDescriptionTooltipTriggered","UserTier","users","priceCalc","fmtBreakdownTier","UserTierContainer","TooltipContentContainer","UserTierDetailsContainer","MarginContainer","ToolTipLabelContainer","LimitsContainer","userTierTooltipTriggered","Lozenge","UserTierMessage","QuestionIconContainer","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","messageDescriptor","defaultRichTextElements","msgId","getMessageFormat","NUMBER_FORMAT_OPTIONS","getFormatter","formatNumber","formatNumberToParts","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","getRelativeTimeFormat","RelativeTimeFormat","DATE_TIME_FORMAT_OPTIONS","filteredOptions","timeStyle","dateStyle","formatDate","formatTime","formatDateTimeRange","formatRange","formatDateToParts","formatTimeToParts","PLURAL_FORMAT_OPTIONS","formatPlural","LIST_FORMAT_OPTIONS","formatList","getListFormat","results","formatListToParts","ListFormat","richValues_1","serializedValues","generateToken","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","DisplayNames","of","createIntl","relativeTime","list","displayNames","createFormatters","resolvedConfig","verifyConfigMessages","$t","processIntlConfig","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","formatXMLElementFn","rawValues","rawDefaultRichTextElements","coreIntl","IntlProvider","prevConfig","getDerivedStateFromProps","PricingIntlProvider","viewBox","xmlns","clipPath","fillOpacity","strokeWidth","strokeMiterlimit","PricingExampleHeader","Header","SubHeader","unitCounts","PricingExampleAnnual","existingFmtBreakdown","totalUnits","DetailContainer","PriceBreakDownContainer","BoldText","RegularText","IconContainer","PricingExampleMonthly","showFirstFlatRateTier","FlatRateIconContainer","UserCount","PriceBreakDownListingContainer","isFlatRateTier","NumUnits","UsersLabel","TierPrice","FlatRateMessageContainer","Border","TotalUnits","TotalUsersLabel","PricingExample","billingPeriod","setBillingPeriod","DesktopContainer","BillingDescription","Example","MainContainer","PricingExampleDefault","pricingExampleUnitCounts","showExample","setShowExample","hidePricingExampleTriggered","showPricingExampleTriggered","BoxShadowContainer","SelectorGridContainer","setExampleShown","ExampleLabel","GridContainer","PricingExampleNoSelector","NoSelectorGridContainer","PricingExampleContainer","hideBillingSelector","examplePriceCalc","FeatureMessage","isLabelPresent","modalTargetId","FeatureMessageContainer","modalTrigger","click","MessageWithoutUnderline","LabelContainer","Label","PlanCard","last","rightHighlighted","highlighted","planName","ctaButton","featureMessagePlanName","planFeatureMessages","isMobile","baseBorderStyles","PlanName","PlanMessagingContainer","planFeatureMessagesLength","CTAButtonContainer","FeatureMessagesList","FeatureMessageTitle","featureMessage","CTAButton","font","paddingTop","paddingBottom","ButtonWrapper","widths","defaultValue","ModalContext","ScrollContext","dialogWidth","input","widthName","positionerStyles","flexDirection","viewportScrollStyles","bodyScrollStyles","marginRight","marginLeft","stackTransitionStyles","transitionProperty","transitionTimingFunction","stackTransformStyles","stackIdleStyles","stackIndex","shouldScrollInViewport","dialogStyles","onCloseComplete","onOpenComplete","titleId","motionRef","onMotionFinish","useOnMotionFinish","modalDialogContext","bottomFadeInProps","refs","uniqueReferencedValue","useLazyCallback","callback","initializer","useLazyRef","modalStackRegister","getScrollDistance","_document$documentEle","_document$body","fillScreenStyles","WebkitOverflowScrolling","whiteListElements","hasAttribute","shouldCloseOnEscapePress","shouldCloseOnOverlayClick","stackIndexOverride","onStackChange","isBlanketHidden","calculatedStackIndex","stackIndexRef","setStackIndex","setValue","valueRef","useStateRef","currentStackIndex","previousStackIndex","usePreviousValue","updateStack","newStackIndex","unshift","useModalStack","isForeground","autoFocusLock","onCloseHandler","scrollTopOffset","setScrollTopOffset","onWindowScroll","pageXOffset","usePreventProgrammaticScroll","modalDialogWithBlanket","fadeInProps","SIGN_UP","ModalRedirectConfirm","showModal","setShowModal","ctaURL","freeLimit","cancelAndCloseModal","unitBreachModalDecision","ModalHeader","ModalBody","ModalFooter","PlanCardBody","overSignupLimit","unitMinEnterprise","productKey","priceCalcIdx","contactURL","planMessage","Monthly","Annual","BITBUCKET","CenterJustifiedContainer","FREE","Free","formattedZeroPrice","ENTERPRISE","EnterpriseAnnualBillingMessage","onToggleToAnnualBilling","EnterpriseNoJPY","EnterpriseContact","EnterpriseUnmetMin","minRequiredUnits","PlanCardsContainer","productPlans","recommendedPlanName","signupURL","cardRef","unitLimitFree","ComponentWrapper","productPlansLength","CardsContainer","productPlan","signupURLSuffix","signupUnitLimit","isHighlighted","isRightHighlighted","UNIT_LIMIT","planCardCTAButtonClicked","userBoxValue","unitLimitBreachModal","CenterJustified","PriceDisplay","formattedPrice","FormattedPriceDisplay","PriceDesc","MobileVerticallyPaddedContainer","MobilePadded","StyledBilledAnnual","MonthlyDesc","PriceDescLine1","PriceDescLine2","HighestDisplayPriceFontSize","cardWidth","onFontSizeHandler","highestDisplayPrice","logLevel","logLevelOption","maxFontSize","minFontSize","onStart","initState","calcKey","fontSizePrev","fontSizeMax","fontSizeMin","innerHtmlPrevRef","isCalculatingRef","animationFrameId","ro","ResizeObserver","requestAnimationFrame","observe","cancelAnimationFrame","disconnect","innerHtml","innerHTML","isWithinResolution","isOverflow","scrollWidth","offsetWidth","isAsc","delta","newMax","newMin","useFitText","getPrice","sortOn","priceA","priceB","useFitPriceTextIntoPlanCard","PriceFinderContainer","PlansAndPricingHeader","defaultUnitCount","fetchPricing","UNIT_LIMIT_FREE","UNIT_MIN_ENTERPRISE","setFontSize","cardsContainerRect","onResizeRef","clientRect","setClientRect","onResize","useBoundingClientRectRef","unitTierBox","unitBoxValue","billingCycleChanged","newPeriod","fetchPriceCalcs","priceCalcReqs","getNumUnits","adjNumUnits","planPriceReqs","offeringSku","STANDARD","standardProductPlan","plan","pricingExampleRequest","getPriceFinderRequests","getPriceRequests","cachedHAMSPricingPlansByKey","setCachedHAMSPricingPlansByKey","cachedCCPOfferingsBySKU","setCachedCCPOfferingsBySKU","offeringSKUs","hamsProductKeys","getPriceRequest","uncachedCCPSKUs","sku","uncachedHAMSProductKeys","newCCPOfferingsBySKU","getOfferingsBySKU","newHamsPricingPlansByKey","getPricing","productKeys","priceCalculations","usePricing","usePriceFinderPricingData","completedCalcsClone","completedCalcs","recommendedPlanIdx","minUnitCounts","reverse","minUnitCount","getRecommendedPlanIdx","requiredMinUnitCountForRecommendation","getRecommendedPlanName","sendAnalytics","analytic","eventPayload","tracking","log","LANGS","_step","basePriceFinderConfig","priceFinderConfig","configKeys","_iterator","_createForOfIteratorHelper","allConfigKey","f","_step2","integratedPriceFinderConfig","_iterator2","configKey","halpSignupURLs","hideBillingCycleSelector","forceCurrencyISOCode","docLang","lang","getLocalizedKey","keyName","planDescHeaderMessage","coreFeaturesStartIdx","planCoreFeatures","coreFeatureIdx","planCoreFeatureObjs","_planCoreFeatures","coreFeatureText","regex","_wrapRegExp","_match$groups","_loop","_step3","_LANGS","_i2","langMessages","_iterator3","endsWith","keyForLang","geoCurrency","useGeoCurrency","isPending","React","PriceFinder","LOCALE_CACHE_KEY","DEFAULT_LOCALE","LOCALE_TO_CURRENCY","US","JP","setCurrencyIsoCode","useAsync","currentLocale","sessionStorage","getItem","fetch","Environment","response","json","countryIsoCode","setItem","useMergeRefs","initialValue","facade","useCallbackRef","newValue","assignRef","ItoI","innerCreateMedium","middleware","buffer","assigned","read","cbs","pendingQueue","executeQueue","cycle","createMedium","createSidecarMedium","ssr","_objectWithoutPropertiesLoose","excluded","sourceKeys"],"sourceRoot":""}