beyond-rails 0.0.193 → 0.0.198

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.
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