jsxgraph 1.13.2 → 1.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +3 -1
  3. package/distrib/README.md +3 -1
  4. package/distrib/docs/files.html +2 -2
  5. package/distrib/docs/index.html +2 -2
  6. package/distrib/docs/static/jsxgraph.css +1 -1
  7. package/distrib/docs/static/jsxgraphcore.js +2 -2
  8. package/distrib/docs/symbols/Angle.html +2 -2
  9. package/distrib/docs/symbols/Arc.html +2 -2
  10. package/distrib/docs/symbols/Arrow.html +2 -2
  11. package/distrib/docs/symbols/Arrowparallel.html +2 -2
  12. package/distrib/docs/symbols/Axes3D.html +2 -2
  13. package/distrib/docs/symbols/Axis.html +2 -2
  14. package/distrib/docs/symbols/Axis3D.html +2 -2
  15. package/distrib/docs/symbols/Bisector.html +2 -2
  16. package/distrib/docs/symbols/Bisectorlines.html +2 -2
  17. package/distrib/docs/symbols/Boxplot.html +2 -2
  18. package/distrib/docs/symbols/Button.html +2 -2
  19. package/distrib/docs/symbols/Cardinalspline.html +2 -2
  20. package/distrib/docs/symbols/Chart.html +2 -2
  21. package/distrib/docs/symbols/Checkbox.html +2 -2
  22. package/distrib/docs/symbols/Circle.html +2 -2
  23. package/distrib/docs/symbols/Circle3D.html +2 -2
  24. package/distrib/docs/symbols/Circumcenter.html +2 -2
  25. package/distrib/docs/symbols/Circumcircle.html +2 -2
  26. package/distrib/docs/symbols/CircumcircleArc.html +2 -2
  27. package/distrib/docs/symbols/CircumcircleSector.html +2 -2
  28. package/distrib/docs/symbols/Comb.html +2 -2
  29. package/distrib/docs/symbols/Conic.html +2 -2
  30. package/distrib/docs/symbols/Curve.html +2 -2
  31. package/distrib/docs/symbols/Curve3D.html +2 -2
  32. package/distrib/docs/symbols/CurveDifference.html +2 -2
  33. package/distrib/docs/symbols/CurveIntersection.html +2 -2
  34. package/distrib/docs/symbols/CurveUnion.html +2 -2
  35. package/distrib/docs/symbols/Derivative.html +2 -2
  36. package/distrib/docs/symbols/Ellipse.html +2 -2
  37. package/distrib/docs/symbols/Face3D.html +2 -2
  38. package/distrib/docs/symbols/ForeignObject.html +2 -2
  39. package/distrib/docs/symbols/Functiongraph.html +2 -2
  40. package/distrib/docs/symbols/Functiongraph3D.html +2 -2
  41. package/distrib/docs/symbols/Glider.html +2 -2
  42. package/distrib/docs/symbols/Grid.html +2 -2
  43. package/distrib/docs/symbols/Group.html +2 -2
  44. package/distrib/docs/symbols/Hatch.html +2 -2
  45. package/distrib/docs/symbols/Hyperbola.html +2 -2
  46. package/distrib/docs/symbols/Image.html +2 -2
  47. package/distrib/docs/symbols/ImplicitCurve.html +2 -2
  48. package/distrib/docs/symbols/Incenter.html +2 -2
  49. package/distrib/docs/symbols/Incircle.html +2 -2
  50. package/distrib/docs/symbols/Inequality.html +2 -2
  51. package/distrib/docs/symbols/Input.html +2 -2
  52. package/distrib/docs/symbols/Integral.html +2 -2
  53. package/distrib/docs/symbols/Intersection.html +2 -2
  54. package/distrib/docs/symbols/IntersectionCircle3D.html +2 -2
  55. package/distrib/docs/symbols/IntersectionLine3D.html +2 -2
  56. package/distrib/docs/symbols/JXG.AbstractRenderer.html +2 -2
  57. package/distrib/docs/symbols/JXG.Board.html +2 -2
  58. package/distrib/docs/symbols/JXG.Board.infobox.html +2 -2
  59. package/distrib/docs/symbols/JXG.C.html +2 -2
  60. package/distrib/docs/symbols/JXG.CA.html +2 -2
  61. package/distrib/docs/symbols/JXG.CanvasRenderer.html +2 -2
  62. package/distrib/docs/symbols/JXG.Chart.html +2 -2
  63. package/distrib/docs/symbols/JXG.Circle.html +2 -2
  64. package/distrib/docs/symbols/JXG.Circle3D.html +2 -2
  65. package/distrib/docs/symbols/JXG.Complex.html +2 -2
  66. package/distrib/docs/symbols/JXG.Composition.html +2 -2
  67. package/distrib/docs/symbols/JXG.Coords.html +2 -2
  68. package/distrib/docs/symbols/JXG.CoordsElement.html +2 -2
  69. package/distrib/docs/symbols/JXG.Curve.html +2 -2
  70. package/distrib/docs/symbols/JXG.Curve3D.html +2 -2
  71. package/distrib/docs/symbols/JXG.Dump.html +2 -2
  72. package/distrib/docs/symbols/JXG.EventEmitter.html +2 -2
  73. package/distrib/docs/symbols/JXG.Expect.html +2 -2
  74. package/distrib/docs/symbols/JXG.Face3D.html +2 -2
  75. package/distrib/docs/symbols/JXG.ForeignObject.html +2 -2
  76. package/distrib/docs/symbols/JXG.GeometryElement.html +2 -2
  77. package/distrib/docs/symbols/JXG.GeometryElement3D.html +2 -2
  78. package/distrib/docs/symbols/JXG.GeonextParser.html +2 -2
  79. package/distrib/docs/symbols/JXG.Group.html +2 -2
  80. package/distrib/docs/symbols/JXG.Image.html +2 -2
  81. package/distrib/docs/symbols/JXG.JSXGraph.html +2 -2
  82. package/distrib/docs/symbols/JXG.JessieCode.html +2 -2
  83. package/distrib/docs/symbols/JXG.Legend.html +2 -2
  84. package/distrib/docs/symbols/JXG.Line.html +2 -2
  85. package/distrib/docs/symbols/JXG.Line3D.html +2 -2
  86. package/distrib/docs/symbols/JXG.Math.BoxQuadtree.html +2 -2
  87. package/distrib/docs/symbols/JXG.Math.Clip.html +2 -2
  88. package/distrib/docs/symbols/JXG.Math.Extrapolate.html +2 -2
  89. package/distrib/docs/symbols/JXG.Math.Geometry.html +2 -2
  90. package/distrib/docs/symbols/JXG.Math.ImplicitPlot.html +2 -2
  91. package/distrib/docs/symbols/JXG.Math.IntervalArithmetic.html +2 -2
  92. package/distrib/docs/symbols/JXG.Math.Metapost.html +2 -2
  93. package/distrib/docs/symbols/JXG.Math.Nlp.html +2 -2
  94. package/distrib/docs/symbols/JXG.Math.Numerics.html +2 -2
  95. package/distrib/docs/symbols/JXG.Math.Plot.html +2 -2
  96. package/distrib/docs/symbols/JXG.Math.Poly.Monomial.html +2 -2
  97. package/distrib/docs/symbols/JXG.Math.Poly.Polynomial.html +2 -2
  98. package/distrib/docs/symbols/JXG.Math.Poly.Ring.html +2 -2
  99. package/distrib/docs/symbols/JXG.Math.Poly.html +2 -2
  100. package/distrib/docs/symbols/JXG.Math.ProbFuncs.html +2 -2
  101. package/distrib/docs/symbols/JXG.Math.Quadtree.html +2 -2
  102. package/distrib/docs/symbols/JXG.Math.Statistics.html +2 -2
  103. package/distrib/docs/symbols/JXG.Math.Tiling.html +2 -2
  104. package/distrib/docs/symbols/JXG.Math.html +2 -2
  105. package/distrib/docs/symbols/JXG.NoRenderer.html +2 -2
  106. package/distrib/docs/symbols/JXG.Options.html +2 -2
  107. package/distrib/docs/symbols/JXG.Parse3D.html +2 -2
  108. package/distrib/docs/symbols/JXG.Plane3D.html +2 -2
  109. package/distrib/docs/symbols/JXG.Point.html +2 -2
  110. package/distrib/docs/symbols/JXG.Point3D.html +2 -2
  111. package/distrib/docs/symbols/JXG.Polygon.html +2 -2
  112. package/distrib/docs/symbols/JXG.Polygon3D.html +2 -2
  113. package/distrib/docs/symbols/JXG.Polyhedron3D.html +2 -2
  114. package/distrib/docs/symbols/JXG.PrefixParser.html +2 -2
  115. package/distrib/docs/symbols/JXG.SVGRenderer.html +2 -2
  116. package/distrib/docs/symbols/JXG.Sphere3D.html +2 -2
  117. package/distrib/docs/symbols/JXG.Surface3D.html +2 -2
  118. package/distrib/docs/symbols/JXG.Text.html +2 -2
  119. package/distrib/docs/symbols/JXG.Text3D.html +2 -2
  120. package/distrib/docs/symbols/JXG.Ticks.html +2 -2
  121. package/distrib/docs/symbols/JXG.Transformation.html +2 -2
  122. package/distrib/docs/symbols/JXG.Turtle.html +2 -2
  123. package/distrib/docs/symbols/JXG.Util.Base64.html +2 -2
  124. package/distrib/docs/symbols/JXG.Util.UTF8.html +2 -2
  125. package/distrib/docs/symbols/JXG.Util.Unzip.html +2 -2
  126. package/distrib/docs/symbols/JXG.Util.html +2 -2
  127. package/distrib/docs/symbols/JXG.VMLRenderer.html +2 -2
  128. package/distrib/docs/symbols/JXG.View3D.html +2 -2
  129. package/distrib/docs/symbols/JXG.XML.html +2 -2
  130. package/distrib/docs/symbols/JXG.html +2 -2
  131. package/distrib/docs/symbols/Label.html +2 -2
  132. package/distrib/docs/symbols/Legend.html +2 -2
  133. package/distrib/docs/symbols/Line.html +2 -2
  134. package/distrib/docs/symbols/Line3D.html +2 -2
  135. package/distrib/docs/symbols/MajorArc.html +2 -2
  136. package/distrib/docs/symbols/MajorSector.html +2 -2
  137. package/distrib/docs/symbols/Measurement.html +2 -2
  138. package/distrib/docs/symbols/Mesh3D.html +2 -2
  139. package/distrib/docs/symbols/Metapostspline.html +2 -2
  140. package/distrib/docs/symbols/Midpoint.html +2 -2
  141. package/distrib/docs/symbols/MinorArc.html +2 -2
  142. package/distrib/docs/symbols/MinorSector.html +2 -2
  143. package/distrib/docs/symbols/MirrorElement.html +2 -2
  144. package/distrib/docs/symbols/MirrorPoint.html +2 -2
  145. package/distrib/docs/symbols/NonReflexAngle.html +2 -2
  146. package/distrib/docs/symbols/Normal.html +2 -2
  147. package/distrib/docs/symbols/Orthogonalprojection.html +2 -2
  148. package/distrib/docs/symbols/OtherIntersection.html +2 -2
  149. package/distrib/docs/symbols/Parabola.html +2 -2
  150. package/distrib/docs/symbols/Parallel.html +2 -2
  151. package/distrib/docs/symbols/Parallelogram.html +2 -2
  152. package/distrib/docs/symbols/Parallelpoint.html +2 -2
  153. package/distrib/docs/symbols/ParametricSurface3D.html +2 -2
  154. package/distrib/docs/symbols/Perpendicular.html +2 -2
  155. package/distrib/docs/symbols/PerpendicularPoint.html +2 -2
  156. package/distrib/docs/symbols/PerpendicularSegment.html +2 -2
  157. package/distrib/docs/symbols/Plane3D.html +2 -2
  158. package/distrib/docs/symbols/Point.html +2 -2
  159. package/distrib/docs/symbols/Point3D.html +2 -2
  160. package/distrib/docs/symbols/PolarLine.html +2 -2
  161. package/distrib/docs/symbols/PolePoint.html +2 -2
  162. package/distrib/docs/symbols/Polygon.html +2 -2
  163. package/distrib/docs/symbols/Polygon3D.html +2 -2
  164. package/distrib/docs/symbols/PolygonalChain.html +2 -2
  165. package/distrib/docs/symbols/Polyhedron3D.html +2 -2
  166. package/distrib/docs/symbols/RadicalAxis.html +2 -2
  167. package/distrib/docs/symbols/Reflection.html +2 -2
  168. package/distrib/docs/symbols/ReflexAngle.html +2 -2
  169. package/distrib/docs/symbols/RegularPolygon.html +2 -2
  170. package/distrib/docs/symbols/Riemannsum.html +2 -2
  171. package/distrib/docs/symbols/Sector.html +2 -2
  172. package/distrib/docs/symbols/Segment.html +2 -2
  173. package/distrib/docs/symbols/Semicircle.html +2 -2
  174. package/distrib/docs/symbols/SketchCurve.html +2 -2
  175. package/distrib/docs/symbols/Slider.html +2 -2
  176. package/distrib/docs/symbols/Slopefield.html +2 -2
  177. package/distrib/docs/symbols/Slopetriangle.html +2 -2
  178. package/distrib/docs/symbols/Smartlabel.html +2 -2
  179. package/distrib/docs/symbols/Sphere3D.html +2 -2
  180. package/distrib/docs/symbols/Spline.html +2 -2
  181. package/distrib/docs/symbols/Stepfunction.html +2 -2
  182. package/distrib/docs/symbols/Tangent.html +2 -2
  183. package/distrib/docs/symbols/TangentTo.html +2 -2
  184. package/distrib/docs/symbols/Tapemeasure.html +2 -2
  185. package/distrib/docs/symbols/Text.html +2 -2
  186. package/distrib/docs/symbols/Text3D.html +2 -2
  187. package/distrib/docs/symbols/Ticks.html +2 -2
  188. package/distrib/docs/symbols/Ticks3D.html +2 -2
  189. package/distrib/docs/symbols/Tracecurve.html +2 -2
  190. package/distrib/docs/symbols/Transformation.html +2 -2
  191. package/distrib/docs/symbols/Transformation3D.html +2 -2
  192. package/distrib/docs/symbols/Turtle.html +2 -2
  193. package/distrib/docs/symbols/Vectorfield.html +2 -2
  194. package/distrib/docs/symbols/Vectorfield3D.html +2 -2
  195. package/distrib/docs/symbols/View3D.html +2 -2
  196. package/distrib/docs/symbols/_global_.html +2 -2
  197. package/distrib/docs/symbols/src/src_base_constants.js.html +1 -1
  198. package/distrib/docs/symbols/src/src_base_polygon.js.html +1463 -1462
  199. package/distrib/docs/symbols/src/src_jsxgraph.js.html +796 -785
  200. package/distrib/docs/symbols/src/src_parser_jessiecode.js.html +2474 -2216
  201. package/distrib/docs/symbols/src/src_utils_type.js.html +586 -583
  202. package/distrib/geogebra.min.js +1 -1
  203. package/distrib/geonext.min.js +1 -1
  204. package/distrib/index.d.ts +22 -0
  205. package/distrib/intergeo.min.js +1 -1
  206. package/distrib/jsxgraph.css +1 -1
  207. package/distrib/jsxgraphcore.js +2 -2
  208. package/distrib/jsxgraphcore.mjs +2 -2
  209. package/distrib/jsxgraphcore.mjs.map +1 -1
  210. package/distrib/jsxgraphsrc.js +576 -299
  211. package/distrib/jsxgraphsrc.mjs +561 -297
  212. package/distrib/jsxgraphsrc.mjs.map +1 -1
  213. package/package.json +2 -1
  214. package/src/base/constants.js +1 -1
  215. package/src/base/polygon.js +6 -5
  216. package/src/index.d.ts +22 -0
  217. package/src/jsxgraph.js +12 -1
  218. package/src/parser/jessiecode.js +521 -263
  219. package/src/unused/server/fft.py +6 -0
  220. package/src/utils/type.js +4 -1
