@pie-element/number-line 11.3.4-next.3 → 12.0.0-beta.1
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 +0 -11
- package/configure/CHANGELOG.md +0 -11
- package/configure/lib/arrows.js +68 -103
- package/configure/lib/arrows.js.map +1 -1
- package/configure/lib/card-bar.js +41 -62
- package/configure/lib/card-bar.js.map +1 -1
- package/configure/lib/defaults.js +5 -7
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/domain.js +60 -116
- package/configure/lib/domain.js.map +1 -1
- package/configure/lib/index.js +124 -194
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +586 -722
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/number-text-field.js +15 -86
- package/configure/lib/number-text-field.js.map +1 -1
- package/configure/lib/point-config.js +69 -129
- package/configure/lib/point-config.js.map +1 -1
- package/configure/lib/size.js +43 -77
- package/configure/lib/size.js.map +1 -1
- package/configure/lib/ticks.js +89 -151
- package/configure/lib/ticks.js.map +1 -1
- package/configure/lib/utils.js +2 -4
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +10 -7
- package/controller/CHANGELOG.md +0 -11
- package/controller/lib/defaults.js +5 -6
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +171 -286
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/tickUtils.js +96 -169
- package/controller/lib/tickUtils.js.map +1 -1
- package/controller/lib/utils.js +55 -88
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +3 -3
- package/lib/data-converter.js +19 -23
- package/lib/data-converter.js.map +1 -1
- package/lib/draggable/index.js +104 -43
- package/lib/draggable/index.js.map +1 -1
- package/lib/index.js +118 -205
- package/lib/index.js.map +1 -1
- package/lib/number-line/colors.js +3 -13
- package/lib/number-line/colors.js.map +1 -1
- package/lib/number-line/feedback.js +53 -69
- package/lib/number-line/feedback.js.map +1 -1
- package/lib/number-line/graph/arrow.js +19 -38
- package/lib/number-line/graph/arrow.js.map +1 -1
- package/lib/number-line/graph/elements/base.js +7 -13
- package/lib/number-line/graph/elements/base.js.map +1 -1
- package/lib/number-line/graph/elements/builder.js +6 -7
- package/lib/number-line/graph/elements/builder.js.map +1 -1
- package/lib/number-line/graph/elements/line.js +209 -265
- package/lib/number-line/graph/elements/line.js.map +1 -1
- package/lib/number-line/graph/elements/point.js +170 -201
- package/lib/number-line/graph/elements/point.js.map +1 -1
- package/lib/number-line/graph/elements/ray.js +147 -185
- package/lib/number-line/graph/elements/ray.js.map +1 -1
- package/lib/number-line/graph/index.js +217 -283
- package/lib/number-line/graph/index.js.map +1 -1
- package/lib/number-line/graph/line.js +12 -22
- package/lib/number-line/graph/line.js.map +1 -1
- package/lib/number-line/graph/stacks.js +31 -54
- package/lib/number-line/graph/stacks.js.map +1 -1
- package/lib/number-line/graph/tick-utils.js +120 -209
- package/lib/number-line/graph/tick-utils.js.map +1 -1
- package/lib/number-line/graph/ticks.js +144 -225
- package/lib/number-line/graph/ticks.js.map +1 -1
- package/lib/number-line/index.js +331 -395
- package/lib/number-line/index.js.map +1 -1
- package/lib/number-line/point-chooser/button.js +33 -58
- package/lib/number-line/point-chooser/button.js.map +1 -1
- package/lib/number-line/point-chooser/img.js +2 -3
- package/lib/number-line/point-chooser/img.js.map +1 -1
- package/lib/number-line/point-chooser/index.js +152 -148
- package/lib/number-line/point-chooser/index.js.map +1 -1
- package/lib/number-line/point-chooser/styles.js +29 -52
- package/lib/number-line/point-chooser/styles.js.map +1 -1
- package/lib/number-line/transitions/fade.js +70 -49
- package/lib/number-line/transitions/fade.js.map +1 -1
- package/lib/number-line/transitions/index.js +2 -4
- package/lib/number-line/transitions/index.js.map +1 -1
- package/package.json +16 -13
- package/esm/configure.js +0 -84095
- package/esm/configure.js.map +0 -1
- package/esm/controller.js +0 -68122
- package/esm/controller.js.map +0 -1
- package/esm/element.js +0 -44487
- package/esm/element.js.map +0 -1
- package/esm/package.json +0 -3
|
@@ -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":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA;;AAEA;AACO,IAAMA,iBAAiB,GAAG,CAAC,KAAD,EAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB,EAA0B,IAA1B,EAAgC,GAAhC,EAAqC,KAArC,EAA4C,GAA5C,EAAiD,IAAjD,EAAuD,GAAvD,CAA1B;AAEP;;;AACO,IAAMC,kBAAkB,GAAG,CAChC,QADgC,EAEhC,OAFgC,EAGhC,MAHgC,EAIhC,MAJgC,EAKhC,MALgC,EAMhC,MANgC,EAOhC,MAPgC,EAQhC,MARgC,EAShC,MATgC,EAUhC,MAVgC,EAWhC,MAXgC,EAYhC,KAZgC,EAahC,KAbgC,EAchC,KAdgC,EAehC,KAfgC,EAgBhC,KAhBgC,EAiBhC,KAjBgC,EAkBhC,KAlBgC,EAmBhC,KAnBgC,CAA3B;AAsBP;AACA;;;AACO,IAAMC,eAAe,GAAG;AAC7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,EAA5B,CAD0B;AAE7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,EAAhB,CAF0B;AAG7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAH0B;AAI7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAJ0B;AAK7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,EAAP,CAL0B;AAM7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAN0B;AAO7B,KAAG,CAAC,CAAD,EAAI,CAAJ,CAP0B;AAQ7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAR0B;AAS7B,KAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAT0B;AAU7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,EAAV,CAVyB;AAW7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,CAXyB;AAY7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAZyB;AAa7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAbyB;AAc7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,EAAb,CAdyB;AAe7B,MAAI,CAAC,CAAD,EAAI,CAAJ,CAfyB;AAgB7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAhByB;AAiB7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,EAAV,CAjByB;AAkB7B,MAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAlByB;AAmB7B,OAAK,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,EAAb,CAnBwB;AAoB7B,QAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,EAAhB;AApBuB,CAAxB;;;AAuBA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAQC,GAAR,EAAaC,QAAb,EAA0B;AACrD,MAAMC,CAAC,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASN,KAAT,CAAT,EAA0BI,IAAI,CAACE,GAAL,CAASJ,QAAT,CAA1B,CAAV;;AACA,MAAI,CAACE,IAAI,CAACG,KAAL,CAAWJ,CAAX,EAAc,CAAd,CAAL,EAAuB;AACrB,UAAM,IAAIK,KAAJ,CAAU,2CAAV,CAAN;AACD;;AAED,MAAIJ,IAAI,CAACG,KAAL,CAAWP,KAAX,EAAkBC,GAAlB,CAAJ,EAA4B;AAC1B,WAAO,EAAP;AACD;;AAED,MAAMQ,CAAC,GAAGL,IAAI,CAACM,QAAL,CAAcT,GAAd,EAAmBG,IAAI,CAACC,GAAL,CAASJ,GAAT,EAAcG,IAAI,CAACE,GAAL,CAASJ,QAAT,CAAd,CAAnB,CAAV;AAEA,MAAMS,SAAS,GAAGP,IAAI,CAACQ,MAAL,CAAYV,QAAZ,EAAsB,CAAtB,IAA2B,UAA3B,GAAwC,UAA1D;;AAEA,MAAIS,SAAS,KAAK,UAAd,IAA4BP,IAAI,CAACS,QAAL,CAAcZ,GAAd,EAAmBD,KAAnB,CAAhC,EAA2D;AACzD,UAAM,IAAIQ,KAAJ,CAAU,0DAAV,CAAN;AACD;;AACD,MAAIG,SAAS,KAAK,UAAd,IAA4BP,IAAI,CAACU,SAAL,CAAeb,GAAf,EAAoBD,KAApB,CAAhC,EAA4D;AAC1D,UAAM,IAAIQ,KAAJ,CAAU,2CAAV,CAAN;AACD;;AACD,MAAMO,SAAS,GAAGJ,SAAS,KAAK,UAAd,GAA2BP,IAAI,CAACU,SAAhC,GAA4CV,IAAI,CAACG,KAAL,CAAWE,CAAX,EAAcR,GAAd,IAAqBG,IAAI,CAACS,QAA1B,GAAqCT,IAAI,CAACQ,MAAxG;AACA,MAAMI,GAAG,GAAG,EAAZ;AAEA,MAAIC,IAAI,GAAGjB,KAAX;;AACA,SAAOe,SAAS,CAACE,IAAD,EAAOR,CAAP,CAAhB,EAA2B;AACzBO,IAAAA,GAAG,CAACE,IAAJ,CAASD,IAAT;AACAA,IAAAA,IAAI,GAAGb,IAAI,CAACe,GAAL,CAASF,IAAT,EAAef,QAAf,CAAP;AACD;;AACD,SAAOc,GAAP;AACD,CA7BM;;;;AA+BA,IAAMI,eAAe,GAAG,SAAlBA,eAAkB,CAACpB,KAAD,EAAQC,GAAR;AAAA,6EACgCD,KADhC,sBACiDC,GADjD;AAAA,CAAxB;;;;AAGA,IAAMoB,cAAc,GAAG,SAAjBA,cAAiB,CAACrB,KAAD,EAAQC,GAAR,EAAaC,QAAb,EAA0B;AACtDF,EAAAA,KAAK,GAAGI,IAAI,CAACkB,QAAL,CAActB,KAAd,CAAR;AACAC,EAAAA,GAAG,GAAGG,IAAI,CAACkB,QAAL,CAAcrB,GAAd,CAAN;AACAC,EAAAA,QAAQ,GAAGE,IAAI,CAACkB,QAAL,CAAcpB,QAAd,CAAX;AAEA,MAAMqB,MAAM,GAAGnB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACM,QAAL,CAAcT,GAAd,EAAmBD,KAAnB,CAAT,CAAf;;AAEA,MAAII,IAAI,CAACQ,MAAL,CAAYW,MAAZ,EAAoBnB,IAAI,CAACE,GAAL,CAASL,GAAT,CAApB,CAAJ,EAAwC;AACtC,UAAM,IAAIO,KAAJ,CAAUY,eAAe,CAACpB,KAAD,EAAQC,GAAR,CAAzB,CAAN;AACD;;AACD,MAAMuB,CAAC,GAAG;AACRxB,IAAAA,KAAK,EAAEI,IAAI,CAACE,GAAL,CAASN,KAAT,CADC;AAERC,IAAAA,GAAG,EAAEG,IAAI,CAACE,GAAL,CAASL,GAAT,CAFG;AAGRC,IAAAA,QAAQ,EAAEE,IAAI,CAACE,GAAL,CAASJ,QAAT,CAHF;AAIRuB,IAAAA,UAAU,EAAErB,IAAI,CAACsB,OAAL,CAAaxB,QAAb,EAAuB,CAAvB,IAA4B,CAAC,CAA7B,GAAiC;AAJrC,GAAV;AAOA,MAAMC,CAAC,GAAGC,IAAI,CAACC,GAAL,CAASmB,CAAC,CAACxB,KAAX,EAAkBwB,CAAC,CAACtB,QAApB,CAAV;AACA,MAAMyB,CAAC,GAAGvB,IAAI,CAACQ,MAAL,CAAYT,CAAZ,EAAe,CAAf,IAAoBC,IAAI,CAACe,GAAL,CAASf,IAAI,CAACM,QAAL,CAAcc,CAAC,CAACxB,KAAhB,EAAuBG,CAAvB,CAAT,EAAoCqB,CAAC,CAACtB,QAAtC,CAApB,GAAsEsB,CAAC,CAACxB,KAAlF;AAEA,MAAM4B,CAAC,GAAG7B,aAAa,CAAC4B,CAAD,EAAIH,CAAC,CAACvB,GAAN,EAAWuB,CAAC,CAACtB,QAAb,CAAvB;AACA,MAAMc,GAAG,GAAGQ,CAAC,CAACC,UAAF,KAAiB,CAAC,CAAlB,GAAsBG,CAAC,CAACC,GAAF,CAAM,UAACC,CAAD;AAAA,WAAO1B,IAAI,CAAC2B,QAAL,CAAcD,CAAd,EAAiB,CAAC,CAAlB,CAAP;AAAA,GAAN,CAAtB,GAA2DF,CAAvE;;AAEA,MAAIxB,IAAI,CAACsB,OAAL,CAAaxB,QAAb,EAAuB,CAAvB,CAAJ,EAA+B;AAC7Bc,IAAAA,GAAG,CAACgB,OAAJ;AACD;;AACD,SAAOhB,GAAP;AACD,CA3BM;;;;AA6BP,IAAMiB,IAAI,GAAG,SAAPA,IAAO,CAACT,CAAD,EAAIU,CAAJ,EAAU;AACrBV,EAAAA,CAAC,GAAGpB,IAAI,CAACkB,QAAL,CAAcE,CAAd,CAAJ;AACAU,EAAAA,CAAC,GAAG9B,IAAI,CAACkB,QAAL,CAAcY,CAAd,CAAJ;AACA,SAAO9B,IAAI,CAACsB,OAAL,CAAaF,CAAb,EAAgBU,CAAhB,IAAqBV,CAArB,GAAyBU,CAAhC;AACD,CAJD;;AAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACX,CAAD,EAAIU,CAAJ,EAAU;AACrBV,EAAAA,CAAC,GAAGpB,IAAI,CAACkB,QAAL,CAAcE,CAAd,CAAJ;AACAU,EAAAA,CAAC,GAAG9B,IAAI,CAACkB,QAAL,CAAcY,CAAd,CAAJ;AACA,SAAO9B,IAAI,CAACQ,MAAL,CAAYY,CAAZ,EAAeU,CAAf,IAAoBV,CAApB,GAAwBU,CAA/B;AACD,CAJD;AAKA;AACA;AACA;AACA;AACA;;;AACO,IAAME,WAAW,GAAG,SAAdA,WAAc,CAACpC,KAAD,EAAQC,GAAR,EAAaC,QAAb,EAA0B;AACnDF,EAAAA,KAAK,GAAGI,IAAI,CAACkB,QAAL,CAActB,KAAd,CAAR;AACAC,EAAAA,GAAG,GAAGG,IAAI,CAACkB,QAAL,CAAcrB,GAAd,CAAN;AACAC,EAAAA,QAAQ,GAAGE,IAAI,CAACkB,QAAL,CAAcpB,QAAd,CAAX;AAEA,MAAMmC,aAAa,GAAGjC,IAAI,CAACQ,MAAL,CAAYX,GAAZ,EAAiB,CAAjB,IAAsBoB,cAAc,CAACc,IAAI,CAAC,CAAD,EAAInC,KAAJ,CAAL,EAAiBC,GAAjB,EAAsBC,QAAtB,CAApC,GAAsE,EAA5F;AAEA,MAAMoC,aAAa,GAAGlC,IAAI,CAACsB,OAAL,CAAa1B,KAAb,EAAoB,CAApB,IAAyBqB,cAAc,CAACY,IAAI,CAAC,CAAD,EAAIhC,GAAJ,CAAL,EAAeD,KAAf,EAAsBI,IAAI,CAAC2B,QAAL,CAAc7B,QAAd,EAAwB,CAAC,CAAzB,CAAtB,CAAvC,GAA4F,EAAlH;AACA,MAAIqC,QAAQ,GAAGD,aAAa,CAACE,MAAd,CAAqBH,aAArB,CAAf;AAEA,MAAMrB,GAAG,GAAG,0BAASuB,QAAT,EAAmBnC,IAAI,CAACG,KAAxB,CAAZ;AACA,SAAOS,GAAP;AACD,CAZM;;;;AAcA,IAAMyB,OAAO,GAAG,SAAVA,OAAU,CAACjB,CAAD,EAAIU,CAAJ,EAAOQ,SAAP,EAAqB;AAC1CA,EAAAA,SAAS,GAAGA,SAAS,IAAI,CAAzB;AACA,MAAMC,YAAY,GAAGC,IAAI,CAACC,GAAL,CAAS,EAAT,EAAa,CAACH,SAAd,IAA2B,CAAhD;AACA,MAAMI,YAAY,GAAGF,IAAI,CAACtC,GAAL,CAASkB,CAAC,GAAGU,CAAb,CAArB;AACA,SAAOY,YAAY,GAAGH,YAAtB;AACD,CALM;;;;AAOP,IAAMI,KAAK,GAAG,SAARA,KAAQ,CAACjB,CAAD,EAAIkB,GAAJ,EAASC,GAAT,EAAiB;AAC7B,MAAI7C,IAAI,CAACsB,OAAL,CAAaJ,QAAQ,CAACQ,CAAD,CAArB,EAA0BR,QAAQ,CAAC0B,GAAD,CAAlC,CAAJ,EAA8C;AAC5C,WAAOA,GAAP;AACD;;AAED,MAAI5C,IAAI,CAACQ,MAAL,CAAYU,QAAQ,CAACQ,CAAD,CAApB,EAAyBR,QAAQ,CAAC2B,GAAD,CAAjC,CAAJ,EAA6C;AAC3C,WAAOA,GAAP;AACD;;AAED,SAAOnB,CAAP;AACD,CAVD;AAYA;AACA;AACA;AACA;AACA;;;AACO,IAAMoB,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,KAAT,EAAmB;AAC/C,MAAMnD,GAAG,GAAGkD,MAAM,CAACF,GAAP,GAAaE,MAAM,CAACH,GAAhC;AACA,MAAMA,GAAG,GAAG5C,IAAI,CAACiD,MAAL,CAAYjD,IAAI,CAAC2B,QAAL,CAAc,EAAd,EAAkB3B,IAAI,CAACkD,MAAL,CAAYlD,IAAI,CAACkB,QAAL,CAAcrB,GAAd,CAAZ,EAAgCmD,KAAhC,CAAlB,CAAZ,CAAZ;AACA,MAAMH,GAAG,GAAG7C,IAAI,CAACiD,MAAL,CAAYjD,IAAI,CAAC2B,QAAL,CAAc,EAAd,EAAkBiB,GAAlB,CAAZ,CAAZ;AACA,SAAO;AACLA,IAAAA,GAAG,EAAEA,GADA;AAELC,IAAAA,GAAG,EAAEA;AAFA,GAAP;AAID,CARM;;;;AAUA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,QAAD,EAAWC,GAAX,EAAmB;AAC3C,MAAMpD,GAAG,GAAGD,IAAI,CAACC,GAAL,CAASmD,QAAT,EAAmBC,GAAnB,CAAZ;AACA,SAAOrD,IAAI,CAACG,KAAL,CAAWF,GAAX,EAAgB,CAAhB,CAAP;AACD,CAHM;AAKP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMiB,QAAQ,GAAG,SAAXA,QAAW,CAACQ,CAAD,EAAO;AAC7B,MAAI,0BAASA,CAAT,CAAJ,EAAiB;AACf,WAAO1B,IAAI,CAACkB,QAAL,CAAcQ,CAAC,CAAC4B,CAAF,GAAM5B,CAAC,CAACH,CAAtB,EAAyBG,CAAC,CAAC6B,CAA3B,CAAP;AACD,GAFD,MAEO,IAAI,0BAAS7B,CAAT,CAAJ,EAAiB;AACtB,WAAO1B,IAAI,CAACkB,QAAL,CAAcQ,CAAd,CAAP;AACD;AACF,CANM;;;;AAQA,IAAM8B,cAAc,GAAG,SAAjBA,cAAiB,CAACT,MAAD,EAASC,KAAT,EAAgBS,KAAhB,EAAuBC,IAAvB,EAAgC;AAC5D,MAAMC,QAAQ,GAAGD,IAAI,GAAGA,IAAI,CAACf,KAAL,KAAe,KAAlB,GAA0B,IAA/C;AACA,MAAMiB,WAAW,GAAGd,cAAc,CAACC,MAAD,EAASC,KAAT,CAAlC;AAEA,MAAMa,KAAK,GAAGF,QAAQ,GAAGhB,KAAK,CAACzB,QAAQ,CAACuC,KAAK,CAACI,KAAP,CAAT,EAAwBD,WAAW,CAAChB,GAApC,EAAyCgB,WAAW,CAACf,GAArD,CAAR,GAAoE3B,QAAQ,CAACuC,KAAK,CAACI,KAAP,CAAlG;AACA,MAAMC,KAAK,GAAGH,QAAQ,GAAGhB,KAAK,CAACzB,QAAQ,CAACuC,KAAK,CAACK,KAAP,CAAT,EAAwBD,KAAxB,EAA+B7D,IAAI,CAAC2B,QAAL,CAAckC,KAAd,EAAqB,EAArB,CAA/B,CAAR,GAAmE3C,QAAQ,CAACuC,KAAK,CAACK,KAAP,CAAjG;AAEA,MAAMC,eAAe,GAAGZ,UAAU,CAACW,KAAD,EAAQD,KAAR,CAAlC;;AAEA,MAAI,CAACE,eAAL,EAAsB;AACpB,QAAM1C,UAAU,GAAGrB,IAAI,CAACkD,MAAL,CAAYY,KAAZ,EAAmBD,KAAnB,CAAnB;AACA,QAAMG,UAAU,GAAG3C,UAAU,IAAI,CAAd,GAAkB,CAAlB,GAAsBmB,IAAI,CAACyB,KAAL,CAAW5C,UAAX,CAAzC,CAFoB,CAIpB;;AACA,WAAO;AAAEwC,MAAAA,KAAK,EAALA,KAAF;AAASC,MAAAA,KAAK,EAAE9D,IAAI,CAAC2B,QAAL,CAAckC,KAAd,EAAqBG,UAArB;AAAhB,KAAP;AACD;;AAED,SAAO;AAAEF,IAAAA,KAAK,EAALA,KAAF;AAASD,IAAAA,KAAK,EAALA;AAAT,GAAP;AACD,CAlBM;AAoBP;AACA;AACA;;;;;AACO,IAAMK,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACnB,MAAD,EAASC,KAAT,EAAgBS,KAAhB,EAAuBC,IAAvB,EAAgC;AACtED,EAAAA,KAAK,GAAGD,cAAc,CAACT,MAAD,EAASC,KAAT,EAAgBS,KAAhB,EAAuBC,IAAvB,CAAtB;AACA,MAAMS,GAAG,GAAGnC,WAAW,CAACe,MAAM,CAACH,GAAR,EAAaG,MAAM,CAACF,GAApB,EAAyBY,KAAK,CAACI,KAA/B,CAAvB;AAEA,MAAMO,CAAC,GAAGD,GAAG,CACVE,MADO,CACA,UAACC,CAAD;AAAA,WAAOtE,IAAI,CAACU,SAAL,CAAe4D,CAAf,EAAkBtE,IAAI,CAACkB,QAAL,CAAc6B,MAAM,CAACF,GAArB,CAAlB,CAAP;AAAA,GADA,EAEPpB,GAFO,CAEH,UAAC6C,CAAD,EAAO;AACV,QAAIC,IAAI,GAAG,OAAX;AACA,QAAMC,MAAM,GAAGxE,IAAI,CAACC,GAAL,CAASqE,CAAT,EAAYb,KAAK,CAACK,KAAlB,CAAf;;AAEA,QAAIzB,OAAO,CAACrC,IAAI,CAACiD,MAAL,CAAYuB,MAAZ,CAAD,EAAsB,CAAtB,CAAX,EAAqC;AACnCD,MAAAA,IAAI,GAAG,OAAP;AACD;;AAED,WAAO;AAAED,MAAAA,CAAC,EAADA,CAAF;AAAKC,MAAAA,IAAI,EAAJA;AAAL,KAAP;AACD,GAXO,CAAV;AAaA,SAAOH,CAAP;AACD,CAlBM;AAoBP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACb,WAAD,EAAiB;AAClD,MAAIhD,GAAG,GAAG;AAAEM,IAAAA,QAAQ,EAAE,EAAZ;AAAgBwD,IAAAA,OAAO,EAAE;AAAzB,GAAV;AACAlF,EAAAA,iBAAiB,CAACmF,OAAlB,CAA0B,UAACC,KAAD,EAAW;AACnC,QAAIA,KAAK,IAAIhB,WAAW,CAAChB,GAArB,IAA4BgC,KAAK,IAAIhB,WAAW,CAACf,GAArD,EAA0D;AACxDjC,MAAAA,GAAG,CAAC8D,OAAJ,CAAY5D,IAAZ,CAAiB8D,KAAjB;AACD;AACF,GAJD;AAKAnF,EAAAA,kBAAkB,CAACkF,OAAnB,CAA2B,UAACC,KAAD,EAAW;AACpC,QAAIC,YAAY,GAAG7E,IAAI,CAACiD,MAAL,CAAYjD,IAAI,CAACkB,QAAL,CAAc0D,KAAd,CAAZ,CAAnB;;AACA,QAAIC,YAAY,IAAIjB,WAAW,CAAChB,GAA5B,IAAmCiC,YAAY,IAAIjB,WAAW,CAACf,GAAnE,EAAwE;AACtEjC,MAAAA,GAAG,CAACM,QAAJ,CAAaJ,IAAb,CAAkB8D,KAAlB;AACD;AACF,GALD;AAMA,SAAOhE,GAAP;AACD,CAdM;AAgBP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAMkE,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACjB,KAAD,EAAQd,MAAR,EAAgBC,KAAhB,EAA0B;AACnE,MAAIpC,GAAG,GAAG;AAAE8D,IAAAA,OAAO,EAAE,EAAX;AAAexD,IAAAA,QAAQ,EAAE;AAAzB,GAAV;AACA,MAAIA,QAAQ,GAAGlB,IAAI,CAACkB,QAAL,CAAclB,IAAI,CAACiD,MAAL,CAAYjD,IAAI,CAACiD,MAAL,CAAYY,KAAZ,CAAZ,CAAd,CAAf;AACA,MAAIP,CAAC,GAAGpC,QAAQ,CAACoC,CAAjB;AACA,MAAIC,CAAC,GAAGrC,QAAQ,CAACqC,CAAjB;;AACA,MAAID,CAAC,IAAI,CAAL,IAAUC,CAAC,KAAK,CAApB,EAAuB;AACrB,SAAK,IAAIwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,EAArB,EAAyBA,CAAC,EAA1B,EAA8B;AAC5B,UAAIC,GAAG,GAAGhF,IAAI,CAACiD,MAAL,CAAYjD,IAAI,CAAC2B,QAAL,CAAc2B,CAAd,EAAiByB,CAAjB,CAAZ,CAAV,CAD4B,CAE5B;;AACA,UAAIE,SAAS,GAAG;AAAEpB,QAAAA,KAAK,EAAEA,KAAT;AAAgBC,QAAAA,KAAK,EAAEkB;AAAvB,OAAhB;AACA,UAAIE,MAAM,GAAGC,aAAa,CAACpC,MAAD,EAASC,KAAT,EAAgBiC,SAAhB,EAA2B;AAAE/D,QAAAA,QAAQ,EAAEkE;AAAZ,OAA3B,CAA1B;;AACA,UAAIF,MAAM,CAACb,MAAP,CAAc,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,IAAF,KAAW,OAAlB;AAAA,OAAd,EAAyCpD,MAAzC,GAAkD,CAAtD,EAAyD;AACvDP,QAAAA,GAAG,CAACM,QAAJ,CAAaJ,IAAb,CAAkBkE,GAAG,CAACK,QAAJ,EAAlB;AACAzE,QAAAA,GAAG,CAAC8D,OAAJ,CAAY5D,IAAZ,CAAiBkE,GAAjB;AACD;AACF;AACF,GAXD,MAWO;AACL,SAAK,IAAMM,aAAX,IAA4B5F,eAAe,CAAC6D,CAAD,CAA3C,EAAgD;AAC9C,UAAIyB,IAAG,GAAGhF,IAAI,CAAC2B,QAAL,CAAc3B,IAAI,CAACkB,QAAL,CAAcoC,CAAd,EAAiBC,CAAjB,CAAd,EAAmC7D,eAAe,CAAC6D,CAAD,CAAf,CAAmB+B,aAAnB,CAAnC,CAAV,CAD8C,CAE9C;;;AACA,UAAIL,UAAS,GAAG;AAAEpB,QAAAA,KAAK,EAAEA,KAAT;AAAgBC,QAAAA,KAAK,EAAE9D,IAAI,CAACiD,MAAL,CAAY+B,IAAZ;AAAvB,OAAhB;;AACA,UAAIE,OAAM,GAAGC,aAAa,CAACpC,MAAD,EAASC,KAAT,EAAgBiC,UAAhB,EAA2B;AAAE/D,QAAAA,QAAQ,EAAEkE;AAAZ,OAA3B,CAA1B;;AACA,UAAIF,OAAM,CAACb,MAAP,CAAc,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,IAAF,KAAW,OAAlB;AAAA,OAAd,EAAyCpD,MAAzC,GAAkD,CAAtD,EAAyD;AACvD,YAAI6D,IAAG,CAACzB,CAAJ,KAAU,CAAd,EAAiB;AACf3C,UAAAA,GAAG,CAACM,QAAJ,CAAaJ,IAAb,CAAkBkE,IAAG,CAAC1B,CAAJ,GAAQ,GAAR,GAAc0B,IAAG,CAACzB,CAApC;AACD,SAFD,MAEO;AACL3C,UAAAA,GAAG,CAACM,QAAJ,CAAaJ,IAAb,CAAkBkE,IAAG,CAAC1B,CAAJ,CAAM+B,QAAN,EAAlB;AACD;;AACDzE,QAAAA,GAAG,CAAC8D,OAAJ,CAAY5D,IAAZ,CAAiBd,IAAI,CAACiD,MAAL,CAAY+B,IAAZ,CAAjB;AACD;AACF;AACF;;AACD,SAAOpE,GAAP;AACD,CAjCM;;;;AAmCA,IAAMuE,aAAa,GAAG,SAAhBA,aAAgB,CAACpC,MAAD,EAASC,KAAT,EAAgBS,KAAhB,EAAuBC,IAAvB,EAAgC;AAC3D,MAAM6B,MAAM,GAAGrB,wBAAwB,CAACnB,MAAD,EAASC,KAAT,EAAgBS,KAAhB,EAAuBC,IAAvB,CAAvC;AAEA,MAAM9C,GAAG,GAAG2E,MAAM,CAAC9D,GAAP,CAAW,UAAC2C,CAAD;AAAA,WAAQV,IAAI,CAACxC,QAAL,GAAgBkD,CAAhB,mCAAyBA,CAAzB;AAA4BE,MAAAA,CAAC,EAAEtE,IAAI,CAACiD,MAAL,CAAYmB,CAAC,CAACE,CAAd,KAAoB;AAAnD,MAAR;AAAA,GAAX,CAAZ;AAEA,SAAO1D,GAAP;AACD,CANM;;;;AAQA,IAAM4E,cAAc,GAAG,SAAjBA,cAAiB,CAAC5C,GAAD,EAAMC,GAAN,EAAW/C,QAAX,EAAqB8E,KAArB,EAA+B;AAC3DA,EAAAA,KAAK,GAAG7C,IAAI,CAACF,IAAI,CAAC+C,KAAD,EAAQ/B,GAAR,CAAL,EAAmBD,GAAnB,CAAZ;AACA,MAAM3C,GAAG,GAAG2E,KAAK,CAAC3E,GAAN,CAAUH,QAAV,CAAZ;AACA,MAAI4B,CAAJ;AAEA,MAAM+D,IAAI,GAAG3F,QAAQ,CAAC4F,GAAT,CAAa,CAAb,CAAb;;AACA,MAAI1F,IAAI,CAACS,QAAL,CAAcT,IAAI,CAACE,GAAL,CAASD,GAAT,CAAd,EAA6BwF,IAA7B,CAAJ,EAAwC;AACtC,QAAMlC,CAAC,GAAGzD,QAAQ,CAAC6F,GAAT,CAAa3F,IAAI,CAACE,GAAL,CAASD,GAAT,CAAb,CAAV;AACA,QAAM2F,EAAE,GAAG5F,IAAI,CAACS,QAAL,CAAcmE,KAAd,EAAqB,CAArB,IAA0B,KAA1B,GAAkC,KAA7C;AACAlD,IAAAA,CAAC,GAAGkD,KAAK,CAACgB,EAAD,CAAL,CAAUrC,CAAV,CAAJ;AACD,GAJD,MAIO;AACL,QAAMsC,GAAG,GAAG7F,IAAI,CAACS,QAAL,CAAcmE,KAAd,EAAqB,CAArB,IAA0B,KAA1B,GAAkC,KAA9C;AACAlD,IAAAA,CAAC,GAAGkD,KAAK,CAACiB,GAAD,CAAL,CAAW7F,IAAI,CAACE,GAAL,CAASD,GAAT,CAAX,CAAJ;AACD;;AACD,SAAOyB,CAAP;AACD,CAfM;;;;AAiBA,IAAMoE,MAAM,GAAG,SAATA,MAAS,CAAClD,GAAD,EAAMC,GAAN,EAAW/C,QAAX,EAAqB8E,KAArB,EAA+B;AACnD,MAAMhE,GAAG,GAAG4E,cAAc,CAACxF,IAAI,CAACkB,QAAL,CAAc0B,GAAd,CAAD,EAAqB5C,IAAI,CAACkB,QAAL,CAAc2B,GAAd,CAArB,EAAyC7C,IAAI,CAACkB,QAAL,CAAcpB,QAAd,CAAzC,EAAkEE,IAAI,CAACkB,QAAL,CAAc0D,KAAd,CAAlE,CAA1B;AACA,SAAO5E,IAAI,CAACiD,MAAL,CAAYrC,GAAZ,CAAP;AACD,CAHM;;;;AAKA,IAAMmF,YAAY,GAAG,SAAfA,YAAe,CAAChD,MAAD,EAASU,KAAT,EAAgBuC,QAAhB,EAA6B;AACvD,SAAOA,QAAQ,CAACvE,GAAT,CAAa,UAACpB,CAAD,EAAO;AACzB,QAAM4F,IAAI,GAAGC,MAAM,CAACC,QAAP,CAAgB9F,CAAC,CAAC4F,IAAlB,IAA0BH,MAAM,CAAC,CAAD,EAAIzF,CAAC,CAAC4F,IAAN,EAAYxC,KAAK,CAACI,KAAlB,EAAyBxD,CAAC,CAAC4F,IAA3B,CAAhC,GAAmEb,SAAhF;AACA,QAAMgB,cAAc,GAAGN,MAAM,CAAC/C,MAAM,CAACH,GAAR,EAAaG,MAAM,CAACF,GAApB,EAAyBY,KAAK,CAACI,KAA/B,EAAsCxD,CAAC,CAAC+F,cAAxC,CAA7B;;AACA,QAAMxF,GAAG,mCAAQP,CAAR;AAAW+F,MAAAA,cAAc,EAAdA;AAAX,MAAT;;AAEA,QAAIF,MAAM,CAACC,QAAP,CAAgBF,IAAhB,CAAJ,EAA2B;AACzBrF,MAAAA,GAAG,CAACqF,IAAJ,GAAWA,IAAX;AACD;;AAED,WAAOrF,GAAP;AACD,GAVM,CAAP;AAWD,CAZM","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
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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:
|
|
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:
|
|
57
|
-
|
|
58
|
-
|
|
30
|
+
minor: (props, propName, componentName) => {
|
|
31
|
+
let minor = props[propName];
|
|
59
32
|
if (minor <= 0) {
|
|
60
|
-
return new Error(
|
|
33
|
+
return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);
|
|
61
34
|
}
|
|
62
35
|
}
|
|
63
36
|
}).isRequired;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
87
|
-
return _this;
|
|
49
|
+
this.resizeObserver = null;
|
|
88
50
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
192
|
-
|
|
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
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
|
140
|
+
(0, _defineProperty2.default)(Tick, "defaultProps", {
|
|
205
141
|
major: false
|
|
206
142
|
});
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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
|
|
252
|
-
xScale: _propTypes
|
|
174
|
+
(0, _defineProperty2.default)(Ticks, "contextTypes", {
|
|
175
|
+
xScale: _propTypes.default.func.isRequired
|
|
253
176
|
});
|
|
254
|
-
(0, _defineProperty2
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
|
261
|
-
width: _propTypes
|
|
182
|
+
fraction: _propTypes.default.bool,
|
|
183
|
+
width: _propTypes.default.number,
|
|
262
184
|
ticks: TickValidator,
|
|
263
|
-
y: _propTypes
|
|
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":[]}
|