@pie-element/number-line 7.2.2-next.27 → 7.2.3

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.
@@ -67,7 +67,7 @@ var configuration = {
67
67
  settings: true,
68
68
  label: 'Width',
69
69
  enabled: true,
70
- min: 200,
70
+ min: 150,
71
71
  max: 800,
72
72
  step: 20
73
73
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","labelStep","tickIntervalType","tickStep","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","initialElements","widthEnabled","feedback","correct","type","incorrect","partial","configuration","instruction","settings","enabled","label","prompt","teacherInstructions","numberLineDimensions","step","spellCheck","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","maxMaxElements","hidePointConfigButtons","availableTools"],"mappings":"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","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: {\n min: -1,\n max: 1,\n },\n ticks: {\n minor: 0.125,\n major: 0.5,\n labelStep: '1/2',\n tickIntervalType: 'Fraction',\n tickStep: '1/8',\n },\n arrows: {\n left: true,\n right: true,\n },\n maxNumberOfPoints: 1,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n },\n initialElements: [],\n },\n widthEnabled: true,\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n};\n\nexport const configuration = {\n instruction: {\n settings: false,\n enabled: true,\n label:\n 'Number line questions involve plotting points or other objects. To create one, first set up the number line, then select the plotting tools students will be offered and use them to define the correct answer.',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n numberLineDimensions: {\n settings: true,\n label: 'Width',\n enabled: true,\n min: 200,\n max: 800,\n step: 20,\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n maxMaxElements: 10,\n hidePointConfigButtons: false,\n // availableTools: [\"PF\"],\n availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'],\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","labelStep","tickIntervalType","tickStep","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","initialElements","widthEnabled","feedback","correct","type","incorrect","partial","configuration","instruction","settings","enabled","label","prompt","teacherInstructions","numberLineDimensions","step","spellCheck","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","maxMaxElements","hidePointConfigButtons","availableTools"],"mappings":";;;;;;AAAO,IAAMA,KAAK,GAAG;AACnBC,EAAAA,eAAe,EAAE,EADE;AAEnBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,GAAG,EAAE,CAAC,CADA;AAENC,MAAAA,GAAG,EAAE;AAFC,KADH;AAKLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,KADF;AAELC,MAAAA,KAAK,EAAE,GAFF;AAGLC,MAAAA,SAAS,EAAE,KAHN;AAILC,MAAAA,gBAAgB,EAAE,UAJb;AAKLC,MAAAA,QAAQ,EAAE;AALL,KALF;AAYLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,IADA;AAENC,MAAAA,KAAK,EAAE;AAFD,KAZH;AAgBLC,IAAAA,iBAAiB,EAAE,CAhBd;AAiBLC,IAAAA,KAAK,EAAE,GAjBF;AAkBLC,IAAAA,WAAW,EAAE,IAlBR;AAmBLC,IAAAA,WAAW,EAAE,KAnBR;AAoBLC,IAAAA,qBAAqB,EAAE,QApBlB;AAqBLC,IAAAA,cAAc,EAAE;AACdC,MAAAA,EAAE,EAAE;AADU,KArBX;AAwBLC,IAAAA,eAAe,EAAE;AAxBZ,GAFY;AA4BnBC,EAAAA,YAAY,EAAE,IA5BK;AA6BnBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACP,iBAAS,SADF;AAEPC,MAAAA,IAAI,EAAE;AAFC,KADD;AAKRC,IAAAA,SAAS,EAAE;AACT,iBAAS,WADA;AAETD,MAAAA,IAAI,EAAE;AAFG,KALH;AASRE,IAAAA,OAAO,EAAE;AACP,iBAAS,QADF;AAEPF,MAAAA,IAAI,EAAE;AAFC;AATD;AA7BS,CAAd;;AA6CA,IAAMG,aAAa,GAAG;AAC3BC,EAAAA,WAAW,EAAE;AACXC,IAAAA,QAAQ,EAAE,KADC;AAEXC,IAAAA,OAAO,EAAE,IAFE;AAGXC,IAAAA,KAAK,EACH;AAJS,GADc;AAO3BC,EAAAA,MAAM,EAAE;AACNH,IAAAA,QAAQ,EAAE,IADJ;AAENE,IAAAA,KAAK,EAAE;AAFD,GAPmB;AAW3BE,EAAAA,mBAAmB,EAAE;AACnBJ,IAAAA,QAAQ,EAAE,IADS;AAEnBE,IAAAA,KAAK,EAAE;AAFY,GAXM;AAe3BG,EAAAA,oBAAoB,EAAE;AACpBL,IAAAA,QAAQ,EAAE,IADU;AAEpBE,IAAAA,KAAK,EAAE,OAFa;AAGpBD,IAAAA,OAAO,EAAE,IAHW;AAIpB5B,IAAAA,GAAG,EAAE,GAJe;AAKpBC,IAAAA,GAAG,EAAE,GALe;AAMpBgC,IAAAA,IAAI,EAAE;AANc,GAfK;AAuB3BC,EAAAA,UAAU,EAAE;AACVL,IAAAA,KAAK,EAAE,YADG;AAEVF,IAAAA,QAAQ,EAAE,KAFA;AAGVC,IAAAA,OAAO,EAAE;AAHC,GAvBe;AA4B3BO,EAAAA,aAAa,EAAE;AACbC,IAAAA,SAAS,EAAE,KADE;AAEbC,IAAAA,UAAU,EAAE;AAFC,GA5BY;AAgC3BC,EAAAA,QAAQ,EAAE;AACRX,IAAAA,QAAQ,EAAE,KADF;AAERE,IAAAA,KAAK,EAAE,kBAFC;AAGRD,IAAAA,OAAO,EAAE;AAHD,GAhCiB;AAqC3BW,EAAAA,eAAe,EAAE;AACfV,IAAAA,KAAK,EAAE,kBADQ;AAEfW,IAAAA,OAAO,EAAE;AAFM,GArCU;AAyC3BC,EAAAA,cAAc,EAAE,EAzCW;AA0C3BC,EAAAA,sBAAsB,EAAE,KA1CG;AA2C3B;AACAC,EAAAA,cAAc,EAAE,CAAC,IAAD,EAAO,KAAP,EAAc,KAAd,EAAqB,KAArB,EAA4B,KAA5B,EAAmC,KAAnC,EAA0C,KAA1C,EAAiD,KAAjD,EAAwD,KAAxD;AA5CW,CAAtB","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: {\n min: -1,\n max: 1,\n },\n ticks: {\n minor: 0.125,\n major: 0.5,\n labelStep: '1/2',\n tickIntervalType: 'Fraction',\n tickStep: '1/8',\n },\n arrows: {\n left: true,\n right: true,\n },\n maxNumberOfPoints: 1,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n },\n initialElements: [],\n },\n widthEnabled: true,\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n};\n\nexport const configuration = {\n instruction: {\n settings: false,\n enabled: true,\n label:\n 'Number line questions involve plotting points or other objects. To create one, first set up the number line, then select the plotting tools students will be offered and use them to define the correct answer.',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n numberLineDimensions: {\n settings: true,\n label: 'Width',\n enabled: true,\n min: 150,\n max: 800,\n step: 20,\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n maxMaxElements: 10,\n hidePointConfigButtons: false,\n // availableTools: [\"PF\"],\n availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'],\n};\n"],"file":"defaults.js"}
@@ -31,7 +31,7 @@ var _react = _interopRequireDefault(require("react"));
31
31
 
32
32
  var _configUi = require("@pie-lib/pie-toolbox/config-ui");
33
33
 
34
- var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
34
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
35
35
 
36
36
  var _numberLine = require("@pie-element/number-line");
37
37
 
@@ -90,8 +90,7 @@ var trimModel = function trimModel(model) {
90
90
  }),
91
91
  correctResponse: undefined
92
92
  });
93
- }; // Object holding information related to tick and label interval values.
94
-
93
+ };
95
94
 
96
95
  var ticksModel = {
97
96
  tickIntervalType: 'Fraction',
@@ -100,8 +99,7 @@ var ticksModel = {
100
99
  decimalTick: 0,
101
100
  fractionLabel: '0/1',
102
101
  decimalLabel: 0
103
- }; // Object holding data related to possible values for ticks and label interval in array.
104
-
102
+ };
105
103
  var data = {
106
104
  minorLimits: {},
107
105
  minorValues: {},
@@ -363,18 +361,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
363
361
  _this.setState({
364
362
  dialog: {
365
363
  open: true,
366
- text: 'To use this value, you must first remove one or more elements from the available types.'
367
- }
368
- });
369
-
370
- return;
371
- }
372
-
373
- if (_this.props.model.correctResponse.length > maxNumberOfPoints) {
374
- _this.setState({
375
- dialog: {
376
- open: true,
377
- text: 'To use this value, you must first remove one or more elements from the correct answers.'
364
+ text: 'To use this value, you must first remove one or more elements from the correct answer.'
378
365
  }
379
366
  });
380
367
 
@@ -594,7 +581,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
594
581
  _ref8$numberLineDimen = _ref8.numberLineDimensions,
595
582
  numberLineDimensions = _ref8$numberLineDimen === void 0 ? {} : _ref8$numberLineDimen,
596
583
  _ref8$maxMaxElements = _ref8.maxMaxElements,
597
- maxMaxElements = _ref8$maxMaxElements === void 0 ? 10 : _ref8$maxMaxElements,
584
+ maxMaxElements = _ref8$maxMaxElements === void 0 ? undefined : _ref8$maxMaxElements,
598
585
  _ref8$hidePointConfig = _ref8.hidePointConfigButtons,
599
586
  hidePointConfigButtons = _ref8$hidePointConfig === void 0 ? false : _ref8$hidePointConfig,
600
587
  _ref8$availableTools = _ref8.availableTools,
@@ -636,7 +623,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
636
623
  }, instruction.label), teacherInstructions.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
637
624
  label: teacherInstructions.label,
638
625
  className: classes.promptContainer
639
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
626
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
640
627
  className: classes.teacherInstructions,
641
628
  markup: model.teacherInstructions,
642
629
  onChange: function onChange(teacherInstructions) {
@@ -658,7 +645,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
658
645
  })), prompt.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
659
646
  label: prompt.label,
660
647
  className: classes.promptContainer
661
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
648
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
662
649
  className: classes.prompt,
663
650
  markup: model.prompt,
664
651
  onChange: function onChange(prompt) {
@@ -735,7 +722,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
735
722
  }), /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
736
723
  label: 'Title',
737
724
  className: classes.title
738
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
725
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
739
726
  markup: graph.title || '',
740
727
  onChange: this.changeGraphTitle,
