guess-the-year-web-component 3.2.3 → 4.0.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.
Files changed (49) hide show
  1. package/README.md +2 -2
  2. package/custom-elements.json +19 -1
  3. package/dist/guess-the-year.d.ts +21 -16
  4. package/dist/guess-the-year.d.ts.map +1 -1
  5. package/dist/index.html +3 -8
  6. package/dist/lib/controller/scorecontroller.d.ts +2 -1
  7. package/dist/lib/controller/scorecontroller.d.ts.map +1 -1
  8. package/dist/lib/i18n/EN.d.ts.map +1 -1
  9. package/dist/lib/i18n/NL.d.ts.map +1 -1
  10. package/dist/main.bundle.js +200 -0
  11. package/dist/main.bundle.js.map +1 -0
  12. package/package.json +26 -27
  13. package/src/guess-the-year.ts +335 -273
  14. package/src/index.html +2 -7
  15. package/src/lib/ApiService.ts +1 -1
  16. package/src/lib/Util.ts +1 -1
  17. package/src/lib/controller/scorecontroller.ts +12 -1
  18. package/src/lib/i18n/EN.ts +18 -4
  19. package/src/lib/i18n/NL.ts +19 -5
  20. package/src/scss/_layout.scss +18 -5
  21. package/src/scss/_typography.scss +3 -2
  22. package/src/scss/_variables.scss +5 -5
  23. package/src/scss/main.scss +55 -1
  24. package/src/scss/views/_intro.scss +16 -4
  25. package/src/scss/views/_stage.scss +149 -43
  26. package/webpack.config.cjs +23 -25
  27. package/dist/guess-the-year.js +0 -751
  28. package/dist/guess-the-year.js.map +0 -1
  29. package/dist/lib/ApiService.js +0 -134
  30. package/dist/lib/ApiService.js.map +0 -1
  31. package/dist/lib/Icon.js +0 -2
  32. package/dist/lib/Icon.js.map +0 -1
  33. package/dist/lib/Incident.js +0 -37
  34. package/dist/lib/Incident.js.map +0 -1
  35. package/dist/lib/Util.js +0 -69
  36. package/dist/lib/Util.js.map +0 -1
  37. package/dist/lib/controller/scorecontroller.js +0 -38
  38. package/dist/lib/controller/scorecontroller.js.map +0 -1
  39. package/dist/lib/enums.js +0 -10
  40. package/dist/lib/enums.js.map +0 -1
  41. package/dist/lib/i18n/EN.js +0 -148
  42. package/dist/lib/i18n/EN.js.map +0 -1
  43. package/dist/lib/i18n/NL.js +0 -152
  44. package/dist/lib/i18n/NL.js.map +0 -1
  45. package/dist/lib/i18n/i18n.js +0 -10
  46. package/dist/lib/i18n/i18n.js.map +0 -1
  47. package/dist/main.js +0 -205
  48. package/todo.txt +0 -0
  49. /package/dist/{main.js.LICENSE.txt → main.bundle.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"guess-the-year.js","sourceRoot":"","sources":["../src/guess-the-year.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AAC9B,OAAO,EAAY,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,MAAM,YAAY,GAAW,IAAI,CAAC;AAClC,MAAM,aAAa,GAAW,EAAE,CAAC;AACjC,MAAM,SAAS,GAAW,CAAC,CAAC;AAC5B,MAAM,QAAQ,GAAW,IAAI,CAAC;AAC9B,MAAM,QAAQ,GAAW,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAC1C,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AACxD,MAAM,OAAO,GAAW,IAAI,CAAC;AAC7B,MAAM,OAAO,GAAW,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAClE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAGrC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAO1C,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAuHD;QACE,KAAK,EAAE,CAAC;QAnIF,YAAO,GAAkB,EAAE,CAAC;QAC5B,aAAQ,GAAG,KAAK,CAAC;QAazB,eAAU,GAAW,uBAAuB,CAAC;QAG7C,uBAAkB,GAAY,KAAK,CAAC;QAGpC,SAAI,GAAW,EAAE,CAAC;QAGlB,YAAO,GAAW,EAAE,CAAC;QAGrB,aAAQ,GAAW,EAAE,CAAC;QAGtB,YAAO,GAAW,EAAE,CAAC;QAGrB,WAAM,GAAW,EAAE,CAAC;QAuBpB,SAAI,GAAU,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,QAAQ,QAAQ,EAAE,YAAY,CAAC,CAAC;QAuBzG,OAAE,GAAU,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,QAAQ,QAAQ,EAAE,YAAY,CAAC,CAAC;QAGrG,eAAU,GAAW,EAAE,CAAC;QAGxB,mBAAc,GAAY,KAAK,CAAC;QAGhC,aAAQ,GAAW,CAAC,CAAC;QAGrB,sBAAiB,GAAW,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,aAAa,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3G,2BAAsB,GAAW,CAAC,CAAC;QAEnC,eAAU,GAAW,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAG7F,cAAS,GAAyB,SAAS,CAAC;QAE5C,aAAQ,GAAkB,EAAE,CAAC;QAG7B,UAAK,GAAuB,SAAS,CAAC;QAEtC,cAAS,GAAY,IAAI,CAAC;QAC1B,gBAAW,GAAY,KAAK,CAAC;QAC7B,gBAAW,GAAW,CAAC,CAAC;QACxB,WAAM,GAAoB,EAAE,CAAC;QAG7B,cAAS,GAAuB,SAAS,CAAC;QAG3C,iBAAY,GAAW,SAAS,CAAC,IAAI,CAAC;QAGrC,WAAM,GAAG,EAAE,CAAC;QAEb,eAAU,GAAG,CAAC,CAAC;QAEtB,iFAAiF;QAEzE,YAAO,GAAuB,SAAS,CAAC;QAExC,gBAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QA0qBjC,0BAAqB,GAAG,CAAC,GAAU,EAAE,QAAkB,EAAE,EAAE;YACzD,kDAAkD;YAClD,MAAM,WAAW,GAAG,GAAG,CAAC,MAA0B,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,wBAAwB,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;YAE1D,kDAAkD;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;YAEjD,0CAA0C;YAC1C,uBAAuB;YACvB,IAAI,WAAW,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,kDAAkD;YAClD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAC3C,QAAQ,CAAC,EAAE,EACX,OAAO,EACP,WAAW,CAAC,GAAG,EACf,eAAe,CAAC,SAAS,CAC1B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,yCAAyC;YACzC,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,CAAC,GAAG,GAAG,UAAU,CAAC;YAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAnsBA,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAuB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEQ,iBAAiB;QACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;IACvC,CAAC;IAEQ,oBAAoB;QAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEQ,YAAY,CAAC,iBAAiC;QACrD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;IAEQ,YAAY,CAAC,iBAAiC;QACrD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAEQ,MAAM,CAAC,iBAAiC;QAC/C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAEQ,OAAO,CAAC,iBAAiC;QAChD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAEQ,MAAM;QACb;;;WAGG;QACH,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAExB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;UACvD,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,MAAM;YACvC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC3B,CAAC,CAAC,EAAE;UACF,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE;UAClE,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE;UACjE,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;UAC9D,IAAI,CAAC,aAAa,EAAE;;KAEzB,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,OAAY,EAAE,KAAa;;QACtC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,aAAa,CAAC,OAAO,CAAC,0CAAE,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED,+BAA+B;IACvB,aAAa,CAAC,UAAkB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QACtE,OAAO,IAAI,CAAA;;cAED,OAAO;;KAEhB,CAAC;IACJ,CAAC;IAED,+BAA+B;IACvB,aAAa;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAA;;;YAGL,yBAAyB,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE;;;KAGjD,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;IAED,2BAA2B;IACnB,kBAAkB;QACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEpC,2CAA2C;QAC3C,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;QACtC,CAAC,EAAE,YAAY,CAAC,CAAC;QAEjB,OAAO,IAAI,CAAA;;;gBAGC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;eACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;;KAG3C,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,6BAA6B;IACrB,6BAA6B,CAAC,IAAY,EAAE,EAAU,EAAE,IAAY,EAAE,aAAqB;QACjG,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC7C,0BAA0B;QAC1B,oCAAoC;QACpC,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YACtC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAA;yBACR,CAAC,eAAe,QAAQ,IAAI,CAAC,IAAI,CAAC;OACpD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA,GAAG,iBAAiB,EAAE,CAAC;IACpC,CAAC;IAED,wBAAwB;IACxB,4CAA4C;IAC5C,wBAAwB;IACxB,wBAAwB;IAChB,eAAe;QACrB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEjC,wCAAwC;QACxC,oCAAoC;QACpC,MAAM,qBAAqB,GAAG,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAA;yBACZ,CAAC,eAAe,IAAI,CAAC,iBAAiB,IAAI,CAAC;YACxD,CAAC;;OAEN,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;;;;;cAK9D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;;;;cAI3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;;;;cAI3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;;;;;;cAM3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;;cAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;+BACxB,IAAI,CAAC,qBAAqB;gBACzC,qBAAqB;;cAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;cACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;+BACtB,IAAI,CAAC,YAAY;gBAChC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;cAErF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;+BACtB,IAAI,CAAC,UAAU;gBAC9B,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;cAEnF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;cACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;+BACxB,IAAI,CAAC,aAAa;gBACjC,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;;cAE/E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;;;;;4BAK3B,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;;;KAGzE,CAAC;IACJ,CAAC;IACO,aAAa,CAAC,KAAU;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,qBAAqB,CAAC,KAAU;QACtC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;IAEO,YAAY,CAAC,KAAU;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,UAAU,CAAC,KAAU;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,gCAAgC;IACxB,eAAe;QACrB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;;kCAEtH,IAAI,CAAC,gBAAgB,EAAE;;;kCAGvB,IAAI,CAAC,eAAe,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE;iCACG,IAAI,CAAC,aAAa,EAAE;;;;6CAIR,IAAI,CAAC,iBAAiB,EAAE;gDACrB,IAAI,CAAC,cAAc,EAAE;;;UAG3D,IAAI,CAAC,eAAe,EAAE;;KAE3B,CAAC;IACJ,CAAC;IAED,yCAAyC;IACjC,eAAe;;QACrB,OAAO,IAAI,CAAA;;cAED,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK;;;QAG3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;;;aAGpC,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI;;KAE5B,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,QAAkB;QAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,OAAO,QAAQ,IAAI,aAAa,CAAC;IACnC,CAAC;IAED,2CAA2C;IACnC,oBAAoB,CAAC,QAA8B;QACzD,IAAI,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAA;;;qBAGI,CAAC,GAAU,EAAE,EAAE;gBAC1B,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5C,CAAC;mBACU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAG7B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,mEAAmE;YACnE,OAAO,IAAI,CAAA;;eAEF,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;IAED,qCAAqC;IAC7B,cAAc;QACpB,OAAO,IAAI,CAAA;;;YAGH,IAAI,CAAC,QAAQ,CAAC,GAAG,CACvB,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAA,eAAe,IAAI,CAAC,oBAAoB,KAAK,MAAM,OAAO,CACjE;;;KAGA,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,sBAAsB;IACd,gBAAgB;QACtB,OAAO,IAAI,CAAA;;yCAE0B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;YAEnE,IAAI,CAAC,sBAAsB,QAAQ,IAAI,CAAC,iBAAiB;;;;;yCAK5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;yCACrC,IAAI,CAAC,OAAO,CAAC,KAAK;;;;yCAIlB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;yCAClC,IAAI,CAAC,UAAU;;KAEnD,CAAC;IACJ,CAAC;IAED,iCAAiC;IACzB,oBAAoB,CAAC,KAAU;QACrC,yBAAyB;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;QAExC,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,yBAAyB;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,iCAAiC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,mEAAmE;YACnE,OAAO,CAAC,KAAK,CACX,MAAM,EACN,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,MAAM,IAAI,IAAI,CAAC,SAAS,CACzB,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC;IACH,CAAC;IAED,6BAA6B;IACrB,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAA,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAA,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC;IACtC,CAAC;IAED,gCAAgC;IAChC,+BAA+B;IACvB,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAA;;0BAEW,IAAI,CAAC,kBAAkB;WACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW;;;KAGhF,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,uCAAuC;IACvC,sCAAsC;IACtC,qBAAqB;IACb,kBAAkB;QACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAEvE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,wBAAwB;YACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,+BAA+B;IACvB,eAAe;;QACrB,qDAAqD;QACrD,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAA,EAAE,CAAC;QAChB,CAAC;QAED,iCAAiC;QACjC,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAEzB,0CAA0C;QAC1C,IAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,MAAA,IAAI,CAAC,SAAS,0CAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAA;;;kBAGC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;;gBAEvC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;;;gBAGvJ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,CAAC;;;cAG5I,IAAI,CAAC,yBAAyB,EAAE;;;OAGvC,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;;;kBAGC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;gBAErC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;;cAE/H,IAAI,CAAC,yBAAyB,EAAE;;;OAGvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAA;;;;;cAKH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;;cAE/F,IAAI,CAAC,yBAAyB,EAAE;;;OAGvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mCAAmC;IAC3B,yBAAyB;QAC/B,IAAI,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzD,OAAO,IAAI,CAAA;0BACS,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;OAC9E,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAA,oBAAoB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;IAC3F,CAAC;IAED,8BAA8B;IACtB,QAAQ;QACd,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC;IACpC,CAAC;IAEO,aAAa;QACnB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAW,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QAClE,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;;;YAG1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,GAAG,EAAE,CAAC;;;YAGrJ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;;;wBAG/C,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;UAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;QAEjC,IAAI,CAAC,aAAa,EAAE;KACvB,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3B,OAAO,CAAC,KAAK,CAAC;YACZ,qBAAqB,EAAE,IAAI,CAAC,iBAAiB;YAC7C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC7B,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,aAAa;;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CACrC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAC9B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAC5B,IAAI,EACJ,WAAW,CACZ,CAAC;QAEJ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEhC,IAAI,CAAC,SAAS,GAAG,MAAM,CACrB,CAAC,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,aAAa,KAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACzD,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAE1B,gEAAgE;QAChE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAEjC,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CACrC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAC1C,SAAS,EACT,SAAS,EACT,EAAE,EACF,GAAG,IAAI,CAAC,SAAS,QAAQ,EACzB,GAAG,IAAI,CAAC,SAAS,QAAQ,EACzB,SAAS,EACT,SAAS,CACV,CAAC;YAEJ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;QAEnC,sBAAsB;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,6BAA6B;QAC7B,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;IACnC,CAAC;IAEO,iBAAiB,CAAC,YAAsB;QAC9C,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrE,QAAQ,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC9B,KAAK,QAAQ,CAAC,QAAQ;gBACpB,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CACtE,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,QAAQ,CAAC,SAAS;gBACrB,8EAA8E;gBAC9E,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB;qBACE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;qBAC7B,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,QAAQ,CAAC,WAAW;gBACvB,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAChB,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,QAAQ,CAAC,aAAa;gBACzB,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ,CAAC,cAAc;gBAC1B,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ,CAAC,MAAM;gBAClB,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,QAAQ,CAAC,QAAQ;gBACpB,IAAI,GAAG,CACL,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC/D,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM;QACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;QACX,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA,EAAE,CAAC;QAChB,CAAC;QACD,mDAAmD;QACnD,OAAO,IAAI,CAAA;;kBAEG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;OAEhD,CAAC;IACN,CAAC;;AAtqBe,mBAAM,GAAG,GAAG,CAAA;MACxB,UAAU;GACb,AAFqB,CAEpB;AAlHF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;gDACV;AAG7C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;wDAC3B;AAGpC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACT;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACN;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACL;AAGtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACN;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACP;AAuBpB;IArBC,QAAQ,CAAC;QACR,IAAI,EAAE,KAAK;QACX,SAAS,EAAE;YACT,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,KAAK,EAAE,CAAC;gBACjB,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACpC,CAAC;gBAED,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC/C,CAAC;YACD,WAAW,EAAE,CAAC,KAAY,EAAE,EAAE;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;SACF;KACF,CAAC;0CACuG;AAuBzG;IArBC,QAAQ,CAAC;QACR,IAAI,EAAE,KAAK;QACX,SAAS,EAAE;YACT,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,KAAK,EAAE,CAAC;gBACjB,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACpC,CAAC;gBAED,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC/C,CAAC;YACD,WAAW,EAAE,CAAC,KAAY,EAAE,EAAE;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;SACF;KACF,CAAC;wCACmG;AAGrG;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;gDAC9B;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;oDAC1B;AAGhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;8CAC9B;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACuC;AAM3G;IADP,KAAK,EAAE;+CAC4C;AAK5C;IADP,KAAK,EAAE;2CACsC;AAQtC;IADP,KAAK,EAAE;+CAC0C;AAG3C;IADN,KAAK,EAAE;kDACqC;AAGrC;IADP,KAAK,EAAE;4CACY;AAMZ;IADP,KAAK,EAAE;6CACwC;AA3HrC,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CA00BxB","sourcesContent":["import { LitElement, css, html, PropertyValues, TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport dayjs from \"dayjs\";\nimport { Dayjs } from \"dayjs\";\nconst { setTimeout } = window;\nimport { Incident, Categories, Category } from \"./lib/Incident\";\nimport { NoImageImg } from \"./lib/Icon\";\nimport { ApiService, ContentFeedback } from \"./lib/ApiService\";\nimport { Util } from \"./lib/Util\";\nimport { i18nFactory } from \"./lib/i18n/i18n\";\nimport { GameState } from \"./lib/enums\";\nimport stylesheet from \"./scss/main.scss\";\nimport { QuestionScoreController } from \"./lib/controller/scorecontroller\";\n\nconst SPLASH_DELAY: number = 1000;\nconst MAX_QUESTIONS: number = 10;\nconst HINT_COST: number = 2;\nconst MIN_YEAR: number = 1950;\nconst MAX_YEAR: number = parseInt(dayjs().format('YYYY'), 10);\nconst GTY_FROM_YEAR_VAR = 'gty-from-year';\nconst GTY_TO_YEAR_VAR = 'gty-to-year';\nconst GTY_NUM_QUESTIONS_VAR = 'gty-number-of-questions';\nconst MAX_DOB: number = 1915;\nconst MIN_DOB: number = parseInt(dayjs().format('YYYY'), 10) - 10;\nconst GTY_PLAYER_DOB_VAR = 'gty-player-dob';\n\n@customElement(\"guess-the-year\")\nexport class GuessTheYear extends LitElement {\n\n private sources: Array<string> = [];\n private _loading = false;\n\n private _score0: QuestionScoreController;\n\n get loading() {\n return this._loading;\n }\n\n set loading(value: boolean) {\n this._loading = value;\n }\n\n @property({ type: String, attribute: \"tee-e-api-url\" })\n teeeApiUrl: string = \"https://api.tee-e.com\";\n\n @property({ type: Boolean, attribute: \"report-broken-images\" })\n reportBrokenImages: boolean = false;\n\n @property({ type: String })\n date: string = \"\";\n\n @property({ type: String })\n country: string = \"\";\n\n @property({ type: String })\n category: string = \"\";\n\n @property({ type: String })\n emotion: string = \"\";\n\n @property({ type: String })\n impact: string = \"\";\n\n @property({\n type: Dayjs,\n converter: {\n fromAttribute: (value: string) => {\n console.debug([\"from\", \"from\", value]);\n if (!value) {\n return dayjs();\n }\n\n if (value.length >= 10) {\n return dayjs(value, \"YYYY-MM-DD\");\n }\n\n return dayjs(`${value}-01-01`, \"YYYY-MM-DD\");\n },\n toAttribute: (value: Dayjs) => {\n console.debug([\"from\", \"to\", value]);\n return value.format(\"YYYY-MM-DD\");\n },\n },\n })\n from: Dayjs = dayjs(`${window.localStorage.getItem(GTY_FROM_YEAR_VAR) || MIN_YEAR}-01-01`, \"YYYY-MM-DD\");\n\n @property({\n type: Dayjs,\n converter: {\n fromAttribute: (value: string) => {\n console.debug([\"to\", \"from\", value]);\n if (!value) {\n return dayjs();\n }\n\n if (value.length >= 10) {\n return dayjs(value, \"YYYY-MM-DD\");\n }\n\n return dayjs(`${value}-12-31`, \"YYYY-MM-DD\");\n },\n toAttribute: (value: Dayjs) => {\n console.debug([\"to\", \"to\", value]);\n return value.format(\"YYYY-MM-DD\");\n },\n },\n })\n to: Dayjs = dayjs(`${window.localStorage.getItem(GTY_TO_YEAR_VAR) || MAX_YEAR}-01-01`, \"YYYY-MM-DD\");\n\n @property({ type: String, attribute: \"no-image-src\" })\n noImageSrc: string = \"\";\n\n @property({ type: Boolean, attribute: \"suppress-images\" })\n suppressImages: boolean = false;\n\n @property({ type: Number, attribute: \"max-hints\" })\n maxHints: number = 3;\n\n @property({ type: Number, attribute: \"number-of-questions\", reflect: true })\n numberOfQuestions: number = parseInt(window.localStorage.getItem(GTY_NUM_QUESTIONS_VAR) || MAX_QUESTIONS + '', 10);\n private _numberOfQuestionsSeen: number = 0;\n\n private _playerDob: number = parseInt(window.localStorage.getItem(GTY_PLAYER_DOB_VAR) || 0 + '', 10);\n\n @state()\n private _incident: Incident | undefined = undefined;\n\n private _answers: Array<Number> = [];\n\n @state()\n private _hint: string | undefined = undefined;\n\n private _showHint: boolean = true;\n private _showFooter: boolean = false;\n private _hintsIndex: number = 0;\n private _hints: Array<Incident> = [];\n\n @state()\n private _solution: Number | undefined = undefined;\n\n @state()\n public _renderState: string = GameState.INIT;\n\n @state()\n private _score = 30;\n\n public totalScore = 0;\n\n // _answer is stored as string because it will be entered character for character\n @state()\n private _answer: number | undefined = undefined;\n\n private _apiService = new ApiService(this.teeeApiUrl);\n private i18n = i18nFactory(\"nl\");\n\n static override styles = css`\n ${stylesheet}\n `;\n\n constructor() {\n super();\n this._score0 = new QuestionScoreController(this, 30, 1000);\n }\n\n override connectedCallback() {\n console.debug(\"connectedCallback\");\n super.connectedCallback();\n\n // first step is splash\n this._renderState = GameState.SPLASH;\n }\n\n override disconnectedCallback() {\n console.debug(\"disconnectedCallback\");\n super.disconnectedCallback();\n this._renderState = GameState.INIT;\n this._score0.stop();\n this._score0.reset();\n }\n\n override firstUpdated(changedProperties: PropertyValues): void {\n console.debug(\"firstUpdated\");\n super.firstUpdated(changedProperties);\n }\n\n override shouldUpdate(changedProperties: PropertyValues): boolean {\n console.debug(\"shouldUpdate\");\n return super.shouldUpdate(changedProperties);\n }\n\n override update(changedProperties: PropertyValues) {\n console.debug(\"update\");\n return super.update(changedProperties);\n }\n\n override updated(changedProperties: PropertyValues) {\n console.debug(\"updated\");\n return super.updated(changedProperties);\n }\n\n override render() {\n /**\n * this is the main render function\n * it renders different stages during the game\n */\n console.debug(\"render\");\n\n return html`\n <div class=\"guess-the-year-container\">\n ${this._renderState == GameState.INIT ? \"Loading...\" : \"\"}\n ${this._renderState == GameState.SPLASH\n ? this.renderSplashScreen()\n : \"\"}\n ${this._renderState == GameState.INTRO ? this.renderGameIntro() : \"\"}\n ${this._renderState == GameState.PLAY ? this.renderGameStage() : \"\"}\n ${this._renderState == GameState.END ? this.renderGameEnd() : \"\"}\n ${this._renderFooter()}\n </div>\n `;\n }\n\n colorElement(element: any, color: string) {\n console.debug(\"colorElement\");\n this?.shadowRoot?.querySelector(element)?.style.setProperty(\"color\", color);\n }\n\n // this renders the game header\n private _renderHeader(content: string = this.i18n.translate(\"game-name\")): TemplateResult {\n return html`\n <section id=\"top\" class=\"header guess-the-year-header\">\n <h1>${content}</h1>\n </section>\n `;\n }\n\n // this renders the game footer\n private _renderFooter(): TemplateResult {\n if (this._showFooter) {\n return html`\n <section class=\"footer guess-the-year-footer\">\n <div class=\"guess-the-year-copyright\">\n ${\"The Throwback Company ©\" + dayjs().year()}\n </div>\n </section>\n `;\n }\n return html``;\n }\n\n // render the splash screen\n private renderSplashScreen(): TemplateResult {\n console.debug(\"renderSplashScreen\");\n\n // (pretend) to load before the game starts\n setTimeout(() => {\n this._renderState = GameState.INTRO;\n }, SPLASH_DELAY);\n\n return html`\n <div id=\"splash-screen-container\" class=\"splashscreen\">\n <div class=\"splash-logo\">\n <h2>${this.i18n.translate(\"game-name\")}</h2>\n <p>${this.i18n.translate(\"Loading...\")}</p>\n </div>\n </div>\n `;\n }\n\n // renders a selector for a year\n // TODO: set type of selector\n private _renderYearStepXSelectOptions(from: number, to: number, step: number, selectedValue: string): TemplateResult {\n const selected = parseInt(selectedValue, 10);\n // pre-render year options\n // and mark selected when they match\n const selectYearOptions = [];\n for (let i = from; i <= to; i += step) {\n selectYearOptions.push(html`\n <option value=\"${i}\" ?selected=${selected == i}>${i}</option>\n `);\n }\n\n return html`${selectYearOptions}`;\n }\n\n // render the game intro\n // allows to select the number of questions,\n // select the year range\n // and to start the game\n private renderGameIntro(): TemplateResult {\n console.debug(\"renderGameIntro\");\n\n // pre-render number of question options\n // and mark selected when they match\n const selectQuestionOptions = [];\n for (let i = 1; i <= MAX_QUESTIONS; i++) {\n selectQuestionOptions.push(html`\n <option value=\"${i}\" ?selected=${this.numberOfQuestions == i}>\n ${i}\n </option>\n `);\n }\n\n return html`\n ${this._renderHeader(this.i18n.translate(\"game-introduction-welcome\"))}\n\n <div class=\"game-intro\">\n <div class=\"game-explanation\">\n <p>\n ${this.i18n.translate(\"game-introduction-p1\")}\n </p>\n\n <p>\n ${this.i18n.translate(\"game-introduction-p2\")}\n </p>\n\n <p>\n ${this.i18n.translate(\"game-introduction-p3\")}\n </p>\n </div>\n\n <div class=\"game-settings\">\n <p>\n ${this.i18n.translate(\"game-settings-p0\")}\n\n ${this.i18n.translate(\"game-settings-p1-1\")}\n <select @change=\"${this._setNumberOfQuestions}\">\n ${selectQuestionOptions}\n </select>\n ${this.i18n.translate(\"game-settings-p1-2\")}\n ${this.i18n.translate(\"game-settings-p2\")}\n <select @change=\"${this._setFromDate}\">\n ${this._renderYearStepXSelectOptions(MIN_YEAR, MAX_YEAR, 5, this.from.format(\"YYYY\"))}\n </select>\n ${this.i18n.translate(\"game-settings-p3\")}\n <select @change=\"${this._setToDate}\">\n ${this._renderYearStepXSelectOptions(MIN_YEAR, MAX_YEAR, 5, this.to.format(\"YYYY\"))}\n </select>\n ${this.i18n.translate(\"game-settings-p4\")}\n ${this.i18n.translate(\"game-settings-p5-1\")}\n <select @change=\"${this._setPlayerDob}\">\n ${this._renderYearStepXSelectOptions(MAX_DOB, MIN_DOB, 1, this._playerDob + '')}\n </select>\n ${this.i18n.translate(\"game-settings-p5-2\")}\n </p>\n </div>\n\n <div class=\"game-start\">\n <button @click=\"${this.setupNewGame}\">${this.i18n.translate(\"start\")}</button>\n </div>\n </div>\n `;\n }\n private _setPlayerDob(event: any): void {\n this._playerDob = Number(event.target.value);\n window.localStorage.setItem(GTY_PLAYER_DOB_VAR, this._playerDob + '');\n }\n\n private _setNumberOfQuestions(event: any): void {\n this.numberOfQuestions = Number(event.target.value);\n window.localStorage.setItem(GTY_NUM_QUESTIONS_VAR, this.numberOfQuestions + '');\n }\n\n private _setFromDate(event: any): void {\n this.from = this.from.year(event.target.value);\n window.localStorage.setItem(GTY_FROM_YEAR_VAR, this.from.format('YYYY') + '');\n }\n\n private _setToDate(event: any): void {\n this.to = this.to.year(event.target.value);\n window.localStorage.setItem(GTY_TO_YEAR_VAR, this.to.format('YYYY') + '');\n }\n\n // renders the actual game stage\n private renderGameStage(): TemplateResult {\n console.debug(\"renderGameStage\");\n\n return html`\n ${this._renderHeader(this.i18n.translate(\"game-call-to-action\").replace(/__FROM__/, this.from.year() + '').replace(/__TO__/, this.to.year() + ''))}\n <div class=\"guess-the-year-game-stage\">\n <div class=\"game-score\">${this._renderGameScore()}</div>\n\n <div class=\"container\">\n <div class=\"incident\">${this._renderIncident()}</div>\n ${this._renderHint()}\n <div class=\"sources\">${this.renderSources()}</div>\n </div>\n\n <div class=\"game-controls\">\n <div class=\"game-controls--hint\">${this._renderHintButton()}</div>\n <div class=\"game-controls--answers\">${this._renderAnswers()}</div>\n </div>\n\n ${this._renderFeedback()}\n </div>\n `;\n }\n\n // renders the item for the year to guess\n private _renderIncident(): TemplateResult {\n return html`\n <div class=\"incident--title\">\n <h1>${this._incident?.title}</h1>\n </div>\n\n ${this._renderIncidentImage(this._incident)}\n\n <div class=\"incident--text\">\n <p>${this._incident?.text}</p>\n </div>\n `;\n }\n\n private _shouldDisplayAnImage(incident: Incident): boolean {\n const hasImage = !!(incident && incident.image && incident.image[0]);\n const displayImages = !this.suppressImages;\n return hasImage && displayImages;\n }\n\n // renders the optional image with the item\n private _renderIncidentImage(incident: Incident | undefined): TemplateResult {\n if (incident && this._shouldDisplayAnImage(incident)) {\n return html`\n <div class=\"incident--image\">\n <img \n @error=${(evt: Event) => {\n this._handleImageLoadError(evt, incident);\n }}\n src=\"${incident.image[0]}\"\n />\n </div>\n `;\n }\n\n if (!this.suppressImages) {\n // Preserve html structure to prevent the webcomponent to collapse.\n return html`<div class=\"incident--image\">\n <img/>\n </div>`;\n }\n\n return html``;\n }\n\n // renders a list of possible answers\n private _renderAnswers(): TemplateResult {\n return html`\n <div class=\"answers--list\">\n <ul>\n ${this._answers.map(\n (answer) =>\n html`<li @click=\"${this._handleAnswerClicked}\">${answer}</li>`,\n )}\n </ul>\n </div>\n `;\n }\n\n // renders the current question score\n // it counts back to 0\n private _renderGameScore(): TemplateResult {\n return html`\n <div class=\"game-score--total\">\n <div class=\"game-score--label\">${this.i18n.translate(\"question-number\")}:</div>\n <div class=\"game-score--value\">\n ${this._numberOfQuestionsSeen} van ${this.numberOfQuestions}\n </div>\n </div>\n\n <div class=\"game-score--score\">\n <div class=\"game-score--label\">${this.i18n.translate(\"question-score\")}:</div>\n <div class=\"game-score--value\">${this._score0.value}</div>\n </div>\n\n <div class=\"game-score--total\">\n <div class=\"game-score--label\">${this.i18n.translate(\"total-score\")}:</div>\n <div class=\"game-score--value\">${this.totalScore}</div>\n </div>\n `;\n }\n\n // handles the click on an answer\n private _handleAnswerClicked(event: any): void {\n // get the clicked answer\n const answer = event.target.textContent;\n\n // stop the score counter\n this._score0.stop();\n\n // remove the hint button\n this._showHint = false;\n\n // check if the answer is correct\n if (answer) {\n // this._apiService.postIncidentAnswer(this._incident?.id, answer);\n console.debug(\n answer,\n this._solution,\n this._score,\n answer == this._solution,\n );\n\n this._answer = answer;\n }\n }\n\n // renders the requested hint\n private _renderHint(): TemplateResult {\n if (!this._hint) {\n return html``;\n }\n\n return html` <p>${this._hint}</p> `;\n }\n\n // renders the hint button until\n // all max hints have been used\n private _renderHintButton(): TemplateResult {\n if (!this._showHint) {\n return html``;\n }\n\n return html`\n <div class=\"game-controls--hint\">\n <button @click=\"${this._handleHintClicked}\">\n ${this.i18n.translate(\"show-hint\")} (${this._hints.length - this._hintsIndex})\n </button>\n </div>\n `;\n }\n\n // handles the click on the hint button\n // and shows the next hint if available\n // subtracts the cost of the hint from\n // the question score\n private _handleHintClicked(): void {\n console.debug(\"handleHintClicked\", [this._hintsIndex, this._hints.length]);\n\n if (this._hintsIndex < this._hints.length) {\n const hintText = this._generateHintText(this._hints[this._hintsIndex]);\n\n if (hintText) {\n this._hint = hintText;\n this._hintsIndex++;\n this._score0.subtract(HINT_COST);\n }\n }\n\n if (this._hintsIndex >= this._hints.length) {\n // this._hintsIndex = 0;\n this._showHint = false;\n }\n }\n\n // renders the feedback overlay\n private _renderFeedback(): TemplateResult {\n // do not show anything until an answer has been made\n // and the score is greater than 0\n if (!this._answer && this._score0.value > 0) {\n return html``;\n }\n\n // check if the answer is correct\n // cast to strings to compare\n const is_correct = this._answer + \"\" == this._solution + \"\";\n const score = is_correct ? this._score0.value : 0;\n\n if (this._score0.isRunning()) {\n this._score0.stop();\n }\n\n this.totalScore += score;\n\n // Fire-and-forget recallability feedback.\n if (this._incident?.id) {\n this._apiService.incidentRecallability(this._incident?.id, this._playerDob, is_correct);\n }\n\n if (is_correct) {\n return html`\n <div class=\"feedback\">\n <div class=\"feedback--content\">\n <h3>${this.i18n.translate(\"answer-correct\")}!</h3>\n <p>\n ${this._hintsIndex == 1 ? this.i18n.translate(\"used-hint-singular\") : this.i18n.translate(\"used-hint-plural\").replace(/__HINTS__/, this._hintsIndex + '')}\n </p>\n <p>\n ${score == 1 ? this.i18n.translate(\"number-points-singular\") : this.i18n.translate(\"number-points-plural\").replace(/__POINTS__/, score + '')}\n </p>\n\n ${this._renderNextQuestionButton()}\n </div>\n </div>\n `;\n } else if (!is_correct && this._answer) {\n return html`\n <div class=\"feedback\">\n <div class=\"feedback--content\">\n <h3>${this.i18n.translate(\"answer-wrong\")}</h3>\n <p>\n ${this.i18n.translate(\"correct-answer-was\").replace(/__WRONG__/, this._answer + '').replace(/__CORRECT__/, this._solution + '')}\n </p>\n ${this._renderNextQuestionButton()}\n </div>\n </div>\n `;\n } else {\n return html`\n <div class=\"feedback\">\n <div class=\"feedback--content\">\n <h3>Helaas</h3>\n <p>\n ${this.i18n.translate(\"no-answer-correct-answer-was\").replace(/__CORRECT__/, this._solution + '')}\n </p>\n ${this._renderNextQuestionButton()}\n </div>\n </div>\n `;\n }\n }\n\n // renders the next question button\n private _renderNextQuestionButton(): TemplateResult {\n if (this._numberOfQuestionsSeen < this.numberOfQuestions) {\n return html`\n <button @click=\"${this._loadQuestion}\">${this.i18n.translate(\"next-question\")}</button>\n `;\n }\n\n return html` <button @click=\"${this._endGame}\">${this.i18n.translate(\"quit\")}</button> `;\n }\n\n // renders the end of the game\n private _endGame(): void {\n this._renderState = GameState.END;\n }\n\n private renderGameEnd(): TemplateResult {\n console.debug(\"renderGameEnd\");\n const maxScore: number = this.numberOfQuestions * this._score;\n const scoreRatio = Math.round((this.totalScore / maxScore) * 100);\n return html`\n ${this._renderHeader(\"The end!\")}\n <div class=\"guess-the-year-game-end\">\n <p>\n ${this.i18n.translate(\"end\").replace(/__SCORE__/, this.totalScore + '').replace(/__MAX_SCORE__/, maxScore + '').replace(/__PERCENT__/, scoreRatio + '')}\n </p>\n <p>\n ${this.i18n.translate(Util.scoreToValueJudgement(scoreRatio))}\n </p>\n </div>\n <button @click=\"${() => (this._renderState = GameState.SPLASH)}\" >\n ${this.i18n.translate(\"new-game\")}\n </button>\n ${this._renderFooter()}\n `;\n }\n\n private setupNewGame(): void {\n console.debug(\"new game!\");\n\n console.debug({\n \"number of questions\": this.numberOfQuestions,\n from: this.from.toISOString(),\n to: this.to.toISOString(),\n });\n\n this.totalScore = 0;\n this._numberOfQuestionsSeen = 0;\n\n this._loadQuestion();\n }\n\n private _resetStage(): void {\n this.sources = [];\n this._incident = undefined;\n this._hints = [];\n this._answer = undefined;\n this._answers = [];\n this._hintsIndex = 0;\n this._score0.reset();\n this._showHint = false;\n this._hint = undefined;\n }\n\n async _loadQuestion(): Promise<void> {\n this._resetStage();\n\n const response: { incident: Incident | undefined; sources: string[] } =\n await this._apiService.fetchOneIncident(\n this.country,\n this.category,\n this.emotion,\n this.impact,\n this.date,\n this.from.format(\"YYYY-MM-DD\"),\n this.to.format(\"YYYY-MM-DD\"),\n \"40\",\n \"quiz_year\"\n );\n\n this._incident = response.incident;\n this.sources = response.sources;\n\n this._solution = Number(\n (response.incident?.yearplusmonth || \"\").substring(0, 4),\n );\n\n const answers = [this._solution];\n const from = this.from.year();\n const to = this.to.year();\n\n // generate 3 more random and unique answers between to and from\n while (answers.length < 4) {\n const randomAnswer = Math.floor(Math.random() * (to - from)) + from;\n if (!answers.includes(randomAnswer)) {\n answers.push(randomAnswer);\n }\n }\n\n // sort theses answers\n answers.sort();\n\n this._answers = answers;\n\n for (let i = 0; i < this.maxHints; i++) {\n console.debug(\"loading hint\", i);\n\n const response: { incident: Incident | undefined; sources: string[] } =\n await this._apiService.fetchOneIncident(\n this.country,\n Util.shuffleArray([...Categories]).shift(),\n undefined,\n undefined,\n \"\",\n `${this._solution}-01-01`,\n `${this._solution}-12-31`,\n undefined,\n undefined,\n );\n\n if (response.incident) {\n this._hints.push(response.incident);\n }\n }\n\n if (this._hints.length === 0) {\n this._showHint = false;\n }\n else {\n this._showHint = true;\n }\n\n // start render game stage\n this._renderState = GameState.PLAY;\n\n // start score counter\n this._score0.start();\n\n // increment question counter\n this._numberOfQuestionsSeen += 1;\n }\n\n private _generateHintText(hintIncident: Incident): string {\n let hint = \"\";\n const hintTemplates = this.i18n.HintTemplates[hintIncident.category];\n switch (hintIncident.category) {\n case Category.newsItem:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] || \"\"\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case Category.radioSong:\n // The title property of radioSongs always follow this pattern: track - artist\n const track = hintIncident.title.replace(/(.*?)\\s+\\-.*/, \"$1\");\n const artist = hintIncident.title.replace(/.*\\-(.*)/, \"$1\");\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n )\n .replace(/__ARTIST__/, artist)\n .replace(/__TRACK__/, track);\n break;\n case Category.cinemaMovie:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case Category.tech:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case Category.newsPresenter:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title || hintIncident.text);\n break;\n case Category.tvShowOrSeries:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title || hintIncident.text);\n break;\n case Category.sports:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title || hintIncident.text);\n break;\n case Category.showbizz:\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title || hintIncident.text);\n break;\n }\n return hint;\n }\n\n renderSources(): TemplateResult {\n console.debug(\"renderSources\");\n if (!this.sources.length) {\n return html``;\n }\n // deduplicate array via [...new Set(this.sources)]\n return html`\n <div class=\"guess-the-year-sources\" >\n Source: ${[...new Set(this.sources)].join(\", \")}\n </div>\n `;\n }\n\n _handleImageLoadError = (evt: Event, incident: Incident) => {\n // grab the image element that triggered the error\n const targetImage = evt.target as HTMLImageElement;\n console.debug(`Error loading image: ${targetImage.src} `);\n\n // find out which no image source needs to be used\n const noImageSrc = this.noImageSrc || NoImageImg;\n\n // don't try to set the image source if it\n // has already been set\n if (targetImage.src == noImageSrc) {\n return;\n }\n\n // report broken images back to the server if set.\n if (this.reportBrokenImages) {\n if (incident) {\n this._apiService.postAttributeQualityFeedback(\n incident.id,\n \"image\",\n targetImage.src,\n ContentFeedback.incorrect,\n );\n }\n }\n\n // wait a bit before setting the image\n // so we don't hammer the no image server\n setTimeout(() => {\n targetImage.src = noImageSrc;\n }, 250);\n\n return false;\n };\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"guess-the-year\": GuessTheYear;\n }\n}\n"]}
@@ -1,134 +0,0 @@
1
- import { Util } from "./Util";
2
- export class ApiService {
3
- constructor(teeeApiUrl) {
4
- this.teeeApiUrl = teeeApiUrl;
5
- }
6
- async fetchOneIncident(pov, category, emotion, impact, date, from, to, maxLasted, variant) {
7
- return new Promise(async (resolve, reject) => {
8
- console.debug("fetchHistory");
9
- // Set defaults to explicit empty string.
10
- const povs = pov || "";
11
- const categories = category || "";
12
- const emotions = emotion || "";
13
- const impacts = impact || "";
14
- const dateString = date || "";
15
- const fromString = from || "";
16
- const toString = to || "";
17
- const limitString = "1";
18
- const maxLastedString = maxLasted || "";
19
- const variants = variant || "";
20
- try {
21
- const urls = [];
22
- const urlSearch = new URLSearchParams({
23
- pov: povs,
24
- emotion: emotions,
25
- impact: impacts,
26
- limit: limitString,
27
- variant: variants
28
- });
29
- // Always randomize incidents on the backend.
30
- urlSearch.append("seed", "" + new Date().getTime());
31
- if (maxLasted) {
32
- urlSearch.append("maxlasted", "" + maxLastedString);
33
- }
34
- // add category to search
35
- urlSearch.set("category", categories);
36
- if (dateString) {
37
- // setup url
38
- const url = new URL(`${this.teeeApiUrl}/${date}`);
39
- url.search = urlSearch.toString();
40
- urls.push(url);
41
- }
42
- else if (fromString && toString) {
43
- try {
44
- const from = new Date(fromString).toISOString().substring(0, 10);
45
- const to = new Date(toString).toISOString().substring(0, 10);
46
- // add from and to date to search
47
- urlSearch.set("from", from);
48
- urlSearch.set("to", to);
49
- // setup url
50
- const url = new URL(this.teeeApiUrl);
51
- url.search = urlSearch.toString();
52
- urls.push(url);
53
- }
54
- catch (e) {
55
- console.error(e, fromString, toString);
56
- }
57
- }
58
- else {
59
- throw "No correct date or period specified.";
60
- }
61
- // start fetching all incidents
62
- let incidents = [];
63
- await Util.asyncForeach(urls, async (url) => {
64
- const response = await fetch(url);
65
- const json = await response.json();
66
- incidents = incidents.concat(json.results);
67
- });
68
- // Choose the first incident in the list as the one to return.
69
- const firstIncidentInList = incidents.length ? incidents[0] : undefined;
70
- // search for sources on incidents
71
- const sourcesFoundInIncidents = {};
72
- incidents.forEach((incident) => {
73
- if (incident.source) {
74
- sourcesFoundInIncidents[incident.source] = true;
75
- }
76
- });
77
- console.debug([incidents, sourcesFoundInIncidents]);
78
- resolve({
79
- incident: firstIncidentInList,
80
- sources: Object.keys(sourcesFoundInIncidents),
81
- });
82
- }
83
- catch (e) {
84
- reject(e);
85
- }
86
- });
87
- }
88
- // post feedback about the attribute of an incident.
89
- async postAttributeQualityFeedback(incidentid, attribute, value, remark) {
90
- const url = `${this.teeeApiUrl}/feedback/${incidentid}/attribute`;
91
- await fetch(url, {
92
- method: "POST",
93
- headers: {
94
- Accept: "application/json",
95
- "Content-Type": "application/json",
96
- },
97
- body: JSON.stringify({
98
- attribute,
99
- value,
100
- remark,
101
- }),
102
- });
103
- }
104
- // post feedback about an incident.
105
- async postIncidentFeedback(incidentid, remark) {
106
- const url = `${this.teeeApiUrl}/feedback/${incidentid}/remark`;
107
- await fetch(url, {
108
- method: "POST",
109
- headers: {
110
- Accept: "application/json",
111
- "Content-Type": "application/json",
112
- },
113
- body: JSON.stringify({
114
- remark,
115
- }),
116
- });
117
- }
118
- // Post the recallability of this incident by the player.
119
- async incidentRecallability(incidentid, dob, is_correct) {
120
- this.postIncidentFeedback(incidentid, `recall:absolute-year:${Util.dobToGeneration(dob)}:${is_correct}`);
121
- }
122
- }
123
- export var ContentFeedback;
124
- (function (ContentFeedback) {
125
- ContentFeedback["incorrect"] = "incorrect";
126
- ContentFeedback["tooShort"] = "tooShort";
127
- ContentFeedback["tooLong"] = "tooLong";
128
- ContentFeedback["toneOfVoice"] = "toneOfVoice";
129
- ContentFeedback["missing"] = "missing";
130
- ContentFeedback["noMatch"] = "noMatch";
131
- ContentFeedback["badData"] = "badData";
132
- ContentFeedback["unknown"] = "unknown";
133
- })(ContentFeedback || (ContentFeedback = {}));
134
- //# sourceMappingURL=ApiService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApiService.js","sourceRoot":"","sources":["../../src/lib/ApiService.ts"],"names":[],"mappings":"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","sourcesContent":["import { Util, IHash } from \"./Util\";\nimport { Incident } from \"./Incident\";\n\nexport class ApiService {\n constructor(private teeeApiUrl: string) { }\n\n public async fetchOneIncident(\n pov: string,\n category: string | undefined,\n emotion: string | undefined,\n impact: string | undefined,\n date: string,\n from: string,\n to: string,\n maxLasted: string | undefined,\n variant: string | undefined,\n ): Promise<{ incident: Incident | undefined; sources: string[] }> {\n return new Promise(async (resolve, reject) => {\n console.debug(\"fetchHistory\");\n\n // Set defaults to explicit empty string.\n const povs = pov || \"\";\n const categories = category || \"\";\n const emotions = emotion || \"\";\n const impacts = impact || \"\";\n const dateString = date || \"\";\n const fromString = from || \"\";\n const toString = to || \"\";\n const limitString = \"1\";\n const maxLastedString = maxLasted || \"\";\n const variants = variant || \"\";\n\n try {\n const urls: Array<URL> = [];\n\n const urlSearch = new URLSearchParams({\n pov: povs,\n emotion: emotions,\n impact: impacts,\n limit: limitString,\n variant: variants\n });\n\n // Always randomize incidents on the backend.\n urlSearch.append(\"seed\", \"\" + new Date().getTime());\n\n if (maxLasted) {\n urlSearch.append(\"maxlasted\", \"\" + maxLastedString);\n }\n\n // add category to search\n urlSearch.set(\"category\", categories);\n\n if (dateString) {\n // setup url\n const url = new URL(`${this.teeeApiUrl}/${date}`);\n url.search = urlSearch.toString();\n\n urls.push(url);\n } else if (fromString && toString) {\n try {\n const from = new Date(fromString).toISOString().substring(0, 10);\n const to = new Date(toString).toISOString().substring(0, 10);\n\n // add from and to date to search\n urlSearch.set(\"from\", from);\n urlSearch.set(\"to\", to);\n\n // setup url\n const url = new URL(this.teeeApiUrl);\n url.search = urlSearch.toString();\n\n urls.push(url);\n }\n catch (e) {\n console.error(e, fromString, toString);\n }\n } else {\n throw \"No correct date or period specified.\";\n }\n\n // start fetching all incidents\n let incidents: Array<Incident> = [];\n await Util.asyncForeach(urls, async (url: string) => {\n const response = await fetch(url);\n const json = await response.json();\n incidents = incidents.concat(json.results);\n });\n // Choose the first incident in the list as the one to return.\n const firstIncidentInList = incidents.length ? incidents[0] : undefined;\n\n // search for sources on incidents\n const sourcesFoundInIncidents: IHash = {};\n incidents.forEach((incident: Incident) => {\n if (incident.source) {\n sourcesFoundInIncidents[incident.source] = true;\n }\n });\n\n console.debug([incidents, sourcesFoundInIncidents]);\n\n resolve({\n incident: firstIncidentInList,\n sources: Object.keys(sourcesFoundInIncidents),\n });\n } catch (e) {\n reject(e);\n }\n });\n }\n\n // post feedback about the attribute of an incident.\n public async postAttributeQualityFeedback(\n incidentid: string,\n attribute: string,\n value: string,\n remark: string,\n ) {\n const url = `${this.teeeApiUrl}/feedback/${incidentid}/attribute`;\n await fetch(url, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n attribute,\n value,\n remark,\n }),\n });\n }\n\n // post feedback about an incident.\n public async postIncidentFeedback(incidentid: string, remark: string) {\n const url = `${this.teeeApiUrl}/feedback/${incidentid}/remark`;\n await fetch(url, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n remark,\n }),\n });\n }\n\n // Post the recallability of this incident by the player.\n public async incidentRecallability(incidentid: string, dob: number, is_correct: boolean) {\n this.postIncidentFeedback(incidentid, `recall:absolute-year:${Util.dobToGeneration(dob)}:${is_correct}`);\n }\n}\n\nexport enum ContentFeedback {\n incorrect = \"incorrect\", // This content is not correct\n tooShort = \"tooShort\", // This content is too short\n tooLong = \"tooLong\", // This content is too long\n toneOfVoice = \"toneOfVoice\", // The tone of voice of this content should be improved\n missing = \"missing\", // This content should be created\n noMatch = \"noMatch\", // This content does not match with its sibling data\n badData = \"badData\", // This content contains bad data\n unknown = \"unknown\", // We did not expect this input...\n}\n"]}
package/dist/lib/Icon.js DELETED
@@ -1,2 +0,0 @@
1
- export const NoImageImg = "data:image/png;base64,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CBAgQIAAAQICBdcAAQIECBAgQIAAAQIECBAgkFlAoJCZTAUCBAgQIECAAAECBAgQIEBAoOAaIECAAAECBAgQIECAAAECBDILCBQyk6lAgAABAgQIECBAgAABAgQICBRcAwQIECBAgAABAgQIECBAgEBmAYFCZjIVCBAgQIAAAQIECBAgQIAAAYGCa4AAAQIECBAgQIAAAQIECBDILCBQyEymAgECBAgQIECAAAECBAgQICBQcA0QIECAAAECBAgQIECAAAECmQUECpnJVCBAgAABAgQIECBAgAABAgQECq4BAgQIECBAgAABAgQIECBAILOAQCEzmQoECBAgQIAAAQIECBAgQICAQME1QIAAAQIECBAgQIAAAQIECGQWEChkJlOBAAECBAgQIECAAAECBAgQECi4BggQIECAAAECBAgQIECAAIHMAgKFzGQqECBAgAABAgQIECBAgAABAgIF1wABAgQIECBAgAABAgQIECCQWUCgkJlMBQIECBAgQIAAAQIECBAgQECg4BogQIAAAQIECBAgQIAAAQIEMgsIFDKTqUCAAAECBAgQIECAAAECBAgIFFwDBAgQIECAAAECBAgQIECAQGYBgUJmMhUIECBAgAABAgQIECBAgAABgYJrgAABAgQIECBAgAABAgQIEMgsIFDITKYCAQIECBAgQIAAAQIECBAgIFBwDRAgQIAAAQIECBAgQIAAAQKZBQQKmclUIECAAAECBAgQIECAAAECBAQKrgECBAgQIECAAAECBAgQIEAgs4BAITOZCgQIECBAgAABAgQIECBAgIBAwTVAgAABAgQIECBAgAABAgQIZBYQKGQmU4EAAQIECBAgQIAAAQIECBAQKLgGCBAgQIAAAQIECBAgQIAAgcwCAoXMZCoQIECAAAECBAgQIECAAAECAgXXAAECBAgQIECAAAECBAgQIJBZQKCQmUwFAgQIECBAgAABAgQIECBAQKDgGiBAgAABAgQIECBAgAABAgQyCwgUMpOpQIAAAQIEyi/Qo3vnGDK4T/TdvHt069opNtqofbStqow2bdqU/2SK2OOqVasi/d+SpcvjnXc/jDdmz4+XXpkVs+e8HdXVNUXsSVMECBAgQIBAsQUECsUW1R4BAgQIECiSQMdNNoq99hgRB43dObbs1ysJD+oabrPa57p9zftvkikkW+3/JQFDxJy5b8fk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kDA97v/nM/Hgw89G+riDjQABAgQIEGgaAgKFpjEPzoIAAQIECNQLVFS0iU27dIytBvSOz4weGjslayxs3rtb/fHW8GFesuji40+8HA8/+ny8Mn12zHv7g2S9hOrWMHRjJECAAAECzUZAoNBspsqJEiBAgEBrE2iTvAaiXduqaJfctZAu2Dhs2wExoH/P6Nlj0+jQoX1UVVZF+qaI5r6tTIKCxYuXRfrmhhkz58azL8yM12fNi6VLlsey5Sti1apVzX2Izp8AAQIECLRIAYFCi5xWgyJAgAABAgQIECBAgAABAqUVECiU1lfrBAgQIECAAAECBAgQIECgRQoIFFrktBoUAQIECBAgQIAAAQIECBAorYBAobS+WidAgAABAgQIECBAgAABAi1SQKDQIqfVoAgQIECAAAECBAgQIECAQGkFBAql9dU6AQIECBAgQIAAAQIECBBokQIChRY5rQZFgAABAgQIECBAgAABAgRKKyBQKK2v1gkQIECAAAECBAgQIECAQIsUECi0yGk1KAIECBAgQIAAAQIECBAgUFoBgUJpfbVOgAABAgQIECBAgAABAgRapIBAoUVOq0ERIECAAAECBAgQIECAAIHSCggUSuurdQIECBAgQIAAAQIECBAg0CIFBAotcloNigABAgQIECBAgAABAgQIlFZAoFBaX60TIECAAAECBAgQIECAAIEWKSBQaJHTalAECBAgQIAAAQIECBAgQKC0AgKF0vpqnQABAgQIECBAgAABAgQItEiB/w8AAP//9n+T/QAAQABJREFU7Z0HnFXF2f8ftsAWWJalLB2WjgUQC2IEe1SIMfbYolGjJmo0mmp8E9/XkqLmn5jYFVvsvXeMQrDFjiK9LixlKQtb2MZ/5m4ubDn37sy555x77t3vfD6w9855Zs6c78w5d+Z3npnpVHLgRTuEAAEIQAACEIAABCAAAQhAAAIQgAAELAh0QlCwoIUpBCAAAQhAAAIQgAAEIAABCEAAAhECCAo0BAhAAAIQgAAEIAABCEAAAhCAAASsCSAoWCMjAQQgAAEIQAACEIAABCAAAQhAAAIICrQBCEAAAhCAAAQgAAEIQAACEIAABKwJIChYIyMBBCAAAQhAAAIQgAAEIAABCEAAAggKtAEIQAACEIAABCAAAQhAAAIQgAAErAkgKFgjIwEEIAABCEAAAhCAAAQgAAEI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";
2
- //# sourceMappingURL=Icon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/lib/Icon.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,UAAU,GACrB,oqrCAAoqrC,CAAC","sourcesContent":["\nexport const NoImageImg =\n \"data:image/png;base64,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CBAgQIAAAQICBdcAAQIECBAgQIAAAQIECBAgkFlAoJCZTAUCBAgQIECAAAECBAgQIEBAoOAaIECAAAECBAgQIECAAAECBDILCBQyk6lAgAABAgQIECBAgAABAgQICBRcAwQIECBAgAABAgQIECBAgEBmAYFCZjIVCBAgQIAAAQIECBAgQIAAAYGCa4AAAQIECBAgQIAAAQIECBDILCBQyEymAgECBAgQIECAAAECBAgQICBQcA0QIECAAAECBAgQIECAAAECmQUECpnJVCBAgAABAgQIECBAgAABAgQECq4BAgQIECBAgAABAgQIECBAILOAQCEzmQoECBAgQIAAAQIECBAgQICAQME1QIAAAQIECBAgQIAAAQIECGQWEChkJlOBAAECBAgQIECAAAECBAgQECi4BggQIECAAAECBAgQIECAAIHMAgKFzGQqECBAgAABAgQIECBAgAABAgIF1wABAgQIECBAgAABAgQIECCQWUCgkJlMBQIECBAgQIAAAQIECBAgQECg4BogQIAAAQIECBAgQIAAAQIEMgsIFDKTqUCAAAECBAgQIECAAAECBAgIFFwDBAgQIECAAAECBAgQIECAQGYBgUJmMhUIECBAgAABAgQIECBAgAABgYJrgAABAgQIECBAgAABAgQIEMgsIFDITKYCAQIECBAgQIAAAQIECBAgIFBwDRAgQIAAAQIECBAgQIAAAQKZBQQKmclUIECAAAECBAgQIECAAAECBAQKrgECBAgQIECAAAECBAgQIEAgs4BAITOZCgQIECBAgAABAgQIECBAgIBAwTVAgAABAgQIECBAgAABAgQIZBYQKGQmU4EAAQIECBAgQIAAAQIECBAQKLgGCBAgQIAAAQIECBAgQIAAgcwCAoXMZCoQIECAAAECBAgQIECAAAECAgXXAAECBAgQIECAAAECBAgQIJBZQKCQmUwFAgQIECBAgAABAgQIECBAQKDgGiBAgAABAgQIECBAgAABAgQyCwgUMpOpQIAAAQIEyi/Qo3vnGDK4T/TdvHt069opNtqofbStqow2bdqU/2SK2OOqVasi/d+SpcvjnXc/jDdmz4+XXpkVs+e8HdXVNUXsSVMECBAgQIBAsQUECsUW1R4BAgQIECiSQMdNNoq99hgRB43dObbs1ysJD+oabrPa57p9zftvkikkW+3/JQFDxJy5b8fk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kDA97v/nM/Hgw89G+riDjQABAgQIEGgaAgKFpjEPzoIAAQIECNQLVFS0iU27dIytBvSOz4weGjslayxs3rtb/fHW8GFesuji40+8HA8/+ny8Mn12zHv7g2S9hOrWMHRjJECAAAECzUZAoNBspsqJEiBAgEBrE2iTvAaiXduqaJfctZAu2Dhs2wExoH/P6Nlj0+jQoX1UVVZF+qaI5r6tTIKCxYuXRfrmhhkz58azL8yM12fNi6VLlsey5Sti1apVzX2Izp8AAQIECLRIAYFCi5xWgyJAgAABAgQIECBAgAABAqUVECiU1lfrBAgQIECAAAECBAgQIECgRQoIFFrktBoUAQIECBAgQIAAAQIECBAorYBAobS+WidAgAABAgQIECBAgAABAi1SQKDQIqfVoAgQIECAAAECBAgQIECAQGkFBAql9dU6AQIECBAgQIAAAQIECBBokQIChRY5rQZFgAABAgQIECBAgAABAgRKKyBQKK2v1gkQIECAAAECBAgQIECAQIsUECi0yGk1KAIECBAgQIAAAQIECBAgUFoBgUJpfbVOgAABAgQIECBAgAABAgRapIBAoUVOq0ERIECAAAECBAgQIECAAIHSCggUSuurdQIECBAgQIAAAQIECBAg0CIFBAotcloNigABAgQIECBAgAABAgQIlFZAoFBaX60TIECAAAECBAgQIECAAIEWKSBQaJHTalAECBAgQIAAAQIECBAgQKC0AgKF0vpqnQABAgQIECBAgAABAgQItEiB/w8AAP//9n+T/QAAQABJREFU7Z0HnFXF2f8ftsAWWJalLB2WjgUQC2IEe1SIMfbYolGjJmo0mmp8E9/XkqLmn5jYFVvsvXeMQrDFjiK9LixlKQtb2MZ/5m4ubDn37sy555x77t3vfD6w9855Zs6c78w5d+Z3npnpVHLgRTuEAAEIQAACEIAABCAAAQhAAAIQgAAELAh0QlCwoIUpBCAAAQhAAAIQgAAEIAABCEAAAhECCAo0BAhAAAIQgAAEIAABCEAAAhCAAASsCSAoWCMjAQQgAAEIQAACEIAABCAAAQhAAAIICrQBCEAAAhCAAAQgAAEIQAACEIAABKwJIChYIyMBBCAAAQhAAAIQgAAEIAABCEAAAggKtAEIQAACEIAABCAAAQhAAAIQgAAErAkgKFgjIwEEIAABCEAAAhCAAAQgAAEI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\";\n"]}
@@ -1,37 +0,0 @@
1
- export var Category;
2
- (function (Category) {
3
- Category["tvShowOrSeries"] = "tvShowOrSeries";
4
- Category["showbizz"] = "showbizz";
5
- Category["trend"] = "trend";
6
- Category["tech"] = "tech";
7
- Category["fashionTrend"] = "fashionTrend";
8
- Category["cinemaMovie"] = "cinemaMovie";
9
- Category["streetScene"] = "streetScene";
10
- Category["newsPresenter"] = "newsPresenter";
11
- Category["radioSong"] = "radioSong";
12
- Category["newsItem"] = "newsItem";
13
- Category["iconicAlbum"] = "iconicAlbum";
14
- Category["radioShow"] = "radioShow";
15
- Category["bestSellerBook"] = "bestSellerBook";
16
- Category["advertisement"] = "advertisement";
17
- Category["car"] = "car";
18
- Category["sports"] = "sports";
19
- Category["unknown"] = "unknown";
20
- })(Category || (Category = {}));
21
- export const Categories = [
22
- // Category.advertisement,
23
- // Category.bestSellerBook,
24
- // Category.car,
25
- Category.cinemaMovie,
26
- // Category.fashionTrend,
27
- // Category.iconicAlbum,
28
- Category.newsItem,
29
- Category.newsPresenter,
30
- // Category.radioShow,
31
- Category.radioSong,
32
- Category.showbizz,
33
- Category.sports,
34
- Category.tech,
35
- Category.tvShowOrSeries,
36
- ];
37
- //# sourceMappingURL=Incident.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Incident.js","sourceRoot":"","sources":["../../src/lib/Incident.ts"],"names":[],"mappings":"AAYA,MAAM,CAAN,IAAY,QAkBX;AAlBD,WAAY,QAAQ;IAClB,6CAAiC,CAAA;IACjC,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yCAA6B,CAAA;IAC7B,uCAA2B,CAAA;IAC3B,uCAA2B,CAAA;IAC3B,2CAA+B,CAAA;IAC/B,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,uCAA2B,CAAA;IAC3B,mCAAuB,CAAA;IACvB,6CAAiC,CAAA;IACjC,2CAA+B,CAAA;IAC/B,uBAAW,CAAA;IACX,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;AACrB,CAAC,EAlBW,QAAQ,KAAR,QAAQ,QAkBnB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,gBAAgB;IAChB,QAAQ,CAAC,WAAW;IACpB,yBAAyB;IACzB,wBAAwB;IACxB,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,aAAa;IACtB,sBAAsB;IACtB,QAAQ,CAAC,SAAS;IAClB,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,MAAM;IACf,QAAQ,CAAC,IAAI;IACb,QAAQ,CAAC,cAAc;CACxB,CAAC","sourcesContent":["export interface Incident {\n image: string;\n audio: string;\n id: string;\n title: string;\n text: string;\n category: string;\n country: string;\n source: string;\n yearplusmonth: string;\n}\n\nexport enum Category {\n tvShowOrSeries = \"tvShowOrSeries\",\n showbizz = \"showbizz\",\n trend = \"trend\",\n tech = \"tech\",\n fashionTrend = \"fashionTrend\",\n cinemaMovie = \"cinemaMovie\",\n streetScene = \"streetScene\",\n newsPresenter = \"newsPresenter\",\n radioSong = \"radioSong\",\n newsItem = \"newsItem\",\n iconicAlbum = \"iconicAlbum\",\n radioShow = \"radioShow\",\n bestSellerBook = \"bestSellerBook\",\n advertisement = \"advertisement\",\n car = \"car\",\n sports = \"sports\",\n unknown = \"unknown\",\n}\n\nexport const Categories = [\n // Category.advertisement,\n // Category.bestSellerBook,\n // Category.car,\n Category.cinemaMovie,\n // Category.fashionTrend,\n // Category.iconicAlbum,\n Category.newsItem,\n Category.newsPresenter,\n // Category.radioShow,\n Category.radioSong,\n Category.showbizz,\n Category.sports,\n Category.tech,\n Category.tvShowOrSeries,\n];\n"]}
package/dist/lib/Util.js DELETED
@@ -1,69 +0,0 @@
1
- export class Util {
2
- static async asyncForeach(array, // eslint-disable-line @typescript-eslint/no-explicit-any
3
- callback) {
4
- for (let index = 0; index < array.length; index++) {
5
- await callback(array[index], index, array);
6
- }
7
- }
8
- static removeAllChildren(parentElement) {
9
- if (!parentElement) {
10
- return;
11
- }
12
- let childToDelete = parentElement.lastChild;
13
- while (childToDelete) {
14
- parentElement.removeChild(childToDelete);
15
- childToDelete = parentElement.lastChild;
16
- }
17
- }
18
- /**
19
- * Shuffle an array
20
- */
21
- static shuffleArray(array) {
22
- return array.sort(() => Math.random() - 0.5);
23
- }
24
- // The naming of the generations should conform to what the backend expects.
25
- static dobToGeneration(dob) {
26
- if (dob >= 2013)
27
- return 'generationalpha';
28
- if (dob >= 1997)
29
- return 'generationz';
30
- if (dob >= 1981)
31
- return 'generationy';
32
- if (dob >= 1965)
33
- return 'generationx';
34
- if (dob >= 1946)
35
- return 'babyboomers';
36
- if (dob >= 1928)
37
- return 'silentgeneration';
38
- if (dob >= 1901)
39
- return 'greatestgeneration';
40
- return '';
41
- // greatestgeneration: 1901-1927
42
- // silentgeneration: 1928-1945
43
- // babyboomers: 1946-1964
44
- // generationx: 1965-1980
45
- // generationy: 1981-1996
46
- // generationz: 1997-2012
47
- // generationalpha: 2013-2028
48
- }
49
- static scoreToValueJudgement(scoreAsPercent) {
50
- if (scoreAsPercent >= 90)
51
- return 'excellent';
52
- if (scoreAsPercent >= 80)
53
- return 'very-good';
54
- if (scoreAsPercent >= 70)
55
- return 'good';
56
- if (scoreAsPercent >= 60)
57
- return 'reasonable-good';
58
- if (scoreAsPercent >= 50)
59
- return 'reasonable';
60
- if (scoreAsPercent >= 40)
61
- return 'not-so-good';
62
- if (scoreAsPercent >= 20)
63
- return 'not-good';
64
- if (scoreAsPercent >= 0)
65
- return 'bad';
66
- return '';
67
- }
68
- }
69
- //# sourceMappingURL=Util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../src/lib/Util.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IACR,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,KAAiB,EAAE,yDAAyD;IAC5E,QAAa;QAEb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAC7B,aAAsC;QAEtC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC;QAC5C,OAAO,aAAa,EAAE,CAAC;YACrB,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACzC,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,KAAiB;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,4EAA4E;IACrE,MAAM,CAAC,eAAe,CAAC,GAAW;QACvC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,iBAAiB,CAAC;QAC1C,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,aAAa,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,aAAa,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,aAAa,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,aAAa,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,kBAAkB,CAAC;QAC3C,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,oBAAoB,CAAC;QAC7C,OAAO,EAAE,CAAC;QACV,gCAAgC;QAChC,8BAA8B;QAC9B,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;QACzB,6BAA6B;IAC/B,CAAC;IAGM,MAAM,CAAC,qBAAqB,CAAC,cAAsB;QACxD,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,WAAW,CAAC;QAC7C,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,WAAW,CAAC;QAC7C,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,iBAAiB,CAAC;QACnD,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,YAAY,CAAC;QAC9C,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,aAAa,CAAC;QAC/C,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,UAAU,CAAC;QAC5C,IAAI,cAAc,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF","sourcesContent":["export class Util {\n public static async asyncForeach(\n array: Array<any>, // eslint-disable-line @typescript-eslint/no-explicit-any\n callback: any, // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n for (let index = 0; index < array.length; index++) {\n await callback(array[index], index, array);\n }\n }\n\n public static removeAllChildren(\n parentElement: HTMLElement | undefined,\n ): void {\n if (!parentElement) {\n return;\n }\n let childToDelete = parentElement.lastChild;\n while (childToDelete) {\n parentElement.removeChild(childToDelete);\n childToDelete = parentElement.lastChild;\n }\n }\n\n /**\n * Shuffle an array\n */\n public static shuffleArray(array: Array<any>): Array<any> {\n return array.sort(() => Math.random() - 0.5);\n }\n\n // The naming of the generations should conform to what the backend expects.\n public static dobToGeneration(dob: number): string {\n if (dob >= 2013) return 'generationalpha';\n if (dob >= 1997) return 'generationz';\n if (dob >= 1981) return 'generationy';\n if (dob >= 1965) return 'generationx';\n if (dob >= 1946) return 'babyboomers';\n if (dob >= 1928) return 'silentgeneration';\n if (dob >= 1901) return 'greatestgeneration';\n return '';\n // greatestgeneration: 1901-1927\n // silentgeneration: 1928-1945\n // babyboomers: 1946-1964\n // generationx: 1965-1980\n // generationy: 1981-1996\n // generationz: 1997-2012\n // generationalpha: 2013-2028\n }\n\n\n public static scoreToValueJudgement(scoreAsPercent: number): string {\n if (scoreAsPercent >= 90) return 'excellent';\n if (scoreAsPercent >= 80) return 'very-good';\n if (scoreAsPercent >= 70) return 'good';\n if (scoreAsPercent >= 60) return 'reasonable-good';\n if (scoreAsPercent >= 50) return 'reasonable';\n if (scoreAsPercent >= 40) return 'not-so-good';\n if (scoreAsPercent >= 20) return 'not-good';\n if (scoreAsPercent >= 0) return 'bad';\n return '';\n }\n}\n\nexport interface IHash {\n [Identifier: string | number]:\n | boolean\n | number\n | string\n | string[]\n | undefined;\n}\n\nexport interface IStringArrayHash {\n [Identifier: string | number]: string[];\n}\n"]}