rgraph-rails 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +13 -0
  6. data/Gemfile +4 -0
  7. data/README.md +73 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +7 -0
  11. data/lib/rgraph-rails/version.rb +3 -0
  12. data/lib/rgraph-rails.rb +8 -0
  13. data/license.txt +19 -0
  14. data/rgraph-rails.gemspec +26 -0
  15. data/vendor/assets/images/bg.png +0 -0
  16. data/vendor/assets/images/bullet.png +0 -0
  17. data/vendor/assets/images/facebook-large.png +0 -0
  18. data/vendor/assets/images/google-plus-large.png +0 -0
  19. data/vendor/assets/images/logo.png +0 -0
  20. data/vendor/assets/images/meter-image-sd-needle.png +0 -0
  21. data/vendor/assets/images/meter-image-sd.png +0 -0
  22. data/vendor/assets/images/meter-sketch-needle.png +0 -0
  23. data/vendor/assets/images/meter-sketch.png +0 -0
  24. data/vendor/assets/images/odometer-background.png +0 -0
  25. data/vendor/assets/images/rgraph.jpg +0 -0
  26. data/vendor/assets/images/title.png +0 -0
  27. data/vendor/assets/images/twitter-large.png +0 -0
  28. data/vendor/assets/javascripts/RGraph.bar.js +3246 -0
  29. data/vendor/assets/javascripts/RGraph.bipolar.js +2003 -0
  30. data/vendor/assets/javascripts/RGraph.common.annotate.js +399 -0
  31. data/vendor/assets/javascripts/RGraph.common.context.js +600 -0
  32. data/vendor/assets/javascripts/RGraph.common.core.js +4751 -0
  33. data/vendor/assets/javascripts/RGraph.common.csv.js +275 -0
  34. data/vendor/assets/javascripts/RGraph.common.deprecated.js +454 -0
  35. data/vendor/assets/javascripts/RGraph.common.dynamic.js +1194 -0
  36. data/vendor/assets/javascripts/RGraph.common.effects.js +1524 -0
  37. data/vendor/assets/javascripts/RGraph.common.key.js +735 -0
  38. data/vendor/assets/javascripts/RGraph.common.resizing.js +550 -0
  39. data/vendor/assets/javascripts/RGraph.common.tooltips.js +605 -0
  40. data/vendor/assets/javascripts/RGraph.common.zoom.js +223 -0
  41. data/vendor/assets/javascripts/RGraph.drawing.background.js +636 -0
  42. data/vendor/assets/javascripts/RGraph.drawing.circle.js +579 -0
  43. data/vendor/assets/javascripts/RGraph.drawing.image.js +810 -0
  44. data/vendor/assets/javascripts/RGraph.drawing.marker1.js +710 -0
  45. data/vendor/assets/javascripts/RGraph.drawing.marker2.js +672 -0
  46. data/vendor/assets/javascripts/RGraph.drawing.marker3.js +568 -0
  47. data/vendor/assets/javascripts/RGraph.drawing.poly.js +623 -0
  48. data/vendor/assets/javascripts/RGraph.drawing.rect.js +603 -0
  49. data/vendor/assets/javascripts/RGraph.drawing.text.js +648 -0
  50. data/vendor/assets/javascripts/RGraph.drawing.xaxis.js +815 -0
  51. data/vendor/assets/javascripts/RGraph.drawing.yaxis.js +860 -0
  52. data/vendor/assets/javascripts/RGraph.fuel.js +965 -0
  53. data/vendor/assets/javascripts/RGraph.funnel.js +988 -0
  54. data/vendor/assets/javascripts/RGraph.gantt.js +1242 -0
  55. data/vendor/assets/javascripts/RGraph.gauge.js +1391 -0
  56. data/vendor/assets/javascripts/RGraph.hbar.js +1794 -0
  57. data/vendor/assets/javascripts/RGraph.hprogress.js +1307 -0
  58. data/vendor/assets/javascripts/RGraph.line.js +3940 -0
  59. data/vendor/assets/javascripts/RGraph.meter.js +1242 -0
  60. data/vendor/assets/javascripts/RGraph.modaldialog.js +292 -0
  61. data/vendor/assets/javascripts/RGraph.odo.js +1265 -0
  62. data/vendor/assets/javascripts/RGraph.pie.js +1979 -0
  63. data/vendor/assets/javascripts/RGraph.radar.js +1840 -0
  64. data/vendor/assets/javascripts/RGraph.rose.js +1860 -0
  65. data/vendor/assets/javascripts/RGraph.rscatter.js +1332 -0
  66. data/vendor/assets/javascripts/RGraph.scatter.js +3029 -0
  67. data/vendor/assets/javascripts/RGraph.thermometer.js +1131 -0
  68. data/vendor/assets/javascripts/RGraph.vprogress.js +1326 -0
  69. data/vendor/assets/javascripts/RGraph.waterfall.js +1252 -0
  70. data/vendor/assets/javascripts/financial-data.js +1067 -0
  71. data/vendor/assets/stylesheets/ModalDialog.css +90 -0
  72. data/vendor/assets/stylesheets/animations.css +3347 -0
  73. data/vendor/assets/stylesheets/website.css +402 -0
  74. metadata +175 -0
