material 0.7.1 → 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 (122) 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/package.json +7 -20
  8. package/src/badge.js +1 -1
  9. package/src/button.js +50 -100
  10. package/src/calendar.js +53 -53
  11. package/src/card.js +1 -1
  12. package/src/checkbox.js +5 -53
  13. package/src/datehour.js +7 -7
  14. package/src/dialog.js +5 -5
  15. package/src/divider.js +1 -1
  16. package/src/drawer.js +1 -17
  17. package/src/element/attribute.js +7 -10
  18. package/src/element/build.js +6 -7
  19. package/src/element/create.js +3 -6
  20. package/src/element/event.js +2 -2
  21. package/src/element/insert.js +6 -17
  22. package/src/element/observer.js +22 -0
  23. package/src/element/offset.js +2 -2
  24. package/src/element/style.js +12 -12
  25. package/src/element.js +2 -2
  26. package/src/field/email.js +9 -44
  27. package/src/field/image.js +17 -51
  28. package/src/file.js +1 -1
  29. package/src/form/build.js +7 -7
  30. package/src/form/controller.js +8 -8
  31. package/src/form/create.js +1 -1
  32. package/src/form/data.js +9 -9
  33. package/src/form/delete.js +1 -1
  34. package/src/form/render.js +9 -9
  35. package/src/form/set.js +1 -1
  36. package/src/form/submit.js +6 -6
  37. package/src/form/update.js +3 -3
  38. package/src/form/verify.js +4 -4
  39. package/src/form.js +9 -9
  40. package/src/icon.js +4 -4
  41. package/src/image.js +7 -7
  42. package/src/item.js +1 -1
  43. package/src/layout.js +14 -14
  44. package/src/link.js +1 -1
  45. package/src/list/build.js +8 -8
  46. package/src/list/click.js +3 -3
  47. package/src/list/filter.js +11 -11
  48. package/src/list/image.js +3 -3
  49. package/src/list/render.js +15 -15
  50. package/src/list/request.js +7 -7
  51. package/src/list/search.js +9 -9
  52. package/src/list/select.js +18 -18
  53. package/src/list/status.js +1 -1
  54. package/src/list/update.js +6 -6
  55. package/src/list/virtual.js +20 -20
  56. package/src/list/virtual.new.js +5 -5
  57. package/src/list.js +8 -8
  58. package/src/map/build.js +2 -2
  59. package/src/map/countries.js +8 -8
  60. package/src/map/display.js +13 -13
  61. package/src/map/focus.js +7 -7
  62. package/src/map/select.js +2 -2
  63. package/src/map/set.js +3 -3
  64. package/src/map/viewport.js +11 -11
  65. package/src/menu.js +12 -12
  66. package/src/mixin/control.js +3 -3
  67. package/src/mixin/controller.js +5 -5
  68. package/src/mixin/create.js +1 -1
  69. package/src/mixin/display.js +1 -1
  70. package/src/mixin/events.js +4 -16
  71. package/src/mixin/focus.js +1 -1
  72. package/src/mixin/icon.js +2 -2
  73. package/src/mixin/init.js +2 -2
  74. package/src/mixin/insert.js +5 -5
  75. package/src/mixin/label.js +2 -2
  76. package/src/mixin/settings.js +5 -5
  77. package/src/module/attach.js +35 -49
  78. package/src/module/attributes.js +2 -2
  79. package/src/module/build.js +7 -10
  80. package/src/module/classify.js +4 -4
  81. package/src/module/controller.js +5 -32
  82. package/src/module/css.js +12 -84
  83. package/src/module/dataset.js +1 -1
  84. package/src/module/dom.js +8 -3
  85. package/src/module/dot.js +4 -4
  86. package/src/module/emitter.js +1 -1
  87. package/src/module/event.js +2 -2
  88. package/src/module/events.js +29 -35
  89. package/src/module/extract.js +10 -10
  90. package/src/module/last.js +18 -0
  91. package/src/module/mediator.js +1 -13
  92. package/src/module/object.js +4 -4
  93. package/src/module/observer.js +43 -16
  94. package/src/module/remove.js +10 -10
  95. package/src/module/ripple.js +19 -24
  96. package/src/module/scrollbar.js +10 -14
  97. package/src/module/smoothscroll.js +5 -9
  98. package/src/module/utils.js +14 -23
  99. package/src/module/viewport.js +5 -5
  100. package/src/progress.js +1 -9
  101. package/src/search.js +24 -29
  102. package/src/select.js +6 -6
  103. package/src/selecter.js +39 -39
  104. package/src/selector.js +3 -3
  105. package/src/skin/material/component/navigation.sass +9 -1
  106. package/src/slider.js +1 -1
  107. package/src/snackbar.js +8 -7
  108. package/src/switch.js +1 -1
  109. package/src/switcher.js +15 -15
  110. package/src/tabs.js +4 -5
  111. package/src/tabview.js +26 -46
  112. package/src/text.js +1 -1
  113. package/src/textfield.js +1 -1
  114. package/src/toolbar.js +12 -12
  115. package/src/tooltip.js +7 -7
  116. package/src/tree.js +10 -66
  117. package/src/view/build.js +2 -2
  118. package/src/view/dataset.js +1 -1
  119. package/src/view.js +9 -74
  120. package/rollup.config.js +0 -34
  121. package/src/element/ripple.js +0 -90
  122. 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
@@ -7,12 +7,12 @@ import build from './element/build'
7
7
 
8
8
  import emitter from './module/emitter'
9
9
  import attach from './module/attach'
10
- import css from './module/css'
10
+ import * as css from './module/css'
11
11
 
