material 0.7.1 → 0.7.4

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 (155) hide show
  1. package/LICENSE +9 -18
  2. package/README.md +1 -5
  3. package/index.js +25 -48
  4. package/package.json +3 -24
  5. package/src/badge.js +1 -1
  6. package/src/button.js +50 -100
  7. package/src/calendar.js +53 -53
  8. package/src/card.js +1 -1
  9. package/src/checkbox.js +52 -104
  10. package/src/datehour.js +7 -7
  11. package/src/dialog.js +5 -5
  12. package/src/divider.js +1 -1
  13. package/src/drawer.js +1 -17
  14. package/src/element/attribute.js +7 -10
  15. package/src/element/build.js +6 -7
  16. package/src/element/create.js +3 -6
  17. package/src/element/event.js +2 -2
  18. package/src/element/insert.js +9 -20
  19. package/src/element/observer.js +22 -0
  20. package/src/element/offset.js +2 -2
  21. package/src/element/style.js +12 -12
  22. package/src/element.js +2 -2
  23. package/src/file.js +1 -1
  24. package/src/form/build.js +7 -7
  25. package/src/form/controller.js +8 -8
  26. package/src/form/create.js +1 -1
  27. package/src/form/data.js +9 -9
  28. package/src/form/delete.js +1 -1
  29. package/src/form/render.js +9 -9
  30. package/src/form/set.js +1 -1
  31. package/src/form/submit.js +6 -6
  32. package/src/form/update.js +3 -3
  33. package/src/form/verify.js +4 -4
  34. package/src/form.js +9 -9
  35. package/src/icon.js +4 -4
  36. package/src/image.js +7 -7
  37. package/src/item.js +1 -1
  38. package/src/layout.js +14 -14
  39. package/src/link.js +1 -1
  40. package/src/list/build.js +8 -8
  41. package/src/list/click.js +3 -3
  42. package/src/list/filter.js +11 -11
  43. package/src/list/image.js +3 -3
  44. package/src/list/render.js +15 -15
  45. package/src/list/request.js +7 -7
  46. package/src/list/search.js +9 -9
  47. package/src/list/select.js +18 -18
  48. package/src/list/status.js +1 -1
  49. package/src/list/update.js +6 -6
  50. package/src/list/virtual.js +20 -20
  51. package/src/list/virtual.new.js +5 -5
  52. package/src/list.js +8 -10
  53. package/src/map/build.js +2 -2
  54. package/src/map/countries.js +8 -8
  55. package/src/map/display.js +13 -13
  56. package/src/map/focus.js +7 -7
  57. package/src/map/select.js +2 -2
  58. package/src/map/set.js +3 -3
  59. package/src/map/viewport.js +11 -11
  60. package/src/menu.js +12 -12
  61. package/src/mixin/control.js +3 -3
  62. package/src/mixin/controller.js +5 -5
  63. package/src/mixin/create.js +1 -1
  64. package/src/mixin/display.js +1 -1
  65. package/src/mixin/events.js +4 -16
  66. package/src/mixin/focus.js +1 -1
  67. package/src/mixin/icon.js +2 -2
  68. package/src/mixin/init.js +2 -2
  69. package/src/mixin/insert.js +5 -5
  70. package/src/mixin/label.js +2 -2
  71. package/src/mixin/settings.js +5 -5
  72. package/src/module/attach.js +35 -49
  73. package/src/module/attributes.js +2 -2
  74. package/src/module/build.js +6 -11
  75. package/src/module/classify.js +4 -4
  76. package/src/module/controller.js +5 -32
  77. package/src/module/css.js +12 -84
  78. package/src/module/dataset.js +1 -1
  79. package/src/module/dom.js +9 -3
  80. package/src/module/dot.js +4 -4
  81. package/src/module/emitter.js +1 -1
  82. package/src/module/event.js +2 -2
  83. package/src/module/events.js +29 -35
  84. package/src/module/extract.js +10 -10
  85. package/src/module/last.js +18 -0
  86. package/src/module/mediator.js +1 -13
  87. package/src/module/object.js +4 -4
  88. package/src/module/observer.js +43 -16
  89. package/src/module/remove.js +10 -10
  90. package/src/module/request.js +33 -0
  91. package/src/module/ripple.js +19 -24
  92. package/src/module/scrollbar.js +10 -14
  93. package/src/module/smoothscroll.js +5 -9
  94. package/src/module/utils.js +14 -23
  95. package/src/module/viewport.js +5 -5
  96. package/src/navigation.js +7 -1
  97. package/src/progress.js +1 -9
  98. package/src/search.js +24 -29
  99. package/src/select.js +6 -6
  100. package/src/selecter.js +39 -39
  101. package/src/selector.js +3 -3
  102. package/src/skin/material/button/action.sass +6 -6
  103. package/src/skin/material/button/button.sass +6 -6
  104. package/src/skin/material/button/file.sass +1 -1
  105. package/src/skin/material/button/floating.sass +5 -5
  106. package/src/skin/material/button/raised.sass +5 -5
  107. package/src/skin/material/button/stroked.sass +5 -5
  108. package/src/skin/material/component/navigation.sass +13 -1
  109. package/src/skin/material/control/checkbox.sass +21 -21
  110. package/src/skin/material/module/ripple.sass +1 -1
  111. package/src/slider.js +1 -1
  112. package/src/snackbar.js +12 -9
  113. package/src/styles/M3/abstracts/variables.sass +44 -0
  114. package/src/styles/M3/components/button.sass +26 -0
  115. package/src/styles/M3/modules/ripple.sass +9 -0
  116. package/src/styles/M3/themes/classic.sass +2 -0
  117. package/src/switch.js +1 -1
  118. package/src/switcher.js +15 -15
  119. package/src/tabs.js +6 -8
  120. package/src/tabview.js +26 -46
  121. package/src/text.js +1 -1
  122. package/src/textfield.js +1 -1
  123. package/src/toolbar.js +12 -12
  124. package/src/tooltip.js +7 -7
  125. package/src/tree.js +10 -66
  126. package/src/view/build.js +2 -2
  127. package/src/view/dataset.js +1 -1
  128. package/src/view.js +9 -74
  129. package/dist/demo-bundle.js +0 -2
  130. package/dist/demo-bundle.js.map +0 -1
  131. package/dist/demo.css +0 -93
  132. package/dist/demo.css.map +0 -7
  133. package/dist/demo.html +0 -24
  134. package/dist/demo.js +0 -159
  135. package/dist/icon/accessibility.svg +0 -5
  136. package/dist/icon/apps.svg +0 -5
  137. package/dist/icon/happy.svg +0 -6
  138. package/dist/icon/link.svg +0 -5
  139. package/dist/icon/more.svg +0 -5
  140. package/dist/icon/navi.svg +0 -5
  141. package/dist/icon/phone.svg +0 -6
  142. package/dist/icon/share.svg +0 -6
  143. package/dist/icon/side.svg +0 -5
  144. package/dist/icon/star.svg +0 -7
  145. package/dist/icon/star_border.svg +0 -6
  146. package/dist/material.css +0 -2429
  147. package/dist/material.css.map +0 -7
  148. package/dist/styles/demo.sass +0 -110
  149. package/dist/styles.css +0 -23
  150. package/rollup.config.js +0 -34
  151. package/src/container.js +0 -66
  152. package/src/element/ripple.js +0 -90
  153. package/src/field/email.js +0 -59
  154. package/src/field/image.js +0 -93
  155. package/src/module/addclass.js +0 -16
