guess-the-year-web-component 3.0.0 → 3.0.2
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/dist/guess-the-year.d.ts +1 -28
- package/dist/guess-the-year.d.ts.map +1 -1
- package/dist/guess-the-year.js +41 -246
- package/dist/guess-the-year.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/lib/ApiService.js +1 -1
- package/dist/lib/ApiService.js.map +1 -1
- package/dist/lib/Icon.d.ts +0 -2
- package/dist/lib/Icon.d.ts.map +1 -1
- package/dist/lib/Icon.js +0 -3
- package/dist/lib/Icon.js.map +1 -1
- package/dist/lib/Incident.d.ts.map +1 -1
- package/dist/lib/Incident.js +7 -6
- package/dist/lib/Incident.js.map +1 -1
- package/dist/lib/i18n/NL.d.ts.map +1 -1
- package/dist/lib/i18n/NL.js +4 -1
- package/dist/lib/i18n/NL.js.map +1 -1
- package/dist/main.js +37 -81
- package/package.json +3 -4
- package/src/guess-the-year.ts +44 -263
- package/src/index.html +1 -2
- package/src/lib/ApiService.ts +1 -1
- package/src/lib/Icon.ts +1 -5
- package/src/lib/Incident.ts +7 -6
- package/src/lib/i18n/NL.ts +4 -1
- package/todo.txt +6 -0
- package/dist/assets/logo.png +0 -0
|
@@ -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 { unsafeHTML } from \"lit/directives/unsafe-html.js\";\n// import { Task } from '@lit/task';\nimport dayjs from \"dayjs\";\nimport { Dayjs } from \"dayjs\";\n\nconst { setTimeout } = window;\n\nimport { Incident, Categories } from \"./lib/Incident\";\nimport { NoImageImg, RefreshIconSVG, SolutionIconSVG } from \"./lib/Icon\";\nimport { ApiService, ContentFeedback } from \"./lib/ApiService\";\nimport { Util } from \"./lib/Util\";\nimport { i18nFactory } from \"./lib/i18n/i18n\";\n\nimport { GameState } from \"./lib/enums\";\n\nimport stylesheet from \"./scss/main.scss\";\n\nimport { QuestionScoreController } from \"./lib/controller/scorecontroller\";\n\n// const GREEN = \"#07d207\";\n// const RED = \"#ec3737\";\n// const BLACK = \"#000\";\n\nconst SPLASH_DELAY: number = 3000;\nconst MIN_YEAR: number = 1950;\nconst MAX_YEAR: number = 2024;\nconst MAX_QUESTIONS: number = 10;\nconst HINT_COST: number = 2;\n\n@customElement(\"guess-the-year\")\nexport class GuessTheYear extends LitElement {\n private _startTime: Date = new Date();\n private _endTime: Date = new Date();\n // private _uuid = Math.random();\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.info([\"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.info([\"from\", \"to\", value]);\n return value.format(\"YYYY-MM-DD\");\n },\n },\n })\n from: Dayjs = dayjs(`${MIN_YEAR}-01-01`, \"YYYY-MM-DD\");\n\n @property({\n type: Dayjs,\n converter: {\n fromAttribute: (value: string) => {\n console.info([\"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.info([\"to\", \"to\", value]);\n return value.format(\"YYYY-MM-DD\");\n },\n },\n })\n to: Dayjs = dayjs(); // defaults to today\n\n @property({ type: String })\n limit: string = \"\";\n\n @property({ type: Boolean })\n shuffle: boolean = false;\n\n @property({ type: Boolean, attribute: \"show-duration\" })\n showDuration: boolean = false;\n\n @property({ type: Boolean, attribute: \"show-feedback\" })\n showFeedback: boolean = false;\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: Boolean, attribute: \"auto-focus\" })\n autoFocus: boolean = false;\n\n @property({ type: Number, attribute: \"hint-interval-length\" })\n hintIntervalSecs: number = 7;\n\n @property({ type: Number, attribute: \"max-hints\" })\n maxHints: number = 3;\n\n @property({ type: Number, attribute: \"max-tries\" })\n maxTries: number = -1;\n\n @property({ type: Number, attribute: \"number-of-questions\", reflect: true })\n numberOfQuestions: number = 10;\n private _numberOfQuestionsSeen: number = 0;\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 private _displaySolution: boolean = false;\n\n @state()\n private _answeredCorrectly: boolean = false;\n\n @state()\n private _tries: number = 0;\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 _intervalsPassed: number = 0;\n private i18n = i18nFactory(\"nl\");\n\n static override styles = css`\n ${stylesheet}\n `;\n\n // private _game_engine: Engine;\n\n constructor() {\n super();\n\n this._score0 = new QuestionScoreController(this, 30, 1000);\n\n // this._engine = new GameController(this);\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 // clearInterval(this._intervalHandler);\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 <img\n src=\"./assets/logo.png\"\n alt=\"logo\"\n />\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 _renderYearSelectOptions(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 = MIN_YEAR; i <= MAX_YEAR; i += 5) {\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 // TODO: add real content\n private renderGameIntro(): TemplateResult {\n console.info(\"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-p1\")}\n <select\n @change=\"${(event: any) => {\n this.numberOfQuestions = Number(event.target.value);\n }}\"\n >\n ${selectQuestionOptions}\n </select>\n ${this.i18n.translate(\"game-settings-p2\")}\n <select @change=\"${this._setFromDate}\">\n ${this._renderYearSelectOptions(this.from.format(\"YYYY\"))}\n </select>\n ${this.i18n.translate(\"game-settings-p3\")}\n <select @change=\"${this._setToDate}\">\n ${this._renderYearSelectOptions(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\n private _setFromDate(event: any): void {\n this.from = this.from.year(event.target.value);\n }\n\n private _setToDate(event: any): void {\n this.to = this.to.year(event.target.value);\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\"))}\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 // renders the optional image with the item\n private _renderIncidentImage(incident: Incident | undefined): TemplateResult {\n if (incident && incident.image) {\n return html`\n <div class=\"incident--image\">\n <img src=\"${incident.image}\" />\n </div>\n `;\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.info(\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.maxHints - 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.info(\"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 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 // clearInterval(this._scoreIntervalHandler);\n\n console.debug(\"renderGameEnd\");\n return html`\n ${this._renderHeader(\"The end!\")}\n <div class=\"guess-the-year-game-end\">${this.i18n.translate(\"end\")}</div>\n <button @click=\"${() => (this._renderState = GameState.SPLASH)}\">\n ${this.i18n.translate(\"new-game\")}\n </button>\n ${this._renderFooter()}\n `;\n }\n\n // private _incidentsStack = [];\n\n // private _totalScore: number = 0;\n\n private setupNewGame(): void {\n console.log(\"new game!\");\n\n console.info({\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._question.load(this.from.format('YYYY'), this.to.format('YYYY'));\n // this._question.init();\n\n this._loadQuestion();\n }\n\n private _resetStage(): void {\n // window.scrollTo(0, 0);\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._startTime = new Date();\n this._endTime = new Date();\n this._incident = response.incident;\n this.sources = response.sources;\n this._tries = this.maxTries;\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.info(\"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 renderRefreshButton(): TemplateResult {\n return html`<div class=\"refresh\" id=\"refresh\" @click=\"${this.setupNewGame}\">\n <span>${unsafeHTML(RefreshIconSVG)}</span>\n </div>`;\n }\n\n renderStopGameButton(): TemplateResult {\n return html`<div\n class=\"stop-game\"\n id=\"stop-game\"\n @click=\"${() => {\n this._displaySolution = true;\n }}\"\n >\n <span>${unsafeHTML(SolutionIconSVG)}</span>\n </div>`;\n }\n\n renderFeedbackPossibility(): TemplateResult {\n if (this.showFeedback) {\n return html`<div class=\"feedback-possibility\">\n <input\n type=\"text\"\n id=\"feedback\"\n size=\"15\"\n placeholder=\"${this.i18n.translate(\"your-feedback\")}\"\n />\n </div>`;\n } else {\n return html``;\n }\n }\n\n renderSubmitPossibility(): TemplateResult {\n return html`<div class=\"submit-possibility\">\n <input\n type=\"text\"\n id=\"answer\"\n size=\"15\"\n ?disabled=${this._displaySolution}\n placeholder=\"${this.i18n.translate(\"your-answer\")}\"\n />\n ${this.renderTries()}\n </div>`;\n }\n\n renderTries(): TemplateResult {\n const i18nKey = this._tries > 1 ? \"tries-left\" : \"try-left\";\n if (this._tries >= 0 && !this._displaySolution) {\n return html`<span class=\"tries\"\n >${this.i18n\n .translate(i18nKey)\n .replace(\"__TRIES__\", \"\" + this._tries)}</span\n >`;\n }\n return html``;\n }\n\n renderTheSolution(): TemplateResult {\n if (this._displaySolution) {\n return html`<div class=\"solution\">${this._solution}</div>\n ${this.renderTheDuration()} `;\n }\n return html``;\n }\n\n renderTheDuration(): TemplateResult {\n const duration = Math.round(\n new Date(this._endTime.getTime() - this._startTime.getTime()).getTime() /\n 1000,\n );\n const i18nKey = duration === 1 ? \"in-x-seconds\" : \"in-one-second\";\n if (this.showDuration && this._answeredCorrectly) {\n return html`<div class=\"timer\">\n ${this.i18n.translate(i18nKey).replace(\"__SECONDS__\", \"\" + duration)}\n </div>`;\n }\n return html``;\n }\n\n renderTiles(incident: Incident | undefined) {\n console.debug(\"renderTiles\");\n if (!incident) {\n return \"\";\n }\n return html`${this.renderTile(incident)}`;\n }\n\n private _tileShouldDisplayAnImage(incident: Incident): boolean {\n const hasImage = !!incident.image;\n const displayImages = !this.suppressImages;\n return hasImage && displayImages;\n }\n\n renderTile(incident: Incident): TemplateResult {\n console.debug(\"renderTile\");\n const tileContent: TemplateResult = this.renderTileContent(incident);\n if (this._tileShouldDisplayAnImage(incident)) {\n return html`<div class=\"guess-the-year-tile with-image\">\n ${tileContent}\n </div>`;\n }\n\n return html`<div class=\"guess-the-year-tile\">${tileContent}</div>`;\n }\n\n renderTileContent(incident: Incident): TemplateResult {\n console.debug(\"renderTileContent\");\n return html`<div class=\"guess-the-year-tile-content\">\n ${this.renderTileTitle(incident)} ${this.renderTileImage(incident)}\n ${this.renderTileTextContent(incident)}\n </div>`;\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 \"newsItem\":\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] || \"\"\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case \"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 \"cinemaMovie\":\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case \"tech\":\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case \"newsPresenter\":\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n case \"sports\":\n hint = (\n hintTemplates[Math.round(Math.random() * hintTemplates.length)] ||\n hintTemplates[0]\n ).replace(/__TITLE__/, hintIncident.title);\n break;\n }\n return hint;\n }\n\n renderHintTile(hint: Incident | undefined): TemplateResult {\n if (hint) {\n console.debug(\"renderHint\");\n return html`<div class=\"guess-the-year-hint-tile\">\n <h1 class=\"title\">\n Hint ${this._intervalsPassed} <br />\n ${this._generateHintText(hint)}\n </h1>\n ${this.renderTileTextContent(hint)}\n </div>`;\n }\n return html``;\n }\n\n renderTileTitle(incident: Incident): TemplateResult {\n console.debug(\"renderTileTitle\");\n if (incident.title) {\n return html`<h1 class=\"guess-the-year-tile-title\">${incident.title}</h1>`;\n }\n return html``;\n }\n\n renderTileImage(incident: Incident): TemplateResult {\n console.debug(\"renderTileImage\");\n if (this._tileShouldDisplayAnImage(incident)) {\n return html`<img\n @error=${(evt: Event) => {\n this._handleImageLoadError(evt, incident);\n }}\n src=${incident.image}\n />`;\n }\n return html``;\n }\n\n renderTileTextContent(incident: Incident): TemplateResult {\n console.debug(\"renderTileTextContent\");\n if (incident.text) {\n return html`<p class=\"hint-text\">${incident.text}</p>`;\n }\n return html``;\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 // private _incidentsTask: Task = new Task(this, {\n // task: async ([]) => {\n // console.debug('incidentsTask');\n // if (!this.loading) {\n // this.loading = true;\n // await this.setupNewGame();\n // this.loading = false;\n // }\n // },\n // args: () => [\n // this.country,\n // this.category,\n // this.emotion,\n // this.impact,\n // this.date,\n // this.from,\n // this.to,\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.info(`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":"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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 MIN_YEAR: number = 1950;\nconst MAX_YEAR: number = 2024;\nconst MAX_QUESTIONS: number = 10;\nconst HINT_COST: number = 2;\n\n@customElement(\"guess-the-year\")\nexport class GuessTheYear extends LitElement {\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(`${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(); // defaults to today\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 = 10;\n private _numberOfQuestionsSeen: number = 0;\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 _renderYearSelectOptions(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 = MIN_YEAR; i <= MAX_YEAR; i += 5) {\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-p1\")}\n <select\n @change=\"${(event: any) => {\n this.numberOfQuestions = Number(event.target.value);\n }}\"\n >\n ${selectQuestionOptions}\n </select>\n ${this.i18n.translate(\"game-settings-p2\")}\n <select @change=\"${this._setFromDate}\">\n ${this._renderYearSelectOptions(this.from.format(\"YYYY\"))}\n </select>\n ${this.i18n.translate(\"game-settings-p3\")}\n <select @change=\"${this._setToDate}\">\n ${this._renderYearSelectOptions(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\n private _setFromDate(event: any): void {\n this.from = this.from.year(event.target.value);\n }\n\n private _setToDate(event: any): void {\n this.to = this.to.year(event.target.value);\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 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 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 // clearInterval(this._scoreIntervalHandler);\n\n console.debug(\"renderGameEnd\");\n return html`\n ${this._renderHeader(\"The end!\")}\n <div class=\"guess-the-year-game-end\">${this.i18n.translate(\"end\")}</div>\n <button @click=\"${() => (this._renderState = GameState.SPLASH)}\">\n ${this.i18n.translate(\"new-game\")}\n </button>\n ${this._renderFooter()}\n `;\n }\n\n // private _incidentsStack = [];\n\n // private _totalScore: number = 0;\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._question.load(this.from.format('YYYY'), this.to.format('YYYY'));\n // this._question.init();\n\n this._loadQuestion();\n }\n\n private _resetStage(): void {\n // window.scrollTo(0, 0);\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.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/index.html
CHANGED
|
@@ -57,4 +57,4 @@
|
|
|
57
57
|
|
|
58
58
|
guess-the-year {
|
|
59
59
|
text-align: center;
|
|
60
|
-
}</style><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;500;600;700&display=swap" rel="stylesheet"/><script defer="defer" src="main.js"></script></head><body><section><div class="big-container"><guess-the-year
|
|
60
|
+
}</style><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;500;600;700&display=swap" rel="stylesheet"/><script defer="defer" src="main.js"></script></head><body><section><div class="big-container"><guess-the-year country="nl" category="newsItem" max-hints="3" report-broken-images no-image-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAKCAYAAADGmhxQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5wQMDCEDZE8l3wAAAAxpVFh0Q29tbWVudAAAAAAAvK6ymQAAABVJREFUOMtjYBgFo2AUjIJRMAooAQAGSgABkOHaHwAAAABJRU5ErkJggg=="></guess-the-year></div></section></body></html>
|
package/dist/lib/ApiService.js
CHANGED
|
@@ -69,7 +69,7 @@ export class ApiService {
|
|
|
69
69
|
sourcesFoundInIncidents[incident.source] = true;
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
|
-
console.
|
|
72
|
+
console.debug([incidents, sourcesFoundInIncidents]);
|
|
73
73
|
resolve({
|
|
74
74
|
incident: firstIncidentInList,
|
|
75
75
|
sources: Object.keys(sourcesFoundInIncidents),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiService.js","sourceRoot":"","sources":["../../src/lib/ApiService.ts"],"names":[],"mappings":"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
|
|
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 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 } 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 postIncidentQualityFeedback(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\nexport enum ContentFeedback {\n incorrect = \"incorrect\", // This content is not correct\n tooShort = \"tooShort\", // This content is too short\n tooLong = \"tooLong\", // This content is too long\n toneOfVoice = \"toneOfVoice\", // The tone of voice of this content should be improved\n missing = \"missing\", // This content should be created\n noMatch = \"noMatch\", // This content does not match with its sibling data\n badData = \"badData\", // This content contains bad data\n unknown = \"unknown\", // We did not expect this input...\n}\n"]}
|
package/dist/lib/Icon.d.ts
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export declare const RefreshIconSVG = "<svg fill=\"#000000\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 64 64\" id=\"Layer_1\" version=\"1.1\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g><path d=\"M34.606,41.895c-0.513,0-1.032-0.003-1.576-0.011c-2.62-0.037-5.881-0.084-7.229-3.524 c-0.815-2.081-0.641-4.854-0.513-6.881l0.047-0.792c0.029-0.552,0.502-0.983,1.051-0.947c0.552,0.029,0.976,0.499,0.947,1.051 l-0.049,0.814c-0.116,1.839-0.275,4.357,0.378,6.024c0.802,2.043,2.573,2.215,5.397,2.255c0.938,0.014,1.805,0.011,2.681,0.008 c0.681-0.003,1.37-0.004,2.104,0c0.553,0.004,0.997,0.455,0.993,1.007c-0.004,0.55-0.451,0.993-1,0.993c-0.002,0-0.005,0-0.007,0 c-0.729-0.004-1.41-0.004-2.084,0C35.366,41.893,34.988,41.895,34.606,41.895z\"/></g><g><path d=\"M29.796,34.047c-0.183,0-0.368-0.05-0.534-0.155c-1.047-0.662-2.657-1.685-3.481-2.225 c-0.462-0.303-0.59-0.923-0.287-1.385c0.303-0.46,0.921-0.591,1.385-0.287c0.816,0.536,2.415,1.549,3.454,2.207 c0.467,0.295,0.605,0.913,0.31,1.38C30.451,33.883,30.127,34.047,29.796,34.047z\"/></g><g><path d=\"M22.862,33.955c-0.331,0-0.655-0.164-0.846-0.465c-0.296-0.467-0.157-1.084,0.31-1.38c1.038-0.657,2.636-1.671,3.454-2.208 c0.462-0.304,1.081-0.173,1.385,0.287c0.303,0.462,0.175,1.082-0.287,1.385c-0.824,0.541-2.436,1.563-3.481,2.226 C23.23,33.905,23.045,33.955,22.862,33.955z\"/></g><g><path d=\"M37.685,34.209c-0.018,0-0.035,0-0.052-0.001c-0.552-0.028-0.977-0.499-0.948-1.05l0.049-0.823 c0.115-1.836,0.273-4.352-0.379-6.016c-0.8-2.042-2.572-2.215-5.396-2.256c-0.941-0.015-1.813-0.012-2.694-0.007 c-0.677,0.002-1.362,0.004-2.091,0c-0.552-0.004-0.997-0.454-0.993-1.007c0.004-0.55,0.45-0.993,1-0.993c0.002,0,0.004,0,0.007,0 c0.722,0.005,1.4,0.002,2.069,0c0.895-0.005,1.775-0.007,2.73,0.007c2.621,0.038,5.883,0.086,7.229,3.526 c0.815,2.076,0.641,4.848,0.514,6.87l-0.047,0.8C38.655,33.794,38.213,34.209,37.685,34.209z\"/></g><g><path d=\"M37.687,34.117c-0.188,0-0.379-0.053-0.548-0.164c-0.817-0.537-2.416-1.55-3.453-2.207 c-0.467-0.295-0.606-0.913-0.311-1.379c0.294-0.467,0.914-0.607,1.379-0.311c1.047,0.661,2.657,1.684,3.482,2.225 c0.462,0.303,0.59,0.923,0.287,1.385C38.332,33.958,38.013,34.117,37.687,34.117z\"/></g><g><path d=\"M37.689,34.209c-0.326,0-0.646-0.159-0.837-0.451c-0.303-0.462-0.175-1.082,0.287-1.385c0.824-0.54,2.435-1.562,3.48-2.225 c0.468-0.297,1.085-0.156,1.38,0.31c0.296,0.467,0.157,1.084-0.31,1.38c-1.038,0.657-2.637,1.671-3.453,2.207 C38.067,34.156,37.878,34.209,37.689,34.209z\"/></g></svg>";
|
|
2
|
-
export declare const SolutionIconSVG = "<svg fill=\"#000000\" viewBox=\"0 0 32 32\" enable-background=\"new 0 0 32 32\" id=\"Layer_3\" version=\"1.1\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g><path d=\"M20,16c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1s-0.448-1-1-1h-2C20.448,15,20,15.448,20,16z\"/><path d=\"M6,16c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1s-0.448-1-1-1H7C6.448,15,6,15.448,6,16z\"/><path d=\"M11,17c0,1.083,0.809,2.574,1.5,3.392V21.5c0,1.379,1.122,2.5,2.5,2.5s2.5-1.121,2.5-2.5v-1.108 C18.191,19.574,19,18.083,19,17c0-2.21-1.757-3.942-4-3.942S11,14.79,11,17z M15.5,21.5c0,0.275-0.224,0.5-0.5,0.5 s-0.5-0.225-0.5-0.5V21h1V21.5z M15,15.058c1.122,0,2,0.853,2,1.942c0,0.432-0.488,1.437-0.936,2h-2.127 C13.488,18.437,13,17.432,13,17C13,15.911,13.878,15.058,15,15.058z\"/><path d=\"M16,11V9c0-0.552-0.448-1-1-1s-1,0.448-1,1v2c0,0.552,0.448,1,1,1S16,11.552,16,11z\"/><path d=\"M19.95,10.293l-1.414,1.414c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293l1.414-1.414c0.391-0.391,0.391-1.023,0-1.414S20.34,9.902,19.95,10.293z\"/><path d=\"M10.05,10.293c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414l1.414,1.414c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293c0.391-0.391,0.391-1.023,0-1.414L10.05,10.293z\"/><path d=\"M27,8h1c0.352,0,0.678-0.185,0.858-0.486c0.181-0.302,0.189-0.676,0.023-0.986l-2.146-4c-0.349-0.649-1.414-0.649-1.763,0 l-2.146,4c-0.166,0.31-0.157,0.684,0.023,0.986C23.03,7.815,23.356,8,23.708,8H25v10c0,5.514-4.486,10-10,10S5,23.514,5,18V7 c0-0.552-0.448-1-1-1S3,6.448,3,7v11c0,6.617,5.383,12,12,12s12-5.383,12-12V8z M25.854,5.115L26.329,6h-0.949L25.854,5.115z\"/></g></svg>";
|
|
3
1
|
export declare const NoImageImg = "data:image/png;base64,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CBAgQIAAAQICBdcAAQIECBAgQIAAAQIECBAgkFlAoJCZTAUCBAgQIECAAAECBAgQIEBAoOAaIECAAAECBAgQIECAAAECBDILCBQyk6lAgAABAgQIECBAgAABAgQICBRcAwQIECBAgAABAgQIECBAgEBmAYFCZjIVCBAgQIAAAQIECBAgQIAAAYGCa4AAAQIECBAgQIAAAQIECBDILCBQyEymAgECBAgQIECAAAECBAgQICBQcA0QIECAAAECBAgQIECAAAECmQUECpnJVCBAgAABAgQIECBAgAABAgQECq4BAgQIECBAgAABAgQIECBAILOAQCEzmQoECBAgQIAAAQIECBAgQICAQME1QIAAAQIECBAgQIAAAQIECGQWEChkJlOBAAECBAgQIECAAAECBAgQECi4BggQIECAAAECBAgQIECAAIHMAgKFzGQqECBAgAABAgQIECBAgAABAgIF1wABAgQIECBAgAABAgQIECCQWUCgkJlMBQIECBAgQIAAAQIECBAgQECg4BogQIAAAQIECBAgQIAAAQIEMgsIFDKTqUCAAAECBAgQIECAAAECBAgIFFwDBAgQIECAAAECBAgQIECAQGYBgUJmMhUIECBAgAABAgQIECBAgAABgYJrgAABAgQIECBAgAABAgQIEMgsIFDITKYCAQIECBAgQIAAAQIECBAgIFBwDRAgQIAAAQIECBAgQIAAAQKZBQQKmclUIECAAAECBAgQIECAAAECBAQKrgECBAgQIECAAAECBAgQIEAgs4BAITOZCgQIECBAgAABAgQIECBAgIBAwTVAgAABAgQIECBAgAABAgQIZBYQKGQmU4EAAQIECBAgQIAAAQIECBAQKLgGCBAgQIAAAQIECBAgQIAAgcwCAoXMZCoQIECAAAECBAgQIECAAAECAgXXAAECBAgQIECAAAECBAgQIJBZQKCQmUwFAgQIECBAgAABAgQIECBAQKDgGiBAgAABAgQIECBAgAABAgQyCwgUMpOpQIAAAQIEyi/Qo3vnGDK4T/TdvHt069opNtqofbStqow2bdqU/2SK2OOqVasi/d+SpcvjnXc/jDdmz4+XXpkVs+e8HdXVNUXsSVMECBAgQIBAsQUECsUW1R4BAgQIECiSQMdNNoq99hgRB43dObbs1ysJD+oabrPa57p9zftvkikkW+3/JQFDxJy5b8fk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kDA97v/nM/Hgw89G+riDjQABAgQIEGgaAgKFpjEPzoIAAQIECNQLVFS0iU27dIytBvSOz4weGjslayxs3rtb/fHW8GFesuji40+8HA8/+ny8Mn12zHv7g2S9hOrWMHRjJECAAAECzUZAoNBspsqJEiBAgEBrE2iTvAaiXduqaJfctZAu2Dhs2wExoH/P6Nlj0+jQoX1UVVZF+qaI5r6tTIKCxYuXRfrmhhkz58azL8yM12fNi6VLlsey5Sti1apVzX2Izp8AAQIECLRIAYFCi5xWgyJAgAABAgQIECBAgAABAqUVECiU1lfrBAgQIECAAAECBAgQIECgRQoIFFrktBoUAQIECBAgQIAAAQIECBAorYBAobS+WidAgAABAgQIECBAgAABAi1SQKDQIqfVoAgQIECAAAECBAgQIECAQGkFBAql9dU6AQIECBAgQIAAAQIECBBokQIChRY5rQZFgAABAgQIECBAgAABAgRKKyBQKK2v1gkQIECAAAECBAgQIECAQIsUECi0yGk1KAIECBAgQIAAAQIECBAgUFoBgUJpfbVOgAABAgQIECBAgAABAgRapIBAoUVOq0ERIECAAAECBAgQIECAAIHSCggUSuurdQIECBAgQIAAAQIECBAg0CIFBAotcloNigABAgQIECBAgAABAgQIlFZAoFBaX60TIECAAAECBAgQIECAAIEWKSBQaJHTalAECBAgQIAAAQIECBAgQKC0AgKF0vpqnQABAgQIECBAgAABAgQItEiB/w8AAP//9n+T/QAAQABJREFU7Z0HnFXF2f8ftsAWWJalLB2WjgUQC2IEe1SIMfbYolGjJmo0mmp8E9/XkqLmn5jYFVvsvXeMQrDFjiK9LixlKQtb2MZ/5m4ubDn37sy555x77t3vfD6w9855Zs6c78w5d+Z3npnpVHLgRTuEAAEIQAACEIAABCAAAQhAAAIQgAAELAh0QlCwoIUpBCAAAQhAAAIQgAAEIAABCEAAAhECCAo0BAhAAAIQgAAEIAABCEAAAhCAAASsCSAoWCMjAQQgAAEIQAACEIAABCAAAQhAAAIICrQBCEAAAhCAAAQgAAEIQAACEIAABKwJIChYIyMBBCAAAQhAAAIQgAAEIAABCEAAAggKtAEIQAACEIAABCAAAQhAAAIQgAAErAkgKFgjIwEEIAABCEAAAhCAAAQgAAEI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";
|
|
4
2
|
//# sourceMappingURL=Icon.d.ts.map
|
package/dist/lib/Icon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/lib/Icon.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/lib/Icon.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,uqrCAC+orC,CAAC"}
|
package/dist/lib/Icon.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
// Thanks https://pictogrammers.com/
|
|
2
|
-
export const RefreshIconSVG = '<svg fill="#000000" viewBox="0 0 50 50" enable-background="new 0 0 64 64" id="Layer_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M34.606,41.895c-0.513,0-1.032-0.003-1.576-0.011c-2.62-0.037-5.881-0.084-7.229-3.524 c-0.815-2.081-0.641-4.854-0.513-6.881l0.047-0.792c0.029-0.552,0.502-0.983,1.051-0.947c0.552,0.029,0.976,0.499,0.947,1.051 l-0.049,0.814c-0.116,1.839-0.275,4.357,0.378,6.024c0.802,2.043,2.573,2.215,5.397,2.255c0.938,0.014,1.805,0.011,2.681,0.008 c0.681-0.003,1.37-0.004,2.104,0c0.553,0.004,0.997,0.455,0.993,1.007c-0.004,0.55-0.451,0.993-1,0.993c-0.002,0-0.005,0-0.007,0 c-0.729-0.004-1.41-0.004-2.084,0C35.366,41.893,34.988,41.895,34.606,41.895z"/></g><g><path d="M29.796,34.047c-0.183,0-0.368-0.05-0.534-0.155c-1.047-0.662-2.657-1.685-3.481-2.225 c-0.462-0.303-0.59-0.923-0.287-1.385c0.303-0.46,0.921-0.591,1.385-0.287c0.816,0.536,2.415,1.549,3.454,2.207 c0.467,0.295,0.605,0.913,0.31,1.38C30.451,33.883,30.127,34.047,29.796,34.047z"/></g><g><path d="M22.862,33.955c-0.331,0-0.655-0.164-0.846-0.465c-0.296-0.467-0.157-1.084,0.31-1.38c1.038-0.657,2.636-1.671,3.454-2.208 c0.462-0.304,1.081-0.173,1.385,0.287c0.303,0.462,0.175,1.082-0.287,1.385c-0.824,0.541-2.436,1.563-3.481,2.226 C23.23,33.905,23.045,33.955,22.862,33.955z"/></g><g><path d="M37.685,34.209c-0.018,0-0.035,0-0.052-0.001c-0.552-0.028-0.977-0.499-0.948-1.05l0.049-0.823 c0.115-1.836,0.273-4.352-0.379-6.016c-0.8-2.042-2.572-2.215-5.396-2.256c-0.941-0.015-1.813-0.012-2.694-0.007 c-0.677,0.002-1.362,0.004-2.091,0c-0.552-0.004-0.997-0.454-0.993-1.007c0.004-0.55,0.45-0.993,1-0.993c0.002,0,0.004,0,0.007,0 c0.722,0.005,1.4,0.002,2.069,0c0.895-0.005,1.775-0.007,2.73,0.007c2.621,0.038,5.883,0.086,7.229,3.526 c0.815,2.076,0.641,4.848,0.514,6.87l-0.047,0.8C38.655,33.794,38.213,34.209,37.685,34.209z"/></g><g><path d="M37.687,34.117c-0.188,0-0.379-0.053-0.548-0.164c-0.817-0.537-2.416-1.55-3.453-2.207 c-0.467-0.295-0.606-0.913-0.311-1.379c0.294-0.467,0.914-0.607,1.379-0.311c1.047,0.661,2.657,1.684,3.482,2.225 c0.462,0.303,0.59,0.923,0.287,1.385C38.332,33.958,38.013,34.117,37.687,34.117z"/></g><g><path d="M37.689,34.209c-0.326,0-0.646-0.159-0.837-0.451c-0.303-0.462-0.175-1.082,0.287-1.385c0.824-0.54,2.435-1.562,3.48-2.225 c0.468-0.297,1.085-0.156,1.38,0.31c0.296,0.467,0.157,1.084-0.31,1.38c-1.038,0.657-2.637,1.671-3.453,2.207 C38.067,34.156,37.878,34.209,37.689,34.209z"/></g></svg>';
|
|
3
|
-
export const SolutionIconSVG = '<svg fill="#000000" viewBox="0 0 32 32" enable-background="new 0 0 32 32" id="Layer_3" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M20,16c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1s-0.448-1-1-1h-2C20.448,15,20,15.448,20,16z"/><path d="M6,16c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1s-0.448-1-1-1H7C6.448,15,6,15.448,6,16z"/><path d="M11,17c0,1.083,0.809,2.574,1.5,3.392V21.5c0,1.379,1.122,2.5,2.5,2.5s2.5-1.121,2.5-2.5v-1.108 C18.191,19.574,19,18.083,19,17c0-2.21-1.757-3.942-4-3.942S11,14.79,11,17z M15.5,21.5c0,0.275-0.224,0.5-0.5,0.5 s-0.5-0.225-0.5-0.5V21h1V21.5z M15,15.058c1.122,0,2,0.853,2,1.942c0,0.432-0.488,1.437-0.936,2h-2.127 C13.488,18.437,13,17.432,13,17C13,15.911,13.878,15.058,15,15.058z"/><path d="M16,11V9c0-0.552-0.448-1-1-1s-1,0.448-1,1v2c0,0.552,0.448,1,1,1S16,11.552,16,11z"/><path d="M19.95,10.293l-1.414,1.414c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293l1.414-1.414c0.391-0.391,0.391-1.023,0-1.414S20.34,9.902,19.95,10.293z"/><path d="M10.05,10.293c-0.391-0.391-1.023-0.391-1.414,0s-0.391,1.023,0,1.414l1.414,1.414c0.195,0.195,0.451,0.293,0.707,0.293 s0.512-0.098,0.707-0.293c0.391-0.391,0.391-1.023,0-1.414L10.05,10.293z"/><path d="M27,8h1c0.352,0,0.678-0.185,0.858-0.486c0.181-0.302,0.189-0.676,0.023-0.986l-2.146-4c-0.349-0.649-1.414-0.649-1.763,0 l-2.146,4c-0.166,0.31-0.157,0.684,0.023,0.986C23.03,7.815,23.356,8,23.708,8H25v10c0,5.514-4.486,10-10,10S5,23.514,5,18V7 c0-0.552-0.448-1-1-1S3,6.448,3,7v11c0,6.617,5.383,12,12,12s12-5.383,12-12V8z M25.854,5.115L26.329,6h-0.949L25.854,5.115z"/></g></svg>';
|
|
4
1
|
export const NoImageImg = "data:image/png;base64,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CBAgQIAAAQICBdcAAQIECBAgQIAAAQIECBAgkFlAoJCZTAUCBAgQIECAAAECBAgQIEBAoOAaIECAAAECBAgQIECAAAECBDILCBQyk6lAgAABAgQIECBAgAABAgQICBRcAwQIECBAgAABAgQIECBAgEBmAYFCZjIVCBAgQIAAAQIECBAgQIAAAYGCa4AAAQIECBAgQIAAAQIECBDILCBQyEymAgECBAgQIECAAAECBAgQICBQcA0QIECAAAECBAgQIECAAAECmQUECpnJVCBAgAABAgQIECBAgAABAgQECq4BAgQIECBAgAABAgQIECBAILOAQCEzmQoECBAgQIAAAQIECBAgQICAQME1QIAAAQIECBAgQIAAAQIECGQWEChkJlOBAAECBAgQIECAAAECBAgQECi4BggQIECAAAECBAgQIECAAIHMAgKFzGQqECBAgAABAgQIECBAgAABAgIF1wABAgQIECBAgAABAgQIECCQWUCgkJlMBQIECBAgQIAAAQIECBAgQECg4BogQIAAAQIECBAgQIAAAQIEMgsIFDKTqUCAAAECBAgQIECAAAECBAgIFFwDBAgQIECAAAECBAgQIECAQGYBgUJmMhUIECBAgAABAgQIECBAgAABgYJrgAABAgQIECBAgAABAgQIEMgsIFDITKYCAQIECBAgQIAAAQIECBAgIFBwDRAgQIAAAQIECBAgQIAAAQKZBQQKmclUIECAAAECBAgQIECAAAECBAQKrgECBAgQIECAAAECBAgQIEAgs4BAITOZCgQIECBAgAABAgQIECBAgIBAwTVAgAABAgQIECBAgAABAgQIZBYQKGQmU4EAAQIECBAgQIAAAQIECBAQKLgGCBAgQIAAAQIECBAgQIAAgcwCAoXMZCoQIECAAAECBAgQIECAAAECAgXXAAECBAgQIECAAAECBAgQIJBZQKCQmUwFAgQIECBAgAABAgQIECBAQKDgGiBAgAABAgQIECBAgAABAgQyCwgUMpOpQIAAAQIEyi/Qo3vnGDK4T/TdvHt069opNtqofbStqow2bdqU/2SK2OOqVasi/d+SpcvjnXc/jDdmz4+XXpkVs+e8HdXVNUXsSVMECBAgQIBAsQUECsUW1R4BAgQIECiSQMdNNoq99hgRB43dObbs1ysJD+oabrPa57p9zftvkikkW+3/JQFDxJy5b8fk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kDA97v/nM/Hgw89G+riDjQABAgQIEGgaAgKFpjEPzoIAAQIECNQLVFS0iU27dIytBvSOz4weGjslayxs3rtb/fHW8GFesuji40+8HA8/+ny8Mn12zHv7g2S9hOrWMHRjJECAAAECzUZAoNBspsqJEiBAgEBrE2iTvAaiXduqaJfctZAu2Dhs2wExoH/P6Nlj0+jQoX1UVVZF+qaI5r6tTIKCxYuXRfrmhhkz58azL8yM12fNi6VLlsey5Sti1apVzX2Izp8AAQIECLRIAYFCi5xWgyJAgAABAgQIECBAgAABAqUVECiU1lfrBAgQIECAAAECBAgQIECgRQoIFFrktBoUAQIECBAgQIAAAQIECBAorYBAobS+WidAgAABAgQIECBAgAABAi1SQKDQIqfVoAgQIECAAAECBAgQIECAQGkFBAql9dU6AQIECBAgQIAAAQIECBBokQIChRY5rQZFgAABAgQIECBAgAABAgRKKyBQKK2v1gkQIECAAAECBAgQIECAQIsUECi0yGk1KAIECBAgQIAAAQIECBAgUFoBgUJpfbVOgAABAgQIECBAgAABAgRapIBAoUVOq0ERIECAAAECBAgQIECAAIHSCggUSuurdQIECBAgQIAAAQIECBAg0CIFBAotcloNigABAgQIECBAgAABAgQIlFZAoFBaX60TIECAAAECBAgQIECAAIEWKSBQaJHTalAECBAgQIAAAQIECBAgQKC0AgKF0vpqnQABAgQIECBAgAABAgQItEiB/w8AAP//9n+T/QAAQABJREFU7Z0HnFXF2f8ftsAWWJalLB2WjgUQC2IEe1SIMfbYolGjJmo0mmp8E9/XkqLmn5jYFVvsvXeMQrDFjiK9LixlKQtb2MZ/5m4ubDn37sy555x77t3vfD6w9855Zs6c78w5d+Z3npnpVHLgRTuEAAEIQAACEIAABCAAAQhAAAIQgAAELAh0QlCwoIUpBCAAAQhAAAIQgAAEIAABCEAAAhECCAo0BAhAAAIQgAAEIAABCEAAAhCAAASsCSAoWCMjAQQgAAEIQAACEIAABCAAAQhAAAIICrQBCEAAAhCAAAQgAAEIQAACEIAABKwJIChYIyMBBCAAAQhAAAIQgAAEIAABCEAAAggKtAEIQAACEIAABCAAAQhAAAIQgAAErAkgKFgjIwEEIAABCEAAAhCAAAQgAAEI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";
|
|
5
2
|
//# sourceMappingURL=Icon.js.map
|