beyond-rails 0.0.187 → 0.0.192

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) 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/abstracts/_variables.scss +1 -1
  38. data/src/sass/components/_breadcrumb.scss +3 -0
  39. data/src/sass/components/_chart.scss +14 -0
  40. data/src/sass/components/_mega-menu.scss +24 -28
  41. data/src/sass/components/_nav.scss +1 -0
  42. 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';
@@ -1,7 +1,7 @@
1
1
  $beyond-use-helper: false !default;
2
2
 
3
3
  // texts
4
- $text-color-strong: #3c4257;
4
+ $text-color-strong: #1a1f36;
5
5
  $text-color: #3c4257;
6
6
  $text-color-light: #828695;
7
7
 
@@ -14,4 +14,7 @@
14
14
  .breadcrumb-item.active {
15
15
  color: #6c757d;
16
16
  }
17
+ .breadcrumb-item a {
18
+ color: #000;
19
+ }
17
20
  }
@@ -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,33 +18,16 @@
8
18
  .mega-menu-col {
9
19
  padding: .7rem 1.5rem;
10
20
  flex-grow: 1;
11
- transition: .3s background-color;
12
- &:hover {
13
- background-color: #f6f6f6;
14
- }
15
21
  min-width: 180px;
16
- color: $text-color;
17
22
  display: flex;
18
23
  align-items: center;
19
- i {
20
- margin-right: .6rem;
21
- }
22
- }
23
- .mega-menu-label {
24
- padding-left: 1.5rem;
25
- margin-top: 1rem;
26
- margin-bottom: .5rem;
27
- color: $text-color-light;
28
- font-size: 12px;
24
+ @include mega-menu-text;
29
25
  }
30
26
  .mega-menu-item {
31
27
  transition: .3s background-color;
32
- &:hover {
33
- background-color: #f6f6f6;
34
- }
35
- color: $text-color;
36
28
  display: block;
37
- padding: .5rem 2.2rem;
29
+ padding: .7rem 1.5rem;
30
+ @include mega-menu-text;
38
31
  }
39
32
  .mega-menu-icon-box {
40
33
  display: table;
@@ -46,15 +39,18 @@
46
39
  .mega-menu-icon-box-item {
47
40
  cursor: pointer;
48
41
  transition: .3s all;
49
- &:hover {
50
- color: $text-color;
51
- background-color: #f6f6f6;
52
- }
53
42
  display: table-cell;
54
- padding: 1rem 1.8rem;
55
- color: $color-primary;
43
+ padding: 1rem 1.5rem;
56
44
  text-align: center;
45
+ @include mega-menu-text;
46
+ &:hover {
47
+ i {
48
+ color: $mega-menu-text-color;
49
+ }
50
+ }
57
51
  i {
52
+ transition: .3s color;
53
+ color: #88add2;
58
54
  display: block;
59
55
  margin-bottom: .4rem;
60
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.187
4
+ version: 0.0.192
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-08 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