beyond-rails 0.0.192 → 0.0.197

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: b6454b3f8506a63482385f68ac87aad1024ff1527e0b66c43faed75dcef83c7c
4
- data.tar.gz: 967ce7aa6a0fcbe69cbf4393c52a906afe9d38a7b9bd4105b22fe433de2f6032
3
+ metadata.gz: 9032014c8dc22090470a9bf2ee4c3b6f861b530f6b20538896f266f3d8ca67bc
4
+ data.tar.gz: 6dc03f407892516d8be8bbdb31c43489f925525bac7ac44c890f5b2fec2f3f69
5
5
  SHA512:
6
- metadata.gz: 38d44f307931f8155b9f9660bc22eae0f87d1ca74273cb80366fceb44d25ece3ad9aef1ff60ec54feb3e0aa584dbbba386fa26ee84dcb096d6298b9789053b88
7
- data.tar.gz: c2dd56c84389d4c4ffffd0c2bbcb0aac5b4544eaa2ca5efc6f8e167dbb697fc9315b1c3ba870cfedb8096b59da08d736ccf53f5a89f4bce17914b2cc8b1d67d3
6
+ metadata.gz: 86f51a12a50544e2d4b6a078b4bd54298f0da1072bad2bba792a77e44222c358dbe76716a56242b34eaa350df6cd138ada2c3455a67e6e848f3be27fe7e4f96d
7
+ data.tar.gz: 3199bbbdd249ae0589a52dcfbf11eeaf186b25cf56fb5e42f1f55719a28cdbfccc05edc4dadb606a88cb7ac515e3a06035b107f6b66b28893f6c35f823d1afeb
@@ -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,
@@ -4,17 +4,14 @@
4
4
  padding: .75rem 1rem;
5
5
  margin-bottom: 1rem;
6
6
  list-style: none;
7
- .breadcrumb-item + .breadcrumb-item::before {
7
+ li + li::before {
8
8
  display: inline-block;
9
9
  padding-right: .7rem;
10
10
  padding-left: .7rem;
11
- color: #6c757d;
11
+ color: $text-color-strong;
12
12
  content: '/';
13
13
  }
14
- .breadcrumb-item.active {
15
- color: #6c757d;
16
- }
17
- .breadcrumb-item a {
18
- color: #000;
14
+ li:last-child {
15
+ color: $text-color-strong;
19
16
  }
20
17
  }
@@ -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.192
4
+ version: 0.0.197
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-08 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