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/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
- }
package/src/banner.js DELETED
@@ -1,231 +0,0 @@
1
- 'use strict'
2
-
3
- import create from './mixin/create'
4
- import insert from './element/insert'
5
- import event from './element/event'
6
- import offset from './element/offset'
7
- import emitter from './module/emitter'
8
-
9
- const defaults = {
10
- prefix: 'material',
11
- class: 'banner',
12
- tag: 'div'
13
- }
14
-
15
- /**
16
- * Class representing a UI Container. Can add components.
17
- *
18
- * @extends Component
19
- * @return {parent} The class instance
20
- * @example new Container({
21
- * container: document.body
22
- * });
23
- */
24
- class Banner {
25
- /**
26
- * Constructor
27
- * @param {Object} options - Component options
28
- * @return {Object} Class instance
29
- */
30
- constructor (options) {
31
- // init and build
32
- this.init(options)
33
- this.build()
34
- this.attach()
35
-
36
- return this
37
- }
38
-
39
- /**
40
- * Init class
41
- * @params {Object} options The instance options
42
- * @return {Object} This class instance
43
- */
44
- init (options) {
45
- this.options = Object.assign({}, defaults, options || {})
46
- Object.assign(this, emitter)
47
-
48
- return this
49
- }
50
-
51
- /**
52
- * [build description]
53
- * @return {Object} This class instance
54
- */
55
- build () {
56
- this.element = create(this.options)
57
-
58
- if (this.options.container) {
59
- insert(this.element, this.options.container)
60
- }
61
-
62
- return this
63
- }
64
-
65
- attach () {
66
- event.add(this.element, 'click', (ev) => {
67
- // console.log('click', ev.target)
68
-
69
- if (ev.target && ev.target.classList.contains('material-button')) {
70
- var name = ev.target.getAttribute('data-name')
71
- // console.log('name', name)
72
- this.emit('select', name)
73
- this.dismiss(ev.target)
74
- }
75
-
76
- ev.stopPropagation()
77
- })
78
-
79
- this.element.addEventListener('DOMNodeInserted', (e) => {
80
- // console.log('DOMNodeInserted', e.target)
81
- var textNode = e.target
82
-
83
- if (textNode == this.element) {
84
- // console.log('banner root inserted', e.target)
85
- if (!this.wrapper) { this.wrap() }
86
- this.scroll(this.view)
87
- }
88
- this.updatePaddingView()
89
-
90
- // if (textNode !== this.element) return
91
- })
92
- }
93
-
94
- dismiss () {
95
- this.wrapper.classList.add('is-closed')
96
- this.wrapper.style.height = '0'
97
- this.updatePaddingView()
98
- }
99
-
100
- show () {
101
- console.log('this.height', this.height)
102
- this.wrapper.classList.remove('is-closed')
103
- this.wrapper.style.height = this.height + 'px'
104
- this.updatePaddingView()
105
- this.updatePosition()
106
- }
107
-
108
- wrap () {
109
- this.view = this.element.parentNode
110
-
111
- // console.log('wrap', this.element, this.view)
112
- this.wrapper = document.createElement('div')
113
-
114
- this.wrapper.classList.add('banner-wrapper')
115
-
116
- this.view.insertBefore(this.wrapper, this.element)
117
-
118
- this.wrapper.appendChild(this.element)
119
-
120
- // insert(this.wrapper, this.element, 'before')
121
-
122
- // insert(this.element, this.wrapper)
123
- }
124
-
125
- updatePaddingView () {
126
- // console.log('updatePaddingView', this.view)
127
-
128
- this.height = offset(this.element, 'height')
129
- if (!this.paddingview) {
130
- this.paddingview = window.getComputedStyle(this.view)['padding-top']
131
- }
132
-
133
- // this.element.style.top = 'top: ' + this.paddingview
134
-
135
- // console.log('paddingTop', padding)
136
- // if (!padding) padding = window.getComputedStyle(this.element.parentNode, 'padding')
137
- // console.log('padding', padding)
138
-
139
- var padding = parseInt(this.paddingview, 10)
140
- var size = parseInt(this.height, 10)
141
-
142
- this.padding = padding
143
-
144
- // console.log(' banner inserted in', size, 'padding', padding)
145
- //
146
- //
147
-
148
- var ptop = this.ptop = padding
149
-
150
- if (this.wrapper.classList.contains('is-fixed') && !this.wrapper.classList.contains('is-closed')) {
151
- var ptop = this.ptop = size + padding
152
- }
153
-
154
- this.view.setAttribute('style', 'padding-top: ' + ptop + 'px')
155
- }
156
-
157
- scroll (view) {
158
- // console.log('initScroll', offset(this.element, 'top'), offset(view, 'top'))
159
-
160
- var isBody = false
161
-
162
- var element = view
163
-
164
- this.scrolling = view
165
-
166
- if (view === document.body) {
167
- isBody = true
168
- element = document
169
- this.scrolling = document.body
170
- }
171
-
172
- // view.classList.add()
173
-
174
- element.addEventListener('scroll', (e) => {
175
- // console.log('scroll', this.view)
176
- this.updatePosition()
177
- })
178
- }
179
-
180
- updatePosition () {
181
- var view = this.view
182
- var scrollTop
183
- if (view === document.body) {
184
- scrollTop = (document.documentElement ||
185
- document.body.parentNode ||
186
- document.body).scrollTop
187
- } else {
188
- scrollTop = view.scrollTop
189
- }
190
-
191
- // var o = offset(this.element, 'top') - offset(view, 'top')
192
- // console.log('o', this.element.offsetTop)
193
-
194
- var padding = this.paddingview
195
- padding = parseInt(padding, 10)
196
-
197
- // console.log('scroll', scrollTop, padding)
198
-
199
- if (scrollTop > padding) {
200
- var y = scrollTop - padding
201
- // console.log('fixed', y)
202
- this.wrapper.classList.add('is-fixed')
203
- this.wrapper.style.transform = 'translateY(' + y + 'px)'
204
-
205
- // this.update(scrollTop, padding)
206
- // this.wrapper.setAttribute('style', 'top: ' + this.paddingview)
207
- this.wrapper.style.top = this.paddingview
208
- } else {
209
- // console.log('relative')
210
- this.wrapper.classList.remove('is-fixed')
211
- this.wrapper.style.transform = 'translateY(' + 0 + 'px)'
212
- this.wrapper.style.top = '0'
213
- // this.wrapper.setAttribute('style', 'top: ' + this.paddingview)
214
- // this.wrapper.setAttribute('style', 'top: 0')
215
- }
216
-
217
- this.updatePaddingView()
218
- }
219
-
220
- update (scrollTop, padding) {
221
-
222
- }
223
-
224
- insert (container, context) {
225
- insert(this.element, container, context)
226
-
227
- return this
228
- }
229
- }
230
-
231
- export default Banner