@@ -1499,601 +1499,604 @@
1499
1499
  <span class='line'>1492</span>
1500
1500
  <span class='line'>1493</span> </span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments.length</span><span class="PUNC">;</span><span class="WHIT">
1501
1501
  <span class='line'>1494</span> </span><span class="WHIT"> </span><span class="COMM">// Old code: if (len &lt; 3 || primitives[s]) {</span><span class="WHIT">
1502
- <span class='line'>1495</span> </span><span class="WHIT"> </span><span class="COMM">// If len > 3, the element is certainly not a primitive object,</span><span class="WHIT">
1503
- <span class='line'>1496</span> </span><span class="WHIT"> </span><span class="COMM">// e.g. copyAttributes(attributes, JXG.Options, 'line', 'point1').</span><span class="WHIT">
1504
- <span class='line'>1497</span> </span><span class="WHIT"> </span><span class="COMM">// That is, a later create('point', ...) will be the primitive call.</span><span class="WHIT">
1505
- <span class='line'>1498</span> </span><span class="WHIT"> </span><span class="COMM">// This will not yet cover all cases of inheritance.</span><span class="WHIT">
1506
- <span class='line'>1499</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">primitives</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1507
- <span class='line'>1500</span> </span><span class="WHIT"> </span><span class="COMM">// Default options from Options.elements</span><span class="WHIT">
1508
- <span class='line'>1501</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">options.elements</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1509
- <span class='line'>1502</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1510
- <span class='line'>1503</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1511
- <span class='line'>1504</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1512
- <span class='line'>1505</span>
1513
- <span class='line'>1506</span> </span><span class="WHIT"> </span><span class="COMM">// Only the layer of the main element is set.</span><span class="WHIT">
1514
- <span class='line'>1507</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">options.layer</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1515
- <span class='line'>1508</span> </span><span class="WHIT"> </span><span class="NAME">a.layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.layer</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1516
- <span class='line'>1509</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1517
- <span class='line'>1510</span>
1518
- <span class='line'>1511</span> </span><span class="WHIT"> </span><span class="COMM">// Default options from the specific element like 'line' in</span><span class="WHIT">
1519
- <span class='line'>1512</span> </span><span class="WHIT"> </span><span class="COMM">// copyAttribute(attributes, board.options, 'line')</span><span class="WHIT">
1520
- <span class='line'>1513</span> </span><span class="WHIT"> </span><span class="COMM">// but also like in</span><span class="WHIT">
1521
- <span class='line'>1514</span> </span><span class="WHIT"> </span><span class="COMM">// Type.copyAttributes(attributes, board.options, 'view3d', 'az', 'slider');</span><span class="WHIT">
1522
- <span class='line'>1515</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">;</span><span class="WHIT">
1523
- <span class='line'>1516</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1524
- <span class='line'>1517</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1525
- <span class='line'>1518</span> </span><span class="WHIT"> </span><span class="NAME">arg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1526
- <span class='line'>1519</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1527
- <span class='line'>1520</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1528
- <span class='line'>1521</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1529
- <span class='line'>1522</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1530
- <span class='line'>1523</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1531
- <span class='line'>1524</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1532
- <span class='line'>1525</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1533
- <span class='line'>1526</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isAvail</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1534
- <span class='line'>1527</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1502
+ <span class='line'>1495</span> </span><span class="WHIT"> </span><span class="COMM">// Challenge: climb up the inheritance chain up to</span><span class="WHIT">
1503
+ <span class='line'>1496</span> </span><span class="WHIT"> </span><span class="COMM">// primitive elements</span><span class="WHIT">
1504
+ <span class='line'>1497</span> </span><span class="WHIT"> </span><span class="COMM">// If len > 3, the element is certainly not a primitive object,</span><span class="WHIT">
1505
+ <span class='line'>1498</span> </span><span class="WHIT"> </span><span class="COMM">// e.g. copyAttributes(attributes, JXG.Options, 'line', 'point1').</span><span class="WHIT">
1506
+ <span class='line'>1499</span> </span><span class="WHIT"> </span><span class="COMM">// That is, a later create('point', ...) will be the primitive call.</span><span class="WHIT">
1507
+ <span class='line'>1500</span> </span><span class="WHIT"> </span><span class="COMM">// This will not yet cover all cases of inheritance.</span><span class="WHIT">
1508
+ <span class='line'>1501</span>
1509
+ <span class='line'>1502</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">primitives</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1510
+ <span class='line'>1503</span> </span><span class="WHIT"> </span><span class="COMM">// Jump directly to default options from Options.elements</span><span class="WHIT">
1511
+ <span class='line'>1504</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">options.elements</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1512
+ <span class='line'>1505</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1513
+ <span class='line'>1506</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1514
+ <span class='line'>1507</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1515
+ <span class='line'>1508</span>
1516
+ <span class='line'>1509</span> </span><span class="WHIT"> </span><span class="COMM">// Only the layer of the main element is set.</span><span class="WHIT">
1517
+ <span class='line'>1510</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">options.layer</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1518
+ <span class='line'>1511</span> </span><span class="WHIT"> </span><span class="NAME">a.layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.layer</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1519
+ <span class='line'>1512</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1520
+ <span class='line'>1513</span>
1521
+ <span class='line'>1514</span> </span><span class="WHIT"> </span><span class="COMM">// Default options from the specific element like 'line' in</span><span class="WHIT">
1522
+ <span class='line'>1515</span> </span><span class="WHIT"> </span><span class="COMM">// copyAttribute(attributes, board.options, 'line')</span><span class="WHIT">
1523
+ <span class='line'>1516</span> </span><span class="WHIT"> </span><span class="COMM">// but also like in</span><span class="WHIT">
1524
+ <span class='line'>1517</span> </span><span class="WHIT"> </span><span class="COMM">// Type.copyAttributes(attributes, board.options, 'view3d', 'az', 'slider');</span><span class="WHIT">
1525
+ <span class='line'>1518</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">;</span><span class="WHIT">
1526
+ <span class='line'>1519</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1527
+ <span class='line'>1520</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1528
+ <span class='line'>1521</span> </span><span class="WHIT"> </span><span class="NAME">arg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1529
+ <span class='line'>1522</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1530
+ <span class='line'>1523</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1531
+ <span class='line'>1524</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1532
+ <span class='line'>1525</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1533
+ <span class='line'>1526</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1534
+ <span class='line'>1527</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1535
1535
  <span class='line'>1528</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1536
- <span class='line'>1529</span>
1537
- <span class='line'>1530</span> </span><span class="WHIT"> </span><span class="COMM">// Merge the specific options given in the parameter 'attributes'</span><span class="WHIT">
1538
- <span class='line'>1531</span> </span><span class="WHIT"> </span><span class="COMM">// into the default options.</span><span class="WHIT">
1539
- <span class='line'>1532</span> </span><span class="WHIT"> </span><span class="COMM">// Additionally, we step into a sub-element of attribute like line.point1 -</span><span class="WHIT">
1540
- <span class='line'>1533</span> </span><span class="WHIT"> </span><span class="COMM">// in case it is supplied as in</span><span class="WHIT">
1541
- <span class='line'>1534</span> </span><span class="WHIT"> </span><span class="COMM">// copyAttribute(attributes, board.options, 'line', 'point1')</span><span class="WHIT">
1542
- <span class='line'>1535</span> </span><span class="WHIT"> </span><span class="COMM">// In this case we would merge attributes.point1 into the global line.point1 attributes.</span><span class="WHIT">
1543
- <span class='line'>1536</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">this.keysToLowerCase</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1544
- <span class='line'>1537</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1545
- <span class='line'>1538</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1546
- <span class='line'>1539</span> </span><span class="WHIT"> </span><span class="NAME">arg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1547
- <span class='line'>1540</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1548
- <span class='line'>1541</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1549
- <span class='line'>1542</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1550
- <span class='line'>1543</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1551
- <span class='line'>1544</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1552
- <span class='line'>1545</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1553
- <span class='line'>1546</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1554
- <span class='line'>1547</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isAvail</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1555
- <span class='line'>1548</span> </span><span class="WHIT"> </span><span class="NAME">this.mergeAttr</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1536
+ <span class='line'>1529</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isAvail</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1537
+ <span class='line'>1530</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1538
+ <span class='line'>1531</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1539
+ <span class='line'>1532</span>
1540
+ <span class='line'>1533</span> </span><span class="WHIT"> </span><span class="COMM">// Merge the specific options given in the parameter 'attributes'</span><span class="WHIT">
1541
+ <span class='line'>1534</span> </span><span class="WHIT"> </span><span class="COMM">// into the default options.</span><span class="WHIT">
1542
+ <span class='line'>1535</span> </span><span class="WHIT"> </span><span class="COMM">// Additionally, we step into a sub-element of attribute like line.point1 -</span><span class="WHIT">
1543
+ <span class='line'>1536</span> </span><span class="WHIT"> </span><span class="COMM">// in case it is supplied as in</span><span class="WHIT">
1544
+ <span class='line'>1537</span> </span><span class="WHIT"> </span><span class="COMM">// copyAttribute(attributes, board.options, 'line', 'point1')</span><span class="WHIT">
1545
+ <span class='line'>1538</span> </span><span class="WHIT"> </span><span class="COMM">// In this case we would merge attributes.point1 into the global line.point1 attributes.</span><span class="WHIT">
1546
+ <span class='line'>1539</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">this.keysToLowerCase</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1547
+ <span class='line'>1540</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1548
+ <span class='line'>1541</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1549
+ <span class='line'>1542</span> </span><span class="WHIT"> </span><span class="NAME">arg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1550
+ <span class='line'>1543</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1551
+ <span class='line'>1544</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1552
+ <span class='line'>1545</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1553
+ <span class='line'>1546</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1554
+ <span class='line'>1547</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1555
+ <span class='line'>1548</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1556
1556
  <span class='line'>1549</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1557
