mui_app_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +34 -0
  3. data/app/assets/fonts/mui.ttf +0 -0
  4. data/app/assets/javascripts/mui_app_rails/actions.js +26 -0
  5. data/app/assets/javascripts/mui_app_rails/ajax.plugin.js +3 -0
  6. data/app/assets/javascripts/mui_app_rails/input.plugin.js +232 -0
  7. data/app/assets/javascripts/mui_app_rails/modals.js +37 -0
  8. data/app/assets/javascripts/mui_app_rails/mui.active.js +30 -0
  9. data/app/assets/javascripts/mui_app_rails/mui.ajax.5+.js +27 -0
  10. data/app/assets/javascripts/mui_app_rails/mui.ajax.js +277 -0
  11. data/app/assets/javascripts/mui_app_rails/mui.animation.js +39 -0
  12. data/app/assets/javascripts/mui_app_rails/mui.animationframe.js +72 -0
  13. data/app/assets/javascripts/mui_app_rails/mui.back.5+.js +108 -0
  14. data/app/assets/javascripts/mui_app_rails/mui.back.js +56 -0
  15. data/app/assets/javascripts/mui_app_rails/mui.class.js +40 -0
  16. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.js +894 -0
  17. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.pullrefresh.js +150 -0
  18. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.js +361 -0
  19. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.old.js +332 -0
  20. data/app/assets/javascripts/mui_app_rails/mui.detect.5+.js +18 -0
  21. data/app/assets/javascripts/mui_app_rails/mui.detect.js +50 -0
  22. data/app/assets/javascripts/mui_app_rails/mui.dialog.alert.js +27 -0
  23. data/app/assets/javascripts/mui_app_rails/mui.dialog.confirm.js +27 -0
  24. data/app/assets/javascripts/mui_app_rails/mui.dialog.prompt.js +33 -0
  25. data/app/assets/javascripts/mui_app_rails/mui.dialog.toast.js +20 -0
  26. data/app/assets/javascripts/mui_app_rails/mui.event.js +160 -0
  27. data/app/assets/javascripts/mui_app_rails/mui.fixed.animation.js +22 -0
  28. data/app/assets/javascripts/mui_app_rails/mui.fixed.classlist.js +50 -0
  29. data/app/assets/javascripts/mui_app_rails/mui.fixed.fastclick.js +64 -0
  30. data/app/assets/javascripts/mui_app_rails/mui.fixed.js +40 -0
  31. data/app/assets/javascripts/mui_app_rails/mui.fixed.keyboard.js +56 -0
  32. data/app/assets/javascripts/mui_app_rails/mui.gestures.drag.js +48 -0
  33. data/app/assets/javascripts/mui_app_rails/mui.gestures.flick.js +30 -0
  34. data/app/assets/javascripts/mui_app_rails/mui.gestures.hold.js +41 -0
  35. data/app/assets/javascripts/mui_app_rails/mui.gestures.js +207 -0
  36. data/app/assets/javascripts/mui_app_rails/mui.gestures.longtap.js +43 -0
  37. data/app/assets/javascripts/mui_app_rails/mui.gestures.swipe.js +29 -0
  38. data/app/assets/javascripts/mui_app_rails/mui.gestures.tap.js +40 -0
  39. data/app/assets/javascripts/mui_app_rails/mui.init.5+.js +441 -0
  40. data/app/assets/javascripts/mui_app_rails/mui.init.js +100 -0
  41. data/app/assets/javascripts/mui_app_rails/mui.init.pullrefresh.js +57 -0
  42. data/app/assets/javascripts/mui_app_rails/mui.js +396 -0
  43. data/app/assets/javascripts/mui_app_rails/mui.jsonp.js +108 -0
  44. data/app/assets/javascripts/mui_app_rails/mui.layout.js +22 -0
  45. data/app/assets/javascripts/mui_app_rails/mui.namespace.js +35 -0
  46. data/app/assets/javascripts/mui_app_rails/mui.number.js +93 -0
  47. data/app/assets/javascripts/mui_app_rails/mui.offcanvas.js +497 -0
  48. data/app/assets/javascripts/mui_app_rails/mui.pullrefresh.js +157 -0
  49. data/app/assets/javascripts/mui_app_rails/mui.target.js +58 -0
  50. data/app/assets/javascripts/mui_app_rails/mui.view.js +172 -0
  51. data/app/assets/javascripts/mui_app_rails/popovers.js +278 -0
  52. data/app/assets/javascripts/mui_app_rails/pullrefresh.5+.js +238 -0
  53. data/app/assets/javascripts/mui_app_rails/push.js +479 -0
  54. data/app/assets/javascripts/mui_app_rails/segmented-controllers.js +99 -0
  55. data/app/assets/javascripts/mui_app_rails/sliders.js +362 -0
  56. data/app/assets/javascripts/mui_app_rails/switches.js +165 -0
  57. data/app/assets/javascripts/mui_app_rails/tableviews.js +512 -0
  58. data/app/assets/javascripts/mui_app_rails.js +1 -0
  59. data/app/assets/stylesheets/mui_app_rails/badges.scss +88 -0
  60. data/app/assets/stylesheets/mui_app_rails/bars.scss +312 -0
  61. data/app/assets/stylesheets/mui_app_rails/base.scss +196 -0
  62. data/app/assets/stylesheets/mui_app_rails/buttons.scss +205 -0
  63. data/app/assets/stylesheets/mui_app_rails/cards.scss +62 -0
  64. data/app/assets/stylesheets/mui_app_rails/forms.scss +452 -0
  65. data/app/assets/stylesheets/mui_app_rails/fullscreen.scss +35 -0
  66. data/app/assets/stylesheets/mui_app_rails/grid.scss +75 -0
  67. data/app/assets/stylesheets/mui_app_rails/hack.scss +14 -0
  68. data/app/assets/stylesheets/mui_app_rails/icon.scss +170 -0
  69. data/app/assets/stylesheets/mui_app_rails/iscroll.scss +43 -0
  70. data/app/assets/stylesheets/mui_app_rails/loadings.scss +111 -0
  71. data/app/assets/stylesheets/mui_app_rails/mixins.scss +212 -0
  72. data/app/assets/stylesheets/mui_app_rails/modals.scss +34 -0
  73. data/app/assets/stylesheets/mui_app_rails/mui.scss +46 -0
  74. data/app/assets/stylesheets/mui_app_rails/normalize.scss +425 -0
  75. data/app/assets/stylesheets/mui_app_rails/number.scss +70 -0
  76. data/app/assets/stylesheets/mui_app_rails/off-canvas.scss +84 -0
  77. data/app/assets/stylesheets/mui_app_rails/os.scss +12 -0
  78. data/app/assets/stylesheets/mui_app_rails/pagination.scss +155 -0
  79. data/app/assets/stylesheets/mui_app_rails/popovers.scss +198 -0
  80. data/app/assets/stylesheets/mui_app_rails/pullrefreshs.scss +98 -0
  81. data/app/assets/stylesheets/mui_app_rails/push.scss +63 -0
  82. data/app/assets/stylesheets/mui_app_rails/scroll.scss +95 -0
  83. data/app/assets/stylesheets/mui_app_rails/segmented-controls.scss +150 -0
  84. data/app/assets/stylesheets/mui_app_rails/slider-cell.scss +20 -0
  85. data/app/assets/stylesheets/mui_app_rails/sliders.scss +133 -0
  86. data/app/assets/stylesheets/mui_app_rails/switches.scss +115 -0
  87. data/app/assets/stylesheets/mui_app_rails/table-views.scss +482 -0
  88. data/app/assets/stylesheets/mui_app_rails/toast.scss +16 -0
  89. data/app/assets/stylesheets/mui_app_rails/type.scss +23 -0
  90. data/app/assets/stylesheets/mui_app_rails/variables.scss +64 -0
  91. data/app/assets/stylesheets/mui_app_rails.css +3 -0
  92. data/lib/mui_app_rails/engine.rb +5 -0
  93. data/lib/mui_app_rails/version.rb +3 -0
  94. data/lib/mui_app_rails.rb +5 -0
  95. 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);