mui_app_rails 0.0.1 → 0.0.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.
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);