guess-the-year-web-component 3.2.2 → 3.2.4
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/custom-elements.json +19 -1
- package/dist/guess-the-year.d.ts.map +1 -1
- package/dist/guess-the-year.js +8 -4
- package/dist/guess-the-year.js.map +1 -1
- package/dist/lib/ApiService.js +1 -1
- package/dist/lib/ApiService.js.map +1 -1
- package/dist/lib/Util.js +1 -1
- package/dist/lib/Util.js.map +1 -1
- package/dist/lib/i18n/EN.d.ts.map +1 -1
- package/dist/lib/i18n/EN.js +15 -9
- package/dist/lib/i18n/EN.js.map +1 -1
- package/dist/lib/i18n/NL.d.ts.map +1 -1
- package/dist/lib/i18n/NL.js +12 -6
- package/dist/lib/i18n/NL.js.map +1 -1
- package/dist/main.js +10 -6
- package/package.json +1 -1
- package/src/guess-the-year.ts +8 -4
- package/src/lib/ApiService.ts +1 -1
- package/src/lib/Util.ts +1 -1
- package/src/lib/i18n/EN.ts +15 -9
- package/src/lib/i18n/NL.ts +12 -6
package/custom-elements.json
CHANGED
|
@@ -452,7 +452,7 @@
|
|
|
452
452
|
},
|
|
453
453
|
{
|
|
454
454
|
"kind": "method",
|
|
455
|
-
"name": "
|
|
455
|
+
"name": "_renderYearStepXSelectOptions",
|
|
456
456
|
"privacy": "private",
|
|
457
457
|
"return": {
|
|
458
458
|
"type": {
|
|
@@ -460,6 +460,24 @@
|
|
|
460
460
|
}
|
|
461
461
|
},
|
|
462
462
|
"parameters": [
|
|
463
|
+
{
|
|
464
|
+
"name": "from",
|
|
465
|
+
"type": {
|
|
466
|
+
"text": "number"
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"name": "to",
|
|
471
|
+
"type": {
|
|
472
|
+
"text": "number"
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"name": "step",
|
|
477
|
+
"type": {
|
|
478
|
+
"text": "number"
|
|
479
|
+
}
|
|
480
|
+
},
|
|
463
481
|
{
|
|
464
482
|
"name": "selectedValue",
|
|
465
483
|
"type": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guess-the-year.d.ts","sourceRoot":"","sources":["../src/guess-the-year.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AAqBhE,qBACa,YAAa,SAAQ,UAAU;IAE1C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,OAAO,CAA0B;IAEzC,IAAI,OAAO,IAIQ,OAAO,CAFzB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAGD,UAAU,EAAE,MAAM,CAA2B;IAG7C,kBAAkB,EAAE,OAAO,CAAS;IAGpC,IAAI,EAAE,MAAM,CAAM;IAGlB,OAAO,EAAE,MAAM,CAAM;IAGrB,QAAQ,EAAE,MAAM,CAAM;IAGtB,OAAO,EAAE,MAAM,CAAM;IAGrB,MAAM,EAAE,MAAM,CAAM;IAuBpB,IAAI,EAAE,KAAK,CAA8F;IAuBzG,EAAE,EAAE,KAAK,CAA4F;IAGrG,UAAU,EAAE,MAAM,CAAM;IAGxB,cAAc,EAAE,OAAO,CAAS;IAGhC,QAAQ,EAAE,MAAM,CAAK;IAGrB,iBAAiB,EAAE,MAAM,CAA0F;IACnH,OAAO,CAAC,sBAAsB,CAAa;IAE3C,OAAO,CAAC,UAAU,CAAmF;IAGrG,OAAO,CAAC,SAAS,CAAmC;IAEpD,OAAO,CAAC,QAAQ,CAAqB;IAGrC,OAAO,CAAC,KAAK,CAAiC;IAE9C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,MAAM,CAAuB;IAGrC,OAAO,CAAC,SAAS,CAAiC;IAG3C,YAAY,EAAE,MAAM,CAAkB;IAG7C,OAAO,CAAC,MAAM,CAAM;IAEb,UAAU,SAAK;IAItB,OAAO,CAAC,OAAO,CAAiC;IAEhD,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAgB,MAAM,0BAEpB;;IAOO,iBAAiB;IAQjB,oBAAoB;IAQpB,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAKrD,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,OAAO;IAKxD,MAAM,CAAC,iBAAiB,EAAE,cAAc;IAKxC,OAAO,CAAC,iBAAiB,EAAE,cAAc;IAKzC,MAAM;IAqBf,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;IAMxC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"guess-the-year.d.ts","sourceRoot":"","sources":["../src/guess-the-year.ts"],"names":[],"mappings":"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"}
|
package/dist/guess-the-year.js
CHANGED
|
@@ -236,13 +236,12 @@ let GuessTheYear = class GuessTheYear extends LitElement {
|
|
|
236
236
|
<div class="game-settings">
|
|
237
237
|
<p>
|
|
238
238
|
${this.i18n.translate("game-settings-p0")}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
</select>
|
|
242
|
-
${this.i18n.translate("game-settings-p1")}
|
|
239
|
+
|
|
240
|
+
${this.i18n.translate("game-settings-p1-1")}
|
|
243
241
|
<select @change="${this._setNumberOfQuestions}">
|
|
244
242
|
${selectQuestionOptions}
|
|
245
243
|
</select>
|
|
244
|
+
${this.i18n.translate("game-settings-p1-2")}
|
|
246
245
|
${this.i18n.translate("game-settings-p2")}
|
|
247
246
|
<select @change="${this._setFromDate}">
|
|
248
247
|
${this._renderYearStepXSelectOptions(MIN_YEAR, MAX_YEAR, 5, this.from.format("YYYY"))}
|
|
@@ -252,6 +251,11 @@ let GuessTheYear = class GuessTheYear extends LitElement {
|
|
|
252
251
|
${this._renderYearStepXSelectOptions(MIN_YEAR, MAX_YEAR, 5, this.to.format("YYYY"))}
|
|
253
252
|
</select>
|
|
254
253
|
${this.i18n.translate("game-settings-p4")}
|
|
254
|
+
${this.i18n.translate("game-settings-p5-1")}
|
|
255
|
+
<select @change="${this._setPlayerDob}">
|
|
256
|
+
${this._renderYearStepXSelectOptions(MAX_DOB, MIN_DOB, 1, this._playerDob + '')}
|
|
257
|
+
</select>
|
|
258
|
+
${this.i18n.translate("game-settings-p5-2")}
|
|
255
259
|
</p>
|
|
256
260
|
</div>
|
|
257
261
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guess-the-year.js","sourceRoot":"","sources":["../src/guess-the-year.ts"],"names":[],"mappings":"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","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 <select @change=\"${this._setPlayerDob}\">\n ${this._renderYearStepXSelectOptions(MAX_DOB, MIN_DOB, 1, this._playerDob + '')}\n </select>\n ${this.i18n.translate(\"game-settings-p1\")}\n <select @change=\"${this._setNumberOfQuestions}\">\n ${selectQuestionOptions}\n </select>\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 </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
|
+
{"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"]}
|
package/dist/lib/ApiService.js
CHANGED
|
@@ -117,7 +117,7 @@ export class ApiService {
|
|
|
117
117
|
}
|
|
118
118
|
// Post the recallability of this incident by the player.
|
|
119
119
|
async incidentRecallability(incidentid, dob, is_correct) {
|
|
120
|
-
this.postIncidentFeedback(incidentid, `
|
|
120
|
+
this.postIncidentFeedback(incidentid, `recallability:1:${dob}:absolute-year-${is_correct}`);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
export var ContentFeedback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiService.js","sourceRoot":"","sources":["../../src/lib/ApiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAS,MAAM,QAAQ,CAAC;AAGrC,MAAM,OAAO,UAAU;IACrB,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAI,CAAC;IAEpC,KAAK,CAAC,gBAAgB,CAC3B,GAAW,EACX,QAA4B,EAC5B,OAA2B,EAC3B,MAA0B,EAC1B,IAAY,EACZ,IAAY,EACZ,EAAU,EACV,SAA6B,EAC7B,OAA2B;QAE3B,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAE9B,yCAAyC;YACzC,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,QAAQ,IAAI,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,GAAG,CAAC;YACxB,MAAM,eAAe,GAAG,SAAS,IAAI,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAC;YAE/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAe,EAAE,CAAC;gBAE5B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;oBACpC,GAAG,EAAE,IAAI;oBACT,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,QAAQ;iBAClB,CAAC,CAAC;gBAEH,6CAA6C;gBAC7C,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEpD,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,eAAe,CAAC,CAAC;gBACtD,CAAC;gBAED,yBAAyB;gBACzB,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAEtC,IAAI,UAAU,EAAE,CAAC;oBACf,YAAY;oBACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC;oBAClD,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;oBAElC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;qBAAM,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;oBAClC,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACjE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAE7D,iCAAiC;wBACjC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBAC5B,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAExB,YAAY;wBACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACrC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;wBAElC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;oBACD,OAAO,CAAC,EAAE,CAAC;wBACT,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,sCAAsC,CAAC;gBAC/C,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,SAAS,GAAoB,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;oBAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;oBAClC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBACH,8DAA8D;gBAC9D,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAExE,kCAAkC;gBAClC,MAAM,uBAAuB,GAAU,EAAE,CAAC;gBAC1C,SAAS,CAAC,OAAO,CAAC,CAAC,QAAkB,EAAE,EAAE;oBACvC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACpB,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;oBAClD,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC;gBAEpD,OAAO,CAAC;oBACN,QAAQ,EAAE,mBAAmB;oBAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IAC7C,KAAK,CAAC,4BAA4B,CACvC,UAAkB,EAClB,SAAiB,EACjB,KAAa,EACb,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,aAAa,UAAU,YAAY,CAAC;QAClE,MAAM,KAAK,CAAC,GAAG,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS;gBACT,KAAK;gBACL,MAAM;aACP,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IAC5B,KAAK,CAAC,oBAAoB,CAAC,UAAkB,EAAE,MAAc;QAClE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,aAAa,UAAU,SAAS,CAAC;QAC/D,MAAM,KAAK,CAAC,GAAG,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM;aACP,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IAClD,KAAK,CAAC,qBAAqB,CAAC,UAAkB,EAAE,GAAW,EAAE,UAAmB;QACrF,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,
|
|
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, `recallability:1:${dob}:absolute-year-${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/Util.js
CHANGED
package/dist/lib/Util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,oBAAoB,CAAC;QAC5B,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 'invalid-generation';\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EN.d.ts","sourceRoot":"","sources":["../../../src/lib/i18n/EN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,EAAG,YAAW,IAAI;IACV,aAAa,EAAE,gBAAgB;gBAA/B,aAAa,GAAE,gBAAqB;IA+CvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"EN.d.ts","sourceRoot":"","sources":["../../../src/lib/i18n/EN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,EAAG,YAAW,IAAI;IACV,aAAa,EAAE,gBAAgB;gBAA/B,aAAa,GAAE,gBAAqB;IA+CvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAiG/B"}
|
package/dist/lib/i18n/EN.js
CHANGED
|
@@ -118,21 +118,27 @@ export class EN {
|
|
|
118
118
|
case "in-x-seconds":
|
|
119
119
|
return "In __SECONDS__ seconds";
|
|
120
120
|
case "game-settings-p0":
|
|
121
|
-
return "
|
|
122
|
-
case "game-settings-
|
|
123
|
-
return "
|
|
121
|
+
return "This is how I want to play: ";
|
|
122
|
+
case "game-settings-p5-1":
|
|
123
|
+
return "Take my birth year into account (";
|
|
124
|
+
case "game-settings-p5-2":
|
|
125
|
+
return ") when selecting events.";
|
|
126
|
+
case "game-settings-p1-1":
|
|
127
|
+
return "give me a maximum of";
|
|
128
|
+
case "game-settings-p1-2":
|
|
129
|
+
return "events.";
|
|
124
130
|
case "game-settings-p2":
|
|
125
|
-
return "
|
|
131
|
+
return "Limit yourself to the period from ";
|
|
126
132
|
case "game-settings-p3":
|
|
127
|
-
return "
|
|
133
|
+
return " to ";
|
|
128
134
|
case "game-settings-p4":
|
|
129
|
-
return "
|
|
135
|
+
return ".";
|
|
130
136
|
case "game-introduction-p1":
|
|
131
|
-
return "
|
|
137
|
+
return "Welcome to the ultimate test of your historical knowledge!";
|
|
132
138
|
case "game-introduction-p2":
|
|
133
|
-
return "
|
|
139
|
+
return "Dive into history and challenge yourself and your friends to guess the years of fascinating events. From groundbreaking inventions to memorable moments, this game takes you on a journey through time.";
|
|
134
140
|
case "game-introduction-p3":
|
|
135
|
-
return "
|
|
141
|
+
return "Are you the master of chronology? Find out now!";
|
|
136
142
|
case "game-introduction-welcome":
|
|
137
143
|
return `Welcome to Guess The Year!`;
|
|
138
144
|
}
|
package/dist/lib/i18n/EN.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EN.js","sourceRoot":"","sources":["../../../src/lib/i18n/EN.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EN.js","sourceRoot":"","sources":["../../../src/lib/i18n/EN.ts"],"names":[],"mappings":"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","sourcesContent":["import { Category } from \"../Incident\";\nimport { IStringArrayHash } from \"../Util\";\nimport { i18n } from \"./i18n\";\n\nexport class EN implements i18n {\n constructor(public HintTemplates: IStringArrayHash = {}) {\n HintTemplates[Category.newsPresenter] = [\n \"__TITLE__ presented the eight o'clock news.\",\n ];\n HintTemplates[Category.tech] = [\n \"Tech news: __TITLE__.\",\n \"Tech enthusiasts were excited about '__TITLE__'.\",\n ];\n HintTemplates[Category.sports] = [\n \"Sports news: __TITLE__.\",\n \"Sports fans were talking about '__TITLE__'.\",\n ];\n HintTemplates[Category.tvShowOrSeries] = [\n \"We watched '__TITLE__' on television.\",\n ];\n HintTemplates[Category.newsItem] = [\n \"The newspaper also mentioned '__TITLE__' this year.\",\n \"'__TITLE__' was also in the news this year.\",\n ];\n HintTemplates[Category.cinemaMovie] = [\n \"The movie '__TITLE__' was playing in theaters.\",\n \"The movie '__TITLE__' was a blockbuster.\",\n \"The movie '__TITLE__' could be seen in cinemas.\",\n \"'__TITLE__' was on the silver screen.\",\n ];\n HintTemplates[Category.radioSong] = [\n \"The hit '__TRACK__' by __ARTIST__ was a frequently played tune on the radio.\",\n \"The song '__TRACK__' by __ARTIST__ was unavoidable on the radio.\",\n \"__ARTIST__'s '__TRACK__' was regularly heard on the radio.\",\n \"You couldn't miss '__TRACK__' by __ARTIST__ on the radio, it was played so often.\",\n \"'__TRACK__' by __ARTIST__ was a staple on the radio.\",\n \"At that time, '__TRACK__' by __ARTIST__ was a frequently heard radio hit.\",\n \"'__TRACK__' by __ARTIST__ was a radio favorite in this year.\",\n \"The radio stations broadcast '__TRACK__' by __ARTIST__.\",\n \"The song '__TRACK__' by __ARTIST__ enjoyed a lot of airplay on the radio.\",\n \"'__TRACK__' by __ARTIST__ was a frequently heard song on the radio stations.\",\n \"'__TRACK__' by __ARTIST__ became a radio classic.\",\n \"'__TRACK__' by __ARTIST__ was an unforgettable hit that dominated the radio.\",\n \"'__TRACK__' by __ARTIST__ was a frequently heard hit.\",\n \"The radio stations played '__TRACK__' by __ARTIST__ incessantly.\",\n \"'__TRACK__' by __ARTIST__ was a catchy song that you kept singing along to.\",\n \"The beat of '__TRACK__' by __ARTIST__ was irresistible.\",\n \"'__TRACK__' by __ARTIST__ had a unique sound that you wouldn't soon forget.\",\n \"You couldn't ignore '__TRACK__' by __ARTIST__.\",\n ];\n }\n\n translate(key: string): string {\n switch (key) {\n case \"year\":\n return \"year\";\n case \"start\":\n return \"start\";\n case \"new-game\":\n return \"Try again\";\n case \"end\":\n return \"You scored __SCORE__ of the __MAX_SCORE__ points. That is a score of __PERCENT__%\";\n case \"excellent\":\n return \"That is excellent!\";\n case \"very-good\":\n return \"That is very good!\";\n case \"good\":\n return \"That is good!\";\n case \"reasonable-good\":\n return \"That is reasonably good\";\n case \"reasonable\":\n return \"That is reasonable!\";\n case \"not-so-good\":\n return \"That is ok\";\n case \"not-good\":\n return \"That is not so good\";\n case \"bad\":\n return \"That is really bad :)\";\n case \"next-question\":\n return \"Next question\";\n case \"quit\":\n return \"Quit\";\n case \"answer-correct\":\n return \"Correct\";\n case \"answer-wrong\":\n return \"Unfortunately\";\n case \"question-number\":\n return \"Question\";\n case \"question-score\":\n return \"Score\";\n case \"total-score\":\n return \"Total score\";\n case \"show-hint\":\n return \"Show hint\";\n case \"used-hint-singular\":\n return \"You have used 1 hint\";\n case \"used-hint-plural\":\n return \"You have used __HINTS__ hints\";\n case \"number-points-singular\":\n return \"You scored 1 point for this question\";\n case \"number-points-plural\":\n return \"You scored __POINTS__ points for this question\";\n case \"correct-answer-was\":\n return \"You chose __WRONG__ but the correct answer was __CORRECT__\";\n case \"no-answer-correct-answer-was\":\n return \"You didn't answer, but the correct answer was __CORRECT__\";\n case \"game-name\":\n return \"Guessss The Year\";\n case \"game-call-to-action\":\n return \"Game on!\";\n case \"your-answer\":\n return \"My answer\";\n case \"your-feedback\":\n return \"comments\";\n case \"try-left\":\n return \"__TRIES__ try left\";\n case \"tries-left\":\n return \"__TRIES__ tries left\";\n case \"in-one-second\":\n return \"In __SECONDS__ second\";\n case \"in-x-seconds\":\n return \"In __SECONDS__ seconds\";\n case \"game-settings-p0\":\n return \"This is how I want to play: \"\n case \"game-settings-p5-1\":\n return \"Take my birth year into account (\"\n case \"game-settings-p5-2\":\n return \") when selecting events.\"\n case \"game-settings-p1-1\":\n return \"give me a maximum of\"\n case \"game-settings-p1-2\":\n return \"events.\"\n case \"game-settings-p2\":\n return \"Limit yourself to the period from \"\n case \"game-settings-p3\":\n return \" to \"\n case \"game-settings-p4\":\n return \".\"\n case \"game-introduction-p1\":\n return \"Welcome to the ultimate test of your historical knowledge!\"\n case \"game-introduction-p2\":\n return \"Dive into history and challenge yourself and your friends to guess the years of fascinating events. From groundbreaking inventions to memorable moments, this game takes you on a journey through time.\"\n case \"game-introduction-p3\":\n return \"Are you the master of chronology? Find out now!\"\n case \"game-introduction-welcome\":\n return `Welcome to Guess The Year!`\n }\n return key;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NL.d.ts","sourceRoot":"","sources":["../../../src/lib/i18n/NL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,EAAG,YAAW,IAAI;IACV,aAAa,EAAE,gBAAgB;gBAA/B,aAAa,GAAE,gBAAqB;IAmDvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"NL.d.ts","sourceRoot":"","sources":["../../../src/lib/i18n/NL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,EAAG,YAAW,IAAI;IACV,aAAa,EAAE,gBAAgB;gBAA/B,aAAa,GAAE,gBAAqB;IAmDvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAiG/B"}
|
package/dist/lib/i18n/NL.js
CHANGED
|
@@ -122,15 +122,21 @@ export class NL {
|
|
|
122
122
|
case "in-x-seconds":
|
|
123
123
|
return "In __SECONDS__ seconden";
|
|
124
124
|
case "game-settings-p0":
|
|
125
|
-
return "
|
|
126
|
-
case "game-settings-
|
|
127
|
-
return "
|
|
125
|
+
return "Zo wil ik het spelen: ";
|
|
126
|
+
case "game-settings-p5-1":
|
|
127
|
+
return "Houd rekening met mijn geboortejaar (";
|
|
128
|
+
case "game-settings-p5-2":
|
|
129
|
+
return ") bij de selectie van de gebeurenissen.";
|
|
130
|
+
case "game-settings-p1-1":
|
|
131
|
+
return "geef me maximaal";
|
|
132
|
+
case "game-settings-p1-2":
|
|
133
|
+
return "gebeurtenissen.";
|
|
128
134
|
case "game-settings-p2":
|
|
129
|
-
return "
|
|
135
|
+
return "Beperk je tot de periode van ";
|
|
130
136
|
case "game-settings-p3":
|
|
131
|
-
return "
|
|
137
|
+
return " tot ";
|
|
132
138
|
case "game-settings-p4":
|
|
133
|
-
return "
|
|
139
|
+
return ".";
|
|
134
140
|
case "game-introduction-p1":
|
|
135
141
|
return "Welkom bij de ultieme test van je historische kennis!";
|
|
136
142
|
case "game-introduction-p2":
|