741
728
  toolbarOpts: toolbarOpts,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","teacherInstructions","graph","title","disabled","correctResponse","ticksModel","tickIntervalType","integerTick","fractionTick","decimalTick","fractionLabel","decimalLabel","data","minorLimits","minorValues","majorValues","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","marginBottom","row","display","flexWrap","paddingRight","pointTypeChooser","margin","promptContainer","paddingTop","tooltip","fontSize","typography","whiteSpace","maxWidth","inlineFlexContainer","resetButton","errorText","color","palette","error","main","flexRow","alignItems","gap","description","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","obj","onChange","reloadTicksData","domain","ticks","assignTicksModelToGraph","height","graphChange","respIndex","forEach","correctResp","key","domainPosition","min","max","size","push","length","setState","correctAnswerDialog","open","text","indices","tickUtils","getMinorLimits","generateMinorValues","initTickModel","minor","decimal","fraction","math","number","indexOf","Number","isInteger","firstInteger","find","el","index","reduce","a","b","Math","abs","ceil","generateMajorValuesForMinor","major","currIndex","ticksData","out","buildTickData","filter","x","tickStep","labelStep","availableTypes","onlyPFAvailable","Object","entries","value","e","floor","isAvailableTypesGreaterThanMaxElements","dialog","getAdjustedHeight","maxElements","availableTypeCount","object","snapElements","initialElements","arrows","defaultModel","position","update","Set","map","v","some","d","pop","state","classes","configuration","uploadSoundSupport","contentDimensions","instruction","mathMlOptions","numberLineDimensions","maxMaxElements","hidePointConfigButtons","availableTools","errors","spellCheckEnabled","toolbarEditorPosition","widthError","domainError","maxError","pointsError","correctResponseError","validationMessage","initialModel","toolbarOpts","label","settings","language","marginLeft","changeTicks","widthEnabled","step","changeSize","changeArrows","changeGraphTitle","exhibitOnly","availableTypesChange","changeMaxNoOfPoints","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","React","Component","PropTypes","isRequired","func","name"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FormSection, InputContainer, AlertDialog, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { NumberLineComponent, dataConverter, tickUtils } from '@pie-element/number-line';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport * as math from 'mathjs';\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\nimport { generateValidationMessage } from './utils';\n\nconst trimModel = (model) => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n teacherInstructions: undefined,\n graph: { ...model.graph, title: undefined, disabled: true },\n correctResponse: undefined,\n});\n\n// Object holding information related to tick and label interval values.\nlet ticksModel = {\n tickIntervalType: 'Fraction',\n integerTick: 0,\n fractionTick: '0/1',\n decimalTick: 0,\n fractionLabel: '0/1',\n decimalLabel: 0,\n};\n// Object holding data related to possible values for ticks and label interval in array.\nlet data = {\n minorLimits: {},\n minorValues: {},\n majorValues: {},\n};\n\nconst { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } = dataConverter;\n\nconst styles = (theme) => ({\n maxNumberOfPoints: {\n width: '150px',\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2,\n },\n },\n pointTypeChooser: {\n margin: `${theme.spacing.unit * 2.5}px 0`,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n },\n resetButton: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n description: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n});\n\nexport const toPointType = (response) => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n\n return response.pointType[0];\n }\n\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const {\n model: {\n graph: { availableTypes, maxNumberOfPoints },\n },\n } = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n this.state = {\n dialog: {\n open: false,\n text: '',\n },\n correctAnswerDialog: {\n open: false,\n text: '',\n },\n };\n this.graphChange({ height });\n }\n\n graphChange = (obj) => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, ...obj };\n this.reloadTicksData(graph.domain, graph.width, graph.ticks);\n this.assignTicksModelToGraph(graph);\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n /*\n * This function gets called whenever the min, max or width for number line is changed\n * and it calculates ticks and label values and stores in ticks model.\n * @param domain containing min and max values.\n * @param width represents number line width\n * @param ticks represnt current values for minor and major.\n * */\n reloadTicksData = (domain, width, ticks) => {\n //check correct response\n const { model } = this.props;\n const graph = { ...model.graph };\n let respIndex = [];\n model.correctResponse.forEach((correctResp, key) => {\n if (\n correctResp.domainPosition < domain.min ||\n correctResp.domainPosition > domain.max ||\n (correctResp.size &&\n (correctResp.domainPosition + correctResp.size < domain.min ||\n correctResp.domainPosition + correctResp.size > domain.max))\n ) {\n respIndex.push(key);\n }\n });\n if (respIndex.length > 0) {\n this.setState({\n correctAnswerDialog: {\n open: true,\n text:\n 'This\\n' +\n 'change would make it impossible for students to plot one or more elements in the current\\n' +\n 'correct answer. If you proceed, all such elements will be removed from the correct\\n' +\n 'answer.',\n indices: respIndex,\n graph: graph,\n },\n });\n }\n\n data.minorLimits = tickUtils.getMinorLimits(domain, width);\n data.minorValues = tickUtils.generateMinorValues(data.minorLimits);\n data.majorValues = {};\n const initTickModel = () => {\n if (ticks.tickIntervalType) ticksModel.tickIntervalType = ticks.tickIntervalType;\n //setting minor values\n if (ticks.minor < data.minorLimits.min || ticks.minor > data.minorLimits.max) {\n ticksModel.decimalTick = data.minorValues.decimal[0];\n ticksModel.fractionTick = data.minorValues.fraction[0];\n } else {\n ticksModel.decimalTick = math.number(ticks.minor);\n ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];\n }\n if (Number.isInteger(ticksModel.decimalTick)) {\n ticksModel.integerTick = math.number(ticksModel.decimalTick);\n } else {\n const firstInteger = data.minorValues.decimal.find(function (el) {\n return Number.isInteger(el);\n });\n if (firstInteger) {\n const index = data.minorValues.decimal.indexOf(firstInteger);\n ticksModel.integerTick = math.number(firstInteger);\n if (ticksModel.tickIntervalType === 'Integer') {\n ticksModel.fractionTick = data.minorValues.fraction[index];\n ticksModel.decimalTick = data.minorValues.decimal[index];\n }\n } else {\n if (ticksModel.tickIntervalType === 'Integer') {\n ticksModel.tickIntervalType = 'Fraction';\n ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.decimal.length - 1];\n ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.fraction.length - 1];\n }\n ticksModel.integerTick = data.minorValues.decimal.reduce((a, b) => {\n return Math.abs(b - ticksModel.decimalTick) < Math.abs(a - ticksModel.decimalTick) ? b : a;\n });\n if (!Number.isInteger(ticksModel.integerTick)) {\n ticksModel.integerTick = math.ceil(ticksModel.integerTick);\n }\n }\n }\n //setting major values\n data.majorValues = tickUtils.generateMajorValuesForMinor(ticksModel.decimalTick, data.minorValues);\n if (!ticks.major) {\n ticksModel.decimalLabel = data.majorValues.decimal[0];\n ticksModel.fractionLabel = data.majorValues.fraction[0];\n } else {\n ticksModel.decimalLabel = math.number(ticks.major);\n if (data.majorValues.decimal.indexOf(ticksModel.decimalLabel) === -1) {\n let currIndex = 0;\n if (ticksModel.tickIntervalType === 'Integer') {\n currIndex = 4;\n } else {\n currIndex = data.majorValues.decimal.length - 1;\n }\n while (currIndex !== 0) {\n let ticksData = { minor: ticksModel.decimalTick, major: data.majorValues.decimal[currIndex] };\n let out = tickUtils.buildTickData(domain, width, ticksData, { fraction: undefined });\n if (out.filter((x) => x.type === 'major').length > 1) {\n break;\n } else {\n currIndex = currIndex - 1;\n }\n }\n ticksModel.decimalLabel = data.majorValues.decimal[currIndex];\n ticksModel.fractionLabel = data.majorValues.fraction[currIndex];\n } else {\n ticksModel.fractionLabel =\n data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];\n }\n }\n };\n initTickModel();\n };\n\n /*\n * This function updates calculated ticks values to graph model.\n * @param graph object\n * */\n assignTicksModelToGraph = (graph) => {\n graph.ticks.minor = ticksModel.decimalTick;\n graph.ticks.major = ticksModel.decimalLabel;\n graph.ticks.tickIntervalType = ticksModel.tickIntervalType;\n graph.ticks.tickStep = ticksModel.fractionTick;\n graph.ticks.labelStep = ticksModel.fractionLabel;\n };\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100\n : 50 + (maxNumberOfPoints || 20) * 25;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n maxNumberOfPoints = Math.floor(maxNumberOfPoints);\n if (this.isAvailableTypesGreaterThanMaxElements(this.props.model.graph.availableTypes, maxNumberOfPoints)) {\n this.setState({\n dialog: {\n open: true,\n text: 'To use this value, you must first remove one or more elements from the available types.',\n },\n });\n return;\n }\n if (this.props.model.correctResponse.length > maxNumberOfPoints) {\n this.setState({\n dialog: {\n open: true,\n text: 'To use this value, you must first remove one or more elements from the correct answers.',\n },\n });\n return;\n }\n const {\n model: {\n graph: { availableTypes },\n },\n } = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n /*\n * Validation check on wether available type of dot plot is greater than max elements allowed to plot.\n * @param availableTypes array of string.\n * @param maxElements number of max elements to use set by user.\n * @return boolean.\n * */\n isAvailableTypesGreaterThanMaxElements = (availableTypes, maxElements) => {\n let availableTypeCount = 0;\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (value) {\n availableTypeCount = availableTypeCount + 1;\n }\n });\n return availableTypeCount > maxElements;\n };\n\n changeGraphTitle = (title) => this.graphChange({ title });\n\n /*\n * Gets triggered whenever ticks related data is changed by user.\n * */\n changeTicks = (object) => {\n const { model, onChange } = this.props;\n const { ticks } = model.graph;\n ticks.minor = object.ticksModel.decimalTick;\n ticks.major = object.ticksModel.decimalLabel;\n ticks.tickIntervalType = object.ticksModel.tickIntervalType;\n ticks.tickStep = object.ticksModel.fractionTick;\n ticks.labelStep = object.ticksModel.fractionLabel;\n const correctResponse = tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);\n const initialElements = tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);\n const graph = { ...model.graph, ticks, initialElements };\n this.reloadTicksData(graph.domain, graph.width, graph.ticks);\n this.assignTicksModelToGraph(graph);\n onChange({ graph, correctResponse });\n };\n\n changeArrows = (arrows) => this.graphChange({ arrows });\n\n setDefaults = () => {\n const {\n graph: { availableTypes, maxNumberOfPoints },\n } = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n el.position = position;\n\n const { onChange, model } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n\n onChange({ correctResponse });\n };\n\n availableTypesChange = (availableTypes) => {\n const { model, onChange } = this.props;\n const {\n correctResponse,\n graph: { maxNumberOfPoints },\n } = model;\n\n let availableTypeCount = 0;\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (value) {\n availableTypeCount = availableTypeCount + 1;\n }\n });\n if (maxNumberOfPoints < availableTypeCount) {\n this.props.model.graph.maxNumberOfPoints = availableTypeCount;\n }\n\n new Set(correctResponse.map(toPointType)).forEach((pointType) => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, this.props.model.graph.maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = (indices) => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => !indices.some((d) => d === index));\n\n onChange({ correctResponse });\n };\n\n addCorrectResponse = (data) => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n\n onChange({ correctResponse });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n\n onChange({ correctResponse: [] });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n render() {\n const { classes, model, onChange, configuration, uploadSoundSupport } = this.props;\n const {\n contentDimensions = {},\n instruction = {},\n teacherInstructions = {},\n prompt = {},\n mathMlOptions = {},\n numberLineDimensions = {},\n maxMaxElements = 10,\n hidePointConfigButtons = false,\n availableTools = ['PF'],\n } = configuration || {};\n const { errors = {}, graph, spellCheckEnabled, toolbarEditorPosition } = model || {};\n const { dialog, correctAnswerDialog } = this.state;\n\n const { widthError, domainError, maxError, pointsError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage();\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(toGraphFormat);\n\n const initialModel = cloneDeep(model);\n initialModel['disabled'] = true;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n return (\n <layout.ConfigLayout dimensions={contentDimensions} hideSettings={true} settings={null}>\n <Typography component=\"div\" type=\"body1\" className={classes.description}>\n {instruction.label}\n </Typography>\n\n {teacherInstructions.settings && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.teacherInstructions}\n markup={model.teacherInstructions}\n onChange={(teacherInstructions) => onChange({ teacherInstructions })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {prompt.settings && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={(prompt) => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <CardBar\n header=\"Set Up Number Line\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n >\n Set up the number line by entering the domain and number of tick marks to display. Labels on the number line\n can be edited or removed by clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <Domain domain={graph.domain} errors={errors} onChange={(domain) => this.graphChange({ domain })} />\n </div>\n\n {maxError && <div className={classes.errorText}>{maxError}</div>}\n {domainError && <div className={classes.errorText}>{domainError}</div>}\n\n <div>\n <FormSection>\n <Ticks ticksModel={ticksModel} data={data} onChange={this.changeTicks} />\n </FormSection>\n </div>\n\n <div className={classes.flexRow}>\n {model.widthEnabled && (\n <Size\n size={graph}\n min={numberLineDimensions.min}\n max={numberLineDimensions.max}\n step={numberLineDimensions.step}\n onChange={this.changeSize}\n />\n )}\n <div></div>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </div>\n\n {widthError && <div className={classes.errorText}>{widthError}</div>}\n\n <NumberLineComponent\n onMoveElement={() => {}}\n onDeleteElements={() => {}}\n onAddElement={() => {}}\n onClearElements={() => {}}\n onUndoElement={() => {}}\n model={trimModel(initialModel)}\n />\n\n <FormSection label={'Title'} className={classes.title}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n activePlugins={[\n 'bold',\n 'html',\n 'italic',\n 'underline',\n 'strikethrough',\n 'image',\n 'math',\n 'languageCharacters',\n 'responseArea',\n ]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <CardBar header=\"Define Tool Set and Correct Response\">\n Select answer type and place it on the number line. Intersecting points, line segments and/or rays will\n appear above the number line. <i>Note: A maximum of 20 points, line segments or rays may be plotted.</i>\n </CardBar>\n\n <CardBar header=\"Available Tools\" mini>\n Click on the input options to be displayed to the students. All inputs will display by default.\n </CardBar>\n\n <div className={classes.pointTypeChooser}>\n <PointConfig\n onSelectionChange={this.availableTypesChange}\n selection={graph.availableTypes}\n availableTools={availableTools}\n hideButtons={hidePointConfigButtons}\n />\n </div>\n\n <FormSection className={classes.flexRow}>\n <label>Max No of Elements</label>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n min={1}\n max={maxMaxElements || 10}\n onlyIntegersAllowed={true}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n {pointsError && <div className={classes.errorText}>{pointsError}</div>}\n </FormSection>\n\n <label>Correct Answer</label>\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n </React.Fragment>\n )}\n <AlertDialog\n open={dialog.open}\n title=\"Warning\"\n text={dialog.text}\n onConfirm={() => this.setState({ dialog: { open: false } })}\n />\n <AlertDialog\n open={correctAnswerDialog.open}\n title=\"Warning\"\n text={correctAnswerDialog.text}\n onConfirm={() => {\n let indices = this.state.correctAnswerDialog.indices;\n if (indices && indices.length > 0) {\n this.deleteCorrectResponse(indices);\n }\n this.setState({ correctAnswerDialog: { open: false } });\n }}\n onClose={() => {\n const graph = this.state.correctAnswerDialog.graph;\n this.reloadTicksData(graph.domain, graph.width, graph.ticks);\n this.assignTicksModelToGraph(graph);\n onChange({ graph });\n this.setState({ correctAnswerDialog: { open: false } });\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["trimModel","model","feedback","undefined","prompt","teacherInstructions","graph","title","disabled","correctResponse","ticksModel","tickIntervalType","integerTick","fractionTick","decimalTick","fractionLabel","decimalLabel","data","minorLimits","minorValues","majorValues","lineIsSwitched","dataConverter","switchGraphLine","toGraphFormat","toSessionFormat","styles","theme","maxNumberOfPoints","width","checkbox","marginTop","spacing","unit","marginBottom","row","display","flexWrap","paddingRight","pointTypeChooser","margin","promptContainer","paddingTop","tooltip","fontSize","typography","whiteSpace","maxWidth","inlineFlexContainer","resetButton","errorText","color","palette","error","main","flexRow","alignItems","gap","description","toPointType","response","rest","pointType","direction","leftPoint","rightPoint","type","toUpperCase","Main","props","obj","onChange","reloadTicksData","domain","ticks","assignTicksModelToGraph","height","graphChange","respIndex","forEach","correctResp","key","domainPosition","min","max","size","push","length","setState","correctAnswerDialog","open","text","indices","tickUtils","getMinorLimits","generateMinorValues","initTickModel","minor","decimal","fraction","math","number","indexOf","Number","isInteger","firstInteger","find","el","index","reduce","a","b","Math","abs","ceil","generateMajorValuesForMinor","major","currIndex","ticksData","out","buildTickData","filter","x","tickStep","labelStep","availableTypes","onlyPFAvailable","Object","entries","value","e","floor","isAvailableTypesGreaterThanMaxElements","dialog","getAdjustedHeight","maxElements","availableTypeCount","object","snapElements","initialElements","arrows","defaultModel","position","update","Set","map","v","some","d","pop","state","classes","configuration","uploadSoundSupport","contentDimensions","instruction","mathMlOptions","numberLineDimensions","maxMaxElements","hidePointConfigButtons","availableTools","errors","spellCheckEnabled","toolbarEditorPosition","widthError","domainError","maxError","pointsError","correctResponseError","validationMessage","initialModel","toolbarOpts","label","settings","language","marginLeft","changeTicks","widthEnabled","step","changeSize","changeArrows","changeGraphTitle","exhibitOnly","availableTypesChange","changeMaxNoOfPoints","moveCorrectResponse","deleteCorrectResponse","addCorrectResponse","clearCorrectResponse","undoCorrectResponse","React","Component","PropTypes","isRequired","func","name"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FormSection, InputContainer, AlertDialog, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\nimport { NumberLineComponent, dataConverter, tickUtils } from '@pie-element/number-line';\nimport NumberTextField from './number-text-field';\nimport CardBar from './card-bar';\nimport Size from './size';\nimport PropTypes from 'prop-types';\nimport Domain from './domain';\nimport Arrows from './arrows';\nimport PointConfig from './point-config';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport * as math from 'mathjs';\nimport Ticks from './ticks';\nimport { model as defaultModel } from './defaults';\nimport { generateValidationMessage } from './utils';\n\nconst trimModel = (model) => ({\n ...model,\n feedback: undefined,\n prompt: undefined,\n teacherInstructions: undefined,\n graph: { ...model.graph, title: undefined, disabled: true },\n correctResponse: undefined,\n});\n\nlet ticksModel = {\n tickIntervalType: 'Fraction',\n integerTick: 0,\n fractionTick: '0/1',\n decimalTick: 0,\n fractionLabel: '0/1',\n decimalLabel: 0,\n};\n\nlet data = {\n minorLimits: {},\n minorValues: {},\n majorValues: {},\n};\n\nconst { lineIsSwitched, switchGraphLine, toGraphFormat, toSessionFormat } = dataConverter;\n\nconst styles = (theme) => ({\n maxNumberOfPoints: {\n width: '150px',\n },\n checkbox: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n row: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n paddingRight: theme.spacing.unit * 2,\n },\n },\n pointTypeChooser: {\n margin: `${theme.spacing.unit * 2.5}px 0`,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n },\n resetButton: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n description: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n});\n\nexport const toPointType = (response) => {\n function rest(response) {\n if (response.pointType) {\n if (response.direction) {\n return `${response.pointType[0]}${response.direction[0]}`;\n }\n\n return response.pointType[0];\n }\n\n return `${response.leftPoint[0]}${response.rightPoint[0]}`;\n }\n\n return `${response.type[0]}${rest(response)}`.toUpperCase();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const {\n model: {\n graph: { availableTypes, maxNumberOfPoints },\n },\n } = props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n this.state = {\n dialog: {\n open: false,\n text: '',\n },\n correctAnswerDialog: {\n open: false,\n text: '',\n },\n };\n this.graphChange({ height });\n }\n\n graphChange = (obj) => {\n const { model, onChange } = this.props;\n const graph = { ...model.graph, ...obj };\n this.reloadTicksData(graph.domain, graph.width, graph.ticks);\n this.assignTicksModelToGraph(graph);\n onChange({ graph });\n };\n\n changeSize = ({ width, height }) => this.graphChange({ width, height });\n\n reloadTicksData = (domain, width, ticks) => {\n //check correct response\n const { model } = this.props;\n const graph = { ...model.graph };\n let respIndex = [];\n model.correctResponse.forEach((correctResp, key) => {\n if (\n correctResp.domainPosition < domain.min ||\n correctResp.domainPosition > domain.max ||\n (correctResp.size &&\n (correctResp.domainPosition + correctResp.size < domain.min ||\n correctResp.domainPosition + correctResp.size > domain.max))\n ) {\n respIndex.push(key);\n }\n });\n if (respIndex.length > 0) {\n this.setState({\n correctAnswerDialog: {\n open: true,\n text:\n 'This\\n' +\n 'change would make it impossible for students to plot one or more elements in the current\\n' +\n 'correct answer. If you proceed, all such elements will be removed from the correct\\n' +\n 'answer.',\n indices: respIndex,\n graph: graph,\n },\n });\n }\n\n data.minorLimits = tickUtils.getMinorLimits(domain, width);\n data.minorValues = tickUtils.generateMinorValues(data.minorLimits);\n data.majorValues = {};\n const initTickModel = () => {\n if (ticks.tickIntervalType) ticksModel.tickIntervalType = ticks.tickIntervalType;\n //setting minor values\n if (ticks.minor < data.minorLimits.min || ticks.minor > data.minorLimits.max) {\n ticksModel.decimalTick = data.minorValues.decimal[0];\n ticksModel.fractionTick = data.minorValues.fraction[0];\n } else {\n ticksModel.decimalTick = math.number(ticks.minor);\n ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];\n }\n if (Number.isInteger(ticksModel.decimalTick)) {\n ticksModel.integerTick = math.number(ticksModel.decimalTick);\n } else {\n const firstInteger = data.minorValues.decimal.find(function (el) {\n return Number.isInteger(el);\n });\n if (firstInteger) {\n const index = data.minorValues.decimal.indexOf(firstInteger);\n ticksModel.integerTick = math.number(firstInteger);\n if (ticksModel.tickIntervalType === 'Integer') {\n ticksModel.fractionTick = data.minorValues.fraction[index];\n ticksModel.decimalTick = data.minorValues.decimal[index];\n }\n } else {\n if (ticksModel.tickIntervalType === 'Integer') {\n ticksModel.tickIntervalType = 'Fraction';\n ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.decimal.length - 1];\n ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.fraction.length - 1];\n }\n ticksModel.integerTick = data.minorValues.decimal.reduce((a, b) => {\n return Math.abs(b - ticksModel.decimalTick) < Math.abs(a - ticksModel.decimalTick) ? b : a;\n });\n if (!Number.isInteger(ticksModel.integerTick)) {\n ticksModel.integerTick = math.ceil(ticksModel.integerTick);\n }\n }\n }\n //setting major values\n data.majorValues = tickUtils.generateMajorValuesForMinor(ticksModel.decimalTick, data.minorValues);\n if (!ticks.major) {\n ticksModel.decimalLabel = data.majorValues.decimal[0];\n ticksModel.fractionLabel = data.majorValues.fraction[0];\n } else {\n ticksModel.decimalLabel = math.number(ticks.major);\n if (data.majorValues.decimal.indexOf(ticksModel.decimalLabel) === -1) {\n let currIndex = 0;\n if (ticksModel.tickIntervalType === 'Integer') {\n currIndex = 4;\n } else {\n currIndex = data.majorValues.decimal.length - 1;\n }\n while (currIndex !== 0) {\n let ticksData = { minor: ticksModel.decimalTick, major: data.majorValues.decimal[currIndex] };\n let out = tickUtils.buildTickData(domain, width, ticksData, { fraction: undefined });\n if (out.filter((x) => x.type === 'major').length > 1) {\n break;\n } else {\n currIndex = currIndex - 1;\n }\n }\n ticksModel.decimalLabel = data.majorValues.decimal[currIndex];\n ticksModel.fractionLabel = data.majorValues.fraction[currIndex];\n } else {\n ticksModel.fractionLabel =\n data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];\n }\n }\n };\n initTickModel();\n };\n\n assignTicksModelToGraph = (graph) => {\n graph.ticks.minor = ticksModel.decimalTick;\n graph.ticks.major = ticksModel.decimalLabel;\n graph.ticks.tickIntervalType = ticksModel.tickIntervalType;\n graph.ticks.tickStep = ticksModel.fractionTick;\n graph.ticks.labelStep = ticksModel.fractionLabel;\n };\n\n getAdjustedHeight = (availableTypes, maxNumberOfPoints) => {\n let onlyPFAvailable = true;\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (type !== 'PF' && value) {\n onlyPFAvailable = false;\n return;\n }\n });\n return maxNumberOfPoints && (maxNumberOfPoints === 1 || onlyPFAvailable)\n ? 100\n : 50 + (maxNumberOfPoints || 20) * 25;\n };\n\n changeMaxNoOfPoints = (e, maxNumberOfPoints) => {\n maxNumberOfPoints = Math.floor(maxNumberOfPoints);\n if (this.isAvailableTypesGreaterThanMaxElements(this.props.model.graph.availableTypes, maxNumberOfPoints)) {\n this.setState({\n dialog: {\n open: true,\n text: 'To use this value, you must first remove one or more elements from the correct answer.',\n },\n });\n return;\n }\n const {\n model: {\n graph: { availableTypes },\n },\n } = this.props;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n\n this.graphChange({ maxNumberOfPoints, height });\n };\n\n isAvailableTypesGreaterThanMaxElements = (availableTypes, maxElements) => {\n let availableTypeCount = 0;\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (value) {\n availableTypeCount = availableTypeCount + 1;\n }\n });\n return availableTypeCount > maxElements;\n };\n\n changeGraphTitle = (title) => this.graphChange({ title });\n\n changeTicks = (object) => {\n const { model, onChange } = this.props;\n const { ticks } = model.graph;\n ticks.minor = object.ticksModel.decimalTick;\n ticks.major = object.ticksModel.decimalLabel;\n ticks.tickIntervalType = object.ticksModel.tickIntervalType;\n ticks.tickStep = object.ticksModel.fractionTick;\n ticks.labelStep = object.ticksModel.fractionLabel;\n const correctResponse = tickUtils.snapElements(model.graph.domain, ticks, model.correctResponse);\n const initialElements = tickUtils.snapElements(model.graph.domain, ticks, model.graph.initialElements);\n const graph = { ...model.graph, ticks, initialElements };\n this.reloadTicksData(graph.domain, graph.width, graph.ticks);\n this.assignTicksModelToGraph(graph);\n onChange({ graph, correctResponse });\n };\n\n changeArrows = (arrows) => this.graphChange({ arrows });\n\n setDefaults = () => {\n const {\n graph: { availableTypes, maxNumberOfPoints },\n } = defaultModel;\n const height = this.getAdjustedHeight(availableTypes, maxNumberOfPoints);\n const graph = { ...cloneDeep(defaultModel.graph), height };\n\n this.props.onChange({ graph });\n };\n\n moveCorrectResponse = (index, el, position) => {\n el.position = position;\n\n const { onChange, model } = this.props;\n const update = toSessionFormat(el.type === 'line' && lineIsSwitched(el) ? switchGraphLine(el) : el);\n const correctResponse = [...model.correctResponse];\n correctResponse[index] = update;\n\n onChange({ correctResponse });\n };\n\n availableTypesChange = (availableTypes) => {\n const { model, onChange } = this.props;\n const {\n correctResponse,\n graph: { maxNumberOfPoints },\n } = model;\n\n let availableTypeCount = 0;\n Object.entries(availableTypes || {}).forEach(([type, value]) => {\n if (value) {\n availableTypeCount = availableTypeCount + 1;\n }\n });\n if (maxNumberOfPoints < availableTypeCount) {\n this.props.model.graph.maxNumberOfPoints = availableTypeCount;\n }\n\n new Set(correctResponse.map(toPointType)).forEach((pointType) => {\n availableTypes[pointType] = true;\n });\n\n const height = this.getAdjustedHeight(availableTypes, this.props.model.graph.maxNumberOfPoints);\n const graph = { ...model.graph, availableTypes, height };\n\n onChange({ graph });\n };\n\n deleteCorrectResponse = (indices) => {\n const { model, onChange } = this.props;\n const correctResponse = model.correctResponse.filter((v, index) => !indices.some((d) => d === index));\n\n onChange({ correctResponse });\n };\n\n addCorrectResponse = (data) => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.push(toSessionFormat(data));\n\n onChange({ correctResponse });\n };\n\n clearCorrectResponse = () => {\n const { onChange } = this.props;\n\n onChange({ correctResponse: [] });\n };\n\n undoCorrectResponse = () => {\n const { model, onChange } = this.props;\n const correctResponse = [...model.correctResponse];\n correctResponse.pop();\n onChange({ correctResponse });\n };\n\n render() {\n const { classes, model, onChange, configuration, uploadSoundSupport } = this.props;\n const {\n contentDimensions = {},\n instruction = {},\n teacherInstructions = {},\n prompt = {},\n mathMlOptions = {},\n numberLineDimensions = {},\n maxMaxElements = undefined,\n hidePointConfigButtons = false,\n availableTools = ['PF'],\n } = configuration || {};\n const { errors = {}, graph, spellCheckEnabled, toolbarEditorPosition } = model || {};\n const { dialog, correctAnswerDialog } = this.state;\n\n const { widthError, domainError, maxError, pointsError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage();\n\n const correctResponse = cloneDeep(model.correctResponse || []).map(toGraphFormat);\n\n const initialModel = cloneDeep(model);\n initialModel['disabled'] = true;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n return (\n <layout.ConfigLayout dimensions={contentDimensions} hideSettings={true} settings={null}>\n <Typography component=\"div\" type=\"body1\" className={classes.description}>\n {instruction.label}\n </Typography>\n\n {teacherInstructions.settings && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.teacherInstructions}\n markup={model.teacherInstructions}\n onChange={(teacherInstructions) => onChange({ teacherInstructions })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {prompt.settings && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={(prompt) => onChange({ prompt })}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <CardBar\n header=\"Set Up Number Line\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n >\n Set up the number line by entering the domain and number of tick marks to display. Labels on the number line\n can be edited or removed by clicking on the label.\n </CardBar>\n\n <div className={classes.row}>\n <Domain domain={graph.domain} errors={errors} onChange={(domain) => this.graphChange({ domain })} />\n </div>\n\n {maxError && <div className={classes.errorText}>{maxError}</div>}\n {domainError && <div className={classes.errorText}>{domainError}</div>}\n\n <div>\n <FormSection>\n <Ticks ticksModel={ticksModel} data={data} onChange={this.changeTicks} />\n </FormSection>\n </div>\n\n <div className={classes.flexRow}>\n {model.widthEnabled && (\n <Size\n size={graph}\n min={numberLineDimensions.min}\n max={numberLineDimensions.max}\n step={numberLineDimensions.step}\n onChange={this.changeSize}\n />\n )}\n <div></div>\n <Arrows arrows={graph.arrows} onChange={this.changeArrows} />\n </div>\n\n {widthError && <div className={classes.errorText}>{widthError}</div>}\n\n <NumberLineComponent\n onMoveElement={() => {}}\n onDeleteElements={() => {}}\n onAddElement={() => {}}\n onClearElements={() => {}}\n onUndoElement={() => {}}\n model={trimModel(initialModel)}\n />\n\n <FormSection label={'Title'} className={classes.title}>\n <EditableHtml\n markup={graph.title || ''}\n onChange={this.changeGraphTitle}\n toolbarOpts={toolbarOpts}\n activePlugins={[\n 'bold',\n 'html',\n 'italic',\n 'underline',\n 'strikethrough',\n 'image',\n 'math',\n 'languageCharacters',\n 'responseArea',\n ]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\n {!graph.exhibitOnly && (\n <React.Fragment>\n <CardBar header=\"Define Tool Set and Correct Response\">\n Select answer type and place it on the number line. Intersecting points, line segments and/or rays will\n appear above the number line. <i>Note: A maximum of 20 points, line segments or rays may be plotted.</i>\n </CardBar>\n\n <CardBar header=\"Available Tools\" mini>\n Click on the input options to be displayed to the students. All inputs will display by default.\n </CardBar>\n\n <div className={classes.pointTypeChooser}>\n <PointConfig\n onSelectionChange={this.availableTypesChange}\n selection={graph.availableTypes}\n availableTools={availableTools}\n hideButtons={hidePointConfigButtons}\n />\n </div>\n\n <FormSection className={classes.flexRow}>\n <label>Max No of Elements</label>\n <NumberTextField\n className={classes.maxNumberOfPoints}\n min={1}\n max={maxMaxElements || 10}\n onlyIntegersAllowed={true}\n value={graph.maxNumberOfPoints}\n onChange={this.changeMaxNoOfPoints}\n />\n {pointsError && <div className={classes.errorText}>{pointsError}</div>}\n </FormSection>\n\n <label>Correct Answer</label>\n\n <NumberLineComponent\n onMoveElement={this.moveCorrectResponse}\n onDeleteElements={this.deleteCorrectResponse}\n onAddElement={this.addCorrectResponse}\n onClearElements={this.clearCorrectResponse}\n onUndoElement={this.undoCorrectResponse}\n answer={correctResponse}\n //strip feedback for this model\n model={trimModel(model)}\n />\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n </React.Fragment>\n )}\n <AlertDialog\n open={dialog.open}\n title=\"Warning\"\n text={dialog.text}\n onConfirm={() => this.setState({ dialog: { open: false } })}\n />\n <AlertDialog\n open={correctAnswerDialog.open}\n title=\"Warning\"\n text={correctAnswerDialog.text}\n onConfirm={() => {\n let indices = this.state.correctAnswerDialog.indices;\n if (indices && indices.length > 0) {\n this.deleteCorrectResponse(indices);\n }\n this.setState({ correctAnswerDialog: { open: false } });\n }}\n onClose={() => {\n const graph = this.state.correctAnswerDialog.graph;\n this.reloadTicksData(graph.domain, graph.width, graph.ticks);\n this.assignTicksModelToGraph(graph);\n onChange({ graph });\n this.setState({ correctAnswerDialog: { open: false } });\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
