@pie-element/number-line 7.2.2-next.25 → 7.2.2
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.
- package/CHANGELOG.md +11 -0
- package/configure/CHANGELOG.md +11 -0
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +2 -44
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +8 -21
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/point-config.js +2 -4
- package/configure/lib/point-config.js.map +1 -1
- package/configure/lib/size.js +4 -11
- package/configure/lib/size.js.map +1 -1
- package/configure/lib/ticks.js +22 -114
- package/configure/lib/ticks.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +11 -0
- package/controller/package.json +2 -2
- package/lib/number-line/graph/tick-utils.js +0 -23
- package/lib/number-line/graph/tick-utils.js.map +1 -1
- package/lib/number-line/point-chooser/index.js +0 -2
- package/lib/number-line/point-chooser/index.js.map +1 -1
- package/lib/number-line/point-chooser/styles.js +0 -3
- package/lib/number-line/point-chooser/styles.js.map +1 -1
- package/package.json +3 -3
package/configure/lib/ticks.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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"}
|
package/configure/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/number-line-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "6.2.
|
|
4
|
+
"version": "6.2.2",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
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.
|
|
10
|
+
"@pie-lib/pie-toolbox": "1.4.7",
|
|
11
11
|
"react": "^16.8.1",
|
|
12
12
|
"react-dom": "^16.8.1"
|
|
13
13
|
}
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.1.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-controller@5.1.1...@pie-element/number-line-controller@5.1.2) (2024-01-08)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox PD-3352,PD-3348, PD-3296 ([48b1952](https://github.com/pie-framework/pie-elements/commit/48b1952831835ead598b692abb3d492ec9adb564))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [5.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-controller@5.1.0...@pie-element/number-line-controller@5.1.1) (2024-01-04)
|
|
7
18
|
|
|
8
19
|
|
package/controller/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/number-line-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.2",
|
|
5
5
|
"description": "Controller logic for @pie-ui/number-line",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"pie",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"access": "public"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pie-lib/pie-toolbox": "1.4.
|
|
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","
|
|
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}> </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"}
|
|
@@ -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","
|
|
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
|
|
3
|
+
"version": "7.2.2",
|
|
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.
|
|
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": "
|
|
26
|
+
"gitHead": "eb3cc5d6d16b67f7ccc1cf295a832f8dab4d679e",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postpublish": "../../scripts/postpublish"
|
|
29
29
|
},
|