@coorpacademy/components 10.30.7 → 10.30.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/es/atom/choice/index.native.js +4 -2
  2. package/es/atom/choice/index.native.js.map +1 -1
  3. package/es/atom/html/index.native.js +3 -1
  4. package/es/atom/html/index.native.js.map +1 -1
  5. package/es/atom/input-search/index.d.ts.map +1 -1
  6. package/es/atom/input-search/index.js +1 -0
  7. package/es/atom/input-search/index.js.map +1 -1
  8. package/es/atom/review-presentation/index.native.js +60 -56
  9. package/es/atom/review-presentation/index.native.js.map +1 -1
  10. package/es/hoc/modal/select/index.native.js +3 -3
  11. package/es/hoc/modal/select/index.native.js.map +1 -1
  12. package/es/hoc/modal/select-item/index.native.js +17 -13
  13. package/es/hoc/modal/select-item/index.native.js.map +1 -1
  14. package/es/hoc/touchable/index.native.js +2 -2
  15. package/es/hoc/touchable/index.native.js.map +1 -1
  16. package/es/molecule/dashboard/cards-list/index.js +7 -3
  17. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  18. package/es/molecule/questions/free-text/index.native.js +30 -26
  19. package/es/molecule/questions/free-text/index.native.js.map +1 -1
  20. package/es/molecule/questions/mobile/slider/index.native.js +5 -3
  21. package/es/molecule/questions/mobile/slider/index.native.js.map +1 -1
  22. package/es/molecule/questions/mobile/template/index.native.js +3 -1
  23. package/es/molecule/questions/mobile/template/index.native.js.map +1 -1
  24. package/es/organism/review-congrats/index.js +3 -1
  25. package/es/organism/review-congrats/index.js.map +1 -1
  26. package/es/organism/review-slide/index.native.js +20 -16
  27. package/es/organism/review-slide/index.native.js.map +1 -1
  28. package/lib/atom/choice/index.native.js +4 -2
  29. package/lib/atom/choice/index.native.js.map +1 -1
  30. package/lib/atom/html/index.native.js +3 -1
  31. package/lib/atom/html/index.native.js.map +1 -1
  32. package/lib/atom/input-search/index.d.ts.map +1 -1
  33. package/lib/atom/input-search/index.js +1 -0
  34. package/lib/atom/input-search/index.js.map +1 -1
  35. package/lib/atom/review-presentation/index.native.js +60 -56
  36. package/lib/atom/review-presentation/index.native.js.map +1 -1
  37. package/lib/hoc/modal/select/index.native.js +3 -3
  38. package/lib/hoc/modal/select/index.native.js.map +1 -1
  39. package/lib/hoc/modal/select-item/index.native.js +17 -13
  40. package/lib/hoc/modal/select-item/index.native.js.map +1 -1
  41. package/lib/hoc/touchable/index.native.js +2 -2
  42. package/lib/hoc/touchable/index.native.js.map +1 -1
  43. package/lib/molecule/dashboard/cards-list/index.js +7 -3
  44. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  45. package/lib/molecule/questions/free-text/index.native.js +30 -26
  46. package/lib/molecule/questions/free-text/index.native.js.map +1 -1
  47. package/lib/molecule/questions/mobile/slider/index.native.js +5 -3
  48. package/lib/molecule/questions/mobile/slider/index.native.js.map +1 -1
  49. package/lib/molecule/questions/mobile/template/index.native.js +3 -1
  50. package/lib/molecule/questions/mobile/template/index.native.js.map +1 -1
  51. package/lib/organism/review-congrats/index.js +3 -1
  52. package/lib/organism/review-congrats/index.js.map +1 -1
  53. package/lib/organism/review-slide/index.native.js +20 -16
  54. package/lib/organism/review-slide/index.native.js.map +1 -1
  55. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","rightArrowView","right","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType color={dark} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {title, showMore, cards, onShowMore, dataName, contentType} = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft color={dark} className={style.left} width={10} height={10} />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight color={dark} className={style.right} width={10} height={10} />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","rightArrowView","right","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType color={dark} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {title, showMore, cards, onShowMore, dataName, contentType} = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft color={dark} className={style.left} width={10} height={10} />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight color={dark} className={style.right} width={10} height={10} />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
@@ -6,32 +6,36 @@ import { useTemplateContext } from '../../../template/app-review/template-contex
6
6
  import { ANALYTICS_EVENT_TYPE } from '../../../variables/analytics';
7
7
  import { BOX_STYLE } from '../../../variables/shadow';
8
8
 
9
- const createStyleSheet = (brandTheme, theme) => StyleSheet.create({
10
- // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread
11
- input: _extends({
12
- padding: theme.spacing.tiny,
13
- borderColor: theme.colors.gray.lightMedium,
14
- borderRadius: theme.radius.regular,
15
- minWidth: 175,
16
- marginHorizontal: 12,
17
- paddingVertical: 16
18
- }, BOX_STYLE, {
19
- backgroundColor: theme.colors.white
20
- }),
21
- text: {
22
- borderColor: brandTheme?.colors?.primary,
23
- color: brandTheme?.colors?.primary || theme.colors.gray.medium,
24
- fontWeight: theme.fontWeight.bold,
25
- fontSize: theme.fontSize.regular,
26
- textAlign: 'center'
27
- },
28
- spaced: {
29
- paddingVertical: theme.spacing.tiny
30
- },
31
- fullWitdh: {
32
- width: '100%'
33
- }
34
- });
9
+ const createStyleSheet = (brandTheme, theme) => {
10
+ var _brandTheme$colors, _brandTheme$colors2;
11
+
12
+ return StyleSheet.create({
13
+ // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread
14
+ input: _extends({
15
+ padding: theme.spacing.tiny,
16
+ borderColor: theme.colors.gray.lightMedium,
17
+ borderRadius: theme.radius.regular,
18
+ minWidth: 175,
19
+ marginHorizontal: 12,
20
+ paddingVertical: 16
21
+ }, BOX_STYLE, {
22
+ backgroundColor: theme.colors.white
23
+ }),
24
+ text: {
25
+ borderColor: brandTheme == null ? void 0 : (_brandTheme$colors = brandTheme.colors) == null ? void 0 : _brandTheme$colors.primary,
26
+ color: (brandTheme == null ? void 0 : (_brandTheme$colors2 = brandTheme.colors) == null ? void 0 : _brandTheme$colors2.primary) || theme.colors.gray.medium,
27
+ fontWeight: theme.fontWeight.bold,
28
+ fontSize: theme.fontSize.regular,
29
+ textAlign: 'center'
30
+ },
31
+ spaced: {
32
+ paddingVertical: theme.spacing.tiny
33
+ },
34
+ fullWitdh: {
35
+ width: '100%'
36
+ }
37
+ });
38
+ };
35
39
 