@@ -108,13 +108,11 @@ var PointConfig = /*#__PURE__*/function (_React$Component) {
108
108
  value: function render() {
109
109
  var _this3 = this;
110
110
 
111
- // Setting default value if not passed in configuration properties.
112
111
  var _this$props = this.props,
113
112
  classes = _this$props.classes,
114
113
  availableTools = _this$props.availableTools,
115
- _this$props$hideButto = _this$props.hideButtons,
116
- hideButtons = _this$props$hideButto === void 0 ? false : _this$props$hideButto;
117
- var icons = (availableTools || []).map(function (point) {
114
+ hideButtons = _this$props.hideButtons;
115
+ var icons = availableTools.map(function (point) {
118
116
  return /*#__PURE__*/_react["default"].createElement(Point, {
119
117
  iconKey: point.toLowerCase(),
120
118
  key: point.toLowerCase(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/point-config.jsx"],"names":["Point","pointChooser","styles","theme","displayToggles","paddingTop","spacing","unit","marginRight","PointConfig","props","state","selection","point","update","_stateUpdate","value","display","types","reduce","acc","setState","onSelectionChange","classes","availableTools","hideButtons","icons","map","toLowerCase","toggle","bind","active","toggleAll","React","Component","PropTypes","func","object","array","bool","name"],"mappings":"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","sourcesContent":["import Button from '@material-ui/core/Button';\nimport React from 'react';\nimport { pointChooser } from '@pie-element/number-line';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nconst { Point } = pointChooser;\n\nconst styles = (theme) => ({\n displayToggles: {\n paddingTop: theme.spacing.unit * 2.5,\n '& > :first-child': {\n marginRight: theme.spacing.unit,\n },\n },\n});\n\nclass PointConfig extends React.Component {\n static propTypes = {\n onSelectionChange: PropTypes.func,\n selection: PropTypes.object,\n classes: PropTypes.object,\n availableTools: PropTypes.array,\n hideButtons: PropTypes.bool,\n };\n constructor(props) {\n super(props);\n this.state = {\n selection: props.selection,\n };\n }\n\n toggle(point) {\n const update = { ...this.state.selection };\n update[point] = !update[point];\n this._stateUpdate(update);\n }\n\n toggleAll(value) {\n const display = [...PointConfig.types].reduce((acc, point) => {\n acc[point] = value;\n\n return acc;\n }, {});\n\n this._stateUpdate(display);\n }\n\n _stateUpdate(selection) {\n this.setState({ selection }, () => {\n this.props.onSelectionChange(this.state.selection);\n });\n }\n\n active(point) {\n return this.state.selection[point] === true; // ? 'active' : '';\n }\n\n render() {\n // Setting default value if not passed in configuration properties.\n const { classes, availableTools, hideButtons = false } = this.props;\n\n const icons = (availableTools || []).map((point) => {\n return (\n <Point\n iconKey={point.toLowerCase()}\n key={point.toLowerCase()}\n onClick={this.toggle.bind(this, point)}\n active={this.active(point)}\n />\n );\n });\n\n return (\n <div>\n <div>{icons}</div>\n <div className={classes.displayToggles} hidden={hideButtons}>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, true)}>\n Select All\n </Button>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, false)}>\n None\n </Button>\n </div>\n </div>\n );\n }\n}\n\nPointConfig.types = ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'];\n\nexport default withStyles(styles, { name: 'PointConfig' })(PointConfig);\n"],"file":"point-config.js"}
1
+ {"version":3,"sources":["../src/point-config.jsx"],"names":["Point","pointChooser","styles","theme","displayToggles","paddingTop","spacing","unit","marginRight","PointConfig","props","state","selection","point","update","_stateUpdate","value","display","types","reduce","acc","setState","onSelectionChange","classes","availableTools","hideButtons","icons","map","toLowerCase","toggle","bind","active","toggleAll","React","Component","PropTypes","func","object","array","bool","name"],"mappings":"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","sourcesContent":["import Button from '@material-ui/core/Button';\nimport React from 'react';\nimport { pointChooser } from '@pie-element/number-line';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nconst { Point } = pointChooser;\n\nconst styles = (theme) => ({\n displayToggles: {\n paddingTop: theme.spacing.unit * 2.5,\n '& > :first-child': {\n marginRight: theme.spacing.unit,\n },\n },\n});\n\nclass PointConfig extends React.Component {\n static propTypes = {\n onSelectionChange: PropTypes.func,\n selection: PropTypes.object,\n classes: PropTypes.object,\n availableTools: PropTypes.array,\n hideButtons: PropTypes.bool,\n };\n constructor(props) {\n super(props);\n this.state = {\n selection: props.selection,\n };\n }\n\n toggle(point) {\n const update = { ...this.state.selection };\n update[point] = !update[point];\n this._stateUpdate(update);\n }\n\n toggleAll(value) {\n const display = [...PointConfig.types].reduce((acc, point) => {\n acc[point] = value;\n\n return acc;\n }, {});\n\n this._stateUpdate(display);\n }\n\n _stateUpdate(selection) {\n this.setState({ selection }, () => {\n this.props.onSelectionChange(this.state.selection);\n });\n }\n\n active(point) {\n return this.state.selection[point] === true; // ? 'active' : '';\n }\n\n render() {\n const { classes, availableTools, hideButtons } = this.props;\n\n const icons = availableTools.map((point) => {\n return (\n <Point\n iconKey={point.toLowerCase()}\n key={point.toLowerCase()}\n onClick={this.toggle.bind(this, point)}\n active={this.active(point)}\n />\n );\n });\n\n return (\n <div>\n <div>{icons}</div>\n <div className={classes.displayToggles} hidden={hideButtons}>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, true)}>\n Select All\n </Button>\n <Button variant=\"outlined\" size=\"small\" onClick={this.toggleAll.bind(this, false)}>\n None\n </Button>\n </div>\n </div>\n );\n }\n}\n\nPointConfig.types = ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'];\n\nexport default withStyles(styles, { name: 'PointConfig' })(PointConfig);\n"],"file":"point-config.js"}
@@ -22,18 +22,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
22
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
23
 
24
24
  var Size = function Size(props) {
25
- // Setting default value if not passed in configuration properties.
26
25
  var classes = props.classes,
27
- _props$size = props.size,
28
- size = _props$size === void 0 ? {
29
- width: 500
30
- } : _props$size,
31
- _props$min = props.min,
32
- min = _props$min === void 0 ? 150 : _props$min,
33
- _props$max = props.max,
34
- max = _props$max === void 0 ? 800 : _props$max,
35
- _props$step = props.step,
36
- step = _props$step === void 0 ? 20 : _props$step,
26
+ size = props.size,
27
+ min = props.min,
28
+ max = props.max,
29
+ step = props.step,
37
30
  onChange = props.onChange;
38
31
 
39
32
  var changeWidth = function changeWidth(e, width) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/size.jsx"],"names":["Size","props","classes","size","width","min","max","step","onChange","changeWidth","e","flexRow","flexCol","minMaxLabel","propTypes","PropTypes","object","isRequired","shape","number","height","func","styles","display","alignItems","gap","color"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AACtB;AACA,MAAQC,OAAR,GAAsFD,KAAtF,CAAQC,OAAR;AAAA,oBAAsFD,KAAtF,CAAiBE,IAAjB;AAAA,MAAiBA,IAAjB,4BAAwB;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAAxB;AAAA,mBAAsFH,KAAtF,CAAwCI,GAAxC;AAAA,MAAwCA,GAAxC,2BAA8C,GAA9C;AAAA,mBAAsFJ,KAAtF,CAAmDK,GAAnD;AAAA,MAAmDA,GAAnD,2BAAyD,GAAzD;AAAA,oBAAsFL,KAAtF,CAA8DM,IAA9D;AAAA,MAA8DA,IAA9D,4BAAqE,EAArE;AAAA,MAAyEC,QAAzE,GAAsFP,KAAtF,CAAyEO,QAAzE;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIN,KAAJ;AAAA,WAAcI,QAAQ,iCAAMP,KAAK,CAACE,IAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,OAAtB;AAAA,GAApB;;AACA,sBACE;AAAK,IAAA,SAAS,EAAEF,OAAO,CAACS;AAAxB,kBACE;AAAK,IAAA,SAAS,EAAET,OAAO,CAACU;AAAxB,kBACE,4DADF,eAEE;AAAO,IAAA,SAAS,EAAEV,OAAO,CAACW;AAA1B,aACOR,GADP,YACkBC,GADlB,CAFF,CADF,eAOE,gCAAC,+BAAD;AACE,IAAA,KAAK,EAAEH,IAAI,CAACC,KADd;AAEE,IAAA,GAAG,EAAEC,GAFP;AAGE,IAAA,GAAG,EAAEC,GAHP;AAIE,IAAA,IAAI,EAAEC,IAJR;AAKE,IAAA,mBAAmB,EAAE,IALvB;AAME,IAAA,QAAQ,EAAEE,WANZ;AAOE,IAAA,OAAO,EAAE;AAPX,IAPF,CADF;AAmBD,CAvBD;;AAyBAT,IAAI,CAACc,SAAL,GAAiB;AACfZ,EAAAA,OAAO,EAAEa,sBAAUC,MAAV,CAAiBC,UADX;AAEfd,EAAAA,IAAI,EAAEY,sBAAUG,KAAV,CAAgB;AACpBd,IAAAA,KAAK,EAAEW,sBAAUI,MADG;AAEpBC,IAAAA,MAAM,EAAEL,sBAAUI;AAFE,GAAhB,CAFS;AAMfd,EAAAA,GAAG,EAAEU,sBAAUI,MANA;AAOfb,EAAAA,GAAG,EAAES,sBAAUI,MAPA;AAQfZ,EAAAA,IAAI,EAAEQ,sBAAUI,MARD;AASfX,EAAAA,QAAQ,EAAEO,sBAAUM,IAAV,CAAeJ;AATV,CAAjB;;AAYA,IAAMK,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpB,aAAO,EADa;AAEpBX,IAAAA,OAAO,EAAE;AACPY,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,UAAU,EAAE,QAFL;AAGPC,MAAAA,GAAG,EAAE;AAHE,KAFW;AAOpBb,IAAAA,OAAO,EAAE;AACPW,MAAAA,OAAO,EAAE,MADF;AAEP,mBAAa;AAFN,KAPW;AAWpBV,IAAAA,WAAW,EAAE;AACX,mBAAa,OADF;AAEXa,MAAAA,KAAK,EAAE;AAFI;AAXO,GAAP;AAAA,CAAf;;eAgBe,wBAAWJ,MAAX,EAAmBtB,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { NumberTextFieldCustom } from '@pie-lib/pie-toolbox/config-ui';\n\nconst Size = (props) => {\n // Setting default value if not passed in configuration properties.\n const { classes, size = { width: 500 }, min = 150, max = 800, step = 20, onChange } = props;\n const changeWidth = (e, width) => onChange({ ...props.size, width });\n return (\n <div className={classes.flexRow}>\n <div className={classes.flexCol}>\n <label>Width (px)</label>\n <label className={classes.minMaxLabel}>\n Min {min}, Max {max}\n </label>\n </div>\n <NumberTextFieldCustom\n value={size.width}\n min={min}\n max={max}\n step={step}\n onlyIntegersAllowed={true}\n onChange={changeWidth}\n variant={'outlined'}\n />\n </div>\n );\n};\n\nSize.propTypes = {\n classes: PropTypes.object.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n};\n\nconst styles = () => ({\n class: {},\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n flexCol: {\n display: 'flex',\n 'flex-flow': 'column',\n },\n minMaxLabel: {\n 'font-size': 'small',\n color: 'gray',\n },\n});\nexport default withStyles(styles)(Size);\n"],"file":"size.js"}
1
+ {"version":3,"sources":["../src/size.jsx"],"names":["Size","props","classes","size","min","max","step","onChange","changeWidth","e","width","flexRow","flexCol","minMaxLabel","propTypes","PropTypes","object","isRequired","shape","number","height","func","styles","display","alignItems","gap","color"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AACtB,MAAQC,OAAR,GAAoDD,KAApD,CAAQC,OAAR;AAAA,MAAiBC,IAAjB,GAAoDF,KAApD,CAAiBE,IAAjB;AAAA,MAAuBC,GAAvB,GAAoDH,KAApD,CAAuBG,GAAvB;AAAA,MAA4BC,GAA5B,GAAoDJ,KAApD,CAA4BI,GAA5B;AAAA,MAAiCC,IAAjC,GAAoDL,KAApD,CAAiCK,IAAjC;AAAA,MAAuCC,QAAvC,GAAoDN,KAApD,CAAuCM,QAAvC;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIC,KAAJ;AAAA,WAAcH,QAAQ,iCAAMN,KAAK,CAACE,IAAZ;AAAkBO,MAAAA,KAAK,EAALA;AAAlB,OAAtB;AAAA,GAApB;;AACA,sBACE;AAAK,IAAA,SAAS,EAAER,OAAO,CAACS;AAAxB,kBACE;AAAK,IAAA,SAAS,EAAET,OAAO,CAACU;AAAxB,kBACE,4DADF,eAEE;AAAO,IAAA,SAAS,EAAEV,OAAO,CAACW;AAA1B,aACOT,GADP,YACkBC,GADlB,CAFF,CADF,eAOE,gCAAC,+BAAD;AACE,IAAA,KAAK,EAAEF,IAAI,CAACO,KADd;AAEE,IAAA,GAAG,EAAEN,GAFP;AAGE,IAAA,GAAG,EAAEC,GAHP;AAIE,IAAA,IAAI,EAAEC,IAJR;AAKE,IAAA,mBAAmB,EAAE,IALvB;AAME,IAAA,QAAQ,EAAEE,WANZ;AAOE,IAAA,OAAO,EAAE;AAPX,IAPF,CADF;AAmBD,CAtBD;;AAwBAR,IAAI,CAACc,SAAL,GAAiB;AACfZ,EAAAA,OAAO,EAAEa,sBAAUC,MAAV,CAAiBC,UADX;AAEfd,EAAAA,IAAI,EAAEY,sBAAUG,KAAV,CAAgB;AACpBR,IAAAA,KAAK,EAAEK,sBAAUI,MADG;AAEpBC,IAAAA,MAAM,EAAEL,sBAAUI;AAFE,GAAhB,CAFS;AAMff,EAAAA,GAAG,EAAEW,sBAAUI,MANA;AAOfd,EAAAA,GAAG,EAAEU,sBAAUI,MAPA;AAQfb,EAAAA,IAAI,EAAES,sBAAUI,MARD;AASfZ,EAAAA,QAAQ,EAAEQ,sBAAUM,IAAV,CAAeJ;AATV,CAAjB;;AAYA,IAAMK,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpB,aAAO,EADa;AAEpBX,IAAAA,OAAO,EAAE;AACPY,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,UAAU,EAAE,QAFL;AAGPC,MAAAA,GAAG,EAAE;AAHE,KAFW;AAOpBb,IAAAA,OAAO,EAAE;AACPW,MAAAA,OAAO,EAAE,MADF;AAEP,mBAAa;AAFN,KAPW;AAWpBV,IAAAA,WAAW,EAAE;AACX,mBAAa,OADF;AAEXa,MAAAA,KAAK,EAAE;AAFI;AAXO,GAAP;AAAA,CAAf;;eAgBe,wBAAWJ,MAAX,EAAmBtB,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { NumberTextFieldCustom } from '@pie-lib/pie-toolbox/config-ui';\n\nconst Size = (props) => {\n const { classes, size, min, max, step, onChange } = props;\n const changeWidth = (e, width) => onChange({ ...props.size, width });\n return (\n <div className={classes.flexRow}>\n <div className={classes.flexCol}>\n <label>Width (px)</label>\n <label className={classes.minMaxLabel}>\n Min {min}, Max {max}\n </label>\n </div>\n <NumberTextFieldCustom\n value={size.width}\n min={min}\n max={max}\n step={step}\n onlyIntegersAllowed={true}\n onChange={changeWidth}\n variant={'outlined'}\n />\n </div>\n );\n};\n\nSize.propTypes = {\n classes: PropTypes.object.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n};\n\nconst styles = () => ({\n class: {},\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n flexCol: {\n display: 'flex',\n 'flex-flow': 'column',\n },\n minMaxLabel: {\n 'font-size': 'small',\n color: 'gray',\n },\n});\nexport default withStyles(styles)(Size);\n"],"file":"size.js"}
@@ -29,68 +29,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
- // This const will store available tick interval types.
33
32
  var TickIntervals = ['Integer', 'Fraction', 'Decimal'];
34
33
  exports.TickIntervals = TickIntervals;
35
34
 
36
35
  var Ticks = function Ticks(props) {
37
36
  var classes = props.classes,
38
- _props$ticksModel = props.ticksModel,
39
- ticksModel = _props$ticksModel === void 0 ? {
40
- tickIntervalType: 'Fraction',
41
- integerTick: 0,
42
- fractionTick: '0/1',
43
- decimalTick: 0,
44
- fractionLabel: '0/1',
45
- decimalLabel: 0
46
- } : _props$ticksModel,
37
+ ticksModel = props.ticksModel,
47
38
  onChange = props.onChange,
48
- _props$data = props.data,
49
- data = _props$data === void 0 ? {
50
- minorLimits: {
51
- min: 0,
52
- max: 1
53
- },
54
- minorValues: {
55
- fraction: [],
56
- decimal: [],
57
- rounded: []
58
- },
59
- majorValues: {
60
- fraction: [],
61
- decimal: [],
62
- rounded: []
63
- }
64
- } : _props$data;
65
- /*
66
- * Function to validate minor values object
67
- * */
68
-
69
- var validateMinorValuesObject = function validateMinorValuesObject() {
70
- if (!data.minorValues) {
71
- return false;
72
- }
73
-
74
- return !!(data.minorValues.fraction || data.minorValues.decimal || data.minorValues.rounded);
75
- };
76
- /*
77
- * Function to validate major values object
78
- * */
79
-
80
-
81
- var validateMajorValuesObject = function validateMajorValuesObject() {
82
- if (!data.majorValues) {
83
- return false;
84
- }
85
-
86
- return !!(data.majorValues.fraction || data.majorValues.decimal || data.majorValues.rounded);
87
- };
88
- /*
89
- * Function to handle tick interval type radio group change
90
- * @param e change event object
91
- * @param tickIntervalType string value for changed tick interval type
92
- * */
93
-
39
+ data = props.data;
94
40
 
95
41
  var changeTickIntervalType = function changeTickIntervalType(e, tickIntervalType) {
96
42
  if (!TickIntervals.includes(tickIntervalType)) {
@@ -102,12 +48,6 @@ var Ticks = function Ticks(props) {
102
48
  ticksModel: ticksModel
103
49
  });
104
50
  };
105
- /*
106
- * Function to handle change in integer tick interval
107
- * @param e change event object
108
- * @param integerTick number value for changed tick
109
- * */
110
-
111
51
 
112
52
  var changeIntegerTick = function changeIntegerTick(e, integerTick) {
113
53
  ticksModel.integerTick = integerTick;
@@ -117,69 +57,37 @@ var Ticks = function Ticks(props) {
117
57
  ticksModel: ticksModel
118
58
  });
119
59
  };
120
- /*
121
- * Function to handle change in fraction tick interval
122
- * @param e change event object
123
- * @param fractionTick string value for changed tick
124
- * */
125
-
126
60
 
127
61
  var changeFractionTick = function changeFractionTick(e, fractionTick) {
128
- if (validateMinorValuesObject()) {
129
- ticksModel.fractionTick = fractionTick;
130
- ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.fraction.indexOf(ticksModel.fractionTick)];
131
- onChange({
132
- ticksModel: ticksModel
133
- });
134
- }
62
+ ticksModel.fractionTick = fractionTick;
63
+ ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.fraction.indexOf(ticksModel.fractionTick)];
64
+ onChange({
65
+ ticksModel: ticksModel
66
+ });
135
67
  };
136
- /*
137
- * Function to handle change in decimal tick interval
138
- * @param e change event object
139
- * @param decimalTick number value for changed tick
140
- * */
141
-
142
68
 
143
69
  var changeDecimalTick = function changeDecimalTick(e, decimalTick) {
144
- if (validateMinorValuesObject()) {
145
- ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.rounded.indexOf(decimalTick)];
146
- ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];
147
- onChange({
148
- ticksModel: ticksModel
149
- });
150
- }
70
+ ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.rounded.indexOf(decimalTick)];
71
+ ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];
72
+ onChange({
73
+ ticksModel: ticksModel
74
+ });
151
75
  };
152
- /*
153
- * Function to handle change in fraction label interval value
154
- * @param e change event object
155
- * @param fractionLabel string value for changed label interval
156
- * */
157
-
158
76
 
159
77
  var changeFractionLabel = function changeFractionLabel(e, fractionLabel) {
160
- if (validateMajorValuesObject()) {
161
- ticksModel.fractionLabel = fractionLabel;
162
- ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.fraction.indexOf(ticksModel.fractionLabel)];
163
- onChange({
164
- ticksModel: ticksModel
165
- });
166
- }
78
+ ticksModel.fractionLabel = fractionLabel;
79
+ ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.fraction.indexOf(ticksModel.fractionLabel)];
80
+ onChange({
81
+ ticksModel: ticksModel
82
+ });
167
83
  };
168
- /*
169
- * Function to handle change in decimal label interval value
170
- * @param e change event object
171
- * @param decimalLabel number value for changed label interval
172
- * */
173
-
174
84
 
175
85
  var changeDecimalLabel = function changeDecimalLabel(e, decimalLabel) {
176
- if (validateMajorValuesObject()) {
177
- ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.rounded.indexOf(decimalLabel)];
178
- ticksModel.fractionLabel = data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];
179
- onChange({
180
- ticksModel: ticksModel
181
- });
182
- }
86
+ ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.rounded.indexOf(decimalLabel)];
87
+ ticksModel.fractionLabel = data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];
88
+ onChange({
89
+ ticksModel: ticksModel
90
+ });
183
91
  };