12
12
  import icon from './skin/material/icon/checkbox.svg'
13
13
  // element related modules
14
14
 
15
- let defaults = {
15
+ const defaults = {
16
16
  prefix: 'material',
17
17
  class: 'checkbox',
18
18
  type: 'control',
@@ -31,26 +31,8 @@ let defaults = {
31
31
  ['element.input.keydown', 'keydown', {}]
32
32
  ]
33
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
- */
34
+
48
35
  class Checkbox {
49
- /**
50
- * Constructor
51
- * @param {Object} options - Component options
52
- * @return {Object} Class instance
53
- */
54
36
  constructor (options) {
55
37
  this.init(options)
56
38
  this.build()
@@ -59,11 +41,6 @@ class Checkbox {
59
41
  return this
60
42
  }
61
43
 
62
- /**
63
- * Constructor
64
- * @param {Object} options The class options
65
- * @return {Object} This class instance
66
- */
67
44
  init (options) {
68
45
  this.options = Object.assign({}, defaults, options || {})
69
46
  Object.assign(this, events, control, emitter, attach)
@@ -71,17 +48,13 @@ class Checkbox {
71
48
  return this
72
49
  }
73
50
 
74
- /**
75
- * build the component using the super method
76
- * @return {Object} The class instance
77
- */
78
51
  build () {
79
52
  this.element = build(this.options.build)
80
53
  this.element = this.element.root
81
54
 
82
55
  this.element.control.innerHTML = icon
83
56
 
84
- var text = this.options.text || this.options.label
57
+ const text = this.options.text || this.options.label
85
58
 
86
59
  this.element.label = label(this.element, text, this.options)
87
60
 
@@ -115,12 +88,6 @@ class Checkbox {
115
88
  return this
116
89
  }
117
90
 
118
- /**
119
- * Setter
120
- * @param {string} prop
121
- * @param {string} value
122
- * @return {Object} The class instance
123
- */
124
91
  set (prop, value) {
125
92
  switch (prop) {
126
93
  case 'checked':
@@ -139,23 +106,12 @@ class Checkbox {
139
106
  return this
140
107
  }
141
108
 
142
- /**
143
- * [insert description]
144
- * @param {?} container [description]
145
- * @param {?} context [description]
146
- * @return {?} [description]
147
- */
148
109
  insert (container, context) {
149
110
  insert(this.element, container, context)
150
111
 
151
112
  return this
152
113
  }
153
114
 
154
- /**
155
- * [click description]
156
- * @param {event} e [description]
157
- * @return {?} [description]
158
- */
159
115
  click (e) {
160
116
  this.toggle(e)
161
117
  this.element.input.focus()
@@ -163,12 +119,8 @@ class Checkbox {
163
119
  return this
164
120
  }
165
121
 
166
- /**
167
- * Set checkbox value
168
- * @param {boolean} value [description]
169
- */
170
122
  setValue (value) {
171
- console.log('setValue', value)
123
+ // console.log('setValue', value)
172
124
  this.value = value
173
125
  this.element.input.setAttribute('value', value)
174
126
 
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])) {
@@ -1,11 +1,8 @@
1
- import css from '../module/css'
1
+ import * as css from '../module/css'
2
2
 
3
- function create (tag, className) {
4
- tag = tag || 'div'
5
-
6
- var element = document.createElement(tag)
3
+ const create = (tag = 'div', className) => {
4
+ const element = document.createElement(tag)
7
5
  css.add(element, className)
8
-
9
6
  return element
10
7
  }
11
8
 
@@ -12,7 +12,7 @@ export default {
12
12
  // avoid memory overhead of new anonymous functions for every event handler that's installed
13
13
  // by using local functions
14
14
  function listenHandler (e) {
15
- var ret = fn.apply(this, arguments)
15
+ const ret = fn.apply(this, arguments)
16
16
  if (ret === false) {
17
17
  e.stopPropagation()
18
18
  e.preventDefault()
@@ -23,7 +23,7 @@ export default {
23
23
  function attachHandler () {
24
24
  // set the this pointer same as addEventListener when fn is called
25
25
  // and make sure the event is passed to the fn also so that works the same too
26
- var ret = fn.call(element, window.event)
26
+ const ret = fn.call(element, window.event)
27
27
  if (ret === false) {
28
28
  window.event.returnValue = false
29
29
  window.event.cancelBubble = true
@@ -1,33 +1,22 @@
1
- 'use strict'
2
-
3
1
  import dom from '../module/dom'
4
2
 
5
- /**
6
- * insert element into dom
7
- * @param {HTMLElement} element [description]
8
- * @param {HTMLElement} container [description]
9
- * @param {string} context [description]
10
- * @return {?} [description]
11
- */
12
- function insert (element, container, context) {
3
+ const insert = (element, container, context = 'bottom') => {
13
4
  if (!element || !container) return
14
5
 
15
6
  element = element.root || element
16
7
  container = container.root || container
17
8
 
18
- context = context || 'bottom'
19
-
20
- var contexts = ['top', 'bottom', 'after', 'before']
21
- var methods = ['prepend', 'append', 'after', 'before']
9
+ const contexts = ['top', 'bottom', 'after', 'before']
10
+ const methods = ['prepend', 'append', 'after', 'before']
22
11
 
23
- var index = contexts.indexOf(context)
12
+ const index = contexts.indexOf(context)
24
13
  if (index === -1) {
25
14
  return
26
15
  }
27
16
 
28
- var method = methods[index]
17
+ const method = methods[index]
29
18
 
30
- // insert component element to the dom tree using dom
19
+ // Insert component element to the DOM tree using dom
31
20
  dom[method](container, element)
32
21
 
33
22
  return element