@@ -0,0 +1,623 @@
1
+ // version: 2015-11-02
2
+ /**
3
+ * o--------------------------------------------------------------------------------o
4
+ * | This file is part of the RGraph package - you can learn more at: |
5
+ * | |
6
+ * | http://www.rgraph.net |
7
+ * | |
8
+ * | RGraph is dual licensed under the Open Source GPL (General Public License) |
9
+ * | v2.0 license and a commercial license which means that you're not bound by |
10
+ * | the terms of the GPL. The commercial license is just �99 (GBP) and you can |
11
+ * | read about it here: |
12
+ * | http://www.rgraph.net/license |
13
+ * o--------------------------------------------------------------------------------o
14
+ */
15
+
16
+ /**
17
+ * Having this here means that the RGraph libraries can be included in any order, instead of you having
18
+ * to include the common core library first.
19
+ */
20
+
21
+ // Define the RGraph global variable
22
+ RGraph = window.RGraph || {isRGraph: true};
23
+ RGraph.Drawing = RGraph.Drawing || {};
24
+
25
+ /**
26
+ * The constructor. This function sets up the object. It takes the ID (the HTML attribute) of the canvas as the
27
+ * first argument, then the coordinates of the coords of the shape
28
+ *
29
+ * @param string id The canvas tag ID
30
+ * @param number coords The coordinates of the shape
31
+ */
32
+ RGraph.Drawing.Poly = function (conf)
33
+ {
34
+ /**
35
+ * Allow for object config style
36
+ */
37
+ if ( typeof conf === 'object'
38
+ && typeof conf.coords === 'object'
39
+ && typeof conf.id === 'string') {
40
+
41
+ var id = conf.id
42
+ var coords = conf.coords;
43
+
44
+ var parseConfObjectForOptions = true; // Set this so the config is parsed (at the end of the constructor)
45
+
46
+ } else {
47
+
48
+ var id = conf;
49
+ var coords = arguments[1];
50
+ }
51
+
52
+
53
+
54
+
55
+ this.id = id;
56
+ this.canvas = document.getElementById(this.id);
57
+ this.context = this.canvas.getContext('2d');
58
+ this.colorsParsed = false;
59
+ this.canvas.__object__ = this;
60
+ this.coords = coords;
61
+ this.coordsText = [];
62
+ this.original_colors = [];
63
+ this.firstDraw = true; // After the first draw this will be false
64
+
65
+
66
+ /**
67
+ * This defines the type of this shape
68
+ */
69
+ this.type = 'drawing.poly';
70
+
71
+
72
+ /**
73
+ * This facilitates easy object identification, and should always be true
74
+ */
75
+ this.isRGraph = true;
76
+
77
+
78
+ /**
79
+ * This adds a uid to the object that you can use for identification purposes
80
+ */
81
+ this.uid = RGraph.CreateUID();
82
+
83
+
84
+ /**
85
+ * This adds a UID to the canvas for identification purposes
86
+ */
87
+ this.canvas.uid = this.canvas.uid ? this.canvas.uid : RGraph.CreateUID();
88
+
89
+
90
+
91
+
92
+ /**
93
+ * Some example background properties
94
+ */
95
+ this.properties =
96
+ {
97
+ 'chart.linewidth': 1,
98
+ 'chart.strokestyle': 'black',
99
+ 'chart.fillstyle': 'red',
100
+ 'chart.events.click': null,
101
+ 'chart.events.mousemove': null,
102
+ 'chart.tooltips': null,
103
+ 'chart.tooltips.override': null,
104
+ 'chart.tooltips.effect': 'fade',
105
+ 'chart.tooltips.css.class': 'RGraph_tooltip',
106
+ 'chart.tooltips.event': 'onclick',
107
+ 'chart.tooltips.highlight': true,
108
+ 'chart.highlight.stroke': 'rgba(0,0,0,0)',
109
+ 'chart.highlight.fill': 'rgba(255,255,255,0.7)',
110
+ 'chart.shadow': false,
111
+ 'chart.shadow.color': 'rgba(0,0,0,0.2)',
112
+ 'chart.shadow.offsetx': 3,
113
+ 'chart.shadow.offsety': 3,
114
+ 'chart.shadow.blur': 5
115
+ }
116
+
117
+ /**
118
+ * A simple check that the browser has canvas support
119
+ */
120
+ if (!this.canvas) {
121
+ alert('[DRAWING.POLY] No canvas support');
122
+ return;
123
+ }
124
+
125
+ /**
126
+ * Create the dollar object so that functions can be added to them
127
+ */
128
+ this.$0 = {};
129
+
130
+
131
+ /**
132
+ * Translate half a pixel for antialiasing purposes - but only if it hasn't beeen
133
+ * done already
134
+ */
135
+ if (!this.canvas.__rgraph_aa_translated__) {
136
+ this.context.translate(0.5,0.5);
137
+
138
+ this.canvas.__rgraph_aa_translated__ = true;
139
+ }
140
+
141
+
142
+
143
+
144
+ // Short variable names
145
+ var RG = RGraph,
146
+ ca = this.canvas,
147
+ co = ca.getContext('2d'),
148
+ prop = this.properties,
149
+ pa = RG.Path,
150
+ pa2 = RG.path2,
151
+ win = window,
152
+ doc = document,
153
+ ma = Math
154
+
155
+
156
+
157
+ /**
158
+ * "Decorate" the object with the generic effects if the effects library has been included
159
+ */
160
+ if (RG.Effects && typeof RG.Effects.decorate === 'function') {
161
+ RG.Effects.decorate(this);
162
+ }
163
+
164
+
165
+
166
+
167
+ /**
168
+ * A setter method for setting properties.
169
+ *
170
+ * @param name string The name of the property to set OR it can be a map
171
+ * of name/value settings like what you set in the constructor
172
+ */
173
+ this.set =
174
+ this.Set = function (name)
175
+ {
176
+ var value = typeof arguments[1] === 'undefined' ? null : arguments[1];
177
+
178
+ /**
179
+ * the number of arguments is only one and it's an
180
+ * object - parse it for configuration data and return.
181
+ */
182
+ if (arguments.length === 1 && typeof name === 'object') {
183
+ RG.parseObjectStyleConfig(this, name);
184
+ return this;
185
+ }
186
+
187
+
188
+
189
+
190
+
191
+ /**
192
+ * This should be done first - prepend the property name with "chart." if necessary
193
+ */
194
+ if (name.substr(0,6) != 'chart.') {
195
+ name = 'chart.' + name;
196
+ }
197
+
198
+
199
+
200
+
201
+ // Convert uppercase letters to dot+lower case letter
202
+ name = name.replace(/([A-Z])/g, function (str)
203
+ {
204
+ return '.' + String(RegExp.$1).toLowerCase();
205
+ });
206
+
207
+
208
+
209
+
210
+
211
+
212
+ prop[name] = value;
213
+
214
+ return this;
215
+ };
216
+
217
+
218
+
219
+
220
+ /**
221
+ * A getter method for retrieving graph properties. It can be used like this: obj.Get('chart.strokestyle');
222
+ *
223
+ * @param name string The name of the property to get
224
+ */
225
+ this.get =
226
+ this.Get = function (name)
227
+ {
228
+ /**
229
+ * This should be done first - prepend the property name with "chart." if necessary
230
+ */
231
+ if (name.substr(0,6) != 'chart.') {
232
+ name = 'chart.' + name;
233
+ }
234
+
235
+ // Convert uppercase letters to dot+lower case letter
236
+ name = name.replace(/([A-Z])/g, function (str)
237
+ {
238
+ return '.' + String(RegExp.$1).toLowerCase()
239
+ });
240
+
241
+ return prop[name.toLowerCase()];
242
+ };
243
+
244
+
245
+
246
+
247
+ /**
248
+ * Draws the shape
249
+ */
250
+ this.draw =
251
+ this.Draw = function ()
252
+ {
253
+ /**
254
+ * Fire the onbeforedraw event
255
+ */
256
+ RG.FireCustomEvent(this, 'onbeforedraw');
257
+
258
+
259
+ /**
260
+ * Parse the colors. This allows for simple gradient syntax
261
+ */
262
+ if (!this.colorsParsed) {
263
+
264
+ this.parseColors();
265
+
266
+ // Don't want to do this again
267
+ this.colorsParsed = true;
268
+ }
269
+
270
+
271
+
272
+
273
+
274
+ /**
275
+ * Stop this growing uncntrollably
276
+ */
277
+ this.coordsText = [];
278
+
279
+
280
+
281
+
282
+
283
+ /**
284
+ * DRAW THE SHAPE HERE
285
+ */
286
+
287
+ var obj = this;
288
+ pa(this, ['b','fu',function (obj){if (prop['chart.shadow'])
289
+ {
290
+ co.shadowColor = prop['chart.shadow.color'];
291
+ co.shadowOffsetX = prop['chart.shadow.offsetx'];
292
+ co.shadowOffsetY = prop['chart.shadow.offsety'];
293
+ co.shadowBlur = prop['chart.shadow.blur'];
294
+ }},'fu',function (obj)
295
+ {
296
+ co.strokeStyle=prop['chart.strokestyle'];
297
+ co.fillStyle=prop['chart.fillstyle'];
298
+ obj.DrawPoly();
299
+ },'lw',prop['chart.linewidth'],'f',prop['chart.fillstyle'], 'fu', function ()
300
+ {
301
+ RG.NoShadow(obj);
302
+ }, 's',prop['chart.strokestyle']]);
303
+
304
+
305
+
306
+ /**
307
+ * Turn off shadow again
308
+ */
309
+ RG.NoShadow(this)
310
+
311
+
312
+
313
+ /**
314
+ * This installs the event listeners
315
+ */
316
+ RG.InstallEventListeners(this);
317
+
318
+
319
+ /**
320
+ * Fire the onfirstdraw event
321
+ */
322
+ if (this.firstDraw) {
323
+ RG.fireCustomEvent(this, 'onfirstdraw');
324
+ this.firstDraw = false;
325
+ this.firstDrawFunc();
326
+ }
327
+
328
+
329
+
330
+
331
+ /**
332
+ * Fire the ondraw event
333
+ */
334
+ RG.FireCustomEvent(this, 'ondraw');
335
+
336
+ return this;
337
+ };
338
+
339
+
340
+
341
+ /**
342
+ * Used in chaining. Runs a function there and then - not waiting for
343
+ * the events to fire (eg the onbeforedraw event)
344
+ *
345
+ * @param function func The function to execute
346
+ */
347
+ this.exec = function (func)
348
+ {
349
+ func(this);
350
+
351
+ return this;
352
+ };
353
+
354
+
355
+
356
+
357
+ /**
358
+ * The getObjectByXY() worker method
359
+ */
360
+ this.getObjectByXY = function (e)
361
+ {
362
+ if (this.getShape(e)) {
363
+ return this;
364
+ }
365
+ };
366
+
367
+
368
+
369
+
370
+ /**
371
+ * Draw the Poly but doesn't stroke or fill - that's left to other functions
372
+ */
373
+ this.drawPoly =
374
+ this.DrawPoly = function ()
375
+ {
376
+ var coords = this.coords;
377
+
378
+ pa(this, ['b','m',coords[0][0], coords[0][1]]);
379
+
380
+ // Draw lines to subsequent coords
381
+ for (var i=1,len=coords.length; i<len; ++i) {
382
+ co.lineTo(coords[i][0],coords[i][1]);
383
+ }
384
+
385
+ // Close the path and stroke/fill it with whatever the current fill/stroke styles are
386
+ pa(this, ['lw', prop['chart.linewidth'], 'c','f',co.fillStyle, 's',co.strokeStyle]);
387
+ };
388
+
389
+
390
+
391
+
392
+ /**
393
+ * Not used by the class during creating the graph, but is used by event handlers
394
+ * to get the coordinates (if any) of the selected bar
395
+ *
396
+ * @param object e The event object
397
+ */
398
+ this.getShape = function (e)
399
+ {
400
+ var coords = this.coords;
401
+ var mouseXY = RGraph.getMouseXY(e);
402
+ var mouseX = mouseXY[0];
403
+ var mouseY = mouseXY[1];
404
+
405
+ // Should redraw the poly but not stroke or fill it and then use isPointInPath() to test it
406
+ // DON'T USE PATH OBJECT HERE
407
+ co.beginPath();
408
+ co.strokeStyle = 'rgba(0,0,0,0)';
409
+ co.fillStyle = 'rgba(0,0,0,0)';
410
+ this.DrawPoly();
411
+
412
+ if (co.isPointInPath(mouseX, mouseY)) {
413
+
414
+ return {
415
+ 0: this, 1: this.coords, 2: 0,
416
+ 'object': this, 'coords': this.coords, 'index': 0, 'tooltip': prop['chart.tooltips'] ? prop['chart.tooltips'][0] : null
417
+ };
418
+ }
419
+
420
+ return null;
421
+ };
422
+
423
+
424
+
425
+
426
+ /**
427
+ * This function positions a tooltip when it is displayed
428
+ *
429
+ * @param obj object The chart object
430
+ * @param int x The X coordinate specified for the tooltip
431
+ * @param int y The Y coordinate specified for the tooltip
432
+ * @param objec tooltip The tooltips DIV element
433
+ */
434
+ this.positionTooltip = function (obj, x, y, tooltip, idx)
435
+ {
436
+ var canvasXY = RGraph.getCanvasXY(obj.canvas);
437
+ var width = tooltip.offsetWidth;
438
+ var height = tooltip.offsetHeight;
439
+
440
+ // Set the top position
441
+ tooltip.style.left = 0;
442
+ tooltip.style.top = (y - height - 7) + 'px';
443
+
444
+ // By default any overflow is hidden
445
+ tooltip.style.overflow = '';
446
+
447
+ // The arrow
448
+ var img = new Image();
449
+ img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAFCAYAAACjKgd3AAAARUlEQVQYV2NkQAN79+797+RkhC4M5+/bd47B2dmZEVkBCgcmgcsgbAaA9GA1BCSBbhAuA/AagmwQPgMIGgIzCD0M0AMMAEFVIAa6UQgcAAAAAElFTkSuQmCC';
450
+ img.style.position = 'absolute';
451
+ img.id = '__rgraph_tooltip_pointer__';
452
+ img.style.top = (tooltip.offsetHeight - 2) + 'px';
453
+ tooltip.appendChild(img);
454
+
455
+
456
+
457
+
458
+ /**
459
+ * Reposition the tooltip if at the edges:
460
+ */
461
+
462
+
463
+
464
+ // LEFT edge
465
+ if (x - (width / 2) < 10) {
466
+ tooltip.style.left = (canvasXY[0] + x - (width * 0.1)) - 8.5+ 'px';
467
+ img.style.left = ((width * 0.1) - 8.5) + 'px';
468
+
469
+ // RIGHT edge
470
+ } else if ((x + (width / 2)) > doc.body.offsetWidth) {
471
+ tooltip.style.left = x - (width * 0.9) + 'px';
472
+ img.style.left = ((width * 0.9) - 8.5) + 'px';
473
+
474
+ // Default positioning - CENTERED
475
+ } else {
476
+ tooltip.style.left = x - (width / 2) + 'px';
477
+ img.style.left = ((width * 0.5) - 8.5) + 'px';
478
+ }
479
+ };
480
+
481
+
482
+
483
+
484
+ /**
485
+ * Each object type has its own Highlight() function which highlights the appropriate shape
486
+ *
487
+ * @param object shape The shape to highlight
488
+ */
489
+ this.highlight =
490
+ this.Highlight = function (shape)
491
+ {
492
+ // Evidentally this is necessary
493
+ co.fillStyle = prop['chart.fillstyle'];
494
+
495
+ // Add the new highlight
496
+ if (prop['chart.tooltips.highlight']) {
497
+ pa(this, ['b','fu', function (obj){obj.DrawPoly();},'f',prop['chart.highlight.fill'],'s',prop['chart.highlight.stroke']]);
498
+ }
499
+ };
500
+
501
+
502
+
503
+
504
+ /**
505
+ * This allows for easy specification of gradients
506
+ */
507
+ this.parseColors = function ()
508
+ {
509
+
510
+ // Save the original colors so that they can be restored when the canvas is reset
511
+ if (this.original_colors.length === 0) {
512
+ this.original_colors['chart.fillstyle'] = RG.array_clone(prop['chart.fillstyle']);
513
+ this.original_colors['chart.strokestyle'] = RG.array_clone(prop['chart.strokestyle']);
514
+ this.original_colors['chart.highlight.stroke'] = RG.array_clone(prop['chart.highlight.stroke']);
515
+ this.original_colors['chart.highlight.fill'] = RG.array_clone(prop['chart.highlight.fill']);
516
+ }
517
+
518
+
519
+
520
+
521
+ var func = this.parseSingleColorForGradient;
522
+
523
+ /**
524
+ * Parse various properties for colors
525
+ */
526
+ prop['chart.fillstyle'] = func(prop['chart.fillstyle']);
527
+ prop['chart.strokestyle'] = func(prop['chart.strokestyle']);
528
+ prop['chart.highlight.stroke'] = func(prop['chart.highlight.stroke']);
529
+ prop['chart.highlight.fill'] = func(prop['chart.highlight.fill']);
530
+ };
531
+
532
+
533
+
534
+
535
+ /**
536
+ * Use this function to reset the object to the post-constructor state. Eg reset colors if
537
+ * need be etc
538
+ */
539
+ this.reset = function ()
540
+ {
541
+ };
542
+
543
+
544
+
545
+
546
+ /**
547
+ * This parses a single color value
548
+ */
549
+ this.parseSingleColorForGradient = function (color)
550
+ {
551
+ if (!color) {
552
+ return color;
553
+ }
554
+
555
+ if (typeof color === 'string' && color.match(/^gradient\((.*)\)$/i)) {
556
+
557
+ var parts = RegExp.$1.split(':');
558
+
559
+ // Create the gradient
560
+ var grad = co.createLinearGradient(0,0,ca.width,0);
561
+
562
+ var diff = 1 / (parts.length - 1);
563
+
564
+ grad.addColorStop(0, RG.trim(parts[0]));
565
+
566
+ for (var j=1,len=parts.length; j<len; ++j) {
567
+ grad.addColorStop(j * diff, RG.trim(parts[j]));
568
+ }
569
+ }
570
+
571
+ return grad ? grad : color;
572
+ };
573
+
574
+
575
+
576
+
577
+ /**
578
+ * Using a function to add events makes it easier to facilitate method chaining
579
+ *
580
+ * @param string type The type of even to add
581
+ * @param function func
582
+ */
583
+ this.on = function (type, func)
584
+ {
585
+ if (type.substr(0,2) !== 'on') {
586
+ type = 'on' + type;
587
+ }
588
+
589
+ this[type] = func;
590
+
591
+ return this;
592
+ };
593
+
594
+
595
+
596
+
597
+ /**
598
+ * This function runs once only
599
+ * (put at the end of the file (before any effects))
600
+ */
601
+ this.firstDrawFunc = function ()
602
+ {
603
+ };
604
+
605
+ RG.att(ca);
606
+
607
+
608
+ /**
609
+ * Objects are now always registered so that the chart is redrawn if need be.
610
+ */
611
+ RG.Register(this);
612
+
613
+
614
+
615
+
616
+ /**
617
+ * This is the 'end' of the constructor so if the first argument
618
+ * contains configuration data - handle that.
619
+ */
620
+ if (parseConfObjectForOptions) {
621
+ RG.parseObjectStyleConfig(this, conf.options);
622
+ }
623
+ };