beyond-rails 0.0.188 → 0.0.193

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/src/js/components/Alert.js +1 -1
  3. data/src/js/components/Autocomplete.js +1 -1
  4. data/src/js/components/AutocompleteMenu.js +1 -1
  5. data/src/js/components/BarChart.js +452 -0
  6. data/src/js/components/Btn.js +1 -1
  7. data/src/js/components/Checkbox.js +1 -1
  8. data/src/js/components/DateInput.js +1 -1
  9. data/src/js/components/DateMenu.js +1 -1
  10. data/src/js/components/DateTimeRanger.js +1 -1
  11. data/src/js/components/Datepicker.js +1 -1
  12. data/src/js/components/DatepickerBtnArrow.js +1 -1
  13. data/src/js/components/Dropdown.js +1 -1
  14. data/src/js/components/LineChart.js +535 -0
  15. data/src/js/components/Menu.js +1 -1
  16. data/src/js/components/Modal.js +76 -31
  17. data/src/js/components/Navbar.js +1 -1
  18. data/src/js/components/Radio.js +1 -1
  19. data/src/js/components/SearchDropdown.js +1 -1
  20. data/src/js/components/Sidebar.js +1 -1
  21. data/src/js/components/Tabbox.js +1 -1
  22. data/src/js/components/TimeInput.js +1 -1
  23. data/src/js/components/TimeMenu.js +1 -1
  24. data/src/js/components/Timepicker.js +1 -1
  25. data/src/js/components/Toast.js +1 -1
  26. data/src/js/components/ToastItem.js +1 -1
  27. data/src/js/components/Tooltip.js +1 -1
  28. data/src/js/decorators/chartCommon.js +218 -0
  29. data/src/js/{utils → decorators}/supportDom.js +1 -1
  30. data/src/js/index.js +6 -2
  31. data/src/js/jquery/bindModalFn.js +57 -6
  32. data/src/js/utils/index.js +10 -1
  33. data/src/js/utils/isDef.js +3 -0
  34. data/src/js/utils/isInt.js +3 -0
  35. data/src/js/utils/isUndef.js +3 -0
  36. data/src/sass/_beyond.scss +1 -0
  37. data/src/sass/components/_breadcrumb.scss +4 -4
  38. data/src/sass/components/_chart.scss +14 -0
  39. data/src/sass/components/_mega-menu.scss +22 -28
  40. data/src/sass/components/_nav.scss +1 -0
  41. metadata +28 -9
@@ -1,4 +1,4 @@
1
- import { isFunction } from './index'
1
+ import { isFunction } from '../utils'
2
2
  import createdComponents from '../consts/createdComponents'
3
3
 
