@pie-element/multi-trait-rubric 2.10.2 → 2.10.3-next.106

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.
@@ -85,7 +85,7 @@ var _default = {
85
85
  },
86
86
  minNoOfTraits: 1,
87
87
  maxNoOfTraits: 10,
88
- minNoOfScales: 2,
88
+ minNoOfScales: 1,
89
89
  maxNoOfScales: 10,
90
90
  defaultTraitLabel: 'Trait'
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","visibleToStudent","halfScoring","pointLabels","description","standards","scales","excludeZero","maxPointsEnabled","addScaleEnabled","configuration","excludeZeroDialogBoxContent","title","text","includeZeroDialogBoxContent","deleteScaleDialogBoxContent","maxPointsDialogBoxContent","settingsPanelDisabled","spellCheck","label","settings","enabled","showExcludeZero","showScorePointLabels","showDescription","showVisibleToStudent","showHalfScoring","width","showStandards","showLevelTagInput","dragAndDrop","showMaxPoint","addScale","minNoOfTraits","maxNoOfTraits","minNoOfScales","maxNoOfScales","defaultTraitLabel"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,gBAAgB,EAAE,IADb;AAELC,IAAAA,WAAW,EAAE,KAFR;AAGLC,IAAAA,WAAW,EAAE,IAHR;AAILC,IAAAA,WAAW,EAAE,KAJR;AAKLC,IAAAA,SAAS,EAAE,KALN;AAMLC,IAAAA,MAAM,EAAE,EANH;AAOLC,IAAAA,WAAW,EAAE,KAPR;AAQLC,IAAAA,gBAAgB,EAAE,IARb;AASLC,IAAAA,eAAe,EAAE;AATZ,GADM;AAYbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,2BAA2B,EAAE;AAC3BC,MAAAA,KAAK,EAAE,2CADoB;AAE3BC,MAAAA,IAAI;AAFuB,KADhB;AAmBbC,IAAAA,2BAA2B,EAAE;AAC3BF,MAAAA,KAAK,EAAE,yCADoB;AAE3BC,MAAAA,IAAI;AAFuB,KAnBhB;AAqCbE,IAAAA,2BAA2B,EAAE;AAC3BH,MAAAA,KAAK,EAAE,cADoB;AAE3BC,MAAAA,IAAI,EAAE;AAFqB,KArChB;AAyCbG,IAAAA,yBAAyB,EAAE;AACzBJ,MAAAA,KAAK,EAAE,wBADkB;AAEzBC,MAAAA,IAAI;AAFqB,KAzCd;AA+CbI,IAAAA,qBAAqB,EAAE,KA/CV;AAgDbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KAhDC;AAqDbC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KArDJ;AAyDbI,IAAAA,oBAAoB,EAAE;AACpBH,MAAAA,QAAQ,EAAE,IADU;AAEpBD,MAAAA,KAAK,EAAE;AAFa,KAzDT;AA6DbK,IAAAA,eAAe,EAAE;AACfJ,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KA7DJ;AAiEbM,IAAAA,oBAAoB,EAAE;AACpBL,MAAAA,QAAQ,EAAE,IADU;AAEpBD,MAAAA,KAAK,EAAE;AAFa,KAjET;AAqEbO,IAAAA,eAAe,EAAE;AACfN,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KArEJ;AAyEbQ,IAAAA,KAAK,EAAE,OAzEM;AA0Eb;AACAC,IAAAA,aAAa,EAAE;AACbR,MAAAA,QAAQ,EAAE,KADG;AAEbD,MAAAA,KAAK,EAAE;AAFM,KA3EF;AA+EbU,IAAAA,iBAAiB,EAAE;AACjBT,MAAAA,QAAQ,EAAE,KADO;AAEjBD,MAAAA,KAAK,EAAE,sBAFU;AAGjBE,MAAAA,OAAO,EAAE;AAHQ,KA/EN;AAoFbS,IAAAA,WAAW,EAAE;AACXV,MAAAA,QAAQ,EAAE,IADC;AAEXD,MAAAA,KAAK,EAAE,sBAFI;AAGXE,MAAAA,OAAO,EAAE;AAHE,KApFA;AAyFbU,IAAAA,YAAY,EAAE;AACZX,MAAAA,QAAQ,EAAE,IADE;AAEZD,MAAAA,KAAK,EAAE;AAFK,KAzFD;AA6Fba,IAAAA,QAAQ,EAAE;AACRZ,MAAAA,QAAQ,EAAE,IADF;AAERD,MAAAA,KAAK,EAAE;AAFC,KA7FG;AAiGbc,IAAAA,aAAa,EAAE,CAjGF;AAkGbC,IAAAA,aAAa,EAAE,EAlGF;AAmGbC,IAAAA,aAAa,EAAE,CAnGF;AAoGbC,IAAAA,aAAa,EAAE,EApGF;AAqGbC,IAAAA,iBAAiB,EAAE;AArGN;AAZF,C","sourcesContent":["export default {\n model: {\n visibleToStudent: true,\n halfScoring: false,\n pointLabels: true,\n description: false,\n standards: false,\n scales: [],\n excludeZero: false,\n maxPointsEnabled: true,\n addScaleEnabled: true,\n },\n configuration: {\n excludeZeroDialogBoxContent: {\n title: 'Exclude 0 (Zero) from Score Point Values.',\n text: `<div>\n You are about to exclude 0 from score point values.\n <br/>\n Some of the existing data has to be changed.\n <br/>\n Please choose if you want to:\n <ul>\n <li>\n shift Labels and Descriptions to the left\n </li>\n <li>\n remove 0 column with its Label and Description\n </li>\n </ul>\n </div>`,\n },\n includeZeroDialogBoxContent: {\n title: 'Include 0 (Zero) in Score Point Values.',\n text: `<div>\n You are about to include 0 in score point values.\n <br/>\n Some of the existing data has to be changed.\n <br/>\n Please choose if you want to:\n <ul>\n <li>\n shift Labels and Descriptions to the right\n </li>\n <li>\n add 0 column with empty Label and Descriptions\n </li>\n </ul>\n </div>`,\n },\n deleteScaleDialogBoxContent: {\n title: 'Delete Scale',\n text: 'Are you sure you want to delete this scale?',\n },\n maxPointsDialogBoxContent: {\n title: 'Decreasing Max Points.',\n text: ` You are about to decrease max score point value.\n <br/>\n All the Labels and Descriptions for scores above Max Point will be deleted.`,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n showExcludeZero: {\n settings: true,\n label: 'Exclude Zero',\n },\n showScorePointLabels: {\n settings: true,\n label: 'Show Score Point Labels',\n },\n showDescription: {\n settings: true,\n label: 'Show Description',\n },\n showVisibleToStudent: {\n settings: true,\n label: 'Visible to Student',\n },\n showHalfScoring: {\n settings: true,\n label: 'Half Scoring',\n },\n width: '900px',\n // these should not be set to true (should not be used) for now\n showStandards: {\n settings: false,\n label: 'Show Standards',\n },\n showLevelTagInput: {\n settings: false,\n label: 'Show Level Tag Input',\n enabled: false,\n },\n dragAndDrop: {\n settings: true,\n label: 'Enable Drag and Drop',\n enabled: false,\n },\n showMaxPoint: {\n settings: true,\n label: 'Show Max Points Dropdown',\n },\n addScale: {\n settings: true,\n label: 'Add Scale Available',\n },\n minNoOfTraits: 1,\n maxNoOfTraits: 10,\n minNoOfScales: 2,\n maxNoOfScales: 10,\n defaultTraitLabel: 'Trait'\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","visibleToStudent","halfScoring","pointLabels","description","standards","scales","excludeZero","maxPointsEnabled","addScaleEnabled","configuration","excludeZeroDialogBoxContent","title","text","includeZeroDialogBoxContent","deleteScaleDialogBoxContent","maxPointsDialogBoxContent","settingsPanelDisabled","spellCheck","label","settings","enabled","showExcludeZero","showScorePointLabels","showDescription","showVisibleToStudent","showHalfScoring","width","showStandards","showLevelTagInput","dragAndDrop","showMaxPoint","addScale","minNoOfTraits","maxNoOfTraits","minNoOfScales","maxNoOfScales","defaultTraitLabel"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,gBAAgB,EAAE,IADb;AAELC,IAAAA,WAAW,EAAE,KAFR;AAGLC,IAAAA,WAAW,EAAE,IAHR;AAILC,IAAAA,WAAW,EAAE,KAJR;AAKLC,IAAAA,SAAS,EAAE,KALN;AAMLC,IAAAA,MAAM,EAAE,EANH;AAOLC,IAAAA,WAAW,EAAE,KAPR;AAQLC,IAAAA,gBAAgB,EAAE,IARb;AASLC,IAAAA,eAAe,EAAE;AATZ,GADM;AAYbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,2BAA2B,EAAE;AAC3BC,MAAAA,KAAK,EAAE,2CADoB;AAE3BC,MAAAA,IAAI;AAFuB,KADhB;AAmBbC,IAAAA,2BAA2B,EAAE;AAC3BF,MAAAA,KAAK,EAAE,yCADoB;AAE3BC,MAAAA,IAAI;AAFuB,KAnBhB;AAqCbE,IAAAA,2BAA2B,EAAE;AAC3BH,MAAAA,KAAK,EAAE,cADoB;AAE3BC,MAAAA,IAAI,EAAE;AAFqB,KArChB;AAyCbG,IAAAA,yBAAyB,EAAE;AACzBJ,MAAAA,KAAK,EAAE,wBADkB;AAEzBC,MAAAA,IAAI;AAFqB,KAzCd;AA+CbI,IAAAA,qBAAqB,EAAE,KA/CV;AAgDbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KAhDC;AAqDbC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KArDJ;AAyDbI,IAAAA,oBAAoB,EAAE;AACpBH,MAAAA,QAAQ,EAAE,IADU;AAEpBD,MAAAA,KAAK,EAAE;AAFa,KAzDT;AA6DbK,IAAAA,eAAe,EAAE;AACfJ,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KA7DJ;AAiEbM,IAAAA,oBAAoB,EAAE;AACpBL,MAAAA,QAAQ,EAAE,IADU;AAEpBD,MAAAA,KAAK,EAAE;AAFa,KAjET;AAqEbO,IAAAA,eAAe,EAAE;AACfN,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KArEJ;AAyEbQ,IAAAA,KAAK,EAAE,OAzEM;AA0Eb;AACAC,IAAAA,aAAa,EAAE;AACbR,MAAAA,QAAQ,EAAE,KADG;AAEbD,MAAAA,KAAK,EAAE;AAFM,KA3EF;AA+EbU,IAAAA,iBAAiB,EAAE;AACjBT,MAAAA,QAAQ,EAAE,KADO;AAEjBD,MAAAA,KAAK,EAAE,sBAFU;AAGjBE,MAAAA,OAAO,EAAE;AAHQ,KA/EN;AAoFbS,IAAAA,WAAW,EAAE;AACXV,MAAAA,QAAQ,EAAE,IADC;AAEXD,MAAAA,KAAK,EAAE,sBAFI;AAGXE,MAAAA,OAAO,EAAE;AAHE,KApFA;AAyFbU,IAAAA,YAAY,EAAE;AACZX,MAAAA,QAAQ,EAAE,IADE;AAEZD,MAAAA,KAAK,EAAE;AAFK,KAzFD;AA6Fba,IAAAA,QAAQ,EAAE;AACRZ,MAAAA,QAAQ,EAAE,IADF;AAERD,MAAAA,KAAK,EAAE;AAFC,KA7FG;AAiGbc,IAAAA,aAAa,EAAE,CAjGF;AAkGbC,IAAAA,aAAa,EAAE,EAlGF;AAmGbC,IAAAA,aAAa,EAAE,CAnGF;AAoGbC,IAAAA,aAAa,EAAE,EApGF;AAqGbC,IAAAA,iBAAiB,EAAE;AArGN;AAZF,C","sourcesContent":["export default {\n model: {\n visibleToStudent: true,\n halfScoring: false,\n pointLabels: true,\n description: false,\n standards: false,\n scales: [],\n excludeZero: false,\n maxPointsEnabled: true,\n addScaleEnabled: true,\n },\n configuration: {\n excludeZeroDialogBoxContent: {\n title: 'Exclude 0 (Zero) from Score Point Values.',\n text: `<div>\n You are about to exclude 0 from score point values.\n <br/>\n Some of the existing data has to be changed.\n <br/>\n Please choose if you want to:\n <ul>\n <li>\n shift Labels and Descriptions to the left\n </li>\n <li>\n remove 0 column with its Label and Description\n </li>\n </ul>\n </div>`,\n },\n includeZeroDialogBoxContent: {\n title: 'Include 0 (Zero) in Score Point Values.',\n text: `<div>\n You are about to include 0 in score point values.\n <br/>\n Some of the existing data has to be changed.\n <br/>\n Please choose if you want to:\n <ul>\n <li>\n shift Labels and Descriptions to the right\n </li>\n <li>\n add 0 column with empty Label and Descriptions\n </li>\n </ul>\n </div>`,\n },\n deleteScaleDialogBoxContent: {\n title: 'Delete Scale',\n text: 'Are you sure you want to delete this scale?',\n },\n maxPointsDialogBoxContent: {\n title: 'Decreasing Max Points.',\n text: ` You are about to decrease max score point value.\n <br/>\n All the Labels and Descriptions for scores above Max Point will be deleted.`,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n showExcludeZero: {\n settings: true,\n label: 'Exclude Zero',\n },\n showScorePointLabels: {\n settings: true,\n label: 'Show Score Point Labels',\n },\n showDescription: {\n settings: true,\n label: 'Show Description',\n },\n showVisibleToStudent: {\n settings: true,\n label: 'Visible to Student',\n },\n showHalfScoring: {\n settings: true,\n label: 'Half Scoring',\n },\n width: '900px',\n // these should not be set to true (should not be used) for now\n showStandards: {\n settings: false,\n label: 'Show Standards',\n },\n showLevelTagInput: {\n settings: false,\n label: 'Show Level Tag Input',\n enabled: false,\n },\n dragAndDrop: {\n settings: true,\n label: 'Enable Drag and Drop',\n enabled: false,\n },\n showMaxPoint: {\n settings: true,\n label: 'Show Max Points Dropdown',\n },\n addScale: {\n settings: true,\n label: 'Add Scale Available',\n },\n minNoOfTraits: 1,\n maxNoOfTraits: 10,\n minNoOfScales: 1,\n maxNoOfScales: 10,\n defaultTraitLabel: 'Trait'\n },\n};\n"],"file":"defaults.js"}
@@ -344,7 +344,7 @@ var Scale = /*#__PURE__*/function (_React$Component) {
344
344
  }, {
345
345
  key: "componentDidUpdate",
346
346
  value: function componentDidUpdate(prevProps) {
347
- if (prevProps.scale.maxPoints !== this.props.scale.maxPoints) {
347
+ if (prevProps.scale.maxPoints !== this.props.scale.maxPoints || prevProps.showDescription !== this.props.showDescription) {
348
348
  this.setState({
349
349
  showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth
350
350
  });
@@ -448,6 +448,7 @@ var Scale = /*#__PURE__*/function (_React$Component) {
448
448
  key: index,
449
449
  index: index,
450
450
  trait: trait,
451
+ traitLabel: traitLabel || 'Trait',
451
452
  scorePointsValues: scorePointsValues,
452
453
  scorePointsLabels: scorePointsLabels,
453
454
  onTraitRemoved: function onTraitRemoved() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scale.jsx"],"names":["AdjustedBlockWidth","BlockWidth","styles","theme","scaleWrapper","display","flexDirection","wordBreak","position","marginBottom","spacing","unit","maxPoints","width","marginTop","trait","background","color","secondaryBackground","padding","Scale","showDecreaseMaxPointsDialog","showDeleteScaleDialog","showDeleteTraitDialog","currentPosition","showRight","showLeft","showInfoDialog","infoDialogText","newState","setState","target","props","scale","scaleIndex","onScaleChanged","scorePointsLabels","traits","numberValue","parseInt","value","secondaryBlockRef","scrollWidth","offsetWidth","showDecreaseMaxPointsModal","newMaxPoints","i","push","forEach","index","scorePointsDescriptors","set","undefined","state","hideDecreaseMaxPointsModal","onScaleRemoved","hideDeleteScaleModal","traitToDeleteIndex","minNoOfTraits","traitLabel","length","toLowerCase","slice","hideDeleteTraitModal","maxNoOfTraits","name","description","standards","Array","from","traitIndex","source","newIndex","oldIndex","cup","remainingTraits","filter","item","newTraits","decreasedPosition","increasedPosition","prevProps","nextProps","excludeZero","showStandards","showDescription","classes","showLevelTagInput","showScorePointLabels","enableDragAndDrop","spellCheck","uploadSoundSupport","maxPointsEnabled","scorePointsValues","secondaryBlockWidth","DragHandleSpace","PrimaryBlockWidth","pointValue","ref","params","label","updateMaxPointsFieldValue","showDeleteScaleModal","map","showDeleteTraitModal","onTraitChanged","onTraitDropped","decreasePosition","increasePosition","onTraitAdded","__html","changeMaxPoints","deleteScale","onTraitRemoved","React","Component","propTypes","PropTypes","object","shape","number","arrayOf","string","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nimport { withDragContext } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nimport TraitsHeader from './traitsHeader';\nimport TraitTile from './trait';\nimport { Arrow, BlockWidth, DragHandleSpace, MultiTraitButton, PrimaryBlockWidth } from './common';\nimport { DecreaseMaxPoints, DeleteScale, DeleteTrait, InfoDialog } from './modals';\n\nconst AdjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n\nconst styles = (theme) => ({\n scaleWrapper: {\n display: 'flex',\n flexDirection: 'column',\n wordBreak: 'break-word',\n position: 'relative',\n marginBottom: theme.spacing.unit * 2.5,\n },\n maxPoints: {\n width: '300px',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 4,\n },\n trait: {\n background: color.secondaryBackground(),\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n padding: theme.spacing.unit * 2,\n },\n});\n\nexport class Scale extends React.Component {\n state = {\n showDecreaseMaxPointsDialog: false,\n showDeleteScaleDialog: false,\n showDeleteTraitDialog: false,\n currentPosition: 0,\n showRight: null,\n showLeft: null,\n showInfoDialog: false,\n infoDialogText: '',\n };\n\n set = (newState) => this.setState(newState);\n\n componentDidMount() {\n if (this.state.showRight === null && this.secondaryBlockRef) {\n this.setState({ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.scale.maxPoints !== this.props.scale.maxPoints) {\n this.setState({ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.excludeZero !== this.props.excludeZero ||\n nextProps.showStandards !== this.props.showStandards ||\n nextProps.showDescription !== this.props.showDescription\n ) {\n this.setState({\n currentPosition: 0,\n showLeft: false,\n showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n });\n }\n }\n\n // Max Points\n updateMaxPointsFieldValue = ({ target }) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { maxPoints, scorePointsLabels, traits } = scale;\n\n const numberValue = parseInt(target.value, 10);\n\n this.setState({\n currentPosition: 0,\n showLeft: false,\n showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n });\n\n if (numberValue < maxPoints) {\n this.showDecreaseMaxPointsModal({ newMaxPoints: numberValue });\n } else {\n for (let i = 0; i <= numberValue; i++) {\n if (!scorePointsLabels[i]) {\n scorePointsLabels.push('');\n }\n\n traits.forEach((trait, index) => {\n if (!traits[index].scorePointsDescriptors[i]) {\n traits[index].scorePointsDescriptors.push('');\n }\n });\n }\n\n onScaleChanged(scaleIndex, { maxPoints: numberValue, scorePointsLabels, traits });\n }\n };\n\n showDecreaseMaxPointsModal = ({ newMaxPoints }) => this.set({ showDecreaseMaxPointsDialog: true, newMaxPoints });\n\n hideDecreaseMaxPointsModal = () => this.set({ showDecreaseMaxPointsDialog: false, newMaxPoints: undefined });\n\n changeMaxPoints = () => {\n const { newMaxPoints } = this.state || {};\n const { scaleIndex, onScaleChanged } = this.props || {};\n\n if (newMaxPoints) {\n onScaleChanged(scaleIndex, { maxPoints: newMaxPoints });\n }\n\n this.hideDecreaseMaxPointsModal();\n };\n\n // Delete Scale\n showDeleteScaleModal = () => this.set({ showDeleteScaleDialog: true });\n\n hideDeleteScaleModal = () => this.set({ showDeleteScaleDialog: false });\n\n deleteScale = () => {\n const { scaleIndex, onScaleRemoved } = this.props || {};\n\n this.hideDeleteScaleModal();\n\n onScaleRemoved(scaleIndex);\n };\n\n // Delete Trait\n showDeleteTraitModal = (traitToDeleteIndex) => this.set({ showDeleteTraitDialog: true, traitToDeleteIndex });\n\n hideDeleteTraitModal = () => this.set({ showDeleteTraitDialog: false, traitToDeleteIndex: undefined });\n\n onTraitRemoved = () => {\n const { traitToDeleteIndex } = this.state;\n const { scale, scaleIndex, onScaleChanged, minNoOfTraits } = this.props || {};\n let { traits, traitLabel } = scale || {};\n\n if (traitToDeleteIndex < 0 || traitToDeleteIndex >= traits.length) return;\n\n if (traits.length === minNoOfTraits) {\n this.set({\n infoDialogText: `There can't be less than ${minNoOfTraits} ${(traitLabel || 'trait').toLowerCase()}s.`,\n showInfoDialog: true,\n });\n\n return false;\n }\n\n traits = [...traits.slice(0, traitToDeleteIndex), ...traits.slice(traitToDeleteIndex + 1)];\n\n onScaleChanged(scaleIndex, { traits });\n\n this.hideDeleteTraitModal();\n };\n\n onTraitAdded = () => {\n const { scale, scaleIndex, onScaleChanged, maxNoOfTraits } = this.props || {};\n const { traits, scorePointsLabels } = scale || {};\n\n if (traits.length === maxNoOfTraits) {\n this.set({\n infoDialogText: `There can't be more than ${maxNoOfTraits} scales.`,\n showInfoDialog: true,\n });\n\n return false;\n }\n\n traits.push({\n name: '',\n description: '',\n standards: [],\n scorePointsDescriptors: Array.from({ length: scorePointsLabels.length }, () => ''),\n });\n\n onScaleChanged(scaleIndex, { traits });\n };\n\n onTraitChanged = (traitIndex, trait) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { traits } = scale || {};\n\n if (traitIndex >= 0 && traitIndex < traits.length) {\n traits[traitIndex] = trait;\n\n onScaleChanged(scaleIndex, { traits });\n }\n };\n\n onTraitDropped = (source, newIndex) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { traits } = scale || {};\n const { index: oldIndex } = source;\n const cup = traits[oldIndex];\n\n const remainingTraits = traits.filter((item, index) => index !== oldIndex);\n\n const newTraits = [...remainingTraits.slice(0, newIndex), cup, ...remainingTraits.slice(newIndex)];\n\n onScaleChanged(scaleIndex, { traits: newTraits });\n };\n\n decreasePosition = () => {\n const { currentPosition } = this.state;\n const decreasedPosition =\n currentPosition - (currentPosition === AdjustedBlockWidth / 2 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);\n\n this.setState({\n currentPosition: decreasedPosition,\n showRight: decreasedPosition < this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n showLeft: decreasedPosition > 0,\n });\n };\n\n increasePosition = () => {\n const { currentPosition } = this.state;\n const increasedPosition = currentPosition + (currentPosition === 0 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);\n\n this.setState({\n currentPosition: increasedPosition,\n showRight: increasedPosition < this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n showLeft: increasedPosition > 0,\n });\n };\n\n render() {\n const {\n classes,\n scale,\n scaleIndex,\n showStandards,\n onScaleChanged,\n excludeZero,\n showDescription,\n showLevelTagInput,\n showScorePointLabels,\n enableDragAndDrop,\n spellCheck,\n width,\n uploadSoundSupport,\n maxPointsEnabled,\n } = this.props || {};\n\n const { maxPoints, scorePointsLabels, traitLabel, traits } = scale || {};\n\n const {\n showDecreaseMaxPointsDialog,\n showDeleteScaleDialog,\n showDeleteTraitDialog,\n currentPosition,\n showRight,\n showLeft,\n showInfoDialog,\n infoDialogText,\n } = this.state;\n\n const scorePointsValues = [];\n const secondaryBlockWidth = parseInt(width) - DragHandleSpace - PrimaryBlockWidth || 320; // 320 is minWidth\n\n // determining the score points values\n for (let pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {\n scorePointsValues.push(pointValue);\n }\n\n return (\n <div\n key={`scale-${scaleIndex}`}\n className={classes.scaleWrapper}\n ref={(ref) => {\n this.scaleWrapper = ref;\n }}\n >\n <TraitsHeader\n setSecondaryBlockRef={(ref) => {\n if (ref) {\n this.secondaryBlockRef = ref;\n }\n }}\n key={'header-key'}\n traitLabel={traitLabel}\n scorePointsValues={scorePointsValues}\n scorePointsLabels={scorePointsLabels}\n onScaleChange={(params) => onScaleChanged(scaleIndex, params)}\n onTraitLabelChange={(label) => onScaleChanged(scaleIndex, { traitLabel: label })}\n showStandards={showStandards}\n showDescription={showDescription}\n showLevelTagInput={showLevelTagInput}\n showScorePointLabels={showScorePointLabels}\n maxPoints={maxPoints}\n updateMaxPointsFieldValue={this.updateMaxPointsFieldValue}\n scaleIndex={scaleIndex}\n showDeleteScaleModal={this.showDeleteScaleModal}\n currentPosition={currentPosition}\n secondaryBlockWidth={secondaryBlockWidth}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n maxPointsEnabled={maxPointsEnabled}\n />\n\n {traits.map((trait, index) => (\n <TraitTile\n key={index}\n index={index}\n trait={trait}\n scorePointsValues={scorePointsValues}\n scorePointsLabels={scorePointsLabels}\n onTraitRemoved={() => this.showDeleteTraitModal(index)}\n onTraitChanged={(trait) => this.onTraitChanged(index, trait)}\n onTraitDropped={this.onTraitDropped}\n showStandards={showStandards}\n showDescription={showDescription}\n currentPosition={currentPosition}\n enableDragAndDrop={enableDragAndDrop}\n secondaryBlockWidth={secondaryBlockWidth}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n\n <Arrow\n width={`${AdjustedBlockWidth / 2}px`}\n show={showLeft}\n onClick={this.decreasePosition}\n left={`${PrimaryBlockWidth}px`}\n showLevelTagInput={showLevelTagInput}\n >\n <ArrowBackIosIcon />\n </Arrow>\n <Arrow\n width={`${AdjustedBlockWidth / 2}px`}\n show={showRight}\n onClick={this.increasePosition}\n showLevelTagInput={showLevelTagInput}\n >\n <ArrowForwardIosIcon />\n </Arrow>\n\n <MultiTraitButton onClick={this.onTraitAdded}>\n <div dangerouslySetInnerHTML={{ __html: `Add ${traitLabel || ' Trait'}` }} />\n </MultiTraitButton>\n\n <DecreaseMaxPoints\n open={!!showDecreaseMaxPointsDialog}\n deleteScorePoints={this.changeMaxPoints}\n cancel={this.hideDecreaseMaxPointsModal}\n />\n\n <DeleteScale\n open={!!showDeleteScaleDialog}\n scaleIndex={scaleIndex}\n deleteScale={this.deleteScale}\n cancel={this.hideDeleteScaleModal}\n />\n\n <DeleteTrait\n open={!!showDeleteTraitDialog}\n deleteTrait={this.onTraitRemoved}\n cancel={this.hideDeleteTraitModal}\n traitLabel={traitLabel.toLowerCase()}\n />\n <InfoDialog open={showInfoDialog} text={infoDialogText} onClose={() => this.set({ showInfoDialog: false })} />\n </div>\n );\n }\n}\n\nScale.propTypes = {\n classes: PropTypes.object,\n scale: PropTypes.shape({\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n ),\n }),\n width: PropTypes.string,\n excludeZero: PropTypes.bool,\n scaleIndex: PropTypes.number,\n onScaleChanged: PropTypes.func,\n onScaleRemoved: PropTypes.func,\n showStandards: PropTypes.bool,\n showLevelTagInput: PropTypes.bool,\n showDescription: PropTypes.bool,\n uploadSoundSupport: PropTypes.object,\n showScorePointLabels: PropTypes.bool,\n enableDragAndDrop: PropTypes.bool,\n};\n\nexport default withDragContext(withStyles(styles)(Scale));\n"],"file":"scale.js"}
1
+ {"version":3,"sources":["../src/scale.jsx"],"names":["AdjustedBlockWidth","BlockWidth","styles","theme","scaleWrapper","display","flexDirection","wordBreak","position","marginBottom","spacing","unit","maxPoints","width","marginTop","trait","background","color","secondaryBackground","padding","Scale","showDecreaseMaxPointsDialog","showDeleteScaleDialog","showDeleteTraitDialog","currentPosition","showRight","showLeft","showInfoDialog","infoDialogText","newState","setState","target","props","scale","scaleIndex","onScaleChanged","scorePointsLabels","traits","numberValue","parseInt","value","secondaryBlockRef","scrollWidth","offsetWidth","showDecreaseMaxPointsModal","newMaxPoints","i","push","forEach","index","scorePointsDescriptors","set","undefined","state","hideDecreaseMaxPointsModal","onScaleRemoved","hideDeleteScaleModal","traitToDeleteIndex","minNoOfTraits","traitLabel","length","toLowerCase","slice","hideDeleteTraitModal","maxNoOfTraits","name","description","standards","Array","from","traitIndex","source","newIndex","oldIndex","cup","remainingTraits","filter","item","newTraits","decreasedPosition","increasedPosition","prevProps","showDescription","nextProps","excludeZero","showStandards","classes","showLevelTagInput","showScorePointLabels","enableDragAndDrop","spellCheck","uploadSoundSupport","maxPointsEnabled","scorePointsValues","secondaryBlockWidth","DragHandleSpace","PrimaryBlockWidth","pointValue","ref","params","label","updateMaxPointsFieldValue","showDeleteScaleModal","map","showDeleteTraitModal","onTraitChanged","onTraitDropped","decreasePosition","increasePosition","onTraitAdded","__html","changeMaxPoints","deleteScale","onTraitRemoved","React","Component","propTypes","PropTypes","object","shape","number","arrayOf","string","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nimport { withDragContext } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nimport TraitsHeader from './traitsHeader';\nimport TraitTile from './trait';\nimport { Arrow, BlockWidth, DragHandleSpace, MultiTraitButton, PrimaryBlockWidth } from './common';\nimport { DecreaseMaxPoints, DeleteScale, DeleteTrait, InfoDialog } from './modals';\n\nconst AdjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n\nconst styles = (theme) => ({\n scaleWrapper: {\n display: 'flex',\n flexDirection: 'column',\n wordBreak: 'break-word',\n position: 'relative',\n marginBottom: theme.spacing.unit * 2.5,\n },\n maxPoints: {\n width: '300px',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 4,\n },\n trait: {\n background: color.secondaryBackground(),\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n padding: theme.spacing.unit * 2,\n },\n});\n\nexport class Scale extends React.Component {\n state = {\n showDecreaseMaxPointsDialog: false,\n showDeleteScaleDialog: false,\n showDeleteTraitDialog: false,\n currentPosition: 0,\n showRight: null,\n showLeft: null,\n showInfoDialog: false,\n infoDialogText: '',\n };\n\n set = (newState) => this.setState(newState);\n\n componentDidMount() {\n if (this.state.showRight === null && this.secondaryBlockRef) {\n this.setState({ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.scale.maxPoints !== this.props.scale.maxPoints || prevProps.showDescription !== this.props.showDescription) {\n this.setState({ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.excludeZero !== this.props.excludeZero ||\n nextProps.showStandards !== this.props.showStandards ||\n nextProps.showDescription !== this.props.showDescription\n ) {\n this.setState({\n currentPosition: 0,\n showLeft: false,\n showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n });\n }\n }\n\n // Max Points\n updateMaxPointsFieldValue = ({ target }) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { maxPoints, scorePointsLabels, traits } = scale;\n\n const numberValue = parseInt(target.value, 10);\n\n this.setState({\n currentPosition: 0,\n showLeft: false,\n showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n });\n\n if (numberValue < maxPoints) {\n this.showDecreaseMaxPointsModal({ newMaxPoints: numberValue });\n } else {\n for (let i = 0; i <= numberValue; i++) {\n if (!scorePointsLabels[i]) {\n scorePointsLabels.push('');\n }\n\n traits.forEach((trait, index) => {\n if (!traits[index].scorePointsDescriptors[i]) {\n traits[index].scorePointsDescriptors.push('');\n }\n });\n }\n\n onScaleChanged(scaleIndex, { maxPoints: numberValue, scorePointsLabels, traits });\n }\n };\n\n showDecreaseMaxPointsModal = ({ newMaxPoints }) => this.set({ showDecreaseMaxPointsDialog: true, newMaxPoints });\n\n hideDecreaseMaxPointsModal = () => this.set({ showDecreaseMaxPointsDialog: false, newMaxPoints: undefined });\n\n changeMaxPoints = () => {\n const { newMaxPoints } = this.state || {};\n const { scaleIndex, onScaleChanged } = this.props || {};\n\n if (newMaxPoints) {\n onScaleChanged(scaleIndex, { maxPoints: newMaxPoints });\n }\n\n this.hideDecreaseMaxPointsModal();\n };\n\n // Delete Scale\n showDeleteScaleModal = () => this.set({ showDeleteScaleDialog: true });\n\n hideDeleteScaleModal = () => this.set({ showDeleteScaleDialog: false });\n\n deleteScale = () => {\n const { scaleIndex, onScaleRemoved } = this.props || {};\n\n this.hideDeleteScaleModal();\n\n onScaleRemoved(scaleIndex);\n };\n\n // Delete Trait\n showDeleteTraitModal = (traitToDeleteIndex) => this.set({ showDeleteTraitDialog: true, traitToDeleteIndex });\n\n hideDeleteTraitModal = () => this.set({ showDeleteTraitDialog: false, traitToDeleteIndex: undefined });\n\n onTraitRemoved = () => {\n const { traitToDeleteIndex } = this.state;\n const { scale, scaleIndex, onScaleChanged, minNoOfTraits } = this.props || {};\n let { traits, traitLabel } = scale || {};\n\n if (traitToDeleteIndex < 0 || traitToDeleteIndex >= traits.length) return;\n\n if (traits.length === minNoOfTraits) {\n this.set({\n infoDialogText: `There can't be less than ${minNoOfTraits} ${(traitLabel || 'trait').toLowerCase()}s.`,\n showInfoDialog: true,\n });\n\n return false;\n }\n\n traits = [...traits.slice(0, traitToDeleteIndex), ...traits.slice(traitToDeleteIndex + 1)];\n\n onScaleChanged(scaleIndex, { traits });\n\n this.hideDeleteTraitModal();\n };\n\n onTraitAdded = () => {\n const { scale, scaleIndex, onScaleChanged, maxNoOfTraits } = this.props || {};\n const { traits, scorePointsLabels } = scale || {};\n\n if (traits.length === maxNoOfTraits) {\n this.set({\n infoDialogText: `There can't be more than ${maxNoOfTraits} scales.`,\n showInfoDialog: true,\n });\n\n return false;\n }\n\n traits.push({\n name: '',\n description: '',\n standards: [],\n scorePointsDescriptors: Array.from({ length: scorePointsLabels.length }, () => ''),\n });\n\n onScaleChanged(scaleIndex, { traits });\n };\n\n onTraitChanged = (traitIndex, trait) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { traits } = scale || {};\n\n if (traitIndex >= 0 && traitIndex < traits.length) {\n traits[traitIndex] = trait;\n\n onScaleChanged(scaleIndex, { traits });\n }\n };\n\n onTraitDropped = (source, newIndex) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { traits } = scale || {};\n const { index: oldIndex } = source;\n const cup = traits[oldIndex];\n\n const remainingTraits = traits.filter((item, index) => index !== oldIndex);\n\n const newTraits = [...remainingTraits.slice(0, newIndex), cup, ...remainingTraits.slice(newIndex)];\n\n onScaleChanged(scaleIndex, { traits: newTraits });\n };\n\n decreasePosition = () => {\n const { currentPosition } = this.state;\n const decreasedPosition =\n currentPosition - (currentPosition === AdjustedBlockWidth / 2 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);\n\n this.setState({\n currentPosition: decreasedPosition,\n showRight: decreasedPosition < this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n showLeft: decreasedPosition > 0,\n });\n };\n\n increasePosition = () => {\n const { currentPosition } = this.state;\n const increasedPosition = currentPosition + (currentPosition === 0 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);\n\n this.setState({\n currentPosition: increasedPosition,\n showRight: increasedPosition < this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n showLeft: increasedPosition > 0,\n });\n };\n\n render() {\n const {\n classes,\n scale,\n scaleIndex,\n showStandards,\n onScaleChanged,\n excludeZero,\n showDescription,\n showLevelTagInput,\n showScorePointLabels,\n enableDragAndDrop,\n spellCheck,\n width,\n uploadSoundSupport,\n maxPointsEnabled,\n } = this.props || {};\n\n const { maxPoints, scorePointsLabels, traitLabel, traits } = scale || {};\n\n const {\n showDecreaseMaxPointsDialog,\n showDeleteScaleDialog,\n showDeleteTraitDialog,\n currentPosition,\n showRight,\n showLeft,\n showInfoDialog,\n infoDialogText,\n } = this.state;\n\n const scorePointsValues = [];\n const secondaryBlockWidth = parseInt(width) - DragHandleSpace - PrimaryBlockWidth || 320; // 320 is minWidth\n\n // determining the score points values\n for (let pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {\n scorePointsValues.push(pointValue);\n }\n\n return (\n <div\n key={`scale-${scaleIndex}`}\n className={classes.scaleWrapper}\n ref={(ref) => {\n this.scaleWrapper = ref;\n }}\n >\n <TraitsHeader\n setSecondaryBlockRef={(ref) => {\n if (ref) {\n this.secondaryBlockRef = ref;\n }\n }}\n key={'header-key'}\n traitLabel={traitLabel}\n scorePointsValues={scorePointsValues}\n scorePointsLabels={scorePointsLabels}\n onScaleChange={(params) => onScaleChanged(scaleIndex, params)}\n onTraitLabelChange={(label) => onScaleChanged(scaleIndex, { traitLabel: label })}\n showStandards={showStandards}\n showDescription={showDescription}\n showLevelTagInput={showLevelTagInput}\n showScorePointLabels={showScorePointLabels}\n maxPoints={maxPoints}\n updateMaxPointsFieldValue={this.updateMaxPointsFieldValue}\n scaleIndex={scaleIndex}\n showDeleteScaleModal={this.showDeleteScaleModal}\n currentPosition={currentPosition}\n secondaryBlockWidth={secondaryBlockWidth}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n maxPointsEnabled={maxPointsEnabled}\n />\n\n {traits.map((trait, index) => (\n <TraitTile\n key={index}\n index={index}\n trait={trait}\n traitLabel={traitLabel || 'Trait'}\n scorePointsValues={scorePointsValues}\n scorePointsLabels={scorePointsLabels}\n onTraitRemoved={() => this.showDeleteTraitModal(index)}\n onTraitChanged={(trait) => this.onTraitChanged(index, trait)}\n onTraitDropped={this.onTraitDropped}\n showStandards={showStandards}\n showDescription={showDescription}\n currentPosition={currentPosition}\n enableDragAndDrop={enableDragAndDrop}\n secondaryBlockWidth={secondaryBlockWidth}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n\n <Arrow\n width={`${AdjustedBlockWidth / 2}px`}\n show={showLeft}\n onClick={this.decreasePosition}\n left={`${PrimaryBlockWidth}px`}\n showLevelTagInput={showLevelTagInput}\n >\n <ArrowBackIosIcon />\n </Arrow>\n <Arrow\n width={`${AdjustedBlockWidth / 2}px`}\n show={showRight}\n onClick={this.increasePosition}\n showLevelTagInput={showLevelTagInput}\n >\n <ArrowForwardIosIcon />\n </Arrow>\n\n <MultiTraitButton onClick={this.onTraitAdded}>\n <div dangerouslySetInnerHTML={{ __html: `Add ${traitLabel || ' Trait'}` }} />\n </MultiTraitButton>\n\n <DecreaseMaxPoints\n open={!!showDecreaseMaxPointsDialog}\n deleteScorePoints={this.changeMaxPoints}\n cancel={this.hideDecreaseMaxPointsModal}\n />\n\n <DeleteScale\n open={!!showDeleteScaleDialog}\n scaleIndex={scaleIndex}\n deleteScale={this.deleteScale}\n cancel={this.hideDeleteScaleModal}\n />\n\n <DeleteTrait\n open={!!showDeleteTraitDialog}\n deleteTrait={this.onTraitRemoved}\n cancel={this.hideDeleteTraitModal}\n traitLabel={traitLabel.toLowerCase()}\n />\n <InfoDialog open={showInfoDialog} text={infoDialogText} onClose={() => this.set({ showInfoDialog: false })} />\n </div>\n );\n }\n}\n\nScale.propTypes = {\n classes: PropTypes.object,\n scale: PropTypes.shape({\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n ),\n }),\n width: PropTypes.string,\n excludeZero: PropTypes.bool,\n scaleIndex: PropTypes.number,\n onScaleChanged: PropTypes.func,\n onScaleRemoved: PropTypes.func,\n showStandards: PropTypes.bool,\n showLevelTagInput: PropTypes.bool,\n showDescription: PropTypes.bool,\n uploadSoundSupport: PropTypes.object,\n showScorePointLabels: PropTypes.bool,\n enableDragAndDrop: PropTypes.bool,\n};\n\nexport default withDragContext(withStyles(styles)(Scale));\n"],"file":"scale.js"}
@@ -165,6 +165,7 @@ var TraitTile = /*#__PURE__*/function (_React$Component) {
165
165
  standards = _this$props2$trait.standards,
166
166
  description = _this$props2$trait.description,
167
167
  scorePointsDescriptors = _this$props2$trait.scorePointsDescriptors,
168
+ traitLabel = _this$props2.traitLabel,
168
169
  scorePointsValues = _this$props2.scorePointsValues,
169
170
  showStandards = _this$props2.showStandards,
170
171
  showDescription = _this$props2.showDescription,
@@ -207,7 +208,7 @@ var TraitTile = /*#__PURE__*/function (_React$Component) {
207
208
  }, /*#__PURE__*/_react["default"].createElement("div", {
208
209
  className: classes.removeLabel,
209
210
  dangerouslySetInnerHTML: {
210
- __html: "Remove ".concat(name)
211
+ __html: "Remove ".concat(name || traitLabel)
211
212
  }
212
213
  })))), /*#__PURE__*/_react["default"].createElement(_common.UnderlinedInput, {
213
214
  markup: name,
@@ -217,7 +218,7 @@ var TraitTile = /*#__PURE__*/function (_React$Component) {
217
218
  });
218
219
  },
219
220
  pluginProps: _utils.labelPlugins,
220
- placeholder: "Enter Trait",
221
+ placeholder: "Enter ".concat(traitLabel),
221
222
  spellCheck: spellCheck,
222
223
  uploadSoundSupport: uploadSoundSupport
223
224
  })), /*#__PURE__*/_react["default"].createElement(_common.SecondaryBlock, {
@@ -305,6 +306,7 @@ TraitTile.propTypes = {
305
306
  scorePointsDescriptors: _propTypes["default"].arrayOf(_propTypes["default"].string),
306
307
  description: _propTypes["default"].string
307
308
  }),
309
+ traitLabel: _propTypes["default"].string,
308
310
  scorePointsValues: _propTypes["default"].arrayOf(_propTypes["default"].number),
309
311
  showStandards: _propTypes["default"].bool,
310
312
  showDescription: _propTypes["default"].bool,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/trait.jsx"],"names":["log","styles","theme","actions","color","text","primaryBlock","display","flexDirection","justifyContent","marginBottom","spacing","unit","controls","alignItems","width","cursor","options","marginLeft","dragHandle","removeLabel","whiteSpace","TraitTile","params","props","trait","onTraitChanged","Object","keys","forEach","key","descriptor","value","scorePointsDescriptors","length","event","setState","anchorEl","currentTarget","position","secondaryBlock","scrollTo","left","onTraitRemoved","handleClose","nextProps","currentPosition","scrollLeft","scrollToPosition","classes","connectDragSource","connectDropTarget","connectDragPreview","name","standards","description","scorePointsValues","showStandards","showDescription","enableDragAndDrop","secondaryBlockWidth","spellCheck","uploadSoundSupport","state","pluginProps","image","disabled","math","handleClick","openMenu","__html","labelPlugins","ref","join","split","map","scorePointsValue","index","adjustedBlockWidth","BlockWidth","remainingSpace","scoreDescriptor","e","onScorePointDescriptorChange","React","Component","PropTypes","bool","object","propTypes","func","isRequired","isDragging","id","any","isOver","number","shape","string","arrayOf","StyledTrait","NAME","traitSource","beginDrag","StyledSource","connect","monitor","dragSource","dragPreview","traitTarget","hover","drop","item","getItem","didDrop","onTraitDropped","StyledSourceAndTarget","dropTarget"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,sDAAN,CAAZ;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,KAAK,EAAEA,gBAAMC,IAAN;AADA,KADgB;AAIzBC,IAAAA,YAAY,EAAE;AACZC,MAAAA,OAAO,EAAE,MADG;AAEZC,MAAAA,aAAa,EAAE,QAFH;AAGZC,MAAAA,cAAc,EAAE,eAHJ;AAIZC,MAAAA,YAAY,EAAER,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB;AAJvB,KAJW;AAUzBC,IAAAA,QAAQ,EAAE;AACRN,MAAAA,OAAO,EAAE,MADD;AAERO,MAAAA,UAAU,EAAE,QAFJ;AAGRC,MAAAA,KAAK,EAAE,MAHC;AAIRC,MAAAA,MAAM,EAAE;AAJA,KAVe;AAgBzBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,UAAU,EAAE;AADL,KAhBgB;AAmBzBC,IAAAA,UAAU,EAAE,EAnBa;AAoBzBC,IAAAA,WAAW,EAAE;AACXb,MAAAA,OAAO,EAAE,MADE;AAEXc,MAAAA,UAAU,EAAE;AAFD;AApBY,GAAZ;AAAA,CAAf;;IA0BaC,S;;;;;;;;;;;;;;;8FAOH,E;uGAWS,UAACC,MAAD,EAAY;AAC3B,wBAAkC,MAAKC,KAAvC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,cAAf,eAAeA,cAAf;AAEA,UAAI,yBAAQH,MAAR,CAAJ,EAAqB;AAErBI,MAAAA,MAAM,CAACC,IAAP,CAAYL,MAAZ,EAAoBM,OAApB,CAA4B,UAACC,GAAD,EAAS;AACnCL,QAAAA,KAAK,CAACK,GAAD,CAAL,GAAaP,MAAM,CAACO,GAAD,CAAnB;AACD,OAFD;AAIAJ,MAAAA,cAAc,CAACD,KAAD,CAAd;AACD,K;qHAE8B,gBAA2B;AAAA,UAAxBM,UAAwB,QAAxBA,UAAwB;AAAA,UAAZC,KAAY,QAAZA,KAAY;AACxD,UACWC,sBADX,GAEI,MAAKT,KAFT,CACEC,KADF,CACWQ,sBADX;AAIA,UAAID,KAAK,GAAG,CAAR,IAAaA,KAAK,IAAIC,sBAAsB,CAACC,MAAjD,EAAyD;AAEzDD,MAAAA,sBAAsB,CAACD,KAAD,CAAtB,GAAgCD,UAAhC;;AAEA,YAAKL,cAAL,CAAoB;AAAEO,QAAAA,sBAAsB,EAAtBA;AAAF,OAApB;AACD,K;oGAEa,UAACE,KAAD;AAAA,aAAW,MAAKC,QAAL,CAAc;AAAEC,QAAAA,QAAQ,EAAEF,KAAK,CAACG;AAAlB,OAAd,CAAX;AAAA,K;oGAEA;AAAA,aAAM,MAAKF,QAAL,CAAc;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OAAd,CAAN;AAAA,K;yGAEK,UAACE,QAAD;AAAA,aAAc,MAAKC,cAAL,CAAoBC,QAApB,CAA6B;AAAEC,QAAAA,IAAI,EAAEH;AAAR,OAA7B,CAAd;AAAA,K;iGAER,YAAM;AACf,YAAKf,KAAL,CAAWmB,cAAX;;AACA,YAAKC,WAAL;AACD,K;;;;;;WA1CD,0CAAiCC,SAAjC,EAA4C;AAC1C,UACEA,SAAS,CAACC,eAAV,KAA8B,KAAKtB,KAAL,CAAWsB,eAAzC,IACC,KAAKN,cAAL,IAAuB,KAAKA,cAAL,CAAoBO,UAApB,KAAmCF,SAAS,CAACC,eAFvE,EAGE;AACA,aAAKE,gBAAL,CAAsBH,SAAS,CAACC,eAAhC;AACD;AACF;;;WAqCD,kBAAS;AAAA;;AACP,yBAcI,KAAKtB,KAdT;AAAA,UACEyB,OADF,gBACEA,OADF;AAAA,UAEEC,iBAFF,gBAEEA,iBAFF;AAAA,UAGEC,iBAHF,gBAGEA,iBAHF;AAAA,UAIEC,kBAJF,gBAIEA,kBAJF;AAAA,4CAKE3B,KALF;AAAA,UAKW4B,IALX,sBAKWA,IALX;AAAA,UAKiBC,SALjB,sBAKiBA,SALjB;AAAA,UAK4BC,WAL5B,sBAK4BA,WAL5B;AAAA,UAKyCtB,sBALzC,sBAKyCA,sBALzC;AAAA,UAMEuB,iBANF,gBAMEA,iBANF;AAAA,UAOEC,aAPF,gBAOEA,aAPF;AAAA,UAQEC,eARF,gBAQEA,eARF;AAAA,UASEC,iBATF,gBASEA,iBATF;AAAA,UAUEb,eAVF,gBAUEA,eAVF;AAAA,UAWEc,mBAXF,gBAWEA,mBAXF;AAAA,UAYEC,UAZF,gBAYEA,UAZF;AAAA,UAaEC,kBAbF,gBAaEA,kBAbF;AAeA,UAAQzB,QAAR,GAAqB,KAAK0B,KAA1B,CAAQ1B,QAAR;AAEA,UAAM2B,WAAW,GAAG;AAClBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,IAAI,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ;AAFY,OAApB;AAKA,aAAOd,kBAAkB,CACvBD,iBAAiB,eACf,0DACE,gCAAC,WAAD,qBACE,gCAAC,oBAAD;AAAc,QAAA,SAAS,EAAEF,OAAO,CAAC3C;AAAjC,sBACE;AAAK,QAAA,SAAS,EAAE2C,OAAO,CAACpC;AAAxB,SACG8C,iBAAiB,GACdT,iBAAiB,eACf;AAAM,QAAA,SAAS,EAAED,OAAO,CAAC9B;AAAzB,sBACE,gCAAC,yBAAD;AAAmB,QAAA,SAAS,EAAE8B,OAAO,CAAC9C;AAAtC,QADF,CADe,CADH,GAMd,IAPN,eASE,gCAAC,sBAAD;AACE,QAAA,SAAS,EAAE8C,OAAO,CAAChC,OADrB;AAEE,sBAAW,MAFb;AAGE,yBAAc,WAHhB;AAIE,yBAAc,MAJhB;AAKE,QAAA,OAAO,EAAE,KAAKmD;AALhB,sBAOE,gCAAC,oBAAD,OAPF,CATF,eAmBE,gCAAC,gBAAD;AAAM,QAAA,EAAE,EAAC,WAAT;AAAqB,QAAA,QAAQ,EAAE/B,QAA/B;AAAyC,QAAA,WAAW,MAApD;AAAqD,QAAA,IAAI,EAAE,CAAC,CAACA,QAA7D;AAAuE,QAAA,OAAO,EAAE,KAAKO;AAArF,sBACE,gCAAC,oBAAD;AAAU,QAAA,OAAO,EAAE,KAAKyB;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAEpB,OAAO,CAAC7B,WAAxB;AAAqC,QAAA,uBAAuB,EAAE;AAAEkD,UAAAA,MAAM,mBAAYjB,IAAZ;AAAR;AAA9D,QADF,CADF,CAnBF,CADF,eA2BE,gCAAC,uBAAD;AACE,QAAA,MAAM,EAAEA,IADV;AAEE,QAAA,QAAQ,EAAE,kBAACA,IAAD;AAAA,iBAAU,MAAI,CAAC3B,cAAL,CAAoB;AAAE2B,YAAAA,IAAI,EAAJA;AAAF,WAApB,CAAV;AAAA,SAFZ;AAGE,QAAA,WAAW,EAAEkB,mBAHf;AAIE,QAAA,WAAW,EAAC,aAJd;AAKE,QAAA,UAAU,EAAEV,UALd;AAME,QAAA,kBAAkB,EAAEC;AANtB,QA3BF,CADF,eAsCE,gCAAC,sBAAD;AACE,QAAA,MAAM,EAAE,gBAACU,GAAD,EAAS;AACf,UAAA,MAAI,CAAChC,cAAL,GAAsBgC,GAAtB;AACD,SAHH;AAIE,QAAA,KAAK,YAAKZ,mBAAL;AAJP,SAMGH,aAAa,IAAIH,SAAjB,iBACC,gCAAC,aAAD,qBACE,gCAAC,qBAAD;AACE,QAAA,WAAW,EAAC,WADd;AAEE,QAAA,MAAM,EAAEA,SAAS,CAACmB,IAAV,CAAe,GAAf,CAFV;AAGE,QAAA,QAAQ,EAAE,kBAACnB,SAAD;AAAA,iBAAe,MAAI,CAAC5B,cAAL,CAAoB;AAAE4B,YAAAA,SAAS,EAAEA,SAAS,CAACoB,KAAV,CAAgB,GAAhB;AAAb,WAApB,CAAf;AAAA,SAHZ;AAIE,QAAA,WAAW,EAAEV,WAJf;AAKE,QAAA,UAAU,EAAEH,UALd;AAME,QAAA,kBAAkB,EAAEC;AANtB,QADF,CAPJ,EAmBGJ,eAAe,iBACd,gCAAC,aAAD,qBACE,gCAAC,qBAAD;AACE,QAAA,WAAW,EAAC,aADd;AAEE,QAAA,MAAM,EAAEH,WAFV;AAGE,QAAA,QAAQ,EAAE,kBAACA,WAAD;AAAA,iBAAiB,MAAI,CAAC7B,cAAL,CAAoB;AAAE6B,YAAAA,WAAW,EAAXA;AAAF,WAApB,CAAjB;AAAA,SAHZ;AAIE,QAAA,WAAW,EAAES,WAJf;AAKE,QAAA,UAAU,EAAEH,UALd;AAME,QAAA,kBAAkB,EAAEC;AANtB,QADF,CApBJ,EAgCG,CAACN,iBAAiB,IAAI,EAAtB,EAA0BmB,GAA1B,CAA8B,UAACC,gBAAD,EAAmBC,KAAnB,EAA6B;AAC1D,YAAMC,kBAAkB,GAAGC,qBAAa,IAAI,CAA5C,CAD0D,CACX;;AAC/C,YAAMC,cAAc,GAAGpB,mBAAmB,GAAGkB,kBAAkB,GAAGD,KAA3C,GAAmD/B,eAAnD,GAAqE,EAA5F;AACA,YAAMd,KAAK,GAAGwB,iBAAiB,CAACtB,MAAlB,GAA2B2C,KAA3B,GAAmC,CAAjD;AACA,YAAII,eAAJ;;AAEA,YAAI;AACFA,UAAAA,eAAe,GAAGhD,sBAAsB,CAACD,KAAD,CAAtB,IAAiC,EAAnD;AACD,SAFD,CAEE,OAAOkD,CAAP,EAAU;AACVD,UAAAA,eAAe,GAAG,EAAlB;AACD;;AAED,4BACE,gCAAC,aAAD;AAAO,UAAA,GAAG,oBAAaJ,KAAb;AAAV,wBACE,gCAAC,qBAAD;AACE,UAAA,WAAW,EAAC,wBADd;AAEE,UAAA,MAAM,EAAEI,eAFV;AAGE,UAAA,QAAQ,EAAE,kBAAClD,UAAD;AAAA,mBAAgB,MAAI,CAACoD,4BAAL,CAAkC;AAAEpD,cAAAA,UAAU,EAAVA,UAAF;AAAcC,cAAAA,KAAK,EAALA;AAAd,aAAlC,CAAhB;AAAA,WAHZ;AAIE,UAAA,WAAW,EAAEgC,WAJf;AAKE,UAAA,YAAY,EAAEgB,cAAc,GAAG,GALjC,CAKsC;AALtC;AAME,UAAA,UAAU,EAAEnB,UANd;AAOE,UAAA,kBAAkB,EAAEC;AAPtB,UADF,CADF;AAaD,OAzBA,CAhCH,CAtCF,CADF,CADe,CADM,CAAzB;AAwGD;;;EApL4BsB,kBAAMC,S;;;iCAAxB/D,S,eAEQ;AACjBuC,EAAAA,UAAU,EAAEyB,sBAAUC,IADL;AAEjBzB,EAAAA,kBAAkB,EAAEwB,sBAAUE;AAFb,C;AAqLrBlE,SAAS,CAACmE,SAAV,GAAsB;AACpBvC,EAAAA,iBAAiB,EAAEoC,sBAAUI,IAAV,CAAeC,UADd;AAEpBxC,EAAAA,iBAAiB,EAAEmC,sBAAUI,IAAV,CAAeC,UAFd;AAGpBvC,EAAAA,kBAAkB,EAAEkC,sBAAUI,IAAV,CAAeC,UAHf;AAIpB1C,EAAAA,OAAO,EAAEqC,sBAAUE,MAAV,CAAiBG,UAJN;AAKpBC,EAAAA,UAAU,EAAEN,sBAAUC,IAAV,CAAeI,UALP;AAMpBE,EAAAA,EAAE,EAAEP,sBAAUQ,GANM;AAOpBC,EAAAA,MAAM,EAAET,sBAAUC,IAPE;AAQpBV,EAAAA,KAAK,EAAES,sBAAUU,MARG;AASpBtE,EAAAA,cAAc,EAAE4D,sBAAUI,IAAV,CAAeC,UATX;AAUpBhD,EAAAA,cAAc,EAAE2C,sBAAUI,IAAV,CAAeC,UAVX;AAWpBlE,EAAAA,KAAK,EAAE6D,sBAAUW,KAAV,CAAgB;AACrB5C,IAAAA,IAAI,EAAEiC,sBAAUY,MADK;AAErB5C,IAAAA,SAAS,EAAEgC,sBAAUa,OAAV,CAAkBb,sBAAUY,MAA5B,CAFU;AAGrBjE,IAAAA,sBAAsB,EAAEqD,sBAAUa,OAAV,CAAkBb,sBAAUY,MAA5B,CAHH;AAIrB3C,IAAAA,WAAW,EAAE+B,sBAAUY;AAJF,GAAhB,CAXa;AAiBpB1C,EAAAA,iBAAiB,EAAE8B,sBAAUa,OAAV,CAAkBb,sBAAUU,MAA5B,CAjBC;AAkBpBvC,EAAAA,aAAa,EAAE6B,sBAAUC,IAlBL;AAmBpB7B,EAAAA,eAAe,EAAE4B,sBAAUC,IAnBP;AAoBpB5B,EAAAA,iBAAiB,EAAE2B,sBAAUC,IApBT;AAqBpBzC,EAAAA,eAAe,EAAEwC,sBAAUU,MArBP;AAsBpBpC,EAAAA,mBAAmB,EAAE0B,sBAAUU;AAtBX,CAAtB;AAyBO,IAAMI,WAAW,GAAG,wBAAWnG,MAAX,EAAmBqB,SAAnB,CAApB;;AAEP,IAAM+E,IAAI,GAAG,cAAb;AAEA,IAAMC,WAAW,GAAG;AAClBC,EAAAA,SADkB,qBACR/E,KADQ,EACD;AACf,WAAO;AACL6B,MAAAA,IAAI,EAAE7B,KAAK,CAACC,KAAN,CAAY4B,IADb;AAELwB,MAAAA,KAAK,EAAErD,KAAK,CAACqD;AAFR,KAAP;AAID;AANiB,CAApB;AASA,IAAM2B,YAAY,GAAG,0BAAWH,IAAX,EAAiBC,WAAjB,EAA8B,UAACG,OAAD,EAAUC,OAAV;AAAA,SAAuB;AACxExD,IAAAA,iBAAiB,EAAEuD,OAAO,CAACE,UAAR,EADqD;AAExEvD,IAAAA,kBAAkB,EAAEqD,OAAO,CAACG,WAAR,EAFoD;AAGxEhB,IAAAA,UAAU,EAAEc,OAAO,CAACd,UAAR;AAH4D,GAAvB;AAAA,CAA9B,EAIjBQ,WAJiB,CAArB;AAMA,IAAMS,WAAW,GAAG;AAClBC,EAAAA,KADkB,mBACV;AACN9G,IAAAA,GAAG,CAAC,SAAD,CAAH;AACD,GAHiB;AAIlB+G,EAAAA,IAJkB,gBAIbvF,KAJa,EAINkF,OAJM,EAIG;AACnB,QAAMM,IAAI,GAAGN,OAAO,CAACO,OAAR,EAAb;AACAjH,IAAAA,GAAG,CAAC,eAAD,EAAkBgH,IAAlB,EAAwB,UAAxB,EAAoCN,OAAO,CAACQ,OAAR,EAApC,CAAH;AAEA1F,IAAAA,KAAK,CAAC2F,cAAN,CAAqBH,IAArB,EAA2BxF,KAAK,CAACqD,KAAjC;AACD;AATiB,CAApB;AAYA,IAAMuC,qBAAqB,GAAG,0BAAWf,IAAX,EAAiBQ,WAAjB,EAA8B,UAACJ,OAAD,EAAUC,OAAV;AAAA,SAAuB;AACjFvD,IAAAA,iBAAiB,EAAEsD,OAAO,CAACY,UAAR,EAD8D;AAEjFtB,IAAAA,MAAM,EAAEW,OAAO,CAACX,MAAR;AAFyE,GAAvB;AAAA,CAA9B,EAG1BS,YAH0B,CAA9B;eAKeY,qB","sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { DragSource, DropTarget } from 'react-dnd';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nimport { Block, BlockWidth, ExpandedInput, PrimaryBlock, Row, SecondaryBlock, UnderlinedInput } from './common';\nimport { labelPlugins } from './utils';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\n\nconst log = debug('@pie-element:placement-ordering:configure:trait-tile');\n\nconst styles = (theme) => ({\n actions: {\n color: color.text(),\n },\n primaryBlock: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n marginBottom: theme.spacing.unit * 5,\n },\n controls: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n cursor: 'pointer',\n },\n options: {\n marginLeft: 'auto',\n },\n dragHandle: {},\n removeLabel: {\n display: 'flex',\n whiteSpace: 'break-spaces',\n },\n});\n\nexport class TraitTile extends React.Component {\n\n static propTypes = {\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.object,\n };\n\n state = {};\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.currentPosition !== this.props.currentPosition ||\n (this.secondaryBlock && this.secondaryBlock.scrollLeft !== nextProps.currentPosition)\n ) {\n this.scrollToPosition(nextProps.currentPosition);\n }\n }\n\n onTraitChanged = (params) => {\n const { trait, onTraitChanged } = this.props;\n\n if (isEmpty(params)) return;\n\n Object.keys(params).forEach((key) => {\n trait[key] = params[key];\n });\n\n onTraitChanged(trait);\n };\n\n onScorePointDescriptorChange = ({ descriptor, value }) => {\n const {\n trait: { scorePointsDescriptors },\n } = this.props;\n\n if (value < 0 || value >= scorePointsDescriptors.length) return;\n\n scorePointsDescriptors[value] = descriptor;\n\n this.onTraitChanged({ scorePointsDescriptors });\n };\n\n handleClick = (event) => this.setState({ anchorEl: event.currentTarget });\n\n handleClose = () => this.setState({ anchorEl: null });\n\n scrollToPosition = (position) => this.secondaryBlock.scrollTo({ left: position });\n\n openMenu = () => {\n this.props.onTraitRemoved();\n this.handleClose();\n };\n\n render() {\n const {\n classes,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n trait: { name, standards, description, scorePointsDescriptors },\n scorePointsValues,\n showStandards,\n showDescription,\n enableDragAndDrop,\n currentPosition,\n secondaryBlockWidth,\n spellCheck,\n uploadSoundSupport,\n } = this.props;\n const { anchorEl } = this.state;\n\n const pluginProps = {\n image: { disabled: true },\n math: { disabled: true },\n };\n\n return connectDragPreview(\n connectDropTarget(\n <div>\n <Row>\n <PrimaryBlock className={classes.primaryBlock}>\n <div className={classes.controls}>\n {enableDragAndDrop\n ? connectDragSource(\n <span className={classes.dragHandle}>\n <DragIndicatorIcon className={classes.actions} />\n </span>,\n )\n : null}\n\n <IconButton\n className={classes.options}\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-haspopup=\"true\"\n onClick={this.handleClick}\n >\n <MoreVertIcon />\n </IconButton>\n\n <Menu id=\"long-menu\" anchorEl={anchorEl} keepMounted open={!!anchorEl} onClose={this.handleClose}>\n <MenuItem onClick={this.openMenu}>\n <div className={classes.removeLabel} dangerouslySetInnerHTML={{ __html: `Remove ${name}` }} />\n </MenuItem>\n </Menu>\n </div>\n\n <UnderlinedInput\n markup={name}\n onChange={(name) => this.onTraitChanged({ name })}\n pluginProps={labelPlugins}\n placeholder=\"Enter Trait\"\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </PrimaryBlock>\n\n <SecondaryBlock\n setRef={(ref) => {\n this.secondaryBlock = ref;\n }}\n width={`${secondaryBlockWidth}px`}\n >\n {showStandards && standards && (\n <Block>\n <ExpandedInput\n placeholder=\"Standards\"\n markup={standards.join(',')}\n onChange={(standards) => this.onTraitChanged({ standards: standards.split(',') })}\n pluginProps={pluginProps}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </Block>\n )}\n\n {showDescription && (\n <Block>\n <ExpandedInput\n placeholder=\"Description\"\n markup={description}\n onChange={(description) => this.onTraitChanged({ description })}\n pluginProps={pluginProps}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </Block>\n )}\n\n {(scorePointsValues || []).map((scorePointsValue, index) => {\n const adjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * index + currentPosition - 98;\n const value = scorePointsValues.length - index - 1;\n let scoreDescriptor;\n\n try {\n scoreDescriptor = scorePointsDescriptors[value] || '';\n } catch (e) {\n scoreDescriptor = '';\n }\n\n return (\n <Block key={`key-key-${index}`}>\n <ExpandedInput\n placeholder=\"Enter Description Here\"\n markup={scoreDescriptor}\n onChange={(descriptor) => this.onScorePointDescriptorChange({ descriptor, value })}\n pluginProps={pluginProps}\n alignToRight={remainingSpace < 296} // 296 is the space required for the toolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </Block>\n );\n })}\n </SecondaryBlock>\n </Row>\n </div>,\n ),\n );\n }\n}\n\nTraitTile.propTypes = {\n connectDragSource: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isDragging: PropTypes.bool.isRequired,\n id: PropTypes.any,\n isOver: PropTypes.bool,\n index: PropTypes.number,\n onTraitChanged: PropTypes.func.isRequired,\n onTraitRemoved: PropTypes.func.isRequired,\n trait: PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n scorePointsValues: PropTypes.arrayOf(PropTypes.number),\n showStandards: PropTypes.bool,\n showDescription: PropTypes.bool,\n enableDragAndDrop: PropTypes.bool,\n currentPosition: PropTypes.number,\n secondaryBlockWidth: PropTypes.number,\n};\n\nexport const StyledTrait = withStyles(styles)(TraitTile);\n\nconst NAME = 'trait-config';\n\nconst traitSource = {\n beginDrag(props) {\n return {\n name: props.trait.name,\n index: props.index,\n };\n },\n};\n\nconst StyledSource = DragSource(NAME, traitSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n}))(StyledTrait);\n\nconst traitTarget = {\n hover() {\n log('[hover]');\n },\n drop(props, monitor) {\n const item = monitor.getItem();\n log('[drop] item: ', item, 'didDrop?', monitor.didDrop());\n\n props.onTraitDropped(item, props.index);\n },\n};\n\nconst StyledSourceAndTarget = DropTarget(NAME, traitTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(StyledSource);\n\nexport default StyledSourceAndTarget;\n"],"file":"trait.js"}
1
+ {"version":3,"sources":["../src/trait.jsx"],"names":["log","styles","theme","actions","color","text","primaryBlock","display","flexDirection","justifyContent","marginBottom","spacing","unit","controls","alignItems","width","cursor","options","marginLeft","dragHandle","removeLabel","whiteSpace","TraitTile","params","props","trait","onTraitChanged","Object","keys","forEach","key","descriptor","value","scorePointsDescriptors","length","event","setState","anchorEl","currentTarget","position","secondaryBlock","scrollTo","left","onTraitRemoved","handleClose","nextProps","currentPosition","scrollLeft","scrollToPosition","classes","connectDragSource","connectDropTarget","connectDragPreview","name","standards","description","traitLabel","scorePointsValues","showStandards","showDescription","enableDragAndDrop","secondaryBlockWidth","spellCheck","uploadSoundSupport","state","pluginProps","image","disabled","math","handleClick","openMenu","__html","labelPlugins","ref","join","split","map","scorePointsValue","index","adjustedBlockWidth","BlockWidth","remainingSpace","scoreDescriptor","e","onScorePointDescriptorChange","React","Component","PropTypes","bool","object","propTypes","func","isRequired","isDragging","id","any","isOver","number","shape","string","arrayOf","StyledTrait","NAME","traitSource","beginDrag","StyledSource","connect","monitor","dragSource","dragPreview","traitTarget","hover","drop","item","getItem","didDrop","onTraitDropped","StyledSourceAndTarget","dropTarget"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { DragSource, DropTarget } from 'react-dnd';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nimport { Block, BlockWidth, ExpandedInput, PrimaryBlock, Row, SecondaryBlock, UnderlinedInput } from './common';\nimport { labelPlugins } from './utils';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\n\nconst log = debug('@pie-element:placement-ordering:configure:trait-tile');\n\nconst styles = (theme) => ({\n actions: {\n color: color.text(),\n },\n primaryBlock: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n marginBottom: theme.spacing.unit * 5,\n },\n controls: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n cursor: 'pointer',\n },\n options: {\n marginLeft: 'auto',\n },\n dragHandle: {},\n removeLabel: {\n display: 'flex',\n whiteSpace: 'break-spaces',\n },\n});\n\nexport class TraitTile extends React.Component {\n static propTypes = {\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.object,\n };\n\n state = {};\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.currentPosition !== this.props.currentPosition ||\n (this.secondaryBlock && this.secondaryBlock.scrollLeft !== nextProps.currentPosition)\n ) {\n this.scrollToPosition(nextProps.currentPosition);\n }\n }\n\n onTraitChanged = (params) => {\n const { trait, onTraitChanged } = this.props;\n\n if (isEmpty(params)) return;\n\n Object.keys(params).forEach((key) => {\n trait[key] = params[key];\n });\n\n onTraitChanged(trait);\n };\n\n onScorePointDescriptorChange = ({ descriptor, value }) => {\n const {\n trait: { scorePointsDescriptors },\n } = this.props;\n\n if (value < 0 || value >= scorePointsDescriptors.length) return;\n\n scorePointsDescriptors[value] = descriptor;\n\n this.onTraitChanged({ scorePointsDescriptors });\n };\n\n handleClick = (event) => this.setState({ anchorEl: event.currentTarget });\n\n handleClose = () => this.setState({ anchorEl: null });\n\n scrollToPosition = (position) => this.secondaryBlock.scrollTo({ left: position });\n\n openMenu = () => {\n this.props.onTraitRemoved();\n this.handleClose();\n };\n\n render() {\n const {\n classes,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n trait: { name, standards, description, scorePointsDescriptors },\n traitLabel,\n scorePointsValues,\n showStandards,\n showDescription,\n enableDragAndDrop,\n currentPosition,\n secondaryBlockWidth,\n spellCheck,\n uploadSoundSupport,\n } = this.props;\n const { anchorEl } = this.state;\n\n const pluginProps = {\n image: { disabled: true },\n math: { disabled: true },\n };\n\n return connectDragPreview(\n connectDropTarget(\n <div>\n <Row>\n <PrimaryBlock className={classes.primaryBlock}>\n <div className={classes.controls}>\n {enableDragAndDrop\n ? connectDragSource(\n <span className={classes.dragHandle}>\n <DragIndicatorIcon className={classes.actions} />\n </span>,\n )\n : null}\n\n <IconButton\n className={classes.options}\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-haspopup=\"true\"\n onClick={this.handleClick}\n >\n <MoreVertIcon />\n </IconButton>\n\n <Menu id=\"long-menu\" anchorEl={anchorEl} keepMounted open={!!anchorEl} onClose={this.handleClose}>\n <MenuItem onClick={this.openMenu}>\n <div\n className={classes.removeLabel}\n dangerouslySetInnerHTML={{ __html: `Remove ${name || traitLabel}` }}\n />\n </MenuItem>\n </Menu>\n </div>\n\n <UnderlinedInput\n markup={name}\n onChange={(name) => this.onTraitChanged({ name })}\n pluginProps={labelPlugins}\n placeholder={`Enter ${traitLabel}`}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </PrimaryBlock>\n\n <SecondaryBlock\n setRef={(ref) => {\n this.secondaryBlock = ref;\n }}\n width={`${secondaryBlockWidth}px`}\n >\n {showStandards && standards && (\n <Block>\n <ExpandedInput\n placeholder=\"Standards\"\n markup={standards.join(',')}\n onChange={(standards) => this.onTraitChanged({ standards: standards.split(',') })}\n pluginProps={pluginProps}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </Block>\n )}\n\n {showDescription && (\n <Block>\n <ExpandedInput\n placeholder=\"Description\"\n markup={description}\n onChange={(description) => this.onTraitChanged({ description })}\n pluginProps={pluginProps}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </Block>\n )}\n\n {(scorePointsValues || []).map((scorePointsValue, index) => {\n const adjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * index + currentPosition - 98;\n const value = scorePointsValues.length - index - 1;\n let scoreDescriptor;\n\n try {\n scoreDescriptor = scorePointsDescriptors[value] || '';\n } catch (e) {\n scoreDescriptor = '';\n }\n\n return (\n <Block key={`key-key-${index}`}>\n <ExpandedInput\n placeholder=\"Enter Description Here\"\n markup={scoreDescriptor}\n onChange={(descriptor) => this.onScorePointDescriptorChange({ descriptor, value })}\n pluginProps={pluginProps}\n alignToRight={remainingSpace < 296} // 296 is the space required for the toolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </Block>\n );\n })}\n </SecondaryBlock>\n </Row>\n </div>,\n ),\n );\n }\n}\n\nTraitTile.propTypes = {\n connectDragSource: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isDragging: PropTypes.bool.isRequired,\n id: PropTypes.any,\n isOver: PropTypes.bool,\n index: PropTypes.number,\n onTraitChanged: PropTypes.func.isRequired,\n onTraitRemoved: PropTypes.func.isRequired,\n trait: PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n traitLabel: PropTypes.string,\n scorePointsValues: PropTypes.arrayOf(PropTypes.number),\n showStandards: PropTypes.bool,\n showDescription: PropTypes.bool,\n enableDragAndDrop: PropTypes.bool,\n currentPosition: PropTypes.number,\n secondaryBlockWidth: PropTypes.number,\n};\n\nexport const StyledTrait = withStyles(styles)(TraitTile);\n\nconst NAME = 'trait-config';\n\nconst traitSource = {\n beginDrag(props) {\n return {\n name: props.trait.name,\n index: props.index,\n };\n },\n};\n\nconst StyledSource = DragSource(NAME, traitSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n}))(StyledTrait);\n\nconst traitTarget = {\n hover() {\n log('[hover]');\n },\n drop(props, monitor) {\n const item = monitor.getItem();\n log('[drop] item: ', item, 'didDrop?', monitor.didDrop());\n\n props.onTraitDropped(item, props.index);\n },\n};\n\nconst StyledSourceAndTarget = DropTarget(NAME, traitTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(StyledSource);\n\nexport default StyledSourceAndTarget;\n"],"file":"trait.js"}
@@ -8,11 +8,11 @@
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@material-ui/icons": "^3.0.1",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/config-ui": "^11.6.5",
12
- "@pie-lib/editable-html": "^9.5.24",
13
- "@pie-lib/render-ui": "^4.14.22",
14
- "@pie-lib/rubric": "^0.7.24",
15
- "@pie-lib/scoring-config": "^3.6.26",
11
+ "@pie-lib/config-ui": "^11.6.9",
12
+ "@pie-lib/editable-html": "^9.6.1",
13
+ "@pie-lib/render-ui": "^4.14.24",
14
+ "@pie-lib/rubric": "^0.7.28",
15
+ "@pie-lib/scoring-config": "^3.6.30",
16
16
  "debug": "^3.1.0",
17
17
  "lodash": "^4.17.15",
18
18
  "prop-types": "^15.6.2",
@@ -97,7 +97,7 @@ var getScore = function getScore() {
97
97
 
98
98
  exports.getScore = getScore;
99
99
 
100
- function outcome(model, session, env) {
100
+ function outcome() {
101
101
  return new Promise(function (resolve) {
102
102
  return resolve({
103
103
  score: 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["createDefaultModel","model","Promise","resolve","defaults","normalize","question","session","env","normalizedQuestion","role","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","getScore","outcome","score","empty","createCorrectResponseSession","mode","id"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEO,SAASA,kBAAT,GAAwC;AAAA,MAAZC,KAAY,uEAAJ,EAAI;AAC7C,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,iCAAMC,oBAAN,GAAmBH,KAAnB,EAApB;AAAA,GAAZ,CAAP;AACD;;AAEM,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;AAAA,yCAAoBF,oBAApB,GAAiCE,QAAjC;AAAA,CAAlB;AAEP;AACA;AACA;AACA;AACA;AACA;;;;;SACsBL,K;;;;;yFAAf,iBAAqBK,QAArB,EAA+BC,OAA/B,EAAwCC,GAAxC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,kBADD,GACsBJ,SAAS,CAACC,QAAD,CAD/B;;AAGL,gBAAI,CAACE,GAAG,CAACE,IAAL,IAAaF,GAAG,CAACE,IAAJ,KAAa,SAA9B,EAAyC;AACvCD,cAAAA,kBAAkB,CAACE,OAAnB,GAA6BF,kBAAkB,CAACG,gBAAhD;AACD,aAFD,MAEO;AACLH,cAAAA,kBAAkB,CAACE,OAAnB,GAA6B,IAA7B;AACD,aAPI,CASL;;;AATK,mBAU2BF,kBAAkB,IAAI,EAVjD,EAUGI,MAVH,QAUGA,MAVH,EAUWC,WAVX,QAUWA,WAVX;AAWCC,YAAAA,YAXD,GAWgB,CAACF,MAAM,IAAI,EAAX,EAAeG,GAAf,CAAmB,UAACC,KAAD;AAAA,qDAAiBA,KAAjB;AAAwBH,gBAAAA,WAAW,EAAXA;AAAxB;AAAA,aAAnB,CAXhB;AAAA,6EAcAL,kBAdA;AAeHI,cAAAA,MAAM,EAAEE;AAfL;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAmBA,IAAMG,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAM,CAAN;AAAA,CAAjB;AAEP;AACA;AACA;AACA;AACA;;;;;AACO,SAASC,OAAT,CAAiBlB,KAAjB,EAAwBM,OAAxB,EAAiCC,GAAjC,EAAsC;AAC3C,SAAO,IAAIN,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,CAAC;AAAEiB,MAAAA,KAAK,EAAE,CAAT;AAAYC,MAAAA,KAAK,EAAE;AAAnB,KAAD,CAApB;AAAA,GAAZ,CAAP;AACD;;AAEM,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CAAChB,QAAD,EAAWE,GAAX,EAAmB;AAC7D,SAAO,IAAIN,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAIK,GAAG,CAACe,IAAJ,KAAa,UAAb,IAA2Bf,GAAG,CAACE,IAAJ,KAAa,YAA5C,EAA0D;AACxDP,MAAAA,OAAO,CAAC;AAAEqB,QAAAA,EAAE,EAAE;AAAN,OAAD,CAAP;AACD,KAFD,MAEO;AACLrB,MAAAA,OAAO,CAAC,IAAD,CAAP;AACD;AACF,GANM,CAAP;AAOD,CARM","sourcesContent":["import defaults from './defaults';\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (!env.role || env.role === 'student') {\n normalizedQuestion.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n scales: parsedScales,\n };\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["createDefaultModel","model","Promise","resolve","defaults","normalize","question","session","env","normalizedQuestion","role","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","getScore","outcome","score","empty","createCorrectResponseSession","mode","id"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEO,SAASA,kBAAT,GAAwC;AAAA,MAAZC,KAAY,uEAAJ,EAAI;AAC7C,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,iCAAMC,oBAAN,GAAmBH,KAAnB,EAApB;AAAA,GAAZ,CAAP;AACD;;AAEM,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;AAAA,yCAAoBF,oBAApB,GAAiCE,QAAjC;AAAA,CAAlB;AAEP;AACA;AACA;AACA;AACA;AACA;;;;;SACsBL,K;;;;;yFAAf,iBAAqBK,QAArB,EAA+BC,OAA/B,EAAwCC,GAAxC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,kBADD,GACsBJ,SAAS,CAACC,QAAD,CAD/B;;AAGL,gBAAI,CAACE,GAAG,CAACE,IAAL,IAAaF,GAAG,CAACE,IAAJ,KAAa,SAA9B,EAAyC;AACvCD,cAAAA,kBAAkB,CAACE,OAAnB,GAA6BF,kBAAkB,CAACG,gBAAhD;AACD,aAFD,MAEO;AACLH,cAAAA,kBAAkB,CAACE,OAAnB,GAA6B,IAA7B;AACD,aAPI,CASL;;;AATK,mBAU2BF,kBAAkB,IAAI,EAVjD,EAUGI,MAVH,QAUGA,MAVH,EAUWC,WAVX,QAUWA,WAVX;AAWCC,YAAAA,YAXD,GAWgB,CAACF,MAAM,IAAI,EAAX,EAAeG,GAAf,CAAmB,UAACC,KAAD;AAAA,qDAAiBA,KAAjB;AAAwBH,gBAAAA,WAAW,EAAXA;AAAxB;AAAA,aAAnB,CAXhB;AAAA,6EAcAL,kBAdA;AAeHI,cAAAA,MAAM,EAAEE;AAfL;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAmBA,IAAMG,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAM,CAAN;AAAA,CAAjB;AAEP;AACA;AACA;AACA;AACA;;;;;AACO,SAASC,OAAT,GAAmB;AACxB,SAAO,IAAIjB,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,CAAC;AAAEiB,MAAAA,KAAK,EAAE,CAAT;AAAYC,MAAAA,KAAK,EAAE;AAAnB,KAAD,CAApB;AAAA,GAAZ,CAAP;AACD;;AAEM,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CAAChB,QAAD,EAAWE,GAAX,EAAmB;AAC7D,SAAO,IAAIN,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAIK,GAAG,CAACe,IAAJ,KAAa,UAAb,IAA2Bf,GAAG,CAACE,IAAJ,KAAa,YAA5C,EAA0D;AACxDP,MAAAA,OAAO,CAAC;AAAEqB,QAAAA,EAAE,EAAE;AAAN,OAAD,CAAP;AACD,KAFD,MAEO;AACLrB,MAAAA,OAAO,CAAC,IAAD,CAAP;AACD;AACF,GANM,CAAP;AAOD,CARM","sourcesContent":["import defaults from './defaults';\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (!env.role || env.role === 'student') {\n normalizedQuestion.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n scales: parsedScales,\n };\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
@@ -132,7 +132,7 @@ exports.model = (id, element) => ({
132
132
  {
133
133
  name: 'Voice',
134
134
  standards: [],
135
- description: "the personal tone and flavor of the author's message",
135
+ description: 'the personal tone and flavor of the author\'s message',
136
136
  scorePointsDescriptors: [
137
137
  'Student’s response is blank, not in English, not legible, or does not respond to the prompt.',
138
138
  'Not concerned with audience or purpose\n' +
package/lib/main.js CHANGED
@@ -66,9 +66,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
66
66
  }, {
67
67
  key: "render",
68
68
  value: function render() {
69
- var _this$props = this.props,
70
- model = _this$props.model,
71
- animationsDisabled = _this$props.animationsDisabled;
69
+ var model = this.props.model;
70
+ var animationsDisabled = this.props.animationsDisabled;
72
71
 
73
72
  var _ref = model || {},
74
73
  halfScoring = _ref.halfScoring,
@@ -76,7 +75,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
76
75
  visible = _ref.visible,
77
76
  pointLabels = _ref.pointLabels,
78
77
  description = _ref.description,
79
- standards = _ref.standards;
78
+ standards = _ref.standards,
79
+ arrowsDisabled = _ref.arrowsDisabled;
80
+
81
+ animationsDisabled = animationsDisabled || model.animationsDisabled;
80
82
 
81
83
  if (!scales || !visible) {
82
84
  return null;
@@ -99,7 +101,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
99
101
  scaleIndex: scaleIndex,
100
102
  showPointsLabels: pointLabels,
101
103
  showDescription: description,
102
- showStandards: standards
104
+ showStandards: standards,
105
+ arrowsDisabled: arrowsDisabled
103
106
  });
104
107
  }));
105
108
 
@@ -148,7 +151,8 @@ Main.propTypes = {
148
151
  visible: _propTypes["default"].bool,
149
152
  pointLabels: _propTypes["default"].bool,
150
153
  description: _propTypes["default"].bool,
151
- standards: _propTypes["default"].bool
154
+ standards: _propTypes["default"].bool,
155
+ animationsDisabled: _propTypes["default"].bool
152
156
  }),
153
157
  animationsDisabled: _propTypes["default"].bool
154
158
  };
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","state","rubricOpen","linkPrefix","toggleRubric","bind","setState","model","animationsDisabled","halfScoring","scales","visible","pointLabels","description","standards","rubricItem","fontFamily","color","text","backgroundColor","background","marginBottom","map","scale","scaleIndex","dudUrl","marginTop","React","Component","propTypes","PropTypes","shape","bool","arrayOf","excludeZero","maxPoints","number","scorePointsLabels","string","traitLabel","traits","name","scorePointsDescriptors"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;IAEMA,I;;;;;AACJ,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AACA,UAAKC,KAAL,GAAa;AACXC,MAAAA,UAAU,EAAE,KADD;AAEXC,MAAAA,UAAU,EAAE;AAFD,KAAb;AAIA,UAAKC,YAAL,GAAoB,MAAKA,YAAL,CAAkBC,IAAlB,gDAApB;AANiB;AAOlB;;;;WAED,wBAAe;AACb,WAAKC,QAAL,CAAc;AAAEJ,QAAAA,UAAU,EAAE,CAAC,KAAKD,KAAL,CAAWC;AAA1B,OAAd;AACA,WAAKI,QAAL,CAAc;AAAEH,QAAAA,UAAU,EAAE,KAAKF,KAAL,CAAWC,UAAX,GAAwB,MAAxB,GAAiC;AAA/C,OAAd;AACD;;;WAED,kBAAS;AACP,wBAAsC,KAAKF,KAA3C;AAAA,UAAQO,KAAR,eAAQA,KAAR;AAAA,UAAeC,kBAAf,eAAeA,kBAAf;;AACA,iBAA8ED,KAAK,IAAI,EAAvF;AAAA,UAAQE,WAAR,QAAQA,WAAR;AAAA,UAAqBC,MAArB,QAAqBA,MAArB;AAAA,UAA6BC,OAA7B,QAA6BA,OAA7B;AAAA,UAAsCC,WAAtC,QAAsCA,WAAtC;AAAA,UAAmDC,WAAnD,QAAmDA,WAAnD;AAAA,UAAgEC,SAAhE,QAAgEA,SAAhE;;AAEA,UAAI,CAACJ,MAAD,IAAW,CAACC,OAAhB,EAAyB;AACvB,eAAO,IAAP;AACD;;AAED,UAAMI,UAAU,gBACd;AAAK,QAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAE,cAAd;AAA8BC,UAAAA,KAAK,EAAEA,gBAAMC,IAAN,EAArC;AAAmDC,UAAAA,eAAe,EAAEF,gBAAMG,UAAN;AAApE;AAAZ,SACGX,WAAW,gBACV;AAAK,QAAA,KAAK,EAAE;AAAEY,UAAAA,YAAY,EAAE;AAAhB;AAAZ,8EADU,GAER,IAHN,EAKGX,MAAM,CAACY,GAAP,CAAW,UAACC,KAAD,EAAQC,UAAR;AAAA,4BACV,gCAAC,iBAAD;AACE,UAAA,GAAG,kBAAWA,UAAX,CADL;AAEE,UAAA,KAAK,EAAED,KAFT;AAGE,UAAA,UAAU,EAAEC,UAHd;AAIE,UAAA,gBAAgB,EAAEZ,WAJpB;AAKE,UAAA,eAAe,EAAEC,WALnB;AAME,UAAA,aAAa,EAAEC;AANjB,UADU;AAAA,OAAX,CALH,CADF;;AAmBA,UAAIN,kBAAJ,EAAwB;AACtB,eAAOO,UAAP;AACD;;AAED,0BACE;AAAK,QAAA,KAAK,EAAE;AAAEE,UAAAA,KAAK,EAAEA,gBAAMC,IAAN,EAAT;AAAuBC,UAAAA,eAAe,EAAEF,gBAAMG,UAAN;AAAxC;AAAZ,sBACE,gCAAC,gBAAD;AAAM,QAAA,KAAK,EAAE;AAAED,UAAAA,eAAe,EAAEF,gBAAMG,UAAN;AAAnB,SAAb;AAAsD,QAAA,IAAI,EAAE,KAAKK,MAAjE;AAAyE,QAAA,OAAO,EAAE,KAAKrB;AAAvF,SACG,KAAKH,KAAL,CAAWE,UADd,YADF,eAIE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAEuB,UAAAA,SAAS,EAAE;AAAb,SAAjB;AAAwC,cAAI,KAAKzB,KAAL,CAAWC,UAAvD;AAAmE,QAAA,OAAO,EAAC;AAA3E,SACGa,UADH,CAJF,CADF;AAUD;;;EAxDgBY,kBAAMC,S;;AA2DzB7B,IAAI,CAAC8B,SAAL,GAAiB;AACftB,EAAAA,KAAK,EAAEuB,sBAAUC,KAAV,CAAgB;AACrBtB,IAAAA,WAAW,EAAEqB,sBAAUE,IADF;AAErBtB,IAAAA,MAAM,EAAEoB,sBAAUG,OAAV,CACNH,sBAAUC,KAAV,CAAgB;AACdG,MAAAA,WAAW,EAAEJ,sBAAUE,IADT;AAEdG,MAAAA,SAAS,EAAEL,sBAAUM,MAFP;AAGdC,MAAAA,iBAAiB,EAAEP,sBAAUG,OAAV,CAAkBH,sBAAUQ,MAA5B,CAHL;AAIdC,MAAAA,UAAU,EAAET,sBAAUQ,MAJR;AAKdE,MAAAA,MAAM,EAAEV,sBAAUG,OAAV,CACNH,sBAAUC,KAAV,CAAgB;AACdU,QAAAA,IAAI,EAAEX,sBAAUQ,MADF;AAEdzB,QAAAA,WAAW,EAAEiB,sBAAUQ,MAFT;AAGdI,QAAAA,sBAAsB,EAAEZ,sBAAUG,OAAV,CAAkBH,sBAAUQ,MAA5B,CAHV;AAIdxB,QAAAA,SAAS,EAAEgB,sBAAUG,OAAV,CAAkBH,sBAAUQ,MAA5B;AAJG,OAAhB,CADM;AALM,KAAhB,CADM,CAFa;AAkBrB3B,IAAAA,OAAO,EAAEmB,sBAAUE,IAlBE;AAmBrBpB,IAAAA,WAAW,EAAEkB,sBAAUE,IAnBF;AAoBrBnB,IAAAA,WAAW,EAAEiB,sBAAUE,IApBF;AAqBrBlB,IAAAA,SAAS,EAAEgB,sBAAUE;AArBA,GAAhB,CADQ;AAwBfxB,EAAAA,kBAAkB,EAAEsB,sBAAUE;AAxBf,CAAjB;eA2BejC,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Scale from './scale';\nimport Link from '@material-ui/core/Link';\nimport Collapse from '@material-ui/core/Collapse';\nimport { color } from '@pie-lib/render-ui';\n\nclass Main extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n rubricOpen: false,\n linkPrefix: 'Show',\n };\n this.toggleRubric = this.toggleRubric.bind(this);\n }\n\n toggleRubric() {\n this.setState({ rubricOpen: !this.state.rubricOpen });\n this.setState({ linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide' });\n }\n\n render() {\n const { model, animationsDisabled } = this.props;\n const { halfScoring, scales, visible, pointLabels, description, standards } = model || {};\n\n if (!scales || !visible) {\n return null;\n }\n\n const rubricItem = (\n <div style={{ fontFamily: 'Cerebri Sans', color: color.text(), backgroundColor: color.background() }}>\n {halfScoring ? (\n <div style={{ marginBottom: '16px' }}>* Half-point or in-between scores are permitted under this rubric.</div>\n ) : null}\n\n {scales.map((scale, scaleIndex) => (\n <Scale\n key={`scale_${scaleIndex}`}\n scale={scale}\n scaleIndex={scaleIndex}\n showPointsLabels={pointLabels}\n showDescription={description}\n showStandards={standards}\n />\n ))}\n </div>\n );\n\n if (animationsDisabled) {\n return rubricItem;\n }\n\n return (\n <div style={{ color: color.text(), backgroundColor: color.background() }}>\n <Link style={{ backgroundColor: color.background() }} href={this.dudUrl} onClick={this.toggleRubric}>\n {this.state.linkPrefix} Rubric\n </Link>\n <Collapse style={{ marginTop: '16px' }} in={this.state.rubricOpen} timeout=\"auto\">\n {rubricItem}\n </Collapse>\n </div>\n );\n }\n}\n\nMain.propTypes = {\n model: PropTypes.shape({\n halfScoring: PropTypes.bool,\n scales: PropTypes.arrayOf(\n PropTypes.shape({\n excludeZero: PropTypes.bool,\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n standards: PropTypes.arrayOf(PropTypes.string),\n }),\n ),\n }),\n ),\n visible: PropTypes.bool,\n pointLabels: PropTypes.bool,\n description: PropTypes.bool,\n standards: PropTypes.bool,\n }),\n animationsDisabled: PropTypes.bool,\n};\n\nexport default Main;\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","state","rubricOpen","linkPrefix","toggleRubric","bind","setState","model","animationsDisabled","halfScoring","scales","visible","pointLabels","description","standards","arrowsDisabled","rubricItem","fontFamily","color","text","backgroundColor","background","marginBottom","map","scale","scaleIndex","dudUrl","marginTop","React","Component","propTypes","PropTypes","shape","bool","arrayOf","excludeZero","maxPoints","number","scorePointsLabels","string","traitLabel","traits","name","scorePointsDescriptors"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Scale from './scale';\nimport Link from '@material-ui/core/Link';\nimport Collapse from '@material-ui/core/Collapse';\nimport { color } from '@pie-lib/render-ui';\n\nclass Main extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n rubricOpen: false,\n linkPrefix: 'Show',\n };\n this.toggleRubric = this.toggleRubric.bind(this);\n }\n\n toggleRubric() {\n this.setState({ rubricOpen: !this.state.rubricOpen });\n this.setState({ linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide' });\n }\n\n render() {\n const { model } = this.props;\n let { animationsDisabled } = this.props;\n const { halfScoring, scales, visible, pointLabels, description, standards, arrowsDisabled } = model || {};\n animationsDisabled = animationsDisabled || model.animationsDisabled;\n\n if (!scales || !visible) {\n return null;\n }\n\n const rubricItem = (\n <div style={{ fontFamily: 'Cerebri Sans', color: color.text(), backgroundColor: color.background() }}>\n {halfScoring ? (\n <div style={{ marginBottom: '16px' }}>* Half-point or in-between scores are permitted under this rubric.</div>\n ) : null}\n\n {scales.map((scale, scaleIndex) => (\n <Scale\n key={`scale_${scaleIndex}`}\n scale={scale}\n scaleIndex={scaleIndex}\n showPointsLabels={pointLabels}\n showDescription={description}\n showStandards={standards}\n arrowsDisabled={arrowsDisabled}\n />\n ))}\n </div>\n );\n\n if (animationsDisabled) {\n return rubricItem;\n }\n\n return (\n <div style={{ color: color.text(), backgroundColor: color.background() }}>\n <Link style={{ backgroundColor: color.background() }} href={this.dudUrl} onClick={this.toggleRubric}>\n {this.state.linkPrefix} Rubric\n </Link>\n <Collapse style={{ marginTop: '16px' }} in={this.state.rubricOpen} timeout=\"auto\">\n {rubricItem}\n </Collapse>\n </div>\n );\n }\n}\n\nMain.propTypes = {\n model: PropTypes.shape({\n halfScoring: PropTypes.bool,\n scales: PropTypes.arrayOf(\n PropTypes.shape({\n excludeZero: PropTypes.bool,\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n standards: PropTypes.arrayOf(PropTypes.string),\n }),\n ),\n }),\n ),\n visible: PropTypes.bool,\n pointLabels: PropTypes.bool,\n description: PropTypes.bool,\n standards: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n }),\n animationsDisabled: PropTypes.bool,\n};\n\nexport default Main;\n"],"file":"main.js"}
package/lib/scale.js CHANGED
@@ -53,7 +53,7 @@ var styles = function styles(theme) {
53
53
  },
54
54
  tableWrapper: {
55
55
  width: '100%',
56
- overflow: 'scroll'
56
+ overflow: 'auto'
57
57
  },
58
58
  table: {
59
59
  borderSpacing: 0,
@@ -188,7 +188,8 @@ var Scale = /*#__PURE__*/function (_React$Component) {
188
188
  scaleIndex = _this$props.scaleIndex,
189
189
  showDescription = _this$props.showDescription,
190
190
  showPointsLabels = _this$props.showPointsLabels,
191
- showStandards = _this$props.showStandards;
191
+ showStandards = _this$props.showStandards,
192
+ arrowsDisabled = _this$props.arrowsDisabled;
192
193
 
193
194
  var _ref2 = scale || {},
194
195
  excludeZero = _ref2.excludeZero,
@@ -232,7 +233,7 @@ var Scale = /*#__PURE__*/function (_React$Component) {
232
233
  return /*#__PURE__*/_react["default"].createElement("div", {
233
234
  className: classes.wrapper
234
235
  }, /*#__PURE__*/_react["default"].createElement(ArrowContainer, {
235
- show: showLeft,
236
+ show: showLeft && !arrowsDisabled,
236
237
  onClick: this.scrollLeft,
237
238
  extraStyles: {
238
239
  left: 0,
@@ -250,7 +251,7 @@ var Scale = /*#__PURE__*/function (_React$Component) {
250
251
  showLeft: _this2.tableWrapper.scrollLeft < _this2.tableWrapper.scrollWidth && _this2.tableWrapper.scrollLeft > 0
251
252
  });
252
253
  }
253
- }, /*#__PURE__*/_react["default"].createElement("table", {
254
+ }, arrowsDisabled && (showRight || showLeft) ? /*#__PURE__*/_react["default"].createElement("div", null, "The item is too large to fit in print mode.") : null, /*#__PURE__*/_react["default"].createElement("table", {
254
255
  key: "scale-".concat(scaleIndex),
255
256
  className: classes.table
256
257
  }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, /*#__PURE__*/_react["default"].createElement("div", {
@@ -290,7 +291,7 @@ var Scale = /*#__PURE__*/function (_React$Component) {
290
291
  excludeZero: excludeZero
291
292
  });
292
293
  })))), /*#__PURE__*/_react["default"].createElement(ArrowContainer, {
293
- show: showRight,
294
+ show: showRight && !arrowsDisabled,
294
295
  onClick: this.scrollRight,
295
296
  extraStyles: {
296
297
  right: 0,
@@ -319,7 +320,8 @@ Scale.propTypes = {
319
320
  }),
320
321
  showPointsLabels: _propTypes["default"].bool,
321
322
  showDescription: _propTypes["default"].bool,
322
- showStandards: _propTypes["default"].bool
323
+ showStandards: _propTypes["default"].bool,
324
+ arrowsDisabled: _propTypes["default"].bool
323
325
  };
324
326
 
325
327
  var _default = (0, _styles.withStyles)(styles)(Scale);
package/lib/scale.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scale.jsx"],"names":["styles","theme","wrapper","display","position","tableWrapper","width","overflow","table","borderSpacing","marginBottom","spacing","unit","borderRadius","color","text","fontSize","typography","lineHeight","marginBlockStart","paddingInlineStart","padding","textAlign","backgroundColor","secondaryBackground","verticalAlign","scorePointHeader","border","minWidth","pointLabel","scorePointValue","fontWeight","ArrowContainer","show","onClick","extraStyles","children","height","top","margin","alignItems","justifyContent","cursor","propTypes","PropTypes","bool","func","object","Scale","scrollLeft","offsetWidth","setState","showRight","scrollWidth","showLeft","initialScrollLeft","state","props","classes","scale","scaleIndex","showDescription","showPointsLabels","showStandards","excludeZero","maxPoints","traitLabel","traits","scorePointsLabels","scorePointsValues","descriptions","pointsLabels","standards","pointValue","push","reduce","tcc","trait","traitStandards","traitDescriptions","description","length","e","left","background","ref","__html","map","index","traitIndex","scrollRight","right","React","Component","number","shape","arrayOf","string","name","scorePointsDescriptors"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\nimport Trait from './trait';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nconst styles = (theme) => ({\n wrapper: {\n display: 'flex',\n position: 'relative'\n },\n tableWrapper: {\n width: '100%',\n overflow: 'scroll'\n },\n table: {\n borderSpacing: 0,\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n color: color.text(),\n fontSize: theme.typography.fontSize,\n lineHeight: '16px',\n overflow: 'unset',\n\n '& ul, ol': {\n marginBlockStart: 0,\n paddingInlineStart: theme.spacing.unit * 2,\n },\n\n '& th': {\n padding: theme.spacing.unit * 2,\n textAlign: 'left',\n backgroundColor: color.secondaryBackground(),\n verticalAlign: 'bottom',\n },\n\n '& th div': {\n width: '200px',\n },\n\n '& td': {\n width: '200px',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit}px`,\n verticalAlign: 'top',\n },\n },\n scorePointHeader: {\n '& td': {\n border: 0,\n padding: 0,\n textAlign: 'center',\n minWidth: '200px',\n },\n },\n pointLabel: {\n marginBottom: '4px',\n },\n scorePointValue: {\n fontWeight: 'normal',\n },\n});\n\nconst ArrowContainer = ({ show, onClick, extraStyles, children }) => (\n <div\n style={{\n height: 'calc(100% - 1px)',\n top: '1px',\n display: show ? 'flex' : 'none',\n width: '50px',\n margin: 'auto',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n ...extraStyles\n }}\n onClick={onClick}\n >\n {children}\n </div>\n);\n\nArrowContainer.propTypes = {\n show: PropTypes.bool,\n onClick: PropTypes.func,\n extraStyles: PropTypes.object,\n children: PropTypes.object,\n};\n\n\nclass Scale extends React.Component {\n state = {};\n\n componentDidMount() {\n if (this.tableWrapper) {\n if (this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth) {\n this.setState({ showRight: true });\n }\n }\n }\n\n scrollLeft = () => {\n this.tableWrapper.scrollLeft -= this.tableWrapper.offsetWidth / 2;\n\n this.setState({\n showRight: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }\n\n scrollRight = () => {\n const initialScrollLeft = this.tableWrapper.scrollLeft;\n this.tableWrapper.scrollLeft += this.tableWrapper.offsetWidth / 2;\n\n this.setState({\n showRight: initialScrollLeft !== this.tableWrapper.scrollLeft && this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }\n\n render() {\n const { showRight, showLeft } = this.state;\n const { classes, scale, scaleIndex, showDescription, showPointsLabels, showStandards } = this.props;\n const { excludeZero, maxPoints, traitLabel, traits, scorePointsLabels } = scale || {};\n\n let scorePointsValues = [];\n let descriptions;\n let pointsLabels;\n let standards;\n\n try {\n // determining the score points values\n for (let pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {\n scorePointsValues.push(pointValue);\n }\n\n const { traitStandards, traitDescriptions } = traits.reduce(\n (tcc, trait) => ({\n traitStandards: [...tcc.traitStandards, ...(trait.standards || [])],\n traitDescriptions: [...tcc.traitDescriptions, ...(trait.description || [])],\n }),\n {\n traitStandards: [],\n traitDescriptions: [],\n },\n );\n\n descriptions = showDescription && traitDescriptions.length;\n pointsLabels = showPointsLabels && scorePointsLabels.length;\n standards = showStandards && traitStandards.length;\n } catch (e) {\n descriptions = false;\n pointsLabels = false;\n standards = false;\n }\n\n return (\n <div className={classes.wrapper}>\n\n <ArrowContainer\n show={showLeft}\n onClick={this.scrollLeft}\n extraStyles={{\n left: 0,\n background: `linear-gradient(to right, white, ${color.background()})`,\n }}\n >\n <ArrowBackIosIcon/>\n </ArrowContainer>\n\n <div\n className={classes.tableWrapper}\n ref={ref => {\n this.tableWrapper = ref;\n }}\n onScroll={() => {\n this.setState({\n // 5 is a margin of error\n showRight: this.tableWrapper.scrollLeft + this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth - 5\n && this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }}\n >\n <table\n key={`scale-${scaleIndex}`}\n className={classes.table}\n >\n <thead>\n <tr>\n <th>\n <div dangerouslySetInnerHTML={{ __html: traitLabel }}/>\n </th>\n\n {standards ? (\n <th>\n <div>Standard(s)</div>\n </th>\n ) : null}\n\n {descriptions ? (\n <th>\n <div>Description</div>\n </th>\n ) : null}\n\n {scorePointsValues &&\n scorePointsValues.map((scorePointValue, index) => {\n let pointLabel = '';\n\n // to handle the case when there aren't enough labels\n try {\n pointLabel = scorePointsLabels[scorePointsValues.length - index - 1] || '';\n } catch (e) {\n pointLabel = '';\n }\n\n return (\n <th key={`table-header-${index}`}>\n <table className={classes.scorePointHeader}>\n <thead>\n {pointsLabels ? (\n <tr>\n <td>\n <div className={classes.pointLabel} dangerouslySetInnerHTML={{ __html: pointLabel }}/>\n </td>\n </tr>\n ) : null}\n <tr>\n <td className={classes.scorePointValue}>\n {scorePointValue === 1 ? `${scorePointValue} point` : `${scorePointValue} points`}\n </td>\n </tr>\n </thead>\n </table>\n </th>\n );\n })}\n </tr>\n </thead>\n\n <tbody>\n {traits &&\n traits.map((trait, traitIndex) => (\n <Trait\n key={`trait_${scaleIndex}_${traitIndex}`}\n trait={trait}\n traitIndex={traitIndex}\n showDescription={!!descriptions}\n showStandards={!!standards}\n scaleIndex={scaleIndex}\n scorePointsValues={scorePointsValues}\n excludeZero={excludeZero}\n />\n ))}\n </tbody>\n </table>\n </div>\n\n <ArrowContainer\n show={showRight}\n onClick={this.scrollRight}\n extraStyles={{\n right: 0,\n background: `linear-gradient(to left, white, ${color.background()})`,\n }}\n >\n <ArrowForwardIosIcon/>\n </ArrowContainer>\n </div>\n );\n }\n}\n\nScale.propTypes = {\n classes: PropTypes.object,\n scaleIndex: PropTypes.number,\n scale: PropTypes.shape({\n excludeZero: PropTypes.bool,\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n ),\n }),\n showPointsLabels: PropTypes.bool,\n showDescription: PropTypes.bool,\n showStandards: PropTypes.bool,\n};\n\nexport default withStyles(styles)(Scale);\n"],"file":"scale.js"}
1
+ {"version":3,"sources":["../src/scale.jsx"],"names":["styles","theme","wrapper","display","position","tableWrapper","width","overflow","table","borderSpacing","marginBottom","spacing","unit","borderRadius","color","text","fontSize","typography","lineHeight","marginBlockStart","paddingInlineStart","padding","textAlign","backgroundColor","secondaryBackground","verticalAlign","scorePointHeader","border","minWidth","pointLabel","scorePointValue","fontWeight","ArrowContainer","show","onClick","extraStyles","children","height","top","margin","alignItems","justifyContent","cursor","propTypes","PropTypes","bool","func","object","Scale","scrollLeft","offsetWidth","setState","showRight","scrollWidth","showLeft","initialScrollLeft","state","props","classes","scale","scaleIndex","showDescription","showPointsLabels","showStandards","arrowsDisabled","excludeZero","maxPoints","traitLabel","traits","scorePointsLabels","scorePointsValues","descriptions","pointsLabels","standards","pointValue","push","reduce","tcc","trait","traitStandards","traitDescriptions","description","length","e","left","background","ref","__html","map","index","traitIndex","scrollRight","right","React","Component","number","shape","arrayOf","string","name","scorePointsDescriptors"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\nimport Trait from './trait';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nconst styles = (theme) => ({\n wrapper: {\n display: 'flex',\n position: 'relative'\n },\n tableWrapper: {\n width: '100%',\n overflow: 'auto'\n },\n table: {\n borderSpacing: 0,\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n color: color.text(),\n fontSize: theme.typography.fontSize,\n lineHeight: '16px',\n overflow: 'unset',\n\n '& ul, ol': {\n marginBlockStart: 0,\n paddingInlineStart: theme.spacing.unit * 2,\n },\n\n '& th': {\n padding: theme.spacing.unit * 2,\n textAlign: 'left',\n backgroundColor: color.secondaryBackground(),\n verticalAlign: 'bottom',\n },\n\n '& th div': {\n width: '200px',\n },\n\n '& td': {\n width: '200px',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit}px`,\n verticalAlign: 'top',\n },\n },\n scorePointHeader: {\n '& td': {\n border: 0,\n padding: 0,\n textAlign: 'center',\n minWidth: '200px',\n },\n },\n pointLabel: {\n marginBottom: '4px',\n },\n scorePointValue: {\n fontWeight: 'normal',\n },\n});\n\nconst ArrowContainer = ({ show, onClick, extraStyles, children }) => (\n <div\n style={{\n height: 'calc(100% - 1px)',\n top: '1px',\n display: show ? 'flex' : 'none',\n width: '50px',\n margin: 'auto',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n ...extraStyles\n }}\n onClick={onClick}\n >\n {children}\n </div>\n);\n\nArrowContainer.propTypes = {\n show: PropTypes.bool,\n onClick: PropTypes.func,\n extraStyles: PropTypes.object,\n children: PropTypes.object,\n};\n\n\nclass Scale extends React.Component {\n state = {};\n\n componentDidMount() {\n if (this.tableWrapper) {\n if (this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth) {\n this.setState({ showRight: true });\n }\n }\n }\n\n scrollLeft = () => {\n this.tableWrapper.scrollLeft -= this.tableWrapper.offsetWidth / 2;\n\n this.setState({\n showRight: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }\n\n scrollRight = () => {\n const initialScrollLeft = this.tableWrapper.scrollLeft;\n this.tableWrapper.scrollLeft += this.tableWrapper.offsetWidth / 2;\n\n this.setState({\n showRight: initialScrollLeft !== this.tableWrapper.scrollLeft && this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }\n\n render() {\n const { showRight, showLeft } = this.state;\n const { classes, scale, scaleIndex, showDescription, showPointsLabels, showStandards, arrowsDisabled } = this.props;\n const { excludeZero, maxPoints, traitLabel, traits, scorePointsLabels } = scale || {};\n\n let scorePointsValues = [];\n let descriptions;\n let pointsLabels;\n let standards;\n\n try {\n // determining the score points values\n for (let pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {\n scorePointsValues.push(pointValue);\n }\n\n const { traitStandards, traitDescriptions } = traits.reduce(\n (tcc, trait) => ({\n traitStandards: [...tcc.traitStandards, ...(trait.standards || [])],\n traitDescriptions: [...tcc.traitDescriptions, ...(trait.description || [])],\n }),\n {\n traitStandards: [],\n traitDescriptions: [],\n },\n );\n\n descriptions = showDescription && traitDescriptions.length;\n pointsLabels = showPointsLabels && scorePointsLabels.length;\n standards = showStandards && traitStandards.length;\n } catch (e) {\n descriptions = false;\n pointsLabels = false;\n standards = false;\n }\n\n return (\n <div className={classes.wrapper}>\n <ArrowContainer\n show={showLeft && !arrowsDisabled}\n onClick={this.scrollLeft}\n extraStyles={{\n left: 0,\n background: `linear-gradient(to right, white, ${color.background()})`,\n }}\n >\n <ArrowBackIosIcon/>\n </ArrowContainer>\n\n <div\n className={classes.tableWrapper}\n ref={ref => {\n this.tableWrapper = ref;\n }}\n onScroll={() => {\n this.setState({\n // 5 is a margin of error\n showRight: this.tableWrapper.scrollLeft + this.tableWrapper.offsetWidth < this.tableWrapper.scrollWidth - 5\n && this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth,\n showLeft: this.tableWrapper.scrollLeft < this.tableWrapper.scrollWidth && this.tableWrapper.scrollLeft > 0,\n });\n }}\n >\n {arrowsDisabled && (showRight || showLeft) ? <div>The item is too large to fit in print mode.</div> : null}\n <table\n key={`scale-${scaleIndex}`}\n className={classes.table}\n >\n <thead>\n <tr>\n <th>\n <div dangerouslySetInnerHTML={{ __html: traitLabel }}/>\n </th>\n\n {standards ? (\n <th>\n <div>Standard(s)</div>\n </th>\n ) : null}\n\n {descriptions ? (\n <th>\n <div>Description</div>\n </th>\n ) : null}\n\n {scorePointsValues &&\n scorePointsValues.map((scorePointValue, index) => {\n let pointLabel = '';\n\n // to handle the case when there aren't enough labels\n try {\n pointLabel = scorePointsLabels[scorePointsValues.length - index - 1] || '';\n } catch (e) {\n pointLabel = '';\n }\n\n return (\n <th key={`table-header-${index}`}>\n <table className={classes.scorePointHeader}>\n <thead>\n {pointsLabels ? (\n <tr>\n <td>\n <div className={classes.pointLabel} dangerouslySetInnerHTML={{ __html: pointLabel }}/>\n </td>\n </tr>\n ) : null}\n <tr>\n <td className={classes.scorePointValue}>\n {scorePointValue === 1 ? `${scorePointValue} point` : `${scorePointValue} points`}\n </td>\n </tr>\n </thead>\n </table>\n </th>\n );\n })}\n </tr>\n </thead>\n\n <tbody>\n {traits &&\n traits.map((trait, traitIndex) => (\n <Trait\n key={`trait_${scaleIndex}_${traitIndex}`}\n trait={trait}\n traitIndex={traitIndex}\n showDescription={!!descriptions}\n showStandards={!!standards}\n scaleIndex={scaleIndex}\n scorePointsValues={scorePointsValues}\n excludeZero={excludeZero}\n />\n ))}\n </tbody>\n </table>\n </div>\n\n <ArrowContainer\n show={showRight && !arrowsDisabled}\n onClick={this.scrollRight}\n extraStyles={{\n right: 0,\n background: `linear-gradient(to left, white, ${color.background()})`,\n }}\n >\n <ArrowForwardIosIcon/>\n </ArrowContainer>\n </div>\n );\n }\n}\n\nScale.propTypes = {\n classes: PropTypes.object,\n scaleIndex: PropTypes.number,\n scale: PropTypes.shape({\n excludeZero: PropTypes.bool,\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n ),\n }),\n showPointsLabels: PropTypes.bool,\n showDescription: PropTypes.bool,\n showStandards: PropTypes.bool,\n arrowsDisabled: PropTypes.bool,\n};\n\nexport default withStyles(styles)(Scale);\n"],"file":"scale.js"}
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@pie-element/multi-trait-rubric",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "2.10.2",
4
+ "version": "2.10.3-next.106+134ec97ae",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
10
  "@pie-framework/pie-player-events": "^0.1.0",
11
- "@pie-lib/render-ui": "^4.14.22",
11
+ "@pie-lib/render-ui": "^4.14.24",
12
12
  "clsx": "^1.1.1",
13
13
  "enzyme-to-json": "^3.3.5",
14
14
  "prop-types": "^15.6.1",
15
15
  "react": "^16.8.1",
16
16
  "react-dom": "^16.8.1"
17
17
  },
18
- "gitHead": "f39573eef3b2bef5a26295defe4018f707c6a815",
18
+ "gitHead": "134ec97ae39133fe8be6a1aeca00a8eb4d2566b5",
19
19
  "scripts": {
20
20
  "postpublish": "../../scripts/postpublish"
21
21
  },