mui_app_rails 0.0.1 → 0.0.2

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 +4 -4
  2. data/app/assets/javascripts/mui_app_rails/mui.js +6013 -1
  3. data/app/assets/javascripts/mui_app_rails/mui.min.js +8 -0
  4. data/app/assets/javascripts/mui_app_rails.js +1 -1
  5. data/app/assets/stylesheets/mui_app_rails/mui.css +3742 -0
  6. data/app/assets/stylesheets/mui_app_rails/mui.min.css +5 -0
  7. data/lib/mui_app_rails/engine.rb +12 -0
  8. data/lib/mui_app_rails/version.rb +1 -1
  9. data/lib/mui_app_rails.rb +1 -1
  10. metadata +17 -99
  11. data/app/assets/javascripts/mui_app_rails/actions.js +0 -26
  12. data/app/assets/javascripts/mui_app_rails/ajax.plugin.js +0 -3
  13. data/app/assets/javascripts/mui_app_rails/input.plugin.js +0 -232
  14. data/app/assets/javascripts/mui_app_rails/modals.js +0 -37
  15. data/app/assets/javascripts/mui_app_rails/mui.active.js +0 -30
  16. data/app/assets/javascripts/mui_app_rails/mui.ajax.5+.js +0 -27
  17. data/app/assets/javascripts/mui_app_rails/mui.ajax.js +0 -277
  18. data/app/assets/javascripts/mui_app_rails/mui.animation.js +0 -39
  19. data/app/assets/javascripts/mui_app_rails/mui.animationframe.js +0 -72
  20. data/app/assets/javascripts/mui_app_rails/mui.back.5+.js +0 -108
  21. data/app/assets/javascripts/mui_app_rails/mui.back.js +0 -56
  22. data/app/assets/javascripts/mui_app_rails/mui.class.js +0 -40
  23. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.js +0 -894
  24. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.pullrefresh.js +0 -150
  25. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.js +0 -361
  26. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.old.js +0 -332
  27. data/app/assets/javascripts/mui_app_rails/mui.detect.5+.js +0 -18
  28. data/app/assets/javascripts/mui_app_rails/mui.detect.js +0 -50
  29. data/app/assets/javascripts/mui_app_rails/mui.dialog.alert.js +0 -27
  30. data/app/assets/javascripts/mui_app_rails/mui.dialog.confirm.js +0 -27
  31. data/app/assets/javascripts/mui_app_rails/mui.dialog.prompt.js +0 -33
  32. data/app/assets/javascripts/mui_app_rails/mui.dialog.toast.js +0 -20
  33. data/app/assets/javascripts/mui_app_rails/mui.event.js +0 -160
  34. data/app/assets/javascripts/mui_app_rails/mui.fixed.animation.js +0 -22
  35. data/app/assets/javascripts/mui_app_rails/mui.fixed.classlist.js +0 -50
  36. data/app/assets/javascripts/mui_app_rails/mui.fixed.fastclick.js +0 -64
  37. data/app/assets/javascripts/mui_app_rails/mui.fixed.js +0 -40
  38. data/app/assets/javascripts/mui_app_rails/mui.fixed.keyboard.js +0 -56
  39. data/app/assets/javascripts/mui_app_rails/mui.gestures.drag.js +0 -48
  40. data/app/assets/javascripts/mui_app_rails/mui.gestures.flick.js +0 -30
  41. data/app/assets/javascripts/mui_app_rails/mui.gestures.hold.js +0 -41
  42. data/app/assets/javascripts/mui_app_rails/mui.gestures.js +0 -207
  43. data/app/assets/javascripts/mui_app_rails/mui.gestures.longtap.js +0 -43
  44. data/app/assets/javascripts/mui_app_rails/mui.gestures.swipe.js +0 -29
  45. data/app/assets/javascripts/mui_app_rails/mui.gestures.tap.js +0 -40
  46. data/app/assets/javascripts/mui_app_rails/mui.init.5+.js +0 -441
  47. data/app/assets/javascripts/mui_app_rails/mui.init.js +0 -100
  48. data/app/assets/javascripts/mui_app_rails/mui.init.pullrefresh.js +0 -57
  49. data/app/assets/javascripts/mui_app_rails/mui.jsonp.js +0 -108
  50. data/app/assets/javascripts/mui_app_rails/mui.layout.js +0 -22
  51. data/app/assets/javascripts/mui_app_rails/mui.namespace.js +0 -35
  52. data/app/assets/javascripts/mui_app_rails/mui.number.js +0 -93
  53. data/app/assets/javascripts/mui_app_rails/mui.offcanvas.js +0 -497
  54. data/app/assets/javascripts/mui_app_rails/mui.pullrefresh.js +0 -157
  55. data/app/assets/javascripts/mui_app_rails/mui.target.js +0 -58
  56. data/app/assets/javascripts/mui_app_rails/mui.view.js +0 -172
  57. data/app/assets/javascripts/mui_app_rails/popovers.js +0 -278
  58. data/app/assets/javascripts/mui_app_rails/pullrefresh.5+.js +0 -238
  59. data/app/assets/javascripts/mui_app_rails/push.js +0 -479
  60. data/app/assets/javascripts/mui_app_rails/segmented-controllers.js +0 -99
  61. data/app/assets/javascripts/mui_app_rails/sliders.js +0 -362
  62. data/app/assets/javascripts/mui_app_rails/switches.js +0 -165
  63. data/app/assets/javascripts/mui_app_rails/tableviews.js +0 -512
  64. data/app/assets/stylesheets/mui_app_rails/badges.scss +0 -88
  65. data/app/assets/stylesheets/mui_app_rails/bars.scss +0 -312
  66. data/app/assets/stylesheets/mui_app_rails/base.scss +0 -196
  67. data/app/assets/stylesheets/mui_app_rails/buttons.scss +0 -205
  68. data/app/assets/stylesheets/mui_app_rails/cards.scss +0 -62
  69. data/app/assets/stylesheets/mui_app_rails/forms.scss +0 -452
  70. data/app/assets/stylesheets/mui_app_rails/fullscreen.scss +0 -35
  71. data/app/assets/stylesheets/mui_app_rails/grid.scss +0 -75
  72. data/app/assets/stylesheets/mui_app_rails/hack.scss +0 -14
  73. data/app/assets/stylesheets/mui_app_rails/icon.scss +0 -170
  74. data/app/assets/stylesheets/mui_app_rails/iscroll.scss +0 -43
  75. data/app/assets/stylesheets/mui_app_rails/loadings.scss +0 -111
  76. data/app/assets/stylesheets/mui_app_rails/mixins.scss +0 -212
  77. data/app/assets/stylesheets/mui_app_rails/modals.scss +0 -34
  78. data/app/assets/stylesheets/mui_app_rails/mui.scss +0 -46
  79. data/app/assets/stylesheets/mui_app_rails/normalize.scss +0 -425
  80. data/app/assets/stylesheets/mui_app_rails/number.scss +0 -70
  81. data/app/assets/stylesheets/mui_app_rails/off-canvas.scss +0 -84
  82. data/app/assets/stylesheets/mui_app_rails/os.scss +0 -12
  83. data/app/assets/stylesheets/mui_app_rails/pagination.scss +0 -155
  84. data/app/assets/stylesheets/mui_app_rails/popovers.scss +0 -198
  85. data/app/assets/stylesheets/mui_app_rails/pullrefreshs.scss +0 -98
  86. data/app/assets/stylesheets/mui_app_rails/push.scss +0 -63
  87. data/app/assets/stylesheets/mui_app_rails/scroll.scss +0 -95
  88. data/app/assets/stylesheets/mui_app_rails/segmented-controls.scss +0 -150
  89. data/app/assets/stylesheets/mui_app_rails/slider-cell.scss +0 -20
  90. data/app/assets/stylesheets/mui_app_rails/sliders.scss +0 -133
  91. data/app/assets/stylesheets/mui_app_rails/switches.scss +0 -115
  92. data/app/assets/stylesheets/mui_app_rails/table-views.scss +0 -482
  93. data/app/assets/stylesheets/mui_app_rails/toast.scss +0 -16
  94. data/app/assets/stylesheets/mui_app_rails/type.scss +0 -23
  95. data/app/assets/stylesheets/mui_app_rails/variables.scss +0 -64
