beyond-rails 0.0.193 → 0.0.198

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d61bb2b7f5dafc4fab6358ca8c032488a4875977edfab11d8b7f3ffe0ac0cf39
4
- data.tar.gz: 9c139ae7a4e414096c3a9549aecddb07fe662b021032b97bb6c1667ba48cd94d
3
+ metadata.gz: d81d5fde8a2f2cc5d3f71a0421fe362d0b1e1b637487fad895d8dd7eaae101ef
4
+ data.tar.gz: 33db70f6b7e9f6bcc4ef755a55dc4c2bd18d1bd2fe8ced3575ffdf0cd63cca1b
5
5
  SHA512:
6
- metadata.gz: 240333d51da01189d62bdcb0e46ee6e23dfb9293afb633eda0e981cf8e6dfb6246a6b5daff0f024586c005ae740bf7c77b14524aedcd0a728e570da654f6bab8
7
- data.tar.gz: 275a9b0ad65ff19125d3c9420101e7cd0a29467a404cbe171c3d189aab11f9d4daf2a1801a0d231127ce805a036e542ed7cb877b0ba2e6e8430ac3558db2f6c9
6
+ metadata.gz: fc37bcf05ef5472fb2fdaf49fd098d8dcfb101d310abe16f891252457325ade7eb1a86b467d2a627068742a918296bdd0dd784be21c8d99fe07ab5e223ffe530
7
+ data.tar.gz: 0beca937c9dff930a4da40be3ef91c298f15152a94ca0fa52a195d66c5f2c100c6f56a33987d1d4b6311abfecfdf6ded1e44bbb07b14677870009870ce889fe4
@@ -20,7 +20,7 @@ export default class BarChart {
20
20
  this.options = options
21
21
  this.bars = []
22
22
 
23
- this.height = options.height || 186
23
+ this.height = options.height
24
24
  this.width = options.width
25
25
 
26
26
  this.toYLabel = isDef(options.toYLabel) ? mem(options.toYLabel) : (v => v)
@@ -46,7 +46,7 @@ export default class BarChart {
46
46
 
47
47
  init() {
48
48
  this.setDpr()
49
- this.setDomWidthIfNeeded()
49
+ this.setDomSizeIfNeeded()
50
50
  this.setCanvas()
51
51
  this.clear()
52
52
  this.bindMedia()
@@ -342,7 +342,7 @@ export default class BarChart {
342
342
  refresh() {
343
343
  this.raf(() => {
344
344
  this.clearBarPos()
345
- this.setDomWidthIfNeeded()
345
+ this.setDomSizeIfNeeded()
346
346
  this.setCanvasSize(this.canvas)
347
347
  this.setLabelWidths()
348
348
  this.setLabelHeights()
@@ -60,7 +60,8 @@ export default class DateMenu {
60
60
  }
61
61
 
62
62
  useSingleMenu() {
63
- return isTouchDevice() || this.options.useSingleMenu
63
+ const { useSingleMenu, isStatic } = this.options
64
+ return isTouchDevice() || isStatic || useSingleMenu
64
65
  }
65
66
 
66
67
  setHoveredCell(data) {
@@ -204,7 +205,8 @@ export default class DateMenu {
204
205
 
205
206
  addMenu() {
206
207
  const dom = document.createElement('div')
207
- dom.className = 'date-menu'
208
+ const className = this.options.isStatic ? 'date-menu static' : 'date-menu'
209
+ dom.className = className
208
210
 
209
211
  if (this.useSingleMenu()) {
210
212
  dom.innerHTML = `
@@ -257,7 +259,15 @@ export default class DateMenu {
257
259
  this.btnPrev = dom.querySelector('[data-btn-prev]')
258
260
  this.btnNext = dom.querySelector('[data-btn-next]')
259
261
  }
260
- document.body.appendChild(dom)
262
+
263
+ const container = this.options.dom
264
+
265
+ if (container) {
266
+ container.appendChild(dom)
267
+ }
268
+ else {
269
+ document.body.appendChild(dom)
270
+ }
261
271
  this.dom = dom
262
272
  }
263
273
 
@@ -350,8 +360,17 @@ export default class DateMenu {
350
360
  show(src) {
351
361
  const { dom } = this
352
362
  dom.style.opacity = 0
353
- dom.style.display = 'block'
354
- this.pos(src)
363
+
364
+ if (this.options.isStatic) {
365
+ dom.style.display = 'inline-block'
366
+ }
367
+ else {
368
+ dom.style.display = 'block'
369
+ }
370
+
371
+ if (src) {
372
+ this.pos(src)
373
+ }
355
374
  dom.style.opacity = 1
356
375
  this.isVisible = true
357
376
  }
@@ -41,7 +41,7 @@ export default class LineChart {
41
41
  this.dom = dom
42
42
  this.options = options
43
43
  this.pointsArr = []
44
- this.height = options.height || 150
44
+ this.height = options.height
45
45
  this.width = options.width
46
46
 
47
47
  this.toXLabel = isDef(options.toXLabel) ? mem(options.toXLabel) : (v => v)
@@ -76,7 +76,7 @@ export default class LineChart {
76
76
 
77
77
  init() {
78
78
  this.setDpr()
79
- this.setDomWidthIfNeeded()
79
+ this.setDomSizeIfNeeded()
80
80
  this.setCanvas()
81
81
  this.clear()
82
82
  this.bindMedia()
@@ -438,12 +438,13 @@ export default class LineChart {
438
438
  refresh() {
439
439
  this.raf(() => {
440
440
  this.clearPointPos()
441
- this.setDomWidthIfNeeded()
441
+ this.setDomSizeIfNeeded()
442
442
  this.setCanvasSize(this.canvas)
443
443
  this.layers.forEach(layer => this.setCanvasSize(layer.canvas))
444
444
  this.setLabelWidths()
445
445
  this.setLabelHeights()
446
446
  this.setAxisData()
447
+ this.updateLabelSizeForAutoStep()
447
448
  this.setPointPos()
448
449
  this.draw()
449
450
  })
@@ -496,6 +497,7 @@ export default class LineChart {
496
497
  this.setLabelWidths()
497
498
  this.setLabelHeights()
498
499
  this.setAxisData()
500
+ this.updateLabelSizeForAutoStep()
499
501
  this.setPointPos()
500
502
  this.raf(() => this.draw())
501
503
  }
@@ -513,6 +515,22 @@ export default class LineChart {
513
515
  })
514
516
  }
515
517
 
518
+ updateLabelSizeForAutoStep() {
519
+ const { measureWidth } = this
520
+ if (isUndef(this.xStep)) {
521
+ this.xLabelWidth = this.xLabelRows.reduce((width, row) => {
522
+ const measuredWidth = row.length
523
+ return (measuredWidth > width) ? measuredWidth : width
524
+ }, 0)
525
+ }
526
+ if (isUndef(this.yStep)) {
527
+ this.yLabelWidth = this.yLabelRows.reduce((width, row) => {
528
+ const measuredWidth = measureWidth.call(this, row.label)
529
+ return (measuredWidth > width) ? measuredWidth : width
530
+ }, 0)
531
+ }
532
+ }
533
+
516
534
  destroy() {
517
535
  const { dom, canvas } = this
518
536
  const { toXLabel, toYLabel } = this.options
@@ -155,6 +155,10 @@ export default function chartCommon(target) {
155
155
  return [stepStart, stepEnd]
156
156
  }
157
157
 
158
+ measureWidth(value) {
159
+ return this.ctx.measureText(value).width
160
+ }
161
+
158
162
  raf(fn) {
159
163
  if (isDef(window.requestAnimationFrame)) {
160
164
  return window.requestAnimationFrame(fn)
@@ -201,10 +205,13 @@ export default function chartCommon(target) {
201
205
  canvas.getContext('2d').scale(dpr, dpr)
202
206
  }
203
207
 
204
- setDomWidthIfNeeded() {
208
+ setDomSizeIfNeeded() {
205
209
  if (isUndef(this.options.width)) {
206
210
  this.width = this.dom.offsetWidth
207
211
  }
212
+ if (isUndef(this.options.height)) {
213
+ this.height = this.dom.offsetHeight
214
+ }
208
215
  }
209
216
 
210
217
  setDpr() {
@@ -9,6 +9,7 @@ import Autocomplete from './components/Autocomplete'
9
9
  import BarChart from './components/BarChart'
10
10
  import Btn from './components/Btn'
11
11
  import Checkbox from './components/Checkbox'
12
+ import DateMenu from './components/DateMenu'
12
13
  import DateTimeRanger from './components/DateTimeRanger'
13
14
  import Datepicker from './components/Datepicker'
14
15
  import Dropdown from './components/Dropdown'
@@ -33,6 +34,7 @@ export {
33
34
  BarChart,
34
35
  Btn,
35
36
  Checkbox,
37
+ DateMenu,
36
38
  DateTimeRanger,
37
39
  Datepicker,
38
40
  Dropdown,
@@ -2,6 +2,7 @@
2
2
  outline: 0;
3
3
  background-color: #fff;
4
4
  display: inline-flex;
5
+ justify-content: center;
5
6
  align-items: center;
6
7
  border: 0;
7
8
  padding: 6px 12px 7px;
@@ -6,6 +6,9 @@
6
6
  0 5px 15px 0 rgba(0, 0, 0, .08);
7
7
  background-color: #fff;
8
8
  white-space: nowrap;
9
+ &.static {
10
+ position: static;
11
+ }
9
12
  .date-menu-content {
10
13
  display: inline-block;
11
14
  position: relative;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beyond-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.193
4
+ version: 0.0.198
5
5
  platform: ruby
6
6
  authors:
7
7
  - kmsheng
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-09-10 00:00:00.000000000 Z
12
+ date: 2020-09-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sassc