- <span class='line'>1550</span>
1558
- <span class='line'>1551</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'board'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1559
- <span class='line'>1552</span> </span><span class="WHIT"> </span><span class="COMM">// For board attributes we are done now.</span><span class="WHIT">
1560
- <span class='line'>1553</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
1561
- <span class='line'>1554</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1562
- <span class='line'>1555</span>
1563
- <span class='line'>1556</span> </span><span class="WHIT"> </span><span class="COMM">// Special treatment of labels</span><span class="WHIT">
1564
- <span class='line'>1557</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">;</span><span class="WHIT">
1565
- <span class='line'>1558</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1566
- <span class='line'>1559</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1567
- <span class='line'>1560</span> </span><span class="WHIT"> </span><span class="NAME">arg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1568
- <span class='line'>1561</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1569
- <span class='line'>1562</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1570
- <span class='line'>1563</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1571
- <span class='line'>1564</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1572
- <span class='line'>1565</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1573
- <span class='line'>1566</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1574
- <span class='line'>1567</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1575
- <span class='line'>1568</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o.label</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1576
- <span class='line'>1569</span> </span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">o.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1557
+ <span class='line'>1550</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isAvail</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1558
+ <span class='line'>1551</span> </span><span class="WHIT"> </span><span class="NAME">this.mergeAttr</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1559
+ <span class='line'>1552</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1560
+ <span class='line'>1553</span>
1561
+ <span class='line'>1554</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'board'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1562
+ <span class='line'>1555</span> </span><span class="WHIT"> </span><span class="COMM">// For board attributes we are done now.</span><span class="WHIT">
1563
+ <span class='line'>1556</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
1564
+ <span class='line'>1557</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1565
+ <span class='line'>1558</span>
1566
+ <span class='line'>1559</span> </span><span class="WHIT"> </span><span class="COMM">// Special treatment of labels</span><span class="WHIT">
1567
+ <span class='line'>1560</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">;</span><span class="WHIT">
1568
+ <span class='line'>1561</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1569
+ <span class='line'>1562</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1570
+ <span class='line'>1563</span> </span><span class="WHIT"> </span><span class="NAME">arg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1571
+ <span class='line'>1564</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1572
+ <span class='line'>1565</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">arg</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1573
+ <span class='line'>1566</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1574
+ <span class='line'>1567</span> </span><span class="WHIT"> </span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1575
+ <span class='line'>1568</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1576
+ <span class='line'>1569</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1577
1577
  <span class='line'>1570</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1578