@@ -1,37 +0,0 @@
1
- /**
2
- * Modals
3
- * @param {type} $
4
- * @param {type} window
5
- * @param {type} document
6
- * @param {type} name
7
- * @returns {undefined}
8
- */
9
- (function($, window, document, name) {
10
- var CLASS_MODAL = $.className('modal');
11
-
12
- var handle = function(event, target) {
13
- if (target.tagName === 'A' && target.hash) {
14
- var modal = document.getElementById(target.hash.replace('#', ''));
15
- if (modal && modal.classList.contains(CLASS_MODAL)) {
16
- return modal;
17
- }
18
- }
19
- return false;
20
- };
21
-
22
- $.registerTarget({
23
- name: name,
24
- index: 50,
25
- handle: handle,
26
- target: false,
27
- isReset: false,
28
- isContinue: true
29
- });
30
-
31
- window.addEventListener('tap', function(event) {
32
- if ($.targets.modal) {
33
- event.detail.gesture.preventDefault(); //fixed hashchange
34
- $.targets.modal.classList.toggle($.className('active'));
35
- }
36
- });
37
- })(mui, window, document, 'modal');
@@ -1,30 +0,0 @@
1
- /**
2
- * TODO mui active
3
- */
4
- (function(window) {
5
- var active;
6
- window.addEventListener('touchstart', function(event) {
7
- var target = event.target;
8
- var isCellDisabled = false;
9
- for (; target && target !== document; target = target.parentNode) {
10
- if (target.classList) {
11
- var classList = target.classList;
12
- if (classList.contains(CLASS_DISABLED)) { //normal
13
- isCellDisabled = true;
14
- } else if (target.tagName === 'INPUT' || target.tagName === 'BUTTON' || classList.contains(CLASS_TOGGLE) || classList.contains(CLASS_BTN)) {
15
- isCellDisabled = true;
16
- }
17
- if (classList.contains(CLASS_TABLE_VIEW_CELL)) {
18
- if (!isCellDisabled) {
19
- active = target;
20
- var link = cell.querySelector('a');
21
- if (link && link.parentNode === cell) { //li>a
22
- active = link;
23
- }
24
- }
25
- break;
26
- }
27
- }
28
- }
29
- });
30
- })(window);
@@ -1,27 +0,0 @@
1
- /**
2
- * 5+ ajax
3
- */
4
- (function($) {
5
- var originAnchor = document.createElement('a');
6
- originAnchor.href = window.location.href;
7
- $.plusReady(function() {
8
- $.ajaxSettings = $.extend($.ajaxSettings, {
9
- xhr: function(settings) {
10
- if (settings.crossDomain) { //强制使用plus跨域
11
- return new plus.net.XMLHttpRequest();
12
- }
13
- //仅在webview的url为远程文件,且ajax请求的资源不同源下使用plus.net.XMLHttpRequest
14
- if (originAnchor.protocol !== 'file:') {
15
- var urlAnchor = document.createElement('a');
16
- urlAnchor.href = settings.url;
17
- urlAnchor.href = urlAnchor.href;
18
- settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host);
19
- if (settings.crossDomain) {
20
- return new plus.net.XMLHttpRequest();
21
- }
22
- }
23
- return new window.XMLHttpRequest();
24
- }
25
- });
26
- });
27
- })(mui);
@@ -1,277 +0,0 @@
1
- /**
2
- * mui ajax
3
- * @param {type} $
4
- * @returns {undefined}
5
- */
6
- (function($, window, undefined) {
7
-
8
- var jsonType = 'application/json';
9
- var htmlType = 'text/html';
10
- var rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
11
- var scriptTypeRE = /^(?:text|application)\/javascript/i;
12
- var xmlTypeRE = /^(?:text|application)\/xml/i;
13
- var blankRE = /^\s*$/;
14
-
15
- $.ajaxSettings = {
16
- type: 'GET',
17
- beforeSend: $.noop,
18
- success: $.noop,
19
- error: $.noop,
20
- complete: $.noop,
21
- context: null,
22
- xhr: function(protocol) {
23
- return new window.XMLHttpRequest();
24
- },
25
- accepts: {
26
- script: 'text/javascript, application/javascript, application/x-javascript',
27
- json: jsonType,
28
- xml: 'application/xml, text/xml',
29
- html: htmlType,
30
- text: 'text/plain'
31
- },
32
- timeout: 0,
33
- processData: true,
34
- cache: true
35
- };
36
- var ajaxBeforeSend = function(xhr, settings) {
37
- var context = settings.context
38
- if (settings.beforeSend.call(context, xhr, settings) === false) {
39
- return false;
40
- }
41
- };
42
- var ajaxSuccess = function(data, xhr, settings) {
43
- settings.success.call(settings.context, data, 'success', xhr);
44
- ajaxComplete('success', xhr, settings);
45
- };
46
- // type: "timeout", "error", "abort", "parsererror"
47
- var ajaxError = function(error, type, xhr, settings) {
48
- settings.error.call(settings.context, xhr, type, error);
49
- ajaxComplete(type, xhr, settings);
50
- };
51
- // status: "success", "notmodified", "error", "timeout", "abort", "parsererror"
52
- var ajaxComplete = function(status, xhr, settings) {
53
- settings.complete.call(settings.context, xhr, status);
54
- };
55
-
56
- var serialize = function(params, obj, traditional, scope) {
57
- var type, array = $.isArray(obj),
58
- hash = $.isPlainObject(obj);
59
- $.each(obj, function(key, value) {
60
- type = $.type(value);
61
- if (scope) {
62
- key = traditional ? scope :
63
- scope + '[' + (hash || type === 'object' || type === 'array' ? key : '') + ']';
64
- }
65
- // handle data in serializeArray() format
66
- if (!scope && array) {
67
- params.add(value.name, value.value);
68
- }
69
- // recurse into nested objects
70
- else if (type === "array" || (!traditional && type === "object")) {
71
- serialize(params, value, traditional, key);
72
- } else {
73
- params.add(key, value);
74
- }
75
- });
76
- };
77
- var serializeData = function(options) {
78
- if (options.processData && options.data && typeof options.data !== "string") {
79
- options.data = $.param(options.data, options.traditional);
80
- }
81
- if (options.data && (!options.type || options.type.toUpperCase() === 'GET')) {
82
- options.url = appendQuery(options.url, options.data);
83
- options.data = undefined;
84
- }
85
- };
86
- var appendQuery = function(url, query) {
87
- if (query === '') {
88
- return url;
89
- }
90
- return (url + '&' + query).replace(/[&?]{1,2}/, '?');
91
- };
92
- var mimeToDataType = function(mime) {
93
- if (mime) {
94
- mime = mime.split(';', 2)[0];
95
- }
96
- return mime && (mime === htmlType ? 'html' :
97
- mime === jsonType ? 'json' :
98
- scriptTypeRE.test(mime) ? 'script' :
99
- xmlTypeRE.test(mime) && 'xml') || 'text';
100
- };
101
- var parseArguments = function(url, data, success, dataType) {
102
- if ($.isFunction(data)) {
103
- dataType = success, success = data, data = undefined;
104
- }
105
- if (!$.isFunction(success)) {
106
- dataType = success, success = undefined;
107
- }
108
- return {
109
- url: url,
110
- data: data,
111
- success: success,
112
- dataType: dataType
113
- };
114
- };
115
- $.ajax = function(url, options) {
116
- if (typeof url === "object") {
117
- options = url;
118
- url = undefined;
119
- }
120
- var settings = options || {};
121
- settings.url = url || settings.url;
122
- for (var key in $.ajaxSettings) {
123
- if (settings[key] === undefined) {
124
- settings[key] = $.ajaxSettings[key];
125
- }
126
- }
127
- serializeData(settings);
128
- var dataType = settings.dataType;
129
-
130
- if (settings.cache === false || ((!options || options.cache !== true) && ('script' === dataType))) {
131
- settings.url = appendQuery(settings.url, '_=' + $.now());
132
- }
133
- var mime = settings.accepts[dataType];
134
- var headers = {};
135
- var setHeader = function(name, value) {
136
- headers[name.toLowerCase()] = [name, value];
137
- };
138
- var protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol;
139
- var xhr = settings.xhr(settings);
140
- var nativeSetHeader = xhr.setRequestHeader;
141
- var abortTimeout;
142
-
143
- setHeader('X-Requested-With', 'XMLHttpRequest');
144
- setHeader('Accept', mime || '*/*');
145
- if (!!(mime = settings.mimeType || mime)) {
146
- if (mime.indexOf(',') > -1) {
147
- mime = mime.split(',', 2)[0];
148
- }
149
- xhr.overrideMimeType && xhr.overrideMimeType(mime);
150
- }
151
- if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() !== 'GET')) {
152
- setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');
153
- }
154
- if (settings.headers) {
155
- for (var name in settings.headers)
156
- setHeader(name, settings.headers[name]);
157
- }
158
- xhr.setRequestHeader = setHeader;
159
-
160
- xhr.onreadystatechange = function() {
161
- if (xhr.readyState === 4) {
162
- xhr.onreadystatechange = $.noop;
163
- clearTimeout(abortTimeout);
164
- var result, error = false;
165
- if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || (xhr.status === 0 && protocol === 'file:')) {
166
- dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));
167
- result = xhr.responseText;
168
- try {
169
- // http://perfectionkills.com/global-eval-what-are-the-options/
170
- if (dataType === 'script') {
171
- (1, eval)(result);
172
- } else if (dataType === 'xml') {
173
- result = xhr.responseXML;
174
- } else if (dataType === 'json') {
175
- result = blankRE.test(result) ? null : $.parseJSON(result);
176
- }
177
- } catch (e) {
178
- error = e;
179
- }
180
-
181
- if (error) {
182
- ajaxError(error, 'parsererror', xhr, settings);
183
- } else {
184
- ajaxSuccess(result, xhr, settings);
185
- }
186
- } else {
187
- ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings);
188
- }
189
- }
190
- };
191
- if (ajaxBeforeSend(xhr, settings) === false) {
192
- xhr.abort();
193
- ajaxError(null, 'abort', xhr, settings);
194
- return xhr;
195
- }
196
-
197
- if (settings.xhrFields) {
198
- for (var name in settings.xhrFields) {
199
- xhr[name] = settings.xhrFields[name];
200
- }
201
- }
202
-
203
- var async = 'async' in settings ? settings.async : true;
204
-
205
- xhr.open(settings.type.toUpperCase(), settings.url, async, settings.username, settings.password);
206
-
207
- for (var name in headers) {
208
- nativeSetHeader.apply(xhr, headers[name]);
209
- }
210
- if (settings.timeout > 0) {
211
- abortTimeout = setTimeout(function() {
212
- xhr.onreadystatechange = $.noop;
213
- xhr.abort();
214
- ajaxError(null, 'timeout', xhr, settings);
215
- }, settings.timeout);
216
- }
217
- xhr.send(settings.data ? settings.data : null);
218
- return xhr;
219
- };
220
-
221
-
222
- $.param = function(obj, traditional) {
223
- var params = [];
224
- params.add = function(k, v) {
225
- this.push(encodeURIComponent(k) + '=' + encodeURIComponent(v));
226
- };
227
- serialize(params, obj, traditional);
228
- return params.join('&').replace(/%20/g, '+');
229
- };
230
- $.get = function( /* url, data, success, dataType */ ) {
231
- return $.ajax(parseArguments.apply(null, arguments));
232
- };
233
-
234
- $.post = function( /* url, data, success, dataType */ ) {
235
- var options = parseArguments.apply(null, arguments);
236
- options.type = 'POST';
237
- return $.ajax(options);
238
- };
239
-
240
- $.getJSON = function( /* url, data, success */ ) {
241
- var options = parseArguments.apply(null, arguments);
242
- options.dataType = 'json';
243
- return $.ajax(options);
244
- };
245
-
246
- $.fn.load = function(url, data, success) {
247
- if (!this.length)
248
- return this;
249
- var self = this,
250
- parts = url.split(/\s/),
251
- selector,
252
- options = parseArguments(url, data, success),
253
- callback = options.success;
254
- if (parts.length > 1)
255
- options.url = parts[0], selector = parts[1];
256
- options.success = function(response) {
257
- if (selector) {
258
- var div = document.createElement('div');
259
- div.innerHTML = response.replace(rscript, "");
260
- var selectorDiv = document.createElement('div');
261
- var childs = div.querySelectorAll(selector);
262
- if (childs && childs.length > 0) {
263
- for (var i = 0, len = childs.length; i < len; i++) {
264
- selectorDiv.appendChild(childs[i]);
265
- }
266
- }
267
- self[0].innerHTML = selectorDiv.innerHTML;
268
- } else {
269
- self[0].innerHTML = response;
270
- }
271
- callback && callback.apply(self, arguments);
272
- };
273
- $.ajax(options);
274
- return this;
275
- };
276
-
277
- })(mui, window);
@@ -1,39 +0,0 @@
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);
@@ -1,72 +0,0 @@
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);
@@ -1,108 +0,0 @@
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);
@@ -1,56 +0,0 @@
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);
@@ -1,40 +0,0 @@
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);