{"version":3,"file":"chunk.2491.1ae223b3ed32c5f0f8f3.2a33fe62.js","mappings":"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","sources":["webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/states.js","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/commits/next.js","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/commits/start.js","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Intro.jsx","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Answer.jsx","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Question.jsx","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/components/Finish.jsx","webpack:///./app/assets/javascripts/site/widgets/ArticleQuizWidget/index.jsx","webpack:///./app/assets/javascripts/site/VDOMComponents/HTMLContent.tsx"],"sourcesContent":["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","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"],"names":["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","h","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","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","_default","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","apply","arguments","handleRef","el","setTimeout","connect","DOMComponent","key","value","ref","this","dangerouslySetInnerHTML","__html","children","Component"],"sourceRoot":""}