{"version":3,"file":"chunk.2491.5886d1287cf1f3976b2e.67d6b390.js","mappings":"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","sources":["webpack:///../jarvis/app/assets/javascripts/site/VDOMComponents/HTMLContent.tsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/states.js","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/commits/next.js","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/commits/start.js","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Intro.jsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Answer.jsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Question.jsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Finish.jsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/ArticleQuizWidget/index.jsx"],"sourcesContent":["import { h, Component } from 'preact';\nimport { connect } from 'core/services/Controller';\nimport DOMComponent from 'core/services/DOMComponent';\nexport default class extends Component {\n constructor() {\n super(...arguments);\n this.handleRef = (el) => {\n if (el) {\n setTimeout(() => {\n connect(el);\n DOMComponent.connect(el); // TODO: remove when rewrite all dom components\n });\n }\n };\n }\n render() {\n return h(\"div\", { ref: this.handleRef, dangerouslySetInnerHTML: { __html: this.props.children } });\n }\n}\n","export const Intro = 'STATE_INTRO'\nexport const Question = 'STATE_QUESTION'\nexport const Finish = 'STATE_FINISH'\n","import * as states from '../states'\n\nconst toNextQuestion = state => ({ ...state,\n currentState: states.Question,\n currentQuestionIndex: state.currentQuestionIndex + 1\n})\n\nconst toFinish = state => ({ ...state,\n currentState: states.Finish\n})\n\nconst incrementScore = (state, answer) => ({ ...state,\n currentScore: state.currentScore + answer.score\n})\n\nconst hasNextQuestion = state => {\n return state.currentQuestionIndex < state.questions.length - 1\n}\n\nexport default function COMMIT_NEXT(state, { question: _, answer }) {\n state = incrementScore(state, answer)\n\n if (hasNextQuestion(state)) {\n state = toNextQuestion(state)\n } else {\n state = toFinish(state)\n }\n\n return state\n}\n","import * as states from '../states'\n\nexport default function COMMIT_START(state) {\n return { ...state,\n currentState: states.Question,\n currentQuestionIndex: 0,\n currentScore: 0\n }\n}\n","import { h, createVDOMComponent } from 'core/services/VDOM'\n\nimport COMMIT_START from '../commits/start'\n\nfunction Intro(self) {\n let { store } = self.getContext()\n\n let handleStart = () => {\n store.commit(COMMIT_START)\n }\n\n let render = ({ quiz }) => {\n return
\n {quiz.logoUrl && (\n \n )}\n\n
{quiz.title}
\n
{quiz.description}
\n
Начать тест
\n
\n }\n\n return { render }\n}\n\nexport default createVDOMComponent(Intro)\n","import { h } from 'core/services/VDOM'\n\nimport htmlClassNames from 'core/utils/htmlClassNames'\n\nexport default function Answer({ answer, onAnswer }) {\n return (\n \n
\n {answer.text}\n
\n\n
\n
\n {answer.percentage}\n
\n
\n\n
\n {answer.comment}\n
\n \n )\n}\n","import { h, createVDOMComponent } from 'core/services/VDOM'\n\nimport COMMIT_NEXT from '../commits/next'\n\nimport Answer from './Answer'\n\nimport htmlClassNames from 'core/utils/htmlClassNames'\n\nfunction Question(self) {\n let { store } = self.getContext()\n\n let handleNext = () => {\n let { question } = self.getProps()\n\n let { activeAnswer } = self.getState()\n\n store.commit(COMMIT_NEXT, { question, answer: activeAnswer })\n }\n\n let handleAnswer = answer => () => {\n self.setState(() => ({ activeAnswer: answer }))\n }\n\n let getQuestionsCount = () => {\n let { state } = self.getProps()\n\n return state.questions.length\n }\n\n let getQuestionNumber = () => {\n let { questionIndex } = self.getProps()\n\n return questionIndex + 1\n }\n\n let hasActiveAnswer = () => {\n let { activeAnswer } = self.getState()\n\n return !!activeAnswer\n }\n\n // @TODO поменять структуру данных ответов в будущем\n\n let getAnswers = () => {\n let { question } = self.getProps()\n\n return question.answers.map(answer => ({ ...answer,\n isActive: isActiveAnswer(answer)\n }))\n }\n\n // @TODO избавиться от локального стейта, а то.... плохо будет\n\n let isActiveAnswer = answer => {\n let { activeAnswer } = self.getState()\n\n return activeAnswer && activeAnswer.id === answer.id\n }\n\n let componentWillReceiveProps = nextProps => {\n let oldProps = self.getProps()\n\n if (oldProps.questionIndex !== nextProps.questionIndex) {\n self.setState({ activeAnswer: null })\n }\n }\n\n let render = ({ question }) => {\n return (\n \n
\n {question.title}\n\n
\n {getQuestionNumber()}\n\n {getQuestionsCount()}\n
\n
\n\n
{question.description}
\n\n {question.logoUrl && (\n \n )}\n\n
    \n {getAnswers().map(answer =>\n \n )}\n
\n\n \n Продолжить\n \n \n )\n }\n\n return { render, componentWillReceiveProps }\n}\n\nexport default createVDOMComponent(Question)\n","import { h, createVDOMComponent } from 'core/services/VDOM'\n\nimport COMMIT_START from '../commits/start'\n\nimport HTMLContent from 'site/VDOMComponents/HTMLContent'\n\nfunction ShareBtn({ type, url }) {\n return (\n \n {`\n \n Share\n \n `}\n \n )\n}\n\nfunction Finish(self) {\n let { store } = self.getContext()\n\n let handleStart = () => {\n store.commit(COMMIT_START)\n }\n\n let render = ({ state, quiz, result }) => {\n let shareUrl = `${state.baseResultUrl}/${result.id}`\n\n return
\n {/*\n Да, здесь специально выводится обложка теста, а не картинка результата.\n Данное решение было сделано по просьбе Аделии!!!\n @TODO перевести на английский, чтоб было понятнее\n */}\n \n\n
\n {result.title}\n
\n\n
\n {state.currentScore}\n
\n\n
\n {result.description}\n
\n\n
\n
\n Расскажем друзьям?\n
\n\n
\n \n \n \n
\n
\n\n \n Пройти тест еще раз\n
\n \n }\n\n return { render }\n}\n\nexport default createVDOMComponent(Finish)\n","import { createVDOMRenderer, h } from 'core/services/VDOM'\nimport Store, { Provider } from 'core/services/Store'\n\nimport COMMIT_NEXT from './commits/next'\nimport COMMIT_START from './commits/start'\n\nimport * as states from './states'\n\nimport Intro from './components/Intro'\nimport Question from './components/Question'\nimport Finish from './components/Finish'\n\nexport function ArticleQuizWidget($widget, {\n props: {\n quiz,\n baseResultUrl\n },\n\n callbacks: {\n CALLBACK_START = () => {},\n CALLBACK_ANSWER = () => {},\n }\n}) {\n let store = Store({\n props: {\n initialState: {\n baseResultUrl: baseResultUrl,\n currentState: states.Intro,\n currentQuestionIndex: 0,\n currentScore: 0,\n quiz: quiz,\n results: quiz.results,\n questions: quiz.questions,\n }\n },\n\n callbacks: {\n CALLBACK_AFTER_COMMIT: (_state, commitFunc, [payload]) => {\n renderer.render()\n\n if (commitFunc === COMMIT_START) {\n CALLBACK_START()\n }\n\n if (commitFunc === COMMIT_NEXT) {\n CALLBACK_ANSWER(payload.question, payload.answer)\n }\n }\n }\n })\n\n let getCurrentQuestion = state => {\n return state.questions[state.currentQuestionIndex]\n }\n\n let getCurrentResult = state => {\n return state.results.find(r => r.scoreMin <= state.currentScore)\n }\n\n let renderer = createVDOMRenderer($widget[0], () => {\n let state = store.getState()\n\n return \n
\n {state.currentState === states.Intro && (\n \n )}\n\n {state.currentState === states.Question && (\n \n )}\n\n {state.currentState === states.Finish && (\n \n )}\n
\n
\n })\n\n renderer.render()\n\n return {\n destroy() {\n renderer.destroy()\n }\n }\n}\n"],"names":["_default","_Component","_inherits","_super","_this","_classCallCheck","apply","arguments","handleRef","el","setTimeout","connect","DOMComponent","key","value","h","ref","this","dangerouslySetInnerHTML","__html","props","children","Component","Intro","Question","Finish","toNextQuestion","state","_objectSpread","currentState","states","currentQuestionIndex","toFinish","incrementScore","answer","currentScore","score","hasNextQuestion","questions","length","COMMIT_NEXT","_ref","question","COMMIT_START","createVDOMComponent","self","store","getContext","handleStart","commit","render","quiz","class","logoUrl","style","concat","title","description","onClick","Answer","onAnswer","htmlClassNames","isActive","isCorrect","text","percentage","comment","handleNext","getProps","activeAnswer","getState","handleAnswer","setState","isActiveAnswer","id","questionIndex","src","answers","map","componentWillReceiveProps","nextProps","ShareBtn","type","url","HTMLContent","hydrate","JSON","stringify","_ref2","result","shareUrl","baseResultUrl","ArticleQuizWidget","$widget","_ref$props","_ref$callbacks","callbacks","_ref$callbacks$CALLBA","CALLBACK_START","_ref$callbacks$CALLBA2","CALLBACK_ANSWER","Store","initialState","results","CALLBACK_AFTER_COMMIT","_state","commitFunc","payload","renderer","getCurrentQuestion","getCurrentResult","find","r","scoreMin","createVDOMRenderer","Provider","destroy"],"sourceRoot":""}