@sensefolks/fastpoll 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/LICENSE +21 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
- package/dist/cjs/index-CC5IS5t8.js +1437 -0
- package/dist/cjs/index-CC5IS5t8.js.map +1 -0
- package/dist/cjs/index-D8TNlmQq.js +201 -0
- package/dist/cjs/index-D8TNlmQq.js.map +1 -0
- package/dist/cjs/index.cjs.js +11 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +16 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/sf-fastpoll.cjs.entry.js +395 -0
- package/dist/cjs/sf-fastpoll.cjs.entry.js.map +1 -0
- package/dist/cjs/sf-fastpoll.cjs.js +28 -0
- package/dist/cjs/sf-fastpoll.cjs.js.map +1 -0
- package/dist/cjs/sf-fastpoll.entry.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +12 -0
- package/dist/collection/components/sf-fastpoll/sf-fastpoll.css +76 -0
- package/dist/collection/components/sf-fastpoll/sf-fastpoll.js +454 -0
- package/dist/collection/components/sf-fastpoll/sf-fastpoll.js.map +1 -0
- package/dist/collection/index.js +11 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/utils/utils.js +189 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/index.js +1427 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/sf-fastpoll.d.ts +11 -0
- package/dist/components/sf-fastpoll.js +425 -0
- package/dist/components/sf-fastpoll.js.map +1 -0
- package/dist/esm/app-globals-DQuL1Twl.js +6 -0
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
- package/dist/esm/index-CfdIRf0W.js +193 -0
- package/dist/esm/index-CfdIRf0W.js.map +1 -0
- package/dist/esm/index-XYfqntZe.js +1428 -0
- package/dist/esm/index-XYfqntZe.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +14 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/esm/sf-fastpoll.entry.js +393 -0
- package/dist/esm/sf-fastpoll.entry.js.map +1 -0
- package/dist/esm/sf-fastpoll.js +24 -0
- package/dist/esm/sf-fastpoll.js.map +1 -0
- package/dist/esm-es5/app-globals-DQuL1Twl.js +2 -0
- package/dist/esm-es5/app-globals-DQuL1Twl.js.map +1 -0
- package/dist/esm-es5/index-CfdIRf0W.js +2 -0
- package/dist/esm-es5/index-CfdIRf0W.js.map +1 -0
- package/dist/esm-es5/index-XYfqntZe.js +3 -0
- package/dist/esm-es5/index-XYfqntZe.js.map +1 -0
- package/dist/esm-es5/index.js +2 -0
- package/dist/esm-es5/index.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -0
- package/dist/esm-es5/loader.js.map +1 -0
- package/dist/esm-es5/sf-fastpoll.entry.js +2 -0
- package/dist/esm-es5/sf-fastpoll.entry.js.map +1 -0
- package/dist/esm-es5/sf-fastpoll.js +2 -0
- package/dist/esm-es5/sf-fastpoll.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/sf-fastpoll/index.esm.js +2 -0
- package/dist/sf-fastpoll/index.esm.js.map +1 -0
- package/dist/sf-fastpoll/loader.esm.js.map +1 -0
- package/dist/sf-fastpoll/p-1f6dca2a.system.entry.js +2 -0
- package/dist/sf-fastpoll/p-1f6dca2a.system.entry.js.map +1 -0
- package/dist/sf-fastpoll/p-4648bca3.entry.js +2 -0
- package/dist/sf-fastpoll/p-4648bca3.entry.js.map +1 -0
- package/dist/sf-fastpoll/p-BbPAtVJG.system.js +2 -0
- package/dist/sf-fastpoll/p-BbPAtVJG.system.js.map +1 -0
- package/dist/sf-fastpoll/p-C7EMppj8.system.js.map +1 -0
- package/dist/sf-fastpoll/p-C9ESvisV.system.js +3 -0
- package/dist/sf-fastpoll/p-C9ESvisV.system.js.map +1 -0
- package/dist/sf-fastpoll/p-CfdIRf0W.js +2 -0
- package/dist/sf-fastpoll/p-CfdIRf0W.js.map +1 -0
- package/dist/sf-fastpoll/p-CpmSDeqe.system.js +2 -0
- package/dist/sf-fastpoll/p-CpmSDeqe.system.js.map +1 -0
- package/dist/sf-fastpoll/p-DQuL1Twl.js +2 -0
- package/dist/sf-fastpoll/p-DQuL1Twl.js.map +1 -0
- package/dist/sf-fastpoll/p-JC66e5NR.system.js.map +1 -0
- package/dist/sf-fastpoll/p-S-cJYJS7.system.js +2 -0
- package/dist/sf-fastpoll/p-S-cJYJS7.system.js.map +1 -0
- package/dist/sf-fastpoll/p-XYfqntZe.js +3 -0
- package/dist/sf-fastpoll/p-XYfqntZe.js.map +1 -0
- package/dist/sf-fastpoll/p-zRZYYxiz.system.js +2 -0
- package/dist/sf-fastpoll/p-zRZYYxiz.system.js.map +1 -0
- package/dist/sf-fastpoll/sf-fastpoll.entry.esm.js.map +1 -0
- package/dist/sf-fastpoll/sf-fastpoll.esm.js +2 -0
- package/dist/sf-fastpoll/sf-fastpoll.esm.js.map +1 -0
- package/dist/sf-fastpoll/sf-fastpoll.js +127 -0
- package/dist/types/components/sf-fastpoll/sf-fastpoll.d.ts +77 -0
- package/dist/types/components.d.ts +47 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/stencil-public-runtime.d.ts +1709 -0
- package/dist/types/utils/utils.d.ts +86 -0
- package/loader/cdn.js +2 -0
- package/loader/index.cjs.js +2 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +2 -0
- package/loader/index.js +3 -0
- package/package.json +86 -0
- package/readme.md +239 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sf-fastpoll.entry.cjs.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,mkCAAmkC;;ACGzlC,MAAM,mBAAmB,GAAGA,SAAG,CAAC,mBAAmB;AACnD,MAAM,qBAAqB,GAAGA,SAAG,CAAC,qBAAqB;AAEvD,IAAK,UAKJ;AALD,CAAA,UAAK,UAAU,EAAA;IACb,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;IACR,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;IACb,UAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB;IACtB,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AAChB,CAAC,EALI,UAAU,KAAV,UAAU,GAKd,EAAA,CAAA,CAAA;MA4CY,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAUU,QAAA,IAAiB,CAAA,iBAAA,GAAW,8BAA8B;AAEzD,QAAA,IAAM,CAAA,MAAA,GAAwB,IAAI;AAElC,QAAA,IAAiB,CAAA,iBAAA,GAAuB,EAAE;AAE1C,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAExB,QAAA,IAAK,CAAA,KAAA,GAAkB,IAAI;AAE3B,QAAA,IAAA,CAAA,WAAW,GAAe,UAAU,CAAC,IAAI;AAEzC,QAAA,IAAe,CAAA,eAAA,GAAa,EAAE;AAE9B,QAAA,IAAuB,CAAA,uBAAA,GAAa,EAAE;AAEtC,QAAA,IAAqB,CAAA,qBAAA,GAA8B,EAAE;AAErD,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAE1B,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE;AAE5B,QAAA,IAAU,CAAA,UAAA,GAA8B,EAAE;AAE3C,QAAA,IAAe,CAAA,eAAA,GAAW,CAAC;AAgkBpC;IA9jBC,iBAAiB,GAAA;AACf,QAAA,IAAIC,kBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,eAAe,EAAE;;AAE/B,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;;AAGlB,IAAA,MAAM,eAAe,GAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE;AAEjC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAA,EAAG,mBAAmB,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;AACxE,YAAA,MAAM,IAAI,GAAgB,MAAM,QAAQ,CAAC,IAAI,EAAE;AAE/C,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,gBAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;YAG/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;YACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE;;QAC7D,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;;gBAC3D;AACR,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;AAIhB,IAAA,MAAM,cAAc,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;;AAEf,YAAA,MAAM,IAAI,CAAC,cAAc,EAAE;;aACtB;;AAEL,YAAA,MAAM,IAAI,CAAC,eAAe,EAAE;;;AAIxB,IAAA,MAAM,cAAc,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC;;AAGF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAEjB,QAAA,IAAI;AACF,YAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC;AACnH,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE7C,YAAA,MAAM,cAAc,GAAG;gBACrB,eAAe,EAAE,IAAI,CAAC,SAAS;AAC/B,gBAAA,YAAY,EAAE;oBACZ,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;AACtD,iBAAA;gBACD,iBAAiB,EAAE,IAAI,CAAC,qBAAqB;AAC7C,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,cAAc,EAAE,qBAAqB;AACrC,gBAAA,UAAU,EAAE,UAAU;aACvB;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,qBAAqB,EAAE,EAAE;AACvD,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AACrC,aAAA,CAAC;AAEF,YAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAEpC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;;AAGjC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU;;QACxC,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;;gBAC3D;AACR,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;IAIhB,gBAAgB,GAAA;;QAEtB,MAAM,WAAW,GAAG,MAAK;;AACvB,YAAA,IAAI,eAAe,IAAI,SAAS,KAAI,CAAC,EAAA,GAAA,SAAiB,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAE;AAC9E,gBAAA,OAAQ,SAAiB,CAAC,aAAa,CAAC,QAAQ;;;AAGlD,YAAA,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS;AAC9B,YAAA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,SAAS;AACxC,YAAA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,OAAO;AACtC,YAAA,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAE,gBAAA,OAAO,OAAO;AACxC,YAAA,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,gBAAA,OAAO,SAAS;AAC5C,YAAA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK;AACpC,YAAA,OAAO,SAAS;AAClB,SAAC;QAED,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,QAAQ,EAAE,WAAW,EAAE;YACvB,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,gBAAgB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAE,CAAA;YACpD,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;AAC1D,YAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;;IAGK,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB;;QAGF,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC1B,gBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS;AACvC,gBAAA,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,CAAC;;AACtD,iBAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AAC1C,gBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,kBAAkB;AAChD,gBAAA,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,CAAC;;iBACtD;AACL,gBAAA,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC;gBACjD,IAAI,CAAC,cAAc,EAAE;;;aAElB,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,SAAS,EAAE;AACpD,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACnC,gBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,kBAAkB;AAChD,gBAAA,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,CAAC;;iBACtD;AACL,gBAAA,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC;gBACjD,IAAI,CAAC,cAAc,EAAE;;;aAElB,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,kBAAkB,EAAE;AAC7D,YAAA,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC;YACjD,IAAI,CAAC,cAAc,EAAE;;;IAIjB,QAAQ,GAAA;QACd,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,SAAS,EAAE;AAC7C,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI;;aAC7B,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,kBAAkB,EAAE;AAC7D,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC1B,gBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS;;iBAClC;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI;;;;IAKhC,eAAe,GAAA;;AACrB,QAAA,OAAO,CAAC,EAAE,CAAA,MAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,gBAAgB,MAAI,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,CAAA,CAAC;;IAG1E,wBAAwB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;;AAGlC,IAAA,sBAAsB,CAAC,OAAe,EAAA;AAC5C,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO;QAC9B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE;SAC1B,EAAE,IAAI,CAAC;;AAGF,IAAA,YAAY,CAAC,KAAa,EAAA;;QAEhC,MAAM,UAAU,GAAG,4BAA4B;QAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;IAG9B,uBAAuB,CAAC,MAAwB,EAAE,KAAa,EAAA;QACrE,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACtE,YAAA,OAAO,wBAAwB;;QAGjC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,MAAM,MAAM,GAAGC,sBAAc,CAAC,MAAM,EAAE,KAAK,CAAC;AAC5C,YAAA,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC7B,oBAAA,OAAO,oCAAoC;;;;AAKjD,QAAA,OAAO,IAAI;;IAGL,YAAY,GAAA;QAClB,MAAM,MAAM,GAA8B,EAAE;AAE5C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7E,YAAA,MAAM,CAAC,MAAM,CAAC,GAAG,mCAAmC;;AAGtD,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1F,YAAA,MAAM,CAAC,UAAU,CAAC,GAAG,mCAAmC;;AAG1D,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;;AAGjC,IAAA,kBAAkB,CAAC,MAAc,EAAA;;AACvC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK;AAChC,QAAA,MAAM,gBAAgB,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,UAAU,MAAK,aAAa;QAElE,IAAI,gBAAgB,EAAE;YACpB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;gBAC1E,IAAI,CAAC,sBAAsB,CAAC,CAAA,YAAA,EAAe,MAAM,CAAC,KAAK,CAAE,CAAA,CAAC;;iBACrD;gBACL,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;gBAC7D,IAAI,CAAC,sBAAsB,CAAC,CAAA,UAAA,EAAa,MAAM,CAAC,KAAK,CAAE,CAAA,CAAC;;;aAErD;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,WAAW,CAAC;YACpC,IAAI,CAAC,sBAAsB,CAAC,CAAA,UAAA,EAAa,MAAM,CAAC,KAAK,CAAE,CAAA,CAAC;;;AAI1D,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC3B,YAAA,MAAM,MAAM,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,CAAE;AACrC,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM;;;AAIpB,IAAA,0BAA0B,CAAC,MAAc,EAAA;AAC/C,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK;QAChC,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;;aACrF;YACL,IAAI,CAAC,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC;;;IAIzE,4BAA4B,CAAC,GAAW,EAAE,KAAY,EAAA;AAC5D,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA8C;AACnE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;QAChE,MAAM,SAAS,GAAG,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,SAAS,KAAI,MAAM;AAC7C,QAAA,IAAI,KAAa;AAEjB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;;YAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE;YAC1D,MAAM,sBAAsB,GAAGC,qBAAa,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AAC/D,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,GAAGC,+BAAuB,CAAC,YAAY,EAAE,sBAAsB,CAAC;;iBAChE;AACL,gBAAA,KAAK,GAAGC,oCAA4B,CAAC,YAAY,EAAE,sBAAsB,CAAC;;;aAEvE;;;YAGL,KAAK,GAAGC,sBAAc,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;;QAGjD,IAAI,CAAC,qBAAqB,GACrB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,qBAAqB,CAC7B,EAAA,EAAA,CAAC,GAAG,GAAG,KAAK,GACb;;AAGK,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QAC3C,MAAM,IAAI,GAAG,IAAI;AACjB,QAAA,OAAO,UAAU,CAAQ,EAAA;AACvB,YAAA,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,CAAC,CAAC;AAClD,SAAC;;IAGK,cAAc,CAAC,KAAe,EAAE,KAAa,EAAA;AACnD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AACtB,gBAAA,OAAO,IAAI;;;AAGf,QAAA,OAAO,KAAK;;AAGN,IAAA,WAAW,CAAC,MAAwB,EAAA;AAC1C,QAAA,MAAM,MAAM,GAAGJ,sBAAc,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrF,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC;AAE1D,QAAA,QAAQ,MAAM,CAAC,SAAS;AACtB,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,QAAQ;AACX,gBAAA,QACEK,OAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAA,CAAI;AAG5K,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACtB,oBAAA,OAAOA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAI;;gBAErK,QACEA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,oBAAoB,EAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAA,EAChF,CAAC,MAAM,CAAC,YAAY,KACnBA,oBAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,EACtB,IAAA,EAAA,EAAA,MAAM,CAAC,WAAW,CACZ,CACV,EACA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,EAAA;oBAClC,QACEA,oBAAQ,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,CAAC,EAC7J,EAAA,MAAM,CAAC,KAAK,CACN;iBAEZ,CAAC,CACK;AAGb,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACtB,oBAAA,OAAOA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAI;;AAErK,gBAAA,QACEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,aAAa,EAAA,EACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,EAAA;oBAClC,QACEA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAC,cAAc,EAAA,EACzCA,OAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,aAAa,EAClB,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,EAC1C,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,CAAC,EAC/G,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,CAAA,EACFA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,EACtE,EAAA,MAAM,CAAC,KAAK,CACP,CACJ;iBAET,CAAC,CACE;AAGV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACtB,oBAAA,OAAOA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAI;;gBAErK,MAAM,IAAI,GAAG,IAAI;AACjB,gBAAA,QACEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,gBAAgB,EAAA,EACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,EAAA;oBAClC,QACEA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAC,iBAAiB,EAAA,EAC5CA,OACE,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,gBAAgB,EACrB,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,EAC1C,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,EACjE,QAAQ,EAAE,YAAY,EACtB,CAAA,EACFA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,gBAAgB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,EACzE,EAAA,MAAM,CAAC,KAAK,CACP,CACJ;iBAET,CAAC,CACE;AAGV,YAAA;AACE,gBAAA,OAAOA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAI;;;IAIjK,wBAAwB,GAAA;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,IAAG;AAC3C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC;YACzD,OAAO,KAAK,KAAK,IAAI;AACvB,SAAC,CAAC;;IAGI,cAAc,GAAA;;AACpB,QAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAC/E,QAAA,MAAM,UAAU,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,UAAU,MAAK,aAAa;QAC5D,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AAE1C,QAAA,QACEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,gBAAgB,EAAA,EACxBA,OAAA,CAAA,IAAA,EAAA,EAAI,IAAI,EAAC,sBAAsB,EAAC,EAAE,EAAC,cAAc,EAAA,EAC9C,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,KAAI,sBAAsB,CAC7C,EACLA,OACE,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,YAAY,EAAA,iBAAA,EACzB,cAAc,EAAA,cAAA,EAChB,QAAQ,EAAA,kBAAA,EACJ,QAAQ,GAAG,YAAY,GAAG,SAAS,EAEpD,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,CAAC,MAAM,EAAEC,OAAK,MACvCD,OAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,eAAe,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAA,EAC3CA,OAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,UAAU,GAAG,gBAAgB,GAAG,aAAa,EACnD,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,EACvC,EAAE,EAAE,CAAA,YAAA,EAAeC,OAAK,CAAA,CAAE,EAC1B,IAAI,EAAC,aAAa,EAClB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACpD,QAAQ,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAA,kBAAA,EAC7B,eAAeA,OAAK,CAAA,MAAA,CAAQ,EAC9C,CAAA,EACFD,OAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,cAAc,EAAC,EAAE,EAAE,eAAeC,OAAK,CAAA,MAAA,CAAQ,EAAA,EACvD,MAAM,CAAC,KAAK,CACR,CACD,CACT,CAAC,CACE,EACL,QAAQ,KACPD,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,eAAe,EAAC,EAAE,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,EAAA,WAAA,EAAW,QAAQ,EAAA,EACtE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CACpB,CACP,EACDA,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAA,EAC1BA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,oBAAoB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAC1G,EAAA,WAAW,GAAG,QAAQ,GAAG,MAAM,CACzB,CACL,CACF;;IAIF,kBAAkB,GAAA;;AACxB,QAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAEpD,QAAA,QACEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,qBAAqB,EAAA,EAC7BA,OAAA,CAAA,IAAA,EAAA,EAAI,IAAI,EAAC,2BAA2B,EAAA,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,gBAAgB,KAAI,oBAAoB,CAAM,EACjGA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,mBAAmB,EAAA,EAC1B,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,GAAG,CAAC,MAAM,KACvCA,OAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,eAAe,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAA,EAC3CA,OAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,gBAAgB,EACrB,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,kBAAkB,EACvB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5D,QAAQ,EAAE,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EACvD,CAAA,EACFA,OAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,cAAc,EAAE,EAAA,MAAM,CAAC,KAAK,CAAQ,CACzC,CACT,CAAC,CACE,EACNA,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAA,EAC1BA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,oBAAoB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAEvD,EAAA,MAAA,CAAA,EACTA,OAAQ,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,oBAAoB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAC7D,EAAA,WAAW,GAAG,QAAQ,GAAG,MAAM,CACzB,CACL,CACF;;IAIF,2BAA2B,GAAA;AACjC,QAAA,QACEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,8BAA8B,EAAA,EACtCA,OAAI,CAAA,IAAA,EAAA,EAAA,IAAI,EAAC,oCAAoC,EAA4B,EAAA,wBAAA,CAAA,EACzEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,gBAAgB,IACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,KAChCA,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,YAAY,EAAA,EACpBA,OAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,YAAY,EAAA,EACrB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,IAAIA,OAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,oBAAoB,SAAU,CACvD,EACP,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CACrB,CACP,CAAC,CACE,EACNA,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAA,EAC1BA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,oBAAoB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAEvD,EAAA,MAAA,CAAA,EACTA,OAAQ,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,sBAAsB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAE3G,EAAA,QAAA,CAAA,CACL,CACF;;IAIF,oBAAoB,GAAA;QAC1B,QACEA,OAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,sBAAsB,EAAA,EAC9BA,OAAI,CAAA,IAAA,EAAA,EAAA,IAAI,EAAC,4BAA4B,EAAE,EAAA,IAAI,CAAC,iBAAiB,CAAM,CAC/D;;IAIF,iBAAiB,GAAA;AACvB,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AACjD,YAAA,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1D,YAAA,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5E,YAAA,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9D;AAED,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;QAElF,OAAO,QAAQ,EAAE;;IAGnB,MAAM,GAAA;QACJ,IAAI,CAACN,kBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC/B,QACEM,QAACE,UAAI,EAAA,IAAA,EACHF,OAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,uBAAuB,EAAsD,EAAA,mDAAA,CAAA,CAChF;;AAIX,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,QACEA,QAACE,UAAI,EAAA,IAAA,EACHF,OAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,yBAAyB,EAAsB,EAAA,mBAAA,CAAA,CAClD;;AAIX,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,QACEA,QAACE,UAAI,EAAA,IAAA,EACHF,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,iBAAiB,EAAA,EACzBA,OAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,uBAAuB,IAAE,IAAI,CAAC,KAAK,CAAK,EAChDA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,qBAAqB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,gBAE9D,CACL,CACD;;AAIX,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,QACEA,QAACE,UAAI,EAAA,IAAA,EACHF,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,iBAAiB,EAAA,EACzBA,OAAG,CAAA,GAAA,EAAA,EAAA,IAAI,EAAC,uBAAuB,EAAkC,EAAA,+BAAA,CAAA,EACjEA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,qBAAqB,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,gBAE9D,CACL,CACD;;QAIX,QACEA,QAACE,UAAI,EAAA,IAAA,EACHF,OAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,gBAAY,aAAa,EAAA,EAC9D,IAAI,CAAC,iBAAiB,EAAE,EAEzBA,OAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EAAe,QAAQ,EAAa,aAAA,EAAA,MAAM,EAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,eAAe,EAAA,EAC5E,IAAI,CAAC,eAAe,CACjB,CACF,CACD;;;;;;;;","names":["Env","isValidKey","getFieldConfig","sanitizeInput","addToCommaSeparatedList","removeFromCommaSeparatedList","sanitizeByType","h","index","Host"],"sources":["src/components/sf-fastpoll/sf-fastpoll.css?tag=sf-fastpoll&encapsulation=shadow","src/components/sf-fastpoll/sf-fastpoll.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n/* Screen reader only content */\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Focus indicators for accessibility */\ninput:focus,\nselect:focus,\nbutton:focus {\n outline: 2px solid #005fcc;\n outline-offset: 2px;\n}\n\n/* Error state styling */\n[aria-invalid='true'] {\n border-color: #d32f2f;\n}\n\n[part='error-message'] {\n color: #d32f2f;\n font-size: 0.875rem;\n margin-top: 0.25rem;\n}\n\n/* Choice options styling */\n[part='choice-option'] {\n display: flex;\n align-items: center;\n margin: 0.5rem 0;\n cursor: pointer;\n}\n\n[part='choice-option']:hover {\n background-color: rgba(0, 95, 204, 0.1);\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n input:focus,\n select:focus,\n button:focus {\n outline: 3px solid;\n }\n\n [part='error-message'] {\n background-color: #d32f2f;\n color: white;\n padding: 0.25rem;\n }\n\n [part='choice-option']:hover {\n background-color: highlight;\n color: highlighttext;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n","import { Component, Host, h, Prop, State, Element, Env } from '@stencil/core';\nimport { isValidKey, getFieldConfig, addToCommaSeparatedList, removeFromCommaSeparatedList, sanitizeByType, sanitizeInput } from '../../utils/utils';\n\nconst SURVEY_API_ENDPOINT = Env.SURVEY_API_ENDPOINT;\nconst RESPONSE_API_ENDPOINT = Env.RESPONSE_API_ENDPOINT;\n\nenum SurveyStep {\n POLL = 0,\n FOLLOW_UP = 1,\n RESPONDENT_DETAILS = 2,\n COMPLETION = 3,\n}\n\ninterface RespondentDetail {\n label: string;\n value: string;\n inputType: string; // 'text', 'email', 'dropdown', 'radio', 'checkbox', 'number'\n required?: boolean;\n placeholder?: string;\n options?: Array<{\n value: string;\n label: string;\n }>;\n defaultValue?: any;\n}\n\ninterface Choice {\n label: string;\n value: string;\n}\n\ninterface SurveyConfig {\n question: string;\n choiceType: string; // 'single' or 'multiple'\n choices: Choice[];\n followUpChoices?: Choice[];\n followUpQuestion?: string;\n}\n\ninterface SurveyPayload {\n config: SurveyConfig;\n respondentDetails?: RespondentDetail[];\n}\n\ninterface ApiResponse {\n success: boolean;\n message: string;\n payload: SurveyPayload;\n}\n\n@Component({\n tag: 'sf-fastpoll',\n styleUrl: 'sf-fastpoll.css',\n shadow: true,\n})\nexport class SfFastpoll {\n @Element() el: HTMLElement;\n\n @Prop() surveyKey: string;\n\n @Prop() completionMessage: string = 'Thank you for your response!';\n\n @State() config: SurveyConfig | null = null;\n\n @State() respondentDetails: RespondentDetail[] = [];\n\n @State() loading: boolean = false;\n\n @State() error: string | null = null;\n\n @State() currentStep: SurveyStep = SurveyStep.POLL;\n\n @State() selectedChoices: string[] = [];\n\n @State() selectedFollowUpChoices: string[] = [];\n\n @State() userRespondentDetails: { [key: string]: string } = {};\n\n @State() submitted: boolean = false;\n\n @State() announceMessage: string = '';\n\n @State() formErrors: { [key: string]: string } = {};\n\n private surveyStartTime: number = 0;\n\n componentWillLoad() {\n if (isValidKey(this.surveyKey)) {\n return this.fetchSurveyData();\n }\n return Promise.resolve();\n }\n\n private async fetchSurveyData() {\n this.loading = true;\n this.error = null;\n this.surveyStartTime = Date.now();\n\n try {\n const response = await fetch(`${SURVEY_API_ENDPOINT}/${this.surveyKey}`);\n const data: ApiResponse = await response.json();\n\n if (!data.success) {\n throw new Error(data.message);\n }\n\n this.config = data.payload.config;\n this.respondentDetails = data.payload.respondentDetails || [];\n } catch (error) {\n this.error = error instanceof Error ? error.message : String(error);\n } finally {\n this.loading = false;\n }\n }\n\n private async retryOperation() {\n if (this.config) {\n // If we have config, retry submission\n await this.submitResponse();\n } else {\n // Otherwise, retry fetching survey data\n await this.fetchSurveyData();\n }\n }\n\n private async submitResponse() {\n if (!this.config || this.submitted) {\n return;\n }\n\n this.loading = true;\n this.error = null;\n\n try {\n const completionTimeSeconds = this.surveyStartTime > 0 ? Math.round((Date.now() - this.surveyStartTime) / 1000) : 0;\n const userAgentInfo = this.getUserAgentInfo();\n\n const submissionData = {\n surveyPublicKey: this.surveyKey,\n responseData: {\n selectedChoices: this.selectedChoices,\n selectedFollowUpChoices: this.selectedFollowUpChoices,\n },\n respondentDetails: this.userRespondentDetails,\n userAgent: userAgentInfo,\n completionTime: completionTimeSeconds,\n surveyType: 'fastPoll',\n };\n\n const response = await fetch(`${RESPONSE_API_ENDPOINT}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(submissionData),\n });\n\n const result = await response.json();\n\n if (!result.success) {\n throw new Error(result.message);\n }\n\n this.submitted = true;\n this.currentStep = SurveyStep.COMPLETION;\n } catch (error) {\n this.error = error instanceof Error ? error.message : String(error);\n } finally {\n this.loading = false;\n }\n }\n\n private getUserAgentInfo() {\n // Use modern navigator.userAgentData when available, fallback to userAgent parsing\n const getPlatform = () => {\n if ('userAgentData' in navigator && (navigator as any).userAgentData?.platform) {\n return (navigator as any).userAgentData.platform;\n }\n // Fallback: extract platform info from userAgent\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'Windows';\n if (ua.includes('Mac')) return 'macOS';\n if (ua.includes('Linux')) return 'Linux';\n if (ua.includes('Android')) return 'Android';\n if (ua.includes('iOS')) return 'iOS';\n return 'Unknown';\n };\n\n return {\n userAgent: navigator.userAgent,\n language: navigator.language,\n platform: getPlatform(),\n cookieEnabled: navigator.cookieEnabled,\n onLine: navigator.onLine,\n screenResolution: `${screen.width}x${screen.height}`,\n colorDepth: screen.colorDepth,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n timestamp: new Date().toISOString(),\n };\n }\n\n private nextStep() {\n if (!this.validateForm()) {\n return;\n }\n\n if (this.currentStep === SurveyStep.POLL) {\n if (this.hasFollowUpStep()) {\n this.currentStep = SurveyStep.FOLLOW_UP;\n this.announceToScreenReader('Moving to follow-up question');\n } else if (this.hasRespondentDetailsStep()) {\n this.currentStep = SurveyStep.RESPONDENT_DETAILS;\n this.announceToScreenReader('Moving to respondent details');\n } else {\n this.announceToScreenReader('Submitting poll...');\n this.submitResponse();\n }\n } else if (this.currentStep === SurveyStep.FOLLOW_UP) {\n if (this.hasRespondentDetailsStep()) {\n this.currentStep = SurveyStep.RESPONDENT_DETAILS;\n this.announceToScreenReader('Moving to respondent details');\n } else {\n this.announceToScreenReader('Submitting poll...');\n this.submitResponse();\n }\n } else if (this.currentStep === SurveyStep.RESPONDENT_DETAILS) {\n this.announceToScreenReader('Submitting poll...');\n this.submitResponse();\n }\n }\n\n private prevStep() {\n if (this.currentStep === SurveyStep.FOLLOW_UP) {\n this.currentStep = SurveyStep.POLL;\n } else if (this.currentStep === SurveyStep.RESPONDENT_DETAILS) {\n if (this.hasFollowUpStep()) {\n this.currentStep = SurveyStep.FOLLOW_UP;\n } else {\n this.currentStep = SurveyStep.POLL;\n }\n }\n }\n\n private hasFollowUpStep(): boolean {\n return !!(this.config?.followUpQuestion && this.config?.followUpChoices?.length);\n }\n\n private hasRespondentDetailsStep(): boolean {\n return this.respondentDetails.length > 0;\n }\n\n private announceToScreenReader(message: string) {\n this.announceMessage = message;\n setTimeout(() => {\n this.announceMessage = '';\n }, 1000);\n }\n\n private isValidEmail(email: string): boolean {\n // Basic email validation regex\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email.trim());\n }\n\n private validateRespondentField(detail: RespondentDetail, value: string): string | null {\n if (detail.required !== false && (!value || value.trim().length === 0)) {\n return 'This field is required';\n }\n\n if (value && value.trim().length > 0) {\n const config = getFieldConfig(detail, value);\n if (config.inputType === 'email') {\n if (!this.isValidEmail(value)) {\n return 'Please enter a valid email address';\n }\n }\n }\n\n return null;\n }\n\n private validateForm(): boolean {\n const errors: { [key: string]: string } = {};\n\n if (this.currentStep === SurveyStep.POLL && this.selectedChoices.length === 0) {\n errors['poll'] = 'Please select at least one option';\n }\n\n if (this.currentStep === SurveyStep.FOLLOW_UP && this.selectedFollowUpChoices.length === 0) {\n errors['followup'] = 'Please select at least one option';\n }\n\n this.formErrors = errors;\n return Object.keys(errors).length === 0;\n }\n\n private handleChoiceSelect(choice: Choice) {\n const choiceValue = choice.value;\n const isMultipleChoice = this.config?.choiceType === 'multiChoice';\n\n if (isMultipleChoice) {\n if (this.selectedChoices.includes(choiceValue)) {\n this.selectedChoices = this.selectedChoices.filter(c => c !== choiceValue);\n this.announceToScreenReader(`Deselected: ${choice.label}`);\n } else {\n this.selectedChoices = [...this.selectedChoices, choiceValue];\n this.announceToScreenReader(`Selected: ${choice.label}`);\n }\n } else {\n this.selectedChoices = [choiceValue];\n this.announceToScreenReader(`Selected: ${choice.label}`);\n }\n\n // Clear any validation errors when user makes a selection\n if (this.formErrors['poll']) {\n const errors = { ...this.formErrors };\n delete errors['poll'];\n this.formErrors = errors;\n }\n }\n\n private handleFollowUpChoiceSelect(choice: Choice) {\n const choiceValue = choice.value;\n if (this.selectedFollowUpChoices.includes(choiceValue)) {\n this.selectedFollowUpChoices = this.selectedFollowUpChoices.filter(c => c !== choiceValue);\n } else {\n this.selectedFollowUpChoices = [...this.selectedFollowUpChoices, choiceValue];\n }\n }\n\n private handleRespondentDetailChange(key: string, event: Event) {\n const target = event.target as HTMLInputElement | HTMLSelectElement;\n const detail = this.respondentDetails.find(d => d.value === key);\n const inputType = detail?.inputType || 'text';\n let value: string;\n\n if (target.type === 'checkbox') {\n // Handle checkbox inputs - maintain comma-separated list using browser-compatible helpers\n const currentValue = this.userRespondentDetails[key] || '';\n const sanitizedCheckboxValue = sanitizeInput(target.value, 100);\n if (target.checked) {\n value = addToCommaSeparatedList(currentValue, sanitizedCheckboxValue);\n } else {\n value = removeFromCommaSeparatedList(currentValue, sanitizedCheckboxValue);\n }\n } else {\n // Handle all other input types (text, email, number, radio, select)\n // Sanitize based on field type\n value = sanitizeByType(target.value, inputType);\n }\n\n this.userRespondentDetails = {\n ...this.userRespondentDetails,\n [key]: value,\n };\n }\n\n private createInputHandler(fieldValue: string) {\n const self = this;\n return function (e: Event) {\n self.handleRespondentDetailChange(fieldValue, e);\n };\n }\n\n private isValueInArray(array: string[], value: string): boolean {\n for (let i = 0; i < array.length; i++) {\n if (array[i] === value) {\n return true;\n }\n }\n return false;\n }\n\n private renderField(detail: RespondentDetail) {\n const config = getFieldConfig(detail, this.userRespondentDetails[detail.value] || '');\n const inputHandler = this.createInputHandler(detail.value);\n\n switch (config.inputType) {\n case 'text':\n case 'email':\n case 'number':\n return (\n <input part=\"input form-input\" type={config.inputType} value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />\n );\n\n case 'dropdown':\n if (!config.hasOptions) {\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n return (\n <select part=\"select form-select\" onChange={inputHandler} required={config.required}>\n {!config.defaultValue && (\n <option value=\"\" disabled>\n {config.placeholder}\n </option>\n )}\n {config.options.map(function (option) {\n return (\n <option key={option.value} value={option.value} selected={config.currentValue === option.value || (!config.currentValue && config.defaultValue === option.value)}>\n {option.label}\n </option>\n );\n })}\n </select>\n );\n\n case 'radio':\n if (!config.hasOptions) {\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n return (\n <div part=\"radio-group\">\n {config.options.map(function (option) {\n return (\n <div key={option.value} part=\"radio-option\">\n <input\n part=\"radio-input\"\n type=\"radio\"\n id={config.fieldValue + '-' + option.value}\n name={config.fieldValue}\n value={option.value}\n checked={config.currentValue === option.value || (!config.currentValue && config.defaultValue === option.value)}\n onChange={inputHandler}\n required={config.required}\n />\n <label part=\"radio-label\" htmlFor={config.fieldValue + '-' + option.value}>\n {option.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n\n case 'checkbox':\n if (!config.hasOptions) {\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n const self = this;\n return (\n <div part=\"checkbox-group\">\n {config.options.map(function (option) {\n return (\n <div key={option.value} part=\"checkbox-option\">\n <input\n part=\"checkbox-input\"\n type=\"checkbox\"\n id={config.fieldValue + '-' + option.value}\n name={config.fieldValue}\n value={option.value}\n checked={self.isValueInArray(config.selectedValues, option.value)}\n onChange={inputHandler}\n />\n <label part=\"checkbox-label\" htmlFor={config.fieldValue + '-' + option.value}>\n {option.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n\n default:\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n }\n\n private isRespondentDetailsValid(): boolean {\n return this.respondentDetails.every(detail => {\n const value = this.userRespondentDetails[detail.value] || '';\n const error = this.validateRespondentField(detail, value);\n return error === null;\n });\n }\n\n private renderPollStep() {\n const isFinalStep = !this.hasFollowUpStep() && !this.hasRespondentDetailsStep();\n const isMultiple = this.config?.choiceType === 'multiChoice';\n const hasError = !!this.formErrors['poll'];\n\n return (\n <div part=\"step poll-step\">\n <h2 part=\"heading poll-heading\" id=\"poll-heading\">\n {this.config?.question || 'What is your choice?'}\n </h2>\n <div\n part=\"choices-container\"\n role={isMultiple ? 'group' : 'radiogroup'}\n aria-labelledby=\"poll-heading\"\n aria-invalid={hasError}\n aria-describedby={hasError ? 'poll-error' : undefined}\n >\n {this.config?.choices?.map((choice, index) => (\n <label part=\"choice-option\" key={choice.value}>\n <input\n part={isMultiple ? 'checkbox-input' : 'radio-input'}\n type={isMultiple ? 'checkbox' : 'radio'}\n id={`poll-choice-${index}`}\n name=\"poll-choice\"\n value={choice.value}\n checked={this.selectedChoices.includes(choice.value)}\n onChange={() => this.handleChoiceSelect(choice)}\n aria-describedby={`poll-choice-${index}-label`}\n />\n <span part=\"choice-label\" id={`poll-choice-${index}-label`}>\n {choice.label}\n </span>\n </label>\n ))}\n </div>\n {hasError && (\n <div part=\"error-message\" id=\"poll-error\" role=\"alert\" aria-live=\"polite\">\n {this.formErrors['poll']}\n </div>\n )}\n <div part=\"button-container\">\n <button part=\"button next-button\" onClick={() => this.nextStep()} disabled={this.selectedChoices.length === 0}>\n {isFinalStep ? 'Submit' : 'Next'}\n </button>\n </div>\n </div>\n );\n }\n\n private renderFollowUpStep() {\n const isFinalStep = !this.hasRespondentDetailsStep();\n\n return (\n <div part=\"step follow-up-step\">\n <h2 part=\"heading follow-up-heading\">{this.config?.followUpQuestion || 'Follow-up question'}</h2>\n <div part=\"choices-container\">\n {this.config?.followUpChoices?.map(choice => (\n <label part=\"choice-option\" key={choice.value}>\n <input\n part=\"checkbox-input\"\n type=\"checkbox\"\n name=\"follow-up-choice\"\n value={choice.value}\n checked={this.selectedFollowUpChoices.includes(choice.value)}\n onChange={() => this.handleFollowUpChoiceSelect(choice)}\n />\n <span part=\"choice-label\">{choice.label}</span>\n </label>\n ))}\n </div>\n <div part=\"button-container\">\n <button part=\"button back-button\" onClick={() => this.prevStep()}>\n Back\n </button>\n <button part=\"button next-button\" onClick={() => this.nextStep()}>\n {isFinalStep ? 'Submit' : 'Next'}\n </button>\n </div>\n </div>\n );\n }\n\n private renderRespondentDetailsStep() {\n return (\n <div part=\"step respondent-details-step\">\n <h2 part=\"heading respondent-details-heading\">Tell us about yourself</h2>\n <div part=\"form-container\">\n {this.respondentDetails.map(detail => (\n <div part=\"form-field\">\n <label part=\"form-label\">\n {detail.label}\n {detail.required && <span part=\"required-indicator\"> *</span>}\n </label>\n {this.renderField(detail)}\n </div>\n ))}\n </div>\n <div part=\"button-container\">\n <button part=\"button back-button\" onClick={() => this.prevStep()}>\n Back\n </button>\n <button part=\"button submit-button\" onClick={() => this.submitResponse()} disabled={!this.isRespondentDetailsValid()}>\n Submit\n </button>\n </div>\n </div>\n );\n }\n\n private renderCompletionStep() {\n return (\n <div part=\"step completion-step\">\n <h2 part=\"heading completion-heading\">{this.completionMessage}</h2>\n </div>\n );\n }\n\n private renderCurrentStep() {\n const stepRenderers = {\n [SurveyStep.POLL]: this.renderPollStep.bind(this),\n [SurveyStep.FOLLOW_UP]: this.renderFollowUpStep.bind(this),\n [SurveyStep.RESPONDENT_DETAILS]: this.renderRespondentDetailsStep.bind(this),\n [SurveyStep.COMPLETION]: this.renderCompletionStep.bind(this),\n };\n\n const renderer = stepRenderers[this.currentStep] || stepRenderers[SurveyStep.POLL];\n\n return renderer();\n }\n\n render() {\n if (!isValidKey(this.surveyKey)) {\n return (\n <Host>\n <p part=\"message error-message\">Unable to render survey due to invalid public key</p>\n </Host>\n );\n }\n\n if (this.loading) {\n return (\n <Host>\n <p part=\"message loading-message\">Loading survey...</p>\n </Host>\n );\n }\n\n if (this.error) {\n return (\n <Host>\n <div part=\"error-container\">\n <p part=\"message error-message\">{this.error}</p>\n <button part=\"button retry-button\" onClick={() => this.retryOperation()}>\n Try again\n </button>\n </div>\n </Host>\n );\n }\n\n if (!this.config) {\n return (\n <Host>\n <div part=\"error-container\">\n <p part=\"message error-message\">No survey configuration found</p>\n <button part=\"button retry-button\" onClick={() => this.retryOperation()}>\n Try again\n </button>\n </div>\n </Host>\n );\n }\n\n return (\n <Host>\n <div part=\"survey-container\" role=\"main\" aria-label=\"Poll Survey\">\n {this.renderCurrentStep()}\n {/* ARIA live region for screen reader announcements */}\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\" part=\"announcements\">\n {this.announceMessage}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CC5IS5t8.js');
|
|
4
|
+
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
|
+
|
|
6
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
|
+
/*
|
|
8
|
+
Stencil Client Patch Browser v4.36.0 | MIT Licensed | https://stenciljs.com
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
var patchBrowser = () => {
|
|
12
|
+
const importMeta = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('sf-fastpoll.cjs.js', document.baseURI).href));
|
|
13
|
+
const opts = {};
|
|
14
|
+
if (importMeta !== "") {
|
|
15
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
16
|
+
}
|
|
17
|
+
return index.promiseResolve(opts);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
patchBrowser().then(async (options) => {
|
|
21
|
+
await appGlobals.globalScripts();
|
|
22
|
+
return index.bootstrapLazy([["sf-fastpoll.cjs",[[1,"sf-fastpoll",{"surveyKey":[1,"survey-key"],"completionMessage":[1,"completion-message"],"config":[32],"respondentDetails":[32],"loading":[32],"error":[32],"currentStep":[32],"selectedChoices":[32],"selectedFollowUpChoices":[32],"userRespondentDetails":[32],"submitted":[32],"announceMessage":[32],"formErrors":[32]}]]]], options);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
exports.setNonce = index.setNonce;
|
|
26
|
+
//# sourceMappingURL=sf-fastpoll.cjs.js.map
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=sf-fastpoll.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-fastpoll.cjs.js","sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.36.0 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":["promiseResolve","globalScripts","bootstrapLazy"],"mappings":";;;;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,oQAAe;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAOA,oBAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAMC,wBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-fastpoll.entry.cjs.js","sources":["src/components/sf-fastpoll/sf-fastpoll.css?tag=sf-fastpoll&encapsulation=shadow","src/components/sf-fastpoll/sf-fastpoll.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n/* Screen reader only content */\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Focus indicators for accessibility */\ninput:focus,\nselect:focus,\nbutton:focus {\n outline: 2px solid #005fcc;\n outline-offset: 2px;\n}\n\n/* Error state styling */\n[aria-invalid='true'] {\n border-color: #d32f2f;\n}\n\n[part='error-message'] {\n color: #d32f2f;\n font-size: 0.875rem;\n margin-top: 0.25rem;\n}\n\n/* Choice options styling */\n[part='choice-option'] {\n display: flex;\n align-items: center;\n margin: 0.5rem 0;\n cursor: pointer;\n}\n\n[part='choice-option']:hover {\n background-color: rgba(0, 95, 204, 0.1);\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n input:focus,\n select:focus,\n button:focus {\n outline: 3px solid;\n }\n\n [part='error-message'] {\n background-color: #d32f2f;\n color: white;\n padding: 0.25rem;\n }\n\n [part='choice-option']:hover {\n background-color: highlight;\n color: highlighttext;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n","import { Component, Host, h, Prop, State, Element, Env } from '@stencil/core';\nimport { isValidKey, getFieldConfig, addToCommaSeparatedList, removeFromCommaSeparatedList, sanitizeByType, sanitizeInput } from '../../utils/utils';\n\nconst SURVEY_API_ENDPOINT = Env.SURVEY_API_ENDPOINT;\nconst RESPONSE_API_ENDPOINT = Env.RESPONSE_API_ENDPOINT;\n\nenum SurveyStep {\n POLL = 0,\n FOLLOW_UP = 1,\n RESPONDENT_DETAILS = 2,\n COMPLETION = 3,\n}\n\ninterface RespondentDetail {\n label: string;\n value: string;\n inputType: string; // 'text', 'email', 'dropdown', 'radio', 'checkbox', 'number'\n required?: boolean;\n placeholder?: string;\n options?: Array<{\n value: string;\n label: string;\n }>;\n defaultValue?: any;\n}\n\ninterface Choice {\n label: string;\n value: string;\n}\n\ninterface SurveyConfig {\n question: string;\n choiceType: string; // 'single' or 'multiple'\n choices: Choice[];\n followUpChoices?: Choice[];\n followUpQuestion?: string;\n}\n\ninterface SurveyPayload {\n config: SurveyConfig;\n respondentDetails?: RespondentDetail[];\n}\n\ninterface ApiResponse {\n success: boolean;\n message: string;\n payload: SurveyPayload;\n}\n\n@Component({\n tag: 'sf-fastpoll',\n styleUrl: 'sf-fastpoll.css',\n shadow: true,\n})\nexport class SfFastpoll {\n @Element() el: HTMLElement;\n\n @Prop() surveyKey: string;\n\n @Prop() completionMessage: string = 'Thank you for your response!';\n\n @State() config: SurveyConfig | null = null;\n\n @State() respondentDetails: RespondentDetail[] = [];\n\n @State() loading: boolean = false;\n\n @State() error: string | null = null;\n\n @State() currentStep: SurveyStep = SurveyStep.POLL;\n\n @State() selectedChoices: string[] = [];\n\n @State() selectedFollowUpChoices: string[] = [];\n\n @State() userRespondentDetails: { [key: string]: string } = {};\n\n @State() submitted: boolean = false;\n\n @State() announceMessage: string = '';\n\n @State() formErrors: { [key: string]: string } = {};\n\n private surveyStartTime: number = 0;\n\n componentWillLoad() {\n if (isValidKey(this.surveyKey)) {\n return this.fetchSurveyData();\n }\n return Promise.resolve();\n }\n\n private async fetchSurveyData() {\n this.loading = true;\n this.error = null;\n this.surveyStartTime = Date.now();\n\n try {\n const response = await fetch(`${SURVEY_API_ENDPOINT}/${this.surveyKey}`);\n const data: ApiResponse = await response.json();\n\n if (!data.success) {\n throw new Error(data.message);\n }\n\n this.config = data.payload.config;\n this.respondentDetails = data.payload.respondentDetails || [];\n } catch (error) {\n this.error = error instanceof Error ? error.message : String(error);\n } finally {\n this.loading = false;\n }\n }\n\n private async retryOperation() {\n if (this.config) {\n // If we have config, retry submission\n await this.submitResponse();\n } else {\n // Otherwise, retry fetching survey data\n await this.fetchSurveyData();\n }\n }\n\n private async submitResponse() {\n if (!this.config || this.submitted) {\n return;\n }\n\n this.loading = true;\n this.error = null;\n\n try {\n const completionTimeSeconds = this.surveyStartTime > 0 ? Math.round((Date.now() - this.surveyStartTime) / 1000) : 0;\n const userAgentInfo = this.getUserAgentInfo();\n\n const submissionData = {\n surveyPublicKey: this.surveyKey,\n responseData: {\n selectedChoices: this.selectedChoices,\n selectedFollowUpChoices: this.selectedFollowUpChoices,\n },\n respondentDetails: this.userRespondentDetails,\n userAgent: userAgentInfo,\n completionTime: completionTimeSeconds,\n surveyType: 'fastPoll',\n };\n\n const response = await fetch(`${RESPONSE_API_ENDPOINT}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(submissionData),\n });\n\n const result = await response.json();\n\n if (!result.success) {\n throw new Error(result.message);\n }\n\n this.submitted = true;\n this.currentStep = SurveyStep.COMPLETION;\n } catch (error) {\n this.error = error instanceof Error ? error.message : String(error);\n } finally {\n this.loading = false;\n }\n }\n\n private getUserAgentInfo() {\n // Use modern navigator.userAgentData when available, fallback to userAgent parsing\n const getPlatform = () => {\n if ('userAgentData' in navigator && (navigator as any).userAgentData?.platform) {\n return (navigator as any).userAgentData.platform;\n }\n // Fallback: extract platform info from userAgent\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'Windows';\n if (ua.includes('Mac')) return 'macOS';\n if (ua.includes('Linux')) return 'Linux';\n if (ua.includes('Android')) return 'Android';\n if (ua.includes('iOS')) return 'iOS';\n return 'Unknown';\n };\n\n return {\n userAgent: navigator.userAgent,\n language: navigator.language,\n platform: getPlatform(),\n cookieEnabled: navigator.cookieEnabled,\n onLine: navigator.onLine,\n screenResolution: `${screen.width}x${screen.height}`,\n colorDepth: screen.colorDepth,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n timestamp: new Date().toISOString(),\n };\n }\n\n private nextStep() {\n if (!this.validateForm()) {\n return;\n }\n\n if (this.currentStep === SurveyStep.POLL) {\n if (this.hasFollowUpStep()) {\n this.currentStep = SurveyStep.FOLLOW_UP;\n this.announceToScreenReader('Moving to follow-up question');\n } else if (this.hasRespondentDetailsStep()) {\n this.currentStep = SurveyStep.RESPONDENT_DETAILS;\n this.announceToScreenReader('Moving to respondent details');\n } else {\n this.announceToScreenReader('Submitting poll...');\n this.submitResponse();\n }\n } else if (this.currentStep === SurveyStep.FOLLOW_UP) {\n if (this.hasRespondentDetailsStep()) {\n this.currentStep = SurveyStep.RESPONDENT_DETAILS;\n this.announceToScreenReader('Moving to respondent details');\n } else {\n this.announceToScreenReader('Submitting poll...');\n this.submitResponse();\n }\n } else if (this.currentStep === SurveyStep.RESPONDENT_DETAILS) {\n this.announceToScreenReader('Submitting poll...');\n this.submitResponse();\n }\n }\n\n private prevStep() {\n if (this.currentStep === SurveyStep.FOLLOW_UP) {\n this.currentStep = SurveyStep.POLL;\n } else if (this.currentStep === SurveyStep.RESPONDENT_DETAILS) {\n if (this.hasFollowUpStep()) {\n this.currentStep = SurveyStep.FOLLOW_UP;\n } else {\n this.currentStep = SurveyStep.POLL;\n }\n }\n }\n\n private hasFollowUpStep(): boolean {\n return !!(this.config?.followUpQuestion && this.config?.followUpChoices?.length);\n }\n\n private hasRespondentDetailsStep(): boolean {\n return this.respondentDetails.length > 0;\n }\n\n private announceToScreenReader(message: string) {\n this.announceMessage = message;\n setTimeout(() => {\n this.announceMessage = '';\n }, 1000);\n }\n\n private isValidEmail(email: string): boolean {\n // Basic email validation regex\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email.trim());\n }\n\n private validateRespondentField(detail: RespondentDetail, value: string): string | null {\n if (detail.required !== false && (!value || value.trim().length === 0)) {\n return 'This field is required';\n }\n\n if (value && value.trim().length > 0) {\n const config = getFieldConfig(detail, value);\n if (config.inputType === 'email') {\n if (!this.isValidEmail(value)) {\n return 'Please enter a valid email address';\n }\n }\n }\n\n return null;\n }\n\n private validateForm(): boolean {\n const errors: { [key: string]: string } = {};\n\n if (this.currentStep === SurveyStep.POLL && this.selectedChoices.length === 0) {\n errors['poll'] = 'Please select at least one option';\n }\n\n if (this.currentStep === SurveyStep.FOLLOW_UP && this.selectedFollowUpChoices.length === 0) {\n errors['followup'] = 'Please select at least one option';\n }\n\n this.formErrors = errors;\n return Object.keys(errors).length === 0;\n }\n\n private handleChoiceSelect(choice: Choice) {\n const choiceValue = choice.value;\n const isMultipleChoice = this.config?.choiceType === 'multiChoice';\n\n if (isMultipleChoice) {\n if (this.selectedChoices.includes(choiceValue)) {\n this.selectedChoices = this.selectedChoices.filter(c => c !== choiceValue);\n this.announceToScreenReader(`Deselected: ${choice.label}`);\n } else {\n this.selectedChoices = [...this.selectedChoices, choiceValue];\n this.announceToScreenReader(`Selected: ${choice.label}`);\n }\n } else {\n this.selectedChoices = [choiceValue];\n this.announceToScreenReader(`Selected: ${choice.label}`);\n }\n\n // Clear any validation errors when user makes a selection\n if (this.formErrors['poll']) {\n const errors = { ...this.formErrors };\n delete errors['poll'];\n this.formErrors = errors;\n }\n }\n\n private handleFollowUpChoiceSelect(choice: Choice) {\n const choiceValue = choice.value;\n if (this.selectedFollowUpChoices.includes(choiceValue)) {\n this.selectedFollowUpChoices = this.selectedFollowUpChoices.filter(c => c !== choiceValue);\n } else {\n this.selectedFollowUpChoices = [...this.selectedFollowUpChoices, choiceValue];\n }\n }\n\n private handleRespondentDetailChange(key: string, event: Event) {\n const target = event.target as HTMLInputElement | HTMLSelectElement;\n const detail = this.respondentDetails.find(d => d.value === key);\n const inputType = detail?.inputType || 'text';\n let value: string;\n\n if (target.type === 'checkbox') {\n // Handle checkbox inputs - maintain comma-separated list using browser-compatible helpers\n const currentValue = this.userRespondentDetails[key] || '';\n const sanitizedCheckboxValue = sanitizeInput(target.value, 100);\n if (target.checked) {\n value = addToCommaSeparatedList(currentValue, sanitizedCheckboxValue);\n } else {\n value = removeFromCommaSeparatedList(currentValue, sanitizedCheckboxValue);\n }\n } else {\n // Handle all other input types (text, email, number, radio, select)\n // Sanitize based on field type\n value = sanitizeByType(target.value, inputType);\n }\n\n this.userRespondentDetails = {\n ...this.userRespondentDetails,\n [key]: value,\n };\n }\n\n private createInputHandler(fieldValue: string) {\n const self = this;\n return function (e: Event) {\n self.handleRespondentDetailChange(fieldValue, e);\n };\n }\n\n private isValueInArray(array: string[], value: string): boolean {\n for (let i = 0; i < array.length; i++) {\n if (array[i] === value) {\n return true;\n }\n }\n return false;\n }\n\n private renderField(detail: RespondentDetail) {\n const config = getFieldConfig(detail, this.userRespondentDetails[detail.value] || '');\n const inputHandler = this.createInputHandler(detail.value);\n\n switch (config.inputType) {\n case 'text':\n case 'email':\n case 'number':\n return (\n <input part=\"input form-input\" type={config.inputType} value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />\n );\n\n case 'dropdown':\n if (!config.hasOptions) {\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n return (\n <select part=\"select form-select\" onChange={inputHandler} required={config.required}>\n {!config.defaultValue && (\n <option value=\"\" disabled>\n {config.placeholder}\n </option>\n )}\n {config.options.map(function (option) {\n return (\n <option key={option.value} value={option.value} selected={config.currentValue === option.value || (!config.currentValue && config.defaultValue === option.value)}>\n {option.label}\n </option>\n );\n })}\n </select>\n );\n\n case 'radio':\n if (!config.hasOptions) {\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n return (\n <div part=\"radio-group\">\n {config.options.map(function (option) {\n return (\n <div key={option.value} part=\"radio-option\">\n <input\n part=\"radio-input\"\n type=\"radio\"\n id={config.fieldValue + '-' + option.value}\n name={config.fieldValue}\n value={option.value}\n checked={config.currentValue === option.value || (!config.currentValue && config.defaultValue === option.value)}\n onChange={inputHandler}\n required={config.required}\n />\n <label part=\"radio-label\" htmlFor={config.fieldValue + '-' + option.value}>\n {option.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n\n case 'checkbox':\n if (!config.hasOptions) {\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n const self = this;\n return (\n <div part=\"checkbox-group\">\n {config.options.map(function (option) {\n return (\n <div key={option.value} part=\"checkbox-option\">\n <input\n part=\"checkbox-input\"\n type=\"checkbox\"\n id={config.fieldValue + '-' + option.value}\n name={config.fieldValue}\n value={option.value}\n checked={self.isValueInArray(config.selectedValues, option.value)}\n onChange={inputHandler}\n />\n <label part=\"checkbox-label\" htmlFor={config.fieldValue + '-' + option.value}>\n {option.label}\n </label>\n </div>\n );\n })}\n </div>\n );\n\n default:\n return <input part=\"input form-input\" type=\"text\" value={config.currentValue} onInput={inputHandler} placeholder={config.placeholder} required={config.required} />;\n }\n }\n\n private isRespondentDetailsValid(): boolean {\n return this.respondentDetails.every(detail => {\n const value = this.userRespondentDetails[detail.value] || '';\n const error = this.validateRespondentField(detail, value);\n return error === null;\n });\n }\n\n private renderPollStep() {\n const isFinalStep = !this.hasFollowUpStep() && !this.hasRespondentDetailsStep();\n const isMultiple = this.config?.choiceType === 'multiChoice';\n const hasError = !!this.formErrors['poll'];\n\n return (\n <div part=\"step poll-step\">\n <h2 part=\"heading poll-heading\" id=\"poll-heading\">\n {this.config?.question || 'What is your choice?'}\n </h2>\n <div\n part=\"choices-container\"\n role={isMultiple ? 'group' : 'radiogroup'}\n aria-labelledby=\"poll-heading\"\n aria-invalid={hasError}\n aria-describedby={hasError ? 'poll-error' : undefined}\n >\n {this.config?.choices?.map((choice, index) => (\n <label part=\"choice-option\" key={choice.value}>\n <input\n part={isMultiple ? 'checkbox-input' : 'radio-input'}\n type={isMultiple ? 'checkbox' : 'radio'}\n id={`poll-choice-${index}`}\n name=\"poll-choice\"\n value={choice.value}\n checked={this.selectedChoices.includes(choice.value)}\n onChange={() => this.handleChoiceSelect(choice)}\n aria-describedby={`poll-choice-${index}-label`}\n />\n <span part=\"choice-label\" id={`poll-choice-${index}-label`}>\n {choice.label}\n </span>\n </label>\n ))}\n </div>\n {hasError && (\n <div part=\"error-message\" id=\"poll-error\" role=\"alert\" aria-live=\"polite\">\n {this.formErrors['poll']}\n </div>\n )}\n <div part=\"button-container\">\n <button part=\"button next-button\" onClick={() => this.nextStep()} disabled={this.selectedChoices.length === 0}>\n {isFinalStep ? 'Submit' : 'Next'}\n </button>\n </div>\n </div>\n );\n }\n\n private renderFollowUpStep() {\n const isFinalStep = !this.hasRespondentDetailsStep();\n\n return (\n <div part=\"step follow-up-step\">\n <h2 part=\"heading follow-up-heading\">{this.config?.followUpQuestion || 'Follow-up question'}</h2>\n <div part=\"choices-container\">\n {this.config?.followUpChoices?.map(choice => (\n <label part=\"choice-option\" key={choice.value}>\n <input\n part=\"checkbox-input\"\n type=\"checkbox\"\n name=\"follow-up-choice\"\n value={choice.value}\n checked={this.selectedFollowUpChoices.includes(choice.value)}\n onChange={() => this.handleFollowUpChoiceSelect(choice)}\n />\n <span part=\"choice-label\">{choice.label}</span>\n </label>\n ))}\n </div>\n <div part=\"button-container\">\n <button part=\"button back-button\" onClick={() => this.prevStep()}>\n Back\n </button>\n <button part=\"button next-button\" onClick={() => this.nextStep()}>\n {isFinalStep ? 'Submit' : 'Next'}\n </button>\n </div>\n </div>\n );\n }\n\n private renderRespondentDetailsStep() {\n return (\n <div part=\"step respondent-details-step\">\n <h2 part=\"heading respondent-details-heading\">Tell us about yourself</h2>\n <div part=\"form-container\">\n {this.respondentDetails.map(detail => (\n <div part=\"form-field\">\n <label part=\"form-label\">\n {detail.label}\n {detail.required && <span part=\"required-indicator\"> *</span>}\n </label>\n {this.renderField(detail)}\n </div>\n ))}\n </div>\n <div part=\"button-container\">\n <button part=\"button back-button\" onClick={() => this.prevStep()}>\n Back\n </button>\n <button part=\"button submit-button\" onClick={() => this.submitResponse()} disabled={!this.isRespondentDetailsValid()}>\n Submit\n </button>\n </div>\n </div>\n );\n }\n\n private renderCompletionStep() {\n return (\n <div part=\"step completion-step\">\n <h2 part=\"heading completion-heading\">{this.completionMessage}</h2>\n </div>\n );\n }\n\n private renderCurrentStep() {\n const stepRenderers = {\n [SurveyStep.POLL]: this.renderPollStep.bind(this),\n [SurveyStep.FOLLOW_UP]: this.renderFollowUpStep.bind(this),\n [SurveyStep.RESPONDENT_DETAILS]: this.renderRespondentDetailsStep.bind(this),\n [SurveyStep.COMPLETION]: this.renderCompletionStep.bind(this),\n };\n\n const renderer = stepRenderers[this.currentStep] || stepRenderers[SurveyStep.POLL];\n\n return renderer();\n }\n\n render() {\n if (!isValidKey(this.surveyKey)) {\n return (\n <Host>\n <p part=\"message error-message\">Unable to render survey due to invalid public key</p>\n </Host>\n );\n }\n\n if (this.loading) {\n return (\n <Host>\n <p part=\"message loading-message\">Loading survey...</p>\n </Host>\n );\n }\n\n if (this.error) {\n return (\n <Host>\n <div part=\"error-container\">\n <p part=\"message error-message\">{this.error}</p>\n <button part=\"button retry-button\" onClick={() => this.retryOperation()}>\n Try again\n </button>\n </div>\n </Host>\n );\n }\n\n if (!this.config) {\n return (\n <Host>\n <div part=\"error-container\">\n <p part=\"message error-message\">No survey configuration found</p>\n <button part=\"button retry-button\" onClick={() => this.retryOperation()}>\n Try again\n </button>\n </div>\n </Host>\n );\n }\n\n return (\n <Host>\n <div part=\"survey-container\" role=\"main\" aria-label=\"Poll Survey\">\n {this.renderCurrentStep()}\n {/* ARIA live region for screen reader announcements */}\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\" part=\"announcements\">\n {this.announceMessage}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":["Env","isValidKey","getFieldConfig","sanitizeInput","addToCommaSeparatedList","removeFromCommaSeparatedList","sanitizeByType","h","index","Host"],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/* Screen reader only content */
|
|
6
|
+
.sr-only {
|
|
7
|
+
position: absolute;
|
|
8
|
+
width: 1px;
|
|
9
|
+
height: 1px;
|
|
10
|
+
padding: 0;
|
|
11
|
+
margin: -1px;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
clip: rect(0, 0, 0, 0);
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
border: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Focus indicators for accessibility */
|
|
19
|
+
input:focus,
|
|
20
|
+
select:focus,
|
|
21
|
+
button:focus {
|
|
22
|
+
outline: 2px solid #005fcc;
|
|
23
|
+
outline-offset: 2px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Error state styling */
|
|
27
|
+
[aria-invalid='true'] {
|
|
28
|
+
border-color: #d32f2f;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[part='error-message'] {
|
|
32
|
+
color: #d32f2f;
|
|
33
|
+
font-size: 0.875rem;
|
|
34
|
+
margin-top: 0.25rem;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Choice options styling */
|
|
38
|
+
[part='choice-option'] {
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
margin: 0.5rem 0;
|
|
42
|
+
cursor: pointer;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
[part='choice-option']:hover {
|
|
46
|
+
background-color: rgba(0, 95, 204, 0.1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* High contrast mode support */
|
|
50
|
+
@media (prefers-contrast: high) {
|
|
51
|
+
input:focus,
|
|
52
|
+
select:focus,
|
|
53
|
+
button:focus {
|
|
54
|
+
outline: 3px solid;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
[part='error-message'] {
|
|
58
|
+
background-color: #d32f2f;
|
|
59
|
+
color: white;
|
|
60
|
+
padding: 0.25rem;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[part='choice-option']:hover {
|
|
64
|
+
background-color: highlight;
|
|
65
|
+
color: highlighttext;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Reduced motion support */
|
|
70
|
+
@media (prefers-reduced-motion: reduce) {
|
|
71
|
+
* {
|
|
72
|
+
animation-duration: 0.01ms !important;
|
|
73
|
+
animation-iteration-count: 1 !important;
|
|
74
|
+
transition-duration: 0.01ms !important;
|
|
75
|
+
}
|
|
76
|
+
}
|