@pie-element/categorize 7.3.1-next.22 → 7.3.1-next.26

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.
@@ -182,7 +182,7 @@ var Categorize = /*#__PURE__*/function (_React$Component) {
182
182
  display: 'flex',
183
183
  flex: 1
184
184
  }
185
- }, rowLabels && nbOfRows && /*#__PURE__*/_react["default"].createElement("div", {
185
+ }, !!(rowLabels && nbOfRows) && /*#__PURE__*/_react["default"].createElement("div", {
186
186
  style: {
187
187
  display: 'grid',
188
188
  marginRight: '20px'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/index.jsx"],"names":["log","removeHTMLTags","html","tmp","document","createElement","innerHTML","value","textContent","innerText","trim","Categorize","props","categoryId","draggedChoice","session","onAnswersChange","answers","id","choiceIndex","c","setState","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","classes","model","choicesPosition","note","showNote","env","mode","role","style","getPositionDirection","categories","choices","correctResponse","correct","disabled","rowLabels","categoriesPerRow","nbOfRows","Math","ceil","length","displayNote","mainContainer","teacherInstructions","hidden","visible","collapsible","toggleShowCorrect","prompt","categorize","display","flex","marginRight","slice","map","label","index","alignItems","justifyContent","__html","dropChoice","removeChoice","rationale","correctness","feedback","React","Component","PropTypes","object","isRequired","shape","arrayOf","choice","string","category","func","CategorizeProvider","uid","generateId","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","marginBottom","verticalAlign","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Choices from './choices';\nimport Categories from './categories';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n buildState,\n removeChoiceFromCategory,\n moveChoiceToCategory\n} from '@pie-lib/categorize';\nimport { withDragContext, uid } from '@pie-lib/drag';\nimport {color, Feedback, Collapsible, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize');\n\nconst removeHTMLTags = html => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Categorize extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string\n })\n )\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired\n };\n\n static defaultProps = {\n disabled: false\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false\n };\n }\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange } = this.props;\n log(\n '[dropChoice] category: ',\n draggedChoice.categoryId,\n 'choice: ',\n draggedChoice\n );\n\n const answers = moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n session.answers\n );\n\n onAnswersChange(answers);\n };\n\n removeChoice = c => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(\n c.id,\n c.categoryId,\n c.choiceIndex,\n session.answers\n );\n onAnswersChange(answers);\n };\n\n UNSAFE_componentWillReceiveProps() {\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n render() {\n const { classes, model, session } = this.props;\n const { showCorrect } = this.state;\n const { choicesPosition, note, showNote, env } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition)\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow } = model;\n const nbOfRows = categories && Math.ceil(categories.length / categoriesPerRow) || 0;\n const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;\n\n return (\n <div className={classes.mainContainer}>\n {\n model.teacherInstructions && hasText(model.teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )\n }\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n {\n model.prompt && removeHTMLTags(model.prompt) &&\n <div\n className={classes.prompt}\n >\n <PreviewPrompt prompt={model.prompt} />\n </div>\n }\n <div className={classes.categorize} style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n {\n rowLabels && nbOfRows && (\n <div style={{ display: 'grid', marginRight: '20px' }}>\n {rowLabels.slice(0, nbOfRows).map((label, index) => (\n <div\n key={index}\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center'\n }}\n dangerouslySetInnerHTML={{\n __html: label\n }}\n />\n ))}\n </div>\n )\n }\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n />\n </div>\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n {\n model.rationale && hasText(model.rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )\n }\n {\n model.correctness &&\n model.feedback &&\n !showCorrect && (\n <Feedback\n correctness={model.correctness}\n feedback={model.feedback}\n />\n )\n }\n </div>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n }\n\n render() {\n return (\n <uid.Provider value={this.uid}>\n <Categorize { ...this.props } />\n </uid.Provider>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background()\n },\n prompt: {\n marginBottom: '35px',\n verticalAlign: 'middle'\n },\n note: {\n padding: '5px 0'\n },\n categorize: {\n marginBottom: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column'\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2\n }\n});\n\nexport default withDragContext(withStyles(styles)(CategorizeProvider));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/categorize/index.jsx"],"names":["log","removeHTMLTags","html","tmp","document","createElement","innerHTML","value","textContent","innerText","trim","Categorize","props","categoryId","draggedChoice","session","onAnswersChange","answers","id","choiceIndex","c","setState","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","classes","model","choicesPosition","note","showNote","env","mode","role","style","getPositionDirection","categories","choices","correctResponse","correct","disabled","rowLabels","categoriesPerRow","nbOfRows","Math","ceil","length","displayNote","mainContainer","teacherInstructions","hidden","visible","collapsible","toggleShowCorrect","prompt","categorize","display","flex","marginRight","slice","map","label","index","alignItems","justifyContent","__html","dropChoice","removeChoice","rationale","correctness","feedback","React","Component","PropTypes","object","isRequired","shape","arrayOf","choice","string","category","func","CategorizeProvider","uid","generateId","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","marginBottom","verticalAlign","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Choices from './choices';\nimport Categories from './categories';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n buildState,\n removeChoiceFromCategory,\n moveChoiceToCategory\n} from '@pie-lib/categorize';\nimport { withDragContext, uid } from '@pie-lib/drag';\nimport {color, Feedback, Collapsible, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize');\n\nconst removeHTMLTags = html => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Categorize extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string\n })\n )\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired\n };\n\n static defaultProps = {\n disabled: false\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false\n };\n }\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange } = this.props;\n log(\n '[dropChoice] category: ',\n draggedChoice.categoryId,\n 'choice: ',\n draggedChoice\n );\n\n const answers = moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n session.answers\n );\n\n onAnswersChange(answers);\n };\n\n removeChoice = c => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(\n c.id,\n c.categoryId,\n c.choiceIndex,\n session.answers\n );\n onAnswersChange(answers);\n };\n\n UNSAFE_componentWillReceiveProps() {\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n render() {\n const { classes, model, session } = this.props;\n const { showCorrect } = this.state;\n const { choicesPosition, note, showNote, env } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition)\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow } = model;\n const nbOfRows = categories && Math.ceil(categories.length / categoriesPerRow) || 0;\n const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;\n\n return (\n <div className={classes.mainContainer}>\n {\n model.teacherInstructions && hasText(model.teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )\n }\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n {\n model.prompt && removeHTMLTags(model.prompt) &&\n <div\n className={classes.prompt}\n >\n <PreviewPrompt prompt={model.prompt} />\n </div>\n }\n <div className={classes.categorize} style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n {\n !!(rowLabels && nbOfRows) && (\n <div style={{ display: 'grid', marginRight: '20px' }}>\n {rowLabels.slice(0, nbOfRows).map((label, index) => (\n <div\n key={index}\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center'\n }}\n dangerouslySetInnerHTML={{\n __html: label\n }}\n />\n ))}\n </div>\n )\n }\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n />\n </div>\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n {\n model.rationale && hasText(model.rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )\n }\n {\n model.correctness &&\n model.feedback &&\n !showCorrect && (\n <Feedback\n correctness={model.correctness}\n feedback={model.feedback}\n />\n )\n }\n </div>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n }\n\n render() {\n return (\n <uid.Provider value={this.uid}>\n <Categorize { ...this.props } />\n </uid.Provider>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background()\n },\n prompt: {\n marginBottom: '35px',\n verticalAlign: 'middle'\n },\n note: {\n padding: '5px 0'\n },\n categorize: {\n marginBottom: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column'\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2\n }\n});\n\nexport default withDragContext(withStyles(styles)(CategorizeProvider));\n"],"file":"index.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "7.3.1-next.22+781e1a956",
7
+ "version": "7.3.1-next.26+8543d5a43",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
@@ -24,7 +24,7 @@
24
24
  "react-dnd": "^14.0.5",
25
25
  "react-dom": "^16.8.1"
26
26
  },
27
- "gitHead": "781e1a95633f2c734e1058ab19615de645707a33",
27
+ "gitHead": "8543d5a437507db2a81758e07855ffc550d00f25",
28
28
  "scripts": {
29
29
  "postpublish": "../../scripts/postpublish"
30
30
  },