material 0.7.0 → 0.7.2

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 (148) hide show
  1. package/README.md +1 -5
  2. package/dist/demo-bundle.js +2281 -2
  3. package/dist/demo-bundle.js.map +7 -1
  4. package/dist/demo.js +13 -13
  5. package/esbuild.js +22 -0
  6. package/esbuild.watch.js +25 -0
  7. package/form.js +27 -0
  8. package/index.js +59 -58
  9. package/list.js +35 -0
  10. package/package.json +8 -17
  11. package/src/appbar.js +7 -204
  12. package/src/badge.js +27 -0
  13. package/src/button.js +127 -177
  14. package/src/calendar.js +53 -55
  15. package/src/card.js +1 -3
  16. package/src/checkbox.js +5 -55
  17. package/src/component.js +0 -2
  18. package/src/container.js +0 -2
  19. package/src/datehour.js +38 -0
  20. package/src/dialog.js +104 -151
  21. package/src/divider.js +1 -3
  22. package/src/drawer.js +1 -19
  23. package/src/element/attribute.js +7 -10
  24. package/src/element/build.js +6 -7
  25. package/src/element/create.js +3 -6
  26. package/src/element/event.js +2 -2
  27. package/src/element/insert.js +6 -17
  28. package/src/element/observer.js +22 -0
  29. package/src/element/offset.js +2 -2
  30. package/src/element/style.js +12 -12
  31. package/src/element.js +2 -2
  32. package/src/field/email.js +9 -44
  33. package/src/field/image.js +17 -51
  34. package/src/{control/file.js → file.js} +15 -45
  35. package/src/form/build.js +7 -7
  36. package/src/form/controller.js +8 -8
  37. package/src/form/create.js +1 -1
  38. package/src/form/data.js +9 -9
  39. package/src/form/delete.js +1 -1
  40. package/src/form/render.js +9 -9
  41. package/src/form/set.js +1 -1
  42. package/src/form/submit.js +6 -6
  43. package/src/form/update.js +3 -3
  44. package/src/form/verify.js +6 -6
  45. package/src/form.js +9 -11
  46. package/src/icon.js +4 -6
  47. package/src/image.js +39 -106
  48. package/src/item.js +1 -3
  49. package/src/layout.js +14 -14
  50. package/src/{control/link.js → link.js} +13 -32
  51. package/src/list/build.js +10 -10
  52. package/src/list/click.js +3 -3
  53. package/src/list/collection.js +1 -1
  54. package/src/list/filter.js +11 -11
  55. package/src/list/image.js +3 -3
  56. package/src/list/render.js +15 -15
  57. package/src/list/request.js +8 -8
  58. package/src/list/search.js +12 -12
  59. package/src/list/select.js +18 -18
  60. package/src/list/status.js +1 -1
  61. package/src/list/update.js +6 -6
  62. package/src/list/virtual.js +20 -20
  63. package/src/list/virtual.new.js +5 -5
  64. package/src/list.js +29 -217
  65. package/src/loading.js +73 -0
  66. package/src/map/build.js +2 -2
  67. package/src/map/countries.js +8 -8
  68. package/src/map/display.js +13 -13
  69. package/src/map/focus.js +7 -7
  70. package/src/map/select.js +2 -2
  71. package/src/map/set.js +3 -3
  72. package/src/map/viewport.js +11 -11
  73. package/src/menu.js +59 -115
  74. package/src/mixin/control.js +3 -3
  75. package/src/mixin/controller.js +5 -5
  76. package/src/mixin/create.js +1 -1
  77. package/src/mixin/display.js +1 -2
  78. package/src/mixin/events.js +4 -16
  79. package/src/mixin/focus.js +1 -1
  80. package/src/mixin/icon.js +2 -2
  81. package/src/mixin/init.js +2 -2
  82. package/src/mixin/insert.js +7 -29
  83. package/src/mixin/label.js +2 -2
  84. package/src/mixin/settings.js +5 -5
  85. package/src/module/attach.js +35 -49
  86. package/src/{control/module → module}/attributes.js +4 -4
  87. package/src/module/build.js +12 -12
  88. package/src/module/classify.js +4 -4
  89. package/src/module/controller.js +5 -32
  90. package/src/module/css.js +12 -84
  91. package/src/module/dataset.js +1 -1
  92. package/src/module/dom.js +8 -3
  93. package/src/module/dot.js +4 -4
  94. package/src/module/emitter.js +1 -1
  95. package/src/module/event.js +2 -2
  96. package/src/module/events.js +29 -35
  97. package/src/module/extract.js +10 -10
  98. package/src/module/last.js +18 -0
  99. package/src/module/mediator.js +1 -13
  100. package/src/module/object.js +4 -4
  101. package/src/module/observer.js +43 -16
  102. package/src/module/remove.js +10 -10
  103. package/src/module/ripple.js +19 -24
  104. package/src/module/scrollbar.js +10 -14
  105. package/src/module/smoothscroll.js +5 -9
  106. package/src/module/utils.js +14 -23
  107. package/src/module/viewport.js +5 -5
  108. package/src/navigation.js +19 -0
  109. package/src/progress.js +1 -11
  110. package/src/search.js +66 -0
  111. package/src/select.js +58 -273
  112. package/src/{control/selecter.js → selecter.js} +42 -42
  113. package/src/selector.js +3 -3
  114. package/src/skin/material/component/navigation.sass +9 -0
  115. package/src/skin/material/control/button.sass +10 -0
  116. package/src/slider.js +1 -3
  117. package/src/snackbar.js +72 -50
  118. package/src/switch.js +111 -103
  119. package/src/{control/switcher.js → switcher.js} +28 -31
  120. package/src/tabs.js +4 -5
  121. package/src/tabview.js +26 -46
  122. package/src/text.js +25 -74
  123. package/src/textfield.js +97 -234
  124. package/src/toolbar.js +12 -12
  125. package/src/tooltip.js +7 -7
  126. package/src/tree.js +10 -66
  127. package/src/view/build.js +2 -2
  128. package/src/view/dataset.js +1 -1
  129. package/src/view.js +9 -74
  130. package/rollup.config.js +0 -34
  131. package/src/banner.js +0 -231
  132. package/src/control/button.js +0 -239
  133. package/src/control/button.new.js +0 -190
  134. package/src/control/datehour.js +0 -65
  135. package/src/control/dialog.js +0 -175
  136. package/src/control/image.js +0 -92
  137. package/src/control/list.js +0 -67
  138. package/src/control/loading.js +0 -128
  139. package/src/control/menu.js +0 -85
  140. package/src/control/module/addclass.js +0 -16
  141. package/src/control/search.js +0 -98
  142. package/src/control/select.js +0 -130
  143. package/src/control/snackbar.js +0 -91
  144. package/src/control/switch.js +0 -272
  145. package/src/control/text.js +0 -70
  146. package/src/control/textfield.js +0 -177
  147. package/src/element/ripple.js +0 -90
  148. package/src/tabs/setup.js +0 -0