4
4
  export default function supportDom(target) {
@@ -6,19 +6,21 @@ import './polyfills/nodeRemove'
6
6
  import './polyfills/elementDataset'
7
7
  import Alert from './components/Alert'
8
8
  import Autocomplete from './components/Autocomplete'
9
+ import BarChart from './components/BarChart'
9
10
  import Btn from './components/Btn'
10
11
  import Checkbox from './components/Checkbox'
11
12
  import DateTimeRanger from './components/DateTimeRanger'
12
13
  import Datepicker from './components/Datepicker'
13
14
  import Dropdown from './components/Dropdown'
15
+ import LineChart from './components/LineChart'
14
16
  import Menu from './components/Menu'
15
17
  import Modal from './components/Modal'
16
18
  import Navbar from './components/Navbar'
17
19
  import Radio from './components/Radio'
18
20
  import SearchDropdown from './components/SearchDropdown'
19
21
  import Sidebar from './components/Sidebar'
20
- import Timepicker from './components/Timepicker'
21
22
  import Tabbox from './components/Tabbox'
23
+ import Timepicker from './components/Timepicker'
22
24
  import Toast from './components/Toast'
23
25
  import Tooltip from './components/Tooltip'
24
26
  import bind from './utils/bind'
@@ -28,19 +30,21 @@ import unbindAll from './utils/unbindAll'
28
30
  export {
29
31
  Alert,
30
32
  Autocomplete,
33
+ BarChart,
31
34
  Btn,
32
35
  Checkbox,
33
36
  DateTimeRanger,
34
37
  Datepicker,
35
38
  Dropdown,
39
+ LineChart,
36
40
  Menu,
37
41
  Modal,
38
42
  Navbar,
39
43
  Radio,
40
44
  SearchDropdown,
41
45
  Sidebar,
42
- Timepicker,
43
46
  Tabbox,
47
+ Timepicker,
44
48
  Toast,
45
49
  Tooltip,
46
50
  bind,
@@ -1,14 +1,65 @@
1
1
  export default function bindModalFn(beyond, $) {
2
2
 
3
- const { Modal } = beyond
4
-
5
- $.fn.modal = function(settings) {
3
+ $.fn.modal = function(settings, html) {
6
4
 
7
- const options = $.extend({}, $.fn.modal.defaults, settings)
8
- const modals = this.map((i, dom) => new Modal(dom, options))
5
+ if (typeof settings === 'string') {
6
+ const method = settings
7
+ initModals(this, $.fn.modal.defaults)
8
+ if (method === 'open?') {
9
+ return this.map((i, dom) => dom._modal.visible())
10
+ }
11
+ this.each((i, dom) => dom._modal[method](html))
12
+ }
13
+ else {
14
+ const options = $.extend({}, $.fn.modal.defaults, settings)
15
+ initModals(this, options)
16
+ }
9
17
 
10
- this.destroy = () => modals.each((i, m) => m.destroy())
18
+ this.destroy = () => this.each((i, dom) => dom._modal && dom._modal.destroy())
11
19
 
12
20
  return this
13
21
  }
22
+
23
+ $.uniqModal = getUniqModalSelector
24
+ }
25
+
26
+ function initModals(self, options) {
27
+ const { Modal } = beyond
28
+ self.each((i, dom) => {
29
+ if (! dom._modal) {
30
+ dom._modal = new Modal(dom, options)
31
+ }
32
+ })
33
+ }
34
+
35
+ function getUniqModalSelector() {
36
+ const id = 'beyond-uniq-modal'
37
+ const dom = document.getElementById(id)
38
+ if (dom) {
39
+ return $(`#${id}`)
40
+ }
41
+ const div = document.createElement('div')
42
+ div.id = id
43
+ div.className = 'modal'
44
+ div.innerHTML = `
45
+ <div class="modal-dialog">
46
+ <div class="modal-content">
47
+ <div class="modal-header">
48
+ <h5 class="modal-title">視窗標題</h5>
49
+ <button type="button" class="btn-close" data-close aria-label="Close">
50
+ <i class="icon icon-cross"></i>
51
+ </button>
52
+ </div>
53
+ <div class="modal-body bg-content">
54
+ 視窗內文
55
+ </div>
56
+ <div class="modal-footer">
57
+ <button data-cancel class="btn btn-outline">取消</button>
58
+ <button data-confirm class="btn btn-primary">確認</button>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ `
63
+ document.body.appendChild(div)
64
+ return $(div)
14
65
  }
@@ -33,6 +33,10 @@ import isFunction from 'lodash.isfunction'
33
33
  import noop from 'lodash.noop'
34
34
  import range from 'lodash.range'
35
35
  import throttle from 'lodash.throttle'
36
+ import uniqBy from 'lodash.uniqby'
37
+ import sortBy from 'lodash.sortby'
38
+
39
+ import mem from 'mem'
36
40
 
37
41
  export {
38
42
  // @superlanding
@@ -69,5 +73,10 @@ export {
69
73
  isFunction,
70
74
  noop,
71
75
  range,
72
- throttle
76
+ throttle,
77
+ uniqBy,
78
+ sortBy,
79
+
80
+ // others
81
+ mem
73
82
  }
@@ -0,0 +1,3 @@
1
+ export default function isDef(value) {
2
+ return (typeof value !== 'undefined')
3
+ }
@@ -0,0 +1,3 @@
1
+ export default function isInt(value) {
2
+ return (value % 1) === 0
3
+ }
@@ -0,0 +1,3 @@
1
+ export default function isUndef(value) {
2
+ return (typeof value === 'undefined')
3
+ }
@@ -50,3 +50,4 @@
50
50
  @import './components/_tooltip';
51
51
  @import './components/_switch';
52
52
  @import './components/_mega-menu';
53
+ @import './components/_chart';
@@ -4,14 +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;
14
+ li:last-child {
15
+ color: $text-color-strong;
16
16
  }
17
17
  }
@@ -0,0 +1,14 @@
1
+ .chart {
2
+ font-family: Roboto;
3
+ }
4
+
5
+ .chart-menu {
6
+ display: none;
7
+ position: absolute;
8
+ background-color: #fff;
9
+ padding: 10px 13px;
10
+ box-shadow: 4px 4px 15px 1px rgba(68, 68, 72, .12);
11
+ color: #3c4257;
12
+ z-index: 1;
13
+ border: 1px solid #e8e8e8;
14
+ }
@@ -1,6 +1,16 @@
1
+ $mega-menu-text-color: #0a2540;
2
+ $mega-menu-text-color-ex: #8A8D90;
3
+
4
+ @mixin mega-menu-text() {
5
+ transition: .3s color;
6
+ color: $mega-menu-text-color;
7
+ &:hover {
8
+ color: $mega-menu-text-color-ex;
9
+ }
10
+ }
11
+
1
12
  .mega-menu {
2
- padding-top: .2rem;
3
- padding-bottom: .2rem;
13
+ font-size: .9375rem;
4
14
  }
5
15
  .mega-menu-divider {
6
16
  border-bottom: 1px solid #ebebeb;
@@ -8,35 +18,16 @@
8
18
  .mega-menu-col {
9
19
  padding: .7rem 1.5rem;
10
20
  flex-grow: 1;
11
- transition: .3s background-color;
12
21
  min-width: 180px;
13
- color: $text-color;
14
22
  display: flex;
15
23
  align-items: center;
16
- &:hover {
17
- color: $text-color-strong;
18
- background-color: #f6f6f6;
19
- }
20
- i {
21
- margin-right: .6rem;
22
- }
23
- }
24
- .mega-menu-label {
25
- padding-left: 1.5rem;
26
- margin-top: 1rem;
27
- margin-bottom: .5rem;
28
- color: $text-color-light;
29
- font-size: 12px;
24
+ @include mega-menu-text;
30
25
  }
31
26
  .mega-menu-item {
32
27
  transition: .3s background-color;
33
- color: $text-color;
34
28
  display: block;
35
- padding: .5rem 2.2rem;
36
- &:hover {
37
- color: $text-color-strong;
38
- background-color: #f6f6f6;
39
- }
29
+ padding: .7rem 1.5rem;
30
+ @include mega-menu-text;
40
31
  }
41
32
  .mega-menu-icon-box {
42
33
  display: table;
@@ -49,14 +40,17 @@
49
40
  cursor: pointer;
50
41
  transition: .3s all;
51
42
  display: table-cell;
52
- padding: 1rem 1.8rem;
53
- color: $color-primary;
43
+ padding: 1rem 1.5rem;
54
44
  text-align: center;
45
+ @include mega-menu-text;
55
46
  &:hover {
56
- color: $text-color-strong;
57
- background-color: #f6f6f6;
47
+ i {
48
+ color: $mega-menu-text-color;
49
+ }
58
50
  }
59
51
  i {
52
+ transition: .3s color;
53
+ color: #88add2;
60
54
  display: block;
61
55
  margin-bottom: .4rem;
62
56
  }
@@ -43,6 +43,7 @@
43
43
  margin-right: .8rem;
44
44
  }
45
45
  }
46
+ .nav-item:active,
46
47
  .nav-item.active {
47
48
  color: $color-primary;
48
49
  }
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.188
4
+ version: 0.0.193
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-08-31 00:00:00.000000000 Z
12
+ date: 2020-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sassc
@@ -18,6 +18,9 @@ dependencies:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: 2.0.0
21
+ - - "~>"
22
+ - !ruby/object:Gem::Version
23
+ version: '2.0'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,46 +28,55 @@ dependencies:
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
27
30
  version: 2.0.0
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: autoprefixer-rails
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '9.7'
32
41
  - - ">="
33
42
  - !ruby/object:Gem::Version
34
- version: 5.2.1
43
+ version: 9.7.6
35
44
  type: :runtime
36
45
  prerelease: false
37
46
  version_requirements: !ruby/object:Gem::Requirement
38
47
  requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '9.7'
39
51
  - - ">="
40
52
  - !ruby/object:Gem::Version
41
- version: 5.2.1
53
+ version: 9.7.6
42
54
  - !ruby/object:Gem::Dependency
43
55
  name: actionpack
44
56
  requirement: !ruby/object:Gem::Requirement
45
57
  requirements:
46
- - - ">="
58
+ - - "~>"
47
59
  - !ruby/object:Gem::Version
48
60
  version: '5.0'
49
61
  type: :runtime
50
62
  prerelease: false
51
63
  version_requirements: !ruby/object:Gem::Requirement
52
64
  requirements:
53
- - - ">="
65
+ - - "~>"
54
66
  - !ruby/object:Gem::Version
55
67
  version: '5.0'
56
68
  - !ruby/object:Gem::Dependency
57
69
  name: activemodel
58
70
  requirement: !ruby/object:Gem::Requirement
59
71
  requirements:
60
- - - ">="
72
+ - - "~>"
61
73
  - !ruby/object:Gem::Version
62
74
  version: '5.0'
63
75
  type: :runtime
64
76
  prerelease: false
65
77
  version_requirements: !ruby/object:Gem::Requirement
66
78
  requirements:
67
- - - ">="
79
+ - - "~>"
68
80
  - !ruby/object:Gem::Version
69
81
  version: '5.0'
70
82
  description:
@@ -101,6 +113,7 @@ files:
101
113
  - src/js/components/Alert.js
102
114
  - src/js/components/Autocomplete.js
103
115
  - src/js/components/AutocompleteMenu.js
116
+ - src/js/components/BarChart.js
104
117
  - src/js/components/Btn.js
105
118
  - src/js/components/Checkbox.js
106
119
  - src/js/components/DateInput.js
@@ -109,6 +122,7 @@ files:
109
122
  - src/js/components/Datepicker.js
110
123
  - src/js/components/DatepickerBtnArrow.js
111
124
  - src/js/components/Dropdown.js
125
+ - src/js/components/LineChart.js
112
126
  - src/js/components/Menu.js
113
127
  - src/js/components/Modal.js
114
128
  - src/js/components/Navbar.js
@@ -124,6 +138,8 @@ files:
124
138
  - src/js/components/Tooltip.js
125
139
  - src/js/consts/createdComponents.js
126
140
  - src/js/consts/index.js
141
+ - src/js/decorators/chartCommon.js
142
+ - src/js/decorators/supportDom.js
127
143
  - src/js/index.js
128
144
  - src/js/jquery/bindAlertFn.js
129
145
  - src/js/jquery/bindAutocompleteFn.js
@@ -160,10 +176,12 @@ files:
160
176
  - src/js/utils/getFloatedTargetPos.js
161
177
  - src/js/utils/getKey.js
162
178
  - src/js/utils/index.js
179
+ - src/js/utils/isDef.js
180
+ - src/js/utils/isInt.js
163
181
  - src/js/utils/isTouchDevice.js
182
+ - src/js/utils/isUndef.js
164
183
  - src/js/utils/msToS.js
165
184
  - src/js/utils/promisify.js
166
- - src/js/utils/supportDom.js
167
185
  - src/js/utils/unbindAll.js
168
186
  - src/sass/_beyond-sprockets.scss
169
187
  - src/sass/_beyond.scss
@@ -181,6 +199,7 @@ files:
181
199
  - src/sass/components/_btn-group.scss
182
200
  - src/sass/components/_btn.scss
183
201
  - src/sass/components/_card.scss
202
+ - src/sass/components/_chart.scss
184
203
  - src/sass/components/_checkbox.scss
185
204
  - src/sass/components/_date-input.scss
186
205
  - src/sass/components/_date-menu.scss