package/src/calendar.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import create from './element/create'
2
2
  import insert from './element/insert'
3
- import css from './module/css'
3
+ import * as css from './module/css'
4
4
  import attach from './module/attach'
5
5
  import emitter from './module/emitter'
6
6
 
@@ -79,8 +79,8 @@ class Calendar {
79
79
  */
80
80
  getFirstDayOfWeek (d) {
81
81
  d = new Date(d)
82
- var day = d.getDay()
83
- 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
84
84
 
85
85
  return new Date(d.setDate(diff))
86
86
  }
@@ -93,8 +93,8 @@ class Calendar {
93
93
  _initFunction (functions) {
94
94
  functions = functions || []
95
95
 
96
- for (var i = 0; i < functions.length; i++) {
97
- var name = functions[i]
96
+ for (let i = 0; i < functions.length; i++) {
97
+ const name = functions[i]
98
98
  if (this.options[name]) {
99
99
  this[name] = this.options[name]
100
100
  }
@@ -108,7 +108,7 @@ class Calendar {
108
108
  */
109
109
  build () {
110
110
  // define main tag
111
- var tag = this.options.tag || 'div'
111
+ const tag = this.options.tag || 'div'
112
112
 
113
113
  this.element = create(tag, this.options.prefix + '-' + this.options.class)
114
114
 
@@ -145,22 +145,22 @@ class Calendar {
145
145
 
146
146
  this.buildHeadline()
147
147
 
148
- var element = create('div')
148
+ const element = create('div')
149
149
  insert(element, this.header)
150
150
  css.add(element, 'header-days')
151
151
 
152
- var date = new Date(this.firstDay)
153
- var days = this.options.rangedays
152
+ const date = new Date(this.firstDay)
153
+ const days = this.options.rangedays
154
154
 
155
- var margin = create('div')
155
+ const margin = create('div')
156
156
  css.add(margin, 'margin')
157
157
  insert(margin, element)
158
158
 
159
- for (var i = 0; i < days; i++) {
160
- var dow = this.options.days[date.getDay()]
161
- 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()
162
162
 
163
- var cell = create('div')
163
+ const cell = create('div')
164
164
  cell.innerHTML = '<div class="first">' + dow + '</div><div class="second">' + dom + '</div>'
165
165
  css.add(cell, 'date')
166
166
  insert(cell, element)
@@ -178,11 +178,11 @@ class Calendar {
178
178
 
179
179
  insert(this.headline, this.header)
180
180
 
181
- var year = this.firstDay.getFullYear()
181
+ const year = this.firstDay.getFullYear()
182
182
 
183
- var month = this.options.months[this.firstDay.getMonth()]
183
+ const month = this.options.months[this.firstDay.getMonth()]
184
184
 
185
- var monthIndex = create('div', 'month-year')
185
+ const monthIndex = create('div', 'month-year')
186
186
  monthIndex.innerHTML = '<b>' + month + '</b> ' + year
187
187
  insert(monthIndex, this.headline)
188
188
 
@@ -194,10 +194,10 @@ class Calendar {
194
194
  * @return {?} [description]
195
195
  */
196
196
  buildNavigation () {
197
- var navigation = create('div', this.options.prefix + '-toolbar')
197
+ const navigation = create('div', this.options.prefix + '-toolbar')
198
198
  insert(navigation, this.headline)
199
199
 
200
- var back = new Button({
200
+ const back = new Button({
201
201
  icon: iconBack,
202
202
  style: 'dense'
203
203
  }).on('click', () => {
@@ -206,7 +206,7 @@ class Calendar {
206
206
 
207
207
  css.add(back.root, 'compact')
208
208
 
209
- var today = new Button({
209
+ const today = new Button({
210
210
  style: 'dense',
211
211
  label: 'today'
212
212
  }).on('click', () => {
@@ -215,7 +215,7 @@ class Calendar {
215
215
 
216
216
  css.add(today.root, 'compact')
217
217
 
218
- var next = new Button({
218
+ const next = new Button({
219
219
  icon: iconForward,
220
220
  style: 'dense'
221
221
  }).on('click', () => {
@@ -231,18 +231,18 @@ class Calendar {
231
231
  * @return {?} [description]
232
232
  */
233
233
  buildAllDay () {
234
- var allday = create('div', 'allday')
234
+ const allday = create('div', 'allday')
235
235
  insert(allday, this.header)
236
236
 
237
- var dow = new Date(this.firstDay)
238
- var days = this.options.rangedays
237
+ const dow = new Date(this.firstDay)
238
+ const days = this.options.rangedays
239
239
 
240
- var label = create('label', 'label')
240
+ const label = create('label', 'label')
241
241
  label.innerHTML = 'all-day'
242
242
  insert(label, allday)
243
243
 
244
- for (var i = 0; i < days; i++) {
245
- var day = create('div', 'date')
244
+ for (let i = 0; i < days; i++) {
245
+ const day = create('div', 'date')
246
246
  day.setAttribute('data-date', this.dateToString(dow))
247
247
  insert(day, allday)
248
248
 
@@ -256,33 +256,33 @@ class Calendar {
256
256
  * @return {?} [description]
257
257
  */
258
258
  buildBody () {
259
- var cells = []
259
+ const cells = []
260
260
 
261
- var firstDay = this.firstDay
261
+ const firstDay = this.firstDay
262
262
 
263
- var days = this.options.rangedays
263
+ const days = this.options.rangedays
264
264
 
265
265
  this.body = create('div')
266
266
  css.add(this.body, this.options.class + '-body')
267
267
  insert(this.body, this.element)
268
268
 
269
- var hours = create('div')
269
+ const hours = create('div')
270
270
  css.add(hours, 'hours')
271
271
  insert(hours, this.body)
272
272
 
273
273
  this.initCanvas()
274
274
 
275
- for (var i = 0; i < 24; i++) {
276
- var hour = create('div')
275
+ for (let i = 0; i < 24; i++) {
276
+ const hour = create('div')
277
277
  css.add(hour, 'hour')
278
278
  insert(hour, hours)
279
279
 
280
280
  hour.innerHTML = i + ':00'
281
281
  }
282
282
 
283
- var sday = new Date(firstDay)
284
- for (var k = 0; k < days; k++) {
285
- var day = create('div')
283
+ const sday = new Date(firstDay)
284
+ for (let k = 0; k < days; k++) {
285
+ const day = create('div')
286
286
  css.add(day, 'week-day')
287
287
  day.setAttribute('data-date', this.dateToString(sday))
288
288
  insert(day, this.body)
@@ -301,9 +301,9 @@ class Calendar {
301
301
  * @return {Date}
302
302
  */
303
303
  dateToString (d) {
304
- var day = d.getDate()
305
- var month = d.getMonth() + 1
306
- var year = d.getFullYear()
304
+ let day = d.getDate()
305
+ let month = d.getMonth() + 1
306
+ const year = d.getFullYear()
307
307
 
308
308
  if (day < 10) {
309
309
  day = '0' + day
@@ -312,7 +312,7 @@ class Calendar {
312
312
  month = '0' + month
313
313
  }
314
314
 
315
- var date = year + '-' + month + '-' + day
315
+ const date = year + '-' + month + '-' + day
316
316
 
317
317
  return date
318
318
  }
@@ -323,19 +323,19 @@ class Calendar {
323
323
  * @return {?} [description]
324
324
  */
325
325
  initCanvas () {
326
- var canvas = create('canvas')
326
+ const canvas = create('canvas')
327
327
  css.add(canvas, 'canvas')
328
328
  canvas.width = '2000'
329
329
  canvas.height = '1440'
330
330
  insert(canvas, this.body)
331
331
 
332
- var ctx = canvas.getContext('2d')
332
+ const ctx = canvas.getContext('2d')
333
333
  ctx.lineWidth = 0.5
334
334
  ctx.strokeStyle = '#dedbdb'
335
335
 
336
- var offset = 6
336
+ const offset = 6
337
337
 
338
- for (var j = 0; j <= 24; j++) {
338
+ for (let j = 0; j <= 24; j++) {
339
339
  ctx.beginPath()
340
340
 
341
341
  if (j < this.options.range[0] - 1 || j > this.options.range[1] - 1) {
@@ -344,7 +344,7 @@ class Calendar {
344
344
  ctx.strokeStyle = '#D9D9D9'
345
345
  }
346
346
 
347
- var y = j * 60 + 0.5
347
+ const y = j * 60 + 0.5
348
348
 
349
349
  ctx.moveTo(0, y + 60 + offset)
350
350
  ctx.lineTo(2000, y + 60 + offset)
@@ -359,16 +359,16 @@ class Calendar {
359
359
  */
360
360
  add (e) {
361
361
  if (e.target && e.target.matches(this.options.target)) {
362
- var data = e.target.getAttribute('data-date')
362
+ const data = e.target.getAttribute('data-date')
363
363
 
364
- var d = data.split(/-/)
364
+ const d = data.split(/-/)
365
365
 
366
- var time = this.roundTime(e.offsetY / 60)
366
+ const time = this.roundTime(e.offsetY / 60)
367
367
 
368
- var h = parseInt(time)
369
- var m = (time - h) * 60
368
+ const h = parseInt(time)
369
+ const m = (time - h) * 60
370
370
 
371
- 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)
372
372
 
373
373
  this.emit('add', date)
374
374
  }
@@ -380,8 +380,8 @@ class Calendar {
380
380
  * @return {?} [description]
381
381
  */
382
382
  roundTime (value) {
383
- var step = 0.5
384
- var inv = 1.0 / step
383
+ const step = 0.5
384
+ const inv = 1.0 / step
385
385
  return Math.round(value * inv) / inv
386
386
  }
387
387
 
package/src/card.js CHANGED
@@ -4,7 +4,7 @@ import insert from './mixin/insert'
4
4
  // import components
5
5
  import Layout from './layout'
6
6
 
7
- let defaults = {
7
+ const defaults = {
8
8
  prefix: 'material',
9
9
  class: 'card',
10
10
  tag: 'div'
package/src/checkbox.js CHANGED
@@ -1,101 +1,67 @@
1
- import events from './mixin/events'
2
- import control from './mixin/control'
3
- import label from './mixin/label'
4
-
5
- import insert from './element/insert'
6
- import build from './element/build'
7
-
8
- import emitter from './module/emitter'
1
+ import EventEmitter from './mixin/events'
2
+ // import control from './mixin/control'
3
+ import build from './module/build'
9
4
  import attach from './module/attach'
10
- import css from './module/css'
5
+ import * as css from './module/css'
11
6
 
12
7
  import icon from './skin/material/icon/checkbox.svg'
13
- // element related modules
14
-
15
- let defaults = {
16
- prefix: 'material',
17
- class: 'checkbox',
18
- type: 'control',
19
- // modules: [events, control, emitter, attach],
20
- build: ['$root.material-checkbox', {},
21
- ['input$input', {}],
22
- ['span$control.checkbox-control']
23
- ],
24
- events: [
25
- ['element.control.click', 'click', {}],
26
- ['element.label.click', 'toggle', {}],
27
- // for accessibility purpose
28
- // ['element.input.click', 'toggle', {}],
29
- ['element.input.focus', 'focus'],
30
- ['element.input.blur', 'blur'],
31
- ['element.input.keydown', 'keydown', {}]
32
- ]
33
- }
34
- /**
35
- * Checkbox control class
36
- * @class
37
- * @extends Control
38
- * @since 0.0.1
39
- * @example
40
- * var chkbox = checkbox({
41
- * label: 'Primary raised button',
42
- * type: 'raised',
43
- * primary: true
44
- * }).on('click', function(e) {
45
- * console.log('button click', e);
46
- * }).insert(document.body);
47
- */
8
+
9
+ import Element from './element'
10
+
48
11
  class Checkbox {
49
- /**
50
- * Constructor
51
- * @param {Object} options - Component options
52
- * @return {Object} Class instance
53
- */
12
+ static defaults = {
13
+ class: 'checkbox',
14
+ layout: [
15
+ [Element, 'input', { type: 'checkbox' } ],
16
+ [Element, 'control', { type: 'checkbox' } ],
17
+ [Element, 'label', { tag: 'label' }]
18
+ ],
19
+ events: [
20
+ ['ui.control.click', 'click'],
21
+ ['ui.label.click', 'toggle'],
22
+ // for accessibility purpose
23
+ // ['element.input.click', 'toggle'],
24
+ ['ui.input.focus', 'focus'],
25
+ ['ui.input.blur', 'blur'],
26
+ ['ui.input.keydown', 'keydown']
27
+ ]
28
+ }
29
+
54
30
  constructor (options) {
55
31
  this.init(options)
56
32
  this.build()
33
+ this.setup()
57
34
  this.attach()
58
-
59
- return this
60
35
  }
61
36
 
62
- /**
63
- * Constructor
64
- * @param {Object} options The class options
65
- * @return {Object} This class instance
66
- */
67
37
  init (options) {
68
38
  this.options = Object.assign({}, defaults, options || {})
69
- Object.assign(this, events, control, emitter, attach)
39
+ Object.assign(this, build, attach)
70
40
 
71
41
  return this
72
42
  }
73
43
 
74
- /**
75
- * build the component using the super method
76
- * @return {Object} The class instance
77
- */
78
- build () {
44
+ setup () {
79
45
  this.element = build(this.options.build)
80
46
  this.element = this.element.root
81
47
 
82
- this.element.control.innerHTML = icon
48
+ this.ui.control.innerHTML = icon
83
49
 
84
- var text = this.options.text || this.options.label
50
+ const text = this.options.text || this.options.label
85
51
 
86
- this.element.label = label(this.element, text, this.options)
52
+ this.ui.label.innerHTML = text
87
53
 
88
- this.element.input.setAttribute('type', 'checkbox')
89
- this.element.input.setAttribute('name', this.options.name)
90
- this.element.input.setAttribute('aria-label', this.options.name)
54
+ this.ui.input.setAttribute('type', 'checkbox')
55
+ this.ui.input.setAttribute('name', this.options.name)
56
+ this.ui.input.setAttribute('aria-label', this.options.name)
91
57
 
92
58
  if (this.options.value) {
93
- this.element.input.setAttribute('value', this.options.value)
59
+ this.ui.input.setAttribute('value', this.options.value)
94
60
  }
95
61
 
96
62
  if (this.options.disabled) {
97
63
  this.disabled = this.options.disabled
98
- this.element.input.setAttribute('disabled', 'disabled')
64
+ this.ui.input.setAttribute('disabled', 'disabled')
99
65
  css.add(this.element, 'is-disabled')
100
66
  }
101
67
 
@@ -106,21 +72,8 @@ class Checkbox {
106
72
  if (this.options.value) {
107
73
  this.set('value', this.value)
108
74
  }
109
-
110
- // insert if container options is given
111
- if (this.options.container) {
112
- insert(this.element, this.options.container)
113
- }
114
-
115
- return this
116
75
  }
117
76
 
118
- /**
119
- * Setter
120
- * @param {string} prop
121
- * @param {string} value
122
- * @return {Object} The class instance
123
- */
124
77
  set (prop, value) {
125
78
  switch (prop) {
126
79
  case 'checked':
@@ -139,38 +92,33 @@ class Checkbox {
139
92
  return this
140
93
  }
141
94
 
142
- /**
143
- * [insert description]
144
- * @param {?} container [description]
145
- * @param {?} context [description]
146
- * @return {?} [description]
147
- */
148
- insert (container, context) {
149
- insert(this.element, container, context)
150
-
95
+ check (checked) {
96
+ if (checked === true) {
97
+ css.add(this.element, 'is-checked')
98
+ this.ui.input.checked = true
99
+ this.checked = true
100
+ this.emit('change', this.checked)
101
+ } else {
102
+ css.remove(this.element, 'is-checked')
103
+ this.ui.input.checked = false
104
+ this.checked = false
105
+ this.emit('change', this.checked)
106
+ }
151
107
  return this
152
108
  }
153
109
 
154
- /**
155
- * [click description]
156
- * @param {event} e [description]
157
- * @return {?} [description]
158
- */
110
+
159
111
  click (e) {
160
112
  this.toggle(e)
161
- this.element.input.focus()
113
+ this.ui.input.focus()
162
114
 
163
115
  return this
164
116
  }
165
117
 
166
- /**
167
- * Set checkbox value
168
- * @param {boolean} value [description]
169
- */
170
118
  setValue (value) {
171
- console.log('setValue', value)
119
+ // console.log('setValue', value)
172
120
  this.value = value
173
- this.element.input.setAttribute('value', value)
121
+ this.ui.input.setAttribute('value', value)
174
122
 
175
123
  return this
176
124
  }
package/src/datehour.js CHANGED
@@ -11,26 +11,26 @@ class DateHour {
11
11
  this.build()
12
12
  }
13
13
 
14
- init(options) {
14
+ init (options) {
15
15
  this.options = Object.assign({}, DateHour.defaults, options || {})
16
16
  Object.assign(this, build)
17
17
  }
18
18
 
19
19
  set (date) {
20
20
  // console.log('set', src)
21
- var d = new Date(date)
22
- var formatted = this.format(d)
21
+ const d = new Date(date)
22
+ const formatted = this.format(d)
23
23
  this.element.innerHTML = formatted
24
24
  }
25
25
 
26
26
  format (date) {
27
- var hours = date.getHours()
28
- var minutes = date.getMinutes()
29
- var ampm = hours >= 12 ? 'pm' : 'am'
27
+ let hours = date.getHours()
28
+ let minutes = date.getMinutes()
29
+ const ampm = hours >= 12 ? 'pm' : 'am'
30
30
  hours = hours % 12
31
31
  hours = hours || 12 // the hour '0' should be '12'
32
32
  minutes = minutes < 10 ? '0' + minutes : minutes
33
- var strTime = hours + ':' + minutes + ' ' + ampm
33
+ const strTime = hours + ':' + minutes + ' ' + ampm
34
34
  return date.getMonth() + 1 + '/' + date.getDate() + '/' + date.getFullYear() + ' ' + strTime
35
35
  }
36
36
  }
package/src/dialog.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // dialog related modules
2
2
  import emitter from './module/emitter'
3
3
  import attach from './module/attach'
4
- import display from './view/display'
4
+ import display from './mixin/display'
5
5
 
6
6
  import Element from './element'
7
7
  import Text from './text'
@@ -43,7 +43,7 @@ class Dialog {
43
43
  return this
44
44
  }
45
45
 
46
- init(options) {
46
+ init (options) {
47
47
  this.options = Object.assign({}, Dialog.defaults, options || {})
48
48
  Object.assign(this, emitter, attach, display)
49
49
  }
@@ -101,8 +101,8 @@ class Dialog {
101
101
  }
102
102
 
103
103
  setPosition () {
104
- var coord = this.options.target.getBoundingClientRect()
105
- var surface_coord = this.surface.getBoundingClientRect()
104
+ const coord = this.options.target.getBoundingClientRect()
105
+ const surface_coord = this.surface.getBoundingClientRect()
106
106
 
107
107
  if (this.options.position === 'right') {
108
108
  this.surface.style.top = coord.top + 'px'
@@ -150,7 +150,7 @@ class Dialog {
150
150
 
151
151
  emphase () {
152
152
  this.element.classList.add('emphase')
153
- var it
153
+ let it
154
154
  it = setTimeout(() => {
155
155
  clearTimeout(it)
156
156
  this.element.classList.remove('emphase')
package/src/divider.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import create from './mixin/create'
2
2
  import insert from './mixin/insert'
3
3
 
4
- var defaults = {
4
+ const defaults = {
5
5
  prefix: 'material',
6
6
  class: 'divider',
7
7
  tag: 'span'
package/src/drawer.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import init from './mixin/init'
2
2
  import insert from './element/insert'
3
3
  import classify from './module/classify'
4
- import css from './module/css'
4
+ import * as css from './module/css'
5
5
  import events from './mixin/events'
6
6
  import create from './element/create'
7
7
  import emitter from './module/emitter'
@@ -17,21 +17,7 @@ const defaults = {
17
17
  modules: [emitter, events]
18
18
  }
19
19
 
20
- /**
21
- * Class representing a UI Container. Can add components.
22
- *
23
- * @extends Component
24
- * @return {parent} The class instance
25
- * @example new Container({
26
- * container: document.body
27
- * });
28
- */
29
20
  class Drawer {
30
- /**
31
- * Constructor
32
- * @param {Object} options - Component options
33
- * @return {Object} Class instance
34
- */
35
21
  constructor (options) {
36
22
  this.options = Object.assign({}, defaults, options || {})
37
23
 
@@ -41,8 +27,6 @@ class Drawer {
41
27
  this.attach()
42
28
 
43
29
  this.emit('ready')
44
-
45
- return this
46
30
  }
47
31
 
48
32
  /**
@@ -1,24 +1,21 @@
1
- 'use strict'
2
-
3
- function init (element, attribute) {
4
- for (var key in attribute) {
5
- if (attribute.hasOwnProperty(key)) {
1
+ const init = (element, attribute) => {
2
+ for (const key in attribute) {
3
+ if (Object.prototype.hasOwnProperty.call(attribute, key)) {
6
4
  element.setAttribute(key, attribute[key])
7
5
  }
8
6
  }
9
-
10
7
  return element
11
8
  }
12
9
 
13
- function set (element, name, value) {
14
- return element.setAttribute(name, '' + value)
10
+ const set = (element, name, value) => {
11
+ return element.setAttribute(name, `${value}`)
15
12
  }
16
13
 
17
- function get (element, name) {
14
+ const get = (element, name) => {
18
15
  return element.getAttribute(name) || null
19
16
  }
20
17
 
21
- function remove (element, name) {
18
+ const remove = (element, name) => {
22
19
  return element.removeAttribute(name)
23
20
  }
24
21
 
@@ -2,13 +2,13 @@ import attribute from './attribute'
2
2
  import create from './create'
3
3
  import insert from './insert'
4
4
 
5
- function isObject (object) {
5
+ const isObject = (object) => {
6
6
  return object &&
7
7
  typeof object === 'object' &&
8
8
  Object.getPrototypeOf(object) === Object.getPrototypeOf({})
9
9
  }
10
10
 
11
- function process (string) {
11
+ const process = (string) => {
12
12
  const tags = string.match(/^[\w-]+/)
13
13
  const ids = string.match(/#([\w-]+)/)
14
14
  const classes = string.match(/\.[\w-]+/g)
@@ -30,17 +30,16 @@ function process (string) {
30
30
  return properties
31
31
  }
32
32
 
33
- function build (schema, container, object, level) {
33
+ const build = (schema, container, object = {}, level) => {
34
34
  let element
35
- object = object || {}
36
35
 
37
- for (var i = 0; i < schema.length; i++) {
36
+ for (let i = 0; i < schema.length; i++) {
38
37
  if (typeof schema[i] === 'string') {
39
- var property = process(schema[i])
38
+ const property = process(schema[i])
40
39
  element = create(property.tag, property.class)
41
40
  insert(element, container)
42
41
 
43
- if (property.name) { object[property.name] = element }
42
+ if (property.name) object[property.name] = element
44
43
  } else if (isObject(schema[i])) {
45
44
  attribute.init(element, schema[i])
46
45
  } else if (Array.isArray(schema[i])) {