36
40
  const logEvent = (eventName, analytics, questionType) => {
37
41
  analytics && analytics.logEvent(eventName, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["View","StyleSheet","TextInput","React","useState","useEffect","useCallback","useTemplateContext","ANALYTICS_EVENT_TYPE","BOX_STYLE","createStyleSheet","brandTheme","theme","create","input","padding","spacing","tiny","borderColor","colors","gray","lightMedium","borderRadius","radius","regular","minWidth","marginHorizontal","paddingVertical","backgroundColor","white","text","primary","color","medium","fontWeight","bold","fontSize","textAlign","spaced","fullWitdh","width","logEvent","eventName","analytics","questionType","id","FreeText","props","templateContext","styleSheet","setStylesheet","translations","PLACEHOLDER_COLOR","fullWidth","testID","onChange","isDisabled","value","handleFocus","INPUT_FOCUS","handleBlur","INPUT_BLUR","_stylesheet","typeHere"],"sources":["../../../../src/molecule/questions/free-text/index.native.tsx"],"sourcesContent":["import {View, StyleSheet, TextInput, ViewStyle} from 'react-native';\nimport React, {useState, useEffect, useCallback} from 'react';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../../variables/analytics';\nimport {Theme} from '../../../variables/theme.native';\nimport {BOX_STYLE} from '../../../variables/shadow';\nimport {Brand} from '../../../variables/brand.native';\n\ntype QuestionType = 'basic' | 'template';\n\ninterface Props {\n fullWidth?: boolean;\n testID: string;\n questionType: QuestionType;\n analytics?: Analytics;\n onChange: (text: string) => void;\n isDisabled?: boolean;\n value?: string; // when value is undefined, TextInput acts as not controlled\n}\n\ntype StyleSheetType = {\n input: ViewStyle;\n text: ViewStyle;\n spaced: ViewStyle;\n fullWitdh: ViewStyle;\n};\n\nconst createStyleSheet = (brandTheme: Brand, theme: Theme): StyleSheetType =>\n StyleSheet.create({\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\n input: {\n padding: theme.spacing.tiny,\n borderColor: theme.colors.gray.lightMedium,\n borderRadius: theme.radius.regular,\n minWidth: 175,\n marginHorizontal: 12,\n paddingVertical: 16,\n ...BOX_STYLE,\n backgroundColor: theme.colors.white\n },\n text: {\n borderColor: brandTheme?.colors?.primary,\n color: brandTheme?.colors?.primary || theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n fullWitdh: {\n width: '100%'\n }\n });\n\nconst logEvent = (eventName: string, analytics: Analytics, questionType: QuestionType) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: `question-input-text`,\n questionType\n });\n};\n\nconst FreeText = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {brandTheme, theme, translations} = templateContext;\n const PLACEHOLDER_COLOR = theme.colors.gray.medium;\n\n // ------------------------------------\n\n const {\n analytics,\n questionType,\n fullWidth = false,\n testID,\n onChange,\n isDisabled = false,\n value\n } = props;\n\n // ------------------------------------\n\n const handleFocus = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_FOCUS, analytics, questionType),\n [analytics, questionType]\n );\n\n const handleBlur = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_BLUR, analytics, questionType),\n [analytics, questionType]\n );\n\n // ------------------------------------\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(brandTheme, theme);\n setStylesheet(_stylesheet);\n }, [brandTheme, theme]);\n\n // ------------------------------------\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.spaced, fullWidth && styleSheet.fullWitdh]}>\n <TextInput\n style={[styleSheet.input, styleSheet.text]}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChangeText={onChange}\n placeholder={translations.typeHere}\n placeholderTextColor={PLACEHOLDER_COLOR}\n value={value}\n testID={testID}\n editable={!isDisabled}\n selectTextOnFocus={!isDisabled}\n />\n </View>\n );\n};\n\nexport default FreeText;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["View","StyleSheet","TextInput","React","useState","useEffect","useCallback","useTemplateContext","ANALYTICS_EVENT_TYPE","BOX_STYLE","createStyleSheet","brandTheme","theme","create","input","padding","spacing","tiny","borderColor","colors","gray","lightMedium","borderRadius","radius","regular","minWidth","marginHorizontal","paddingVertical","backgroundColor","white","text","primary","color","medium","fontWeight","bold","fontSize","textAlign","spaced","fullWitdh","width","logEvent","eventName","analytics","questionType","id","FreeText","props","templateContext","styleSheet","setStylesheet","translations","PLACEHOLDER_COLOR","fullWidth","testID","onChange","isDisabled","value","handleFocus","INPUT_FOCUS","handleBlur","INPUT_BLUR","_stylesheet","typeHere"],"sources":["../../../../src/molecule/questions/free-text/index.native.tsx"],"sourcesContent":["import {View, StyleSheet, TextInput, ViewStyle} from 'react-native';\nimport React, {useState, useEffect, useCallback} from 'react';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../../variables/analytics';\nimport {Theme} from '../../../variables/theme.native';\nimport {BOX_STYLE} from '../../../variables/shadow';\nimport {Brand} from '../../../variables/brand.native';\n\ntype QuestionType = 'basic' | 'template';\n\ninterface Props {\n fullWidth?: boolean;\n testID: string;\n questionType: QuestionType;\n analytics?: Analytics;\n onChange: (text: string) => void;\n isDisabled?: boolean;\n value?: string; // when value is undefined, TextInput acts as not controlled\n}\n\ntype StyleSheetType = {\n input: ViewStyle;\n text: ViewStyle;\n spaced: ViewStyle;\n fullWitdh: ViewStyle;\n};\n\nconst createStyleSheet = (brandTheme: Brand, theme: Theme): StyleSheetType =>\n StyleSheet.create({\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\n input: {\n padding: theme.spacing.tiny,\n borderColor: theme.colors.gray.lightMedium,\n borderRadius: theme.radius.regular,\n minWidth: 175,\n marginHorizontal: 12,\n paddingVertical: 16,\n ...BOX_STYLE,\n backgroundColor: theme.colors.white\n },\n text: {\n borderColor: brandTheme?.colors?.primary,\n color: brandTheme?.colors?.primary || theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n fullWitdh: {\n width: '100%'\n }\n });\n\nconst logEvent = (eventName: string, analytics: Analytics, questionType: QuestionType) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: `question-input-text`,\n questionType\n });\n};\n\nconst FreeText = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {brandTheme, theme, translations} = templateContext;\n const PLACEHOLDER_COLOR = theme.colors.gray.medium;\n\n // ------------------------------------\n\n const {\n analytics,\n questionType,\n fullWidth = false,\n testID,\n onChange,\n isDisabled = false,\n value\n } = props;\n\n // ------------------------------------\n\n const handleFocus = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_FOCUS, analytics, questionType),\n [analytics, questionType]\n );\n\n const handleBlur = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_BLUR, analytics, questionType),\n [analytics, questionType]\n );\n\n // ------------------------------------\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(brandTheme, theme);\n setStylesheet(_stylesheet);\n }, [brandTheme, theme]);\n\n // ------------------------------------\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.spaced, fullWidth && styleSheet.fullWitdh]}>\n <TextInput\n style={[styleSheet.input, styleSheet.text]}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChangeText={onChange}\n placeholder={translations.typeHere}\n placeholderTextColor={PLACEHOLDER_COLOR}\n value={value}\n testID={testID}\n editable={!isDisabled}\n selectTextOnFocus={!isDisabled}\n />\n </View>\n );\n};\n\nexport default FreeText;\n"],"mappings":"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"}
@@ -51,6 +51,8 @@ const createStyleSheet = theme => StyleSheet.create({
51
51
  });
52
52
 
53
53
  const QuestionSlider = props => {
54
+ var _brandTheme$colors, _brandTheme$colors2, _brandTheme$colors3;
55
+
54
56
  const {
55
57
  step,
56
58
  style,
@@ -86,7 +88,7 @@ const QuestionSlider = props => {
86
88
  testID: testID
87
89
  }, /*#__PURE__*/React.createElement(Text, {
88
90
  style: [styleSheet.header, {
89
- color: brandTheme?.colors?.primary
91
+ color: brandTheme == null ? void 0 : (_brandTheme$colors = brandTheme.colors) == null ? void 0 : _brandTheme$colors.primary
90
92
  }],
91
93
  testID: "slider-value"
92
94
  }, value), /*#__PURE__*/React.createElement(Slider, {
@@ -96,10 +98,10 @@ const QuestionSlider = props => {
96
98
  maximumValue: max,
97
99
  minimumValue: min,
98
100
  onSlidingComplete: handleSlidingComplete,
99
- minimumTrackTintColor: brandTheme?.colors?.primary,
101
+ minimumTrackTintColor: brandTheme == null ? void 0 : (_brandTheme$colors2 = brandTheme.colors) == null ? void 0 : _brandTheme$colors2.primary,
100
102
  trackStyle: styleSheet.track,
101
103
  thumbStyle: [styleSheet.thumb, {
102
- borderColor: brandTheme?.colors?.primary
104
+ borderColor: brandTheme == null ? void 0 : (_brandTheme$colors3 = brandTheme.colors) == null ? void 0 : _brandTheme$colors3.primary
103
105
  }],
104
106
  testID: "slider"
105
107
  }), /*#__PURE__*/React.createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useState","useEffect","useCallback","View","StyleSheet","Slider","Text","useTemplateContext","BOX_STYLE","createStyleSheet","theme","create","container","flex","paddingHorizontal","flexDirection","justifyContent","header","fontSize","fontWeight","bold","textAlign","textValue","color","colors","black","valuesContainer","leftValue","alignItems","rightValue","track","height","borderRadius","radius","button","thumb","width","backgroundColor","borderWidth","QuestionSlider","props","step","style","min","max","unit","value","storeValue","onSlidingComplete","testID","templateContext","brandTheme","styleSheet","setStylesheet","setValue","handleSlidingComplete","_stylesheet","primary","borderColor"],"sources":["../../../../../src/molecule/questions/mobile/slider/index.native.tsx"],"sourcesContent":["import React, {useState, useEffect, useCallback} from 'react';\nimport {View, StyleSheet, ViewStyle, TextStyle} from 'react-native';\nimport Slider from '@coorpacademy/react-native-slider';\n\nimport {Theme} from '../../../../variables/theme.native';\nimport Text from '../../../../atom/text/index.native';\nimport {useTemplateContext} from '../../../../template/app-review/template-context';\nimport {BOX_STYLE} from '../../../../variables/shadow';\n\nexport type OnSlidingCompleteFunction = (value: number) => void;\n\nexport type Props = {\n min: number;\n max: number;\n value?: number;\n unit?: string;\n onSlidingComplete: OnSlidingCompleteFunction;\n style?: ViewStyle;\n step?: number;\n testID?: string;\n};\n\ntype StyleSheetType = {\n container: ViewStyle;\n header: TextStyle;\n textValue: TextStyle;\n valuesContainer: ViewStyle;\n leftValue: ViewStyle;\n rightValue: ViewStyle;\n track: ViewStyle;\n thumb: ViewStyle;\n};\n\nconst createStyleSheet = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n container: {\n flex: 1,\n paddingHorizontal: 20,\n flexDirection: 'column',\n justifyContent: 'center'\n },\n header: {\n fontSize: 25,\n fontWeight: theme.fontWeight.bold,\n textAlign: 'center'\n },\n textValue: {\n fontSize: 15,\n color: theme.colors.black,\n fontWeight: theme.fontWeight.bold,\n textAlign: 'center'\n },\n valuesContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around'\n },\n leftValue: {\n flex: 1,\n alignItems: 'flex-start'\n },\n rightValue: {\n flex: 1,\n alignItems: 'flex-end'\n },\n track: {\n height: 10,\n borderRadius: theme.radius.button\n },\n thumb: {\n ...BOX_STYLE,\n width: 30,\n height: 30,\n borderRadius: 30 / 2,\n backgroundColor: 'white',\n borderWidth: 1\n }\n });\n\nconst QuestionSlider = (props: Props) => {\n const {\n step,\n style,\n min,\n max,\n unit = '',\n value: storeValue = 0,\n onSlidingComplete,\n testID\n } = props;\n const templateContext = useTemplateContext();\n const {brandTheme, theme} = templateContext;\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const [value, setValue] = useState<number>(storeValue);\n\n const handleSlidingComplete = useCallback(() => {\n onSlidingComplete(value);\n }, [onSlidingComplete, value]);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.container, style]} testID={testID}>\n <Text style={[styleSheet.header, {color: brandTheme?.colors?.primary}]} testID=\"slider-value\">\n {value}\n </Text>\n <Slider\n step={step || 1}\n value={value}\n onValueChange={setValue}\n maximumValue={max}\n minimumValue={min}\n onSlidingComplete={handleSlidingComplete}\n minimumTrackTintColor={brandTheme?.colors?.primary}\n trackStyle={styleSheet.track}\n thumbStyle={[styleSheet.thumb, {borderColor: brandTheme?.colors?.primary}]}\n testID=\"slider\"\n />\n <View style={styleSheet.valuesContainer} testID=\"slider-values-container\">\n <View style={styleSheet.leftValue}>\n <Text style={styleSheet.textValue} testID=\"slider-min-value\">\n {`${min} ${unit}`}\n </Text>\n </View>\n <View style={styleSheet.rightValue}>\n <Text style={styleSheet.textValue} testID=\"slider-max-value\">\n {`${max} ${unit}`}\n </Text>\n </View>\n </View>\n </View>\n );\n};\n\nexport default QuestionSlider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useState","useEffect","useCallback","View","StyleSheet","Slider","Text","useTemplateContext","BOX_STYLE","createStyleSheet","theme","create","container","flex","paddingHorizontal","flexDirection","justifyContent","header","fontSize","fontWeight","bold","textAlign","textValue","color","colors","black","valuesContainer","leftValue","alignItems","rightValue","track","height","borderRadius","radius","button","thumb","width","backgroundColor","borderWidth","QuestionSlider","props","step","style","min","max","unit","value","storeValue","onSlidingComplete","testID","templateContext","brandTheme","styleSheet","setStylesheet","setValue","handleSlidingComplete","_stylesheet","primary","borderColor"],"sources":["../../../../../src/molecule/questions/mobile/slider/index.native.tsx"],"sourcesContent":["import React, {useState, useEffect, useCallback} from 'react';\nimport {View, StyleSheet, ViewStyle, TextStyle} from 'react-native';\nimport Slider from '@coorpacademy/react-native-slider';\n\nimport {Theme} from '../../../../variables/theme.native';\nimport Text from '../../../../atom/text/index.native';\nimport {useTemplateContext} from '../../../../template/app-review/template-context';\nimport {BOX_STYLE} from '../../../../variables/shadow';\n\nexport type OnSlidingCompleteFunction = (value: number) => void;\n\nexport type Props = {\n min: number;\n max: number;\n value?: number;\n unit?: string;\n onSlidingComplete: OnSlidingCompleteFunction;\n style?: ViewStyle;\n step?: number;\n testID?: string;\n};\n\ntype StyleSheetType = {\n container: ViewStyle;\n header: TextStyle;\n textValue: TextStyle;\n valuesContainer: ViewStyle;\n leftValue: ViewStyle;\n rightValue: ViewStyle;\n track: ViewStyle;\n thumb: ViewStyle;\n};\n\nconst createStyleSheet = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n container: {\n flex: 1,\n paddingHorizontal: 20,\n flexDirection: 'column',\n justifyContent: 'center'\n },\n header: {\n fontSize: 25,\n fontWeight: theme.fontWeight.bold,\n textAlign: 'center'\n },\n textValue: {\n fontSize: 15,\n color: theme.colors.black,\n fontWeight: theme.fontWeight.bold,\n textAlign: 'center'\n },\n valuesContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around'\n },\n leftValue: {\n flex: 1,\n alignItems: 'flex-start'\n },\n rightValue: {\n flex: 1,\n alignItems: 'flex-end'\n },\n track: {\n height: 10,\n borderRadius: theme.radius.button\n },\n thumb: {\n ...BOX_STYLE,\n width: 30,\n height: 30,\n borderRadius: 30 / 2,\n backgroundColor: 'white',\n borderWidth: 1\n }\n });\n\nconst QuestionSlider = (props: Props) => {\n const {\n step,\n style,\n min,\n max,\n unit = '',\n value: storeValue = 0,\n onSlidingComplete,\n testID\n } = props;\n const templateContext = useTemplateContext();\n const {brandTheme, theme} = templateContext;\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const [value, setValue] = useState<number>(storeValue);\n\n const handleSlidingComplete = useCallback(() => {\n onSlidingComplete(value);\n }, [onSlidingComplete, value]);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.container, style]} testID={testID}>\n <Text style={[styleSheet.header, {color: brandTheme?.colors?.primary}]} testID=\"slider-value\">\n {value}\n </Text>\n <Slider\n step={step || 1}\n value={value}\n onValueChange={setValue}\n maximumValue={max}\n minimumValue={min}\n onSlidingComplete={handleSlidingComplete}\n minimumTrackTintColor={brandTheme?.colors?.primary}\n trackStyle={styleSheet.track}\n thumbStyle={[styleSheet.thumb, {borderColor: brandTheme?.colors?.primary}]}\n testID=\"slider\"\n />\n <View style={styleSheet.valuesContainer} testID=\"slider-values-container\">\n <View style={styleSheet.leftValue}>\n <Text style={styleSheet.textValue} testID=\"slider-min-value\">\n {`${min} ${unit}`}\n </Text>\n </View>\n <View style={styleSheet.rightValue}>\n <Text style={styleSheet.textValue} testID=\"slider-max-value\">\n {`${max} ${unit}`}\n </Text>\n </View>\n </View>\n </View>\n );\n};\n\nexport default QuestionSlider;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,QAAf,EAAyBC,SAAzB,EAAoCC,WAApC,QAAsD,OAAtD;AACA,SAAQC,IAAR,EAAcC,UAAd,QAAqD,cAArD;AACA,OAAOC,MAAP,MAAmB,mCAAnB;AAGA,OAAOC,IAAP,MAAiB,oCAAjB;AACA,SAAQC,kBAAR,QAAiC,kDAAjC;AACA,SAAQC,SAAR,QAAwB,8BAAxB;;AA0BA,MAAMC,gBAAgB,GAAIC,KAAD,IACvBN,UAAU,CAACO,MAAX,CAAkB;EAChBC,SAAS,EAAE;IACTC,IAAI,EAAE,CADG;IAETC,iBAAiB,EAAE,EAFV;IAGTC,aAAa,EAAE,QAHN;IAITC,cAAc,EAAE;EAJP,CADK;EAOhBC,MAAM,EAAE;IACNC,QAAQ,EAAE,EADJ;IAENC,UAAU,EAAET,KAAK,CAACS,UAAN,CAAiBC,IAFvB;IAGNC,SAAS,EAAE;EAHL,CAPQ;EAYhBC,SAAS,EAAE;IACTJ,QAAQ,EAAE,EADD;IAETK,KAAK,EAAEb,KAAK,CAACc,MAAN,CAAaC,KAFX;IAGTN,UAAU,EAAET,KAAK,CAACS,UAAN,CAAiBC,IAHpB;IAITC,SAAS,EAAE;EAJF,CAZK;EAkBhBK,eAAe,EAAE;IACfX,aAAa,EAAE,KADA;IAEfC,cAAc,EAAE;EAFD,CAlBD;EAsBhBW,SAAS,EAAE;IACTd,IAAI,EAAE,CADG;IAETe,UAAU,EAAE;EAFH,CAtBK;EA0BhBC,UAAU,EAAE;IACVhB,IAAI,EAAE,CADI;IAEVe,UAAU,EAAE;EAFF,CA1BI;EA8BhBE,KAAK,EAAE;IACLC,MAAM,EAAE,EADH;IAELC,YAAY,EAAEtB,KAAK,CAACuB,MAAN,CAAaC;EAFtB,CA9BS;EAkChBC,KAAK,eACA3B,SADA;IAEH4B,KAAK,EAAE,EAFJ;IAGHL,MAAM,EAAE,EAHL;IAIHC,YAAY,EAAE,KAAK,CAJhB;IAKHK,eAAe,EAAE,OALd;IAMHC,WAAW,EAAE;EANV;AAlCW,CAAlB,CADF;;AA6CA,MAAMC,cAAc,GAAIC,KAAD,IAAkB;EAAA;;EACvC,MAAM;IACJC,IADI;IAEJC,KAFI;IAGJC,GAHI;IAIJC,GAJI;IAKJC,IAAI,GAAG,EALH;IAMJC,KAAK,EAAEC,UAAU,GAAG,CANhB;IAOJC,iBAPI;IAQJC;EARI,IASFT,KATJ;EAUA,MAAMU,eAAe,GAAG3C,kBAAkB,EAA1C;EACA,MAAM;IAAC4C,UAAD;IAAazC;EAAb,IAAsBwC,eAA5B;EACA,MAAM,CAACE,UAAD,EAAaC,aAAb,IAA8BrD,QAAQ,CAAwB,IAAxB,CAA5C;EACA,MAAM,CAAC8C,KAAD,EAAQQ,QAAR,IAAoBtD,QAAQ,CAAS+C,UAAT,CAAlC;EAEA,MAAMQ,qBAAqB,GAAGrD,WAAW,CAAC,MAAM;IAC9C8C,iBAAiB,CAACF,KAAD,CAAjB;EACD,CAFwC,EAEtC,CAACE,iBAAD,EAAoBF,KAApB,CAFsC,CAAzC;EAIA7C,SAAS,CAAC,MAAM;IACd,MAAMuD,WAAW,GAAG/C,gBAAgB,CAACC,KAAD,CAApC;;IACA2C,aAAa,CAACG,WAAD,CAAb;EACD,CAHQ,EAGN,CAAC9C,KAAD,CAHM,CAAT;;EAKA,IAAI,CAAC0C,UAAL,EAAiB;IACf,OAAO,IAAP;EACD;;EAED,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACA,UAAU,CAACxC,SAAZ,EAAuB8B,KAAvB,CAAb;IAA4C,MAAM,EAAEO;EAApD,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACG,UAAU,CAACnC,MAAZ,EAAoB;MAACM,KAAK,EAAE4B,UAAF,0CAAEA,UAAU,CAAE3B,MAAd,qBAAE,mBAAoBiC;IAA5B,CAApB,CAAb;IAAwE,MAAM,EAAC;EAA/E,GACGX,KADH,CADF,eAIE,oBAAC,MAAD;IACE,IAAI,EAAEL,IAAI,IAAI,CADhB;IAEE,KAAK,EAAEK,KAFT;IAGE,aAAa,EAAEQ,QAHjB;IAIE,YAAY,EAAEV,GAJhB;IAKE,YAAY,EAAED,GALhB;IAME,iBAAiB,EAAEY,qBANrB;IAOE,qBAAqB,EAAEJ,UAAF,2CAAEA,UAAU,CAAE3B,MAAd,qBAAE,oBAAoBiC,OAP7C;IAQE,UAAU,EAAEL,UAAU,CAACtB,KARzB;IASE,UAAU,EAAE,CAACsB,UAAU,CAACjB,KAAZ,EAAmB;MAACuB,WAAW,EAAEP,UAAF,2CAAEA,UAAU,CAAE3B,MAAd,qBAAE,oBAAoBiC;IAAlC,CAAnB,CATd;IAUE,MAAM,EAAC;EAVT,EAJF,eAgBE,oBAAC,IAAD;IAAM,KAAK,EAAEL,UAAU,CAAC1B,eAAxB;IAAyC,MAAM,EAAC;EAAhD,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAE0B,UAAU,CAACzB;EAAxB,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAEyB,UAAU,CAAC9B,SAAxB;IAAmC,MAAM,EAAC;EAA1C,GACI,GAAEqB,GAAI,IAAGE,IAAK,EADlB,CADF,CADF,eAME,oBAAC,IAAD;IAAM,KAAK,EAAEO,UAAU,CAACvB;EAAxB,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAEuB,UAAU,CAAC9B,SAAxB;IAAmC,MAAM,EAAC;EAA1C,GACI,GAAEsB,GAAI,IAAGC,IAAK,EADlB,CADF,CANF,CAhBF,CADF;AA+BD,CA5DD;;AA8DA,eAAeN,cAAf"}
@@ -46,6 +46,8 @@ const createStyleSheet = theme => ({
46
46
  });
47
47
 
48
48
  const Item = props => {
49
+ var _brandTheme$colors;
50
+
49
51
  const {
50
52
  part,
51
53
  index,
@@ -67,7 +69,7 @@ const Item = props => {
67
69
  const id = `question-part-${index + 1}`;
68
70
  const isFocused = focusedSelectId === id;
69
71
  const coloredText = brandTheme && {
70
- color: brandTheme.colors?.primary
72
+ color: (_brandTheme$colors = brandTheme.colors) == null ? void 0 : _brandTheme$colors.primary
71
73
  };
72
74
 
73
75
  if (part.type === 'answerField' && inputNames.includes(part.value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useEffect","useState","View","trim","Html","Select","Space","FreeText","useTemplateContext","parseTemplateString","BOX_STYLE","createStyleSheet","theme","container","width","flexDirection","flexWrap","justifyContent","alignItems","spaced","paddingVertical","spacing","tiny","htmlText","color","colors","black","fontWeight","bold","lineHeight","selectInput","padding","borderRadius","radius","regular","minWidth","marginHorizontal","backgroundColor","white","selectText","gray","medium","fontSize","textAlign","Item","props","part","index","isDisabled","focusedSelectId","choices","onInputChange","handleBlur","handleFocus","styles","templateContext","brandTheme","translations","inputNames","map","choice","name","id","isFocused","coloredText","primary","type","includes","value","choiceIndex","findIndex","disabledSuffix","selectedSuffix","handleInputChange","_item","_value","selectInputStyle","push","selectTextStyle","items","selectAnAnswer","QuestionTemplate","template","styleSheet","setStylesheet","_stylesheet","parts"],"sources":["../../../../../src/molecule/questions/mobile/template/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {TextStyle, View, ViewStyle} from 'react-native';\n\nimport trim from 'lodash/fp/trim';\n\nimport Html from '../../../../atom/html/index.native';\nimport Select from '../../../../atom/select-modal/index.native';\nimport Space from '../../../../atom/space/index.native';\nimport type {TemplateListOfChoices, TemplateTextChoice} from '../../types';\nimport FreeText from '../../free-text/index.native';\nimport {\n FocusedSelectId,\n HandleBlur,\n HandleFocus,\n useTemplateContext\n} from '../../../../template/app-review/template-context';\nimport {Theme} from '../../../../variables/theme.native';\nimport parseTemplateString from '../../../../util/parse-template-string';\nimport {BOX_STYLE} from '../../../../variables/shadow';\n\ntype StyleSheetType = {\n container: ViewStyle;\n spaced: ViewStyle;\n htmlText: TextStyle;\n selectInput: ViewStyle;\n selectText: TextStyle;\n};\n\nconst createStyleSheet = (theme: Theme): StyleSheetType => ({\n container: {\n width: '100%',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignItems: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n htmlText: {\n color: theme.colors.black,\n fontWeight: theme.fontWeight.bold,\n lineHeight: 25\n },\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\n selectInput: {\n padding: theme.spacing.tiny,\n borderRadius: theme.radius.regular,\n minWidth: 175,\n marginHorizontal: 12,\n paddingVertical: 16,\n ...BOX_STYLE,\n backgroundColor: theme.colors.white\n },\n selectText: {\n color: theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n }\n});\n\ntype TemplatePart = {\n type: 'string' | 'answerField';\n value: string;\n};\n\ntype ItemProps = {\n part: TemplatePart;\n choices: Array<TemplateTextChoice | TemplateListOfChoices>;\n index: number;\n isDisabled?: boolean;\n onInputChange: (item: TemplateTextChoice | TemplateListOfChoices, value: string) => void;\n focusedSelectId: FocusedSelectId;\n handleBlur: HandleBlur;\n handleFocus: HandleFocus;\n styles: StyleSheetType;\n};\n\nconst Item = (props: ItemProps) => {\n const {\n part,\n index,\n isDisabled = false,\n focusedSelectId,\n choices,\n onInputChange,\n handleBlur,\n handleFocus,\n styles\n } = props;\n\n const templateContext = useTemplateContext();\n const {theme, brandTheme, translations} = templateContext;\n\n const inputNames = choices.map(choice => choice.name);\n const id = `question-part-${index + 1}`;\n const isFocused = focusedSelectId === id;\n\n const coloredText = brandTheme && {\n color: brandTheme.colors?.primary\n };\n\n if (part.type === 'answerField' && inputNames.includes(part.value)) {\n const choiceIndex = choices.findIndex(choice => choice.name === part.value);\n const choice = choices[choiceIndex];\n const {value} = choice;\n\n if (!choice || !choice.type || !choice.name) {\n return null;\n }\n\n const disabledSuffix = isDisabled ? '-disabled' : '';\n const selectedSuffix = value ? '-selected' : '';\n\n const handleInputChange =\n (_item: TemplateTextChoice | TemplateListOfChoices) => (_value: string) =>\n onInputChange(_item, _value);\n\n if (choice.type === 'text') {\n return (\n <View style={styles.spaced} testID={id}>\n <FreeText\n key={id}\n isDisabled={isDisabled}\n onChange={handleInputChange(choice)}\n value={value}\n testID={`${id}-text${selectedSuffix}${disabledSuffix}`}\n questionType=\"template\"\n />\n </View>\n );\n }\n\n const selectInputStyle: TextStyle[] = [styles.selectInput];\n if (coloredText && value) {\n selectInputStyle.push(coloredText);\n }\n\n const selectTextStyle: TextStyle[] = [styles.selectText];\n if (coloredText && value) {\n selectTextStyle.push(coloredText);\n }\n\n if (choice.type === 'select') {\n return (\n <View style={styles.spaced} testID={id}>\n <Select\n isDisabled={isDisabled}\n questionType=\"template\"\n values={choice.items}\n value={value}\n placeholder={translations.selectAnAnswer}\n isFocused={isFocused}\n onBlur={handleBlur}\n onFocus={handleFocus(id)}\n onChange={handleInputChange(choice)}\n textStyle={selectTextStyle}\n style={selectInputStyle}\n analyticsID={`${id}-select${selectedSuffix}${disabledSuffix}`}\n testID={`${id}-select${selectedSuffix}${disabledSuffix}`}\n />\n </View>\n );\n }\n }\n\n return (\n <Html key={id} fontSize={theme.fontSize.regular} testID={id} style={styles.htmlText}>\n {trim(part.value || '')}\n </Html>\n );\n};\n\nexport type Props = {\n isDisabled?: boolean;\n template: string;\n choices: Array<TemplateTextChoice | TemplateListOfChoices>;\n onInputChange: (item: TemplateTextChoice | TemplateListOfChoices, value: string) => void;\n focusedSelectId: FocusedSelectId;\n handleBlur: HandleBlur;\n handleFocus: HandleFocus;\n};\n\nconst QuestionTemplate = (props: Props) => {\n const {\n template,\n onInputChange,\n choices,\n handleBlur,\n handleFocus,\n focusedSelectId,\n isDisabled = false\n } = props;\n\n const templateContext = useTemplateContext();\n const {theme} = templateContext;\n\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!template || !styleSheet) {\n return null;\n }\n\n const parts: TemplatePart[] = parseTemplateString(template);\n\n return (\n <View style={styleSheet.container} testID=\"question-template\">\n {parts.map((part, id) => (\n <View key={`question-part-${id}`} style={{flexDirection: 'row'}}>\n <Item\n part={part}\n choices={choices}\n index={id}\n focusedSelectId={focusedSelectId}\n isDisabled={isDisabled}\n handleBlur={handleBlur}\n handleFocus={handleFocus}\n onInputChange={onInputChange}\n styles={styleSheet}\n />\n <Space type=\"micro\" />\n </View>\n ))}\n </View>\n );\n};\n\nexport default QuestionTemplate;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useEffect","useState","View","trim","Html","Select","Space","FreeText","useTemplateContext","parseTemplateString","BOX_STYLE","createStyleSheet","theme","container","width","flexDirection","flexWrap","justifyContent","alignItems","spaced","paddingVertical","spacing","tiny","htmlText","color","colors","black","fontWeight","bold","lineHeight","selectInput","padding","borderRadius","radius","regular","minWidth","marginHorizontal","backgroundColor","white","selectText","gray","medium","fontSize","textAlign","Item","props","part","index","isDisabled","focusedSelectId","choices","onInputChange","handleBlur","handleFocus","styles","templateContext","brandTheme","translations","inputNames","map","choice","name","id","isFocused","coloredText","primary","type","includes","value","choiceIndex","findIndex","disabledSuffix","selectedSuffix","handleInputChange","_item","_value","selectInputStyle","push","selectTextStyle","items","selectAnAnswer","QuestionTemplate","template","styleSheet","setStylesheet","_stylesheet","parts"],"sources":["../../../../../src/molecule/questions/mobile/template/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {TextStyle, View, ViewStyle} from 'react-native';\n\nimport trim from 'lodash/fp/trim';\n\nimport Html from '../../../../atom/html/index.native';\nimport Select from '../../../../atom/select-modal/index.native';\nimport Space from '../../../../atom/space/index.native';\nimport type {TemplateListOfChoices, TemplateTextChoice} from '../../types';\nimport FreeText from '../../free-text/index.native';\nimport {\n FocusedSelectId,\n HandleBlur,\n HandleFocus,\n useTemplateContext\n} from '../../../../template/app-review/template-context';\nimport {Theme} from '../../../../variables/theme.native';\nimport parseTemplateString from '../../../../util/parse-template-string';\nimport {BOX_STYLE} from '../../../../variables/shadow';\n\ntype StyleSheetType = {\n container: ViewStyle;\n spaced: ViewStyle;\n htmlText: TextStyle;\n selectInput: ViewStyle;\n selectText: TextStyle;\n};\n\nconst createStyleSheet = (theme: Theme): StyleSheetType => ({\n container: {\n width: '100%',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignItems: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n htmlText: {\n color: theme.colors.black,\n fontWeight: theme.fontWeight.bold,\n lineHeight: 25\n },\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\n selectInput: {\n padding: theme.spacing.tiny,\n borderRadius: theme.radius.regular,\n minWidth: 175,\n marginHorizontal: 12,\n paddingVertical: 16,\n ...BOX_STYLE,\n backgroundColor: theme.colors.white\n },\n selectText: {\n color: theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n }\n});\n\ntype TemplatePart = {\n type: 'string' | 'answerField';\n value: string;\n};\n\ntype ItemProps = {\n part: TemplatePart;\n choices: Array<TemplateTextChoice | TemplateListOfChoices>;\n index: number;\n isDisabled?: boolean;\n onInputChange: (item: TemplateTextChoice | TemplateListOfChoices, value: string) => void;\n focusedSelectId: FocusedSelectId;\n handleBlur: HandleBlur;\n handleFocus: HandleFocus;\n styles: StyleSheetType;\n};\n\nconst Item = (props: ItemProps) => {\n const {\n part,\n index,\n isDisabled = false,\n focusedSelectId,\n choices,\n onInputChange,\n handleBlur,\n handleFocus,\n styles\n } = props;\n\n const templateContext = useTemplateContext();\n const {theme, brandTheme, translations} = templateContext;\n\n const inputNames = choices.map(choice => choice.name);\n const id = `question-part-${index + 1}`;\n const isFocused = focusedSelectId === id;\n\n const coloredText = brandTheme && {\n color: brandTheme.colors?.primary\n };\n\n if (part.type === 'answerField' && inputNames.includes(part.value)) {\n const choiceIndex = choices.findIndex(choice => choice.name === part.value);\n const choice = choices[choiceIndex];\n const {value} = choice;\n\n if (!choice || !choice.type || !choice.name) {\n return null;\n }\n\n const disabledSuffix = isDisabled ? '-disabled' : '';\n const selectedSuffix = value ? '-selected' : '';\n\n const handleInputChange =\n (_item: TemplateTextChoice | TemplateListOfChoices) => (_value: string) =>\n onInputChange(_item, _value);\n\n if (choice.type === 'text') {\n return (\n <View style={styles.spaced} testID={id}>\n <FreeText\n key={id}\n isDisabled={isDisabled}\n onChange={handleInputChange(choice)}\n value={value}\n testID={`${id}-text${selectedSuffix}${disabledSuffix}`}\n questionType=\"template\"\n />\n </View>\n );\n }\n\n const selectInputStyle: TextStyle[] = [styles.selectInput];\n if (coloredText && value) {\n selectInputStyle.push(coloredText);\n }\n\n const selectTextStyle: TextStyle[] = [styles.selectText];\n if (coloredText && value) {\n selectTextStyle.push(coloredText);\n }\n\n if (choice.type === 'select') {\n return (\n <View style={styles.spaced} testID={id}>\n <Select\n isDisabled={isDisabled}\n questionType=\"template\"\n values={choice.items}\n value={value}\n placeholder={translations.selectAnAnswer}\n isFocused={isFocused}\n onBlur={handleBlur}\n onFocus={handleFocus(id)}\n onChange={handleInputChange(choice)}\n textStyle={selectTextStyle}\n style={selectInputStyle}\n analyticsID={`${id}-select${selectedSuffix}${disabledSuffix}`}\n testID={`${id}-select${selectedSuffix}${disabledSuffix}`}\n />\n </View>\n );\n }\n }\n\n return (\n <Html key={id} fontSize={theme.fontSize.regular} testID={id} style={styles.htmlText}>\n {trim(part.value || '')}\n </Html>\n );\n};\n\nexport type Props = {\n isDisabled?: boolean;\n template: string;\n choices: Array<TemplateTextChoice | TemplateListOfChoices>;\n onInputChange: (item: TemplateTextChoice | TemplateListOfChoices, value: string) => void;\n focusedSelectId: FocusedSelectId;\n handleBlur: HandleBlur;\n handleFocus: HandleFocus;\n};\n\nconst QuestionTemplate = (props: Props) => {\n const {\n template,\n onInputChange,\n choices,\n handleBlur,\n handleFocus,\n focusedSelectId,\n isDisabled = false\n } = props;\n\n const templateContext = useTemplateContext();\n const {theme} = templateContext;\n\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!template || !styleSheet) {\n return null;\n }\n\n const parts: TemplatePart[] = parseTemplateString(template);\n\n return (\n <View style={styleSheet.container} testID=\"question-template\">\n {parts.map((part, id) => (\n <View key={`question-part-${id}`} style={{flexDirection: 'row'}}>\n <Item\n part={part}\n choices={choices}\n index={id}\n focusedSelectId={focusedSelectId}\n isDisabled={isDisabled}\n handleBlur={handleBlur}\n handleFocus={handleFocus}\n onInputChange={onInputChange}\n styles={styleSheet}\n />\n <Space type=\"micro\" />\n </View>\n ))}\n </View>\n );\n};\n\nexport default QuestionTemplate;\n"],"mappings":"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"}
@@ -7,7 +7,9 @@ import MoleculeReviewCardCongrats from '../../molecule/review-card-congrats';
7
7
  import style from './style.css';
8
8
  import propTypes from './prop-types';
9
9
  export const setScroll = container => () => {
10
- container.current?.scrollTo && container.current.scrollTo({
10
+ var _container$current;
11
+
12
+ ((_container$current = container.current) == null ? void 0 : _container$current.scrollTo) && container.current.scrollTo({
11
13
  left: 1000,
12
14
  behavior: 'smooth'
13
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useEffect","useRef","AtomLottieWrapper","ButtonLink","MoleculeReviewCardCongrats","style","propTypes","setScroll","container","current","scrollTo","left","behavior","ReviewCongrats","props","ariaLabel","dataName","animationLottie","title","cardCongratsStar","cardCongratsRank","buttonRevising","buttonRevisingSkill","timer","setTimeout","clearTimeout","mainContainer","lottie","ie11Backup","containerCongrats","containerCards","cardStar","cardRank","cardStarNoRank","buttonContainer","buttonRevise"],"sources":["../../../src/organism/review-congrats/index.js"],"sourcesContent":["import React, {useEffect, useRef} from 'react';\nimport AtomLottieWrapper from '../../atom/lottie-wrapper';\nimport ButtonLink from '../../atom/button-link';\nimport MoleculeReviewCardCongrats from '../../molecule/review-card-congrats';\nimport style from './style.css';\nimport propTypes from './prop-types';\n\nexport const setScroll = container => () => {\n container.current?.scrollTo &&\n container.current.scrollTo({\n left: 1000,\n behavior: 'smooth'\n });\n};\n\nconst ReviewCongrats = props => {\n const {\n 'aria-label': ariaLabel,\n 'data-name': dataName,\n animationLottie,\n title,\n cardCongratsStar,\n cardCongratsRank,\n buttonRevising,\n buttonRevisingSkill\n } = props;\n\n const container = useRef(null);\n\n useEffect(() => {\n const timer = setTimeout(setScroll(container), 2000);\n return () => timer && clearTimeout(timer);\n }, []);\n\n return (\n <div\n className={style.mainContainer}\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid=\"congrats\"\n >\n <AtomLottieWrapper\n {...animationLottie}\n loop={false}\n animationControl={'play'}\n autoplay\n data-name=\"lottie-wrapper\"\n className={style.lottie}\n backupImageClassName={style.ie11Backup}\n />\n <div className={style.containerCongrats}>\n <div className={style.title}>{title}</div>\n <div ref={container} className={style.containerCards}>\n {cardCongratsRank ? (\n <>\n <MoleculeReviewCardCongrats {...cardCongratsStar} className={style.cardStar} />\n <MoleculeReviewCardCongrats\n {...cardCongratsRank}\n timerAnimation={1800}\n className={style.cardRank}\n />\n </>\n ) : (\n <MoleculeReviewCardCongrats {...cardCongratsStar} className={style.cardStarNoRank} />\n )}\n </div>\n <div className={style.buttonContainer}>\n {buttonRevising ? (\n <ButtonLink\n {...buttonRevising}\n className={style.buttonRevise}\n data-testid=\"revise-skill-link\"\n />\n ) : null}\n {buttonRevisingSkill ? (\n <ButtonLink\n {...buttonRevisingSkill}\n className={style.buttonRevise}\n data-testid=\"revise-another-skill-link\"\n />\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nReviewCongrats.propTypes = propTypes;\n\nexport default ReviewCongrats;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,SAAf,EAA0BC,MAA1B,QAAuC,OAAvC;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,0BAAP,MAAuC,qCAAvC;AACA,OAAOC,KAAP,MAAkB,aAAlB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AAEA,OAAO,MAAMC,SAAS,GAAGC,SAAS,IAAI,MAAM;EAC1CA,SAAS,CAACC,OAAV,EAAmBC,QAAnB,IACEF,SAAS,CAACC,OAAV,CAAkBC,QAAlB,CAA2B;IACzBC,IAAI,EAAE,IADmB;IAEzBC,QAAQ,EAAE;EAFe,CAA3B,CADF;AAKD,CANM;;AAQP,MAAMC,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IACJ,cAAcC,SADV;IAEJ,aAAaC,QAFT;IAGJC,eAHI;IAIJC,KAJI;IAKJC,gBALI;IAMJC,gBANI;IAOJC,cAPI;IAQJC;EARI,IASFR,KATJ;EAWA,MAAMN,SAAS,GAAGP,MAAM,CAAC,IAAD,CAAxB;EAEAD,SAAS,CAAC,MAAM;IACd,MAAMuB,KAAK,GAAGC,UAAU,CAACjB,SAAS,CAACC,SAAD,CAAV,EAAuB,IAAvB,CAAxB;IACA,OAAO,MAAMe,KAAK,IAAIE,YAAY,CAACF,KAAD,CAAlC;EACD,CAHQ,EAGN,EAHM,CAAT;EAKA,oBACE;IACE,SAAS,EAAElB,KAAK,CAACqB,aADnB;IAEE,cAAYX,SAFd;IAGE,aAAWC,QAHb;IAIE,eAAY;EAJd,gBAME,oBAAC,iBAAD,eACMC,eADN;IAEE,IAAI,EAAE,KAFR;IAGE,gBAAgB,EAAE,MAHpB;IAIE,QAAQ,MAJV;IAKE,aAAU,gBALZ;IAME,SAAS,EAAEZ,KAAK,CAACsB,MANnB;IAOE,oBAAoB,EAAEtB,KAAK,CAACuB;EAP9B,GANF,eAeE;IAAK,SAAS,EAAEvB,KAAK,CAACwB;EAAtB,gBACE;IAAK,SAAS,EAAExB,KAAK,CAACa;EAAtB,GAA8BA,KAA9B,CADF,eAEE;IAAK,GAAG,EAAEV,SAAV;IAAqB,SAAS,EAAEH,KAAK,CAACyB;EAAtC,GACGV,gBAAgB,gBACf,uDACE,oBAAC,0BAAD,eAAgCD,gBAAhC;IAAkD,SAAS,EAAEd,KAAK,CAAC0B;EAAnE,GADF,eAEE,oBAAC,0BAAD,eACMX,gBADN;IAEE,cAAc,EAAE,IAFlB;IAGE,SAAS,EAAEf,KAAK,CAAC2B;EAHnB,GAFF,CADe,gBAUf,oBAAC,0BAAD,eAAgCb,gBAAhC;IAAkD,SAAS,EAAEd,KAAK,CAAC4B;EAAnE,GAXJ,CAFF,eAgBE;IAAK,SAAS,EAAE5B,KAAK,CAAC6B;EAAtB,GACGb,cAAc,gBACb,oBAAC,UAAD,eACMA,cADN;IAEE,SAAS,EAAEhB,KAAK,CAAC8B,YAFnB;IAGE,eAAY;EAHd,GADa,GAMX,IAPN,EAQGb,mBAAmB,gBAClB,oBAAC,UAAD,eACMA,mBADN;IAEE,SAAS,EAAEjB,KAAK,CAAC8B,YAFnB;IAGE,eAAY;EAHd,GADkB,GAMhB,IAdN,CAhBF,CAfF,CADF;AAmDD,CAtED;;AAwEAtB,cAAc,CAACP,SAAf,2CAA2BA,SAA3B;AAEA,eAAeO,cAAf"}
1
+ {"version":3,"file":"index.js","names":["React","useEffect","useRef","AtomLottieWrapper","ButtonLink","MoleculeReviewCardCongrats","style","propTypes","setScroll","container","current","scrollTo","left","behavior","ReviewCongrats","props","ariaLabel","dataName","animationLottie","title","cardCongratsStar","cardCongratsRank","buttonRevising","buttonRevisingSkill","timer","setTimeout","clearTimeout","mainContainer","lottie","ie11Backup","containerCongrats","containerCards","cardStar","cardRank","cardStarNoRank","buttonContainer","buttonRevise"],"sources":["../../../src/organism/review-congrats/index.js"],"sourcesContent":["import React, {useEffect, useRef} from 'react';\nimport AtomLottieWrapper from '../../atom/lottie-wrapper';\nimport ButtonLink from '../../atom/button-link';\nimport MoleculeReviewCardCongrats from '../../molecule/review-card-congrats';\nimport style from './style.css';\nimport propTypes from './prop-types';\n\nexport const setScroll = container => () => {\n container.current?.scrollTo &&\n container.current.scrollTo({\n left: 1000,\n behavior: 'smooth'\n });\n};\n\nconst ReviewCongrats = props => {\n const {\n 'aria-label': ariaLabel,\n 'data-name': dataName,\n animationLottie,\n title,\n cardCongratsStar,\n cardCongratsRank,\n buttonRevising,\n buttonRevisingSkill\n } = props;\n\n const container = useRef(null);\n\n useEffect(() => {\n const timer = setTimeout(setScroll(container), 2000);\n return () => timer && clearTimeout(timer);\n }, []);\n\n return (\n <div\n className={style.mainContainer}\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid=\"congrats\"\n >\n <AtomLottieWrapper\n {...animationLottie}\n loop={false}\n animationControl={'play'}\n autoplay\n data-name=\"lottie-wrapper\"\n className={style.lottie}\n backupImageClassName={style.ie11Backup}\n />\n <div className={style.containerCongrats}>\n <div className={style.title}>{title}</div>\n <div ref={container} className={style.containerCards}>\n {cardCongratsRank ? (\n <>\n <MoleculeReviewCardCongrats {...cardCongratsStar} className={style.cardStar} />\n <MoleculeReviewCardCongrats\n {...cardCongratsRank}\n timerAnimation={1800}\n className={style.cardRank}\n />\n </>\n ) : (\n <MoleculeReviewCardCongrats {...cardCongratsStar} className={style.cardStarNoRank} />\n )}\n </div>\n <div className={style.buttonContainer}>\n {buttonRevising ? (\n <ButtonLink\n {...buttonRevising}\n className={style.buttonRevise}\n data-testid=\"revise-skill-link\"\n />\n ) : null}\n {buttonRevisingSkill ? (\n <ButtonLink\n {...buttonRevisingSkill}\n className={style.buttonRevise}\n data-testid=\"revise-another-skill-link\"\n />\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nReviewCongrats.propTypes = propTypes;\n\nexport default ReviewCongrats;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,SAAf,EAA0BC,MAA1B,QAAuC,OAAvC;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,0BAAP,MAAuC,qCAAvC;AACA,OAAOC,KAAP,MAAkB,aAAlB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AAEA,OAAO,MAAMC,SAAS,GAAGC,SAAS,IAAI,MAAM;EAAA;;EAC1C,uBAAAA,SAAS,CAACC,OAAV,wCAAmBC,QAAnB,KACEF,SAAS,CAACC,OAAV,CAAkBC,QAAlB,CAA2B;IACzBC,IAAI,EAAE,IADmB;IAEzBC,QAAQ,EAAE;EAFe,CAA3B,CADF;AAKD,CANM;;AAQP,MAAMC,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IACJ,cAAcC,SADV;IAEJ,aAAaC,QAFT;IAGJC,eAHI;IAIJC,KAJI;IAKJC,gBALI;IAMJC,gBANI;IAOJC,cAPI;IAQJC;EARI,IASFR,KATJ;EAWA,MAAMN,SAAS,GAAGP,MAAM,CAAC,IAAD,CAAxB;EAEAD,SAAS,CAAC,MAAM;IACd,MAAMuB,KAAK,GAAGC,UAAU,CAACjB,SAAS,CAACC,SAAD,CAAV,EAAuB,IAAvB,CAAxB;IACA,OAAO,MAAMe,KAAK,IAAIE,YAAY,CAACF,KAAD,CAAlC;EACD,CAHQ,EAGN,EAHM,CAAT;EAKA,oBACE;IACE,SAAS,EAAElB,KAAK,CAACqB,aADnB;IAEE,cAAYX,SAFd;IAGE,aAAWC,QAHb;IAIE,eAAY;EAJd,gBAME,oBAAC,iBAAD,eACMC,eADN;IAEE,IAAI,EAAE,KAFR;IAGE,gBAAgB,EAAE,MAHpB;IAIE,QAAQ,MAJV;IAKE,aAAU,gBALZ;IAME,SAAS,EAAEZ,KAAK,CAACsB,MANnB;IAOE,oBAAoB,EAAEtB,KAAK,CAACuB;EAP9B,GANF,eAeE;IAAK,SAAS,EAAEvB,KAAK,CAACwB;EAAtB,gBACE;IAAK,SAAS,EAAExB,KAAK,CAACa;EAAtB,GAA8BA,KAA9B,CADF,eAEE;IAAK,GAAG,EAAEV,SAAV;IAAqB,SAAS,EAAEH,KAAK,CAACyB;EAAtC,GACGV,gBAAgB,gBACf,uDACE,oBAAC,0BAAD,eAAgCD,gBAAhC;IAAkD,SAAS,EAAEd,KAAK,CAAC0B;EAAnE,GADF,eAEE,oBAAC,0BAAD,eACMX,gBADN;IAEE,cAAc,EAAE,IAFlB;IAGE,SAAS,EAAEf,KAAK,CAAC2B;EAHnB,GAFF,CADe,gBAUf,oBAAC,0BAAD,eAAgCb,gBAAhC;IAAkD,SAAS,EAAEd,KAAK,CAAC4B;EAAnE,GAXJ,CAFF,eAgBE;IAAK,SAAS,EAAE5B,KAAK,CAAC6B;EAAtB,GACGb,cAAc,gBACb,oBAAC,UAAD,eACMA,cADN;IAEE,SAAS,EAAEhB,KAAK,CAAC8B,YAFnB;IAGE,eAAY;EAHd,GADa,GAMX,IAPN,EAQGb,mBAAmB,gBAClB,oBAAC,UAAD,eACMA,mBADN;IAEE,SAAS,EAAEjB,KAAK,CAAC8B,YAFnB;IAGE,eAAY;EAHd,GADkB,GAMhB,IAdN,CAhBF,CAfF,CADF;AAmDD,CAtED;;AAwEAtB,cAAc,CAACP,SAAf,2CAA2BA,SAA3B;AAEA,eAAeO,cAAf"}
@@ -66,22 +66,26 @@ const CorrectionPopin = ({
66
66
  }, /*#__PURE__*/React.createElement(ReviewCorrectionPopin, _correctionPopinProps));
67
67
  };
68
68
 
69
- const createValidateButtonStyle = (theme, brandTheme) => StyleSheet.create({
70
- validateButton: {
71
- backgroundColor: brandTheme?.colors?.primary || theme.colors.text.primary,
72
- borderRadius: 7,
73
- width: '100%'
74
- },
75
- validateButtonText: {
76
- fontSize: 14,
77
- lineHeight: 20,
78
- fontWeight: theme.fontWeight.bold,
79
- color: theme.colors.white,
80
- marginBottom: theme.spacing.small,
81
- marginTop: theme.spacing.small,
82
- textAlign: 'center'
83
- }
84
- });
69
+ const createValidateButtonStyle = (theme, brandTheme) => {
70
+ var _brandTheme$colors;
71
+
72
+ return StyleSheet.create({
73
+ validateButton: {
74
+ backgroundColor: (brandTheme == null ? void 0 : (_brandTheme$colors = brandTheme.colors) == null ? void 0 : _brandTheme$colors.primary) || theme.colors.text.primary,
75
+ borderRadius: 7,
76
+ width: '100%'
77
+ },
78
+ validateButtonText: {
79
+ fontSize: 14,
80
+ lineHeight: 20,
81
+ fontWeight: theme.fontWeight.bold,
82
+ color: theme.colors.white,
83
+ marginBottom: theme.spacing.small,
84
+ marginTop: theme.spacing.small,
85
+ textAlign: 'center'
86
+ }
87
+ });
88
+ };
85
89
 
86
90
  const ValidateButton = ({
87
91
  slideIndex,
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useCallback","useEffect","useState","useRef","Animated","Easing","StyleSheet","useWindowDimensions","View","get","getOr","Text","Answer","ReviewCorrectionPopin","useTemplateContext","Touchable","styles","create","correctionPopinWrapper","position","bottom","width","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateAnim","Value","current","translateYAnim","timing","toValue","duration","easing","bezier","useNativeDriver","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","transform","translateY","createValidateButtonStyle","theme","brandTheme","validateButton","backgroundColor","colors","primary","text","borderRadius","validateButtonText","fontSize","lineHeight","fontWeight","bold","color","white","marginBottom","spacing","small","marginTop","textAlign","ValidateButton","disabled","style","setStyle","buttonStyle","createQuestionStyle","questionHeading","justifyContent","questionOrigin","tiny","questionText","questionHelp","gray","medium","choicesContainer","flex","Question","props","answerUI","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","height","alignItems","padding","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","slideStyle","loading","parentContentTitle"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useState, useRef} from 'react';\nimport {\n Animated,\n Easing,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Touchable from '../../hoc/touchable/index.native';\nimport {Brand} from '../../variables/brand.native';\nimport {PopinProps, ReviewSlideProps, SlideProps, ValidateButtonProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateAnim = useRef(new Animated.Value(1000)).current;\n\n const translateYAnim = useCallback(() => {\n Animated.timing(translateAnim, {\n toValue: 0,\n duration: 800,\n easing: Easing.bezier(0.37, 0, 0.63, 1),\n useNativeDriver: true\n }).start();\n }, [translateAnim]);\n\n if (animateCorrectionPopin) {\n translateYAnim();\n }\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <Animated.View\n style={{\n ...styles.correctionPopinWrapper,\n transform: [\n {\n translateY: translateAnim\n }\n ]\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleValidateButtonType = {\n validateButton: ViewStyle;\n validateButtonText: ViewStyle;\n};\n\nconst createValidateButtonStyle = (theme: Theme, brandTheme: Brand): StyleValidateButtonType =>\n StyleSheet.create({\n validateButton: {\n backgroundColor: brandTheme?.colors?.primary || theme.colors.text.primary,\n borderRadius: 7,\n width: '100%'\n },\n validateButtonText: {\n fontSize: 14,\n lineHeight: 20,\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.white,\n marginBottom: theme.spacing.small,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n }\n });\n\nconst ValidateButton = ({slideIndex, validateButton}: ValidateButtonProps) => {\n const {label, onClick, disabled} = validateButton;\n const {theme, brandTheme} = useTemplateContext();\n const [style, setStyle] = useState<StyleValidateButtonType>();\n\n useEffect(() => {\n const buttonStyle = createValidateButtonStyle(theme, brandTheme);\n setStyle(buttonStyle);\n }, [theme, brandTheme]);\n\n if (!style) return null;\n\n return (\n <Touchable\n style={style.validateButton}\n onPress={onClick}\n disabled={disabled}\n accessibilityLabel={label}\n testID={`slide-validate-button-${slideIndex}`}\n >\n <Text style={style.validateButtonText}>{label}</Text>\n </Touchable>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesContainer: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesContainer: {\n flex: 1,\n width: '100%',\n justifyContent: 'center'\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n <View style={style.choicesContainer}>\n <Answer {...answerUI} />\n </View>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 34 + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <View style={slideStyle.slide}>\n {loading ? (\n // <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n <Text>@todo loader {num}</Text>\n ) : (\n <>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n key=\"validate-button\"\n />\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </>\n )}\n </View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useCallback","useEffect","useState","useRef","Animated","Easing","StyleSheet","useWindowDimensions","View","get","getOr","Text","Answer","ReviewCorrectionPopin","useTemplateContext","Touchable","styles","create","correctionPopinWrapper","position","bottom","width","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateAnim","Value","current","translateYAnim","timing","toValue","duration","easing","bezier","useNativeDriver","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","transform","translateY","createValidateButtonStyle","theme","brandTheme","validateButton","backgroundColor","colors","primary","text","borderRadius","validateButtonText","fontSize","lineHeight","fontWeight","bold","color","white","marginBottom","spacing","small","marginTop","textAlign","ValidateButton","disabled","style","setStyle","buttonStyle","createQuestionStyle","questionHeading","justifyContent","questionOrigin","tiny","questionText","questionHelp","gray","medium","choicesContainer","flex","Question","props","answerUI","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","height","alignItems","padding","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","slideStyle","loading","parentContentTitle"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useState, useRef} from 'react';\nimport {\n Animated,\n Easing,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Touchable from '../../hoc/touchable/index.native';\nimport {Brand} from '../../variables/brand.native';\nimport {PopinProps, ReviewSlideProps, SlideProps, ValidateButtonProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateAnim = useRef(new Animated.Value(1000)).current;\n\n const translateYAnim = useCallback(() => {\n Animated.timing(translateAnim, {\n toValue: 0,\n duration: 800,\n easing: Easing.bezier(0.37, 0, 0.63, 1),\n useNativeDriver: true\n }).start();\n }, [translateAnim]);\n\n if (animateCorrectionPopin) {\n translateYAnim();\n }\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <Animated.View\n style={{\n ...styles.correctionPopinWrapper,\n transform: [\n {\n translateY: translateAnim\n }\n ]\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleValidateButtonType = {\n validateButton: ViewStyle;\n validateButtonText: ViewStyle;\n};\n\nconst createValidateButtonStyle = (theme: Theme, brandTheme: Brand): StyleValidateButtonType =>\n StyleSheet.create({\n validateButton: {\n backgroundColor: brandTheme?.colors?.primary || theme.colors.text.primary,\n borderRadius: 7,\n width: '100%'\n },\n validateButtonText: {\n fontSize: 14,\n lineHeight: 20,\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.white,\n marginBottom: theme.spacing.small,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n }\n });\n\nconst ValidateButton = ({slideIndex, validateButton}: ValidateButtonProps) => {\n const {label, onClick, disabled} = validateButton;\n const {theme, brandTheme} = useTemplateContext();\n const [style, setStyle] = useState<StyleValidateButtonType>();\n\n useEffect(() => {\n const buttonStyle = createValidateButtonStyle(theme, brandTheme);\n setStyle(buttonStyle);\n }, [theme, brandTheme]);\n\n if (!style) return null;\n\n return (\n <Touchable\n style={style.validateButton}\n onPress={onClick}\n disabled={disabled}\n accessibilityLabel={label}\n testID={`slide-validate-button-${slideIndex}`}\n >\n <Text style={style.validateButtonText}>{label}</Text>\n </Touchable>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesContainer: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesContainer: {\n flex: 1,\n width: '100%',\n justifyContent: 'center'\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n <View style={style.choicesContainer}>\n <Answer {...answerUI} />\n </View>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 34 + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <View style={slideStyle.slide}>\n {loading ? (\n // <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n <Text>@todo loader {num}</Text>\n ) : (\n <>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n key=\"validate-button\"\n />\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </>\n )}\n </View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
@@ -123,11 +123,13 @@ const Choice = ({
123
123
  }
124
124
 
125
125
  if (isSelected) {
126
+ var _brandTheme$colors, _brandTheme$colors2;
127
+
126
128
  textStyle.push(styleSheet.textSelected); // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread
127
129
 
128
130
  const selectionStyle = brandTheme && _extends({
129
- backgroundColor: brandTheme.colors?.primary,
130
- borderColor: brandTheme.colors?.primary
131
+ backgroundColor: (_brandTheme$colors = brandTheme.colors) == null ? void 0 : _brandTheme$colors.primary,
132
+ borderColor: (_brandTheme$colors2 = brandTheme.colors) == null ? void 0 : _brandTheme$colors2.primary
131
133
  }, url ? {
132
134
  borderTopRightRadius: theme.radius.regular,
133
135
  borderBottomRightRadius: theme.radius.regular