@pie-element/number-line 11.3.4-next.0 → 12.0.0-beta.0

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.
Files changed (79) hide show
  1. package/configure/lib/arrows.js +68 -103
  2. package/configure/lib/arrows.js.map +1 -1
  3. package/configure/lib/card-bar.js +41 -62
  4. package/configure/lib/card-bar.js.map +1 -1
  5. package/configure/lib/defaults.js +5 -7
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/domain.js +60 -116
  8. package/configure/lib/domain.js.map +1 -1
  9. package/configure/lib/index.js +124 -194
  10. package/configure/lib/index.js.map +1 -1
  11. package/configure/lib/main.js +585 -721
  12. package/configure/lib/main.js.map +1 -1
  13. package/configure/lib/number-text-field.js +15 -86
  14. package/configure/lib/number-text-field.js.map +1 -1
  15. package/configure/lib/point-config.js +69 -129
  16. package/configure/lib/point-config.js.map +1 -1
  17. package/configure/lib/size.js +43 -77
  18. package/configure/lib/size.js.map +1 -1
  19. package/configure/lib/ticks.js +89 -151
  20. package/configure/lib/ticks.js.map +1 -1
  21. package/configure/lib/utils.js +2 -4
  22. package/configure/lib/utils.js.map +1 -1
  23. package/configure/package.json +10 -7
  24. package/controller/lib/defaults.js +5 -6
  25. package/controller/lib/defaults.js.map +1 -1
  26. package/controller/lib/index.js +171 -286
  27. package/controller/lib/index.js.map +1 -1
  28. package/controller/lib/tickUtils.js +96 -169
  29. package/controller/lib/tickUtils.js.map +1 -1
  30. package/controller/lib/utils.js +55 -88
  31. package/controller/lib/utils.js.map +1 -1
  32. package/controller/package.json +3 -3
  33. package/lib/data-converter.js +19 -23
  34. package/lib/data-converter.js.map +1 -1
  35. package/lib/draggable/index.js +104 -43
  36. package/lib/draggable/index.js.map +1 -1
  37. package/lib/index.js +118 -205
  38. package/lib/index.js.map +1 -1
  39. package/lib/number-line/colors.js +3 -13
  40. package/lib/number-line/colors.js.map +1 -1
  41. package/lib/number-line/feedback.js +53 -69
  42. package/lib/number-line/feedback.js.map +1 -1
  43. package/lib/number-line/graph/arrow.js +19 -38
  44. package/lib/number-line/graph/arrow.js.map +1 -1
  45. package/lib/number-line/graph/elements/base.js +7 -13
  46. package/lib/number-line/graph/elements/base.js.map +1 -1
  47. package/lib/number-line/graph/elements/builder.js +6 -7
  48. package/lib/number-line/graph/elements/builder.js.map +1 -1
  49. package/lib/number-line/graph/elements/line.js +209 -265
  50. package/lib/number-line/graph/elements/line.js.map +1 -1
  51. package/lib/number-line/graph/elements/point.js +170 -201
  52. package/lib/number-line/graph/elements/point.js.map +1 -1
  53. package/lib/number-line/graph/elements/ray.js +147 -185
  54. package/lib/number-line/graph/elements/ray.js.map +1 -1
  55. package/lib/number-line/graph/index.js +217 -283
  56. package/lib/number-line/graph/index.js.map +1 -1
  57. package/lib/number-line/graph/line.js +12 -22
  58. package/lib/number-line/graph/line.js.map +1 -1
  59. package/lib/number-line/graph/stacks.js +31 -54
  60. package/lib/number-line/graph/stacks.js.map +1 -1
  61. package/lib/number-line/graph/tick-utils.js +120 -209
  62. package/lib/number-line/graph/tick-utils.js.map +1 -1
  63. package/lib/number-line/graph/ticks.js +144 -225
  64. package/lib/number-line/graph/ticks.js.map +1 -1
  65. package/lib/number-line/index.js +331 -395
  66. package/lib/number-line/index.js.map +1 -1
  67. package/lib/number-line/point-chooser/button.js +33 -58
  68. package/lib/number-line/point-chooser/button.js.map +1 -1
  69. package/lib/number-line/point-chooser/img.js +2 -3
  70. package/lib/number-line/point-chooser/img.js.map +1 -1
  71. package/lib/number-line/point-chooser/index.js +152 -148
  72. package/lib/number-line/point-chooser/index.js.map +1 -1
  73. package/lib/number-line/point-chooser/styles.js +29 -52
  74. package/lib/number-line/point-chooser/styles.js.map +1 -1
  75. package/lib/number-line/transitions/fade.js +69 -48
  76. package/lib/number-line/transitions/fade.js.map +1 -1
  77. package/lib/number-line/transitions/index.js +2 -4
  78. package/lib/number-line/transitions/index.js.map +1 -1
  79. package/package.json +14 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/tick-utils.js"],"names":["decimalTickValues","fractionTickValues","labelMultiplier","fractionRange","start","end","interval","m","math","mod","abs","equal","Error","e","subtract","direction","larger","largerEq","smallerEq","compareFn","out","next","push","add","zbrErrorMessage","zeroBasedRange","fraction","length","a","multiplier","smaller","s","r","map","v","multiply","reverse","fmin","b","fmax","simpleRange","positiveRange","negativeRange","together","concat","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","min","max","getMinorLimits","domain","width","number","divide","isMultiple","multiple","src","n","d","normalizeTicks","ticks","opts","useLimit","minorLimits","minor","major","isMajorMultiple","multiplyBy","round","buildTickDataAsFractions","rng","o","filter","x","type","modulo","generateMinorValues","decimal","forEach","value","decimalValue","generateMajorValuesForMinor","i","num","ticksData","output","buildTickData","undefined","toString","multiplierKey","result","fractionSnapTo","half","div","sub","fn","fn2","snapTo","snapElements","elements","size","Number","isFinite","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// 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 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 * */\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"],"file":"tick-utils.js"}