package/src/button.js CHANGED
@@ -1,234 +1,184 @@
1
- 'use strict'
2
-
3
- import create from './mixin/create'
4
- import control from './mixin/control'
1
+ import EventEmitter from './mixin/emitter'
2
+ import build from './module/build'
3
+ import display from './mixin/display'
4
+ import bindEvents from './module/events'
5
+ import dataset from './module/dataset'
5
6
  import ripple from './module/ripple'
6
7
 
7
- import insert from './element/insert'
8
+ const DEFAULT_TYPE = 'button'
9
+ const DEFAULT_CLASS = 'button'
8
10
 
9
- import emitter from './module/emitter'
10
- import attach from './module/attach'
11
+ class Button extends EventEmitter {
12
+ static isComponent () {
13
+ return true
14
+ }
11
15
 
12
- const defaults = {
13
- prefix: 'material',
14
- class: 'button',
15
- tag: 'button',
16
- ripple: true,
17
- events: [
18
- ['root.click', 'handleClick'],
19
- ['root.mouseover', 'handleMouseOver']
20
- ]
21
- }
16
+ static defaults = {
17
+ class: DEFAULT_CLASS,
18
+ tag: 'button',
19
+ styles: ['style', 'color'],
20
+ ripple: true,
21
+ stopPropagation: false,
22
+ events: [
23
+ ['element.click', 'click'],
24
+ ['element.mousedown', 'mousedown'],
25
+ ['element.mouseup', 'mouseup'],
26
+ ['element.mouseleave', 'mouseup'],
27
+ ['element.touchstart', 'mousedown'],
28
+ ['element.touchend', 'mouseup']
29
+ ]
30
+ }
22
31
 
23
- /**
24
- * Class that represents a button
25
- * @class
26
- * @since 0.0.1
27
- * @example
28
- * var button = new Button({
29
- * label: 'Button raised',
30
- * type: 'raised',
31
- * color: 'primary'
32
- * }).on('click', function(e) {
33
- * console.log('button click', e);
34
- * }).insert(document.body);
35
- */
36
- class Button {
37
- /**
38
- * The init method of the Button class
39
- * @param {Object} options [description]
40
- * @private
41
- * @return {Object} The class instance
42
- */
43
32
  constructor (options) {
33
+ super()
34
+
44
35
  this.init(options)
45
36
  this.build()
46
37
  this.setup()
47
- this.attach()
48
-
49
- this.emit('ready')
50
-
51
- return this
38
+ this.bindEvents()
52
39
  }
53
40
 
54
- /**
55
- * [init description]
56
- * @param {?} options [description]
57
- * @return {?} [description]
58
- */
59
41
  init (options) {
60
- this.options = Object.assign({}, defaults, options || {})
61
- Object.assign(this, control, emitter, attach)
62
-
63
- this.element = this.element || {}
64
-
65
- // init module$
66
-
67
- this.emit('init')
42
+ this.options = { ...Button.defaults, ...options }
43
+ Object.assign(this, build, display, bindEvents)
68
44
  }
69
45
 
70
- /**
71
- * Build button's method
72
- * @override
73
- * @return {void}
74
- */
75
- build () {
76
- this.element = {}
77
-
78
- this.element = create(this.options)
79
-
80
- this.options.label = this.options.label || this.options.text
81
-
82
- this.element.setAttribute('aria-label', this.options.label || this.options.name)
83
-
84
- if (this.options.title) {
85
- this.element.setAttribute('title', this.options.title)
86
- }
87
-
88
- this.label(this.options.label)
89
- this.icon(this.options.icon)
90
-
91
- if (this.options.tooltip) {
92
- this.element.dataset.tooltip = this.options.tooltip
93
- }
94
-
95
- if (this.options.container) {
96
- if (this.options.container.root) {
97
- this.container = this.options.container.root
98
- } else {
99
- this.container = this.options.container
100
- }
101
- insert(this.element, this.options.container)
102
- }
46
+ setup () {
47
+ this.setAttributes()
48
+ this.styleAttributes()
49
+ this.buildElements()
103
50
 
104
- if (this.options.ripple) {
105
- ripple(this.element)
51
+ if (this.options.text) {
52
+ this.element.innerHTML = this.element.innerHTML + this.options.text
106
53
  }
54
+ }
107
55
 
108
- return this
56
+ buildElements () {
57
+ this.buildIcon()
58
+ this.buildLabel()
109
59
  }
110
60
 
111
- /**
112
- * insert method
113
- * @param {?} container [description]
114
- * @param {?} context [description]
115
- * @return {?} [description]
116
- */
117
- insert (container, context) {
118
- insert(this.element, container, context)
61
+ setAttributes () {
62
+ const { type, name, value, title, text, label, tooltip, data, case: caseOption } = this.options
63
+
64
+ this.element.setAttribute('type', type ?? DEFAULT_TYPE)
65
+ if (name) this.element.setAttribute('name', name)
66
+ if (value) this.element.setAttribute('value', value)
67
+ if (title) this.element.setAttribute('title', title)
68
+ this.element.setAttribute('aria-label', text ?? label ?? DEFAULT_CLASS)
69
+ if (tooltip) this.element.setAttribute('data-tooltip', tooltip)
70
+ if (data) dataset(this.element, data)
71
+ if (caseOption) this.element.classList.add(`${caseOption}-case`)
72
+ if (this.options.ripple) ripple(this.element)
73
+ }
119
74
 
120
- return this
75
+ styleAttributes () {
76
+ const { style, size, color, bold } = this.options
77
+ if (style) this.element.classList.add(`style-${style}`)
78
+ if (size) this.element.classList.add(`${size}-size`)
79
+ if (color) this.element.classList.add(`color-${color}`)
80
+ if (bold) this.element.classList.add('bold')
121
81
  }
122
82
 
123
- /**
124
- * Setup method
125
- * @return {?} [description]
126
- */
127
- setup () {
128
- this.element.input = this.element
83
+ buildLabel () {
84
+ if (!this.options.label) return
129
85
 
130
- if (this.options.name) {
131
- this.element.dataset.name = this.options.name
132
- }
86
+ this.label = document.createElement('label')
87
+ this.label.classList.add('label')
88
+ this.label.innerHTML = this.options.label
133
89
 
134
- // if (this.options.label) {
135
- // this.element.title = this.options.label
136
- // }
90
+ this.element.appendChild(this.label)
91
+ }
137
92
 
138
- if (this.options.content) {
139
- this.element.innerHTML = this.options.content
140
- }
93
+ buildIcon () {
94
+ if (!this.options.icon) return
141
95
 
142
- if (this.options.disabled === true) {
143
- this.disable()
144
- }
96
+ this.icon = document.createElement('i')
97
+ this.icon.classList.add('icon')
98
+ this.icon.innerHTML = this.options.icon
99
+
100
+ this.element.appendChild(this.icon)
145
101
  }
146
102
 
147
- /**
148
- * Setter
149
- * @param {string} prop
150
- * @param {string} value
151
- * @return {Object} The class instance
152
- */
153
103
  set (prop, value) {
104
+ // console.log('set', this.element, prop, value)
154
105
  switch (prop) {
155
- case 'disabled':
156
- this.disable(value)
157
- break
158
106
  case 'value':
159
- this.setValue(value)
107
+ this.element.value = value
160
108
  break
161
109
  case 'label':
162
- this.setLabel(value)
110
+ if (!this.label) this.buildLabel()
111
+ this.label.innerHTML = value
112
+ break
113
+ case 'text':
114
+ this.element.innerHTML = value
115
+ break
116
+ case 'icon':
117
+ if (this.icon) {
118
+ this.icon.innerHTML = value
119
+ }
120
+ break
121
+ case 'enable':
122
+ this.element.disabled = false
123
+ break
124
+ case 'disable':
125
+ this.element.disabled = true
163
126
  break
164
127
  default:
165
- this.setValue(prop)
128
+ // console.log('prop', prop)
129
+ this.element.innerHTML = prop
166
130
  }
167
131
 
168
132
  return this
169
133
  }
170
134
 
171
- /**
172
- * [buildLabel description]
173
- * @return {Object} The class instance
174
- */
175
- setLabel (label) {
176
- label = label || this.options.label
177
- var text = label
178
-
179
- if (label === null || label === false) {
180
- text = ''
181
- } else if (label) {
182
- text = label
183
- } else if (this.options.label) {
184
- text = label
185
- } else {
186
- text = this.options.name
135
+ setLabel (value) {
136
+ if (this.label) {
137
+ this.label.innerHTML = value
187
138
  }
139
+ }
188
140
 
189
- if (!this.element.label) {
190
- this.label(text)
141
+ setText (value) {
142
+ if (this.label) {
143
+ this.setLabel(value)
191
144
  } else {
192
- this.element.label.textContent = text
145
+ this.element.innerHTML = value
193
146
  }
194
147
  }
195
148
 
196
- destroy () {
197
- this.container.removeChild(this.element)
149
+ get (prop) {
150
+ switch (prop) {
151
+ case 'value':
152
+ return this.element.value
153
+ case 'label':
154
+ return this.label?.innerHTML ?? this.element.value
155
+ default:
156
+ return this.element.value
157
+ }
198
158
  }
199
159
 
200
- /**
201
- * method handleClick
202
- * @param {event} e
203
- * @return {void}
204
- */
205
- handleClick (e) {
206
- e.preventDefault()
207
-
208
- if (this.disabled === true) return
209
- if (this.options.upload) return
210
-
211
- // this.publish('click');
212
- this.emit('click', e)
160
+ disable () {
161
+ this.element.disabled = true
162
+ }
213
163
 
214
- return this
164
+ enable () {
165
+ this.element.disabled = false
215
166
  }
216
167
 
217
- /**
218
- * method handleClick
219
- * @param {event} e
220
- * @return {void}
221
- */
222
- handleMouseOver (e) {
223
- e.preventDefault()
168
+ click (ev) {
169
+ if (this.options.stopPropagation === true) {
170
+ ev.stopPropagation()
171
+ }
224
172
 
225
- // console.log('mouse over', e.target)
173
+ this.emit('click', ev)
174
+ }
226
175
 
227
- if (e.target.dataset.tooltip) {
228
- // console.log(e.target.dataset.tooltip)
229
- }
176
+ mousedown (ev) {
177
+ this.element.classList.add('pushed')
178
+ }
230
179
 
231
- return this
180
+ mouseup (ev) {
181
+ this.element.classList.remove('pushed')
232
182
  }
233
183
  }
234
184
 
package/src/calendar.js CHANGED
@@ -1,8 +1,6 @@
1
- 'use strict'
2
-
3
1
  import create from './element/create'
4
2
  import insert from './element/insert'
5
- import css from './module/css'
3
+ import * as css from './module/css'
6
4
  import attach from './module/attach'
7
5
  import emitter from './module/emitter'
8
6
 
@@ -81,8 +79,8 @@ class Calendar {
81
79
  */
82
80
  getFirstDayOfWeek (d) {
83
81
  d = new Date(d)
84
- var day = d.getDay()
85
- var diff = d.getDate() - day + (day === 0 ? -6 : 1) // adjust when day is sunday
82
+ const day = d.getDay()
83
+ const diff = d.getDate() - day + (day === 0 ? -6 : 1) // adjust when day is sunday
86
84
 
87
85
  return new Date(d.setDate(diff))
88
86
  }
@@ -95,8 +93,8 @@ class Calendar {
95
93
  _initFunction (functions) {
96
94
  functions = functions || []
97
95
 
98
- for (var i = 0; i < functions.length; i++) {
99
- var name = functions[i]
96
+ for (let i = 0; i < functions.length; i++) {
97
+ const name = functions[i]
100
98
  if (this.options[name]) {
101
99
  this[name] = this.options[name]
102
100
  }
@@ -110,7 +108,7 @@ class Calendar {
110
108
  */
111
109
  build () {
112
110
  // define main tag
113
- var tag = this.options.tag || 'div'
111
+ const tag = this.options.tag || 'div'
114
112
 
115
113
  this.element = create(tag, this.options.prefix + '-' + this.options.class)
116
114
 
@@ -147,22 +145,22 @@ class Calendar {
147
145
 
148
146
  this.buildHeadline()
149
147
 
150
- var element = create('div')
148
+ const element = create('div')
151
149
  insert(element, this.header)
152
150
  css.add(element, 'header-days')
153
151
 
154
- var date = new Date(this.firstDay)
155
- var days = this.options.rangedays
152
+ const date = new Date(this.firstDay)
153
+ const days = this.options.rangedays
156
154
 
157
- var margin = create('div')
155
+ const margin = create('div')
158
156
  css.add(margin, 'margin')
159
157
  insert(margin, element)
160
158
 
161
- for (var i = 0; i < days; i++) {
162
- var dow = this.options.days[date.getDay()]
163
- var dom = (date.getMonth() + 1) + '/' + date.getDate()
159
+ for (let i = 0; i < days; i++) {
160
+ const dow = this.options.days[date.getDay()]
161
+ const dom = (date.getMonth() + 1) + '/' + date.getDate()
164
162
 
165
- var cell = create('div')
163
+ const cell = create('div')
166
164
  cell.innerHTML = '<div class="first">' + dow + '</div><div class="second">' + dom + '</div>'
167
165
  css.add(cell, 'date')
168
166
  insert(cell, element)
@@ -180,11 +178,11 @@ class Calendar {
180
178
 
181
179
  insert(this.headline, this.header)
182
180
 
183
- var year = this.firstDay.getFullYear()
181
+ const year = this.firstDay.getFullYear()
184
182
 
185
- var month = this.options.months[this.firstDay.getMonth()]
183
+ const month = this.options.months[this.firstDay.getMonth()]
186
184
 
187
- var monthIndex = create('div', 'month-year')
185
+ const monthIndex = create('div', 'month-year')
188
186
  monthIndex.innerHTML = '<b>' + month + '</b> ' + year
189
187
  insert(monthIndex, this.headline)
190
188
 
@@ -196,10 +194,10 @@ class Calendar {
196
194
  * @return {?} [description]
197
195
  */
198
196
  buildNavigation () {
199
- var navigation = create('div', this.options.prefix + '-toolbar')
197
+ const navigation = create('div', this.options.prefix + '-toolbar')
200
198
  insert(navigation, this.headline)
201
199
 
202
- var back = new Button({
200
+ const back = new Button({
203
201
  icon: iconBack,
204
202
  style: 'dense'
205
203
  }).on('click', () => {
@@ -208,7 +206,7 @@ class Calendar {
208
206
 
209
207
  css.add(back.root, 'compact')
210
208
 
211
- var today = new Button({
209
+ const today = new Button({
212
210
  style: 'dense',
213
211
  label: 'today'
214
212
  }).on('click', () => {
@@ -217,7 +215,7 @@ class Calendar {
217
215
 
218
216
  css.add(today.root, 'compact')
219
217
 
220
- var next = new Button({
218
+ const next = new Button({
221
219
  icon: iconForward,
222
220
  style: 'dense'
223
221
  }).on('click', () => {
@@ -233,18 +231,18 @@ class Calendar {
233
231
  * @return {?} [description]
234
232
  */
235
233
  buildAllDay () {
236
- var allday = create('div', 'allday')
234
+ const allday = create('div', 'allday')
237
235
  insert(allday, this.header)
238
236
 
239
- var dow = new Date(this.firstDay)
240
- var days = this.options.rangedays
237
+ const dow = new Date(this.firstDay)
238
+ const days = this.options.rangedays
241
239
 
242
- var label = create('label', 'label')
240
+ const label = create('label', 'label')
243
241
  label.innerHTML = 'all-day'
244
242
  insert(label, allday)
245
243
 
246
- for (var i = 0; i < days; i++) {
247
- var day = create('div', 'date')
244
+ for (let i = 0; i < days; i++) {
245
+ const day = create('div', 'date')
248
246
  day.setAttribute('data-date', this.dateToString(dow))
249
247
  insert(day, allday)
250
248
 
@@ -258,33 +256,33 @@ class Calendar {
258
256
  * @return {?} [description]
259
257
  */
260
258
  buildBody () {
261
- var cells = []
259
+ const cells = []
262
260
 
263
- var firstDay = this.firstDay
261
+ const firstDay = this.firstDay
264
262
 
265
- var days = this.options.rangedays
263
+ const days = this.options.rangedays
266
264
 
267
265
  this.body = create('div')
268
266
  css.add(this.body, this.options.class + '-body')
269
267
  insert(this.body, this.element)
270
268
 
271
- var hours = create('div')
269
+ const hours = create('div')
272
270
  css.add(hours, 'hours')
273
271
  insert(hours, this.body)
274
272
 
275
273
  this.initCanvas()
276
274
 
277
- for (var i = 0; i < 24; i++) {
278
- var hour = create('div')
275
+ for (let i = 0; i < 24; i++) {
276
+ const hour = create('div')
279
277
  css.add(hour, 'hour')
280
278
  insert(hour, hours)
281
279
 
282
280
  hour.innerHTML = i + ':00'
283
281
  }
284
282
 
285
- var sday = new Date(firstDay)
286
- for (var k = 0; k < days; k++) {
287
- var day = create('div')
283
+ const sday = new Date(firstDay)
284
+ for (let k = 0; k < days; k++) {
285
+ const day = create('div')
288
286
  css.add(day, 'week-day')
289
287
  day.setAttribute('data-date', this.dateToString(sday))
290
288
  insert(day, this.body)
@@ -303,9 +301,9 @@ class Calendar {
303
301
  * @return {Date}
304
302
  */
305
303
  dateToString (d) {
306
- var day = d.getDate()
307
- var month = d.getMonth() + 1
308
- var year = d.getFullYear()
304
+ let day = d.getDate()
305
+ let month = d.getMonth() + 1
306
+ const year = d.getFullYear()
309
307
 
310
308
  if (day < 10) {
311
309
  day = '0' + day
@@ -314,7 +312,7 @@ class Calendar {
314
312
  month = '0' + month
315
313
  }
316
314
 
317
- var date = year + '-' + month + '-' + day
315
+ const date = year + '-' + month + '-' + day
318
316
 
319
317
  return date
320
318
  }
@@ -325,19 +323,19 @@ class Calendar {
325
323
  * @return {?} [description]
326
324
  */
327
325
  initCanvas () {
328
- var canvas = create('canvas')
326
+ const canvas = create('canvas')
329
327
  css.add(canvas, 'canvas')
330
328
  canvas.width = '2000'
331
329
  canvas.height = '1440'
332
330
  insert(canvas, this.body)
333
331
 
334
- var ctx = canvas.getContext('2d')
332
+ const ctx = canvas.getContext('2d')
335
333
  ctx.lineWidth = 0.5
336
334
  ctx.strokeStyle = '#dedbdb'
337
335
 
338
- var offset = 6
336
+ const offset = 6
339
337
 
340
- for (var j = 0; j <= 24; j++) {
338
+ for (let j = 0; j <= 24; j++) {
341
339
  ctx.beginPath()
342
340
 
343
341
  if (j < this.options.range[0] - 1 || j > this.options.range[1] - 1) {
@@ -346,7 +344,7 @@ class Calendar {
346
344
  ctx.strokeStyle = '#D9D9D9'
347
345
  }
348
346
 
349
- var y = j * 60 + 0.5
347
+ const y = j * 60 + 0.5
350
348
 
351
349
  ctx.moveTo(0, y + 60 + offset)
352
350
  ctx.lineTo(2000, y + 60 + offset)
@@ -361,16 +359,16 @@ class Calendar {
361
359
  */
362
360
  add (e) {
363
361
  if (e.target && e.target.matches(this.options.target)) {
364
- var data = e.target.getAttribute('data-date')
362
+ const data = e.target.getAttribute('data-date')
365
363
 
366
- var d = data.split(/-/)
364
+ const d = data.split(/-/)
367
365
 
368
- var time = this.roundTime(e.offsetY / 60)
366
+ const time = this.roundTime(e.offsetY / 60)
369
367
 
370
- var h = parseInt(time)
371
- var m = (time - h) * 60
368
+ const h = parseInt(time)
369
+ const m = (time - h) * 60
372
370
 
373
- var date = new Date(d[0], d[1], d[2], h, m)
371
+ const date = new Date(d[0], d[1], d[2], h, m)
374
372
 
375
373
  this.emit('add', date)
376
374
  }
@@ -382,8 +380,8 @@ class Calendar {
382
380
  * @return {?} [description]
383
381
  */
384
382
  roundTime (value) {
385
- var step = 0.5
386
- var inv = 1.0 / step
383
+ const step = 0.5
384
+ const inv = 1.0 / step
387
385
  return Math.round(value * inv) / inv
388
386
  }
389
387
 
package/src/card.js CHANGED
@@ -1,12 +1,10 @@
1
- 'use strict'
2
-
3
1
  // import modules
4
2
  import create from './mixin/create'
5
3
  import insert from './mixin/insert'
6
4
  // import components
7
5
  import Layout from './layout'
8
6
 
9
- let defaults = {
7
+ const defaults = {
10
8
  prefix: 'material',
11
9
  class: 'card',
12
10
  tag: 'div'