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
@@ -6,41 +6,36 @@ const defaults = {
6
6
  opacity: ['1', '.3']
7
7
  }
8
8
 
9
- function init (container) {
10
- console.log('set', container)
9
+ const init = (container) => {
11
10
  container.addEventListener('mousedown', (e) => {
12
- console.log('mousedown')
13
11
  show(e)
14
12
  })
15
13
  }
16
14
 
17
- function show (e) {
18
- console.log('show', e)
19
- var container = e.target
20
- var offs = offset(container)
15
+ const show = (e) => {
16
+ const container = e.target
17
+ const offs = offset(container)
21
18
 
22
- let ripple = document.createElement('div')
19
+ const ripple = document.createElement('div')
23
20
  ripple.classList.add('ripple')
24
- let end = coordinate(offs)
25
- let initial = {
26
- left: (e.offsetX || offs.width / 2) + 'px',
27
- top: (e.offsetY || offs.height / 2) + 'px'
21
+
22
+ const end = coordinate(offs)
23
+ const initial = {
24
+ left: `${e.offsetX || offs.width / 2}px`,
25
+ top: `${e.offsetY || offs.height / 2}px`
28
26
  }
29
27
 
30
28
  ripple.style.left = initial.left
31
29
  ripple.style.top = initial.top
32
- // ripple.style.opacity = defaults.opacity[1]
33
30
  ripple.style.transition = defaults.transition
34
31
 
35
32
  insert(ripple, container, 'top')
36
33
 
37
34
  setTimeout(() => {
38
- // console.log('style coord', end);
39
35
  ripple.style.left = end.left
40
36
  ripple.style.top = end.top
41
37
  ripple.style.width = end.size
42
38
  ripple.style.height = end.size
43
- // ripple.style.opacity = defaults.opacity[1]
44
39
  }, 1)
45
40
 
46
41
  document.body.onmouseup = () => {
@@ -48,9 +43,9 @@ function show (e) {
48
43
  }
49
44
  }
50
45
 
51
- function coordinate (o) {
52
- var size = o.height
53
- var top = -o.height / 2
46
+ const coordinate = (o) => {
47
+ let size = o.height
48
+ let top = -o.height / 2
54
49
 
55
50
  if (o.width > o.height) {
56
51
  top = -(o.width - o.height / 2)
@@ -58,19 +53,19 @@ function coordinate (o) {
58
53
  }
59
54
 
60
55
  return {
61
- size: (size * 2) + 'px',
62
- top: top + 'px',
63
- left: (size / -2) + 'px'
56
+ size: `${size * 2}px`,
57
+ top: `${top}px`,
58
+ left: `${size / -2}px`
64
59
  }
65
60
  }
66
61
 
67
- function destroy (ripple) {
68
- if (ripple.parentNode) { ripple.style.opacity = '0' }
62
+ const destroy = (ripple) => {
63
+ if (ripple.parentNode) ripple.style.opacity = '0'
69
64
 
70
65
  document.body.onmouseup = null
71
66
 
72
67
  setTimeout(() => {
73
- if (ripple.parentNode) { ripple.parentNode.removeChild(ripple) }
68
+ if (ripple.parentNode) ripple.parentNode.removeChild(ripple)
74
69
  }, 1000)
75
70
  }
76
71
 
@@ -1,42 +1,38 @@
1
-
2
1
  window._scrollbar = {}
3
2
 
4
- function scrollbar () {
3
+ const scrollbar = () => {
5
4
  // if (window._scrollbar.checked) return
6
5
 
7
- var list = document.createElement('div')
6
+ const list = document.createElement('div')
8
7
  list.classList.add('list')
9
- list.style['z-index'] = '1000'
8
+ list.style.zIndex = '1000'
10
9
  list.style.display = 'block'
11
10
  list.style.width = '300px'
12
- list.style['minWidth'] = '300px'
11
+ list.style.minWidth = '300px'
13
12
  list.style.height = '20px'
14
13
  list.style.position = 'absolute'
15
14
  list.style.top = '-200px'
16
15
  list.style.right = 'initial'
17
16
  list.style.bottom = 'initial'
18
17
  list.style.left = '200px'
19
- list.style['overflowY'] = 'hidden'
18
+ list.style.overflowY = 'hidden'
20
19
  document.body.appendChild(list)
21
20
 
22
- var body = document.createElement('div')
21
+ const body = document.createElement('div')
23
22
  body.classList.add('body')
24
- body.style['overflowY'] = 'scroll'
23
+ body.style.overflowY = 'scroll'
25
24
  list.appendChild(body)
26
25
 
27
- var item = document.createElement('div')
26
+ const item = document.createElement('div')
28
27
  item.classList.add('item')
29
28
  item.style.height = '40px'
30
29
  item.style.margin = '0'
31
30
  item.style.padding = '0'
32
31
  item.style.border = '0'
33
- item.style['backgroundColor'] = 'green'
32
+ item.style.backgroundColor = 'green'
34
33
  body.appendChild(item)
35
34
 
36
- var info = item.getBoundingClientRect()
37
- // console.log('width', 300 - info.width)
38
-
39
- // console.log('list', list)
35
+ const info = item.getBoundingClientRect()
40
36
 
41
37
  document.body.removeChild(list)
42
38
 
@@ -1,19 +1,15 @@
1
- function smoothscroll (e, top, time) {
2
- // console.log('smoothscroll', top, e.scrollTop)
1
+ const smoothscroll = (e, top, time = 275) => {
2
+ const start = top - e.scrollTop
3
+ const step = start / 100
4
+ let current = 0
3
5
 
4
- var start = top - e.scrollTop
5
-
6
- time = time || 275
7
- var step = start / 100
8
- var current = 0
9
6
  while (current <= time) {
10
7
  window.setTimeout(scrolling, current, e, step)
11
8
  current += time / 100
12
9
  }
13
10
  }
14
11
 
15
- function scrolling (e, step) {
16
- // console.log('scrolling', step, e.scrollTop)
12
+ const scrolling = (e, step) => {
17
13
  e.scrollBy(0, step)
18
14
  }
19
15
 
@@ -1,5 +1,3 @@
1
- 'use strict'
2
-
3
1
  /**
4
2
  * Utility functions
5
3
  * @module module/utils
@@ -9,19 +7,17 @@
9
7
  * Checks if given value is an array
10
8
  * @param {*} object
11
9
  * @returns {boolean}
12
- * @private
13
10
  */
14
- function _isArray (object) {
11
+ const isArray = (object) => {
15
12
  return Object.prototype.toString.call(object) === '[object Array]'
16
13
  }
17
14
 
18
15
  /**
19
- * Checks if javascript object is plain object
16
+ * Checks if JavaScript object is a plain object
20
17
  * @param {Object} object
21
18
  * @returns {*|boolean}
22
- * @private
23
19
  */
24
- function _isLiteralObject (object) {
20
+ const isLiteralObject = (object) => {
25
21
  return object && typeof object === 'object' && Object.getPrototypeOf(object) === Object.getPrototypeOf({})
26
22
  }
27
23
 
@@ -29,34 +25,30 @@ function _isLiteralObject (object) {
29
25
  * Checks if object is iterable
30
26
  * @param {Object} object
31
27
  * @returns {boolean}
32
- * @private
33
28
  */
34
- function _isIterable (object) {
35
- var r = _isLiteralObject(object) ||
36
- _isArray(object) ||
29
+ const isIterable = (object) => {
30
+ return isLiteralObject(object) ||
31
+ isArray(object) ||
37
32
  (typeof object === 'object' &&
38
33
  object !== null &&
39
34
  object.length !== undefined)
40
-
41
- return r
42
35
  }
43
36
 
44
37
  /**
45
38
  *
46
39
  * @param {Object} object
47
40
  * @param {Function} callback
48
- * @private
49
41
  */
50
- function _each (object, callback) {
51
- if (_isArray(object) || (typeof object === 'object' && object.length !== undefined)) {
52
- for (var i = 0, l = object.length; i < l; i++) {
42
+ const each = (object, callback) => {
43
+ if (isArray(object) || (typeof object === 'object' && object.length !== undefined)) {
44
+ for (let i = 0, l = object.length; i < l; i++) {
53
45
  callback.apply(object[i], [object[i], i])
54
46
  }
55
47
  return
56
48
  }
57
49
 
58
- if (_isLiteralObject(object)) {
59
- for (var key in object) {
50
+ if (isLiteralObject(object)) {
51
+ for (const key in object) {
60
52
  callback.apply(object[key], [object[key], key])
61
53
  }
62
54
  }
@@ -67,13 +59,12 @@ function _each (object, callback) {
67
59
  * @param {Array} array
68
60
  * @param {*} obj
69
61
  * @returns {number}
70
- * @private
71
62
  */
72
- function _indexOf (array, obj) {
63
+ const indexOf = (array, obj) => {
73
64
  if (Array.prototype.indexOf) {
74
65
  return Array.prototype.indexOf.call(array, obj)
75
66
  }
76
- for (var i = 0, j = array.length; i < j; i++) {
67
+ for (let i = 0, j = array.length; i < j; i++) {
77
68
  if (array[i] === obj) {
78
69
  return i
79
70
  }
@@ -81,4 +72,4 @@ function _indexOf (array, obj) {
81
72
  return -1
82
73
  }
83
74
 
84
- export { _isArray, _isIterable, _isLiteralObject, _each, _indexOf }
75
+ export { isArray, isIterable, isLiteralObject, each, indexOf }
@@ -2,12 +2,12 @@
2
2
  function viewport (el) {
3
3
  if (!el) return
4
4
 
5
- var rect = el.getBoundingClientRect()
5
+ const rect = el.getBoundingClientRect()
6
6
 
7
- var top = rect.top
8
- var left = rect.left
9
- var width = rect.width
10
- var height = rect.height
7
+ const top = rect.top
8
+ const left = rect.left
9
+ const width = rect.width
10
+ const height = rect.height
11
11
 
12
12
  return (
13
13
  top >= window.pageYOffset &&
@@ -0,0 +1,19 @@
1
+ import build from './module/build'
2
+
3
+ class Navigation {
4
+ static defaults = {
5
+ class: 'navigation'
6
+ }
7
+
8
+ constructor (options) {
9
+ this.init(options)
10
+ this.build()
11
+ }
12
+
13
+ init (options) {
14
+ this.options = Object.assign({}, Navigation.defaults, options || {})
15
+ Object.assign(this, build)
16
+ }
17
+ }
18
+
19
+ export default Navigation
package/src/progress.js CHANGED
@@ -1,12 +1,9 @@
1
- 'use strict'
2
-
3
1
  // import Component from './component';
4
2
  import create from './element/create'
5
3
  import classify from './module/classify'
6
- import css from './module/css'
7
4
  import insert from './element/insert'
8
5
 
9
- var defaults = {
6
+ const defaults = {
10
7
  prefix: 'material',
11
8
  class: 'progress',
12
9
  tag: 'div',
@@ -16,13 +13,6 @@ var defaults = {
16
13
  </svg>`
17
14
  }
18
15
 
19
- /**
20
- * The class represents an item ie for list
21
- *
22
- * @class
23
- * @return {Object} The class instance
24
- * @example new Item(object);
25
- */
26
16
  class Spinner {
27
17
  /**
28
18
  * init
package/src/search.js ADDED
@@ -0,0 +1,66 @@
1
+ import EventEmitter from './mixin/emitter'
2
+
3
+ import build from './module/build'
4
+ import display from './mixin/display'
5
+ import bindEvents from './module/events'
6
+
7
+ import Element from './element'
8
+ import Button from './button'
9
+
10
+ class Search extends EventEmitter {
11
+ static defaults = {
12
+ class: 'search-input',
13
+ minChar: 4,
14
+ timeout: 200,
15
+ layout: [
16
+ [Element, 'input', { tag: 'input', class: 'input'} ],
17
+ [Button, 'clear', { class: 'clear'} ]
18
+ ],
19
+ events: [
20
+ ['ui.input.input', 'onInput'],
21
+ ['ui.clear.click', 'onClear']
22
+ ]
23
+ }
24
+
25
+ constructor (options) {
26
+ super()
27
+
28
+ this.init(options)
29
+ this.build()
30
+ this.bindEvents()
31
+
32
+ this.input = this.ui.input
33
+ }
34
+
35
+ init (options) {
36
+ this.options = { ...Search.defaults, ...options }
37
+ Object.assign(this, build, display, bindEvents)
38
+ }
39
+
40
+ set (value) {
41
+ if (value) this.input.value = value
42
+ else this.input.value = ''
43
+ }
44
+
45
+ focus () {
46
+ this.ui.input.focus()
47
+ }
48
+
49
+ onInput () {
50
+ if (this.ui.input.value.length < this.options.minChar) return
51
+
52
+ clearTimeout(this.timeout)
53
+
54
+ this.timeout = setTimeout(() => {
55
+ this.emit('change', this.ui.input.value)
56
+ }, this.options.timeout)
57
+ }
58
+
59
+ onClear () {
60
+ this.set(null)
61
+ this.focus()
62
+ this.emit('cancel')
63
+ }
64
+ }
65
+
66
+ export default Search