{"version":3,"file":"surveys.jsx","sourceRoot":"","sources":["../../../src/extensions/surveys.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAIH,2BAA2B,EAC3B,kBAAkB,EAClB,UAAU,GACb,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EACH,KAAK,EACL,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACxB,gBAAgB,GACnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,EACH,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,sBAAsB,GACzB,MAAM,oCAAoC,CAAA;AAE3C,gGAAgG;AAChG,IAAM,MAAM,GAAG,OAAqC,CAAA;AACpD,IAAM,QAAQ,GAAG,SAAqB,CAAA;AAEtC,IAAM,YAAY,GAAG,UAAC,OAAgB,EAAE,MAAc;IAClD,IAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACzC,IAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACjD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;IACnG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAG,EAAE,MAAM,CAAC,CAAA;AACvG,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,OAAgB,EAAE,WAA4B;IAA5B,4BAAA,EAAA,mBAA4B;IACtE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,wBAAwB,CAAC,UAAC,OAAO;QACtC,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,IAAI,KAAK,KAAK,EAArB,CAAqB,CAAC,CAAA;QACvE,aAAa,CAAC,OAAO,CAAC,UAAC,MAAM;;YACzB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE;gBACnC,IACI,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,MAAK,KAAK;oBACvC,QAAQ,CAAC,gBAAgB,CAAC,wBAAiB,MAAM,CAAC,EAAE,CAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EACtE;oBACE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;iBAChC;gBACD,IAAI,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,MAAK,UAAU,KAAI,MAAA,MAAM,CAAC,UAAU,0CAAE,cAAc,CAAA,EAAE;oBACnF,IAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;oBAC/E,IAAI,cAAc,EAAE;wBAChB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,wBAAiB,MAAM,CAAC,EAAE,CAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;4BACtE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;yBAChC;6BAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,wBAAiB,MAAM,CAAC,EAAE,CAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC7E,4IAA4I;4BAC5I,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,6BAA6B,CAAC,EAAE;gCAC7D,IAAM,aAAW,GAAG,MAAA,MAAA,QAAQ;qCACvB,aAAa,CAAC,wBAAiB,MAAM,CAAC,EAAE,CAAE,CAAC,0CAC1C,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAoB,CAAA;gCAClE,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE;oCACrC,IAAI,aAAW,EAAE;wCACb,aAAW,CAAC,KAAK,CAAC,OAAO;4CACrB,aAAW,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;wCAC3D,aAAW,CAAC,gBAAgB,CACxB,gBAAgB,EAChB,cAAM,OAAA,CAAC,aAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,EAApC,CAAoC,CAC7C,CAAA;qCACJ;gCACL,CAAC,CAAC,CAAA;gCACF,cAAc,CAAC,YAAY,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;6BACrE;yBACJ;qBACJ;iBACJ;aACJ;YACD,wFAAwF;YACxF,qGAAqG;YACrG,wGAAwG;YACxG,8GAA8G;YAC9G,sGAAsG;YACtG,8BAA8B;YAC9B,IAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAA;YAC3E,IAAM,aAAa,GACf,YAAY,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,CAAA,MAAA,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,0CAAE,iBAAiB,MAAK,CAAC;gBAC3E,CAAC,CAAC,IAAI,CAAA;YAEd,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,IAAI,aAAa,EAAE;gBACrD,IAAM,sBAAsB,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAE,0BAA0B,CAAA;gBAC5E,IAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBACrE,IAAI,sBAAsB,IAAI,kBAAkB,EAAE;oBAC9C,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;oBACxB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC/E,IAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC9D,IAAI,iBAAiB,GAAG,sBAAsB,EAAE;wBAC5C,OAAM;qBACT;iBACJ;gBAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE;oBACjD,IAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;oBACjE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAG,EAAE,MAAM,CAAC,CAAA;iBAClG;aACJ;QACL,CAAC,CAAC,CAAA;IACN,CAAC,EAAE,WAAW,CAAC,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,EAUpC;;QATG,MAAM,YAAA,EACN,aAAa,mBAAA,EACb,gBAAgB,sBAAA,EAChB,gBAAgB,sBAAA;IAOhB,IAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACjD,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAEpG,qCAAqC;IACrC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK;QAC7C,IAAI,KAAK,YAAY,gBAAgB,EAAE;YACnC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;SACnC;IACL,CAAC,CAAC,CAAA;IAEF,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACvC,IAAM,SAAS,GAAG,uBAAuB,CACrC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,eAAe,KAAI,uBAAuB,CAAC,eAAe,IAAI,OAAO,CAC3F,CAAA;IAED,MAAM,CAAC,MAAM,CACT,CAAC,WAAW,CACR,GAAG,CAAC,wBAAwB,CAC5B,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CACnC,KAAK,CAAC,CAAC;YACH,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,oBAAa,MAAA,MAAM,CAAC,UAAU,0CAAE,WAAW,CAAE;YAC3D,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,SAAS;SACnB,CAAC,CACF,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,EACrC,EACF,aAAa,CAChB,CAAA;AACL,CAAC,CAAA;AACD,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAQ3C;;QAPG,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,gBAAgB,sBAAA;IAMhB,IAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAA,MAAM,CAAC,UAAU,0CAAE,WAAW,CAAC,CAAA;IAC1E,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;IACpG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAC9B,MAAM,CAAC,MAAM,CACT,CAAC,cAAc,CACX,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAC/B,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CACnC,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,QAAQ,CAAC,CAAC,IAAI,CAAC,EACjB,EACF,IAAI,CACP,CAAA;AACL,CAAC,CAAA;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC5C,sFAAsF;IACtF,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;QACtB,OAAM;KACT;IACD,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAE1B,gFAAgF;IAChF,WAAW,CAAC;QACR,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC,EAAE,IAAI,CAAC,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAY3B;;QAXG,MAAM,YAAA,EACN,gBAAgB,sBAAA,EAChB,OAAO,aAAA,EACP,KAAK,WAAA,EACL,gBAAgB,sBAAA;IAQV,IAAA,KAAA,OAAsC,QAAQ,CAAC,IAAI,CAAC,IAAA,EAAnD,cAAc,QAAA,EAAE,iBAAiB,QAAkB,CAAA;IACpD,IAAA,KAAA,OAAkC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAA;IACvD,IAAM,sBAAsB,GAAG,YAAY,IAAI,gBAAgB,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA;IAC3F,IAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACxD,IAAM,wBAAwB,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,QAAQ,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEtG,8DAA8D;IAC9D,IAAI,aAAa,EAAE;QACf,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;QACnB,KAAK,CAAC,IAAI,GAAG,OAAO,CAAA;QACpB,KAAK,CAAC,KAAK,GAAG,OAAO,CAAA;QACrB,KAAK,CAAC,SAAS,GAAG,OAAO,CAAA;KAC5B;IAED,SAAS,CAAC;;QACN,IAAI,aAAa,IAAI,CAAC,OAAO,EAAE;YAC3B,OAAM;SACT;QAED,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QAChD,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE;YAC5B,YAAY,EAAE,MAAM,CAAC,IAAI;YACzB,UAAU,EAAE,MAAM,CAAC,EAAE;YACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;YACjE,mBAAmB,EAAE,MAAA,OAAO,CAAC,sBAAsB,uDAAI;SAC1D,CAAC,CAAA;QACF,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QAEpE,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;YACtC,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE;;YACpC,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,sBAAsB,CAAA,EAAE;gBAC5C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;aAClC;YAED,eAAe,CAAC,IAAI,CAAC,CAAA;YAErB,IAAI,MAAA,MAAM,CAAC,UAAU,0CAAE,aAAa,EAAE;gBAClC,UAAU,CAAC;oBACP,iBAAiB,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC,EAAE,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,cAAc,CAAC,CAAC,CAAC,CACpB,CAAC,aAAa,CAAC,QAAQ,CACnB,KAAK,CAAC,CAAC;YACH,aAAa,eAAA;YACb,gBAAgB,EAAE,gBAAgB;YAClC,sBAAsB,EAAE,cAAM,OAAA,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAApD,CAAoD;SACrF,CAAC,CAEF;YAAA,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CACvB,CAAC,SAAS,CACN,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CACrC,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,cAAc,CAAC,CAAC,KAAK,CAAC,EACxB,CACL,CAAC,CAAC,CAAC,CACA,CAAC,mBAAmB,CAChB,MAAM,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,qBAAqB,KAAI,YAAY,CAAC,CACjE,WAAW,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,0BAA0B,KAAI,EAAE,CAAC,CACjE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CACrC,WAAW,CAAC,CAAC,MAAA,MAAM,CAAC,UAAU,0CAAE,qCAAqC,CAAC,CACtE,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,uBAAuB,CAAC,CACzD,cAAc,CAAC,uBAAM,KAAK,GAAK,wBAAwB,EAAG,CAC1D,OAAO,CAAC,CAAC,cAAM,OAAA,iBAAiB,CAAC,KAAK,CAAC,EAAxB,CAAwB,CAAC,EAC1C,CACL,CACL;QAAA,EAAE,aAAa,CAAC,QAAQ,CAAC,CAC5B,CAAC,CAAC,CAAC,CACA,EAAE,GAAG,CACR,CAAA;AACL,CAAC;AAUD,IAAM,oBAAoB,GAAG,UAAC,EAMF;;QALxB,QAAQ,cAAA,EACR,gBAAgB,sBAAA,EAChB,oBAAoB,0BAAA,EACpB,UAAU,gBAAA,EACV,QAAQ,cAAA;IAER,IAAM,kBAAkB;QACpB,GAAC,kBAAkB,CAAC,IAAI,IAAG,gBAAgB;QAC3C,GAAC,kBAAkB,CAAC,IAAI,IAAG,YAAY;QACvC,GAAC,kBAAkB,CAAC,MAAM,IAAG,cAAc;QAC3C,GAAC,kBAAkB,CAAC,YAAY,IAAG,sBAAsB;QACzD,GAAC,kBAAkB,CAAC,cAAc,IAAG,sBAAsB;WAC9D,CAAA;IAED,IAAM,WAAW,GAAG;QAChB,QAAQ,UAAA;QACR,gBAAgB,kBAAA;QAChB,UAAU,YAAA;QACV,QAAQ,UAAA;KACX,CAAA;IAED,IAAM,eAAe;QACjB,GAAC,kBAAkB,CAAC,IAAI,IAAG,EAAE;QAC7B,GAAC,kBAAkB,CAAC,IAAI,IAAG,EAAE;QAC7B,GAAC,kBAAkB,CAAC,MAAM,IAAG,EAAE,oBAAoB,sBAAA,EAAE;QACrD,GAAC,kBAAkB,CAAC,YAAY,IAAG,EAAE,oBAAoB,sBAAA,EAAE;QAC3D,GAAC,kBAAkB,CAAC,cAAc,IAAG,EAAE,oBAAoB,sBAAA,EAAE;WAChE,CAAA;IAED,IAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnD,IAAM,cAAc,yBAAQ,WAAW,GAAK,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAE,CAAA;IAE5E,OAAO,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,EAAG,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,UAAU,SAAS,CAAC,EAUzB;;QATG,MAAM,YAAA,EACN,gBAAgB,sBAAA,EAChB,OAAO,aAAA,EACP,cAAc,oBAAA;IAOd,IAAM,SAAS,GAAG,uBAAuB,CACrC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,eAAe,KAAI,uBAAuB,CAAC,eAAe,CAChF,CAAA;IACK,IAAA,KAAA,OAA8C,QAAQ,CAAC,EAAE,CAAC,IAAA,EAAzD,kBAAkB,QAAA,EAAE,qBAAqB,QAAgB,CAAA;IAC1D,IAAA,KAAsC,UAAU,CAAC,aAAa,CAAC,EAA7D,aAAa,mBAAA,EAAE,gBAAgB,sBAA8B,CAAA;IAC/D,IAAA,KAAA,OAAkD,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAA,EAAhF,oBAAoB,QAAA,EAAE,uBAAuB,QAAmC,CAAA;IACvF,IAAM,eAAe,GAAG,OAAO,CAAC,cAAM,OAAA,wBAAwB,CAAC,MAAM,CAAC,EAAhC,CAAgC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEjF,qBAAqB;IACrB,SAAS,CAAC;QACN,uBAAuB,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,IAAM,iBAAiB,GAAG,UAAC,EAQ1B;;YAPG,GAAG,SAAA,EACH,qBAAqB,2BAAA,EACrB,oBAAoB,0BAAA;QAMpB,IAAI,CAAC,OAAO,EAAE;YACV,OAAM;SACT;QAED,IAAM,WAAW,GACb,qBAAqB,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,2BAAoB,qBAAqB,CAAE,CAAA;QAElG,qBAAqB,uBAAM,kBAAkB,gBAAG,WAAW,IAAG,GAAG,OAAG,CAAA;QAEpE,IAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAA;QAC7E,IAAI,QAAQ,KAAK,2BAA2B,CAAC,mBAAmB,EAAE;YAC9D,eAAe,uBAAM,kBAAkB,gBAAG,WAAW,IAAG,GAAG,QAAI,MAAM,EAAE,OAAO,CAAC,CAAA;SAClF;aAAM;YACH,uBAAuB,CAAC,QAAQ,CAAC,CAAA;SACpC;IACL,CAAC,CAAA;IAED,OAAO,CACH,CAAC,IAAI,CACD,SAAS,CAAC,aAAa,CACvB,KAAK,CAAC,YACF,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAA,MAAM,CAAC,UAAU,0CAAE,WAAW,IACxC,cAAc,EACnB,CAEF;YAAA,CAAC,eAAe,CAAC,GAAG,CAAC,UAAC,QAAQ,EAAE,oBAAoB;YACxC,IAAA,qBAAqB,GAAK,QAAQ,sBAAb,CAAa;YAE1C,IAAM,SAAS,GAAG,aAAa;gBAC3B,CAAC,CAAC,oBAAoB,KAAK,qBAAqB;gBAChD,CAAC,CAAC,oBAAoB,KAAK,oBAAoB,CAAA;YACnD,OAAO,CACH,SAAS,IAAI,CACT,CAAC,GAAG,CACA;4BAAA,CAAC,oBAAoB,CAAC;oBAClB,QAAQ,UAAA;oBACR,gBAAgB,kBAAA;oBAChB,oBAAoB,sBAAA;oBACpB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,uBAAuB;oBACxD,QAAQ,EAAE,UAAC,GAAG;wBACV,OAAA,iBAAiB,CAAC;4BACd,GAAG,KAAA;4BACH,qBAAqB,uBAAA;4BACrB,oBAAoB,sBAAA;yBACvB,CAAC;oBAJF,CAIE;iBACT,CAAC,CACN;wBAAA,EAAE,GAAG,CAAC,CACT,CACJ,CAAA;QACL,CAAC,CAAC,CACN;QAAA,EAAE,IAAI,CAAC,CACV,CAAA;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAU9B;;QATG,MAAM,YAAA,EACN,gBAAgB,sBAAA,EAChB,OAAO,aAAA,EACP,QAAQ,cAAA;IAOF,IAAA,KAAA,OAA8B,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAA;IAC7C,IAAA,KAAA,OAA6B,QAAQ,CAAC,EAAE,CAAC,IAAA,EAAxC,cAAc,QAAA,EAAE,QAAQ,QAAgB,CAAA;IAC/C,IAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE9C,SAAS,CAAC;;QACN,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE;YACtB,OAAM;SACT;QAED,IAAI,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,MAAK,KAAK,EAAE;YACzC,IAAI,SAAS,CAAC,OAAO,EAAE;gBACnB,IAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;gBAC3D,IAAM,OAAK,GAAG;oBACV,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,QAAQ,CAAC,UAAG,SAAS,CAAC,KAAK,GAAG,GAAG,CAAE,CAAC;oBAC1C,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,EAAE;oBAChB,YAAY,EAAE,sBAAe,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,WAAW,KAAI,SAAS,CAAE;iBAC7E,CAAA;gBACD,QAAQ,CAAC,OAAK,CAAC,CAAA;aAClB;SACJ;QACD,IAAI,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,MAAK,UAAU,EAAE;YAC9C,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;YAC7E,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,OAAO,EAAE;gBAC9B,aAAa,CAAC,CAAC,UAAU,CAAC,CAAA;YAC9B,CAAC,CAAC,CAAA;YACF,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;SAC9D;IACL,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACH,EACI;YAAA,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,UAAU,MAAK,KAAK,IAAI,CACxC,CAAC,GAAG,CACA,SAAS,CAAC,sBAAsB,CAChC,GAAG,CAAC,CAAC,SAAS,CAAC,CACf,OAAO,CAAC,CAAC,cAAM,OAAA,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,UAAU,CAAC,EAAvC,CAAuC,CAAC,CACvD,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAEzE;oBAAA,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAChD;oBAAA,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,WAAW,KAAI,EAAE,CACzC;gBAAA,EAAE,GAAG,CAAC,CACT,CACD;YAAA,CAAC,UAAU,IAAI,CACX,CAAC,WAAW,CACR,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CACnC,KAAK,CAAC,CAAC,cAAc,CAAC,EACxB,CACL,CACL;QAAA,GAAG,CACN,CAAA;AACL,CAAC","sourcesContent":["import { PostHog } from '../posthog-core'\nimport {\n    Survey,\n    SurveyAppearance,\n    SurveyQuestion,\n    SurveyQuestionBranchingType,\n    SurveyQuestionType,\n    SurveyType,\n} from '../posthog-surveys-types'\n\nimport { window as _window, document as _document } from '../utils/globals'\nimport {\n    style,\n    defaultSurveyAppearance,\n    sendSurveyEvent,\n    dismissedSurveyEvent,\n    createShadow,\n    getContrastingTextColor,\n    SurveyContext,\n    getDisplayOrderQuestions,\n    getSurveySeenKey,\n} from './surveys/surveys-utils'\nimport * as Preact from 'preact'\nimport { createWidgetShadow, createWidgetStyle } from './surveys-widget'\nimport { useState, useEffect, useRef, useContext, useMemo } from 'preact/hooks'\nimport { isNumber } from '../utils/type-utils'\nimport { ConfirmationMessage } from './surveys/components/ConfirmationMessage'\nimport {\n    OpenTextQuestion,\n    LinkQuestion,\n    RatingQuestion,\n    MultipleChoiceQuestion,\n} from './surveys/components/QuestionTypes'\n\n// We cast the types here which is dangerous but protected by the top level generateSurveys call\nconst window = _window as Window & typeof globalThis\nconst document = _document as Document\n\nconst handleWidget = (posthog: PostHog, survey: Survey) => {\n    const shadow = createWidgetShadow(survey)\n    const surveyStyleSheet = style(survey.appearance)\n    shadow.appendChild(Object.assign(document.createElement('style'), { innerText: surveyStyleSheet }))\n    Preact.render(<FeedbackWidget key={'feedback-survey'} posthog={posthog} survey={survey} />, shadow)\n}\n\nexport const callSurveys = (posthog: PostHog, forceReload: boolean = false) => {\n    posthog?.getActiveMatchingSurveys((surveys) => {\n        const nonAPISurveys = surveys.filter((survey) => survey.type !== 'api')\n        nonAPISurveys.forEach((survey) => {\n            if (survey.type === SurveyType.Widget) {\n                if (\n                    survey.appearance?.widgetType === 'tab' &&\n                    document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 0\n                ) {\n                    handleWidget(posthog, survey)\n                }\n                if (survey.appearance?.widgetType === 'selector' && survey.appearance?.widgetSelector) {\n                    const selectorOnPage = document.querySelector(survey.appearance.widgetSelector)\n                    if (selectorOnPage) {\n                        if (document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 0) {\n                            handleWidget(posthog, survey)\n                        } else if (document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 1) {\n                            // we have to check if user selector already has a survey listener attached to it because we always have to check if it's on the page or not\n                            if (!selectorOnPage.getAttribute('PHWidgetSurveyClickListener')) {\n                                const surveyPopup = document\n                                    .querySelector(`.PostHogWidget${survey.id}`)\n                                    ?.shadowRoot?.querySelector(`.survey-form`) as HTMLFormElement\n                                selectorOnPage.addEventListener('click', () => {\n                                    if (surveyPopup) {\n                                        surveyPopup.style.display =\n                                            surveyPopup.style.display === 'none' ? 'block' : 'none'\n                                        surveyPopup.addEventListener(\n                                            'PHSurveyClosed',\n                                            () => (surveyPopup.style.display = 'none')\n                                        )\n                                    }\n                                })\n                                selectorOnPage.setAttribute('PHWidgetSurveyClickListener', 'true')\n                            }\n                        }\n                    }\n                }\n            }\n            // with event based surveys, we need to show the next survey without reloading the page.\n            // A simple check for div elements with the class name pattern of PostHogSurvey_xyz doesn't work here\n            // because preact leaves behind the div element for any surveys responded/dismissed with a <style> node.\n            // To alleviate this, we check the last div in the dom and see if it has any elements other than a Style node.\n            // if the last PostHogSurvey_xyz div has only one style node, we can show the next survey in the queue\n            // without reloading the page.\n            const surveyPopups = document.querySelectorAll(`div[class^=PostHogSurvey]`)\n            const canShowSurvey =\n                surveyPopups.length > 0\n                    ? surveyPopups[surveyPopups.length - 1].shadowRoot?.childElementCount === 1\n                    : true\n\n            if (survey.type === SurveyType.Popover && canShowSurvey) {\n                const surveyWaitPeriodInDays = survey.conditions?.seenSurveyWaitPeriodInDays\n                const lastSeenSurveyDate = localStorage.getItem(`lastSeenSurveyDate`)\n                if (surveyWaitPeriodInDays && lastSeenSurveyDate) {\n                    const today = new Date()\n                    const diff = Math.abs(today.getTime() - new Date(lastSeenSurveyDate).getTime())\n                    const diffDaysFromToday = Math.ceil(diff / (1000 * 3600 * 24))\n                    if (diffDaysFromToday < surveyWaitPeriodInDays) {\n                        return\n                    }\n                }\n\n                if (!localStorage.getItem(getSurveySeenKey(survey))) {\n                    const shadow = createShadow(style(survey?.appearance), survey.id)\n                    Preact.render(<SurveyPopup key={'popover-survey'} posthog={posthog} survey={survey} />, shadow)\n                }\n            }\n        })\n    }, forceReload)\n}\n\nexport const renderSurveysPreview = ({\n    survey,\n    parentElement,\n    previewPageIndex,\n    forceDisableHtml,\n}: {\n    survey: Survey\n    parentElement: HTMLElement\n    previewPageIndex: number\n    forceDisableHtml?: boolean\n}) => {\n    const surveyStyleSheet = style(survey.appearance)\n    const styleElement = Object.assign(document.createElement('style'), { innerText: surveyStyleSheet })\n\n    // Remove previously attached <style>\n    Array.from(parentElement.children).forEach((child) => {\n        if (child instanceof HTMLStyleElement) {\n            parentElement.removeChild(child)\n        }\n    })\n\n    parentElement.appendChild(styleElement)\n    const textColor = getContrastingTextColor(\n        survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor || 'white'\n    )\n\n    Preact.render(\n        <SurveyPopup\n            key=\"surveys-render-preview\"\n            survey={survey}\n            forceDisableHtml={forceDisableHtml}\n            style={{\n                position: 'relative',\n                right: 0,\n                borderBottom: `1px solid ${survey.appearance?.borderColor}`,\n                borderRadius: 10,\n                color: textColor,\n            }}\n            previewPageIndex={previewPageIndex}\n        />,\n        parentElement\n    )\n}\nexport const renderFeedbackWidgetPreview = ({\n    survey,\n    root,\n    forceDisableHtml,\n}: {\n    survey: Survey\n    root: HTMLElement\n    forceDisableHtml?: boolean\n}) => {\n    const widgetStyleSheet = createWidgetStyle(survey.appearance?.widgetColor)\n    const styleElement = Object.assign(document.createElement('style'), { innerText: widgetStyleSheet })\n    root.appendChild(styleElement)\n    Preact.render(\n        <FeedbackWidget\n            key={'feedback-render-preview'}\n            forceDisableHtml={forceDisableHtml}\n            survey={survey}\n            readOnly={true}\n        />,\n        root\n    )\n}\n\n// This is the main exported function\nexport function generateSurveys(posthog: PostHog) {\n    // NOTE: Important to ensure we never try and run surveys without a window environment\n    if (!document || !window) {\n        return\n    }\n    callSurveys(posthog, true)\n\n    // recalculate surveys every 3 seconds to check if URL or selectors have changed\n    setInterval(() => {\n        callSurveys(posthog, false)\n    }, 3000)\n}\n\nexport function SurveyPopup({\n    survey,\n    forceDisableHtml,\n    posthog,\n    style,\n    previewPageIndex,\n}: {\n    survey: Survey\n    forceDisableHtml?: boolean\n    posthog?: PostHog\n    style?: React.CSSProperties\n    previewPageIndex?: number | undefined\n}) {\n    const [isPopupVisible, setIsPopupVisible] = useState(true)\n    const [isSurveySent, setIsSurveySent] = useState(false)\n    const shouldShowConfirmation = isSurveySent || previewPageIndex === survey.questions.length\n    const isPreviewMode = Number.isInteger(previewPageIndex)\n    const confirmationBoxLeftStyle = style?.left && isNumber(style?.left) ? { left: style.left - 40 } : {}\n\n    // Ensure the popup stays in the same position for the preview\n    if (isPreviewMode) {\n        style = style || {}\n        style.left = 'unset'\n        style.right = 'unset'\n        style.transform = 'unset'\n    }\n\n    useEffect(() => {\n        if (isPreviewMode || !posthog) {\n            return\n        }\n\n        window.dispatchEvent(new Event('PHSurveyShown'))\n        posthog.capture('survey shown', {\n            $survey_name: survey.name,\n            $survey_id: survey.id,\n            $survey_iteration: survey.current_iteration,\n            $survey_iteration_start_date: survey.current_iteration_start_date,\n            sessionRecordingUrl: posthog.get_session_replay_url?.(),\n        })\n        localStorage.setItem(`lastSeenSurveyDate`, new Date().toISOString())\n\n        window.addEventListener('PHSurveyClosed', () => {\n            setIsPopupVisible(false)\n        })\n        window.addEventListener('PHSurveySent', () => {\n            if (!survey.appearance?.displayThankYouMessage) {\n                return setIsPopupVisible(false)\n            }\n\n            setIsSurveySent(true)\n\n            if (survey.appearance?.autoDisappear) {\n                setTimeout(() => {\n                    setIsPopupVisible(false)\n                }, 5000)\n            }\n        })\n    }, [])\n\n    return isPopupVisible ? (\n        <SurveyContext.Provider\n            value={{\n                isPreviewMode,\n                previewPageIndex: previewPageIndex,\n                handleCloseSurveyPopup: () => dismissedSurveyEvent(survey, posthog, isPreviewMode),\n            }}\n        >\n            {!shouldShowConfirmation ? (\n                <Questions\n                    survey={survey}\n                    forceDisableHtml={!!forceDisableHtml}\n                    posthog={posthog}\n                    styleOverrides={style}\n                />\n            ) : (\n                <ConfirmationMessage\n                    header={survey.appearance?.thankYouMessageHeader || 'Thank you!'}\n                    description={survey.appearance?.thankYouMessageDescription || ''}\n                    forceDisableHtml={!!forceDisableHtml}\n                    contentType={survey.appearance?.thankYouMessageDescriptionContentType}\n                    appearance={survey.appearance || defaultSurveyAppearance}\n                    styleOverrides={{ ...style, ...confirmationBoxLeftStyle }}\n                    onClose={() => setIsPopupVisible(false)}\n                />\n            )}\n        </SurveyContext.Provider>\n    ) : (\n        <></>\n    )\n}\n\ninterface GetQuestionComponentProps {\n    question: SurveyQuestion\n    forceDisableHtml: boolean\n    displayQuestionIndex: number\n    appearance: SurveyAppearance\n    onSubmit: (res: string | string[] | number | null) => void\n}\n\nconst getQuestionComponent = ({\n    question,\n    forceDisableHtml,\n    displayQuestionIndex,\n    appearance,\n    onSubmit,\n}: GetQuestionComponentProps): JSX.Element => {\n    const questionComponents = {\n        [SurveyQuestionType.Open]: OpenTextQuestion,\n        [SurveyQuestionType.Link]: LinkQuestion,\n        [SurveyQuestionType.Rating]: RatingQuestion,\n        [SurveyQuestionType.SingleChoice]: MultipleChoiceQuestion,\n        [SurveyQuestionType.MultipleChoice]: MultipleChoiceQuestion,\n    }\n\n    const commonProps = {\n        question,\n        forceDisableHtml,\n        appearance,\n        onSubmit,\n    }\n\n    const additionalProps: Record<SurveyQuestionType, any> = {\n        [SurveyQuestionType.Open]: {},\n        [SurveyQuestionType.Link]: {},\n        [SurveyQuestionType.Rating]: { displayQuestionIndex },\n        [SurveyQuestionType.SingleChoice]: { displayQuestionIndex },\n        [SurveyQuestionType.MultipleChoice]: { displayQuestionIndex },\n    }\n\n    const Component = questionComponents[question.type]\n    const componentProps = { ...commonProps, ...additionalProps[question.type] }\n\n    return <Component {...componentProps} />\n}\n\nexport function Questions({\n    survey,\n    forceDisableHtml,\n    posthog,\n    styleOverrides,\n}: {\n    survey: Survey\n    forceDisableHtml: boolean\n    posthog?: PostHog\n    styleOverrides?: React.CSSProperties\n}) {\n    const textColor = getContrastingTextColor(\n        survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor\n    )\n    const [questionsResponses, setQuestionsResponses] = useState({})\n    const { isPreviewMode, previewPageIndex } = useContext(SurveyContext)\n    const [currentQuestionIndex, setCurrentQuestionIndex] = useState(previewPageIndex || 0)\n    const surveyQuestions = useMemo(() => getDisplayOrderQuestions(survey), [survey])\n\n    // Sync preview state\n    useEffect(() => {\n        setCurrentQuestionIndex(previewPageIndex ?? 0)\n    }, [previewPageIndex])\n\n    const onNextButtonClick = ({\n        res,\n        originalQuestionIndex,\n        displayQuestionIndex,\n    }: {\n        res: string | string[] | number | null\n        originalQuestionIndex: number\n        displayQuestionIndex: number\n    }) => {\n        if (!posthog) {\n            return\n        }\n\n        const responseKey =\n            originalQuestionIndex === 0 ? `$survey_response` : `$survey_response_${originalQuestionIndex}`\n\n        setQuestionsResponses({ ...questionsResponses, [responseKey]: res })\n\n        const nextStep = posthog.getNextSurveyStep(survey, displayQuestionIndex, res)\n        if (nextStep === SurveyQuestionBranchingType.ConfirmationMessage) {\n            sendSurveyEvent({ ...questionsResponses, [responseKey]: res }, survey, posthog)\n        } else {\n            setCurrentQuestionIndex(nextStep)\n        }\n    }\n\n    return (\n        <form\n            className=\"survey-form\"\n            style={{\n                color: textColor,\n                borderColor: survey.appearance?.borderColor,\n                ...styleOverrides,\n            }}\n        >\n            {surveyQuestions.map((question, displayQuestionIndex) => {\n                const { originalQuestionIndex } = question\n\n                const isVisible = isPreviewMode\n                    ? currentQuestionIndex === originalQuestionIndex\n                    : currentQuestionIndex === displayQuestionIndex\n                return (\n                    isVisible && (\n                        <div>\n                            {getQuestionComponent({\n                                question,\n                                forceDisableHtml,\n                                displayQuestionIndex,\n                                appearance: survey.appearance || defaultSurveyAppearance,\n                                onSubmit: (res) =>\n                                    onNextButtonClick({\n                                        res,\n                                        originalQuestionIndex,\n                                        displayQuestionIndex,\n                                    }),\n                            })}\n                        </div>\n                    )\n                )\n            })}\n        </form>\n    )\n}\n\nexport function FeedbackWidget({\n    survey,\n    forceDisableHtml,\n    posthog,\n    readOnly,\n}: {\n    survey: Survey\n    forceDisableHtml?: boolean\n    posthog?: PostHog\n    readOnly?: boolean\n}): JSX.Element {\n    const [showSurvey, setShowSurvey] = useState(false)\n    const [styleOverrides, setStyle] = useState({})\n    const widgetRef = useRef<HTMLDivElement>(null)\n\n    useEffect(() => {\n        if (readOnly || !posthog) {\n            return\n        }\n\n        if (survey.appearance?.widgetType === 'tab') {\n            if (widgetRef.current) {\n                const widgetPos = widgetRef.current.getBoundingClientRect()\n                const style = {\n                    top: '50%',\n                    left: parseInt(`${widgetPos.right - 360}`),\n                    bottom: 'auto',\n                    borderRadius: 10,\n                    borderBottom: `1.5px solid ${survey.appearance?.borderColor || '#c9c6c6'}`,\n                }\n                setStyle(style)\n            }\n        }\n        if (survey.appearance?.widgetType === 'selector') {\n            const widget = document.querySelector(survey.appearance.widgetSelector || '')\n            widget?.addEventListener('click', () => {\n                setShowSurvey(!showSurvey)\n            })\n            widget?.setAttribute('PHWidgetSurveyClickListener', 'true')\n        }\n    }, [])\n\n    return (\n        <>\n            {survey.appearance?.widgetType === 'tab' && (\n                <div\n                    className=\"ph-survey-widget-tab\"\n                    ref={widgetRef}\n                    onClick={() => !readOnly && setShowSurvey(!showSurvey)}\n                    style={{ color: getContrastingTextColor(survey.appearance.widgetColor) }}\n                >\n                    <div className=\"ph-survey-widget-tab-icon\"></div>\n                    {survey.appearance?.widgetLabel || ''}\n                </div>\n            )}\n            {showSurvey && (\n                <SurveyPopup\n                    key={'feedback-widget-survey'}\n                    posthog={posthog}\n                    survey={survey}\n                    forceDisableHtml={forceDisableHtml}\n                    style={styleOverrides}\n                />\n            )}\n        </>\n    )\n}\n"]}