184
92
 
185
93
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ticks.jsx"],"names":["TickIntervals","Ticks","props","classes","ticksModel","tickIntervalType","integerTick","fractionTick","decimalTick","fractionLabel","decimalLabel","onChange","data","minorLimits","min","max","minorValues","fraction","decimal","rounded","majorValues","validateMinorValuesObject","validateMajorValuesObject","changeTickIntervalType","e","includes","changeIntegerTick","toString","changeFractionTick","indexOf","changeDecimalTick","changeFractionLabel","changeDecimalLabel","displayFlex","flexCol1","tableFixed","radioInputs","labelWidth","math","number","ceil","nl","numberTextField","round","flexCol2","propTypes","PropTypes","object","isRequired","func","shape","string","styles","display","gap","width","alignItems","paddingTop","paddingBottom","maxWidth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { NumberTextFieldCustom } from '@pie-lib/pie-toolbox/config-ui';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport Radio from '@material-ui/core/Radio';\nimport * as math from 'mathjs';\n\n// This const will store available tick interval types.\nexport const TickIntervals = ['Integer', 'Fraction', 'Decimal'];\n\nexport const Ticks = (props) => {\n const {\n classes,\n ticksModel = {\n tickIntervalType: 'Fraction',\n integerTick: 0,\n fractionTick: '0/1',\n decimalTick: 0,\n fractionLabel: '0/1',\n decimalLabel: 0,\n },\n onChange,\n data = {\n minorLimits: { min: 0, max: 1 },\n minorValues: { fraction: [], decimal: [], rounded: [] },\n majorValues: { fraction: [], decimal: [], rounded: [] },\n }, // added default values if not present in model.\n } = props;\n\n /*\n * Function to validate minor values object\n * */\n const validateMinorValuesObject = () => {\n if (!data.minorValues) {\n return false;\n }\n return !!(data.minorValues.fraction || data.minorValues.decimal || data.minorValues.rounded);\n };\n\n /*\n * Function to validate major values object\n * */\n const validateMajorValuesObject = () => {\n if (!data.majorValues) {\n return false;\n }\n return !!(data.majorValues.fraction || data.majorValues.decimal || data.majorValues.rounded);\n };\n\n /*\n * Function to handle tick interval type radio group change\n * @param e change event object\n * @param tickIntervalType string value for changed tick interval type\n * */\n const changeTickIntervalType = (e, tickIntervalType) => {\n if (!TickIntervals.includes(tickIntervalType)) {\n return;\n }\n ticksModel.tickIntervalType = tickIntervalType;\n onChange({ ticksModel });\n };\n\n /*\n * Function to handle change in integer tick interval\n * @param e change event object\n * @param integerTick number value for changed tick\n * */\n const changeIntegerTick = (e, integerTick) => {\n ticksModel.integerTick = integerTick;\n ticksModel.fractionTick = integerTick.toString();\n ticksModel.decimalTick = integerTick;\n onChange({ ticksModel });\n };\n\n /*\n * Function to handle change in fraction tick interval\n * @param e change event object\n * @param fractionTick string value for changed tick\n * */\n const changeFractionTick = (e, fractionTick) => {\n if (validateMinorValuesObject()) {\n ticksModel.fractionTick = fractionTick;\n ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.fraction.indexOf(ticksModel.fractionTick)];\n onChange({ ticksModel });\n }\n };\n\n /*\n * Function to handle change in decimal tick interval\n * @param e change event object\n * @param decimalTick number value for changed tick\n * */\n const changeDecimalTick = (e, decimalTick) => {\n if (validateMinorValuesObject()) {\n ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.rounded.indexOf(decimalTick)];\n ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];\n onChange({ ticksModel });\n }\n };\n\n /*\n * Function to handle change in fraction label interval value\n * @param e change event object\n * @param fractionLabel string value for changed label interval\n * */\n const changeFractionLabel = (e, fractionLabel) => {\n if (validateMajorValuesObject()) {\n ticksModel.fractionLabel = fractionLabel;\n ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.fraction.indexOf(ticksModel.fractionLabel)];\n onChange({ ticksModel });\n }\n };\n\n /*\n * Function to handle change in decimal label interval value\n * @param e change event object\n * @param decimalLabel number value for changed label interval\n * */\n const changeDecimalLabel = (e, decimalLabel) => {\n if (validateMajorValuesObject()) {\n ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.rounded.indexOf(decimalLabel)];\n ticksModel.fractionLabel = data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];\n onChange({ ticksModel });\n }\n };\n\n return (\n <div className={classes.displayFlex}>\n <div className={classes.flexCol1}>\n <label>Tick Interval</label>\n <RadioGroup\n aria-label=\"tick-interval-type\"\n name=\"tickIntervalType\"\n value={ticksModel.tickIntervalType}\n onChange={changeTickIntervalType}\n >\n <table className={classes.tableFixed}>\n <tbody>\n <tr className={classes.radioInputs}>\n <td className={classes.labelWidth}>\n <FormControlLabel\n value=\"Integer\"\n control={<Radio checked={ticksModel.tickIntervalType === 'Integer'} />}\n label=\"Integer\"\n disabled={data.minorLimits.max < 1}\n />\n </td>\n <td>\n <NumberTextFieldCustom\n value={ticksModel.integerTick}\n min={math.number(math.ceil(data.minorLimits.min))}\n max={math.number(math.ceil(data.minorLimits.max))}\n step={1}\n onlyIntegersAllowed={true}\n className={classes.nl}\n inputClassName={classes.numberTextField}\n onChange={changeIntegerTick}\n variant={'outlined'}\n type={'number'}\n disabled={ticksModel.tickIntervalType !== 'Integer' || data.minorLimits.max < 1}\n />\n </td>\n </tr>\n <tr className={classes.radioInputs}>\n <td className={classes.labelWidth}>\n <FormControlLabel\n value=\"Fraction\"\n control={<Radio checked={ticksModel.tickIntervalType === 'Fraction'} />}\n label=\"Unit Fraction\"\n />\n </td>\n <td>\n <NumberTextFieldCustom\n value={ticksModel.fractionTick}\n min={math.number(data.minorLimits.min)}\n max={math.number(data.minorLimits.max)}\n customValues={data.minorValues.fraction}\n className={classes.nl}\n inputClassName={classes.numberTextField}\n onChange={changeFractionTick}\n variant={'outlined'}\n type={'text'}\n disabled={ticksModel.tickIntervalType !== 'Fraction'}\n />\n </td>\n </tr>\n <tr className={classes.radioInputs}>\n <td className={classes.labelWidth}>\n <FormControlLabel\n value=\"Decimal\"\n control={<Radio checked={ticksModel.tickIntervalType === 'Decimal'} />}\n label=\"Decimal\"\n />\n </td>\n <td>\n <NumberTextFieldCustom\n value={math.number(math.round(ticksModel.decimalTick, 3))}\n min={math.number(data.minorLimits.min)}\n max={math.number(data.minorLimits.max)}\n customValues={data.minorValues.rounded}\n className={classes.nl}\n inputClassName={classes.numberTextField}\n onChange={changeDecimalTick}\n variant={'outlined'}\n type={'number'}\n disabled={ticksModel.tickIntervalType !== 'Decimal'}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </RadioGroup>\n </div>\n <div className={classes.flexCol2}>\n <label>Label Interval</label>\n <NumberTextFieldCustom\n value={\n ticksModel.tickIntervalType === 'Fraction'\n ? ticksModel.fractionLabel\n : math.number(math.round(ticksModel.decimalLabel, 3))\n }\n className={classes.numberTextField}\n variant={'outlined'}\n customValues={\n ticksModel.tickIntervalType === 'Fraction' ? data.majorValues.fraction : data.majorValues.rounded\n }\n type={ticksModel.tickIntervalType === 'Fraction' ? 'text' : 'number'}\n onChange={ticksModel.tickIntervalType === 'Fraction' ? changeFractionLabel : changeDecimalLabel}\n />\n </div>\n </div>\n );\n};\nTicks.propTypes = {\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n ticksModel: PropTypes.shape({\n integerTick: PropTypes.number,\n decimalTick: PropTypes.number,\n fractionTick: PropTypes.string,\n tickIntervalType: PropTypes.string,\n fractionLabel: PropTypes.string,\n decimalLabel: PropTypes.number,\n }),\n data: PropTypes.object,\n};\n\nconst styles = () => ({\n displayFlex: {\n display: 'flex',\n },\n flexCol1: {\n display: 'flex',\n 'flex-flow': 'column',\n gap: '10px',\n width: '65%',\n },\n flexCol2: {\n display: 'flex',\n 'flex-flow': 'column',\n gap: '10px',\n },\n radioInputs: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: '5px',\n paddingBottom: '5px',\n },\n numberTextField: {\n maxWidth: '145px',\n },\n tableFixed: {\n 'table-layout': 'fixed',\n width: '100%',\n },\n labelWidth: {\n width: '35%',\n },\n});\nexport default withStyles(styles)(Ticks);\n"],"file":"ticks.js"}
1
+ {"version":3,"sources":["../src/ticks.jsx"],"names":["TickIntervals","Ticks","props","classes","ticksModel","onChange","data","changeTickIntervalType","e","tickIntervalType","includes","changeIntegerTick","integerTick","fractionTick","toString","decimalTick","changeFractionTick","minorValues","decimal","fraction","indexOf","changeDecimalTick","rounded","changeFractionLabel","fractionLabel","decimalLabel","majorValues","changeDecimalLabel","displayFlex","flexCol1","tableFixed","radioInputs","labelWidth","minorLimits","max","math","number","ceil","min","nl","numberTextField","round","flexCol2","propTypes","PropTypes","object","isRequired","func","shape","string","styles","display","gap","width","alignItems","paddingTop","paddingBottom","maxWidth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { NumberTextFieldCustom } from '@pie-lib/pie-toolbox/config-ui';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport Radio from '@material-ui/core/Radio';\nimport * as math from 'mathjs';\n\nexport const TickIntervals = ['Integer', 'Fraction', 'Decimal'];\n\nexport const Ticks = (props) => {\n const { classes, ticksModel, onChange, data } = props;\n\n const changeTickIntervalType = (e, tickIntervalType) => {\n if (!TickIntervals.includes(tickIntervalType)) {\n return;\n }\n ticksModel.tickIntervalType = tickIntervalType;\n onChange({ ticksModel });\n };\n\n const changeIntegerTick = (e, integerTick) => {\n ticksModel.integerTick = integerTick;\n ticksModel.fractionTick = integerTick.toString();\n ticksModel.decimalTick = integerTick;\n onChange({ ticksModel });\n };\n\n const changeFractionTick = (e, fractionTick) => {\n ticksModel.fractionTick = fractionTick;\n ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.fraction.indexOf(ticksModel.fractionTick)];\n onChange({ ticksModel });\n };\n\n const changeDecimalTick = (e, decimalTick) => {\n ticksModel.decimalTick = data.minorValues.decimal[data.minorValues.rounded.indexOf(decimalTick)];\n ticksModel.fractionTick = data.minorValues.fraction[data.minorValues.decimal.indexOf(ticksModel.decimalTick)];\n onChange({ ticksModel });\n };\n\n const changeFractionLabel = (e, fractionLabel) => {\n ticksModel.fractionLabel = fractionLabel;\n ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.fraction.indexOf(ticksModel.fractionLabel)];\n onChange({ ticksModel });\n };\n\n const changeDecimalLabel = (e, decimalLabel) => {\n ticksModel.decimalLabel = data.majorValues.decimal[data.majorValues.rounded.indexOf(decimalLabel)];\n ticksModel.fractionLabel = data.majorValues.fraction[data.majorValues.decimal.indexOf(ticksModel.decimalLabel)];\n onChange({ ticksModel });\n };\n\n return (\n <div className={classes.displayFlex}>\n <div className={classes.flexCol1}>\n <label>Tick Interval</label>\n <RadioGroup\n aria-label=\"tick-interval-type\"\n name=\"tickIntervalType\"\n value={ticksModel.tickIntervalType}\n onChange={changeTickIntervalType}\n >\n <table className={classes.tableFixed}>\n <tbody>\n <tr className={classes.radioInputs}>\n <td className={classes.labelWidth}>\n <FormControlLabel\n value=\"Integer\"\n control={<Radio checked={ticksModel.tickIntervalType === 'Integer'} />}\n label=\"Integer\"\n disabled={data.minorLimits.max < 1}\n />\n </td>\n <td>\n <NumberTextFieldCustom\n value={ticksModel.integerTick}\n min={math.number(math.ceil(data.minorLimits.min))}\n max={math.number(math.ceil(data.minorLimits.max))}\n step={1}\n onlyIntegersAllowed={true}\n className={classes.nl}\n inputClassName={classes.numberTextField}\n onChange={changeIntegerTick}\n variant={'outlined'}\n type={'number'}\n disabled={ticksModel.tickIntervalType !== 'Integer' || data.minorLimits.max < 1}\n />\n </td>\n </tr>\n <tr className={classes.radioInputs}>\n <td className={classes.labelWidth}>\n <FormControlLabel\n value=\"Fraction\"\n control={<Radio checked={ticksModel.tickIntervalType === 'Fraction'} />}\n label=\"Unit Fraction\"\n />\n </td>\n <td>\n <NumberTextFieldCustom\n value={ticksModel.fractionTick}\n min={math.number(data.minorLimits.min)}\n max={math.number(data.minorLimits.max)}\n customValues={data.minorValues.fraction}\n className={classes.nl}\n inputClassName={classes.numberTextField}\n onChange={changeFractionTick}\n variant={'outlined'}\n type={'text'}\n disabled={ticksModel.tickIntervalType !== 'Fraction'}\n />\n </td>\n </tr>\n <tr className={classes.radioInputs}>\n <td className={classes.labelWidth}>\n <FormControlLabel\n value=\"Decimal\"\n control={<Radio checked={ticksModel.tickIntervalType === 'Decimal'} />}\n label=\"Decimal\"\n />\n </td>\n <td>\n <NumberTextFieldCustom\n value={math.number(math.round(ticksModel.decimalTick, 3))}\n min={math.number(data.minorLimits.min)}\n max={math.number(data.minorLimits.max)}\n customValues={data.minorValues.rounded}\n className={classes.nl}\n inputClassName={classes.numberTextField}\n onChange={changeDecimalTick}\n variant={'outlined'}\n type={'number'}\n disabled={ticksModel.tickIntervalType !== 'Decimal'}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </RadioGroup>\n </div>\n <div className={classes.flexCol2}>\n <label>Label Interval</label>\n <NumberTextFieldCustom\n value={\n ticksModel.tickIntervalType === 'Fraction'\n ? ticksModel.fractionLabel\n : math.number(math.round(ticksModel.decimalLabel, 3))\n }\n className={classes.numberTextField}\n variant={'outlined'}\n customValues={\n ticksModel.tickIntervalType === 'Fraction' ? data.majorValues.fraction : data.majorValues.rounded\n }\n type={ticksModel.tickIntervalType === 'Fraction' ? 'text' : 'number'}\n onChange={ticksModel.tickIntervalType === 'Fraction' ? changeFractionLabel : changeDecimalLabel}\n />\n </div>\n </div>\n );\n};\nTicks.propTypes = {\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n ticksModel: PropTypes.shape({\n integerTick: PropTypes.number,\n decimalTick: PropTypes.number,\n fractionTick: PropTypes.string,\n tickIntervalType: PropTypes.string,\n fractionLabel: PropTypes.string,\n decimalLabel: PropTypes.number,\n }),\n data: PropTypes.object,\n};\n\nconst styles = () => ({\n displayFlex: {\n display: 'flex',\n },\n flexCol1: {\n display: 'flex',\n 'flex-flow': 'column',\n gap: '10px',\n width: '65%',\n },\n flexCol2: {\n display: 'flex',\n 'flex-flow': 'column',\n gap: '10px',\n },\n radioInputs: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: '5px',\n paddingBottom: '5px',\n },\n numberTextField: {\n maxWidth: '145px',\n },\n tableFixed: {\n 'table-layout': 'fixed',\n width: '100%',\n },\n labelWidth: {\n width: '35%',\n },\n});\nexport default withStyles(styles)(Ticks);\n"],"file":"ticks.js"}
@@ -7,7 +7,7 @@
7
7
  "dependencies": {
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@pie-framework/pie-configure-events": "^1.3.0",
10
- "@pie-lib/pie-toolbox": "1.4.8",
10
+ "@pie-lib/pie-toolbox": "1.4.7",
11
11
  "react": "^16.8.1",
12
12
  "react-dom": "^16.8.1"
13
13
  }
