mui_app_rails 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Rakefile +34 -0
- data/app/assets/fonts/mui.ttf +0 -0
- data/app/assets/javascripts/mui_app_rails/actions.js +26 -0
- data/app/assets/javascripts/mui_app_rails/ajax.plugin.js +3 -0
- data/app/assets/javascripts/mui_app_rails/input.plugin.js +232 -0
- data/app/assets/javascripts/mui_app_rails/modals.js +37 -0
- data/app/assets/javascripts/mui_app_rails/mui.active.js +30 -0
- data/app/assets/javascripts/mui_app_rails/mui.ajax.5+.js +27 -0
- data/app/assets/javascripts/mui_app_rails/mui.ajax.js +277 -0
- data/app/assets/javascripts/mui_app_rails/mui.animation.js +39 -0
- data/app/assets/javascripts/mui_app_rails/mui.animationframe.js +72 -0
- data/app/assets/javascripts/mui_app_rails/mui.back.5+.js +108 -0
- data/app/assets/javascripts/mui_app_rails/mui.back.js +56 -0
- data/app/assets/javascripts/mui_app_rails/mui.class.js +40 -0
- data/app/assets/javascripts/mui_app_rails/mui.class.scroll.js +894 -0
- data/app/assets/javascripts/mui_app_rails/mui.class.scroll.pullrefresh.js +150 -0
- data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.js +361 -0
- data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.old.js +332 -0
- data/app/assets/javascripts/mui_app_rails/mui.detect.5+.js +18 -0
- data/app/assets/javascripts/mui_app_rails/mui.detect.js +50 -0
- data/app/assets/javascripts/mui_app_rails/mui.dialog.alert.js +27 -0
- data/app/assets/javascripts/mui_app_rails/mui.dialog.confirm.js +27 -0
- data/app/assets/javascripts/mui_app_rails/mui.dialog.prompt.js +33 -0
- data/app/assets/javascripts/mui_app_rails/mui.dialog.toast.js +20 -0
- data/app/assets/javascripts/mui_app_rails/mui.event.js +160 -0
- data/app/assets/javascripts/mui_app_rails/mui.fixed.animation.js +22 -0
- data/app/assets/javascripts/mui_app_rails/mui.fixed.classlist.js +50 -0
- data/app/assets/javascripts/mui_app_rails/mui.fixed.fastclick.js +64 -0
- data/app/assets/javascripts/mui_app_rails/mui.fixed.js +40 -0
- data/app/assets/javascripts/mui_app_rails/mui.fixed.keyboard.js +56 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.drag.js +48 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.flick.js +30 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.hold.js +41 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.js +207 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.longtap.js +43 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.swipe.js +29 -0
- data/app/assets/javascripts/mui_app_rails/mui.gestures.tap.js +40 -0
- data/app/assets/javascripts/mui_app_rails/mui.init.5+.js +441 -0
- data/app/assets/javascripts/mui_app_rails/mui.init.js +100 -0
- data/app/assets/javascripts/mui_app_rails/mui.init.pullrefresh.js +57 -0
- data/app/assets/javascripts/mui_app_rails/mui.js +396 -0
- data/app/assets/javascripts/mui_app_rails/mui.jsonp.js +108 -0
- data/app/assets/javascripts/mui_app_rails/mui.layout.js +22 -0
- data/app/assets/javascripts/mui_app_rails/mui.namespace.js +35 -0
- data/app/assets/javascripts/mui_app_rails/mui.number.js +93 -0
- data/app/assets/javascripts/mui_app_rails/mui.offcanvas.js +497 -0
- data/app/assets/javascripts/mui_app_rails/mui.pullrefresh.js +157 -0
- data/app/assets/javascripts/mui_app_rails/mui.target.js +58 -0
- data/app/assets/javascripts/mui_app_rails/mui.view.js +172 -0
- data/app/assets/javascripts/mui_app_rails/popovers.js +278 -0
- data/app/assets/javascripts/mui_app_rails/pullrefresh.5+.js +238 -0
- data/app/assets/javascripts/mui_app_rails/push.js +479 -0
- data/app/assets/javascripts/mui_app_rails/segmented-controllers.js +99 -0
- data/app/assets/javascripts/mui_app_rails/sliders.js +362 -0
- data/app/assets/javascripts/mui_app_rails/switches.js +165 -0
- data/app/assets/javascripts/mui_app_rails/tableviews.js +512 -0
- data/app/assets/javascripts/mui_app_rails.js +1 -0
- data/app/assets/stylesheets/mui_app_rails/badges.scss +88 -0
- data/app/assets/stylesheets/mui_app_rails/bars.scss +312 -0
- data/app/assets/stylesheets/mui_app_rails/base.scss +196 -0
- data/app/assets/stylesheets/mui_app_rails/buttons.scss +205 -0
- data/app/assets/stylesheets/mui_app_rails/cards.scss +62 -0
- data/app/assets/stylesheets/mui_app_rails/forms.scss +452 -0
- data/app/assets/stylesheets/mui_app_rails/fullscreen.scss +35 -0
- data/app/assets/stylesheets/mui_app_rails/grid.scss +75 -0
- data/app/assets/stylesheets/mui_app_rails/hack.scss +14 -0
- data/app/assets/stylesheets/mui_app_rails/icon.scss +170 -0
- data/app/assets/stylesheets/mui_app_rails/iscroll.scss +43 -0
- data/app/assets/stylesheets/mui_app_rails/loadings.scss +111 -0
- data/app/assets/stylesheets/mui_app_rails/mixins.scss +212 -0
- data/app/assets/stylesheets/mui_app_rails/modals.scss +34 -0
- data/app/assets/stylesheets/mui_app_rails/mui.scss +46 -0
- data/app/assets/stylesheets/mui_app_rails/normalize.scss +425 -0
- data/app/assets/stylesheets/mui_app_rails/number.scss +70 -0
- data/app/assets/stylesheets/mui_app_rails/off-canvas.scss +84 -0
- data/app/assets/stylesheets/mui_app_rails/os.scss +12 -0
- data/app/assets/stylesheets/mui_app_rails/pagination.scss +155 -0
- data/app/assets/stylesheets/mui_app_rails/popovers.scss +198 -0
- data/app/assets/stylesheets/mui_app_rails/pullrefreshs.scss +98 -0
- data/app/assets/stylesheets/mui_app_rails/push.scss +63 -0
- data/app/assets/stylesheets/mui_app_rails/scroll.scss +95 -0
- data/app/assets/stylesheets/mui_app_rails/segmented-controls.scss +150 -0
- data/app/assets/stylesheets/mui_app_rails/slider-cell.scss +20 -0
- data/app/assets/stylesheets/mui_app_rails/sliders.scss +133 -0
- data/app/assets/stylesheets/mui_app_rails/switches.scss +115 -0
- data/app/assets/stylesheets/mui_app_rails/table-views.scss +482 -0
- data/app/assets/stylesheets/mui_app_rails/toast.scss +16 -0
- data/app/assets/stylesheets/mui_app_rails/type.scss +23 -0
- data/app/assets/stylesheets/mui_app_rails/variables.scss +64 -0
- data/app/assets/stylesheets/mui_app_rails.css +3 -0
- data/lib/mui_app_rails/engine.rb +5 -0
- data/lib/mui_app_rails/version.rb +3 -0
- data/lib/mui_app_rails.rb +5 -0
- metadata +179 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
/**
|
2
|
+
* mui animation
|
3
|
+
*/
|
4
|
+
(function($, window) {
|
5
|
+
/**
|
6
|
+
* scrollTo
|
7
|
+
*/
|
8
|
+
$.scrollTo = function(scrollTop, duration, callback) {
|
9
|
+
duration = duration || 1000;
|
10
|
+
var scroll = function(duration) {
|
11
|
+
if (duration <= 0) {
|
12
|
+
window.scrollTo(0, scrollTop);
|
13
|
+
callback && callback();
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
var distaince = scrollTop - window.scrollY;
|
17
|
+
setTimeout(function() {
|
18
|
+
window.scrollTo(0, window.scrollY + distaince / duration * 10);
|
19
|
+
scroll(duration - 10);
|
20
|
+
}, 16.7);
|
21
|
+
};
|
22
|
+
scroll(duration);
|
23
|
+
};
|
24
|
+
$.animationFrame = function(cb) {
|
25
|
+
var args, isQueued, context;
|
26
|
+
return function() {
|
27
|
+
args = arguments;
|
28
|
+
context = this;
|
29
|
+
if (!isQueued) {
|
30
|
+
isQueued = true;
|
31
|
+
requestAnimationFrame(function() {
|
32
|
+
cb.apply(context, args);
|
33
|
+
isQueued = false;
|
34
|
+
});
|
35
|
+
}
|
36
|
+
};
|
37
|
+
};
|
38
|
+
|
39
|
+
})(mui, window);
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/**
|
2
|
+
* mui animationFrame
|
3
|
+
*/
|
4
|
+
(function($, window) {
|
5
|
+
|
6
|
+
var rAF = window.requestAnimationFrame;
|
7
|
+
var cAF = window.cancelAnimationFrame;
|
8
|
+
|
9
|
+
var queues = {};
|
10
|
+
|
11
|
+
var animationFrame = {
|
12
|
+
queue : queue,
|
13
|
+
queueAfter : queueAfter,
|
14
|
+
cancel : cancel
|
15
|
+
};
|
16
|
+
|
17
|
+
function animation_id() {
|
18
|
+
var id;
|
19
|
+
do {
|
20
|
+
id = Math.floor(Math.random() * 1E9);
|
21
|
+
} while (id in queues);
|
22
|
+
return id;
|
23
|
+
}
|
24
|
+
|
25
|
+
function recursion(callback) {
|
26
|
+
var qid = animation_id();
|
27
|
+
(function wrapper() {
|
28
|
+
callback();
|
29
|
+
queues[qid] = rAF(function() {
|
30
|
+
delete queues[qid];
|
31
|
+
wrapper();
|
32
|
+
});
|
33
|
+
})();
|
34
|
+
return qid;
|
35
|
+
}
|
36
|
+
|
37
|
+
function queue(callback) {
|
38
|
+
var qid = animation_id();
|
39
|
+
|
40
|
+
queues[qid] = rAF(function() {
|
41
|
+
delete queues[qid];
|
42
|
+
callback.apply(animationFrame, arguments);
|
43
|
+
});
|
44
|
+
|
45
|
+
return qid;
|
46
|
+
}
|
47
|
+
|
48
|
+
function queueAfter(callback) {
|
49
|
+
var qid;
|
50
|
+
|
51
|
+
qid = queue(function() {
|
52
|
+
queues[qid] = rAF(function() {
|
53
|
+
delete queues[qid];
|
54
|
+
callback.apply(animationFrame, arguments);
|
55
|
+
});
|
56
|
+
});
|
57
|
+
|
58
|
+
return qid;
|
59
|
+
}
|
60
|
+
|
61
|
+
function cancel(qid) {
|
62
|
+
if ( qid in queues) {
|
63
|
+
cAF(queues[qid]);
|
64
|
+
delete queues[qid];
|
65
|
+
}
|
66
|
+
return animationFrame;
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
$.animationFrame = animationFrame;
|
71
|
+
|
72
|
+
})(mui, window);
|
@@ -0,0 +1,108 @@
|
|
1
|
+
/**
|
2
|
+
* mui back 5+
|
3
|
+
* @param {type} $
|
4
|
+
* @param {type} window
|
5
|
+
* @returns {undefined}
|
6
|
+
*/
|
7
|
+
(function($, window) {
|
8
|
+
if ($.os.plus && $.os.android) {
|
9
|
+
$.registerBack({
|
10
|
+
name: 'mui',
|
11
|
+
index: 5,
|
12
|
+
handle: function() {
|
13
|
+
//popover
|
14
|
+
if ($.targets._popover) {
|
15
|
+
$($.targets._popover).popover('hide');
|
16
|
+
return true;
|
17
|
+
}
|
18
|
+
//offcanvas
|
19
|
+
var offCanvas = document.querySelector($.classSelector('.off-canvas-wrap.active'));
|
20
|
+
if (offCanvas) {
|
21
|
+
$(offCanvas).offCanvas('close');
|
22
|
+
return true;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
});
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* 5+ back
|
29
|
+
*/
|
30
|
+
$.registerBack({
|
31
|
+
name: '5+',
|
32
|
+
index: 10,
|
33
|
+
handle: function() {
|
34
|
+
if (!window.plus) {
|
35
|
+
return false;
|
36
|
+
}
|
37
|
+
var wobj = plus.webview.currentWebview();
|
38
|
+
var parent = wobj.parent();
|
39
|
+
if (parent) {
|
40
|
+
parent.evalJS('mui&&mui.back();');
|
41
|
+
} else {
|
42
|
+
wobj.canBack(function(e) {
|
43
|
+
//by chb 暂时注释,在碰到类似popover之类的锚点的时候,需多次点击才能返回;
|
44
|
+
if (e.canBack) { //webview history back
|
45
|
+
window.history.back();
|
46
|
+
} else { //webview close or hide
|
47
|
+
var opener = wobj.opener();
|
48
|
+
if (opener) {
|
49
|
+
if (wobj.preload) {
|
50
|
+
wobj.hide("auto");
|
51
|
+
} else {
|
52
|
+
//关闭页面时,需要将其打开的所有子页面全部关闭;
|
53
|
+
$.closeAll(wobj);
|
54
|
+
}
|
55
|
+
} else {
|
56
|
+
//首页不存在opener的情况下,后退实际上应该是退出应用;
|
57
|
+
//这个交给项目具体实现,框架暂不处理;
|
58
|
+
//plus.runtime.quit();
|
59
|
+
}
|
60
|
+
}
|
61
|
+
});
|
62
|
+
}
|
63
|
+
return true;
|
64
|
+
}
|
65
|
+
});
|
66
|
+
|
67
|
+
|
68
|
+
$.menu = function() {
|
69
|
+
var menu = document.querySelector($.classSelector('.action-menu'));
|
70
|
+
if (menu) {
|
71
|
+
$.trigger(menu, 'touchstart'); //临时处理menu无touchstart的话,找不到当前targets的问题
|
72
|
+
$.trigger(menu, 'tap');
|
73
|
+
} else { //执行父窗口的menu
|
74
|
+
if (window.plus) {
|
75
|
+
var wobj = $.currentWebview;
|
76
|
+
var parent = wobj.parent();
|
77
|
+
if (parent) { //又得evalJS
|
78
|
+
parent.evalJS('mui&&mui.menu();');
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
};
|
83
|
+
//默认监听
|
84
|
+
$.plusReady(function() {
|
85
|
+
if ($.options.keyEventBind.backbutton) {
|
86
|
+
plus.key.addEventListener('backbutton', $.back, false);
|
87
|
+
}
|
88
|
+
if ($.options.keyEventBind.menubutton) {
|
89
|
+
plus.key.addEventListener('menubutton', $.menu, false);
|
90
|
+
}
|
91
|
+
});
|
92
|
+
//处理按键监听事件
|
93
|
+
$.registerInit({
|
94
|
+
name: 'keyEventBind',
|
95
|
+
index: 1000,
|
96
|
+
handle: function() {
|
97
|
+
$.plusReady(function() {
|
98
|
+
//如果不为true,则移除默认监听
|
99
|
+
if (!$.options.keyEventBind.backbutton) {
|
100
|
+
plus.key.removeEventListener('backbutton', $.back);
|
101
|
+
}
|
102
|
+
if (!$.options.keyEventBind.menubutton) {
|
103
|
+
plus.key.removeEventListener('menubutton', $.menu);
|
104
|
+
}
|
105
|
+
});
|
106
|
+
}
|
107
|
+
});
|
108
|
+
})(mui, window);
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/**
|
2
|
+
* mui back
|
3
|
+
* @param {type} $
|
4
|
+
* @param {type} window
|
5
|
+
* @returns {undefined}
|
6
|
+
*/
|
7
|
+
(function($, window) {
|
8
|
+
/**
|
9
|
+
* register back
|
10
|
+
* @param {type} back
|
11
|
+
* @returns {$.gestures}
|
12
|
+
*/
|
13
|
+
$.registerBack = function(back) {
|
14
|
+
return $.registerHandler('backs', back);
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* default
|
18
|
+
*/
|
19
|
+
$.registerBack({
|
20
|
+
name: 'browser',
|
21
|
+
index: 100,
|
22
|
+
handle: function() {
|
23
|
+
if (window.history.length > 1) {
|
24
|
+
window.history.back();
|
25
|
+
return true;
|
26
|
+
}
|
27
|
+
return false;
|
28
|
+
}
|
29
|
+
});
|
30
|
+
/**
|
31
|
+
* 后退
|
32
|
+
*/
|
33
|
+
$.back = function() {
|
34
|
+
if (typeof $.options.beforeback === 'function') {
|
35
|
+
if ($.options.beforeback() === false) {
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
$.each($.backs, function(index, back) {
|
40
|
+
return !back.handle();
|
41
|
+
});
|
42
|
+
};
|
43
|
+
window.addEventListener('tap', function(e) {
|
44
|
+
var action = $.targets.action;
|
45
|
+
if (action && action.classList.contains($.className('action-back'))) {
|
46
|
+
$.back();
|
47
|
+
}
|
48
|
+
});
|
49
|
+
window.addEventListener('swiperight', function(e) {
|
50
|
+
var detail = e.detail;
|
51
|
+
if ($.options.swipeBack === true && Math.abs(detail.angle) < 3) {
|
52
|
+
$.back();
|
53
|
+
}
|
54
|
+
});
|
55
|
+
|
56
|
+
})(mui, window);
|
@@ -0,0 +1,40 @@
|
|
1
|
+
(function($) {
|
2
|
+
var initializing = false,
|
3
|
+
fnTest = /xyz/.test(function() {
|
4
|
+
xyz;
|
5
|
+
}) ? /\b_super\b/ : /.*/;
|
6
|
+
|
7
|
+
var Class = function() {};
|
8
|
+
Class.extend = function(prop) {
|
9
|
+
var _super = this.prototype;
|
10
|
+
initializing = true;
|
11
|
+
var prototype = new this();
|
12
|
+
initializing = false;
|
13
|
+
for (var name in prop) {
|
14
|
+
prototype[name] = typeof prop[name] == "function" &&
|
15
|
+
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
|
16
|
+
(function(name, fn) {
|
17
|
+
return function() {
|
18
|
+
var tmp = this._super;
|
19
|
+
|
20
|
+
this._super = _super[name];
|
21
|
+
|
22
|
+
var ret = fn.apply(this, arguments);
|
23
|
+
this._super = tmp;
|
24
|
+
|
25
|
+
return ret;
|
26
|
+
};
|
27
|
+
})(name, prop[name]) :
|
28
|
+
prop[name];
|
29
|
+
}
|
30
|
+
function Class() {
|
31
|
+
if (!initializing && this.init)
|
32
|
+
this.init.apply(this, arguments);
|
33
|
+
}
|
34
|
+
Class.prototype = prototype;
|
35
|
+
Class.prototype.constructor = Class;
|
36
|
+
Class.extend = arguments.callee;
|
37
|
+
return Class;
|
38
|
+
};
|
39
|
+
$.Class = Class;
|
40
|
+
})(mui);
|