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/toolbar.js CHANGED
@@ -63,16 +63,16 @@ class Toolbar {
63
63
 
64
64
  attach () {
65
65
  this.element.addEventListener('DOMNodeInserted', (e) => {
66
- var textNode = e.target
66
+ const textNode = e.target
67
67
  if (textNode !== this.element) return
68
68
 
69
- var size = this.size = offset(this.element, 'height')
69
+ const size = this.size = offset(this.element, 'height')
70
70
 
71
- var view = this.view = this.element.parentNode
71
+ const view = this.view = this.element.parentNode
72
72
 
73
73
  // console.log('view', view)
74
74
 
75
- var padding = window.getComputedStyle(view)['padding-top']
75
+ let padding = window.getComputedStyle(view)['padding-top']
76
76
  // console.log('paddingTop', padding)
77
77
  // if (!padding) padding = window.getComputedStyle(this.element.parentNode, 'padding')
78
78
  // console.log('padding', padding)
@@ -83,7 +83,7 @@ class Toolbar {
83
83
  this.padding = padding
84
84
 
85
85
  // console.log(' toolbar inserted in', size, 'padding', padding)
86
- var ptop = this.ptop = size + padding
86
+ const ptop = this.ptop = size + padding
87
87
 
88
88
  // console.log('ptop', ptop)
89
89
 
@@ -125,9 +125,9 @@ class Toolbar {
125
125
  scroll (view) {
126
126
  // console.log('initScroll')
127
127
 
128
- var isBody = false
128
+ let isBody = false
129
129
 
130
- var element = view
130
+ let element = view
131
131
 
132
132
  this.scrolling = view
133
133
 
@@ -140,7 +140,7 @@ class Toolbar {
140
140
  view.classList.add()
141
141
 
142
142
  element.addEventListener('scroll', (e) => {
143
- var scrollTop
143
+ let scrollTop
144
144
  if (isBody) {
145
145
  scrollTop = (document.documentElement ||
146
146
  document.body.parentNode ||
@@ -167,11 +167,11 @@ class Toolbar {
167
167
  }
168
168
 
169
169
  flexible (e, scrollTop) {
170
- var size = offset(this.element, 'height')
170
+ const size = offset(this.element, 'height')
171
171
  // console.log('flexible', size, this.element.offsetHeight, scrollTop)
172
172
  // if (scrollTop < this.size) {
173
173
  //
174
- var height = '64'
174
+ let height = '64'
175
175
  if (size < height) {
176
176
  this.element.style.height = height + 'px'
177
177
  } else {
@@ -188,8 +188,8 @@ class Toolbar {
188
188
  // this.element.style.top = scrollTop + 'px'
189
189
  // }
190
190
  // }
191
- // this.element.style.top = scrollTop + 'px'
192
- // this.element.style.height = this.size - scrollTop
191
+ // this.element.style.top = scrollTop + 'px'
192
+ // this.element.style.height = this.size - scrollTop
193
193
  // } else {
194
194
  // console.log('size scroll', this.size, scrollTop)
195
195
 
package/src/tooltip.js CHANGED
@@ -38,7 +38,7 @@ class Tooltip {
38
38
  }
39
39
 
40
40
  build () {
41
- var container = this.options.container || document.body
41
+ const container = this.options.container || document.body
42
42
 
43
43
  this.element = document.createElement('span')
44
44
  this.element.classList.add('tooltip')
@@ -57,9 +57,9 @@ class Tooltip {
57
57
 
58
58
  attach () {
59
59
  // console.log('attach', this.options.targets)
60
- var targets = document.querySelectorAll(this.options.targets)
60
+ const targets = document.querySelectorAll(this.options.targets)
61
61
 
62
- for (var i = 0; i < targets.length; i++) {
62
+ for (let i = 0; i < targets.length; i++) {
63
63
  targets[i].addEventListener('mouseover', (e) => {
64
64
  // console.log('tooltip', touch(), this.disabled)
65
65
  if (touch()) return
@@ -75,7 +75,7 @@ class Tooltip {
75
75
  }
76
76
 
77
77
  this.label.innerHTML = e.currentTarget.dataset.tooltip
78
- var coord = this.offset(e.currentTarget)
78
+ const coord = this.offset(e.currentTarget)
79
79
 
80
80
  this.show()
81
81
  this.element.style.top = (coord.top + this.options.offset.top) + 'px'
@@ -96,9 +96,9 @@ class Tooltip {
96
96
  }
97
97
 
98
98
  offset (target) {
99
- var rect = target.getBoundingClientRect()
100
- var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft
101
- var scrollTop = window.pageYOffset || document.documentElement.scrollTop
99
+ const rect = target.getBoundingClientRect()
100
+ const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft
101
+ const scrollTop = window.pageYOffset || document.documentElement.scrollTop
102
102
  return { top: rect.top + scrollTop, left: rect.left + scrollLeft }
103
103
  }
104
104
 
package/src/tree.js CHANGED
@@ -1,10 +1,7 @@
1
- 'use strict'
2
-
3
- import insert from './mixin/insert'
4
- import css from './module/css'
5
- import attach from './module/attach'
6
-
7
1
  import emitter from './module/emitter'
2
+ import * as css from './module/css'
3
+ import attach from './module/attach'
4
+ import insert from './mixin/insert'
8
5
 
9
6
  const defaults = {
10
7
  prefix: 'material',
@@ -16,21 +13,7 @@ const defaults = {
16
13
  ]
17
14
  }
18
15
 
19
- /**
20
- * Tree component
21
- * @class
22
- * @param {Object} options Default options for view
23
- * @extends {View}
24
- * @since 0.0.4
25
- * @author Jerome Vial
26
- *
27
- * @type {prime}
28
- */
29
16
  class Tree {
30
- /**
31
- * init
32
- * @return {Object} The class options
33
- */
34
17
  constructor (options) {
35
18
  this.options = Object.assign({}, defaults, options || {})
36
19
 
@@ -41,10 +24,6 @@ class Tree {
41
24
  return this
42
25
  }
43
26
 
44
- /**
45
- * [_initView description]
46
- * @return Class instance
47
- */
48
27
  init () {
49
28
  // init this
50
29
 
@@ -62,28 +41,18 @@ class Tree {
62
41
  return this
63
42
  }
64
43
 
65
- /**
66
- * [_initFunction description]
67
- * @param {?} functions [description]
68
- * @return {} [description]
69
- */
70
44
  _initFunction (functions) {
71
- for (var i = 0; i < functions.length; i++) {
72
- var name = functions[i]
45
+ for (let i = 0; i < functions.length; i++) {
46
+ const name = functions[i]
73
47
  if (this.options[name]) {
74
48
  this[name] = this.options[name]
75
49
  }
76
50
  }
77
51
  }
78
52
 
79
- /**
80
- * [_initList description]
81
- * @param {Object} options this class options
82
- * @return {Object} The class instance
83
- */
84
53
  build () {
85
54
  // define main tag
86
- var tag = this.options.tag || 'div'
55
+ const tag = this.options.tag || 'div'
87
56
 
88
57
  this.element = document.createElement(tag)
89
58
  css.add(this.element, this.options.prefix + '-' + this.options.class)
@@ -109,7 +78,7 @@ class Tree {
109
78
 
110
79
  // console.log('buildTree', data);
111
80
 
112
- var tree = ''
81
+ let tree = ''
113
82
 
114
83
  function checkChildren (parentObj, level) {
115
84
  if (level) {
@@ -135,8 +104,8 @@ class Tree {
135
104
 
136
105
  if (parentObj.children && parentObj.children.length > 0) {
137
106
  tree += '<ul>'
138
- for (var i = 0; i < parentObj.children.length; i++) {
139
- var children = parentObj.children[i]
107
+ for (let i = 0; i < parentObj.children.length; i++) {
108
+ const children = parentObj.children[i]
140
109
 
141
110
  checkChildren(children, level)
142
111
  }
@@ -161,11 +130,6 @@ class Tree {
161
130
  // console.log(this.options)
162
131
  }
163
132
 
164
- /**
165
- * This method handles onSelect
166
- * @param {event} e [description]
167
- * @return {?} [description]
168
- */
169
133
  onSelect (e) {
170
134
  // console.log('click', e.target, this.options.target)
171
135
  if (e.target && e.target.matches(this.options.target)) {
@@ -184,12 +148,6 @@ class Tree {
184
148
  return this
185
149
  }
186
150
 
187
- /**
188
- * select
189
- * @param {Element} item [description]
190
- * @param {event} event The caller event
191
- * @return [description]
192
- */
193
151
  select (item, event) {
194
152
  // console.log('select', item, event)
195
153
  this.item = item
@@ -197,11 +155,6 @@ class Tree {
197
155
  this.emit('selected', item[0])
198
156
  }
199
157
 
200
- /**
201
- * Setter
202
- * @param {string} prop
203
- * @param {string} value
204
- */
205
158
  set (prop, value, options) {
206
159
  switch (prop) {
207
160
  case 'tree':
@@ -214,26 +167,17 @@ class Tree {
214
167
  return this
215
168
  }
216
169
 
217
- /**
218
- * Set list
219
- * @param {Array} list List of info object
220
- * @return {Object} The class instance
221
- */
222
170
  setTree (data) {
223
171
  this.buildTree(data)
224
172
  return this
225
173
  }
226
174
 
227
- /**
228
- * [add description]
229
- * @param {Object} item [description]
230
- */
231
175
  addItem (item /*, index */) {
232
176
  if (!item) {
233
177
  return
234
178
  }
235
179
 
236
- var where = 'bottom'
180
+ const where = 'bottom'
237
181
  this.insertElement(item.root, this.element, where)
238
182
  // item.insert(this.element, where);
239
183
  this.items.push(item)
package/src/view/build.js CHANGED
@@ -25,9 +25,9 @@ export default {
25
25
  },
26
26
 
27
27
  addClass (c) {
28
- var list = c.split(' ')
28
+ const list = c.split(' ')
29
29
 
30
- for (var i = 0; i < list.length; i++) {
30
+ for (let i = 0; i < list.length; i++) {
31
31
  this.element.classList.add(list[i])
32
32
  }
33
33
  }
@@ -1,7 +1,7 @@
1
1
 
2
2
  function dataset (element, data) {
3
3
  if (data) {
4
- for (var property in data) {
4
+ for (const property in data) {
5
5
  if (data.hasOwnProperty(property)) {
6
6
  element.dataset[property] = data[property]
7
7
  }
package/src/view.js CHANGED
@@ -1,88 +1,23 @@
1
- 'use strict'
1
+ import EventEmitter from './mixin/emitter'
2
2
 
3
- import create from './element/create'
4
- import css from './module/css'
5
- import insert from './element/insert'
6
- import emitter from './module/emitter'
3
+ import build from './module/build'
7
4
 
8
- const defaults = {
9
- prefix: 'material',
10
- class: 'view',
11
- type: null,
12
- element: {
13
- tag: 'span',
5
+ class View extends EventEmitter {
6
+ static defaults = {
7
+ class: 'view',
14
8
  type: null
15
9
  }
16
- }
17
10
 
18
- /**
19
- * Class representing a UI Container. Can add components.
20
- *
21
- * @extends Component
22
- * @return {parent} The class instance
23
- * @example new Container({
24
- * container: document.body
25
- * });
26
- */
27
- class View {
28
- /**
29
- * Constructor
30
- * @param {Object} options - Component options
31
- * @return {Object} Class instance
32
- */
33
11
  constructor (options) {
34
- this.options = Object.assign({}, defaults, options || {})
35
- // init and build
12
+ super()
13
+
36
14
  this.init(options)
37
15
  this.build()
38
-
39
- return this
40
16
  }
41
17
 
42
- /**
43
- * Init class
44
- * @params {Object} options The instance options
45
- * @return {Object} This class instance
46
- */
47
18
  init (options) {
48
- this.options.name = this.options.name
49
-
50
- // implement modules
51
- Object.assign(this, emitter)
52
-
53
- // this.controller = controller;
54
-
55
- return this
56
- }
57
-
58
- /**
59
- * [build description]
60
- * @return {Object} This class instance
61
- */
62
- build (props) {
63
- var tag = this.options.tag || 'div'
64
-
65
- this.element = create(tag, this.options.prefix + '-' + this.options.class)
66
-
67
- if (this.options.name) {
68
- css.add(this.element, this.options.class + '-' + this.options.name)
69
- }
70
-
71
- if (this.options.css) {
72
- css.add(this.element, this.options.css)
73
- }
74
-
75
- if (this.options.container) {
76
- // console.log(this.options.name, opts.container);
77
- insert(this.element, this.options.container)
78
- }
79
-
80
- return this
81
- }
82
-
83
- insert (container, context) {
84
- insert(this.element, container, context)
85
- return this
19
+ this.options = Object.assign({}, defaults, options || {})
20
+ Object.assign(this, build)
86
21
  }
87
22
  }
88
23
 
package/rollup.config.js DELETED
@@ -1,34 +0,0 @@
1
- // Roolup plugins
2
- import babel from 'rollup-plugin-babel'
3
- import json from 'rollup-plugin-json'
4
- import resolve from 'rollup-plugin-node-resolve'
5
- import commonjs from 'rollup-plugin-commonjs'
6
- import replace from 'rollup-plugin-replace'
7
- import uglify from 'rollup-plugin-uglify-es'
8
- import rawsvg from 'rollup-plugin-rawsvg'
9
-
10
- export default {
11
- input: 'dist/demo.js',
12
- output: {
13
- file: 'dist/demo-bundle.js',
14
- format: 'iife'
15
- },
16
- sourcemap: true,
17
- plugins: [
18
- resolve({
19
- jsnext: true,
20
- main: true,
21
- browser: true
22
- }),
23
- commonjs(),
24
- babel({
25
- include: 'node_modules/**'
26
- }),
27
- json(),
28
- replace({
29
- ENV: JSON.stringify(process.env.NODE_ENV || 'development')
30
- }),
31
- rawsvg(),
32
- uglify()
33
- ]
34
- }
@@ -1,90 +0,0 @@
1
- import create from '../element/create'
2
- import insert from '../element/insert'
3
- import offset from '../element/offset'
4
-
5
- const defaults = {
6
- transition: '.5s cubic-bezier(0.4, 0.0, 0.2, 1)',
7
- opacity: ['1', '.3']
8
- }
9
-
10
- /**
11
- * show method
12
- * @param {event} e The event related to the the touch
13
- * @param {Object} coord
14
- * @return {void}
15
- */
16
- function ripple (e, params) {
17
- var options = Object.assign({},
18
- defaults, params || {})
19
-
20
- // console.log('show', e);
21
- var container = e.target
22
- var offs = offset(container)
23
-
24
- let ripple = create('div', 'material-ripple')
25
- let end = coordinate(offs)
26
- let initial = {
27
- left: (e.offsetX || offs.width / 2) + 'px',
28
- top: (e.offsetY || offs.height / 2) + 'px'
29
- }
30
-
31
- ripple.style.left = initial.left
32
- ripple.style.top = initial.top
33
- ripple.style.opacity = options.opacity[1]
34
- ripple.style.transition = options.transition
35
-
36
- insert(ripple, container, 'top')
37
-
38
- setTimeout(() => {
39
- // console.log('style coord', end);
40
- ripple.style.left = end.left
41
- ripple.style.top = end.top
42
- ripple.style.width = end.size
43
- ripple.style.height = end.size
44
- ripple.style.opacity = options.opacity[1]
45
- }, 1)
46
-
47
- document.body.onmouseup = () => {
48
- destroy(ripple)
49
- }
50
- }
51
-
52
- /**
53
- * this method hides the given ripple
54
- * @return {Object} Size and position
55
- */
56
- function destroy (ripple) {
57
- if (ripple.parentNode) { ripple.style.opacity = '0' }
58
-
59
- document.body.onmouseup = null
60
-
61
- setTimeout(() => {
62
- if (ripple.parentNode) { ripple.parentNode.removeChild(ripple) }
63
- }, 1000)
64
- }
65
-
66
- /**
67
- * Get ripple final coordinates
68
- * @param {Object} offset
69
- * @return {Object} Size and position
70
- */
71
- function coordinate (offset) {
72
- var size = offset.width
73
- var top = -offset.height / 2
74
-
75
- if (offset.width > offset.height) {
76
- size = offset.width
77
- top = -(offset.width - offset.height / 2)
78
- } else if (offset.width < offset.height) {
79
- size = offset.height
80
- top = (offset.width - offset.height) / 2
81
- }
82
-
83
- return {
84
- size: (size * 2) + 'px',
85
- top: top + 'px',
86
- left: (size / -2) + 'px'
87
- }
88
- }
89
-
90
- export default ripple
@@ -1,16 +0,0 @@
1
-
2
- function setClass (element, className) {
3
- // console.log('attributes', o.attributes, element)
4
-
5
- if (!element || !className) return
6
-
7
- let classNames = className.split(' ')
8
-
9
- for (var i = 0; i < classNames.length; i++) {
10
- var name = classNames[i]
11
- element.classList.add(name)
12
- }
13
- return element
14
- }
15
-
16
- export default setClass