1
+ {"version":3,"file":"tick-utils.js","names":["math","_interopRequireWildcard","require","_uniqWith","_interopRequireDefault","_isObject","_isNumber","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 uniqWith from 'lodash/uniqWith';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\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,81 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.Ticks = exports.TickValidator = exports.Tick = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
7
+ exports.default = exports.Ticks = exports.TickValidator = exports.Tick = void 0;
20
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
9
  var _react = _interopRequireDefault(require("react"));
23
-
24
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
11
+ var _styles = require("@mui/material/styles");
26
12
  var _tickUtils = require("./tick-utils");
27
-
28
- var _reactJss = _interopRequireDefault(require("react-jss"));
29
-
30
13
  var _renderUi = require("@pie-lib/render-ui");
31
-
32
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
-
34
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
-
36
- var style = {
37
- text: {
38
- userSelect: 'none',
39
- textAlign: 'center',
40
- fill: _renderUi.color.primary()
41
- },
42
- line: {
43
- stroke: _renderUi.color.primary()
44
- }
45
- };
46
-
47
- var TickValidator = _propTypes["default"].shape({
14
+ const StyledText = (0, _styles.styled)('text')({
15
+ userSelect: 'none',
16
+ textAlign: 'center',
17
+ fill: _renderUi.color.primary()
18
+ });
19
+ const StyledLine = (0, _styles.styled)('line')({
20
+ stroke: _renderUi.color.primary()
21
+ });
22
+ const TickValidator = exports.TickValidator = _propTypes.default.shape({
48
23
  /** the number of major ticks (including min + max)
49
24
  * to display. cant be lower than 2.
50
25
  */
51
- major: function major(props, propName) {},
52
-
26
+ major: (props, propName) => {},
53
27
  /** the number of minor ticks to display between major ticks.
54
28
  * Can't be less than zero.
55
29
  */
56
- minor: function minor(props, propName, componentName) {
57
- var minor = props[propName];
58
-
30
+ minor: (props, propName, componentName) => {
31
+ let minor = props[propName];
59
32
  if (minor <= 0) {
60
- return new Error("Invalid prop ".concat(propName, " must be > 0. ").concat(componentName));
33
+ return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);
61
34
  }
62
35
  }
63
36
  }).isRequired;
64
-
65
- exports.TickValidator = TickValidator;
66
-
67
- var Tick = /*#__PURE__*/function (_React$Component) {
68
- (0, _inherits2["default"])(Tick, _React$Component);
69
-
70
- var _super = _createSuper(Tick);
71
-
72
- function Tick(props) {
73
- var _this;
74
-
75
- (0, _classCallCheck2["default"])(this, Tick);
76
- _this = _super.call(this, props);
77
- _this.wasRendered = false;
78
- _this.state = {
37
+ class Tick extends _react.default.Component {
38
+ constructor(props) {
39
+ super(props);
40
+ this.wasRendered = false;
41
+ this.state = {
79
42
  textBox: {
80
43
  width: 0,
81
44
  height: 0,
@@ -83,187 +46,143 @@ var Tick = /*#__PURE__*/function (_React$Component) {
83
46
  y: 0
84
47
  }
85
48
  };
86
- _this.resizeObserver = null;
87
- return _this;
49
+ this.resizeObserver = null;
88
50
  }
89
-
90
- (0, _createClass2["default"])(Tick, [{
91
- key: "updateTextBox",
92
- value: function updateTextBox() {
93
- if (this.text) {
94
- var _this$text$getBBox = this.text.getBBox(),
95
- width = _this$text$getBBox.width,
96
- height = _this$text$getBBox.height,
97
- x = _this$text$getBBox.x,
98
- y = _this$text$getBBox.y;
99
-
100
- this.text.setAttribute('x', width / 2 * -1);
101
- this.setState({
102
- textBox: {
103
- width: width,
104
- height: height,
105
- x: x,
106
- y: y
107
- }
108
- });
109
- }
110
- }
111
- }, {
112
- key: "componentDidMount",
113
- value: function componentDidMount() {
114
- var _this2 = this;
115
-
116
- // Set up ResizeObserver
117
- this.resizeObserver = new ResizeObserver(function () {
118
- _this2.updateTextBox();
51
+ updateTextBox() {
52
+ if (this.text) {
53
+ const {
54
+ width,
55
+ height,
56
+ x,
57
+ y
58
+ } = this.text.getBBox();
59
+ this.text.setAttribute('x', width / 2 * -1);
60
+ this.setState({
61
+ textBox: {
62
+ width,
63
+ height,
64
+ x,
65
+ y
66
+ }
119
67
  });
120
-
121
- if (this.text) {
122
- this.resizeObserver.observe(this.text);
123
- }
124
68
  }
125
- }, {
126
- key: "componentWillUnmount",
127
- value: function componentWillUnmount() {
128
- if (this.resizeObserver) {
129
- this.resizeObserver.disconnect();
130
- }
69
+ }
70
+ componentDidMount() {
71
+ // Set up ResizeObserver
72
+ this.resizeObserver = new ResizeObserver(() => {
73
+ this.updateTextBox();
74
+ });
75
+ if (this.text) {
76
+ this.resizeObserver.observe(this.text);
131
77
  }
132
- }, {
133
- key: "render",
134
- value: function render() {
135
- var _this3 = this;
136
-
137
- //the domain value
138
- var _this$props = this.props,
139
- x = _this$props.x,
140
- y = _this$props.y,
141
- type = _this$props.type,
142
- classes = _this$props.classes,
143
- xScale = _this$props.xScale,
144
- fraction = _this$props.fraction;
145
- var displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;
146
- var labelTick = type === 'major';
147
- var height = labelTick ? 20 : 10;
148
- var _this$state$textBox = this.state.textBox,
149
- _this$state$textBox$w = _this$state$textBox.width,
150
- textWidth = _this$state$textBox$w === void 0 ? 0 : _this$state$textBox$w,
151
- _this$state$textBox$h = _this$state$textBox.height,
152
- textHeight = _this$state$textBox$h === void 0 ? 0 : _this$state$textBox$h,
153
- _this$state$textBox$x = _this$state$textBox.x,
154
- textX = _this$state$textBox$x === void 0 ? 0 : _this$state$textBox$x,
155
- _this$state$textBox$y = _this$state$textBox.y,
156
- textY = _this$state$textBox$y === void 0 ? 0 : _this$state$textBox$y;
157
- var xText = !fraction ? Number(x.toFixed(3)) : !displayFraction ? x.n * x.s : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tspan", {
158
- x: "0",
159
- dy: "0.71em"
160
- }, x.n * x.s), /*#__PURE__*/_react["default"].createElement("tspan", {
161
- x: "0",
162
- dy: "1.11em"
163
- }, x.d));
164
- return /*#__PURE__*/_react["default"].createElement("g", {
165
- opacity: "1",
166
- transform: "translate(".concat(xScale(x), ", ").concat(y, ")")
167
- }, /*#__PURE__*/_react["default"].createElement("line", {
168
- className: classes.line,
169
- y1: height / 2 * -1,
170
- y2: height / 2,
171
- x1: "0.5",
172
- x2: "0.5"
173
- }), displayFraction && /*#__PURE__*/_react["default"].createElement("line", {
174
- className: classes.line,
175
- x1: textX,
176
- x2: textX + textWidth,
177
- y1: textY + textHeight / 2,
178
- y2: textY + textHeight / 2
179
- }), labelTick && /*#__PURE__*/_react["default"].createElement("text", {
180
- ref: function ref(text) {
181
- return _this3.text = text;
182
- },
183
- className: classes.text,
184
- y: "14",
185
- width: "10",
186
- dy: "0.71em",
187
- textAnchor: displayFraction && 'middle'
188
- }, xText));
78
+ }
79
+ componentWillUnmount() {
80
+ if (this.resizeObserver) {
81
+ this.resizeObserver.disconnect();
189
82
  }
190
- }]);
191
- return Tick;
192
- }(_react["default"].Component);
193
-
83
+ }
84
+ render() {
85
+ //the domain value
86
+ let {
87
+ x,
88
+ y,
89
+ type,
90
+ xScale,
91
+ fraction
92
+ } = this.props;
93
+ const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;
94
+ const labelTick = type === 'major';
95
+ const height = labelTick ? 20 : 10;
96
+ const {
97
+ width: textWidth = 0,
98
+ height: textHeight = 0,
99
+ x: textX = 0,
100
+ y: textY = 0
101
+ } = 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", {
103
+ x: "0",
104
+ dy: "0.71em"
105
+ }, x.n * x.s), /*#__PURE__*/_react.default.createElement("tspan", {
106
+ x: "0",
107
+ dy: "1.11em"
108
+ }, x.d));
109
+ return /*#__PURE__*/_react.default.createElement("g", {
110
+ opacity: "1",
111
+ transform: `translate(${xScale(x)}, ${y})`
112
+ }, /*#__PURE__*/_react.default.createElement(StyledLine, {
113
+ y1: height / 2 * -1,
114
+ y2: height / 2,
115
+ x1: "0.5",
116
+ x2: "0.5"
117
+ }), displayFraction && /*#__PURE__*/_react.default.createElement(StyledLine, {
118
+ x1: textX,
119
+ x2: textX + textWidth,
120
+ y1: textY + textHeight / 2,
121
+ y2: textY + textHeight / 2
122
+ }), labelTick && /*#__PURE__*/_react.default.createElement(StyledText, {
123
+ ref: text => this.text = text,
124
+ y: "14",
125
+ width: "10",
126
+ dy: "0.71em",
127
+ textAnchor: displayFraction && 'middle'
128
+ }, xText));
129
+ }
130
+ }
194
131
  exports.Tick = Tick;
195
- (0, _defineProperty2["default"])(Tick, "propTypes", {
196
- classes: _propTypes["default"].object.isRequired,
197
- y: _propTypes["default"].number.isRequired,
198
- x: _propTypes["default"].number.isRequired,
199
- major: _propTypes["default"].bool,
200
- fraction: _propTypes["default"].bool,
201
- xScale: _propTypes["default"].func,
202
- type: _propTypes["default"].string
132
+ (0, _defineProperty2.default)(Tick, "propTypes", {
133
+ y: _propTypes.default.number.isRequired,
134
+ x: _propTypes.default.number.isRequired,
135
+ major: _propTypes.default.bool,
136
+ fraction: _propTypes.default.bool,
137
+ xScale: _propTypes.default.func,
138
+ type: _propTypes.default.string
203
139
  });
204
- (0, _defineProperty2["default"])(Tick, "defaultProps", {
140
+ (0, _defineProperty2.default)(Tick, "defaultProps", {
205
141
  major: false
206
142
  });
207
-
208
- var Ticks = /*#__PURE__*/function (_React$Component2) {
209
- (0, _inherits2["default"])(Ticks, _React$Component2);
210
-
211
- var _super2 = _createSuper(Ticks);
212
-
213
- function Ticks() {
214
- (0, _classCallCheck2["default"])(this, Ticks);
215
- return _super2.apply(this, arguments);
216
- }
217
-
218
- (0, _createClass2["default"])(Ticks, [{
219
- key: "render",
220
- value: function render() {
221
- var _this$props2 = this.props,
222
- domain = _this$props2.domain,
223
- width = _this$props2.width,
224
- ticks = _this$props2.ticks,
225
- y = _this$props2.y,
226
- classes = _this$props2.classes,
227
- fraction = _this$props2.fraction;
228
- var xScale = this.context.xScale;
229
- var tickData = (0, _tickUtils.buildTickData)(domain, width, ticks, {
230
- fraction: fraction
143
+ class Ticks extends _react.default.Component {
144
+ render() {
145
+ let {
146
+ domain,
147
+ width,
148
+ ticks,
149
+ y,
150
+ fraction
151
+ } = this.props;
152
+ let {
153
+ xScale
154
+ } = this.context;
155
+ const tickData = (0, _tickUtils.buildTickData)(domain, width, ticks, {
156
+ fraction
157
+ });
158
+ return /*#__PURE__*/_react.default.createElement("g", null, tickData.map(({
159
+ x,
160
+ type
161
+ }) => {
162
+ return /*#__PURE__*/_react.default.createElement(Tick, {
163
+ fraction: fraction,
164
+ x: x,
165
+ y: y,
166
+ type: type,
167
+ xScale: xScale,
168
+ key: `${x}-${type}-${fraction}`
231
169
  });
232
- return /*#__PURE__*/_react["default"].createElement("g", null, tickData.map(function (_ref) {
233
- var x = _ref.x,
234
- type = _ref.type;
235
- return /*#__PURE__*/_react["default"].createElement(Tick, {
236
- classes: classes,
237
- fraction: fraction,
238
- x: x,
239
- y: y,
240
- type: type,
241
- xScale: xScale,
242
- key: "".concat(x, "-").concat(type, "-").concat(fraction)
243
- });
244
- }));
245
- }
246
- }]);
247
- return Ticks;
248
- }(_react["default"].Component);
249
-
170
+ }));
171
+ }
172
+ }
250
173
  exports.Ticks = Ticks;
251
- (0, _defineProperty2["default"])(Ticks, "contextTypes", {
252
- xScale: _propTypes["default"].func.isRequired
174
+ (0, _defineProperty2.default)(Ticks, "contextTypes", {
175
+ xScale: _propTypes.default.func.isRequired
253
176
  });
254
- (0, _defineProperty2["default"])(Ticks, "propTypes", {
255
- classes: _propTypes["default"].object.isRequired,
256
- domain: _propTypes["default"].shape({
257
- min: _propTypes["default"].number.isRequired,
258
- max: _propTypes["default"].number.isRequired
177
+ (0, _defineProperty2.default)(Ticks, "propTypes", {
178
+ domain: _propTypes.default.shape({
179
+ min: _propTypes.default.number.isRequired,
180
+ max: _propTypes.default.number.isRequired
259
181
  }).isRequired,
260
- fraction: _propTypes["default"].bool,
261
- width: _propTypes["default"].number,
182
+ fraction: _propTypes.default.bool,
183
+ width: _propTypes.default.number,
262
184
  ticks: TickValidator,
263
- y: _propTypes["default"].number.isRequired
185
+ y: _propTypes.default.number.isRequired
264
186
  });
265
-
266
- var _default = (0, _reactJss["default"])(style)(Ticks);
267
-
268
- exports["default"] = _default;
187
+ var _default = exports.default = Ticks;
269
188
  //# sourceMappingURL=ticks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","wasRendered","state","textBox","width","height","x","y","resizeObserver","getBBox","setAttribute","setState","ResizeObserver","updateTextBox","observe","disconnect","type","classes","xScale","fraction","displayFraction","n","d","labelTick","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\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 classes: PropTypes.object.isRequired,\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, classes, 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 <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\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 classes: PropTypes.object.isRequired,\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, classes, 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 classes={classes}\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 injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
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":[]}