@@ -14,7 +14,7 @@
14
14
  "access": "public"
15
15
  },
16
16
  "dependencies": {
17
- "@pie-lib/pie-toolbox": "1.4.8",
17
+ "@pie-lib/pie-toolbox": "1.4.7",
18
18
  "lodash": "^4.17.15"
19
19
  },
20
20
  "author": "",
@@ -27,8 +27,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
27
27
 
28
28
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
29
 
30
- /*This const will store possible multiplier for label interval that needs to be multiplied
31
- with tick interval with denominator represented with object key.*/
32
30
  var labelMultiplier = {
33
31
  1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
34
32
  2: [1, 2, 4, 6, 8, 10],
@@ -205,12 +203,6 @@ var limit = function limit(v, min, max) {
205
203
 
206
204
  return v;
207
205
  };
208
- /*
209
- * Function to get tick interval limits based on min, max and width entered by the user.
210
- * @param domain object containing max and min value.
211
- * @param width number represents width of number line.
212
- * */
213
-
214
206
 
215
207
  var getMinorLimits = function getMinorLimits(domain, width) {
216
208
  var end = domain.max - domain.min;
@@ -296,13 +288,6 @@ var buildTickDataAsFractions = function buildTickDataAsFractions(domain, width,
296
288
  });
297
289
  return o;
298
290
  };
