fluentd-ui 0.3.8 → 0.3.9
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.
Potentially problematic release.
This version of fluentd-ui might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/ChangeLog +9 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +4 -1
- data/app/assets/javascripts/vue/fluent_log.js +4 -4
- data/app/assets/javascripts/vue/in_tail_format.js +43 -49
- data/app/assets/javascripts/{alert.js → vue/notification.js} +21 -7
- data/app/assets/javascripts/vue/settings.js +121 -0
- data/app/assets/javascripts/vue/treeview.js +3 -3
- data/app/assets/stylesheets/common.css.scss +7 -1
- data/app/controllers/api/settings_controller.rb +55 -0
- data/app/controllers/api_controller.rb +6 -2
- data/app/controllers/concerns/setting_concern.rb +2 -2
- data/app/controllers/fluentd/settings_controller.rb +17 -2
- data/app/models/fluentd/setting/config.rb +39 -0
- data/app/views/api/settings/_element.json.jbuilder +6 -0
- data/app/views/api/settings/index.json.jbuilder +3 -0
- data/app/views/api/settings/show.json.jbuilder +1 -0
- data/app/views/fluentd/settings/edit.html.haml +3 -0
- data/app/views/fluentd/settings/source_and_output.html.haml +19 -2
- data/app/views/layouts/application.html.erb +1 -30
- data/app/views/shared/vue/_in_tail_format.html.erb +11 -36
- data/app/views/shared/vue/_notification.html.erb +31 -0
- data/app/views/shared/vue/_setting.html.erb +23 -0
- data/app/views/shared/vue/_treeview.html.erb +2 -2
- data/bower.json +1 -1
- data/config/application.rb +1 -0
- data/config/locales/translation_en.yml +11 -7
- data/config/locales/translation_ja.yml +4 -0
- data/config/routes.rb +2 -0
- data/lib/fluentd-ui/version.rb +1 -1
- data/spec/features/fluentd/setting/source_and_output_spec.rb +157 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/javascript_macro.rb +21 -0
- data/vendor/assets/javascripts/bower/vue/.bower.json +7 -7
- data/vendor/assets/javascripts/bower/vue/LICENSE +1 -1
- data/vendor/assets/javascripts/bower/vue/dist/vue.js +7822 -4768
- data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +7 -7
- data/vendor/assets/javascripts/bower/vue/src/api/child.js +53 -0
- data/vendor/assets/javascripts/bower/vue/src/api/data.js +161 -0
- data/vendor/assets/javascripts/bower/vue/src/api/dom.js +211 -0
- data/vendor/assets/javascripts/bower/vue/src/api/events.js +176 -0
- data/vendor/assets/javascripts/bower/vue/src/api/global.js +146 -0
- data/vendor/assets/javascripts/bower/vue/src/api/lifecycle.js +144 -0
- data/vendor/assets/javascripts/bower/vue/src/batcher.js +52 -32
- data/vendor/assets/javascripts/bower/vue/src/cache.js +112 -0
- data/vendor/assets/javascripts/bower/vue/src/compiler/compile.js +549 -0
- data/vendor/assets/javascripts/bower/vue/src/compiler/transclude.js +163 -0
- data/vendor/assets/javascripts/bower/vue/src/config.js +74 -14
- data/vendor/assets/javascripts/bower/vue/src/directive.js +179 -219
- data/vendor/assets/javascripts/bower/vue/src/directives/attr.js +32 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/class.js +18 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/cloak.js +12 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/component.js +214 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/el.js +13 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/html.js +30 -34
- data/vendor/assets/javascripts/bower/vue/src/directives/if.js +77 -46
- data/vendor/assets/javascripts/bower/vue/src/directives/index.js +22 -129
- data/vendor/assets/javascripts/bower/vue/src/directives/model/checkbox.js +25 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/model/default.js +123 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/model/index.js +56 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/model/radio.js +26 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/model/select.js +166 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/on.js +51 -50
- data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +36 -42
- data/vendor/assets/javascripts/bower/vue/src/directives/ref.js +24 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +477 -226
- data/vendor/assets/javascripts/bower/vue/src/directives/show.js +8 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/style.js +49 -37
- data/vendor/assets/javascripts/bower/vue/src/directives/text.js +15 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/transition.js +12 -0
- data/vendor/assets/javascripts/bower/vue/src/directives/with.js +38 -41
- data/vendor/assets/javascripts/bower/vue/src/filters/array-filters.js +87 -0
- data/vendor/assets/javascripts/bower/vue/src/filters/index.js +135 -0
- data/vendor/assets/javascripts/bower/vue/src/instance/compile.js +71 -0
- data/vendor/assets/javascripts/bower/vue/src/instance/events.js +122 -0
- data/vendor/assets/javascripts/bower/vue/src/instance/init.js +76 -0
- data/vendor/assets/javascripts/bower/vue/src/instance/scope.js +217 -0
- data/vendor/assets/javascripts/bower/vue/src/observer/array.js +90 -0
- data/vendor/assets/javascripts/bower/vue/src/observer/dep.js +50 -0
- data/vendor/assets/javascripts/bower/vue/src/observer/index.js +235 -0
- data/vendor/assets/javascripts/bower/vue/src/observer/object.js +75 -0
- data/vendor/assets/javascripts/bower/vue/src/parsers/directive.js +159 -0
- data/vendor/assets/javascripts/bower/vue/src/parsers/expression.js +226 -0
- data/vendor/assets/javascripts/bower/vue/src/parsers/path.js +300 -0
- data/vendor/assets/javascripts/bower/vue/src/parsers/template.js +246 -0
- data/vendor/assets/javascripts/bower/vue/src/parsers/text.js +178 -0
- data/vendor/assets/javascripts/bower/vue/src/transition/css.js +189 -0
- data/vendor/assets/javascripts/bower/vue/src/transition/index.js +151 -0
- data/vendor/assets/javascripts/bower/vue/src/transition/js.js +43 -0
- data/vendor/assets/javascripts/bower/vue/src/util/debug.js +50 -0
- data/vendor/assets/javascripts/bower/vue/src/util/dom.js +176 -0
- data/vendor/assets/javascripts/bower/vue/src/util/env.js +74 -0
- data/vendor/assets/javascripts/bower/vue/src/util/filter.js +72 -0
- data/vendor/assets/javascripts/bower/vue/src/util/index.js +8 -0
- data/vendor/assets/javascripts/bower/vue/src/util/lang.js +175 -0
- data/vendor/assets/javascripts/bower/vue/src/util/merge-option.js +258 -0
- data/vendor/assets/javascripts/bower/vue/src/vue.js +84 -0
- data/vendor/assets/javascripts/bower/vue/src/watcher.js +240 -0
- metadata +65 -20
- data/app/assets/javascripts/setting_format.js +0 -15
- data/vendor/assets/javascripts/bower/vue/src/binding.js +0 -103
- data/vendor/assets/javascripts/bower/vue/src/compiler.js +0 -1037
- data/vendor/assets/javascripts/bower/vue/src/deps-parser.js +0 -65
- data/vendor/assets/javascripts/bower/vue/src/directives/model.js +0 -174
- data/vendor/assets/javascripts/bower/vue/src/directives/view.js +0 -56
- data/vendor/assets/javascripts/bower/vue/src/emitter.js +0 -97
- data/vendor/assets/javascripts/bower/vue/src/exp-parser.js +0 -190
- data/vendor/assets/javascripts/bower/vue/src/filters.js +0 -191
- data/vendor/assets/javascripts/bower/vue/src/fragment.js +0 -67
- data/vendor/assets/javascripts/bower/vue/src/main.js +0 -188
- data/vendor/assets/javascripts/bower/vue/src/observer.js +0 -446
- data/vendor/assets/javascripts/bower/vue/src/template-parser.js +0 -46
- data/vendor/assets/javascripts/bower/vue/src/text-parser.js +0 -96
- data/vendor/assets/javascripts/bower/vue/src/transition.js +0 -228
- data/vendor/assets/javascripts/bower/vue/src/utils.js +0 -326
- data/vendor/assets/javascripts/bower/vue/src/viewmodel.js +0 -190
@@ -0,0 +1,151 @@
|
|
1
|
+
var _ = require('../util')
|
2
|
+
var applyCSSTransition = require('./css')
|
3
|
+
var applyJSTransition = require('./js')
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Append with transition.
|
7
|
+
*
|
8
|
+
* @oaram {Element} el
|
9
|
+
* @param {Element} target
|
10
|
+
* @param {Vue} vm
|
11
|
+
* @param {Function} [cb]
|
12
|
+
*/
|
13
|
+
|
14
|
+
exports.append = function (el, target, vm, cb) {
|
15
|
+
apply(el, 1, function () {
|
16
|
+
target.appendChild(el)
|
17
|
+
}, vm, cb)
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* InsertBefore with transition.
|
22
|
+
*
|
23
|
+
* @oaram {Element} el
|
24
|
+
* @param {Element} target
|
25
|
+
* @param {Vue} vm
|
26
|
+
* @param {Function} [cb]
|
27
|
+
*/
|
28
|
+
|
29
|
+
exports.before = function (el, target, vm, cb) {
|
30
|
+
apply(el, 1, function () {
|
31
|
+
_.before(el, target)
|
32
|
+
}, vm, cb)
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Remove with transition.
|
37
|
+
*
|
38
|
+
* @oaram {Element} el
|
39
|
+
* @param {Vue} vm
|
40
|
+
* @param {Function} [cb]
|
41
|
+
*/
|
42
|
+
|
43
|
+
exports.remove = function (el, vm, cb) {
|
44
|
+
apply(el, -1, function () {
|
45
|
+
_.remove(el)
|
46
|
+
}, vm, cb)
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Remove by appending to another parent with transition.
|
51
|
+
* This is only used in block operations.
|
52
|
+
*
|
53
|
+
* @oaram {Element} el
|
54
|
+
* @param {Element} target
|
55
|
+
* @param {Vue} vm
|
56
|
+
* @param {Function} [cb]
|
57
|
+
*/
|
58
|
+
|
59
|
+
exports.removeThenAppend = function (el, target, vm, cb) {
|
60
|
+
apply(el, -1, function () {
|
61
|
+
target.appendChild(el)
|
62
|
+
}, vm, cb)
|
63
|
+
}
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Append the childNodes of a fragment to target.
|
67
|
+
*
|
68
|
+
* @param {DocumentFragment} block
|
69
|
+
* @param {Node} target
|
70
|
+
* @param {Vue} vm
|
71
|
+
*/
|
72
|
+
|
73
|
+
exports.blockAppend = function (block, target, vm) {
|
74
|
+
var nodes = _.toArray(block.childNodes)
|
75
|
+
for (var i = 0, l = nodes.length; i < l; i++) {
|
76
|
+
exports.before(nodes[i], target, vm)
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
/**
|
81
|
+
* Remove a block of nodes between two edge nodes.
|
82
|
+
*
|
83
|
+
* @param {Node} start
|
84
|
+
* @param {Node} end
|
85
|
+
* @param {Vue} vm
|
86
|
+
*/
|
87
|
+
|
88
|
+
exports.blockRemove = function (start, end, vm) {
|
89
|
+
var node = start.nextSibling
|
90
|
+
var next
|
91
|
+
while (node !== end) {
|
92
|
+
next = node.nextSibling
|
93
|
+
exports.remove(node, vm)
|
94
|
+
node = next
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
/**
|
99
|
+
* Apply transitions with an operation callback.
|
100
|
+
*
|
101
|
+
* @oaram {Element} el
|
102
|
+
* @param {Number} direction
|
103
|
+
* 1: enter
|
104
|
+
* -1: leave
|
105
|
+
* @param {Function} op - the actual DOM operation
|
106
|
+
* @param {Vue} vm
|
107
|
+
* @param {Function} [cb]
|
108
|
+
*/
|
109
|
+
|
110
|
+
var apply = exports.apply = function (el, direction, op, vm, cb) {
|
111
|
+
var transData = el.__v_trans
|
112
|
+
if (
|
113
|
+
!transData ||
|
114
|
+
!vm._isCompiled ||
|
115
|
+
// if the vm is being manipulated by a parent directive
|
116
|
+
// during the parent's compilation phase, skip the
|
117
|
+
// animation.
|
118
|
+
(vm.$parent && !vm.$parent._isCompiled)
|
119
|
+
) {
|
120
|
+
op()
|
121
|
+
if (cb) cb()
|
122
|
+
return
|
123
|
+
}
|
124
|
+
// determine the transition type on the element
|
125
|
+
var jsTransition = vm.$options.transitions[transData.id]
|
126
|
+
if (jsTransition) {
|
127
|
+
// js
|
128
|
+
applyJSTransition(
|
129
|
+
el,
|
130
|
+
direction,
|
131
|
+
op,
|
132
|
+
transData,
|
133
|
+
jsTransition,
|
134
|
+
vm,
|
135
|
+
cb
|
136
|
+
)
|
137
|
+
} else if (_.transitionEndEvent) {
|
138
|
+
// css
|
139
|
+
applyCSSTransition(
|
140
|
+
el,
|
141
|
+
direction,
|
142
|
+
op,
|
143
|
+
transData,
|
144
|
+
cb
|
145
|
+
)
|
146
|
+
} else {
|
147
|
+
// not applicable
|
148
|
+
op()
|
149
|
+
if (cb) cb()
|
150
|
+
}
|
151
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/**
|
2
|
+
* Apply JavaScript enter/leave functions.
|
3
|
+
*
|
4
|
+
* @param {Element} el
|
5
|
+
* @param {Number} direction - 1: enter, -1: leave
|
6
|
+
* @param {Function} op - the actual DOM operation
|
7
|
+
* @param {Object} data - target element's transition data
|
8
|
+
* @param {Object} def - transition definition object
|
9
|
+
* @param {Vue} vm - the owner vm of the element
|
10
|
+
* @param {Function} [cb]
|
11
|
+
*/
|
12
|
+
|
13
|
+
module.exports = function (el, direction, op, data, def, vm, cb) {
|
14
|
+
if (data.cancel) {
|
15
|
+
data.cancel()
|
16
|
+
data.cancel = null
|
17
|
+
}
|
18
|
+
if (direction > 0) { // enter
|
19
|
+
if (def.beforeEnter) {
|
20
|
+
def.beforeEnter.call(vm, el)
|
21
|
+
}
|
22
|
+
op()
|
23
|
+
if (def.enter) {
|
24
|
+
data.cancel = def.enter.call(vm, el, function () {
|
25
|
+
data.cancel = null
|
26
|
+
if (cb) cb()
|
27
|
+
})
|
28
|
+
} else if (cb) {
|
29
|
+
cb()
|
30
|
+
}
|
31
|
+
} else { // leave
|
32
|
+
if (def.leave) {
|
33
|
+
data.cancel = def.leave.call(vm, el, function () {
|
34
|
+
data.cancel = null
|
35
|
+
op()
|
36
|
+
if (cb) cb()
|
37
|
+
})
|
38
|
+
} else {
|
39
|
+
op()
|
40
|
+
if (cb) cb()
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
var config = require('../config')
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Enable debug utilities. The enableDebug() function and
|
5
|
+
* all _.log() & _.warn() calls will be dropped in the
|
6
|
+
* minified production build.
|
7
|
+
*/
|
8
|
+
|
9
|
+
enableDebug()
|
10
|
+
|
11
|
+
function enableDebug () {
|
12
|
+
var hasConsole = typeof console !== 'undefined'
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Log a message.
|
16
|
+
*
|
17
|
+
* @param {String} msg
|
18
|
+
*/
|
19
|
+
|
20
|
+
exports.log = function (msg) {
|
21
|
+
if (hasConsole && config.debug) {
|
22
|
+
console.log('[Vue info]: ' + msg)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
/**
|
27
|
+
* We've got a problem here.
|
28
|
+
*
|
29
|
+
* @param {String} msg
|
30
|
+
*/
|
31
|
+
|
32
|
+
exports.warn = function (msg) {
|
33
|
+
if (hasConsole && !config.silent) {
|
34
|
+
console.warn('[Vue warn]: ' + msg)
|
35
|
+
if (config.debug && console.trace) {
|
36
|
+
console.trace()
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Assert asset exists
|
43
|
+
*/
|
44
|
+
|
45
|
+
exports.assertAsset = function (val, type, id) {
|
46
|
+
if (!val) {
|
47
|
+
exports.warn('Failed to resolve ' + type + ': ' + id)
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
@@ -0,0 +1,176 @@
|
|
1
|
+
var config = require('../config')
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Check if a node is in the document.
|
5
|
+
*
|
6
|
+
* @param {Node} node
|
7
|
+
* @return {Boolean}
|
8
|
+
*/
|
9
|
+
|
10
|
+
var doc =
|
11
|
+
typeof document !== 'undefined' &&
|
12
|
+
document.documentElement
|
13
|
+
|
14
|
+
exports.inDoc = function (node) {
|
15
|
+
return doc && doc.contains(node)
|
16
|
+
}
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Extract an attribute from a node.
|
20
|
+
*
|
21
|
+
* @param {Node} node
|
22
|
+
* @param {String} attr
|
23
|
+
*/
|
24
|
+
|
25
|
+
exports.attr = function (node, attr) {
|
26
|
+
attr = config.prefix + attr
|
27
|
+
var val = node.getAttribute(attr)
|
28
|
+
if (val !== null) {
|
29
|
+
node.removeAttribute(attr)
|
30
|
+
}
|
31
|
+
return val
|
32
|
+
}
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Insert el before target
|
36
|
+
*
|
37
|
+
* @param {Element} el
|
38
|
+
* @param {Element} target
|
39
|
+
*/
|
40
|
+
|
41
|
+
exports.before = function (el, target) {
|
42
|
+
target.parentNode.insertBefore(el, target)
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Insert el after target
|
47
|
+
*
|
48
|
+
* @param {Element} el
|
49
|
+
* @param {Element} target
|
50
|
+
*/
|
51
|
+
|
52
|
+
exports.after = function (el, target) {
|
53
|
+
if (target.nextSibling) {
|
54
|
+
exports.before(el, target.nextSibling)
|
55
|
+
} else {
|
56
|
+
target.parentNode.appendChild(el)
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Remove el from DOM
|
62
|
+
*
|
63
|
+
* @param {Element} el
|
64
|
+
*/
|
65
|
+
|
66
|
+
exports.remove = function (el) {
|
67
|
+
el.parentNode.removeChild(el)
|
68
|
+
}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Prepend el to target
|
72
|
+
*
|
73
|
+
* @param {Element} el
|
74
|
+
* @param {Element} target
|
75
|
+
*/
|
76
|
+
|
77
|
+
exports.prepend = function (el, target) {
|
78
|
+
if (target.firstChild) {
|
79
|
+
exports.before(el, target.firstChild)
|
80
|
+
} else {
|
81
|
+
target.appendChild(el)
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Replace target with el
|
87
|
+
*
|
88
|
+
* @param {Element} target
|
89
|
+
* @param {Element} el
|
90
|
+
*/
|
91
|
+
|
92
|
+
exports.replace = function (target, el) {
|
93
|
+
var parent = target.parentNode
|
94
|
+
if (parent) {
|
95
|
+
parent.replaceChild(el, target)
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Copy attributes from one element to another.
|
101
|
+
*
|
102
|
+
* @param {Element} from
|
103
|
+
* @param {Element} to
|
104
|
+
*/
|
105
|
+
|
106
|
+
exports.copyAttributes = function (from, to) {
|
107
|
+
if (from.hasAttributes()) {
|
108
|
+
var attrs = from.attributes
|
109
|
+
for (var i = 0, l = attrs.length; i < l; i++) {
|
110
|
+
var attr = attrs[i]
|
111
|
+
to.setAttribute(attr.name, attr.value)
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
/**
|
117
|
+
* Add event listener shorthand.
|
118
|
+
*
|
119
|
+
* @param {Element} el
|
120
|
+
* @param {String} event
|
121
|
+
* @param {Function} cb
|
122
|
+
*/
|
123
|
+
|
124
|
+
exports.on = function (el, event, cb) {
|
125
|
+
el.addEventListener(event, cb)
|
126
|
+
}
|
127
|
+
|
128
|
+
/**
|
129
|
+
* Remove event listener shorthand.
|
130
|
+
*
|
131
|
+
* @param {Element} el
|
132
|
+
* @param {String} event
|
133
|
+
* @param {Function} cb
|
134
|
+
*/
|
135
|
+
|
136
|
+
exports.off = function (el, event, cb) {
|
137
|
+
el.removeEventListener(event, cb)
|
138
|
+
}
|
139
|
+
|
140
|
+
/**
|
141
|
+
* Add class with compatibility for IE & SVG
|
142
|
+
*
|
143
|
+
* @param {Element} el
|
144
|
+
* @param {Strong} cls
|
145
|
+
*/
|
146
|
+
|
147
|
+
exports.addClass = function (el, cls) {
|
148
|
+
if (el.classList) {
|
149
|
+
el.classList.add(cls)
|
150
|
+
} else {
|
151
|
+
var cur = ' ' + (el.getAttribute('class') || '') + ' '
|
152
|
+
if (cur.indexOf(' ' + cls + ' ') < 0) {
|
153
|
+
el.setAttribute('class', (cur + cls).trim())
|
154
|
+
}
|
155
|
+
}
|
156
|
+
}
|
157
|
+
|
158
|
+
/**
|
159
|
+
* Remove class with compatibility for IE & SVG
|
160
|
+
*
|
161
|
+
* @param {Element} el
|
162
|
+
* @param {Strong} cls
|
163
|
+
*/
|
164
|
+
|
165
|
+
exports.removeClass = function (el, cls) {
|
166
|
+
if (el.classList) {
|
167
|
+
el.classList.remove(cls)
|
168
|
+
} else {
|
169
|
+
var cur = ' ' + (el.getAttribute('class') || '') + ' '
|
170
|
+
var tar = ' ' + cls + ' '
|
171
|
+
while (cur.indexOf(tar) >= 0) {
|
172
|
+
cur = cur.replace(tar, ' ')
|
173
|
+
}
|
174
|
+
el.setAttribute('class', cur.trim())
|
175
|
+
}
|
176
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
/**
|
2
|
+
* Can we use __proto__?
|
3
|
+
*
|
4
|
+
* @type {Boolean}
|
5
|
+
*/
|
6
|
+
|
7
|
+
exports.hasProto = '__proto__' in {}
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Indicates we have a window
|
11
|
+
*
|
12
|
+
* @type {Boolean}
|
13
|
+
*/
|
14
|
+
|
15
|
+
var toString = Object.prototype.toString
|
16
|
+
var inBrowser = exports.inBrowser =
|
17
|
+
typeof window !== 'undefined' &&
|
18
|
+
toString.call(window) !== '[object Object]'
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Defer a task to the start of the next event loop
|
22
|
+
*
|
23
|
+
* @param {Function} cb
|
24
|
+
* @param {Object} ctx
|
25
|
+
*/
|
26
|
+
|
27
|
+
var defer = inBrowser
|
28
|
+
? (window.requestAnimationFrame ||
|
29
|
+
window.webkitRequestAnimationFrame ||
|
30
|
+
setTimeout)
|
31
|
+
: setTimeout
|
32
|
+
|
33
|
+
exports.nextTick = function (cb, ctx) {
|
34
|
+
if (ctx) {
|
35
|
+
defer(function () { cb.call(ctx) }, 0)
|
36
|
+
} else {
|
37
|
+
defer(cb, 0)
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Detect if we are in IE9...
|
43
|
+
*
|
44
|
+
* @type {Boolean}
|
45
|
+
*/
|
46
|
+
|
47
|
+
exports.isIE9 =
|
48
|
+
inBrowser &&
|
49
|
+
navigator.userAgent.indexOf('MSIE 9.0') > 0
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Sniff transition/animation events
|
53
|
+
*/
|
54
|
+
|
55
|
+
if (inBrowser && !exports.isIE9) {
|
56
|
+
var isWebkitTrans =
|
57
|
+
window.ontransitionend === undefined &&
|
58
|
+
window.onwebkittransitionend !== undefined
|
59
|
+
var isWebkitAnim =
|
60
|
+
window.onanimationend === undefined &&
|
61
|
+
window.onwebkitanimationend !== undefined
|
62
|
+
exports.transitionProp = isWebkitTrans
|
63
|
+
? 'WebkitTransition'
|
64
|
+
: 'transition'
|
65
|
+
exports.transitionEndEvent = isWebkitTrans
|
66
|
+
? 'webkitTransitionEnd'
|
67
|
+
: 'transitionend'
|
68
|
+
exports.animationProp = isWebkitAnim
|
69
|
+
? 'WebkitAnimation'
|
70
|
+
: 'animation'
|
71
|
+
exports.animationEndEvent = isWebkitAnim
|
72
|
+
? 'webkitAnimationEnd'
|
73
|
+
: 'animationend'
|
74
|
+
}
|