@pie-element/number-line 13.2.2 → 13.2.4

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 CHANGED
@@ -3,6 +3,18 @@
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
+ ## [13.2.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@13.2.3...@pie-element/number-line@13.2.4) (2026-09-07)
7
+
8
+ ### Bug Fixes
9
+
10
+ - keep number-line on fraction.js 4 to avoid BigInt bundle errors PIE-926 PIE-1005 ([ec1d0d8](https://github.com/pie-framework/pie-elements/commit/ec1d0d8bd3e820d3b55a162e0896c1700cf8b794))
11
+
12
+ ## [13.2.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@13.2.2...@pie-element/number-line@13.2.3) (2026-09-07)
13
+
14
+ ### Bug Fixes
15
+
16
+ - restore fraction tick labels after mathjs upgrade PIE-926 PIE-1005 ([32c53c3](https://github.com/pie-framework/pie-elements/commit/32c53c30214ca26740823ccaf3a2b308d89b5e03))
17
+
6
18
  ## [13.2.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@13.2.1...@pie-element/number-line@13.2.2) (2026-09-04)
7
19
 
8
20
  ### Bug Fixes
@@ -3,6 +3,18 @@
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
+ ## [9.1.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-controller@9.1.6...@pie-element/number-line-controller@9.1.7) (2026-09-07)
7
+
8
+ ### Bug Fixes
9
+
10
+ - keep number-line on fraction.js 4 to avoid BigInt bundle errors PIE-926 PIE-1005 ([ec1d0d8](https://github.com/pie-framework/pie-elements/commit/ec1d0d8bd3e820d3b55a162e0896c1700cf8b794))
11
+
12
+ ## [9.1.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-controller@9.1.5...@pie-element/number-line-controller@9.1.6) (2026-09-07)
13
+
14
+ ### Bug Fixes
15
+
16
+ - restore fraction tick labels after mathjs upgrade PIE-926 PIE-1005 ([32c53c3](https://github.com/pie-framework/pie-elements/commit/32c53c30214ca26740823ccaf3a2b308d89b5e03))
17
+
6
18
  ## [9.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-controller@9.1.4...@pie-element/number-line-controller@9.1.5) (2026-09-04)
7
19
 
8
20
  **Note:** Version bump only for package @pie-element/number-line-controller
@@ -241,8 +241,10 @@ const generateMajorValuesForMinor = (minor, domain, width) => {
241
241
  fraction: []
242
242
  };
243
243
  let fraction = math.fraction(math.number(math.number(minor)));
244
- let n = fraction.n;
245
- let d = fraction.d;
244
+ // mathjs >= 13 (fraction.js 5) exposes Fraction n/d/s as BigInt; coerce so the
245
+ // strict comparisons below (d === 1) and the labelMultiplier lookup still work.
246
+ let n = Number(fraction.n);
247
+ let d = Number(fraction.d);
246
248
  if (n >= 1 && d === 1) {
247
249
  for (let i = 1; i <= 10; i++) {
248
250
  let num = math.number(math.multiply(n, i));
@@ -271,10 +273,10 @@ const generateMajorValuesForMinor = (minor, domain, width) => {
271
273
  fraction: undefined
272
274
  });
273
275
  if (output.filter(x => x.type === 'major').length > 1) {
274
- if (num.d !== 1) {
275
- out.fraction.push(num.n + '/' + num.d);
276
+ if (Number(num.d) !== 1) {
277
+ out.fraction.push(Number(num.n) + '/' + Number(num.d));
276
278
  } else {
277
- out.fraction.push(num.n.toString());
279
+ out.fraction.push(Number(num.n).toString());
278
280
  }
279
281
  out.decimal.push(math.number(num));
280
282
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tickUtils.js","names":["math","_interopRequireWildcard","require","_lodashEs","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","decimalTickValues","fractionTickValues","labelMultiplier","fractionRange","start","end","interval","m","mod","abs","equal","Error","subtract","direction","larger","largerEq","smallerEq","compareFn","out","next","push","add","zbrErrorMessage","zeroBasedRange","fraction","length","a","multiplier","smaller","s","map","v","multiply","reverse","fmin","b","fmax","simpleRange","positiveRange","negativeRange","together","concat","uniqWith","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","min","max","getMinorLimits","domain","width","number","divide","exports","isMultiple","multiple","src","isObject","d","isNumber","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","filter","x","type","modulo","generateMinorValues","decimal","forEach","value","decimalValue","generateMajorValuesForMinor","num","ticksData","output","buildTickData","undefined","toString","multiplierKey","result"],"sources":["../src/tickUtils.js"],"sourcesContent":["import * as math from 'mathjs';\nimport { isNumber, isObject, uniqWith } from 'lodash-es';\n\n// All these functions are duplicated in src/number-line/graph/tick-utils\n\n/*This will store the possible decimal tick values*/\nconst decimalTickValues = [0.001, 0.01, 0.02, 0.04, 0.05, 0.1, 0.125, 0.2, 0.25, 0.5];\n\n/*This will store the possible fraction tick values*/\nconst fractionTickValues = [\n '1/1000',\n '1/100',\n '1/64',\n '1/50',\n '1/32',\n '1/25',\n '1/20',\n '1/16',\n '1/15',\n '1/12',\n '1/10',\n '1/9',\n '1/8',\n '1/7',\n '1/6',\n '1/5',\n '1/4',\n '1/3',\n '1/2',\n];\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.*/\nconst 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\nconst 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\nconst zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nconst 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 */\nconst 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\nconst 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\nconst 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 */\nconst 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\nconst 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 */\nconst 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 * */\nexport const generateMinorValues = (minorLimits) => {\n let out = { fraction: [], decimal: [] };\n decimalTickValues.forEach((value) => {\n if (value >= minorLimits.min && value <= minorLimits.max) {\n out.decimal.push(value);\n }\n });\n fractionTickValues.forEach((value) => {\n let decimalValue = math.number(math.fraction(value));\n if (decimalValue >= minorLimits.min && decimalValue <= minorLimits.max) {\n out.fraction.push(value);\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 domain object containing min and max values.\n * @param width number representing width of number line.\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * */\nexport const generateMajorValuesForMinor = (minor, domain, width) => {\n let out = { decimal: [], fraction: [] };\n let fraction = math.fraction(math.number(math.number(minor)));\n let n = fraction.n;\n let d = fraction.d;\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: num };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n out.fraction.push(num.toString());\n out.decimal.push(num);\n }\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: math.number(num) };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\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 }\n }\n }\n return out;\n};\n\nconst 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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"tickUtils.js","names":["math","_interopRequireWildcard","require","_lodashEs","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","decimalTickValues","fractionTickValues","labelMultiplier","fractionRange","start","end","interval","m","mod","abs","equal","Error","subtract","direction","larger","largerEq","smallerEq","compareFn","out","next","push","add","zbrErrorMessage","zeroBasedRange","fraction","length","a","multiplier","smaller","s","map","v","multiply","reverse","fmin","b","fmax","simpleRange","positiveRange","negativeRange","together","concat","uniqWith","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","min","max","getMinorLimits","domain","width","number","divide","exports","isMultiple","multiple","src","isObject","d","isNumber","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","filter","x","type","modulo","generateMinorValues","decimal","forEach","value","decimalValue","generateMajorValuesForMinor","Number","num","ticksData","output","buildTickData","undefined","toString","multiplierKey","result"],"sources":["../src/tickUtils.js"],"sourcesContent":["import * as math from 'mathjs';\nimport { isNumber, isObject, uniqWith } from 'lodash-es';\n\n// All these functions are duplicated in src/number-line/graph/tick-utils\n\n/*This will store the possible decimal tick values*/\nconst decimalTickValues = [0.001, 0.01, 0.02, 0.04, 0.05, 0.1, 0.125, 0.2, 0.25, 0.5];\n\n/*This will store the possible fraction tick values*/\nconst fractionTickValues = [\n '1/1000',\n '1/100',\n '1/64',\n '1/50',\n '1/32',\n '1/25',\n '1/20',\n '1/16',\n '1/15',\n '1/12',\n '1/10',\n '1/9',\n '1/8',\n '1/7',\n '1/6',\n '1/5',\n '1/4',\n '1/3',\n '1/2',\n];\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.*/\nconst 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\nconst 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\nconst zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nconst 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 */\nconst 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\nconst 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\nconst 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 */\nconst 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\nconst 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 */\nconst 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 * */\nexport const generateMinorValues = (minorLimits) => {\n let out = { fraction: [], decimal: [] };\n decimalTickValues.forEach((value) => {\n if (value >= minorLimits.min && value <= minorLimits.max) {\n out.decimal.push(value);\n }\n });\n fractionTickValues.forEach((value) => {\n let decimalValue = math.number(math.fraction(value));\n if (decimalValue >= minorLimits.min && decimalValue <= minorLimits.max) {\n out.fraction.push(value);\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 domain object containing min and max values.\n * @param width number representing width of number line.\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * */\nexport const generateMajorValuesForMinor = (minor, domain, width) => {\n let out = { decimal: [], fraction: [] };\n let fraction = math.fraction(math.number(math.number(minor)));\n // mathjs >= 13 (fraction.js 5) exposes Fraction n/d/s as BigInt; coerce so the\n // strict comparisons below (d === 1) and the labelMultiplier lookup still work.\n let n = Number(fraction.n);\n let d = Number(fraction.d);\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: num };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n out.fraction.push(num.toString());\n out.decimal.push(num);\n }\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: math.number(num) };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n if (Number(num.d) !== 1) {\n out.fraction.push(Number(num.n) + '/' + Number(num.d));\n } else {\n out.fraction.push(Number(num.n).toString());\n }\n out.decimal.push(math.number(num));\n }\n }\n }\n return out;\n};\n\nconst 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"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/number-line-controller",
3
3
  "private": true,
4
- "version": "9.1.5",
4
+ "version": "9.1.7",
5
5
  "description": "Controller logic for @pie-ui/number-line",
6
6
  "keywords": [
7
7
  "pie",
@@ -13,7 +13,7 @@
13
13
  "@pie-lib/controller-utils": "2.0.3",
14
14
  "@pie-lib/feedback": "2.0.2",
15
15
  "lodash-es": "^4.17.23",
16
- "mathjs": "^15.2.0"
16
+ "mathjs": "^7.5.1"
17
17
  },
18
18
  "author": "",
19
19
  "license": "ISC"
@@ -1,22 +1,35 @@
1
+ /**
2
+ * Mirrors the "Number Line Demo" item that reproduced PIE-1005 (blank number
3
+ * line / BigInt TypeError in the author). Keep this in sync with that item so
4
+ * the failure stays reproducible from `pie-website` / the local demo.
5
+ */
1
6
  exports.model = (id, element) => ({
2
7
  correctResponse: [
3
- { type: 'point', pointType: 'full', domainPosition: 0 }
8
+ { type: 'point', pointType: 'full', domainPosition: 1 },
9
+ { type: 'line', leftPoint: 'full', rightPoint: 'empty', domainPosition: 1, size: 2 },
4
10
  ],
5
11
  feedback: {
6
12
  correct: { type: 'default', default: 'Correct' },
7
13
  partial: { type: 'default', default: 'Nearly' },
8
- incorrect: { type: 'default', default: 'Incorrect' }
14
+ incorrect: { type: 'custom', custom: '<h1>Incorrect</h1>' },
9
15
  },
10
- prompt: '',
11
- widthEnabled: true,
16
+ prompt: 'Set correct answer.',
12
17
  graph: {
13
- title: '',
18
+ title: 'This is the title <span data-latex="">\\frac{1}{2}</span>',
14
19
  arrows: { left: true, right: true },
15
20
  width: 500,
21
+ height: 400,
16
22
  domain: { min: -5, max: 5 },
17
- ticks: { minor: 1, major: 2, tickIntervalType: 'Integer' },
23
+ ticks: {
24
+ minor: 1,
25
+ major: 2,
26
+ tickIntervalType: 'Integer',
27
+ integerTick: 1,
28
+ decimalTick: 0.2,
29
+ fractionTick: '1/5',
30
+ },
18
31
  initialElements: [],
19
- maxNumberOfPoints: 30,
32
+ maxNumberOfPoints: 20,
20
33
  showMinorTicks: true,
21
34
  snapPerTick: 1,
22
35
  tickLabelOverrides: [],
@@ -31,9 +44,18 @@ exports.model = (id, element) => ({
31
44
  RFN: true,
32
45
  RFP: true,
33
46
  REN: true,
34
- REP: true
35
- }
47
+ REP: true,
48
+ },
36
49
  },
50
+ promptEnabled: true,
51
+ rationale: '',
52
+ rationaleEnabled: true,
53
+ teacherInstructions: '',
54
+ teacherInstructionsEnabled: true,
55
+ toolbarEditorPosition: 'bottom',
56
+ widthEnabled: true,
57
+ language: '',
58
+ titleEnabled: true,
37
59
  id,
38
60
  element,
39
61
  });
@@ -257,8 +257,10 @@ const generateMajorValuesForMinor = (minor, domain, width) => {
257
257
  fraction: []
258
258
  };
259
259
  let fraction = math.fraction(math.number(math.number(minor)));
260
- let n = fraction.n;
261
- let d = fraction.d;
260
+ // mathjs >= 13 (fraction.js 5) exposes Fraction n/d/s as BigInt; coerce so the
261
+ // strict comparisons below (d === 1) and the labelMultiplier lookup still work.
262
+ let n = Number(fraction.n);
263
+ let d = Number(fraction.d);
262
264
  if (n >= 1 && d === 1) {
263
265
  for (let i = 1; i <= 10; i++) {
264
266
  let num = math.number(math.multiply(n, i));
@@ -287,10 +289,10 @@ const generateMajorValuesForMinor = (minor, domain, width) => {
287
289
  fraction: undefined
288
290
  });
289
291
  if (output.filter(x => x.type === 'major').length > 1) {
290
- if (num.d !== 1) {
291
- out.fraction.push(num.n + '/' + num.d);
292
+ if (Number(num.d) !== 1) {
293
+ out.fraction.push(Number(num.n) + '/' + Number(num.d));
292
294
  } else {
293
- out.fraction.push(num.n.toString());
295
+ out.fraction.push(Number(num.n).toString());
294
296
  }
295
297
  out.decimal.push(math.number(num));
296
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tick-utils.js","names":["math","_interopRequireWildcard","require","_lodashEs","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","decimalTickValues","exports","fractionTickValues","labelMultiplier","fractionRange","start","end","interval","m","mod","abs","equal","Error","subtract","direction","larger","largerEq","smallerEq","compareFn","out","next","push","add","zbrErrorMessage","zeroBasedRange","fraction","length","a","multiplier","smaller","s","map","v","multiply","reverse","fmin","b","fmax","simpleRange","positiveRange","negativeRange","together","concat","uniqWith","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","min","max","getMinorLimits","domain","width","number","divide","isMultiple","multiple","src","isObject","d","isNumber","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","filter","x","type","modulo","generateMinorValues","decimal","forEach","value","decimalValue","generateMajorValuesForMinor","num","ticksData","output","buildTickData","undefined","toString","multiplierKey","result","fractionSnapTo","half","div","sub","fn","fn2","snapTo","snapElements","elements","size","Number","isFinite","domainPosition"],"sources":["../../../src/number-line/graph/tick-utils.js"],"sourcesContent":["import * as math from 'mathjs';\nimport { isNumber, isObject, uniqWith } from 'lodash-es';\n\n// All these functions are duplicated in controller/src/tickUtils\n\n/*This will store the possible decimal tick values*/\nexport const decimalTickValues = [0.001, 0.01, 0.02, 0.04, 0.05, 0.1, 0.125, 0.2, 0.25, 0.5];\n\n/*This will store the possible fraction tick values*/\nexport const fractionTickValues = [\n '1/1000',\n '1/100',\n '1/64',\n '1/50',\n '1/32',\n '1/25',\n '1/20',\n '1/16',\n '1/15',\n '1/12',\n '1/10',\n '1/9',\n '1/8',\n '1/7',\n '1/6',\n '1/5',\n '1/4',\n '1/3',\n '1/2',\n];\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 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\n let compareFn;\n if (direction === 'positive') {\n compareFn = math.smallerEq;\n } else if (math.equal(e, end)) {\n compareFn = math.largerEq;\n } else {\n compareFn = math.larger;\n }\n\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 * */\nexport const generateMinorValues = (minorLimits) => {\n let out = { fraction: [], decimal: [] };\n decimalTickValues.forEach((value) => {\n if (value >= minorLimits.min && value <= minorLimits.max) {\n out.decimal.push(value);\n }\n });\n fractionTickValues.forEach((value) => {\n let decimalValue = math.number(math.fraction(value));\n if (decimalValue >= minorLimits.min && decimalValue <= minorLimits.max) {\n out.fraction.push(value);\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 domain object containing min and max values.\n * @param width number representing width of number line.\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * */\nexport const generateMajorValuesForMinor = (minor, domain, width) => {\n let out = { decimal: [], fraction: [] };\n let fraction = math.fraction(math.number(math.number(minor)));\n let n = fraction.n;\n let d = fraction.d;\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: num };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n out.fraction.push(num.toString());\n out.decimal.push(num);\n }\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: math.number(num) };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\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 }\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 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 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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"tick-utils.js","names":["math","_interopRequireWildcard","require","_lodashEs","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","decimalTickValues","exports","fractionTickValues","labelMultiplier","fractionRange","start","end","interval","m","mod","abs","equal","Error","subtract","direction","larger","largerEq","smallerEq","compareFn","out","next","push","add","zbrErrorMessage","zeroBasedRange","fraction","length","a","multiplier","smaller","s","map","v","multiply","reverse","fmin","b","fmax","simpleRange","positiveRange","negativeRange","together","concat","uniqWith","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","min","max","getMinorLimits","domain","width","number","divide","isMultiple","multiple","src","isObject","d","isNumber","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","filter","x","type","modulo","generateMinorValues","decimal","forEach","value","decimalValue","generateMajorValuesForMinor","Number","num","ticksData","output","buildTickData","undefined","toString","multiplierKey","result","fractionSnapTo","half","div","sub","fn","fn2","snapTo","snapElements","elements","size","isFinite","domainPosition"],"sources":["../../../src/number-line/graph/tick-utils.js"],"sourcesContent":["import * as math from 'mathjs';\nimport { isNumber, isObject, uniqWith } from 'lodash-es';\n\n// All these functions are duplicated in controller/src/tickUtils\n\n/*This will store the possible decimal tick values*/\nexport const decimalTickValues = [0.001, 0.01, 0.02, 0.04, 0.05, 0.1, 0.125, 0.2, 0.25, 0.5];\n\n/*This will store the possible fraction tick values*/\nexport const fractionTickValues = [\n '1/1000',\n '1/100',\n '1/64',\n '1/50',\n '1/32',\n '1/25',\n '1/20',\n '1/16',\n '1/15',\n '1/12',\n '1/10',\n '1/9',\n '1/8',\n '1/7',\n '1/6',\n '1/5',\n '1/4',\n '1/3',\n '1/2',\n];\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 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\n let compareFn;\n if (direction === 'positive') {\n compareFn = math.smallerEq;\n } else if (math.equal(e, end)) {\n compareFn = math.largerEq;\n } else {\n compareFn = math.larger;\n }\n\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 * */\nexport const generateMinorValues = (minorLimits) => {\n let out = { fraction: [], decimal: [] };\n decimalTickValues.forEach((value) => {\n if (value >= minorLimits.min && value <= minorLimits.max) {\n out.decimal.push(value);\n }\n });\n fractionTickValues.forEach((value) => {\n let decimalValue = math.number(math.fraction(value));\n if (decimalValue >= minorLimits.min && decimalValue <= minorLimits.max) {\n out.fraction.push(value);\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 domain object containing min and max values.\n * @param width number representing width of number line.\n * @return out object containing three arrays 1. fraction values, 2. decimal values,\n * */\nexport const generateMajorValuesForMinor = (minor, domain, width) => {\n let out = { decimal: [], fraction: [] };\n let fraction = math.fraction(math.number(math.number(minor)));\n // mathjs >= 13 (fraction.js 5) exposes Fraction n/d/s as BigInt; coerce so the\n // strict comparisons below (d === 1) and the labelMultiplier lookup still work.\n let n = Number(fraction.n);\n let d = Number(fraction.d);\n if (n >= 1 && d === 1) {\n for (let i = 1; i <= 10; i++) {\n let num = math.number(math.multiply(n, i));\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: num };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n out.fraction.push(num.toString());\n out.decimal.push(num);\n }\n }\n } else {\n for (const multiplierKey in labelMultiplier[d]) {\n let num = math.multiply(math.fraction(n, d), labelMultiplier[d][multiplierKey]);\n //Here we check if this major value can plot at least 2 points on number line.\n let ticksData = { minor: minor, major: math.number(num) };\n let output = buildTickData(domain, width, ticksData, { fraction: undefined });\n if (output.filter((x) => x.type === 'major').length > 1) {\n if (Number(num.d) !== 1) {\n out.fraction.push(Number(num.n) + '/' + Number(num.d));\n } else {\n out.fraction.push(Number(num.n).toString());\n }\n out.decimal.push(math.number(num));\n }\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 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 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"],"mappings":"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","ignoreList":[]}
@@ -90,7 +90,12 @@ class Tick extends _react.default.Component {
90
90
  xScale,
91
91
  fraction
92
92
  } = this.props;
93
- const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;
93
+ // mathjs >= 13 (fraction.js 5) exposes Fraction n/d/s as BigInt. Coerce to Number:
94
+ // BigInt !== Number is always true, and React drops BigInt text children silently.
95
+ const xn = fraction ? Number(x.n) : x.n;
96
+ const xd = fraction ? Number(x.d) : x.d;
97
+ const xs = fraction ? Number(x.s) : x.s;
98
+ const displayFraction = fraction && xn !== xd && xn !== 0 && xd !== 1;
94
99
  const labelTick = type === 'major';
95
100
  const height = labelTick ? 20 : 10;
96
101
  const {
@@ -99,13 +104,13 @@ class Tick extends _react.default.Component {
99
104
  x: textX = 0,
100
105
  y: textY = 0
101
106
  } = this.state.textBox;
102
- const xText = !fraction ? Number(x.toFixed(3)) : !displayFraction ? x.n * x.s : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tspan", {
107
+ const xText = !fraction ? Number(x.toFixed(3)) : !displayFraction ? xn * xs : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tspan", {
103
108
  x: "0",
104
109
  dy: "0.71em"
105
- }, x.n * x.s), /*#__PURE__*/_react.default.createElement("tspan", {
110
+ }, xn * xs), /*#__PURE__*/_react.default.createElement("tspan", {
106
111
  x: "0",
107
112
  dy: "1.11em"
108
- }, x.d));
113
+ }, xd));
109
114
  return /*#__PURE__*/_react.default.createElement("g", {
110
115
  opacity: "1",
111
116
  transform: `translate(${xScale(x)}, ${y})`
@@ -1 +1 @@
1
- {"version":3,"file":"ticks.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_tickUtils","_renderUi","StyledText","styled","userSelect","textAlign","fill","color","primary","StyledLine","stroke","TickValidator","exports","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","React","Component","constructor","wasRendered","state","textBox","width","height","x","y","resizeObserver","updateTextBox","text","getBBox","setAttribute","setState","componentDidMount","ResizeObserver","observe","componentWillUnmount","disconnect","render","type","xScale","fraction","displayFraction","n","d","labelTick","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","default","createElement","Fragment","dy","opacity","transform","y1","y2","x1","x2","ref","textAnchor","_defineProperty2","number","bool","func","string","Ticks","domain","ticks","context","tickData","buildTickData","map","key","min","max","_default"],"sources":["../../../src/number-line/graph/ticks.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { buildTickData } from './tick-utils';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledText = styled('text')({\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n});\n\nconst StyledLine = styled('line')({\n stroke: color.primary(),\n});\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {},\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n this.state = {\n textBox: {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n },\n };\n this.resizeObserver = null;\n }\n\n updateTextBox() {\n if (this.text) {\n const { width, height, x, y } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n this.setState({ textBox: { width, height, x, y } });\n }\n }\n\n componentDidMount() {\n // Set up ResizeObserver\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTextBox();\n });\n\n if (this.text) {\n this.resizeObserver.observe(this.text);\n }\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const { width: textWidth = 0, height: textHeight = 0, x: textX = 0, y: textY = 0 } = this.state.textBox;\n\n const xText = !fraction ? (\n Number(x.toFixed(3))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <StyledLine y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <StyledLine\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <StyledText\n ref={(text) => (this.text = text)}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </StyledText>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, width, ticks, y, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, width, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}-${fraction}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default Ticks;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ticks.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_tickUtils","_renderUi","StyledText","styled","userSelect","textAlign","fill","color","primary","StyledLine","stroke","TickValidator","exports","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","React","Component","constructor","wasRendered","state","textBox","width","height","x","y","resizeObserver","updateTextBox","text","getBBox","setAttribute","setState","componentDidMount","ResizeObserver","observe","componentWillUnmount","disconnect","render","type","xScale","fraction","xn","Number","n","xd","d","xs","s","displayFraction","labelTick","textWidth","textHeight","textX","textY","xText","toFixed","default","createElement","Fragment","dy","opacity","transform","y1","y2","x1","x2","ref","textAnchor","_defineProperty2","number","bool","func","string","Ticks","domain","ticks","context","tickData","buildTickData","map","key","min","max","_default"],"sources":["../../../src/number-line/graph/ticks.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { buildTickData } from './tick-utils';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledText = styled('text')({\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n});\n\nconst StyledLine = styled('line')({\n stroke: color.primary(),\n});\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {},\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n this.state = {\n textBox: {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n },\n };\n this.resizeObserver = null;\n }\n\n updateTextBox() {\n if (this.text) {\n const { width, height, x, y } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n this.setState({ textBox: { width, height, x, y } });\n }\n }\n\n componentDidMount() {\n // Set up ResizeObserver\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTextBox();\n });\n\n if (this.text) {\n this.resizeObserver.observe(this.text);\n }\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, xScale, fraction } = this.props;\n // mathjs >= 13 (fraction.js 5) exposes Fraction n/d/s as BigInt. Coerce to Number:\n // BigInt !== Number is always true, and React drops BigInt text children silently.\n const xn = fraction ? Number(x.n) : x.n;\n const xd = fraction ? Number(x.d) : x.d;\n const xs = fraction ? Number(x.s) : x.s;\n const displayFraction = fraction && xn !== xd && xn !== 0 && xd !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const { width: textWidth = 0, height: textHeight = 0, x: textX = 0, y: textY = 0 } = this.state.textBox;\n\n const xText = !fraction ? (\n Number(x.toFixed(3))\n ) : !displayFraction ? (\n xn * xs\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {xn * xs}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {xd}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <StyledLine y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <StyledLine\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <StyledText\n ref={(text) => (this.text = text)}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </StyledText>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, width, ticks, y, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, width, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}-${fraction}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default Ticks;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "13.2.2",
4
+ "version": "13.2.4",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -21,7 +21,7 @@
21
21
  "d3-scale": "^4.0.2",
22
22
  "d3-selection": "^3.0.0",
23
23
  "lodash-es": "^4.17.23",
24
- "mathjs": "^15.2.0",
24
+ "mathjs": "^7.5.1",
25
25
  "react": "18.3.1",
26
26
  "react-dom": "18.3.1",
27
27
  "react-jss": "^10.10.0",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "author": "pie framework developers",
31
31
  "license": "ISC",
32
- "gitHead": "a1ac37c8ca8ca78d67bf2a706406a61e4845ca09",
32
+ "gitHead": "2861580b0236bf45d6069a8f0fb50dceb26b39bc",
33
33
  "scripts": {
34
34
  "postpublish": "../../scripts/postpublish"
35
35
  },