- <span class='line'>1571</span> </span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">options.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1579
- <span class='line'>1572</span>
1580
- <span class='line'>1573</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
1581
- <span class='line'>1574</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1578
+ <span class='line'>1571</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isAvail</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">o.label</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1579
+ <span class='line'>1572</span> </span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">o.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1580
+ <span class='line'>1573</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1581
+ <span class='line'>1574</span> </span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.deepCopy</span><span class="PUNC">(</span><span class="NAME">options.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a.label</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1582
1582
  <span class='line'>1575</span>
1583
- <span class='line'>1576</span> </span><span class="WHIT"> </span><span class="COMM">/**
1584
- <span class='line'>1577</span> * Copy all prototype methods from object "superObject" to object
1585
- <span class='line'>1578</span> * "subObject". The constructor of superObject will be available
1586
- <span class='line'>1579</span> * in subObject as subObject.constructor[constructorName].
1587
- <span class='line'>1580</span> * @param {Object} subObject A JavaScript object which receives new methods.
1588
- <span class='line'>1581</span> * @param {Object} superObject A JavaScript object which lends its prototype methods to subObject
1589
- <span class='line'>1582</span> * @param {String} constructorName Under this name the constructor of superObj will be available
1590
- <span class='line'>1583</span> * in subObject.
1591
- <span class='line'>1584</span> * @private
1592
- <span class='line'>1585</span> */</span><span class="WHIT">
1593
- <span class='line'>1586</span> </span><span class="WHIT"> </span><span class="NAME">copyPrototypeMethods</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">subObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">superObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">constructorName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1594
- <span class='line'>1587</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">;</span><span class="WHIT">
1595
- <span class='line'>1588</span>
1596
- <span class='line'>1589</span> </span><span class="WHIT"> </span><span class="NAME">subObject.prototype</span><span class="PUNC">[</span><span class="NAME">constructorName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">superObject.prototype.constructor</span><span class="PUNC">;</span><span class="WHIT">
1597
- <span class='line'>1590</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">superObject.prototype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1598
- <span class='line'>1591</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">superObject.prototype.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1599
- <span class='line'>1592</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'methodMap'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1600
- <span class='line'>1593</span> </span><span class="WHIT"> </span><span class="NAME">JXG.copyMethodMap</span><span class="PUNC">(</span><span class="NAME">subObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">superObject.prototype.methodMap</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1601
- <span class='line'>1594</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1602
- <span class='line'>1595</span> </span><span class="WHIT"> </span><span class="NAME">subObject.prototype</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">superObject.prototype</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1603
- <span class='line'>1596</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1604
- <span class='line'>1597</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1605
- <span class='line'>1598</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1606
- <span class='line'>1599</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1607
- <span class='line'>1600</span>
1608
- <span class='line'>1601</span> </span><span class="WHIT"> </span><span class="COMM">/**
1609
- <span class='line'>1602</span> * Create a copy of methodMap in "objectClass.prototype" and optional extend it.
1610
- <span class='line'>1603</span> * If objectClass.prototype.methodMap does not exist, it will be initialized.
1611
- <span class='line'>1604</span> *
1612
- <span class='line'>1605</span> * The methodMap determines which methods can be called from within JessieCode and under which name it
1613
- <span class='line'>1606</span> * can be used. The map is saved in an object, the name of a property is the name of the method used in JessieCode,
1614
- <span class='line'>1607</span> * the value of a property is the name of the method in JavaScript.
1615
- <span class='line'>1608</span> *
1616
- <span class='line'>1609</span> * @param {Object} objectClass
1617
- <span class='line'>1610</span> * @param {Object} [extension]
1618
- <span class='line'>1611</span> * @private
1619
- <span class='line'>1612</span> */</span><span class="WHIT">
1620
- <span class='line'>1613</span> </span><span class="WHIT"> </span><span class="NAME">copyMethodMap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">objectClass</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1621
- <span class='line'>1614</span> </span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1622
- <span class='line'>1615</span>
1623
- <span class='line'>1616</span> </span><span class="WHIT"> </span><span class="NAME">objectClass.prototype.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">objectClass.prototype.methodMap</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1624
- <span class='line'>1617</span> </span><span class="WHIT"> </span><span class="NAME">objectClass.prototype.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.deepCopy</span><span class="PUNC">(</span><span class="NAME">objectClass.prototype.methodMap</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1625
- <span class='line'>1618</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1626
- <span class='line'>1619</span>
1627
- <span class='line'>1620</span> </span><span class="WHIT"> </span><span class="COMM">/**
1628
- <span class='line'>1621</span> * Copy methodMap of "object.prototype" to objects instance and optional extend it.
1629
- <span class='line'>1622</span> * If extension is of type String and extensionValue is defined, a key-value-pair is added.
1630
- <span class='line'>1623</span> *
1631
- <span class='line'>1624</span> * The methodMap determines which methods can be called from within JessieCode and under which name it
1632
- <span class='line'>1625</span> * can be used. The map is saved in an object, the name of a property is the name of the method used in JessieCode,
1633
- <span class='line'>1626</span> * the value of a property is the name of the method in JavaScript.
1634
- <span class='line'>1627</span> *
1635
- <span class='line'>1628</span> * @param {Object} object
1636
- <span class='line'>1629</span> * @param {Object|String} [extension]
1637
- <span class='line'>1630</span> * @param {String} [extensionValue]
1638
- <span class='line'>1631</span> * @private
1639
- <span class='line'>1632</span> */</span><span class="WHIT">
1640
- <span class='line'>1633</span> </span><span class="WHIT"> </span><span class="NAME">extendInstanceMethodMap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">object</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extensionValue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1641
- <span class='line'>1634</span> </span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1642
- <span class='line'>1635</span>
1643
- <span class='line'>1636</span> </span><span class="WHIT"> </span><span class="COMM">// Create own copy only if instance still uses prototype version</span><span class="WHIT">
1644
- <span class='line'>1637</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">object.hasOwnProperty</span><span class="PUNC">(</span><span class="STRN">"methodMap"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1645
- <span class='line'>1638</span> </span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.assign</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1646
- <span class='line'>1639</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1647
- <span class='line'>1640</span>
1648
- <span class='line'>1641</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isObject</span><span class="PUNC">(</span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1649
- <span class='line'>1642</span> </span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.deepCopy</span><span class="PUNC">(</span><span class="NAME">object.methodMap</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1650
- <span class='line'>1643</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isString</span><span class="PUNC">(</span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">extensionValue</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1651
- <span class='line'>1644</span> </span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="PUNC">[</span><span class="NAME">extension</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extensionValue</span><span class="PUNC">;</span><span class="WHIT">
1652
- <span class='line'>1645</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1653
- <span class='line'>1646</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1654
- <span class='line'>1647</span>
1655
- <span class='line'>1648</span> </span><span class="WHIT"> </span><span class="COMM">/**
1656
- <span class='line'>1649</span> * Create a stripped down version of a JSXGraph element for cloning to the background.
1657
- <span class='line'>1650</span> * Used in {JXG.GeometryElement#cloneToBackground} for creating traces.
1658
- <span class='line'>1651</span> *
1659
- <span class='line'>1652</span> * @param {JXG.GeometryElement} el Element to be cloned
1660
- <span class='line'>1653</span> * @returns Object Cloned element
1661
- <span class='line'>1654</span> * @private
1662
- <span class='line'>1655</span> */</span><span class="WHIT">
1663
- <span class='line'>1656</span> </span><span class="WHIT"> </span><span class="NAME">getCloneObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1664
- <span class='line'>1657</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT">
1665
- <span class='line'>1658</span> </span><span class="WHIT"> </span><span class="NAME">copy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1666
- <span class='line'>1659</span>
1667
- <span class='line'>1660</span> </span><span class="WHIT"> </span><span class="NAME">copy.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"T"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">el.numTraces</span><span class="PUNC">;</span><span class="WHIT">
1668
- <span class='line'>1661</span> </span><span class="WHIT"> </span><span class="NAME">el.numTraces</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
1583
+ <span class='line'>1576</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
1584
+ <span class='line'>1577</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1585
+ <span class='line'>1578</span>
1586
+ <span class='line'>1579</span> </span><span class="WHIT"> </span><span class="COMM">/**
1587
+ <span class='line'>1580</span> * Copy all prototype methods from object "superObject" to object
1588
+ <span class='line'>1581</span> * "subObject". The constructor of superObject will be available
1589
+ <span class='line'>1582</span> * in subObject as subObject.constructor[constructorName].
1590
+ <span class='line'>1583</span> * @param {Object} subObject A JavaScript object which receives new methods.
1591
+ <span class='line'>1584</span> * @param {Object} superObject A JavaScript object which lends its prototype methods to subObject
1592
+ <span class='line'>1585</span> * @param {String} constructorName Under this name the constructor of superObj will be available
1593
+ <span class='line'>1586</span> * in subObject.
1594
+ <span class='line'>1587</span> * @private
1595
+ <span class='line'>1588</span> */</span><span class="WHIT">
1596
+ <span class='line'>1589</span> </span><span class="WHIT"> </span><span class="NAME">copyPrototypeMethods</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">subObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">superObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">constructorName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1597
+ <span class='line'>1590</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">;</span><span class="WHIT">
1598
+ <span class='line'>1591</span>
1599
+ <span class='line'>1592</span> </span><span class="WHIT"> </span><span class="NAME">subObject.prototype</span><span class="PUNC">[</span><span class="NAME">constructorName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">superObject.prototype.constructor</span><span class="PUNC">;</span><span class="WHIT">
1600
+ <span class='line'>1593</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">superObject.prototype</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1601
+ <span class='line'>1594</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">superObject.prototype.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1602
+ <span class='line'>1595</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'methodMap'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1603
+ <span class='line'>1596</span> </span><span class="WHIT"> </span><span class="NAME">JXG.copyMethodMap</span><span class="PUNC">(</span><span class="NAME">subObject</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">superObject.prototype.methodMap</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1604
+ <span class='line'>1597</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1605
+ <span class='line'>1598</span> </span><span class="WHIT"> </span><span class="NAME">subObject.prototype</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">superObject.prototype</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1606
+ <span class='line'>1599</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1607
+ <span class='line'>1600</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1608
+ <span class='line'>1601</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1609
+ <span class='line'>1602</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1610
+ <span class='line'>1603</span>
1611
+ <span class='line'>1604</span> </span><span class="WHIT"> </span><span class="COMM">/**
1612
+ <span class='line'>1605</span> * Create a copy of methodMap in "objectClass.prototype" and optional extend it.
1613
+ <span class='line'>1606</span> * If objectClass.prototype.methodMap does not exist, it will be initialized.
1614
+ <span class='line'>1607</span> *
1615
+ <span class='line'>1608</span> * The methodMap determines which methods can be called from within JessieCode and under which name it
1616
+ <span class='line'>1609</span> * can be used. The map is saved in an object, the name of a property is the name of the method used in JessieCode,
1617
+ <span class='line'>1610</span> * the value of a property is the name of the method in JavaScript.
1618
+ <span class='line'>1611</span> *
1619
+ <span class='line'>1612</span> * @param {Object} objectClass
1620
+ <span class='line'>1613</span> * @param {Object} [extension]
1621
+ <span class='line'>1614</span> * @private
1622
+ <span class='line'>1615</span> */</span><span class="WHIT">
1623
+ <span class='line'>1616</span> </span><span class="WHIT"> </span><span class="NAME">copyMethodMap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">objectClass</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1624
+ <span class='line'>1617</span> </span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1625
+ <span class='line'>1618</span>
1626
+ <span class='line'>1619</span> </span><span class="WHIT"> </span><span class="NAME">objectClass.prototype.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">objectClass.prototype.methodMap</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1627
+ <span class='line'>1620</span> </span><span class="WHIT"> </span><span class="NAME">objectClass.prototype.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.deepCopy</span><span class="PUNC">(</span><span class="NAME">objectClass.prototype.methodMap</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1628
+ <span class='line'>1621</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1629
+ <span class='line'>1622</span>
1630
+ <span class='line'>1623</span> </span><span class="WHIT"> </span><span class="COMM">/**
1631
+ <span class='line'>1624</span> * Copy methodMap of "object.prototype" to objects instance and optional extend it.
1632
+ <span class='line'>1625</span> * If extension is of type String and extensionValue is defined, a key-value-pair is added.
1633
+ <span class='line'>1626</span> *
1634
+ <span class='line'>1627</span> * The methodMap determines which methods can be called from within JessieCode and under which name it
1635
+ <span class='line'>1628</span> * can be used. The map is saved in an object, the name of a property is the name of the method used in JessieCode,
1636
+ <span class='line'>1629</span> * the value of a property is the name of the method in JavaScript.
1637
+ <span class='line'>1630</span> *
1638
+ <span class='line'>1631</span> * @param {Object} object
1639
+ <span class='line'>1632</span> * @param {Object|String} [extension]
1640
+ <span class='line'>1633</span> * @param {String} [extensionValue]
1641
+ <span class='line'>1634</span> * @private
1642
+ <span class='line'>1635</span> */</span><span class="WHIT">
1643
+ <span class='line'>1636</span> </span><span class="WHIT"> </span><span class="NAME">extendInstanceMethodMap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">object</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extensionValue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1644
+ <span class='line'>1637</span> </span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1645
+ <span class='line'>1638</span>
1646
+ <span class='line'>1639</span> </span><span class="WHIT"> </span><span class="COMM">// Create own copy only if instance still uses prototype version</span><span class="WHIT">
1647
+ <span class='line'>1640</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">object.hasOwnProperty</span><span class="PUNC">(</span><span class="STRN">"methodMap"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1648
+ <span class='line'>1641</span> </span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.assign</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1649
+ <span class='line'>1642</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1650
+ <span class='line'>1643</span>
1651
+ <span class='line'>1644</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isObject</span><span class="PUNC">(</span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1652
+ <span class='line'>1645</span> </span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.deepCopy</span><span class="PUNC">(</span><span class="NAME">object.methodMap</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1653
+ <span class='line'>1646</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isString</span><span class="PUNC">(</span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">extensionValue</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1654
+ <span class='line'>1647</span> </span><span class="WHIT"> </span><span class="NAME">object.methodMap</span><span class="PUNC">[</span><span class="NAME">extension</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extensionValue</span><span class="PUNC">;</span><span class="WHIT">
1655
+ <span class='line'>1648</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1656
+ <span class='line'>1649</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1657
+ <span class='line'>1650</span>
1658
+ <span class='line'>1651</span> </span><span class="WHIT"> </span><span class="COMM">/**
1659
+ <span class='line'>1652</span> * Create a stripped down version of a JSXGraph element for cloning to the background.
1660
+ <span class='line'>1653</span> * Used in {JXG.GeometryElement#cloneToBackground} for creating traces.
1661
+ <span class='line'>1654</span> *
1662
+ <span class='line'>1655</span> * @param {JXG.GeometryElement} el Element to be cloned
1663
+ <span class='line'>1656</span> * @returns Object Cloned element
1664
+ <span class='line'>1657</span> * @private
1665
+ <span class='line'>1658</span> */</span><span class="WHIT">
1666
+ <span class='line'>1659</span> </span><span class="WHIT"> </span><span class="NAME">getCloneObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1667
+ <span class='line'>1660</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT">
1668
+ <span class='line'>1661</span> </span><span class="WHIT"> </span><span class="NAME">copy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1669
1669
  <span class='line'>1662</span>
1670
- <span class='line'>1663</span> </span><span class="WHIT"> </span><span class="NAME">copy.coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.coords</span><span class="PUNC">;</span><span class="WHIT">
1671
- <span class='line'>1664</span> </span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.deepCopy</span><span class="PUNC">(</span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.traceattributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1672
- <span class='line'>1665</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1673
- <span class='line'>1666</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1674
- <span class='line'>1667</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1675
- <span class='line'>1668</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1676
- <span class='line'>1669</span> </span><span class="WHIT"> </span><span class="NAME">key.indexOf</span><span class="PUNC">(</span><span class="STRN">'aria'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1677
- <span class='line'>1670</span> </span><span class="WHIT"> </span><span class="NAME">key.indexOf</span><span class="PUNC">(</span><span class="STRN">'highlight'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1678
- <span class='line'>1671</span> </span><span class="WHIT"> </span><span class="NAME">key.indexOf</span><span class="PUNC">(</span><span class="STRN">'attractor'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1679
- <span class='line'>1672</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'label'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1680
- <span class='line'>1673</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'needsregularupdate'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1681
- <span class='line'>1674</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'infoboxdigits'</span><span class="WHIT">
1682
- <span class='line'>1675</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1683
- <span class='line'>1676</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.eval</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1684
- <span class='line'>1677</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1685
- <span class='line'>1678</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1686
- <span class='line'>1679</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1687
- <span class='line'>1680</span> </span><span class="WHIT"> </span><span class="NAME">copy.evalVisProp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1688
- <span class='line'>1681</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">copy.visProp</span><span class="PUNC">[</span><span class="NAME">val</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1689
- <span class='line'>1682</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1690
- <span class='line'>1683</span> </span><span class="WHIT"> </span><span class="NAME">copy.eval</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1691
- <span class='line'>1684</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1670
+ <span class='line'>1663</span> </span><span class="WHIT"> </span><span class="NAME">copy.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.id</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"T"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">el.numTraces</span><span class="PUNC">;</span><span class="WHIT">
1671
+ <span class='line'>1664</span> </span><span class="WHIT"> </span><span class="NAME">el.numTraces</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
1672
+ <span class='line'>1665</span>
1673
+ <span class='line'>1666</span> </span><span class="WHIT"> </span><span class="NAME">copy.coords</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.coords</span><span class="PUNC">;</span><span class="WHIT">
1674
+ <span class='line'>1667</span> </span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.deepCopy</span><span class="PUNC">(</span><span class="NAME">el.visProp</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el.visProp.traceattributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1675
+ <span class='line'>1668</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1676
+ <span class='line'>1669</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1677
+ <span class='line'>1670</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1678
+ <span class='line'>1671</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
1679
+ <span class='line'>1672</span> </span><span class="WHIT"> </span><span class="NAME">key.indexOf</span><span class="PUNC">(</span><span class="STRN">'aria'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1680
+ <span class='line'>1673</span> </span><span class="WHIT"> </span><span class="NAME">key.indexOf</span><span class="PUNC">(</span><span class="STRN">'highlight'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1681
+ <span class='line'>1674</span> </span><span class="WHIT"> </span><span class="NAME">key.indexOf</span><span class="PUNC">(</span><span class="STRN">'attractor'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1682
+ <span class='line'>1675</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'label'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1683
+ <span class='line'>1676</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'needsregularupdate'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
1684
+ <span class='line'>1677</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'infoboxdigits'</span><span class="WHIT">
1685
+ <span class='line'>1678</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1686
+ <span class='line'>1679</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.eval</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1687
+ <span class='line'>1680</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1688
+ <span class='line'>1681</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1689
+ <span class='line'>1682</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1690
+ <span class='line'>1683</span> </span><span class="WHIT"> </span><span class="NAME">copy.evalVisProp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1691
+ <span class='line'>1684</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">copy.visProp</span><span class="PUNC">[</span><span class="NAME">val</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1692
1692
  <span class='line'>1685</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1693
- <span class='line'>1686</span>
1694
- <span class='line'>1687</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp.layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.options.layer.trace</span><span class="PUNC">;</span><span class="WHIT">
1695
- <span class='line'>1688</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp.tabindex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1696
- <span class='line'>1689</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp.highlight</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1697
- <span class='line'>1690</span> </span><span class="WHIT"> </span><span class="NAME">copy.board</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board</span><span class="PUNC">;</span><span class="WHIT">
1698
- <span class='line'>1691</span> </span><span class="WHIT"> </span><span class="NAME">copy.elementClass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="PUNC">;</span><span class="WHIT">
1699
- <span class='line'>1692</span>
1700
- <span class='line'>1693</span> </span><span class="WHIT"> </span><span class="NAME">this.clearVisPropOld</span><span class="PUNC">(</span><span class="NAME">copy</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1701
- <span class='line'>1694</span> </span><span class="WHIT"> </span><span class="NAME">copy.visPropCalc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1702
- <span class='line'>1695</span> </span><span class="WHIT"> </span><span class="NAME">visible</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">el.evalVisProp</span><span class="PUNC">(</span><span class="STRN">'visible'</span><span class="PUNC">)</span><span class="WHIT">
1703
- <span class='line'>1696</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1704
- <span class='line'>1697</span>
1705
- <span class='line'>1698</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">copy</span><span class="PUNC">;</span><span class="WHIT">
1706
- <span class='line'>1699</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1693
+ <span class='line'>1686</span> </span><span class="WHIT"> </span><span class="NAME">copy.eval</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1694
+ <span class='line'>1687</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1695
+ <span class='line'>1688</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1696
+ <span class='line'>1689</span>
1697
+ <span class='line'>1690</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp.layer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board.options.layer.trace</span><span class="PUNC">;</span><span class="WHIT">
1698
+ <span class='line'>1691</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp.tabindex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
1699
+ <span class='line'>1692</span> </span><span class="WHIT"> </span><span class="NAME">copy.visProp.highlight</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1700
+ <span class='line'>1693</span> </span><span class="WHIT"> </span><span class="NAME">copy.board</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.board</span><span class="PUNC">;</span><span class="WHIT">
1701
+ <span class='line'>1694</span> </span><span class="WHIT"> </span><span class="NAME">copy.elementClass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.elementClass</span><span class="PUNC">;</span><span class="WHIT">
1702
+ <span class='line'>1695</span>
1703
+ <span class='line'>1696</span> </span><span class="WHIT"> </span><span class="NAME">this.clearVisPropOld</span><span class="PUNC">(</span><span class="NAME">copy</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1704
+ <span class='line'>1697</span> </span><span class="WHIT"> </span><span class="NAME">copy.visPropCalc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1705
+ <span class='line'>1698</span> </span><span class="WHIT"> </span><span class="NAME">visible</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">el.evalVisProp</span><span class="PUNC">(</span><span class="STRN">'visible'</span><span class="PUNC">)</span><span class="WHIT">
1706
+ <span class='line'>1699</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1707
1707
  <span class='line'>1700</span>
1708
- <span class='line'>1701</span> </span><span class="WHIT"> </span><span class="COMM">/**
1709
- <span class='line'>1702</span> * Converts a JavaScript object into a JSON string.
1710
- <span class='line'>1703</span> * @param {Object} obj A JavaScript object, functions will be ignored.
1711
- <span class='line'>1704</span> * @param {Boolean} [noquote=false] No quotes around the name of a property.
1712
- <span class='line'>1705</span> * @returns {String} The given object stored in a JSON string.
1713
- <span class='line'>1706</span> * @deprecated
1714
- <span class='line'>1707</span> */</span><span class="WHIT">
1715
- <span class='line'>1708</span> </span><span class="WHIT"> </span><span class="NAME">toJSON</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1716
- <span class='line'>1709</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1717
- <span class='line'>1710</span>
1718
- <span class='line'>1711</span> </span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.def</span><span class="PUNC">(</span><span class="NAME">noquote</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1719
- <span class='line'>1712</span>
1720
- <span class='line'>1713</span> </span><span class="WHIT"> </span><span class="COMM">// check for native JSON support:</span><span class="WHIT">
1721
- <span class='line'>1714</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">JSON</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">JSON.stringify</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1722
- <span class='line'>1715</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1723
- <span class='line'>1716</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JSON.stringify</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1724
- <span class='line'>1717</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
1725
- <span class='line'>1718</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1726
- <span class='line'>1719</span> </span><span class="WHIT"> </span><span class="COMM">// if something goes wrong, e.g. if obj contains functions we won't return</span><span class="WHIT">
1727
- <span class='line'>1720</span> </span><span class="WHIT"> </span><span class="COMM">// and use our own implementation as a fallback</span><span class="WHIT">
1728
- <span class='line'>1721</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1729
- <span class='line'>1722</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1730
- <span class='line'>1723</span>
1731
- <span class='line'>1724</span> </span><span class="WHIT"> </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1732
- <span class='line'>1725</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"object"</span><span class="PUNC">:</span><span class="WHIT">
1733
- <span class='line'>1726</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1734
- <span class='line'>1727</span> </span><span class="WHIT"> </span><span class="NAME">list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1735
- <span class='line'>1728</span>
1736
- <span class='line'>1729</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isArray</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1737
- <span class='line'>1730</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">obj.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1738
- <span class='line'>1731</span> </span><span class="WHIT"> </span><span class="NAME">list.push</span><span class="PUNC">(</span><span class="NAME">JXG.toJSON</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1739
- <span class='line'>1732</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1740
- <span class='line'>1733</span>
1741
- <span class='line'>1734</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"["</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">list.join</span><span class="PUNC">(</span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"]"</span><span class="PUNC">;</span><span class="WHIT">
1742
- <span class='line'>1735</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1708
+ <span class='line'>1701</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">copy</span><span class="PUNC">;</span><span class="WHIT">
1709
+ <span class='line'>1702</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1710
+ <span class='line'>1703</span>
1711
+ <span class='line'>1704</span> </span><span class="WHIT"> </span><span class="COMM">/**
1712
+ <span class='line'>1705</span> * Converts a JavaScript object into a JSON string.
1713
+ <span class='line'>1706</span> * @param {Object} obj A JavaScript object, functions will be ignored.
1714
+ <span class='line'>1707</span> * @param {Boolean} [noquote=false] No quotes around the name of a property.
1715
+ <span class='line'>1708</span> * @returns {String} The given object stored in a JSON string.
1716
+ <span class='line'>1709</span> * @deprecated
1717
+ <span class='line'>1710</span> */</span><span class="WHIT">
1718
+ <span class='line'>1711</span> </span><span class="WHIT"> </span><span class="NAME">toJSON</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1719
+ <span class='line'>1712</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">;</span><span class="WHIT">
1720
+ <span class='line'>1713</span>
1721
+ <span class='line'>1714</span> </span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.def</span><span class="PUNC">(</span><span class="NAME">noquote</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1722
+ <span class='line'>1715</span>
1723
+ <span class='line'>1716</span> </span><span class="WHIT"> </span><span class="COMM">// check for native JSON support:</span><span class="WHIT">
1724
+ <span class='line'>1717</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">JSON</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">JSON.stringify</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1725
+ <span class='line'>1718</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1726
+ <span class='line'>1719</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JSON.stringify</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1727
+ <span class='line'>1720</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
1728
+ <span class='line'>1721</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1729
+ <span class='line'>1722</span> </span><span class="WHIT"> </span><span class="COMM">// if something goes wrong, e.g. if obj contains functions we won't return</span><span class="WHIT">
1730
+ <span class='line'>1723</span> </span><span class="WHIT"> </span><span class="COMM">// and use our own implementation as a fallback</span><span class="WHIT">
1731
+ <span class='line'>1724</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1732
+ <span class='line'>1725</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1733
+ <span class='line'>1726</span>
1734
+ <span class='line'>1727</span> </span><span class="WHIT"> </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1735
+ <span class='line'>1728</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"object"</span><span class="PUNC">:</span><span class="WHIT">
1736
+ <span class='line'>1729</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1737
+ <span class='line'>1730</span> </span><span class="WHIT"> </span><span class="NAME">list</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1738
+ <span class='line'>1731</span>
1739
+ <span class='line'>1732</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.isArray</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1740
+ <span class='line'>1733</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">obj.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1741
+ <span class='line'>1734</span> </span><span class="WHIT"> </span><span class="NAME">list.push</span><span class="PUNC">(</span><span class="NAME">JXG.toJSON</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1742
+ <span class='line'>1735</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1743
1743
  <span class='line'>1736</span>
1744
- <span class='line'>1737</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1745
- <span class='line'>1738</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">prop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1746
- <span class='line'>1739</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1747
- <span class='line'>1740</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.toJSON</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1748
- <span class='line'>1741</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1749
- <span class='line'>1742</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
1750
- <span class='line'>1743</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1751
- <span class='line'>1744</span>
1752
- <span class='line'>1745</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1753
- <span class='line'>1746</span> </span><span class="WHIT"> </span><span class="NAME">list.push</span><span class="PUNC">(</span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">":"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1754
- <span class='line'>1747</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1755
- <span class='line'>1748</span> </span><span class="WHIT"> </span><span class="NAME">list.push</span><span class="PUNC">(</span><span class="STRN">'"'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'":'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1756
- <span class='line'>1749</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1757
- <span class='line'>1750</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1758
- <span class='line'>1751</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1759
- <span class='line'>1752</span>
1760
- <span class='line'>1753</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"{"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">list.join</span><span class="PUNC">(</span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"} "</span><span class="PUNC">;</span><span class="WHIT">
1761
- <span class='line'>1754</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1762
- <span class='line'>1755</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'null'</span><span class="PUNC">;</span><span class="WHIT">
1763
- <span class='line'>1756</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"string"</span><span class="PUNC">:</span><span class="WHIT">
1764
- <span class='line'>1757</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj.replace</span><span class="PUNC">(</span><span class="REGX">/(["'])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\$1"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="PUNC">;</span><span class="WHIT">
1765
- <span class='line'>1758</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"number"</span><span class="PUNC">:</span><span class="WHIT">
1766
- <span class='line'>1759</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"boolean"</span><span class="PUNC">:</span><span class="WHIT">
1767
- <span class='line'>1760</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">obj.toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1768
- <span class='line'>1761</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1769
- <span class='line'>1762</span>
1770
- <span class='line'>1763</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">;</span><span class="WHIT">
1771
- <span class='line'>1764</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1744
+ <span class='line'>1737</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"["</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">list.join</span><span class="PUNC">(</span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"]"</span><span class="PUNC">;</span><span class="WHIT">
1745
+ <span class='line'>1738</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1746
+ <span class='line'>1739</span>
1747
+ <span class='line'>1740</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1748
+ <span class='line'>1741</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">prop</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1749
+ <span class='line'>1742</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1750
+ <span class='line'>1743</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">JXG.toJSON</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">prop</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1751
+ <span class='line'>1744</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1752
+ <span class='line'>1745</span> </span><span class="WHIT"> </span><span class="NAME">val</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
1753
+ <span class='line'>1746</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1754
+ <span class='line'>1747</span>
1755
+ <span class='line'>1748</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">noquote</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1756
+ <span class='line'>1749</span> </span><span class="WHIT"> </span><span class="NAME">list.push</span><span class="PUNC">(</span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">":"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1757
+ <span class='line'>1750</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1758
+ <span class='line'>1751</span> </span><span class="WHIT"> </span><span class="NAME">list.push</span><span class="PUNC">(</span><span class="STRN">'"'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'":'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1759
+ <span class='line'>1752</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1760
+ <span class='line'>1753</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1761
+ <span class='line'>1754</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1762
+ <span class='line'>1755</span>
1763
+ <span class='line'>1756</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"{"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">list.join</span><span class="PUNC">(</span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"} "</span><span class="PUNC">;</span><span class="WHIT">
1764
+ <span class='line'>1757</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1765
+ <span class='line'>1758</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'null'</span><span class="PUNC">;</span><span class="WHIT">
1766
+ <span class='line'>1759</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"string"</span><span class="PUNC">:</span><span class="WHIT">
1767
+ <span class='line'>1760</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj.replace</span><span class="PUNC">(</span><span class="REGX">/(["'])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\$1"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="PUNC">;</span><span class="WHIT">
1768
+ <span class='line'>1761</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"number"</span><span class="PUNC">:</span><span class="WHIT">
1769
+ <span class='line'>1762</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"boolean"</span><span class="PUNC">:</span><span class="WHIT">
1770
+ <span class='line'>1763</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">obj.toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1771
+ <span class='line'>1764</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1772
1772
  <span class='line'>1765</span>
1773
- <span class='line'>1766</span> </span><span class="WHIT"> </span><span class="COMM">/**
1774
- <span class='line'>1767</span> * Resets visPropOld.
1775
- <span class='line'>1768</span> * @param {JXG.GeometryElement} el
1776
- <span class='line'>1769</span> * @returns {GeometryElement}
1777
- <span class='line'>1770</span> */</span><span class="WHIT">
1778
- <span class='line'>1771</span> </span><span class="WHIT"> </span><span class="NAME">clearVisPropOld</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1779
- <span class='line'>1772</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1780
- <span class='line'>1773</span> </span><span class="WHIT"> </span><span class="NAME">cssclass</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1781
- <span class='line'>1774</span> </span><span class="WHIT"> </span><span class="NAME">cssdefaultstyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1782
- <span class='line'>1775</span> </span><span class="WHIT"> </span><span class="NAME">cssstyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1783
- <span class='line'>1776</span> </span><span class="WHIT"> </span><span class="NAME">fillcolor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1784
- <span class='line'>1777</span> </span><span class="WHIT"> </span><span class="NAME">fillopacity</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1785
- <span class='line'>1778</span> </span><span class="WHIT"> </span><span class="NAME">firstarrow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
1786
- <span class='line'>1779</span> </span><span class="WHIT"> </span><span class="NAME">fontsize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
1787
- <span class='line'>1780</span> </span><span class="WHIT"> </span><span class="NAME">lastarrow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
1788
- <span class='line'>1781</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">100000</span><span class="PUNC">,</span><span class="WHIT">
1789
- <span class='line'>1782</span> </span><span class="WHIT"> </span><span class="NAME">linecap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1790
- <span class='line'>1783</span> </span><span class="WHIT"> </span><span class="NAME">shadow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
1791
- <span class='line'>1784</span> </span><span class="WHIT"> </span><span class="NAME">strokecolor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1792
- <span class='line'>1785</span> </span><span class="WHIT"> </span><span class="NAME">strokeopacity</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1793
- <span class='line'>1786</span> </span><span class="WHIT"> </span><span class="NAME">strokewidth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1794
- <span class='line'>1787</span> </span><span class="WHIT"> </span><span class="NAME">tabindex</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">100000</span><span class="PUNC">,</span><span class="WHIT">
1795
- <span class='line'>1788</span> </span><span class="WHIT"> </span><span class="NAME">transitionduration</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
1796
- <span class='line'>1789</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">100000</span><span class="PUNC">,</span><span class="WHIT">
1797
- <span class='line'>1790</span> </span><span class="WHIT"> </span><span class="NAME">visible</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
1798
- <span class='line'>1791</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1799
- <span class='line'>1792</span>
1800
- <span class='line'>1793</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
1801
- <span class='line'>1794</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1773
+ <span class='line'>1766</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">;</span><span class="WHIT">
1774
+ <span class='line'>1767</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1775
+ <span class='line'>1768</span>
1776
+ <span class='line'>1769</span> </span><span class="WHIT"> </span><span class="COMM">/**
1777
+ <span class='line'>1770</span> * Resets visPropOld.
1778
+ <span class='line'>1771</span> * @param {JXG.GeometryElement} el
1779
+ <span class='line'>1772</span> * @returns {GeometryElement}
1780
+ <span class='line'>1773</span> */</span><span class="WHIT">
1781
+ <span class='line'>1774</span> </span><span class="WHIT"> </span><span class="NAME">clearVisPropOld</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1782
+ <span class='line'>1775</span> </span><span class="WHIT"> </span><span class="NAME">el.visPropOld</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1783
+ <span class='line'>1776</span> </span><span class="WHIT"> </span><span class="NAME">cssclass</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1784
+ <span class='line'>1777</span> </span><span class="WHIT"> </span><span class="NAME">cssdefaultstyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1785
+ <span class='line'>1778</span> </span><span class="WHIT"> </span><span class="NAME">cssstyle</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1786
+ <span class='line'>1779</span> </span><span class="WHIT"> </span><span class="NAME">fillcolor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1787
+ <span class='line'>1780</span> </span><span class="WHIT"> </span><span class="NAME">fillopacity</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1788
+ <span class='line'>1781</span> </span><span class="WHIT"> </span><span class="NAME">firstarrow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
1789
+ <span class='line'>1782</span> </span><span class="WHIT"> </span><span class="NAME">fontsize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
1790
+ <span class='line'>1783</span> </span><span class="WHIT"> </span><span class="NAME">lastarrow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
1791
+ <span class='line'>1784</span> </span><span class="WHIT"> </span><span class="NAME">left</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">100000</span><span class="PUNC">,</span><span class="WHIT">
1792
+ <span class='line'>1785</span> </span><span class="WHIT"> </span><span class="NAME">linecap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1793
+ <span class='line'>1786</span> </span><span class="WHIT"> </span><span class="NAME">shadow</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
1794
+ <span class='line'>1787</span> </span><span class="WHIT"> </span><span class="NAME">strokecolor</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1795
+ <span class='line'>1788</span> </span><span class="WHIT"> </span><span class="NAME">strokeopacity</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1796
+ <span class='line'>1789</span> </span><span class="WHIT"> </span><span class="NAME">strokewidth</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
1797
+ <span class='line'>1790</span> </span><span class="WHIT"> </span><span class="NAME">tabindex</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">100000</span><span class="PUNC">,</span><span class="WHIT">
1798
+ <span class='line'>1791</span> </span><span class="WHIT"> </span><span class="NAME">transitionduration</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
1799
+ <span class='line'>1792</span> </span><span class="WHIT"> </span><span class="NAME">top</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">100000</span><span class="PUNC">,</span><span class="WHIT">
1800
+ <span class='line'>1793</span> </span><span class="WHIT"> </span><span class="NAME">visible</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
1801
+ <span class='line'>1794</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1802
1802
  <span class='line'>1795</span>
1803
- <span class='line'>1796</span> </span><span class="WHIT"> </span><span class="COMM">/**
1804
- <span class='line'>1797</span> * Checks if an object contains a key, whose value equals to val.
1805
- <span class='line'>1798</span> * @param {Object} obj
1806
- <span class='line'>1799</span> * @param val
1807
- <span class='line'>1800</span> * @returns {Boolean}
1808
- <span class='line'>1801</span> */</span><span class="WHIT">
1809
- <span class='line'>1802</span> </span><span class="WHIT"> </span><span class="NAME">isInObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1810
- <span class='line'>1803</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
1811
- <span class='line'>1804</span>
1812
- <span class='line'>1805</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1813
- <span class='line'>1806</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1814
- <span class='line'>1807</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">el</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1815
- <span class='line'>1808</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1816
- <span class='line'>1809</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1817
- <span class='line'>1810</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1818
- <span class='line'>1811</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1819
- <span class='line'>1812</span>
1820
- <span class='line'>1813</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1821
- <span class='line'>1814</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1803
+ <span class='line'>1796</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
1804
+ <span class='line'>1797</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1805
+ <span class='line'>1798</span>
1806
+ <span class='line'>1799</span> </span><span class="WHIT"> </span><span class="COMM">/**
1807
+ <span class='line'>1800</span> * Checks if an object contains a key, whose value equals to val.
1808
+ <span class='line'>1801</span> * @param {Object} obj
1809
+ <span class='line'>1802</span> * @param val
1810
+ <span class='line'>1803</span> * @returns {Boolean}
1811
+ <span class='line'>1804</span> */</span><span class="WHIT">
1812
+ <span class='line'>1805</span> </span><span class="WHIT"> </span><span class="NAME">isInObject</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1813
+ <span class='line'>1806</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
1814
+ <span class='line'>1807</span>
1815
+ <span class='line'>1808</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">el</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1816
+ <span class='line'>1809</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1817
+ <span class='line'>1810</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">[</span><span class="NAME">el</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">val</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1818
+ <span class='line'>1811</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1819
+ <span class='line'>1812</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1820
+ <span class='line'>1813</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1821
+ <span class='line'>1814</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1822
1822
  <span class='line'>1815</span>
1823
- <span class='line'>1816</span> </span><span class="WHIT"> </span><span class="COMM">/**
1824
- <span class='line'>1817</span> * Replaces all occurences of &amp; by &amp;amp;, &gt; by &amp;gt;, and &lt; by &amp;lt;.
1825
- <span class='line'>1818</span> * @param {String} str
1826
- <span class='line'>1819</span> * @returns {String}
1827
- <span class='line'>1820</span> */</span><span class="WHIT">
1828
- <span class='line'>1821</span> </span><span class="WHIT"> </span><span class="NAME">escapeHTML</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1829
- <span class='line'>1822</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/&/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&amp;"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&gt;"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1830
- <span class='line'>1823</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1831
- <span class='line'>1824</span>
1832
- <span class='line'>1825</span> </span><span class="WHIT"> </span><span class="COMM">/**
1833
- <span class='line'>1826</span> * Eliminates all substrings enclosed by &lt; and &gt; and replaces all occurences of
1834
- <span class='line'>1827</span> * &amp;amp; by &amp;, &amp;gt; by &gt;, and &amp;lt; by &lt;.
1835
- <span class='line'>1828</span> * @param {String} str
1836
- <span class='line'>1829</span> * @returns {String}
1837
- <span class='line'>1830</span> */</span><span class="WHIT">
1838
- <span class='line'>1831</span> </span><span class="WHIT"> </span><span class="NAME">unescapeHTML</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1839
- <span class='line'>1832</span> </span><span class="WHIT"> </span><span class="COMM">// This regex is NOT insecure. We are replacing everything found with ''</span><span class="WHIT">
1840
- <span class='line'>1833</span> </span><span class="WHIT"> </span><span class="COMM">/*jslint regexp:true*/</span><span class="WHIT">
1841
- <span class='line'>1834</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT">
1842
- <span class='line'>1835</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;\/?[^>]+>/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT">
1843
- <span class='line'>1836</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&amp;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&"</span><span class="PUNC">)</span><span class="WHIT">
1844
- <span class='line'>1837</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="WHIT">
1845
- <span class='line'>1838</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&gt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">">"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1846
- <span class='line'>1839</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1847
- <span class='line'>1840</span>
1848
- <span class='line'>1841</span> </span><span class="WHIT"> </span><span class="COMM">/**
1849
- <span class='line'>1842</span> * Makes a string lower case except for the first character which will be upper case.
1850
- <span class='line'>1843</span> * @param {String} str Arbitrary string
1851
- <span class='line'>1844</span> * @returns {String} The capitalized string.
1852
- <span class='line'>1845</span> */</span><span class="WHIT">
1853
- <span class='line'>1846</span> </span><span class="WHIT"> </span><span class="NAME">capitalize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1854
- <span class='line'>1847</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str.substring</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1855
- <span class='line'>1848</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1856
- <span class='line'>1849</span>
1857
- <span class='line'>1850</span> </span><span class="WHIT"> </span><span class="COMM">/**
1858
- <span class='line'>1851</span> * Make numbers given as strings nicer by removing all unnecessary leading and trailing zeroes.
1859
- <span class='line'>1852</span> * @param {String} str
1860
- <span class='line'>1853</span> * @returns {String}
1861
- <span class='line'>1854</span> */</span><span class="WHIT">
1862
- <span class='line'>1855</span> </span><span class="WHIT"> </span><span class="NAME">trimNumber</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1863
- <span class='line'>1856</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/^0+/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1864
- <span class='line'>1857</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/0+$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1865
- <span class='line'>1858</span>
1866
- <span class='line'>1859</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">[</span><span class="NAME">str.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">[</span><span class="NAME">str.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1867
- <span class='line'>1860</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1868
- <span class='line'>1861</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1869
- <span class='line'>1862</span>
1870
- <span class='line'>1863</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1871
- <span class='line'>1864</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"0"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
1872
- <span class='line'>1865</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1873
- <span class='line'>1866</span>
1874
- <span class='line'>1867</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
1875
- <span class='line'>1868</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1823
+ <span class='line'>1816</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
1824
+ <span class='line'>1817</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1825
+ <span class='line'>1818</span>
1826
+ <span class='line'>1819</span> </span><span class="WHIT"> </span><span class="COMM">/**
1827
+ <span class='line'>1820</span> * Replaces all occurences of &amp; by &amp;amp;, &gt; by &amp;gt;, and &lt; by &amp;lt;.
1828
+ <span class='line'>1821</span> * @param {String} str
1829
+ <span class='line'>1822</span> * @returns {String}
1830
+ <span class='line'>1823</span> */</span><span class="WHIT">
1831
+ <span class='line'>1824</span> </span><span class="WHIT"> </span><span class="NAME">escapeHTML</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1832
+ <span class='line'>1825</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/&/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&amp;"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&gt;"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1833
+ <span class='line'>1826</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1834
+ <span class='line'>1827</span>
1835
+ <span class='line'>1828</span> </span><span class="WHIT"> </span><span class="COMM">/**
1836
+ <span class='line'>1829</span> * Eliminates all substrings enclosed by &lt; and &gt; and replaces all occurences of
1837
+ <span class='line'>1830</span> * &amp;amp; by &amp;, &amp;gt; by &gt;, and &amp;lt; by &lt;.
1838
+ <span class='line'>1831</span> * @param {String} str
1839
+ <span class='line'>1832</span> * @returns {String}
1840
+ <span class='line'>1833</span> */</span><span class="WHIT">
1841
+ <span class='line'>1834</span> </span><span class="WHIT"> </span><span class="NAME">unescapeHTML</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1842
+ <span class='line'>1835</span> </span><span class="WHIT"> </span><span class="COMM">// This regex is NOT insecure. We are replacing everything found with ''</span><span class="WHIT">
1843
+ <span class='line'>1836</span> </span><span class="WHIT"> </span><span class="COMM">/*jslint regexp:true*/</span><span class="WHIT">
1844
+ <span class='line'>1837</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT">
1845
+ <span class='line'>1838</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;\/?[^>]+>/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT">
1846
+ <span class='line'>1839</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&amp;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&"</span><span class="PUNC">)</span><span class="WHIT">
1847
+ <span class='line'>1840</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&lt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="WHIT">
1848
+ <span class='line'>1841</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/&gt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">">"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1849
+ <span class='line'>1842</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1850
+ <span class='line'>1843</span>
1851
+ <span class='line'>1844</span> </span><span class="WHIT"> </span><span class="COMM">/**
1852
+ <span class='line'>1845</span> * Makes a string lower case except for the first character which will be upper case.
1853
+ <span class='line'>1846</span> * @param {String} str Arbitrary string
1854
+ <span class='line'>1847</span> * @returns {String} The capitalized string.
1855
+ <span class='line'>1848</span> */</span><span class="WHIT">
1856
+ <span class='line'>1849</span> </span><span class="WHIT"> </span><span class="NAME">capitalize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1857
+ <span class='line'>1850</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str.substring</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1858
+ <span class='line'>1851</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1859
+ <span class='line'>1852</span>
1860
+ <span class='line'>1853</span> </span><span class="WHIT"> </span><span class="COMM">/**
1861
+ <span class='line'>1854</span> * Make numbers given as strings nicer by removing all unnecessary leading and trailing zeroes.
1862
+ <span class='line'>1855</span> * @param {String} str
1863
+ <span class='line'>1856</span> * @returns {String}
1864
+ <span class='line'>1857</span> */</span><span class="WHIT">
1865
+ <span class='line'>1858</span> </span><span class="WHIT"> </span><span class="NAME">trimNumber</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1866
+ <span class='line'>1859</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/^0+/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1867
+ <span class='line'>1860</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/0+$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1868
+ <span class='line'>1861</span>
1869
+ <span class='line'>1862</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">[</span><span class="NAME">str.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">[</span><span class="NAME">str.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1870
+ <span class='line'>1863</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1871
+ <span class='line'>1864</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1872
+ <span class='line'>1865</span>
1873
+ <span class='line'>1866</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">","</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1874
+ <span class='line'>1867</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"0"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
1875
+ <span class='line'>1868</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1876
1876
  <span class='line'>1869</span>
1877
- <span class='line'>1870</span> </span><span class="WHIT"> </span><span class="COMM">/**
1878
- <span class='line'>1871</span> * Filter an array of elements.
1879
- <span class='line'>1872</span> * @param {Array} list
1880
- <span class='line'>1873</span> * @param {Object|function} filter
1881
- <span class='line'>1874</span> * @returns {Array}
1882
- <span class='line'>1875</span> */</span><span class="WHIT">
1883
- <span class='line'>1876</span> </span><span class="WHIT"> </span><span class="NAME">filterElements</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">list</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1884
- <span class='line'>1877</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1885
- <span class='line'>1878</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT">
1886
- <span class='line'>1879</span> </span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">,</span><span class="WHIT">
1887
- <span class='line'>1880</span> </span><span class="WHIT"> </span><span class="NAME">flower</span><span class="PUNC">,</span><span class="WHIT">
1888
- <span class='line'>1881</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT">
1889
- <span class='line'>1882</span> </span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="PUNC">,</span><span class="WHIT">
1890
- <span class='line'>1883</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="PUNC">,</span><span class="WHIT">
1891
- <span class='line'>1884</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list.length</span><span class="PUNC">,</span><span class="WHIT">
1892
- <span class='line'>1885</span> </span><span class="WHIT"> </span><span class="NAME">result</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1893
- <span class='line'>1886</span>
1894
- <span class='line'>1887</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">filter</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1895
- <span class='line'>1888</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">result</span><span class="PUNC">;</span><span class="WHIT">
1896
- <span class='line'>1889</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1897
- <span class='line'>1890</span>
1898
- <span class='line'>1891</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1899
- <span class='line'>1892</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1900
- <span class='line'>1893</span> </span><span class="WHIT"> </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1901
- <span class='line'>1894</span>
1902
- <span class='line'>1895</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1903
- <span class='line'>1896</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1904
- <span class='line'>1897</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">filter.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1905
- <span class='line'>1898</span> </span><span class="WHIT"> </span><span class="NAME">flower</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">f.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1906
- <span class='line'>1899</span>
1907
- <span class='line'>1900</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1908
- <span class='line'>1901</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1909
- <span class='line'>1902</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1910
- <span class='line'>1903</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1911
- <span class='line'>1904</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1912
- <span class='line'>1905</span>
1913
- <span class='line'>1906</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">item.visProp</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="PUNC">[</span><span class="NAME">flower</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1914
- <span class='line'>1907</span> </span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="PUNC">[</span><span class="NAME">flower</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1915
- <span class='line'>1908</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1916
- <span class='line'>1909</span> </span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="PUNC">[</span><span class="NAME">flower</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1917
- <span class='line'>1910</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1918
- <span class='line'>1911</span>
1919
- <span class='line'>1912</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1920
- <span class='line'>1913</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">visPropValue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1921
- <span class='line'>1914</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1922
- <span class='line'>1915</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1923
- <span class='line'>1916</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1924
- <span class='line'>1917</span>
1925
- <span class='line'>1918</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">pass</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1926
- <span class='line'>1919</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1927
- <span class='line'>1920</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1928
- <span class='line'>1921</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1929
- <span class='line'>1922</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1930
- <span class='line'>1923</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1931
- <span class='line'>1924</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">(</span><span class="NAME">item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1932
- <span class='line'>1925</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1933
- <span class='line'>1926</span>
1934
- <span class='line'>1927</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pass</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1935
- <span class='line'>1928</span> </span><span class="WHIT"> </span><span class="NAME">result.push</span><span class="PUNC">(</span><span class="NAME">item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1936
- <span class='line'>1929</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1937
- <span class='line'>1930</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1938
- <span class='line'>1931</span>
1939
- <span class='line'>1932</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">result</span><span class="PUNC">;</span><span class="WHIT">
1940
- <span class='line'>1933</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1877
+ <span class='line'>1870</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
1878
+ <span class='line'>1871</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1879
+ <span class='line'>1872</span>
1880
+ <span class='line'>1873</span> </span><span class="WHIT"> </span><span class="COMM">/**
1881
+ <span class='line'>1874</span> * Filter an array of elements.
1882
+ <span class='line'>1875</span> * @param {Array} list
1883
+ <span class='line'>1876</span> * @param {Object|function} filter
1884
+ <span class='line'>1877</span> * @returns {Array}
1885
+ <span class='line'>1878</span> */</span><span class="WHIT">
1886
+ <span class='line'>1879</span> </span><span class="WHIT"> </span><span class="NAME">filterElements</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">list</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1887
+ <span class='line'>1880</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
1888
+ <span class='line'>1881</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">,</span><span class="WHIT">
1889
+ <span class='line'>1882</span> </span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">,</span><span class="WHIT">
1890
+ <span class='line'>1883</span> </span><span class="WHIT"> </span><span class="NAME">flower</span><span class="PUNC">,</span><span class="WHIT">
1891
+ <span class='line'>1884</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT">
1892
+ <span class='line'>1885</span> </span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="PUNC">,</span><span class="WHIT">
1893
+ <span class='line'>1886</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="PUNC">,</span><span class="WHIT">
1894
+ <span class='line'>1887</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list.length</span><span class="PUNC">,</span><span class="WHIT">
1895
+ <span class='line'>1888</span> </span><span class="WHIT"> </span><span class="NAME">result</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1896
+ <span class='line'>1889</span>
1897
+ <span class='line'>1890</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.exists</span><span class="PUNC">(</span><span class="NAME">filter</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1898
+ <span class='line'>1891</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">result</span><span class="PUNC">;</span><span class="WHIT">
1899
+ <span class='line'>1892</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1900
+ <span class='line'>1893</span>
1901
+ <span class='line'>1894</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1902
+ <span class='line'>1895</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
1903
+ <span class='line'>1896</span> </span><span class="WHIT"> </span><span class="NAME">item</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1904
+ <span class='line'>1897</span>
1905
+ <span class='line'>1898</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1906
+ <span class='line'>1899</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1907
+ <span class='line'>1900</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">filter.hasOwnProperty</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1908
+ <span class='line'>1901</span> </span><span class="WHIT"> </span><span class="NAME">flower</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">f.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1909
+ <span class='line'>1902</span>
1910
+ <span class='line'>1903</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1911
+ <span class='line'>1904</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1912
+ <span class='line'>1905</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1913
+ <span class='line'>1906</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1914
+ <span class='line'>1907</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1915
+ <span class='line'>1908</span>
1916
+ <span class='line'>1909</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">item.visProp</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="PUNC">[</span><span class="NAME">flower</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1917
+ <span class='line'>1910</span> </span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="PUNC">[</span><span class="NAME">flower</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1918
+ <span class='line'>1911</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1919
+ <span class='line'>1912</span> </span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">item.visProp</span><span class="PUNC">[</span><span class="NAME">flower</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1920
+ <span class='line'>1913</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1921
+ <span class='line'>1914</span>
1922
+ <span class='line'>1915</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1923
+ <span class='line'>1916</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">visPropValue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1924
+ <span class='line'>1917</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1925
+ <span class='line'>1918</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">visPropValue</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1926
+ <span class='line'>1919</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1927
+ <span class='line'>1920</span>
1928
+ <span class='line'>1921</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">pass</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1929
+ <span class='line'>1922</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
1930
+ <span class='line'>1923</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1931
+ <span class='line'>1924</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1932
+ <span class='line'>1925</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1933
+ <span class='line'>1926</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1934
+ <span class='line'>1927</span> </span><span class="WHIT"> </span><span class="NAME">pass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">filter</span><span class="PUNC">(</span><span class="NAME">item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1935
+ <span class='line'>1928</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1936
+ <span class='line'>1929</span>
1937
+ <span class='line'>1930</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pass</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1938
+ <span class='line'>1931</span> </span><span class="WHIT"> </span><span class="NAME">result.push</span><span class="PUNC">(</span><span class="NAME">item</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1939
+ <span class='line'>1932</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1940
+ <span class='line'>1933</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1941
1941
  <span class='line'>1934</span>
1942
- <span class='line'>1935</span> </span><span class="WHIT"> </span><span class="COMM">/**
1943
- <span class='line'>1936</span> * Remove all leading and trailing whitespaces from a given string.
1944
- <span class='line'>1937</span> * @param {String} str
1945
- <span class='line'>1938</span> * @returns {String}
1946
- <span class='line'>1939</span> */</span><span class="WHIT">
1947
- <span class='line'>1940</span> </span><span class="WHIT"> </span><span class="NAME">trim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1948
- <span class='line'>1941</span> </span><span class="WHIT"> </span><span class="COMM">// str = str.replace(/^\s+/, '');</span><span class="WHIT">
1949
- <span class='line'>1942</span> </span><span class="WHIT"> </span><span class="COMM">// str = str.replace(/\s+$/, '');</span><span class="WHIT">
1950
- <span class='line'>1943</span> </span><span class="WHIT"> </span><span class="COMM">//</span><span class="WHIT">
1951
- <span class='line'>1944</span> </span><span class="WHIT"> </span><span class="COMM">// return str;</span><span class="WHIT">
1952
- <span class='line'>1945</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1953
- <span class='line'>1946</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1954
- <span class='line'>1947</span>
1955
- <span class='line'>1948</span> </span><span class="WHIT"> </span><span class="COMM">/**
1956
- <span class='line'>1949</span> * Convert a floating point number to a string integer + fraction.
1957
- <span class='line'>1950</span> * Returns either a string of the form '3 1/3' (in case of useTeX=false)
1958
- <span class='line'>1951</span> * or '3 \\frac{1}{3}' (in case of useTeX=true).
1959
- <span class='line'>1952</span> *
1960
- <span class='line'>1953</span> * @param {Number} x
1961
- <span class='line'>1954</span> * @param {Boolean} [useTeX=false]
1962
- <span class='line'>1955</span> * @param {Number} [order=0.001]
1963
- <span class='line'>1956</span> * @returns {String}
1964
- <span class='line'>1957</span> * @see JXG.Math.decToFraction
1965
- <span class='line'>1958</span> */</span><span class="WHIT">
1966
- <span class='line'>1959</span> </span><span class="WHIT"> </span><span class="NAME">toFraction</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">useTeX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">order</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1967
- <span class='line'>1960</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.decToFraction</span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">order</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1968
- <span class='line'>1961</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
1969
- <span class='line'>1962</span>
1970
- <span class='line'>1963</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1971
- <span class='line'>1964</span> </span><span class="WHIT"> </span><span class="COMM">// 0</span><span class="WHIT">
1972
- <span class='line'>1965</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">;</span><span class="WHIT">
1973
- <span class='line'>1966</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1974
- <span class='line'>1967</span> </span><span class="WHIT"> </span><span class="COMM">// Sign</span><span class="WHIT">
1975
- <span class='line'>1968</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1976
- <span class='line'>1969</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="PUNC">;</span><span class="WHIT">
1977
- <span class='line'>1970</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1978
- <span class='line'>1971</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1979
- <span class='line'>1972</span> </span><span class="WHIT"> </span><span class="COMM">// Integer</span><span class="WHIT">
1980
- <span class='line'>1973</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1981
- <span class='line'>1974</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1982
- <span class='line'>1975</span> </span><span class="WHIT"> </span><span class="COMM">// Proper fraction</span><span class="WHIT">
1983
- <span class='line'>1976</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1984
- <span class='line'>1977</span> </span><span class="WHIT"> </span><span class="COMM">// Absolute value larger than 1</span><span class="WHIT">
1985
- <span class='line'>1978</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">;</span><span class="WHIT">
1986
- <span class='line'>1979</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1987
- <span class='line'>1980</span> </span><span class="WHIT"> </span><span class="COMM">// Add fractional part</span><span class="WHIT">
1988
- <span class='line'>1981</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">useTeX</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1989
- <span class='line'>1982</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\frac{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'}{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'}'</span><span class="PUNC">;</span><span class="WHIT">
1990
- <span class='line'>1983</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1991
- <span class='line'>1984</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1992
- <span class='line'>1985</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1993
- <span class='line'>1986</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1994
- <span class='line'>1987</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1995
- <span class='line'>1988</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
1996
- <span class='line'>1989</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1997
- <span class='line'>1990</span>
1998
- <span class='line'>1991</span> </span><span class="WHIT"> </span><span class="COMM">/**
1999
- <span class='line'>1992</span> * Concat array src to array dest.
2000
- <span class='line'>1993</span> * Uses push instead of JavaScript concat, which is much
2001
- <span class='line'>1994</span> * faster.
2002
- <span class='line'>1995</span> * The array dest is changed in place.
2003
- <span class='line'>1996</span> * &lt;p>&lt;b>Attention:&lt;/b> if "dest" is an anonymous array, the correct result is returned from the function.
2004
- <span class='line'>1997</span> *
2005
- <span class='line'>1998</span> * @param {Array} dest
2006
- <span class='line'>1999</span> * @param {Array} src
2007
- <span class='line'>2000</span> * @returns Array
2008
- <span class='line'>2001</span> */</span><span class="WHIT">
2009
- <span class='line'>2002</span> </span><span class="WHIT"> </span><span class="NAME">concat</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">dest</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2010
- <span class='line'>2003</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
2011
- <span class='line'>2004</span> </span><span class="WHIT"> </span><span class="NAME">le</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">src.length</span><span class="PUNC">;</span><span class="WHIT">
2012
- <span class='line'>2005</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">le</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2013
- <span class='line'>2006</span> </span><span class="WHIT"> </span><span class="NAME">dest.push</span><span class="PUNC">(</span><span class="NAME">src</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2014
- <span class='line'>2007</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2015
- <span class='line'>2008</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">dest</span><span class="PUNC">;</span><span class="WHIT">
2016
- <span class='line'>2009</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2017
- <span class='line'>2010</span>
2018
- <span class='line'>2011</span> </span><span class="WHIT"> </span><span class="COMM">/**
2019
- <span class='line'>2012</span> * Convert HTML tags to entities or use html_sanitize if the google caja html sanitizer is available.
2020
- <span class='line'>2013</span> * @param {String} str
2021
- <span class='line'>2014</span> * @param {Boolean} caja
2022
- <span class='line'>2015</span> * @returns {String} Sanitized string
2023
- <span class='line'>2016</span> */</span><span class="WHIT">
2024
- <span class='line'>2017</span> </span><span class="WHIT"> </span><span class="NAME">sanitizeHTML</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">caja</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2025
- <span class='line'>2018</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">html_sanitize</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">caja</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2026
- <span class='line'>2019</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">html_sanitize</span><span class="PUNC">(</span><span class="WHIT">
2027
- <span class='line'>2020</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">,</span><span class="WHIT">
2028
- <span class='line'>2021</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2029
- <span class='line'>2022</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT">
2030
- <span class='line'>2023</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2031
- <span class='line'>2024</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2032
- <span class='line'>2025</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
2033
- <span class='line'>2026</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2034
- <span class='line'>2027</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2035
- <span class='line'>2028</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2036
- <span class='line'>2029</span>
2037
- <span class='line'>2030</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2038
- <span class='line'>2031</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/&lt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&gt;"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2039
- <span class='line'>2032</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2040
- <span class='line'>2033</span>
2041
- <span class='line'>2034</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
2042
- <span class='line'>2035</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1942
+ <span class='line'>1935</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">result</span><span class="PUNC">;</span><span class="WHIT">
1943
+ <span class='line'>1936</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1944
+ <span class='line'>1937</span>
1945
+ <span class='line'>1938</span> </span><span class="WHIT"> </span><span class="COMM">/**
1946
+ <span class='line'>1939</span> * Remove all leading and trailing whitespaces from a given string.
1947
+ <span class='line'>1940</span> * @param {String} str
1948
+ <span class='line'>1941</span> * @returns {String}
1949
+ <span class='line'>1942</span> */</span><span class="WHIT">
1950
+ <span class='line'>1943</span> </span><span class="WHIT"> </span><span class="NAME">trim</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1951
+ <span class='line'>1944</span> </span><span class="WHIT"> </span><span class="COMM">// str = str.replace(/^\s+/, '');</span><span class="WHIT">
1952
+ <span class='line'>1945</span> </span><span class="WHIT"> </span><span class="COMM">// str = str.replace(/\s+$/, '');</span><span class="WHIT">
1953
+ <span class='line'>1946</span> </span><span class="WHIT"> </span><span class="COMM">//</span><span class="WHIT">
1954
+ <span class='line'>1947</span> </span><span class="WHIT"> </span><span class="COMM">// return str;</span><span class="WHIT">
1955
+ <span class='line'>1948</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1956
+ <span class='line'>1949</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1957
+ <span class='line'>1950</span>
1958
+ <span class='line'>1951</span> </span><span class="WHIT"> </span><span class="COMM">/**
1959
+ <span class='line'>1952</span> * Convert a floating point number to a string integer + fraction.
1960
+ <span class='line'>1953</span> * Returns either a string of the form '3 1/3' (in case of useTeX=false)
1961
+ <span class='line'>1954</span> * or '3 \\frac{1}{3}' (in case of useTeX=true).
1962
+ <span class='line'>1955</span> *
1963
+ <span class='line'>1956</span> * @param {Number} x
1964
+ <span class='line'>1957</span> * @param {Boolean} [useTeX=false]
1965
+ <span class='line'>1958</span> * @param {Number} [order=0.001]
1966
+ <span class='line'>1959</span> * @returns {String}
1967
+ <span class='line'>1960</span> * @see JXG.Math.decToFraction
1968
+ <span class='line'>1961</span> */</span><span class="WHIT">
1969
+ <span class='line'>1962</span> </span><span class="WHIT"> </span><span class="NAME">toFraction</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">useTeX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">order</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1970
+ <span class='line'>1963</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.decToFraction</span><span class="PUNC">(</span><span class="NAME">x</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">order</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
1971
+ <span class='line'>1964</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
1972
+ <span class='line'>1965</span>
1973
+ <span class='line'>1966</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1974
+ <span class='line'>1967</span> </span><span class="WHIT"> </span><span class="COMM">// 0</span><span class="WHIT">
1975
+ <span class='line'>1968</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">;</span><span class="WHIT">
1976
+ <span class='line'>1969</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1977
+ <span class='line'>1970</span> </span><span class="WHIT"> </span><span class="COMM">// Sign</span><span class="WHIT">
1978
+ <span class='line'>1971</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1979
+ <span class='line'>1972</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="PUNC">;</span><span class="WHIT">
1980
+ <span class='line'>1973</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1981
+ <span class='line'>1974</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1982
+ <span class='line'>1975</span> </span><span class="WHIT"> </span><span class="COMM">// Integer</span><span class="WHIT">
1983
+ <span class='line'>1976</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1984
+ <span class='line'>1977</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1985
+ <span class='line'>1978</span> </span><span class="WHIT"> </span><span class="COMM">// Proper fraction</span><span class="WHIT">
1986
+ <span class='line'>1979</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1987
+ <span class='line'>1980</span> </span><span class="WHIT"> </span><span class="COMM">// Absolute value larger than 1</span><span class="WHIT">
1988
+ <span class='line'>1981</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="PUNC">;</span><span class="WHIT">
1989
+ <span class='line'>1982</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1990
+ <span class='line'>1983</span> </span><span class="WHIT"> </span><span class="COMM">// Add fractional part</span><span class="WHIT">
1991
+ <span class='line'>1984</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">useTeX</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1992
+ <span class='line'>1985</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\frac{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'}{'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'}'</span><span class="PUNC">;</span><span class="WHIT">
1993
+ <span class='line'>1986</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1994
+ <span class='line'>1987</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arr</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1995
+ <span class='line'>1988</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1996
+ <span class='line'>1989</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1997
+ <span class='line'>1990</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
1998
+ <span class='line'>1991</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
1999
+ <span class='line'>1992</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2000
+ <span class='line'>1993</span>
2001
+ <span class='line'>1994</span> </span><span class="WHIT"> </span><span class="COMM">/**
2002
+ <span class='line'>1995</span> * Concat array src to array dest.
2003
+ <span class='line'>1996</span> * Uses push instead of JavaScript concat, which is much
2004
+ <span class='line'>1997</span> * faster.
2005
+ <span class='line'>1998</span> * The array dest is changed in place.
2006
+ <span class='line'>1999</span> * &lt;p>&lt;b>Attention:&lt;/b> if "dest" is an anonymous array, the correct result is returned from the function.
2007
+ <span class='line'>2000</span> *
2008
+ <span class='line'>2001</span> * @param {Array} dest
2009
+ <span class='line'>2002</span> * @param {Array} src
2010
+ <span class='line'>2003</span> * @returns Array
2011
+ <span class='line'>2004</span> */</span><span class="WHIT">
2012
+ <span class='line'>2005</span> </span><span class="WHIT"> </span><span class="NAME">concat</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">dest</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">src</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2013
+ <span class='line'>2006</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT">
2014
+ <span class='line'>2007</span> </span><span class="WHIT"> </span><span class="NAME">le</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">src.length</span><span class="PUNC">;</span><span class="WHIT">
2015
+ <span class='line'>2008</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">le</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2016
+ <span class='line'>2009</span> </span><span class="WHIT"> </span><span class="NAME">dest.push</span><span class="PUNC">(</span><span class="NAME">src</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2017
+ <span class='line'>2010</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2018
+ <span class='line'>2011</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">dest</span><span class="PUNC">;</span><span class="WHIT">
2019
+ <span class='line'>2012</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2020
+ <span class='line'>2013</span>
2021
+ <span class='line'>2014</span> </span><span class="WHIT"> </span><span class="COMM">/**
2022
+ <span class='line'>2015</span> * Convert HTML tags to entities or use html_sanitize if the google caja html sanitizer is available.
2023
+ <span class='line'>2016</span> * @param {String} str
2024
+ <span class='line'>2017</span> * @param {Boolean} caja
2025
+ <span class='line'>2018</span> * @returns {String} Sanitized string
2026
+ <span class='line'>2019</span> */</span><span class="WHIT">
2027
+ <span class='line'>2020</span> </span><span class="WHIT"> </span><span class="NAME">sanitizeHTML</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">caja</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2028
+ <span class='line'>2021</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">html_sanitize</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">caja</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2029
+ <span class='line'>2022</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">html_sanitize</span><span class="PUNC">(</span><span class="WHIT">
2030
+ <span class='line'>2023</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">,</span><span class="WHIT">
2031
+ <span class='line'>2024</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2032
+ <span class='line'>2025</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT">
2033
+ <span class='line'>2026</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2034
+ <span class='line'>2027</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2035
+ <span class='line'>2028</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
2036
+ <span class='line'>2029</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2037
+ <span class='line'>2030</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2038
+ <span class='line'>2031</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2039
+ <span class='line'>2032</span>
2040
+ <span class='line'>2033</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2041
+ <span class='line'>2034</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.replace</span><span class="PUNC">(</span><span class="REGX">/&lt;/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&lt;"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"&gt;"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2042
+ <span class='line'>2035</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2043
2043
  <span class='line'>2036</span>
2044
- <span class='line'>2037</span> </span><span class="WHIT"> </span><span class="COMM">/**
2045
- <span class='line'>2038</span> * If &lt;tt>s&lt;/tt> is a slider, it returns the sliders value, otherwise it just returns the given value.
2046
- <span class='line'>2039</span> * @param {*} s
2047
- <span class='line'>2040</span> * @returns {*} s.Value() if s is an element of type slider, s otherwise
2048
- <span class='line'>2041</span> */</span><span class="WHIT">
2049
- <span class='line'>2042</span> </span><span class="WHIT"> </span><span class="NAME">evalSlider</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2050
- <span class='line'>2043</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">s.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_GLIDER</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s.Value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2051
- <span class='line'>2044</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2052
- <span class='line'>2045</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2053
- <span class='line'>2046</span>
2054
- <span class='line'>2047</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
2055
- <span class='line'>2048</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2044
+ <span class='line'>2037</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT">
2045
+ <span class='line'>2038</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2046
+ <span class='line'>2039</span>
2047
+ <span class='line'>2040</span> </span><span class="WHIT"> </span><span class="COMM">/**
2048
+ <span class='line'>2041</span> * If &lt;tt>s&lt;/tt> is a slider, it returns the sliders value, otherwise it just returns the given value.
2049
+ <span class='line'>2042</span> * @param {*} s
2050
+ <span class='line'>2043</span> * @returns {*} s.Value() if s is an element of type slider, s otherwise
2051
+ <span class='line'>2044</span> */</span><span class="WHIT">
2052
+ <span class='line'>2045</span> </span><span class="WHIT"> </span><span class="NAME">evalSlider</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2053
+ <span class='line'>2046</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">s.type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_GLIDER</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s.Value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2054
+ <span class='line'>2047</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s.Value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2055
+ <span class='line'>2048</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2056
2056
  <span class='line'>2049</span>
2057
- <span class='line'>2050</span> </span><span class="WHIT"> </span><span class="COMM">/**
2058
- <span class='line'>2051</span> * Convert a string containing a MAXIMA /STACK expression into a JSXGraph / JessieCode string
2059
- <span class='line'>2052</span> * or an array of JSXGraph / JessieCode strings.
2060
- <span class='line'>2053</span> * &lt;p>
2061
- <span class='line'>2054</span> * This function is meanwhile superseded by stack_jxg.stack2jsxgraph.
2062
- <span class='line'>2055</span> *
2063
- <span class='line'>2056</span> * @deprecated
2064
- <span class='line'>2057</span> *
2065
- <span class='line'>2058</span> * @example
2066
- <span class='line'>2059</span> * console.log( JXG.stack2jsxgraph("%e**x") );
2067
- <span class='line'>2060</span> * // Output:
2068
- <span class='line'>2061</span> * // "EULER**x"
2069
- <span class='line'>2062</span> *
2070
- <span class='line'>2063</span> * @example
2071
- <span class='line'>2064</span> * console.log( JXG.stack2jsxgraph("[%pi*(x**2 - 1), %phi*(x - 1), %gamma*(x+1)]") );
2072
- <span class='line'>2065</span> * // Output:
2073
- <span class='line'>2066</span> * // [ "PI*(x**2 - 1)", "1.618033988749895*(x - 1)", "0.5772156649015329*(x+1)" ]
2074
- <span class='line'>2067</span> *
2075
- <span class='line'>2068</span> * @param {String} str
2076
- <span class='line'>2069</span> * @returns String
2077
- <span class='line'>2070</span> */</span><span class="WHIT">
2078
- <span class='line'>2071</span> </span><span class="WHIT"> </span><span class="NAME">stack2jsxgraph</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2079
- <span class='line'>2072</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
2080
- <span class='line'>2073</span>
2081
- <span class='line'>2074</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.</span><span class="WHIT">
2082
- <span class='line'>2075</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%pi/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'PI'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2083
- <span class='line'>2076</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%e/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'EULER'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2084
- <span class='line'>2077</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%phi/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'1.618033988749895'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2085
- <span class='line'>2078</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%gamma/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'0.5772156649015329'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2086
- <span class='line'>2079</span> </span><span class="WHIT"> </span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2087
- <span class='line'>2080</span>
2088
- <span class='line'>2081</span> </span><span class="WHIT"> </span><span class="COMM">// String containing array -> array containing strings</span><span class="WHIT">
2089
- <span class='line'>2082</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2090
- <span class='line'>2083</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="REGX">/\s*,\s*/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2091
- <span class='line'>2084</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2092
- <span class='line'>2085</span>
2093
- <span class='line'>2086</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
2094
- <span class='line'>2087</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2095
- <span class='line'>2088</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2096
- <span class='line'>2089</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2097
- <span class='line'>2090</span>
2098
- <span class='line'>2091</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG</span><span class="PUNC">;</span><span class="WHIT">
2099
- <span class='line'>2092</span> </span></pre></body></html>
2057
+ <span class='line'>2050</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
2058
+ <span class='line'>2051</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
2059
+ <span class='line'>2052</span>
2060
+ <span class='line'>2053</span> </span><span class="WHIT"> </span><span class="COMM">/**
2061
+ <span class='line'>2054</span> * Convert a string containing a MAXIMA /STACK expression into a JSXGraph / JessieCode string
2062
+ <span class='line'>2055</span> * or an array of JSXGraph / JessieCode strings.
2063
+ <span class='line'>2056</span> * &lt;p>
2064
+ <span class='line'>2057</span> * This function is meanwhile superseded by stack_jxg.stack2jsxgraph.
2065
+ <span class='line'>2058</span> *
2066
+ <span class='line'>2059</span> * @deprecated
2067
+ <span class='line'>2060</span> *
2068
+ <span class='line'>2061</span> * @example
2069
+ <span class='line'>2062</span> * console.log( JXG.stack2jsxgraph("%e**x") );
2070
+ <span class='line'>2063</span> * // Output:
2071
+ <span class='line'>2064</span> * // "EULER**x"
2072
+ <span class='line'>2065</span> *
2073
+ <span class='line'>2066</span> * @example
2074
+ <span class='line'>2067</span> * console.log( JXG.stack2jsxgraph("[%pi*(x**2 - 1), %phi*(x - 1), %gamma*(x+1)]") );
2075
+ <span class='line'>2068</span> * // Output:
2076
+ <span class='line'>2069</span> * // [ "PI*(x**2 - 1)", "1.618033988749895*(x - 1)", "0.5772156649015329*(x+1)" ]
2077
+ <span class='line'>2070</span> *
2078
+ <span class='line'>2071</span> * @param {String} str
2079
+ <span class='line'>2072</span> * @returns String
2080
+ <span class='line'>2073</span> */</span><span class="WHIT">
2081
+ <span class='line'>2074</span> </span><span class="WHIT"> </span><span class="NAME">stack2jsxgraph</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2082
+ <span class='line'>2075</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
2083
+ <span class='line'>2076</span>
2084
+ <span class='line'>2077</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.</span><span class="WHIT">
2085
+ <span class='line'>2078</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%pi/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'PI'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2086
+ <span class='line'>2079</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%e/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'EULER'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2087
+ <span class='line'>2080</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%phi/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'1.618033988749895'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2088
+ <span class='line'>2081</span> </span><span class="WHIT"> </span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/%gamma/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'0.5772156649015329'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="WHIT">
2089
+ <span class='line'>2082</span> </span><span class="WHIT"> </span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2090
+ <span class='line'>2083</span>
2091
+ <span class='line'>2084</span> </span><span class="WHIT"> </span><span class="COMM">// String containing array -> array containing strings</span><span class="WHIT">
2092
+ <span class='line'>2085</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">t.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
2093
+ <span class='line'>2086</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="REGX">/\s*,\s*/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2094
+ <span class='line'>2087</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2095
+ <span class='line'>2088</span>
2096
+ <span class='line'>2089</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
2097
+ <span class='line'>2090</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2098
+ <span class='line'>2091</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
2099
+ <span class='line'>2092</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
2100
+ <span class='line'>2093</span>
2101
+ <span class='line'>2094</span> </span><span class="NAME">export</span><span class="WHIT"> </span><span class="KEYW">default</span><span class="WHIT"> </span><span class="NAME">JXG</span><span class="PUNC">;</span><span class="WHIT">
2102
+ <span class='line'>2095</span> </span></pre></body></html>