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.
- package/README.md +1 -5
- package/dist/demo-bundle.js +2281 -2
- package/dist/demo-bundle.js.map +7 -1
- package/dist/demo.js +13 -13
- package/esbuild.js +22 -0
- package/esbuild.watch.js +25 -0
- package/package.json +7 -20
- package/src/badge.js +1 -1
- package/src/button.js +50 -100
- package/src/calendar.js +53 -53
- package/src/card.js +1 -1
- package/src/checkbox.js +5 -53
- package/src/datehour.js +7 -7
- package/src/dialog.js +5 -5
- package/src/divider.js +1 -1
- package/src/drawer.js +1 -17
- package/src/element/attribute.js +7 -10
- package/src/element/build.js +6 -7
- package/src/element/create.js +3 -6
- package/src/element/event.js +2 -2
- package/src/element/insert.js +6 -17
- package/src/element/observer.js +22 -0
- package/src/element/offset.js +2 -2
- package/src/element/style.js +12 -12
- package/src/element.js +2 -2
- package/src/field/email.js +9 -44
- package/src/field/image.js +17 -51
- package/src/file.js +1 -1
- package/src/form/build.js +7 -7
- package/src/form/controller.js +8 -8
- package/src/form/create.js +1 -1
- package/src/form/data.js +9 -9
- package/src/form/delete.js +1 -1
- package/src/form/render.js +9 -9
- package/src/form/set.js +1 -1
- package/src/form/submit.js +6 -6
- package/src/form/update.js +3 -3
- package/src/form/verify.js +4 -4
- package/src/form.js +9 -9
- package/src/icon.js +4 -4
- package/src/image.js +7 -7
- package/src/item.js +1 -1
- package/src/layout.js +14 -14
- package/src/link.js +1 -1
- package/src/list/build.js +8 -8
- package/src/list/click.js +3 -3
- package/src/list/filter.js +11 -11
- package/src/list/image.js +3 -3
- package/src/list/render.js +15 -15
- package/src/list/request.js +7 -7
- package/src/list/search.js +9 -9
- package/src/list/select.js +18 -18
- package/src/list/status.js +1 -1
- package/src/list/update.js +6 -6
- package/src/list/virtual.js +20 -20
- package/src/list/virtual.new.js +5 -5
- package/src/list.js +8 -8
- package/src/map/build.js +2 -2
- package/src/map/countries.js +8 -8
- package/src/map/display.js +13 -13
- package/src/map/focus.js +7 -7
- package/src/map/select.js +2 -2
- package/src/map/set.js +3 -3
- package/src/map/viewport.js +11 -11
- package/src/menu.js +12 -12
- package/src/mixin/control.js +3 -3
- package/src/mixin/controller.js +5 -5
- package/src/mixin/create.js +1 -1
- package/src/mixin/display.js +1 -1
- package/src/mixin/events.js +4 -16
- package/src/mixin/focus.js +1 -1
- package/src/mixin/icon.js +2 -2
- package/src/mixin/init.js +2 -2
- package/src/mixin/insert.js +5 -5
- package/src/mixin/label.js +2 -2
- package/src/mixin/settings.js +5 -5
- package/src/module/attach.js +35 -49
- package/src/module/attributes.js +2 -2
- package/src/module/build.js +7 -10
- package/src/module/classify.js +4 -4
- package/src/module/controller.js +5 -32
- package/src/module/css.js +12 -84
- package/src/module/dataset.js +1 -1
- package/src/module/dom.js +8 -3
- package/src/module/dot.js +4 -4
- package/src/module/emitter.js +1 -1
- package/src/module/event.js +2 -2
- package/src/module/events.js +29 -35
- package/src/module/extract.js +10 -10
- package/src/module/last.js +18 -0
- package/src/module/mediator.js +1 -13
- package/src/module/object.js +4 -4
- package/src/module/observer.js +43 -16
- package/src/module/remove.js +10 -10
- package/src/module/ripple.js +19 -24
- package/src/module/scrollbar.js +10 -14
- package/src/module/smoothscroll.js +5 -9
- package/src/module/utils.js +14 -23
- package/src/module/viewport.js +5 -5
- package/src/progress.js +1 -9
- package/src/search.js +24 -29
- package/src/select.js +6 -6
- package/src/selecter.js +39 -39
- package/src/selector.js +3 -3
- package/src/skin/material/component/navigation.sass +9 -1
- package/src/slider.js +1 -1
- package/src/snackbar.js +8 -7
- package/src/switch.js +1 -1
- package/src/switcher.js +15 -15
- package/src/tabs.js +4 -5
- package/src/tabview.js +26 -46
- package/src/text.js +1 -1
- package/src/textfield.js +1 -1
- package/src/toolbar.js +12 -12
- package/src/tooltip.js +7 -7
- package/src/tree.js +10 -66
- package/src/view/build.js +2 -2
- package/src/view/dataset.js +1 -1
- package/src/view.js +9 -74
- package/rollup.config.js +0 -34
- package/src/element/ripple.js +0 -90
- 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
|
-
|
|
66
|
+
const textNode = e.target
|
|
67
67
|
if (textNode !== this.element) return
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
const size = this.size = offset(this.element, 'height')
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
const view = this.view = this.element.parentNode
|
|
72
72
|
|
|
73
73
|
// console.log('view', view)
|
|
74
74
|
|
|
75
|
-
|
|
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
|
-
|
|
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
|
-
|
|
128
|
+
let isBody = false
|
|
129
129
|
|
|
130
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
192
|
-
|
|
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
|
-
|
|
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
|
-
|
|
60
|
+
const targets = document.querySelectorAll(this.options.targets)
|
|
61
61
|
|
|
62
|
-
for (
|
|
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
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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 (
|
|
72
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
139
|
-
|
|
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
|
-
|
|
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
package/src/view/dataset.js
CHANGED
package/src/view.js
CHANGED
|
@@ -1,88 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import EventEmitter from './mixin/emitter'
|
|
2
2
|
|
|
3
|
-
import
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
35
|
-
|
|
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
|
|
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/element/ripple.js
DELETED
|
@@ -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
|
package/src/module/addclass.js
DELETED
|
@@ -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
|