299
- /*
300
- * This function will generate tick interval values based on min and max limits of ticks.
301
- * @param minorLimits object containing min and max values
302
- * @return out object containing three arrays 1. fraction values, 2. decimal values,
303
- * 3. rounded decimal values upto 3 point precision for tick intervals.
304
- * */
305
-
306
291
 
307
292
  exports.buildTickDataAsFractions = buildTickDataAsFractions;
308
293
 
@@ -334,14 +319,6 @@ var generateMinorValues = function generateMinorValues(minorLimits) {
334
319
 
335
320
  return out;
336
321
  };
337
- /*
338
- * This function will generate label interval values for provided tick interval value.
339
- * @param minor number representing tick interval value.
340
- * @param minorValues object containing array of tick intervals.
341
- * @return out object containing three arrays 1. fraction values, 2. decimal values,
342
- * 3. rounded decimal values upto 3 point precision for label intervals.
343
- * */
344
-
345
322
 
346
323
  exports.generateMinorValues = generateMinorValues;
347
324
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/tick-utils.js"],"names":["labelMultiplier","fractionSnapTo","min","max","interval","value","fmax","fmin","mod","v","half","div","math","largerEq","abs","d","sub","fn","fn2","snapTo","out","fraction","number","fractionRange","start","end","m","equal","Error","e","subtract","direction","larger","smallerEq","compareFn","next","push","add","zbrErrorMessage","zeroBasedRange","length","a","multiplier","smaller","s","r","map","multiply","reverse","b","simpleRange","positiveRange","negativeRange","together","concat","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","getMinorLimits","domain","width","divide","isMultiple","multiple","src","n","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","o","filter","x","type","modulo","generateMinorValues","denoms","startValue","floor","endValue","ceil","decimal","rounded","i","denom","val","generateMajorValuesForMinor","minorValues","minorValue","indexOf","split","num","toString","multiplierKey","buildTickData","result","snapElements","elements","size","Number","isFinite","undefined","domainPosition"],"mappings":"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","sourcesContent":["import * as math from 'mathjs';\nimport uniqWith from 'lodash/uniqWith';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\n\n/*This const will store possible multiplier for label interval that needs to be multiplied \nwith tick interval with denominator represented with object key.*/\nexport const labelMultiplier = {\n 1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n 2: [1, 2, 4, 6, 8, 10],\n 3: [1, 3, 6, 9],\n 4: [1, 2, 4, 8],\n 5: [1, 5, 10],\n 6: [1, 2, 3, 6],\n 7: [1, 7],\n 8: [1, 2, 4, 8],\n 9: [1, 3, 9],\n 10: [1, 2, 5, 10],\n 12: [1, 2, 3, 4, 6],\n 15: [1, 3, 5],\n 16: [1, 2, 4, 8],\n 20: [1, 2, 4, 5, 10],\n 25: [1, 5],\n 32: [1, 2, 4, 8],\n 50: [1, 2, 5, 10],\n 64: [1, 2, 4, 8],\n 100: [1, 2, 4, 5, 10],\n 1000: [1, 2, 4, 5, 8, 10],\n};\n\nexport const fractionSnapTo = (min, max, interval, value) => {\n value = fmax(fmin(value, max), min);\n const mod = value.mod(interval);\n let v;\n\n const half = interval.div(2);\n if (math.largerEq(math.abs(mod), half)) {\n const d = interval.sub(math.abs(mod));\n const fn = math.largerEq(value, 0) ? 'add' : 'sub';\n v = value[fn](d);\n } else {\n const fn2 = math.largerEq(value, 0) ? 'sub' : 'add';\n v = value[fn2](math.abs(mod));\n }\n return v;\n};\n\nexport const snapTo = (min, max, interval, value) => {\n const out = fractionSnapTo(math.fraction(min), math.fraction(max), math.fraction(interval), math.fraction(value));\n return math.number(out);\n};\n\nexport const fractionRange = (start, end, interval) => {\n const m = math.mod(math.abs(start), math.abs(interval));\n if (!math.equal(m, 0)) {\n throw new Error('start point must be divisible by interval');\n }\n\n if (math.equal(start, end)) {\n return [];\n }\n\n const e = math.subtract(end, math.mod(end, math.abs(interval)));\n\n const direction = math.larger(interval, 0) ? 'positive' : 'negative';\n\n if (direction === 'negative' && math.largerEq(end, start)) {\n throw new Error('start must be > than end when doing a negative decrement');\n }\n if (direction === 'positive' && math.smallerEq(end, start)) {\n throw new Error('start must be < end when doing increments');\n }\n const compareFn = direction === 'positive' ? math.smallerEq : math.equal(e, end) ? math.largerEq : math.larger;\n const out = [];\n\n let next = start;\n while (compareFn(next, e)) {\n out.push(next);\n next = math.add(next, interval);\n }\n return out;\n};\n\nexport const zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nexport const zeroBasedRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const length = math.abs(math.subtract(end, start));\n\n if (math.larger(length, math.abs(end))) {\n throw new Error(zbrErrorMessage(start, end));\n }\n const a = {\n start: math.abs(start),\n end: math.abs(end),\n interval: math.abs(interval),\n multiplier: math.smaller(interval, 0) ? -1 : 1,\n };\n\n const m = math.mod(a.start, a.interval);\n const s = math.larger(m, 0) ? math.add(math.subtract(a.start, m), a.interval) : a.start;\n\n const r = fractionRange(s, a.end, a.interval);\n const out = a.multiplier === -1 ? r.map((v) => math.multiply(v, -1)) : r;\n\n if (math.smaller(interval, 0)) {\n out.reverse();\n }\n return out;\n};\n\nconst fmin = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.smaller(a, b) ? a : b;\n};\n\nconst fmax = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.larger(a, b) ? a : b;\n};\n/**\n * the lodash range was causing too much variance in the rounding errors\n * such that it was hard to round the numbers.\n * This is a more simplistic version but makes rounding work.\n */\nexport const simpleRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const positiveRange = math.larger(end, 0) ? zeroBasedRange(fmax(0, start), end, interval) : [];\n\n const negativeRange = math.smaller(start, 0) ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1)) : [];\n let together = negativeRange.concat(positiveRange);\n\n const out = uniqWith(together, math.equal);\n return out;\n};\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 2;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n return receivedDiff < expectedDiff;\n};\n\nconst limit = (v, min, max) => {\n if (math.smaller(fraction(v), fraction(min))) {\n return min;\n }\n\n if (math.larger(fraction(v), fraction(max))) {\n return max;\n }\n\n return v;\n};\n\n/*\n * Function to get tick interval limits based on min, max and width entered by the user.\n * @param domain object containing max and min value.\n * @param width number represents width of number line.\n * */\nexport const getMinorLimits = (domain, width) => {\n const end = domain.max - domain.min;\n const min = math.number(math.multiply(10, math.divide(math.fraction(end), width)));\n const max = math.number(math.multiply(20, min));\n return {\n min: min,\n max: max,\n };\n};\n\nexport const isMultiple = (multiple, src) => {\n const mod = math.mod(multiple, src);\n return math.equal(mod, 0);\n};\n\n/**\n * Accepts a fraction object {n,d,s} or number.\n * @param {*} v\n * @return mathjs.fraction\n */\nexport const fraction = (v) => {\n if (isObject(v)) {\n return math.fraction(v.n * v.s, v.d);\n } else if (isNumber(v)) {\n return math.fraction(v);\n }\n};\n\nexport const normalizeTicks = (domain, width, ticks, opts) => {\n const useLimit = opts ? opts.limit !== false : true;\n const minorLimits = getMinorLimits(domain, width);\n\n const minor = useLimit ? limit(fraction(ticks.minor), minorLimits.min, minorLimits.max) : fraction(ticks.minor);\n const major = useLimit ? limit(fraction(ticks.major), minor, math.multiply(minor, 20)) : fraction(ticks.major);\n\n const isMajorMultiple = isMultiple(major, minor);\n\n if (!isMajorMultiple) {\n const multiplier = math.divide(major, minor);\n const multiplyBy = multiplier <= 2 ? 2 : Math.round(multiplier);\n\n // major must be a multiple of minor\n return { minor, major: math.multiply(minor, multiplyBy) };\n }\n\n return { major, minor };\n};\n\n/**\n * Build ticks as an array of mathjs Fractions\n */\nexport const buildTickDataAsFractions = (domain, width, ticks, opts) => {\n ticks = normalizeTicks(domain, width, ticks, opts);\n const rng = simpleRange(domain.min, domain.max, ticks.minor);\n\n const o = rng\n .filter((x) => math.smallerEq(x, math.fraction(domain.max)))\n .map((x) => {\n let type = 'minor';\n const modulo = math.mod(x, ticks.major);\n\n if (closeTo(math.number(modulo), 0)) {\n type = 'major';\n }\n\n return { x, type };\n });\n\n return o;\n};\n\n/*\n * This function will generate tick interval values based on min and max limits of ticks.\n * @param minorLimits object containing min and max values\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * 3. rounded decimal values upto 3 point precision for tick intervals.\n * */\nexport const generateMinorValues = (minorLimits) => {\n const denoms = [1000, 100, 64, 50, 32, 25, 20, 16, 15, 12, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];\n const startValue = math.floor(minorLimits.min);\n const endValue = math.ceil(minorLimits.max);\n let out = { fraction: [], decimal: [], rounded: [] };\n for (let i = startValue; i < endValue; i++) {\n denoms.map((denom) => {\n let val = math.add(i, math.fraction(1, denom));\n if (val <= minorLimits.max && val >= minorLimits.min) {\n out.fraction.push(val.n + '/' + val.d);\n out.decimal.push(math.number(val));\n out.rounded.push(math.number(math.round(val, 3)));\n }\n });\n }\n return out;\n};\n\n/*\n * This function will generate label interval values for provided tick interval value.\n * @param minor number representing tick interval value.\n * @param minorValues object containing array of tick intervals.\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * 3. rounded decimal values upto 3 point precision for label intervals.\n * */\nexport const generateMajorValuesForMinor = (minor, minorValues) => {\n let out = { decimal: [], fraction: [], rounded: [] };\n let minorValue = math.number(minor);\n let fraction = minorValues.fraction[minorValues.decimal.indexOf(minorValue)];\n let n = math.number(fraction.split('/')[0]);\n let d = math.number(fraction.split('/')[1]);\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n out.fraction.push(num.toString());\n out.decimal.push(num);\n out.rounded.push(num);\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n if (num.d !== 1) {\n out.fraction.push(num.n + '/' + num.d);\n } else {\n out.fraction.push(num.n.toString());\n }\n out.decimal.push(math.number(num));\n out.rounded.push(math.number(math.round(num, 3)));\n }\n }\n return out;\n};\n\nexport const buildTickData = (domain, width, ticks, opts) => {\n const result = buildTickDataAsFractions(domain, width, ticks, opts);\n\n const out = result.map((o) => (opts.fraction ? o : { ...o, x: math.number(o.x) || 0 }));\n\n return out;\n};\n\nexport const snapElements = (domain, ticks, elements) => {\n return elements.map((e) => {\n const size = Number.isFinite(e.size) ? snapTo(0, e.size, ticks.minor, e.size) : undefined;\n const domainPosition = snapTo(domain.min, domain.max, ticks.minor, e.domainPosition);\n const out = { ...e, domainPosition };\n\n if (Number.isFinite(size)) {\n out.size = size;\n }\n\n return out;\n });\n};\n"],"file":"tick-utils.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/tick-utils.js"],"names":["labelMultiplier","fractionSnapTo","min","max","interval","value","fmax","fmin","mod","v","half","div","math","largerEq","abs","d","sub","fn","fn2","snapTo","out","fraction","number","fractionRange","start","end","m","equal","Error","e","subtract","direction","larger","smallerEq","compareFn","next","push","add","zbrErrorMessage","zeroBasedRange","length","a","multiplier","smaller","s","r","map","multiply","reverse","b","simpleRange","positiveRange","negativeRange","together","concat","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","getMinorLimits","domain","width","divide","isMultiple","multiple","src","n","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","o","filter","x","type","modulo","generateMinorValues","denoms","startValue","floor","endValue","ceil","decimal","rounded","i","denom","val","generateMajorValuesForMinor","minorValues","minorValue","indexOf","split","num","toString","multiplierKey","buildTickData","result","snapElements","elements","size","Number","isFinite","undefined","domainPosition"],"mappings":"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","sourcesContent":["import * as math from 'mathjs';\nimport uniqWith from 'lodash/uniqWith';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\n\nexport const labelMultiplier = {\n 1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n 2: [1, 2, 4, 6, 8, 10],\n 3: [1, 3, 6, 9],\n 4: [1, 2, 4, 8],\n 5: [1, 5, 10],\n 6: [1, 2, 3, 6],\n 7: [1, 7],\n 8: [1, 2, 4, 8],\n 9: [1, 3, 9],\n 10: [1, 2, 5, 10],\n 12: [1, 2, 3, 4, 6],\n 15: [1, 3, 5],\n 16: [1, 2, 4, 8],\n 20: [1, 2, 4, 5, 10],\n 25: [1, 5],\n 32: [1, 2, 4, 8],\n 50: [1, 2, 5, 10],\n 64: [1, 2, 4, 8],\n 100: [1, 2, 4, 5, 10],\n 1000: [1, 2, 4, 5, 8, 10],\n};\n\nexport const fractionSnapTo = (min, max, interval, value) => {\n value = fmax(fmin(value, max), min);\n const mod = value.mod(interval);\n let v;\n\n const half = interval.div(2);\n if (math.largerEq(math.abs(mod), half)) {\n const d = interval.sub(math.abs(mod));\n const fn = math.largerEq(value, 0) ? 'add' : 'sub';\n v = value[fn](d);\n } else {\n const fn2 = math.largerEq(value, 0) ? 'sub' : 'add';\n v = value[fn2](math.abs(mod));\n }\n return v;\n};\n\nexport const snapTo = (min, max, interval, value) => {\n const out = fractionSnapTo(math.fraction(min), math.fraction(max), math.fraction(interval), math.fraction(value));\n return math.number(out);\n};\n\nexport const fractionRange = (start, end, interval) => {\n const m = math.mod(math.abs(start), math.abs(interval));\n if (!math.equal(m, 0)) {\n throw new Error('start point must be divisible by interval');\n }\n\n if (math.equal(start, end)) {\n return [];\n }\n\n const e = math.subtract(end, math.mod(end, math.abs(interval)));\n\n const direction = math.larger(interval, 0) ? 'positive' : 'negative';\n\n if (direction === 'negative' && math.largerEq(end, start)) {\n throw new Error('start must be > than end when doing a negative decrement');\n }\n if (direction === 'positive' && math.smallerEq(end, start)) {\n throw new Error('start must be < end when doing increments');\n }\n const compareFn = direction === 'positive' ? math.smallerEq : math.equal(e, end) ? math.largerEq : math.larger;\n const out = [];\n\n let next = start;\n while (compareFn(next, e)) {\n out.push(next);\n next = math.add(next, interval);\n }\n return out;\n};\n\nexport const zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nexport const zeroBasedRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const length = math.abs(math.subtract(end, start));\n\n if (math.larger(length, math.abs(end))) {\n throw new Error(zbrErrorMessage(start, end));\n }\n const a = {\n start: math.abs(start),\n end: math.abs(end),\n interval: math.abs(interval),\n multiplier: math.smaller(interval, 0) ? -1 : 1,\n };\n\n const m = math.mod(a.start, a.interval);\n const s = math.larger(m, 0) ? math.add(math.subtract(a.start, m), a.interval) : a.start;\n\n const r = fractionRange(s, a.end, a.interval);\n const out = a.multiplier === -1 ? r.map((v) => math.multiply(v, -1)) : r;\n\n if (math.smaller(interval, 0)) {\n out.reverse();\n }\n return out;\n};\n\nconst fmin = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.smaller(a, b) ? a : b;\n};\n\nconst fmax = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.larger(a, b) ? a : b;\n};\n/**\n * the lodash range was causing too much variance in the rounding errors\n * such that it was hard to round the numbers.\n * This is a more simplistic version but makes rounding work.\n */\nexport const simpleRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const positiveRange = math.larger(end, 0) ? zeroBasedRange(fmax(0, start), end, interval) : [];\n\n const negativeRange = math.smaller(start, 0) ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1)) : [];\n let together = negativeRange.concat(positiveRange);\n\n const out = uniqWith(together, math.equal);\n return out;\n};\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 2;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n return receivedDiff < expectedDiff;\n};\n\nconst limit = (v, min, max) => {\n if (math.smaller(fraction(v), fraction(min))) {\n return min;\n }\n\n if (math.larger(fraction(v), fraction(max))) {\n return max;\n }\n\n return v;\n};\n\nexport const getMinorLimits = (domain, width) => {\n const end = domain.max - domain.min;\n const min = math.number(math.multiply(10, math.divide(math.fraction(end), width)));\n const max = math.number(math.multiply(20, min));\n return {\n min: min,\n max: max,\n };\n};\n\nexport const isMultiple = (multiple, src) => {\n const mod = math.mod(multiple, src);\n return math.equal(mod, 0);\n};\n\n/**\n * Accepts a fraction object {n,d,s} or number.\n * @param {*} v\n * @return mathjs.fraction\n */\nexport const fraction = (v) => {\n if (isObject(v)) {\n return math.fraction(v.n * v.s, v.d);\n } else if (isNumber(v)) {\n return math.fraction(v);\n }\n};\n\nexport const normalizeTicks = (domain, width, ticks, opts) => {\n const useLimit = opts ? opts.limit !== false : true;\n const minorLimits = getMinorLimits(domain, width);\n\n const minor = useLimit ? limit(fraction(ticks.minor), minorLimits.min, minorLimits.max) : fraction(ticks.minor);\n const major = useLimit ? limit(fraction(ticks.major), minor, math.multiply(minor, 20)) : fraction(ticks.major);\n\n const isMajorMultiple = isMultiple(major, minor);\n\n if (!isMajorMultiple) {\n const multiplier = math.divide(major, minor);\n const multiplyBy = multiplier <= 2 ? 2 : Math.round(multiplier);\n\n // major must be a multiple of minor\n return { minor, major: math.multiply(minor, multiplyBy) };\n }\n\n return { major, minor };\n};\n\n/**\n * Build ticks as an array of mathjs Fractions\n */\nexport const buildTickDataAsFractions = (domain, width, ticks, opts) => {\n ticks = normalizeTicks(domain, width, ticks, opts);\n const rng = simpleRange(domain.min, domain.max, ticks.minor);\n\n const o = rng\n .filter((x) => math.smallerEq(x, math.fraction(domain.max)))\n .map((x) => {\n let type = 'minor';\n const modulo = math.mod(x, ticks.major);\n\n if (closeTo(math.number(modulo), 0)) {\n type = 'major';\n }\n\n return { x, type };\n });\n\n return o;\n};\n\nexport const generateMinorValues = (minorLimits) => {\n const denoms = [1000, 100, 64, 50, 32, 25, 20, 16, 15, 12, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];\n const startValue = math.floor(minorLimits.min);\n const endValue = math.ceil(minorLimits.max);\n let out = { fraction: [], decimal: [], rounded: [] };\n for (let i = startValue; i < endValue; i++) {\n denoms.map((denom) => {\n let val = math.add(i, math.fraction(1, denom));\n if (val <= minorLimits.max && val >= minorLimits.min) {\n out.fraction.push(val.n + '/' + val.d);\n out.decimal.push(math.number(val));\n out.rounded.push(math.number(math.round(val, 3)));\n }\n });\n }\n return out;\n};\n\nexport const generateMajorValuesForMinor = (minor, minorValues) => {\n let out = { decimal: [], fraction: [], rounded: [] };\n let minorValue = math.number(minor);\n let fraction = minorValues.fraction[minorValues.decimal.indexOf(minorValue)];\n let n = math.number(fraction.split('/')[0]);\n let d = math.number(fraction.split('/')[1]);\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n out.fraction.push(num.toString());\n out.decimal.push(num);\n out.rounded.push(num);\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n if (num.d !== 1) {\n out.fraction.push(num.n + '/' + num.d);\n } else {\n out.fraction.push(num.n.toString());\n }\n out.decimal.push(math.number(num));\n out.rounded.push(math.number(math.round(num, 3)));\n }\n }\n return out;\n};\n\nexport const buildTickData = (domain, width, ticks, opts) => {\n const result = buildTickDataAsFractions(domain, width, ticks, opts);\n\n const out = result.map((o) => (opts.fraction ? o : { ...o, x: math.number(o.x) || 0 }));\n\n return out;\n};\n\nexport const snapElements = (domain, ticks, elements) => {\n return elements.map((e) => {\n const size = Number.isFinite(e.size) ? snapTo(0, e.size, ticks.minor, e.size) : undefined;\n const domainPosition = snapTo(domain.min, domain.max, ticks.minor, e.domainPosition);\n const out = { ...e, domainPosition };\n\n if (Number.isFinite(size)) {\n out.size = size;\n }\n\n return out;\n });\n};\n"],"file":"tick-utils.js"}
@@ -151,13 +151,11 @@ var PointChooser = /*#__PURE__*/function (_React$Component) {
151
151
  }, /*#__PURE__*/_react["default"].createElement(DeleteIcon, {
152
152
  classes: classes
153
153
  })), /*#__PURE__*/_react["default"].createElement(_button["default"], {
154
- className: classes.buttonText,
155
154
  onClick: onUndoElement,
156
155
  label: translator.t('common:undo', {
157
156
  lng: language
158
157
  })
159
158
  }), /*#__PURE__*/_react["default"].createElement(_button["default"], {
160
- className: classes.buttonText,
161
159
  onClick: onClearElements,
162
160
  label: translator.t('numberLine.clearAll', {
163
161
  lng: language
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["translator","Translator","DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","language","pointChooser","controls","deleteIconHolder","buttonText","t","lng","React","Component","DEFAULT_TYPE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object,\n};\n\nconst RawPoint = (props) => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}>&nbsp;</a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func,\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map((key) => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return <Point key={key.toLowerCase()} iconKey={key.toLowerCase()} active={active} onClick={onClick} />; //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array,\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep'],\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array,\n language: PropTypes.string,\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n language,\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button\n className={classes.buttonText}\n onClick={onUndoElement}\n label={translator.t('common:undo', { lng: language })}\n />\n <Button\n className={classes.buttonText}\n onClick={onClearElements}\n label={translator.t('numberLine.clearAll', { lng: language })}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/number-line/point-chooser/index.jsx"],"names":["translator","Translator","DeleteIcon","classes","deleteIcon","propTypes","PropTypes","object","RawPoint","props","iconKey","active","onClick","names","string","isRequired","bool","func","Point","styles","Points","selectPoint","selected","icons","iconTags","map","key","bind","toLowerCase","elementSelector","array","PointChooser","elementType","showDeleteButton","onDeleteClick","onUndoElement","onClearElements","onElementType","language","pointChooser","controls","deleteIconHolder","t","lng","React","Component","DEFAULT_TYPE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport injectSheet from 'react-jss';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nconst DeleteIcon = ({ classes }) => {\n return (\n <svg\n className={classes.deleteIcon}\n fill=\"#000000\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nDeleteIcon.propTypes = {\n classes: PropTypes.object,\n};\n\nconst RawPoint = (props) => {\n const { iconKey, active, classes, onClick } = props;\n const names = classNames(classes[iconKey], { active });\n return (\n <span role=\"presentation\" key={iconKey} onClick={onClick}>\n <a className={names}>&nbsp;</a>\n </span>\n );\n};\n\nRawPoint.propTypes = {\n iconKey: PropTypes.string.isRequired,\n active: PropTypes.bool,\n classes: PropTypes.object,\n onClick: PropTypes.func,\n};\n\nexport const Point = injectSheet(styles)(RawPoint);\n\nconst Points = ({ selectPoint, classes, selected, icons }) => {\n const iconTags = icons.map((key) => {\n let active = key === selected;\n let onClick = active ? () => {} : selectPoint.bind(null, key);\n return <Point key={key.toLowerCase()} iconKey={key.toLowerCase()} active={active} onClick={onClick} />; //icon(key, active);\n });\n\n return <div className={classes.elementSelector}>{iconTags}</div>;\n};\n\nPoints.propTypes = {\n selectPoint: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n selected: PropTypes.string,\n icons: PropTypes.array,\n};\n\nexport class PointChooser extends React.Component {\n static defaultProps = {\n showDeleteButton: false,\n elementType: PointChooser.DEFAULT_TYPE,\n icons: ['pf', 'lff', 'lef', 'lfe', 'lee', 'rfn', 'rfp', 'ren', 'rep'],\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n elementType: PropTypes.string,\n showDeleteButton: PropTypes.bool,\n onDeleteClick: PropTypes.func.isRequired,\n onElementType: PropTypes.func.isRequired,\n onUndoElement: PropTypes.func.isRequired,\n onClearElements: PropTypes.func.isRequired,\n icons: PropTypes.array,\n language: PropTypes.string,\n };\n\n render() {\n const {\n elementType,\n showDeleteButton,\n onDeleteClick,\n onUndoElement,\n onClearElements,\n icons,\n classes,\n onElementType,\n language\n } = this.props;\n\n return (\n <div className={classes.pointChooser}>\n <Points selected={elementType} classes={classes} selectPoint={onElementType} icons={icons} />\n <div className={classes.controls}>\n {showDeleteButton && (\n <span className={classes.deleteIconHolder} onClick={onDeleteClick}>\n <DeleteIcon classes={classes} />\n </span>\n )}\n <Button onClick={onUndoElement} label={translator.t('common:undo', { lng: language })} />\n <Button onClick={onClearElements} label={translator.t('numberLine.clearAll', { lng: language })} />\n </div>\n </div>\n );\n }\n}\n\nexport default injectSheet(styles)(PointChooser);\n\nPointChooser.DEFAULT_TYPE = 'pf';\n"],"file":"index.js"}
@@ -83,9 +83,6 @@ var _default = {
83
83
  display: 'flex',
84
84
  paddingTop: '7px'
85
85
  },
86
- buttonText: {
87
- textWrap: 'nowrap'
88
- },
89
86
  pf: styleElement(0),
90
87
  lff: styleElement(1),
91
88
  lef: styleElement(2),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/point-chooser/styles.js"],"names":["iconHeight","iconWidth","noselect","styleElement","index","display","width","height","position","top","cursor","background","img","backgroundPosition","textDecoration","pointChooser","justifyContent","borderRadius","padding","deleteIconHolder","deleteIcon","fill","transition","opacity","elementSelector","Object","assign","controls","paddingTop","buttonText","textWrap","pf","lff","lef","lfe","lee","rfn","rfp","ren","rep"],"mappings":";;;;;;;;;AAGA;;AAHA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,SAAS,GAAG,EAAlB;;AAIA,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAO;AACtB,6BAAyB;AAAO;AADV;AAEtB,2BAAuB;AAAO;AAFR;AAGtB,0BAAsB;AAAO;AAHP;AAItB,wBAAoB;AAAO;AAJL;AAKtB,uBAAmB;AAAO;AALJ;AAMtB,mBAAe;AAAO;AACxB;;AAPwB,GAAP;AAAA,CAAjB;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;AAAA,SAAY;AAC/BC,IAAAA,OAAO,EAAE,cADsB;AAE/BC,IAAAA,KAAK,EAAEL,SAFwB;AAG/BM,IAAAA,MAAM,EAAEP,UAHuB;AAI/BQ,IAAAA,QAAQ,EAAE,UAJqB;AAK/BC,IAAAA,GAAG,EAAE,KAL0B;AAM/BC,IAAAA,MAAM,EAAE,SANuB;AAO/BC,IAAAA,UAAU,gBAASC,eAAT,gBAAkBR,KAAK,GAAGH,SAA1B,WAPqB;AAQ/B,gCAA4B;AAC1BY,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8B,IAAID,UAAlC;AADQ,KARG;AAW/B,eAAW;AACTc,MAAAA,cAAc,EAAE,MADP;AAETD,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8BD,UAA9B;AAFT;AAXoB,GAAZ;AAAA,CAArB;;eAiBe;AACbe,EAAAA,YAAY,EAAE;AACZV,IAAAA,OAAO,EAAE,MADG;AAEZW,IAAAA,cAAc,EAAE,eAFJ;AAGZC,IAAAA,YAAY,EAAE,KAHF;AAIZC,IAAAA,OAAO,EAAE;AAJG,GADD;AAObC,EAAAA,gBAAgB,EAAE;AAChBX,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,KAFW;AAGhBH,IAAAA,KAAK,EAAE;AAHS,GAPL;AAYbc,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAE,OADI;AAEVX,IAAAA,MAAM,EAAE,SAFE;AAGVY,IAAAA,UAAU,EAAE,sBAHF;AAIV,eAAW;AACTC,MAAAA,OAAO,EAAE;AADA;AAJD,GAZC;AAoBbC,EAAAA,eAAe,EAAEC,MAAM,CAACC,MAAP,CACf;AACEpB,IAAAA,KAAK,EAAE,KADT;AAEEY,IAAAA,OAAO,EAAE;AAFX,GADe,EAKfhB,QAAQ,EALO,CApBJ;AA2BbyB,EAAAA,QAAQ,EAAE;AACRtB,IAAAA,OAAO,EAAE,MADD;AAERuB,IAAAA,UAAU,EAAE;AAFJ,GA3BG;AA+BbC,EAAAA,UAAU,EAAE;AACVC,IAAAA,QAAQ,EAAE;AADA,GA/BC;AAkCbC,EAAAA,EAAE,EAAE5B,YAAY,CAAC,CAAD,CAlCH;AAmCb6B,EAAAA,GAAG,EAAE7B,YAAY,CAAC,CAAD,CAnCJ;AAoCb8B,EAAAA,GAAG,EAAE9B,YAAY,CAAC,CAAD,CApCJ;AAqCb+B,EAAAA,GAAG,EAAE/B,YAAY,CAAC,CAAD,CArCJ;AAsCbgC,EAAAA,GAAG,EAAEhC,YAAY,CAAC,CAAD,CAtCJ;AAuCbiC,EAAAA,GAAG,EAAEjC,YAAY,CAAC,CAAD,CAvCJ;AAwCbkC,EAAAA,GAAG,EAAElC,YAAY,CAAC,CAAD,CAxCJ;AAyCbmC,EAAAA,GAAG,EAAEnC,YAAY,CAAC,CAAD,CAzCJ;AA0CboC,EAAAA,GAAG,EAAEpC,YAAY,CAAC,CAAD;AA1CJ,C","sourcesContent":["const iconHeight = 41;\nconst iconWidth = 42;\n\nimport img from './img';\n\nconst noselect = () => ({\n '-webkit-touch-callout': 'none' /* iOS Safari */,\n '-webkit-user-select': 'none' /* Safari */,\n '-khtml-user-select': 'none' /* Konqueror HTML */,\n '-moz-user-select': 'none' /* Firefox */,\n '-ms-user-select': 'none' /* Internet Explorer/Edge */,\n 'user-select': 'none' /* Non-prefixed version, currently\n supported by Chrome and Opera */,\n});\n\nconst styleElement = (index) => ({\n display: 'inline-block',\n width: iconWidth,\n height: iconHeight,\n position: 'relative',\n top: '1px',\n cursor: 'pointer',\n background: `url(${img}) -${index * iconWidth}px 0px`,\n '&.active, &.active:hover': {\n backgroundPosition: `-${index * iconWidth}px -${2 * iconHeight}px`,\n },\n '&:hover': {\n textDecoration: 'none',\n backgroundPosition: `-${index * iconWidth}px -${iconHeight}px`,\n },\n});\n\nexport default {\n pointChooser: {\n display: 'flex',\n justifyContent: 'space-between',\n borderRadius: '4px',\n padding: '1px',\n },\n deleteIconHolder: {\n position: 'relative',\n top: '3px',\n width: '30px',\n },\n deleteIcon: {\n fill: 'black',\n cursor: 'pointer',\n transition: 'opacity 100ms linear',\n '&:hover': {\n opacity: '0.5',\n },\n },\n elementSelector: Object.assign(\n {\n width: '55%',\n padding: '1px',\n },\n noselect(),\n ),\n controls: {\n display: 'flex',\n paddingTop: '7px',\n },\n buttonText: {\n textWrap: 'nowrap',\n },\n pf: styleElement(0),\n lff: styleElement(1),\n lef: styleElement(2),\n lfe: styleElement(3),\n lee: styleElement(4),\n rfn: styleElement(5),\n rfp: styleElement(6),\n ren: styleElement(7),\n rep: styleElement(8),\n};\n"],"file":"styles.js"}
1
+ {"version":3,"sources":["../../../src/number-line/point-chooser/styles.js"],"names":["iconHeight","iconWidth","noselect","styleElement","index","display","width","height","position","top","cursor","background","img","backgroundPosition","textDecoration","pointChooser","justifyContent","borderRadius","padding","deleteIconHolder","deleteIcon","fill","transition","opacity","elementSelector","Object","assign","controls","paddingTop","pf","lff","lef","lfe","lee","rfn","rfp","ren","rep"],"mappings":";;;;;;;;;AAGA;;AAHA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,SAAS,GAAG,EAAlB;;AAIA,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAO;AACtB,6BAAyB;AAAO;AADV;AAEtB,2BAAuB;AAAO;AAFR;AAGtB,0BAAsB;AAAO;AAHP;AAItB,wBAAoB;AAAO;AAJL;AAKtB,uBAAmB;AAAO;AALJ;AAMtB,mBAAe;AAAO;AACxB;;AAPwB,GAAP;AAAA,CAAjB;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;AAAA,SAAY;AAC/BC,IAAAA,OAAO,EAAE,cADsB;AAE/BC,IAAAA,KAAK,EAAEL,SAFwB;AAG/BM,IAAAA,MAAM,EAAEP,UAHuB;AAI/BQ,IAAAA,QAAQ,EAAE,UAJqB;AAK/BC,IAAAA,GAAG,EAAE,KAL0B;AAM/BC,IAAAA,MAAM,EAAE,SANuB;AAO/BC,IAAAA,UAAU,gBAASC,eAAT,gBAAkBR,KAAK,GAAGH,SAA1B,WAPqB;AAQ/B,gCAA4B;AAC1BY,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8B,IAAID,UAAlC;AADQ,KARG;AAW/B,eAAW;AACTc,MAAAA,cAAc,EAAE,MADP;AAETD,MAAAA,kBAAkB,aAAMT,KAAK,GAAGH,SAAd,iBAA8BD,UAA9B;AAFT;AAXoB,GAAZ;AAAA,CAArB;;eAiBe;AACbe,EAAAA,YAAY,EAAE;AACZV,IAAAA,OAAO,EAAE,MADG;AAEZW,IAAAA,cAAc,EAAE,eAFJ;AAGZC,IAAAA,YAAY,EAAE,KAHF;AAIZC,IAAAA,OAAO,EAAE;AAJG,GADD;AAObC,EAAAA,gBAAgB,EAAE;AAChBX,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,KAFW;AAGhBH,IAAAA,KAAK,EAAE;AAHS,GAPL;AAYbc,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAE,OADI;AAEVX,IAAAA,MAAM,EAAE,SAFE;AAGVY,IAAAA,UAAU,EAAE,sBAHF;AAIV,eAAW;AACTC,MAAAA,OAAO,EAAE;AADA;AAJD,GAZC;AAoBbC,EAAAA,eAAe,EAAEC,MAAM,CAACC,MAAP,CACf;AACEpB,IAAAA,KAAK,EAAE,KADT;AAEEY,IAAAA,OAAO,EAAE;AAFX,GADe,EAKfhB,QAAQ,EALO,CApBJ;AA2BbyB,EAAAA,QAAQ,EAAE;AACRtB,IAAAA,OAAO,EAAE,MADD;AAERuB,IAAAA,UAAU,EAAE;AAFJ,GA3BG;AA+BbC,EAAAA,EAAE,EAAE1B,YAAY,CAAC,CAAD,CA/BH;AAgCb2B,EAAAA,GAAG,EAAE3B,YAAY,CAAC,CAAD,CAhCJ;AAiCb4B,EAAAA,GAAG,EAAE5B,YAAY,CAAC,CAAD,CAjCJ;AAkCb6B,EAAAA,GAAG,EAAE7B,YAAY,CAAC,CAAD,CAlCJ;AAmCb8B,EAAAA,GAAG,EAAE9B,YAAY,CAAC,CAAD,CAnCJ;AAoCb+B,EAAAA,GAAG,EAAE/B,YAAY,CAAC,CAAD,CApCJ;AAqCbgC,EAAAA,GAAG,EAAEhC,YAAY,CAAC,CAAD,CArCJ;AAsCbiC,EAAAA,GAAG,EAAEjC,YAAY,CAAC,CAAD,CAtCJ;AAuCbkC,EAAAA,GAAG,EAAElC,YAAY,CAAC,CAAD;AAvCJ,C","sourcesContent":["const iconHeight = 41;\nconst iconWidth = 42;\n\nimport img from './img';\n\nconst noselect = () => ({\n '-webkit-touch-callout': 'none' /* iOS Safari */,\n '-webkit-user-select': 'none' /* Safari */,\n '-khtml-user-select': 'none' /* Konqueror HTML */,\n '-moz-user-select': 'none' /* Firefox */,\n '-ms-user-select': 'none' /* Internet Explorer/Edge */,\n 'user-select': 'none' /* Non-prefixed version, currently\n supported by Chrome and Opera */,\n});\n\nconst styleElement = (index) => ({\n display: 'inline-block',\n width: iconWidth,\n height: iconHeight,\n position: 'relative',\n top: '1px',\n cursor: 'pointer',\n background: `url(${img}) -${index * iconWidth}px 0px`,\n '&.active, &.active:hover': {\n backgroundPosition: `-${index * iconWidth}px -${2 * iconHeight}px`,\n },\n '&:hover': {\n textDecoration: 'none',\n backgroundPosition: `-${index * iconWidth}px -${iconHeight}px`,\n },\n});\n\nexport default {\n pointChooser: {\n display: 'flex',\n justifyContent: 'space-between',\n borderRadius: '4px',\n padding: '1px',\n },\n deleteIconHolder: {\n position: 'relative',\n top: '3px',\n width: '30px',\n },\n deleteIcon: {\n fill: 'black',\n cursor: 'pointer',\n transition: 'opacity 100ms linear',\n '&:hover': {\n opacity: '0.5',\n },\n },\n elementSelector: Object.assign(\n {\n width: '55%',\n padding: '1px',\n },\n noselect(),\n ),\n controls: {\n display: 'flex',\n paddingTop: '7px',\n },\n pf: styleElement(0),\n lff: styleElement(1),\n lef: styleElement(2),\n lfe: styleElement(3),\n lee: styleElement(4),\n rfn: styleElement(5),\n rfp: styleElement(6),\n ren: styleElement(7),\n rep: styleElement(8),\n};\n"],"file":"styles.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "7.2.2-next.27+ed88e5642",
3
+ "version": "7.2.3",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/pie-toolbox": "1.4.8",
11
+ "@pie-lib/pie-toolbox": "1.4.7",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-scale": "^3.2.1",
14
14
  "d3-selection": "^1.4.1",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "author": "pie framework developers",
25
25
  "license": "ISC",
26
- "gitHead": "ed88e5642a7cbb5e6d085c940dccdea8e764aa05",
26
+ "gitHead": "2540770b74291fddc22a035dc59a2cd4741b5950",
27
27
  "scripts": {
28
28
  "postpublish": "../../scripts/postpublish"
29
29
  },