fastman2 3.0.0-alpha.1 → 3.0.0-alpha.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.
package/passguardman.js CHANGED
@@ -1,1722 +1 @@
1
- (function webpackUniversalModuleDefinition(root, factory) {
2
- if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory();
4
- else if(typeof define === 'function' && define.amd)
5
- define([], factory);
6
- else if(typeof exports === 'object')
7
- exports["fastman"] = factory();
8
- else
9
- root["fastman"] = factory();
10
- })(this, function() {
11
- return /******/ (function(modules) { // webpackBootstrap
12
- /******/ // The module cache
13
- /******/ var installedModules = {};
14
- /******/
15
- /******/ // The require function
16
- /******/ function __webpack_require__(moduleId) {
17
- /******/
18
- /******/ // Check if module is in cache
19
- /******/ if(installedModules[moduleId]) {
20
- /******/ return installedModules[moduleId].exports;
21
- /******/ }
22
- /******/ // Create a new module (and put it into the cache)
23
- /******/ var module = installedModules[moduleId] = {
24
- /******/ i: moduleId,
25
- /******/ l: false,
26
- /******/ exports: {}
27
- /******/ };
28
- /******/
29
- /******/ // Execute the module function
30
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
- /******/
32
- /******/ // Flag the module as loaded
33
- /******/ module.l = true;
34
- /******/
35
- /******/ // Return the exports of the module
36
- /******/ return module.exports;
37
- /******/ }
38
- /******/
39
- /******/
40
- /******/ // expose the modules object (__webpack_modules__)
41
- /******/ __webpack_require__.m = modules;
42
- /******/
43
- /******/ // expose the module cache
44
- /******/ __webpack_require__.c = installedModules;
45
- /******/
46
- /******/ // identity function for calling harmony imports with the correct context
47
- /******/ __webpack_require__.i = function(value) { return value; };
48
- /******/
49
- /******/ // define getter function for harmony exports
50
- /******/ __webpack_require__.d = function(exports, name, getter) {
51
- /******/ if(!__webpack_require__.o(exports, name)) {
52
- /******/ Object.defineProperty(exports, name, {
53
- /******/ configurable: false,
54
- /******/ enumerable: true,
55
- /******/ get: getter
56
- /******/ });
57
- /******/ }
58
- /******/ };
59
- /******/
60
- /******/ // getDefaultExport function for compatibility with non-harmony modules
61
- /******/ __webpack_require__.n = function(module) {
62
- /******/ var getter = module && module.__esModule ?
63
- /******/ function getDefault() { return module['default']; } :
64
- /******/ function getModuleExports() { return module; };
65
- /******/ __webpack_require__.d(getter, 'a', getter);
66
- /******/ return getter;
67
- /******/ };
68
- /******/
69
- /******/ // Object.prototype.hasOwnProperty.call
70
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
71
- /******/
72
- /******/ // __webpack_public_path__
73
- /******/ __webpack_require__.p = "";
74
- /******/
75
- /******/ // Load entry module and return exports
76
- /******/ return __webpack_require__(__webpack_require__.s = 20);
77
- /******/ })
78
- /************************************************************************/
79
- /******/ ({
80
-
81
- /***/ 12:
82
- /***/ (function(module, exports, __webpack_require__) {
83
-
84
- "use strict";
85
-
86
-
87
- Object.defineProperty(exports, "__esModule", {
88
- value: true
89
- });
90
- exports.default = Plugin;
91
- /**
92
- * Created by dfzq on 2017/4/7.
93
- */
94
- var passGuard = null;
95
-
96
- // // 设备检测
97
- // var isIpad = window.navigator.appVersion.match(/iPad/gi);
98
- // var isIPhone = window.navigator.appVersion.match(/iphone/gi);
99
- // var isSMT800UCPAD = window.navigator.appVersion.match(/SM-T800/gi);
100
- // var isAndroidUC = window.navigator.appVersion.match(/UCBrowser/gi);
101
- // var isLenovoA890e360 = window.navigator.appVersion.match(/Lenovo A890e/gi) && window.navigator.appVersion.match(/360 Aphone Browser/gi);
102
- // var isHuaWeiD26070 = window.navigator.appVersion.match(/HUAWEI D2-6070/gi) && window.navigator.appVersion.match(/LieBaoFast/gi);
103
- // var isFirst = true;
104
- //
105
- // // 安卓系统中需要resize操作
106
- // function resize() {
107
- // var value = 0;
108
- // var clientValue = 0;
109
- // var height = screen.height;
110
- // var width = screen.width;
111
- // var clientHeight = document.documentElement.clientHeight;
112
- // var clientWidth = document.documentElement.clientWidth;
113
- // var dpr = window.devicePixelRatio;
114
- // switch (window.orientation) {
115
- // case 0:
116
- // case 180:
117
- // if (isSMT800UCPAD) {
118
- // value = Math.max(height, width);
119
- // clientValue = Math.max(clientHeight, clientWidth);
120
- // if (!isIpad && !isIPhone) {
121
- // if (value / dpr >= clientValue && clientWidth != width) {
122
- // value = value / dpr;
123
- // }
124
- // }
125
- // } else {
126
- // value = Math.min(height, width);
127
- // clientValue = Math.min(clientHeight, clientWidth);
128
- // if (!isIpad && !isIPhone) {
129
- // if (Math.ceil(value / dpr) >= clientValue && clientHeight != height) {
130
- // value = value / dpr;
131
- // }
132
- // }
133
- // }
134
- // break;
135
- // case -90:
136
- // case 90:
137
- // if (isSMT800UCPAD) {
138
- // value = Math.min(height, width);
139
- // clientValue = Math.min(clientHeight, clientWidth);
140
- // if (!isIpad && !isIPhone) {
141
- // if (value / dpr >= clientValue && clientHeight != height) {
142
- // value = value / dpr;
143
- // }
144
- // }
145
- // } else if (isLenovoA890e360 || isHuaWeiD26070) {
146
- // value = Math.max(height, width);
147
- // clientValue = Math.max(clientHeight, clientWidth);
148
- // if (!isIpad && !isIPhone) {
149
- // if (value / dpr >= clientValue && clientWidth != width) {
150
- // value = value / dpr - 100;
151
- // }
152
- // }
153
- // } else {
154
- // value = Math.max(height, width);
155
- // clientValue = Math.max(clientHeight, clientWidth);
156
- // if (!isIpad && !isIPhone) {
157
- // if (Math.ceil(value / dpr) >= clientValue && clientWidth != width) {
158
- // value = value / dpr;
159
- // }
160
- // }
161
- // }
162
- // break;
163
- // default:
164
- // value = width;
165
- // break;
166
- // }
167
- // window.remFontSize = value / 16;
168
- // document.documentElement.style.fontSize = value / 16 + "px";
169
- // try {
170
- // var T = document.getElementById(kb.settings.id + "_kb").querySelectorAll(".keyboardEle");
171
- // for (var i = 0; i < T.length; i++) {
172
- // $(T[i]).removeClass("active").removeClass("active2");
173
- // }
174
- // } catch (e) {
175
- // }
176
- // };
177
- // addClassByUa();
178
- // function addClassByUa() {
179
- // if (isIpad) {
180
- // document.querySelector('html').className = 'ua-ipad';
181
- // }
182
- // };
183
- //
184
- // var isAndroid = window.navigator.appVersion.match(/android/gi);
185
- //
186
- // // 安卓中的处理
187
- // if (isAndroid && isAndroidUC) {
188
- // var b = null;
189
- // window.addEventListener("orientationchange", function () {
190
- // isFirst = false;
191
- // clearTimeout(b), b = setTimeout(resize, 300);
192
- // }, !1);
193
- // var isFirefox = navigator.userAgent.match(/Firefox/gi);
194
- // if (isFirefox) {
195
- // window.addEventListener("resize", function () {
196
- // clearTimeout(b), b = setTimeout(resize, 300);
197
- // }, !1);
198
- // }
199
- // resize();
200
- // }
201
- // // 非安卓系统的处理
202
- // else {
203
- // ;
204
- // (function (win, lib) {
205
- // var doc = win.document;
206
- // var docEl = doc.documentElement;
207
- // var metaEl = doc.querySelector('meta[name="viewport"]');
208
- // var flexibleEl = doc.querySelector('meta[name="flexible"]');
209
- // var dpr = 0;
210
- // var scale = 0;
211
- // var tid;
212
- // var flexible = lib.flexible || (lib.flexible = {});
213
- // if (metaEl) {
214
- // console.warn('将根据已有的meta标签来设置缩放比例');
215
- // var match = metaEl.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
216
- // if (match) {
217
- // scale = parseFloat(match[1]);
218
- // dpr = parseInt(1 / scale);
219
- // }
220
- // } else if (flexibleEl) {
221
- // var content = flexibleEl.getAttribute('content');
222
- // if (content) {
223
- // var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);
224
- // var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);
225
- // if (initialDpr) {
226
- // dpr = parseFloat(initialDpr[1]);
227
- // scale = parseFloat((1 / dpr).toFixed(2));
228
- // }
229
- // if (maximumDpr) {
230
- // dpr = parseFloat(maximumDpr[1]);
231
- // scale = parseFloat((1 / dpr).toFixed(2));
232
- // }
233
- // }
234
- // }
235
- // if (!dpr && !scale) {
236
- // var isAndroid = win.navigator.appVersion.match(/android/gi);
237
- // var isIPhone = win.navigator.appVersion.match(/iphone/gi);
238
- // var devicePixelRatio = win.devicePixelRatio;
239
- // if (isIPhone) {
240
- // if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
241
- // dpr = 3;
242
- // } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) {
243
- // dpr = 2;
244
- // } else {
245
- // dpr = 1;
246
- // }
247
- // } else {
248
- // dpr = 1;
249
- // }
250
- // scale = 1 / dpr;
251
- // }
252
- // docEl.setAttribute('data-dpr', dpr);
253
- // if (!metaEl) {
254
- // metaEl = doc.createElement('meta');
255
- // metaEl.setAttribute('name', 'viewport');
256
- // metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
257
- // if (docEl.firstElementChild) {
258
- // docEl.firstElementChild.appendChild(metaEl);
259
- // } else {
260
- // var wrap = doc.createElement('div');
261
- // wrap.appendChild(metaEl);
262
- // doc.write(wrap.innerHTML);
263
- // }
264
- // }
265
- // function refreshRem() {
266
- // var width = docEl.getBoundingClientRect().width;
267
- // var rem = width / 16;
268
- // docEl.style.fontSize = rem + 'px';
269
- // flexible.rem = win.rem = rem;
270
- // };
271
- // win.addEventListener('resize', function () {
272
- // console.log(docEl.getBoundingClientRect().width);
273
- // clearTimeout(tid);
274
- // tid = setTimeout(refreshRem, 300);
275
- // }, false);
276
- // win.addEventListener('pageshow', function (e) {
277
- // console.log('pageshow');
278
- // if (e.persisted) {
279
- // clearTimeout(tid);
280
- // tid = setTimeout(refreshRem, 300);
281
- // }
282
- // }, false);
283
- // // 进行垃圾回收
284
- // win.addEventListener('pagehide', function (e) {
285
- // console.log('pagehide');
286
- // if (passGuard != null) {
287
- // for (var F = 0; F < passGuard.G.length; F++) {
288
- // window.clearInterval(passGuard.G[F]);
289
- // }
290
- // }
291
- // }, false);
292
- // // if (doc.readyState === 'complete') {
293
- // // console.log('complete');
294
- // // doc.body.style.fontSize = 12 * dpr + 'px';
295
- // // } else {
296
- // // doc.addEventListener('DOMContentLoaded', function (e) {
297
- // // console.log('DOMContentLoaded');
298
- // // doc.body.style.fontSize = 12 * dpr + 'px';
299
- // // }, false);
300
- // // }
301
- // refreshRem();
302
- // flexible.dpr = win.dpr = dpr;
303
- // flexible.refreshRem = refreshRem;
304
- // flexible.rem2px = function (d) {
305
- // var val = parseFloat(d) * this.rem;
306
- // if (typeof d === 'string' && d.match(/rem$/)) {
307
- // val += 'px';
308
- // }
309
- // return val;
310
- // };
311
- // flexible.px2rem = function (d) {
312
- // var val = parseFloat(d) / this.rem;
313
- // if (typeof d === 'string' && d.match(/px$/)) {
314
- // val += 'rem';
315
- // }
316
- // return val;
317
- // }
318
- // })(window, window['lib'] || (window['lib'] = {}));
319
- // }
320
-
321
- ;(function (win, lib) {
322
- // 进行垃圾回收
323
- win.addEventListener('pagehide', function (e) {
324
- //console.log('pagehide');
325
- if (passGuard != null) {
326
- for (var F = 0; F < passGuard.G.length; F++) {
327
- window.clearInterval(passGuard.G[F]);
328
- }
329
- }
330
- }, false);
331
- })(window, window['lib'] || (window['lib'] = {}));
332
-
333
- // 构建keyBoard构造函数
334
- function keyBoard(options) {
335
- this.settings = {
336
- "id": "",
337
- "aW": 0,
338
- "pressStatus": 0,
339
- "kbType": 0,
340
- "pg": {},
341
- "odd": 1,
342
- "status": 0
343
- };
344
- if (options != undefined) {
345
- this.settings = options;
346
- }
347
- };
348
- keyBoard.prototype.generate = function (passGuardInstance) {
349
- passGuard = passGuardInstance;
350
- this.settings.id = new Date().getTime();
351
- var kb = '';
352
- var keyActive = false;
353
- var firstPress = true;
354
- var _this = this;
355
- var startTime;
356
- var header = '<div class="keyboard-header ui-border-t"><i class="icon-header"></i><h6>安全键盘</h6><i class="icon-keyboard-down keyboardEle" data-value="关闭键盘" data-name="6"></i></div>';
357
-
358
- // 键盘类型,0:全键盘;1:纯数字键盘,默认值0
359
- if (this.settings.kbType == 0) {
360
- kb = '<div id="' + this.settings.id + '_kb" class="keyboard-box" style="-webkit-user-select: none;-moz-user-select: none; visibility:hidden;">\
361
- ' + (this.settings.header ? header : '') + '\
362
- <div class="keyboard-chinese">\
363
- <div class="row1">\
364
- <div class="english">\
365
- <div class="white-52-78 keyboardEle" data-value="q" data-name="0">q</div>\
366
- <div class="white-52-78 keyboardEle" data-value="w" data-name="0">w</div>\
367
- <div class="white-52-78 keyboardEle" data-value="e" data-name="0">e</div>\
368
- <div class="white-52-78 keyboardEle" data-value="r" data-name="0">r</div>\
369
- <div class="white-52-78 keyboardEle" data-value="t" data-name="0">t</div>\
370
- <div class="white-52-78 keyboardEle" data-value="y" data-name="0">y</div>\
371
- <div class="white-52-78 keyboardEle" data-value="u" data-name="0">u</div>\
372
- <div class="white-52-78 keyboardEle" data-value="i" data-name="0">i</div>\
373
- <div class="white-52-78 keyboardEle" data-value="o" data-name="0">o</div>\
374
- <div class="white-52-78 keyboardEle last52-78" data-value="p" data-name="0">p</div>\
375
- </div>\
376
- <div class="number" style="display:none;">\
377
- <div class="white-52-78 keyboardEle" data-value="1" data-name="0">1</div>\
378
- <div class="white-52-78 keyboardEle" data-value="2" data-name="0">2</div>\
379
- <div class="white-52-78 keyboardEle" data-value="3" data-name="0">3</div>\
380
- <div class="white-52-78 keyboardEle" data-value="4" data-name="0">4</div>\
381
- <div class="white-52-78 keyboardEle" data-value="5" data-name="0">5</div>\
382
- <div class="white-52-78 keyboardEle" data-value="6" data-name="0">6</div>\
383
- <div class="white-52-78 keyboardEle" data-value="7" data-name="0">7</div>\
384
- <div class="white-52-78 keyboardEle" data-value="8" data-name="0">8</div>\
385
- <div class="white-52-78 keyboardEle" data-value="9" data-name="0">9</div>\
386
- <div class="white-52-78 keyboardEle" data-value="0" data-name="0">0</div>\
387
- </div>\
388
- <div class="mark" style="display:none;">\
389
- <div class="white-52-78 keyboardEle" data-value="[" data-name="0">[</div>\
390
- <div class="white-52-78 keyboardEle" data-value="]" data-name="0">]</div>\
391
- <div class="white-52-78 keyboardEle" data-value="{" data-name="0">{</div>\
392
- <div class="white-52-78 keyboardEle" data-value="}" data-name="0">}</div>\
393
- <div class="white-52-78 keyboardEle" data-value="#" data-name="0">#</div>\
394
- <div class="white-52-78 keyboardEle" data-value="%" data-name="0">%</div>\
395
- <div class="white-52-78 keyboardEle" data-value="^" data-name="0">^</div>\
396
- <div class="white-52-78 keyboardEle" data-value="*" data-name="0">*</div>\
397
- <div class="white-52-78 keyboardEle" data-value="+" data-name="0">+</div>\
398
- <div class="white-52-78 keyboardEle" data-value="=" data-name="0">=</div>\
399
- </div>\
400
- </div>\
401
- <div class="row2">\
402
- <div class="english">\
403
- <div class="white-52-78 keyboardEle" data-value="a" data-name="0">a</div>\
404
- <div class="white-52-78 keyboardEle" data-value="s" data-name="0">s</div>\
405
- <div class="white-52-78 keyboardEle" data-value="d" data-name="0">d</div>\
406
- <div class="white-52-78 keyboardEle" data-value="f" data-name="0">f</div>\
407
- <div class="white-52-78 keyboardEle" data-value="g" data-name="0">g</div>\
408
- <div class="white-52-78 keyboardEle" data-value="h" data-name="0">h</div>\
409
- <div class="white-52-78 keyboardEle" data-value="j" data-name="0">j</div>\
410
- <div class="white-52-78 keyboardEle" data-value="k" data-name="0">k</div>\
411
- <div class="white-52-78 keyboardEle" data-value="l" data-name="0">l</div>\
412
- </div>\
413
- <div class="number" style="display:none;">\
414
- <div class="white-52-78 keyboardEle" data-value="-" data-name="0">-</div>\
415
- <div class="white-52-78 keyboardEle" data-value="/" data-name="0">/</div>\
416
- <div class="white-52-78 keyboardEle" data-value=":" data-name="0">:</div>\
417
- <div class="white-52-78 keyboardEle" data-value=";" data-name="0">;</div>\
418
- <div class="white-52-78 keyboardEle" data-value="(" data-name="0">(</div>\
419
- <div class="white-52-78 keyboardEle" data-value=")" data-name="0">)</div>\
420
- <div class="white-52-78 keyboardEle" data-value="$" data-name="0">$</div>\
421
- <div class="white-52-78 keyboardEle" data-value="&" data-name="0">&</div>\
422
- <div class="white-52-78 keyboardEle" data-value="@" data-name="0">@</div>\
423
- <div class="white-52-78 keyboardEle" data-value="\\\"" data-name="0">"</div>\
424
- </div>\
425
- <div class="mark" style="display:none;">\
426
- <div class="white-52-78 keyboardEle" data-value="_" data-name="0">_</div>\
427
- <div class="white-52-78 keyboardEle" data-value="\\" data-name="0">/\</div>\
428
- <div class="white-52-78 keyboardEle" data-value="|" data-name="0">|</div>\
429
- <div class="white-52-78 keyboardEle" data-value="~" data-name="0">~</div>\
430
- <div class="white-52-78 keyboardEle" data-value="<" data-name="0"><</div>\
431
- <div class="white-52-78 keyboardEle" data-value=">" data-name="0">></div>\
432
- <div class="white-52-78 keyboardEle" data-value="$" data-name="0">$</div>\
433
- <div class="white-52-78 keyboardEle" data-value="&" data-name="0">&</div>\
434
- <div class="white-52-78 keyboardEle" data-value="@" data-name="0">@</div>\
435
- <div class="white-52-78 keyboardEle" data-value="`" data-name="0">`</div>\
436
- </div>\
437
- </div>\
438
- <div class="row3">\
439
- <div class="english">\
440
- <div class="gray-72-78 shift-72-78 keyboardEle" data-value="大小写" data-name="1"><i class="icon-keyboard-caps"></i><i class="icon-keyboard-caps-active"></i></div>\
441
- <div class="white-52-78 keyboardEle keyboardEle" data-value="z" data-name="0">z</div>\
442
- <div class="white-52-78 keyboardEle keyboardEle" data-value="x" data-name="0">x</div>\
443
- <div class="white-52-78 keyboardEle keyboardEle" data-value="c" data-name="0">c</div>\
444
- <div class="white-52-78 keyboardEle keyboardEle" data-value="v" data-name="0">v</div>\
445
- <div class="white-52-78 keyboardEle keyboardEle" data-value="b" data-name="0">b</div>\
446
- <div class="white-52-78 keyboardEle keyboardEle" data-value="n" data-name="0">n</div>\
447
- <div class="white-52-78 keyboardEle keyboardEle" data-value="m" data-name="0">m</div>\
448
- </div>\
449
- <div class="number" style="display:none;">\
450
- <div class="gray-72-78 keyboardEle" data-value="切换符号键盘" data-name="2">#+=</div>\
451
- <div class="white-78-78 keyboardEle" data-value="." data-name="0">.</div>\
452
- <div class="white-78-78 keyboardEle" data-value="," data-name="0">,</div>\
453
- <div class="white-78-78 keyboardEle" data-value="?" data-name="0">?</div>\
454
- <div class="white-78-78 keyboardEle" data-value="!" data-name="0">!</div>\
455
- <div class="white-78-78 keyboardEle" data-value="\'" data-name="0">\'</div>\
456
- </div>\
457
- <div class="mark" style="display:none;">\
458
- <div class="gray-72-78 keyboardEle" data-value="切换数字键盘" data-name="3">123</div>\
459
- <div class="white-78-78 keyboardEle" data-value="." data-name="0">.</div>\
460
- <div class="white-78-78 keyboardEle" data-value="," data-name="0">,</div>\
461
- <div class="white-78-78 keyboardEle" data-value="?" data-name="0">?</div>\
462
- <div class="white-78-78 keyboardEle" data-value="!" data-name="0">!</div>\
463
- <div class="white-78-78 keyboardEle" data-value="\'" data-name="0">\'</div>\
464
- </div>\
465
- <div class="gray-72-78 del-72-78 keyboardEle" data-value="回删" data-name="4"><i class="icon-keyboard-delete"></i></div>\
466
- </div>\
467
- <div class="row4">\
468
- <div class="english">\
469
- <div class="gray-148-78 keyboardEle" data-value="切换数字键盘" data-name="3">.?123</div>\
470
- </div>\
471
- <div class="number" style="display:none;">\
472
- <div class="gray-148-78 keyboardEle" data-value="切换英文键盘" data-name="5">ABC</div>\
473
- </div>\
474
- <div class="mark" style="display:none;">\
475
- <div class="gray-148-78 keyboardEle" data-value="切换英文键盘" data-name="5">ABC</div>\
476
- </div>\
477
- <div class="white-308-78 keyboardEle" data-value=" " data-name="0">space</div>\
478
- <div class="gray-148-78 keybord-196-94 keyboardEle" data-value="提交键盘" data-name="7">确定</div>\
479
- </div>\
480
- </div>\
481
- </div>';
482
- } else {
483
- kb = '<div id="' + this.settings.id + '_kb" class="keyboard-box" style="visibility:hidden;">\
484
- ' + (this.settings.header ? header : '') + '\
485
- <ul class="keyboard-tel">\
486
- <div class="row1 ui-border-t">\
487
- <li class="white-196-94 keyboardEle ui-border-r" data-value="1" data-name="0">1</li>\
488
- <li class="white-196-94 keyboardEle ui-border-r" data-value="2" data-name="0">2</li>\
489
- <li class="white-196-94 keyboardEle" data-value="3" data-name="0">3</li>\
490
- </div>\
491
- <div class="row1 ui-border-t">\
492
- <li class="white-196-94 keyboardEle ui-border-r" data-value="4" data-name="0">4</li>\
493
- <li class="white-196-94 keyboardEle ui-border-r" data-value="5" data-name="0">5</li>\
494
- <li class="white-196-94 keyboardEle" data-value="6" data-name="0">6</li>\
495
- </div>\
496
- <div class="row1 ui-border-t">\
497
- <li class="white-196-94 keyboardEle ui-border-r" data-value="7" data-name="0">7</li>\
498
- <li class="white-196-94 keyboardEle ui-border-r" data-value="8" data-name="0">8</li>\
499
- <li class="white-196-94 keyboardEle" data-value="9" data-name="0">9</li>\
500
- </div>\
501
- <div class="row1 ui-border-t">\
502
- <li class="gray-196-94 keybord-196-94 keyboardEle ui-border-r" data-value="' + (this.settings.carrySpot ? '.' : ' ') + '" data-name="0">' + (this.settings.carrySpot ? '.' : '') + '</li>\
503
- <li class="white-196-94 keyboardEle ui-border-r" data-value="0" data-name="0">0</li>\
504
- <li class="gray-196-94 del-196-94 keyboardEle" data-value="回删" data-name="4"><i class="icon-keyboard-delete"></i></li>\
505
- </div>\
506
- </ul>\
507
- </div>';
508
- }
509
- // 只有在document的readyState还是Loading的时候有效,否则readyState为complete时就会覆盖整个document
510
- //document.write(kb);
511
- // 使用jquery来更正
512
- $('body').append(kb);
513
-
514
- if (this.settings.kbType == 0) {
515
- $(".keyboard-chinese")[0].ontouchstart = function (e) {
516
- var h = e.target.className;
517
- if (h.indexOf("row1") > -1 || h.indexOf("row2") > -1 || h.indexOf("row3") > -1 || h.indexOf("row4") > -1) {
518
- e.preventDefault();
519
- return false;
520
- }
521
- };
522
- } else if (this.settings.kbType == 1) {}
523
- var T = document.getElementById(this.settings.id + "_kb").querySelectorAll(".keyboardEle");
524
- // 当前原型体
525
- var k = this;
526
- var O = [];
527
- for (var i = 0; i < T.length; i++) {
528
- // 为每一个按钮声明tap事件(部分安卓机型存在点击不灵敏的问题)
529
- $(T[i]).on("tap", function (bv) {
530
- if (keyActive && !firstPress) {
531
- return;
532
- }
533
- var event = -1;
534
- var name = this.getAttribute('data-name');
535
- var key = this.getAttribute('data-value');
536
- // 触发所定义的代理Event
537
- var self = k.jq();
538
-
539
- // 键盘隐藏
540
- if (name == "6") {
541
- event = 1;
542
- }
543
- // 删除
544
- else if (name == "4") {
545
- event = 2;
546
- }
547
- // 数字键盘唤醒
548
- else if (name == "3") {
549
- event = 4;
550
- }
551
- // 英文键盘唤醒
552
- else if (name == "5") {
553
- event = 5;
554
- }
555
- // 全键盘唤醒
556
- else if (name == "2") {
557
- event = 6;
558
- }
559
- // 未知类型
560
- else if (name == "1") {
561
- event = 7;
562
- }
563
- // 提交键盘
564
- else if (name == "7") {
565
- event = 8;
566
- }
567
- // 普通按钮点击
568
- else {
569
- event = 0;
570
- }
571
- if (k.settings.aW == 2 && event == 0) {
572
- var aQ = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm'];
573
- aQ = k.randArray(aQ, bS);
574
- var english = document.getElementById(k.settings.id + "_kb").querySelectorAll(".row1 .english .keyboardEle,.row2 .english .keyboardEle,.row3 .english .white-52-78");
575
- for (var j = 0; j < english.length; j++) {
576
- english[j].innerHTML = aQ[j];
577
- english[j].setAttribute('data-value', aQ[j]);
578
- }
579
- }
580
- if (key == " ") {
581
- return;
582
- }
583
-
584
- // 键盘点击前
585
- if (name != '6' && name != '1') self.trigger($.Event("keyboard:pressing"));
586
- // 产生混淆值,同时显示文本框
587
- k.preCallBack(event, key.charCodeAt() ^ k.settings.odd);
588
- // 键盘点击后
589
- if (name != '6' && name != '1') self.trigger($.Event("keyboard:pressed"));
590
-
591
- // 键盘提交
592
- if (name == '7') {
593
- self.trigger($.Event("keyboard:submit"));
594
- }
595
-
596
- var bS = false;
597
- var R = 0;
598
- if ($(".shift-72-78").hasClass('active2') || $(".shift-72-78").hasClass('active')) {
599
- bS = true;
600
- } else {
601
- bS = false;
602
- }
603
- if (!$(".shift-72-78").hasClass('active2') && !$(".shift-72-78").hasClass('active')) {
604
- R = 0;
605
- } else if ($(".shift-72-78").hasClass('active2')) {
606
- R = 1;
607
- } else if ($(".shift-72-78").hasClass('active')) {
608
- R = 2;
609
- }
610
- if (name == "1") {
611
- if (R == 0) {
612
- $(this).addClass('active2');
613
- $(".english").removeClass("low");
614
- $(".english").addClass("upp");
615
- $(".english .white-52-78").each(function () {
616
- var val = $(this).attr("data-value");
617
- $(this).attr("data-value", val.toUpperCase());
618
- });
619
- } else {
620
- $(this).removeClass('active2');
621
- $(this).removeClass('active');
622
- $(".english").removeClass("upp");
623
- $(".english").addClass("low");
624
- $(".english .white-52-78").each(function () {
625
- var val = $(this).attr("data-value");
626
- $(this).attr("data-value", val.toLowerCase());
627
- });
628
- }
629
- } else {
630
- if (R != 2) {
631
- $(".shift-72-78").removeClass('active2');
632
- $(".shift-72-78").removeClass('active');
633
- }
634
- if ($(".shift-72-78").hasClass('active2') || $(".shift-72-78").hasClass('active')) {
635
- $(".english").removeClass("low");
636
- $(".english").addClass("upp");
637
- $(".english .white-52-78").each(function () {
638
- var val = $(this).attr("data-value");
639
- $(this).attr("data-value", val.toUpperCase());
640
- });
641
- } else {
642
- $(".english").removeClass("upp");
643
- $(".english").addClass("low");
644
- $(".english .white-52-78").each(function () {
645
- var val = $(this).attr("data-value");
646
- $(this).attr("data-value", val.toLowerCase());
647
- });
648
- }
649
- $(this).removeClass('active');
650
- }
651
- });
652
- // 按键状态,0:按下、抬起按键无变化;1:按下、抬起按键的颜色变化,默认值0
653
- if (k.settings.pressStatus == 1) {
654
- var ae = 0;
655
- var ab = 0;
656
- var aY = false;
657
- var delInter;
658
- // 按钮着色状态下开始按下时触发
659
- T[i].ontouchstart = function (e) {
660
- // 2017-12-26 解决IOS8第二次点击自动触发原生键盘的BUG
661
- var input = document.getElementById(k.settings.pg.settings.id);
662
- input.blur();
663
-
664
- ae = new Date().getTime();
665
- if (keyActive && !firstPress) {
666
- return;
667
- }
668
- ae = new Date().getTime();
669
- var name = $(this).attr("data-name");
670
- if (name != "1") {
671
- $(this).addClass('active');
672
- keyActive = true;
673
- firstPress = false;
674
- }
675
- var o = this;
676
- delInter = window.setInterval(function () {
677
- ab = new Date().getTime();
678
- var x = ab - ae;
679
- var name = $(o).attr("data-name");
680
- if (name == "4" && x > 500) {
681
- var input = document.getElementById(k.settings.pg.settings.id);
682
- var xI = setInterval(function () {
683
- k.settings.pg.v = k.settings.pg.v.substr(0, k.settings.pg.v.length - 1);
684
- k.settings.pg.J = k.settings.pg.J.substr(0, k.settings.pg.J.length - 1);
685
- input.value = input.value.substr(0, k.settings.pg.J.length - 1);
686
- }, 50);
687
- O.push(xI);
688
- clearInterval(delInter);
689
- }
690
- }, 1);
691
- e.preventDefault();
692
- return false;
693
- };
694
- // 按钮着色状态下按下移动时触发
695
- T[i].ontouchmove = function (e) {
696
- e.preventDefault();
697
- return false;
698
- };
699
- // 按钮着色状态下按下抬起拇指时触发
700
- T[i].ontouchend = function (e) {
701
- keyActive = false;
702
- var name = $(this).attr("data-name");
703
- if (name != "1") {
704
- $(this).removeClass('active');
705
- }
706
- if (name == "4") {
707
- clearInterval(delInter);
708
- for (var F = 0; F < O.length; F++) {
709
- window.clearInterval(O[F]);
710
- }
711
- O = [];
712
- var input = document.getElementById(k.settings.pg.settings.id);
713
- var bj = "";
714
- for (var i = 0; i < k.settings.pg.J.length; i++) {
715
- bj += "*";
716
- }
717
- input.value = bj;
718
- }
719
- aY = false;
720
- e.preventDefault();
721
- return false;
722
- };
723
- }
724
- // // 长按事件
725
- // $(T[i]).on('longTap', function (e) {
726
- // var name = $(this).attr("data-name");
727
- // e.preventDefault();
728
- // return false;
729
- // });
730
- // // 双点事件
731
- // $(T[i]).on('doubleTap', function () {
732
- // var name = $(this).attr("data-name");
733
- // if (name == "1") {
734
- // $(this).removeClass('active2');
735
- // $(this).addClass('active');
736
- // if ($(this).hasClass('active2')) {
737
- // $(this).removeClass('active2');
738
- // $(this).removeClass('active');
739
- // $(".english").removeClass("upp");
740
- // $(".english").addClass("low");
741
- // $(".english .white-52-78").each(function () {
742
- // var val = $(this).attr("data-value");
743
- // $(this).attr("data-value", val.toLowerCase());
744
- // });
745
- // } else {
746
- // $(".english").removeClass("low");
747
- // $(".english").addClass("upp");
748
- // $(".english .white-52-78").each(function () {
749
- // var val = $(this).attr("data-value");
750
- // $(this).attr("data-value", val.toUpperCase());
751
- // });
752
- // }
753
- // }
754
- // });
755
- }
756
- };
757
- keyBoard.prototype.randArray = function (data, C) {
758
- ;
759
- var bi = data.length;
760
- ;
761
- var bH = new Array();
762
- for (var i = 0; i < bi; i++) {
763
- try1[i] = i;
764
- }
765
- ;
766
- var aL = new Array();
767
- for (var i = 0; i < bi; i++) {
768
- try2[i] = bH.splice(Math.floor(Math.random() * bH.length), 1);
769
- }
770
- ;
771
- var H = new Array();
772
- for (var i = 0; i < bi; i++) {
773
- if (C) {
774
- H[i] = data[aL[i]].toUpperCase();
775
- } else {
776
- H[i] = data[aL[i]].toLowerCase();
777
- }
778
- }
779
- return H;
780
- };
781
- keyBoard.prototype.show = function () {
782
- var _this = this;
783
- // 遮盖层创建
784
- var kbLayer = '<div id="' + this.settings.id + '_kbLayer" class="keyboard-box-layer"></div>';
785
- // 触发所定义的代理Event
786
- var self = _this.jq();
787
- self.trigger($.Event("keyboard:show"));
788
-
789
- setTimeout(function () {
790
- // 英文键盘重构(非全键盘)
791
- if (_this.settings.aW == 1) {
792
- var aQ = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'];
793
- aQ = _this.randArray(aQ);
794
- var english = document.getElementById(_this.settings.id + "_kb").querySelectorAll(".row1 .english .keyboardEle,.row2 .english .keyboardEle");
795
- for (var j = 0; j < english.length; j++) {
796
- english[j].innerHTML = aQ[j];
797
- english[j].setAttribute('data-value', aQ[j]);
798
- }
799
- }
800
- var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
801
- // 获取虚拟键盘的高度
802
- var height = $('.keyboard-box').height() + 200;
803
- $('body').css('padding-bottom', height);
804
- var kb = document.getElementById(_this.settings.id + "_kb");
805
- $('.keyboard-box').addClass('key-board-box-active');
806
- kb.style.visibility = "visible";
807
- _this.settings.status = 1;
808
-
809
- // 增加遮盖层,用于点击后关闭虚拟键盘实例
810
- var kbLayerEle = $('#' + _this.settings.id + '_kbLayer');
811
- if (!kbLayerEle.length) $('body').append(kbLayer);
812
- $('#' + _this.settings.id + '_kbLayer').on('click', function (e) {
813
- e.stopPropagation();
814
- if ($('.keyboard-box').hasClass('key-board-box-active')) {
815
- _this.hide();
816
- }
817
- });
818
- }, 10);
819
- };
820
- keyBoard.prototype.hide = function () {
821
- var _this = this;
822
- // 移除遮盖层
823
- var keyboard_layer = $('#' + _this.settings.id + '_kbLayer');
824
- if (keyboard_layer) {
825
- keyboard_layer.off();
826
- keyboard_layer.remove();
827
- }
828
-
829
- // 触发所定义的代理Event
830
- var self = _this.jq();
831
- self.trigger($.Event("keyboard:hide"));
832
-
833
- setTimeout(function () {
834
- $('.keyboard-box').removeClass('key-board-box-active');
835
- $('body').css('padding-bottom', 0);
836
- var kb = document.getElementById(_this.settings.id + "_kb");
837
- for (var F = 0; F < passGuard.G.length; F++) {
838
- if (passGuard.currentG != passGuard.G[F]) window.clearInterval(passGuard.G[F]);
839
- }
840
- for (var V = 0; V < passGuard.T.length; V++) {
841
- passGuard.T[V].value = passGuard.T[V].value.replace(/l/, "");
842
- }
843
- _this.settings.pg = {};
844
- _this.settings.odd = 1;
845
- setTimeout(function () {
846
- kb.style.visibility = "hidden";
847
- }, 500);
848
- _this.settings.status = 0;
849
- }, 0);
850
- };
851
-
852
- /**
853
- * 返回JQuery对象
854
- * @returns {*|jQuery|HTMLElement} 返回一个jquery对象
855
- */
856
- keyBoard.prototype.jq = function () {
857
- return $(document.getElementById(this.settings.id + "_kb"));
858
- };
859
-
860
- function Plugin(options) {
861
-
862
- return new keyBoard($.extend({
863
- 'chaosMode': 0, // 混乱模式,0:无混乱;1:打开时乱一次;2:每输入一个字符乱一次,默认值0
864
- 'pressStatus': 1, // 按键状态,0:按下、抬起按键无变化;1:按下、抬起按键的颜色变化,默认值0
865
- "kbType": 0, // 键盘类型,0:全键盘;1:纯数字键盘,默认值0
866
- 'odd': 51,
867
- 'status': 0
868
- }, options));
869
- }
870
-
871
- /***/ }),
872
-
873
- /***/ 13:
874
- /***/ (function(module, exports, __webpack_require__) {
875
-
876
- "use strict";
877
-
878
-
879
- Object.defineProperty(exports, "__esModule", {
880
- value: true
881
- });
882
- exports.default = Plugin;
883
-
884
- var _alert = __webpack_require__(17);
885
-
886
- var _alert2 = _interopRequireDefault(_alert);
887
-
888
- var _modal = __webpack_require__(2);
889
-
890
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
891
-
892
- /**
893
- * Created by dfzq on 2017/4/7.
894
- */
895
-
896
- function isArray(o) {
897
- return Object.prototype.toString.call(o) === '[object Array]';
898
- }
899
- function passGuard(options) {
900
- this.settings = {
901
- "id": "",
902
- "maxLength": 12,
903
- "regExp1": "[0-9]",
904
- "regExp2": "[0-9]{6,12}",
905
- "displayMode": 0,
906
- "rsaPublicKey": "",
907
- "randomKey": "",
908
- "enterEvent": "",
909
- "keyBoard": {},
910
- "mappingArray": []
911
- };
912
- this.J = "";
913
- this.v = "";
914
- if (options != undefined) {
915
- this.settings = options;
916
- }
917
- };
918
- // 密码控件循环器(保持文本框选中闪烁状态)
919
- passGuard.G = [];
920
- // 密码控件所关联控件队列
921
- passGuard.T = [];
922
- // 如果undefined就通过ajax获取随机因子
923
- passGuard.L = undefined;
924
- passGuard.prototype.generate = function (id, keyBoard) {
925
- this.settings.keyBoard = keyBoard;
926
- this.settings.id = id;
927
- var mixPromise = this.settings.mixPromise;
928
- var clearMixPromise = this.settings.clearMixPromise;
929
- var loading = this.settings.loading;
930
- var loadingTitle = this.settings.loadingTitle;
931
- var loadingTimeout = this.settings.loadingTimeout;
932
- var k = document.getElementById(id);
933
- passGuard.T.push(k);
934
- var pg = this;
935
- var C = false;
936
- var bg = null;
937
- try {
938
- var placeHolder;
939
- // 所绑定的关联控件获取焦点时触发
940
- // k.onfocus = function (e) {
941
- k.onclick = function (e) {
942
- this.blur();
943
- e.preventDefault();
944
- $(this).removeAttr("placeholder");
945
- if (loading && passGuard.L == undefined) {
946
- //添加loading遮罩层,防止用户点击页面元素,同时增加体验
947
- $('body').append($('<div id="keyboard-overlay" class="modal"><h1>' + loadingTitle + '</h1><h6>安全键盘</h6><div class="keyboard-overlay-loading"><span></span><span></span><span></span><span></span><span></span></div></div>'));
948
- (0, _modal.openModal)($('#keyboard-overlay'));
949
- }
950
- pg.jq().trigger($.Event("passguard:focus"));
951
- for (var F = 0; F < passGuard.G.length; F++) {
952
- window.clearInterval(passGuard.G[F]);
953
- }
954
- for (var V = 0; V < passGuard.T.length; V++) {
955
- passGuard.T[V].value = passGuard.T[V].value.replace(/l/, "");
956
- }
957
-
958
- var input = this;
959
- var keyboardInit = function keyboardInit() {
960
- if (passGuard.L != undefined) {
961
- bg = setInterval(function () {
962
- if (input.value == '') {
963
- input.removeAttribute("placeholder");
964
- }
965
- if (C) {
966
- input.value = input.value.replace(/l/, "");
967
- C = false;
968
- } else {
969
- input.value = input.value + "l";
970
- C = true;
971
- }
972
- }, 500);
973
- passGuard.G.push(bg);
974
- }
975
- // 当前定时器
976
- //passGuard.currentG = bg;
977
- keyBoard.preCallBack = pg.preCallBack;
978
- keyBoard.settings.pg = pg;
979
- keyBoard.settings.odd = 51;
980
- //键盘初始化后关闭遮罩层
981
- if (loading && !passGuard.hasInit) {
982
- setTimeout(function () {
983
- (0, _modal.closeModal)($('#keyboard-overlay'));
984
- $('#keyboard-overlay').remove();
985
- if (keyBoard.settings.status == 0 && passGuard.L != undefined) {
986
- keyBoard.show();
987
- }
988
- input.blur();
989
- }, loadingTimeout);
990
- } else {
991
- if (keyBoard.settings.status == 0 && passGuard.L != undefined) {
992
- keyBoard.show();
993
- }
994
- input.blur();
995
- }
996
- //标识键盘是否初始化,主要是用来判断loading参数是否第一次加载
997
- if (passGuard.L != undefined) {
998
- passGuard.hasInit = true;
999
- }
1000
- };
1001
-
1002
- passGuard.G = [];
1003
- if (passGuard.L == undefined || clearMixPromise) {
1004
- // 获取混淆字符数组
1005
- if (typeof mixPromise === 'function') {
1006
- var _mixPromise = mixPromise();
1007
- if (typeof _mixPromise.then === "function") {
1008
- _mixPromise.then(function (resp) {
1009
- pg.setMapping(resp);
1010
- keyboardInit();
1011
- }).otherwise(function (err) {
1012
- //键盘初始化失败关闭遮罩层并提示
1013
- if (loading) {
1014
- (0, _modal.closeModal)($('#keyboard-overlay'));
1015
- $('#keyboard-overlay').remove();
1016
- }
1017
- (0, _alert2.default)('获取键盘失败!');
1018
- });
1019
- } else if (isArray(_mixPromise)) {
1020
- pg.setMapping(_mixPromise);
1021
- keyboardInit();
1022
- } else {
1023
- pg.setMapping(false);
1024
- keyboardInit();
1025
- }
1026
- } else {
1027
- pg.setMapping(false);
1028
- keyboardInit();
1029
- }
1030
- } else {
1031
- keyboardInit();
1032
- }
1033
- e.preventDefault();
1034
- return false;
1035
- };
1036
- } catch (e) {
1037
- alert(e);
1038
- }
1039
- };
1040
- passGuard.prototype.show = function (id, keyBoard) {
1041
- this.settings.keyBoard = keyBoard;
1042
- this.settings.id = id;
1043
- var mixPromise = this.settings.mixPromise;
1044
- var clearMixPromise = this.settings.clearMixPromise;
1045
- var k = document.getElementById(id);
1046
- // passGuard.T.push(k);
1047
- var pg = this;
1048
- var C = false;
1049
- var bg = null;
1050
- try {
1051
- for (var F = 0; F < passGuard.G.length; F++) {
1052
- window.clearInterval(passGuard.G[F]);
1053
- }
1054
- for (var V = 0; V < passGuard.T.length; V++) {
1055
- passGuard.T[V].value = passGuard.T[V].value.replace(/l/, "");
1056
- }
1057
-
1058
- var input = k;
1059
- var keyboardInit = function keyboardInit() {
1060
- bg = setInterval(function () {
1061
- if (input.value == '') {
1062
- input.removeAttribute("placeholder");
1063
- }
1064
- if (C) {
1065
- input.value = input.value.replace(/l/, "");
1066
- C = false;
1067
- } else {
1068
- input.value = input.value + "l";
1069
- C = true;
1070
- }
1071
- }, 500);
1072
- passGuard.G.push(bg);
1073
- keyBoard.preCallBack = pg.preCallBack;
1074
- keyBoard.settings.pg = pg;
1075
- keyBoard.settings.odd = 51;
1076
- keyBoard.show();
1077
- };
1078
-
1079
- passGuard.G = [];
1080
- if (passGuard.L == undefined || clearMixPromise) {
1081
- // 获取混淆字符数组
1082
- if (typeof mixPromise === 'function') {
1083
- var _mixPromise = mixPromise();
1084
- if (typeof _mixPromise.then === "function") {
1085
- _mixPromise.then(function (resp) {
1086
- pg.setMapping(resp);
1087
- keyboardInit();
1088
- });
1089
- } else if (isArray(_mixPromise)) {
1090
- pg.setMapping(_mixPromise);
1091
- keyboardInit();
1092
- } else {
1093
- pg.setMapping(false);
1094
- keyboardInit();
1095
- }
1096
- } else {
1097
- pg.setMapping(false);
1098
- keyboardInit();
1099
- }
1100
- } else {
1101
- keyboardInit();
1102
- }
1103
- } catch (e) {
1104
- alert(e);
1105
- }
1106
- };
1107
- passGuard.prototype.preCallBack = function (event, key) {
1108
- // 获取点击时间的真实charAt
1109
- var realkey = key ^ 51;
1110
- var pg = this.settings.pg;
1111
- var input = document.getElementById(pg.settings.id);
1112
- input.value = input.value.replace(/l/, "");
1113
- if (event == 1) {
1114
- this.settings.pg.settings.keyBoard.hide();
1115
- } else if (event == 2) {
1116
- input.value = input.value.substr(0, input.value.length - 1);
1117
- pg.v = pg.v.substr(0, pg.v.length - 1);
1118
- pg.J = pg.J.substr(0, pg.J.length - 1);
1119
- } else if (event == 4) {
1120
- $('.english').hide();
1121
- $('.number').show().css("display", "inline-block");
1122
- $('.mark').hide();
1123
- } else if (event == 5) {
1124
- $('.english').show().css("display", "inline-block");
1125
- $('.number').hide();
1126
- $('.mark').hide();
1127
- } else if (event == 6) {
1128
- $('.mark').show().css("display", "inline-block");
1129
- $('.number').hide();
1130
- } else if (event == 0) {
1131
- var bV = new RegExp(pg.settings.regExp1);
1132
- var realCha = String.fromCharCode(realkey);
1133
- var aP = pg.settings.maxLength;
1134
- var aw = input.value.length;
1135
- if (aw < aP) {
1136
- if (bV.test(realCha)) {
1137
- // 伪造值
1138
- pg.J += pg.mapping(realCha);
1139
- // 真实输入值
1140
- pg.v += realCha;
1141
- // 显示形式,0:星号;1:明文,默认值0
1142
- if (pg.settings.displayMode == 1) {
1143
- input.value += realCha;
1144
- } else {
1145
- input.value += "*";
1146
- }
1147
- // 当等于maxLength时关闭当前键盘
1148
- if (aw >= aP - 1) {
1149
- this.hide();
1150
- }
1151
- }
1152
- } else if (event == 8) {} else {
1153
- this.hide();
1154
- }
1155
- }
1156
- };
1157
- passGuard.prototype.setMapping = function (bb) {
1158
- if (!!bb && bb.length > 0) {
1159
- passGuard.L = bb;
1160
- } else {
1161
- var _chaos = [];
1162
- for (var x = 33; x <= 126; x++) {
1163
- _chaos.push(x);
1164
- }
1165
- passGuard.L = _chaos;
1166
- }
1167
- };
1168
- // 获取密文
1169
- passGuard.prototype.getOutput = function () {
1170
- return this.J;
1171
- };
1172
- passGuard.prototype.getLength = function () {
1173
- return this.J.length;
1174
- };
1175
- passGuard.prototype.getValid = function () {
1176
- var bV = new RegExp(this.settings.regExp2);
1177
- return bV.test(this.v) ? 0 : 1;
1178
- };
1179
- // 产生混淆值
1180
- passGuard.prototype.mapping = function (key) {
1181
- var keyCode = key.charCodeAt(0);
1182
- //var bC = base64decode(passGuard.L);
1183
- var bC = passGuard.L;
1184
- var aE = eval(bC);
1185
- return String.fromCharCode(aE[keyCode - 33]);
1186
- };
1187
- passGuard.prototype.setRandKey = function (bF) {
1188
- try {
1189
- if (bF) this.settings.randomKey = bF;
1190
- } catch (e) {
1191
- alert(e);
1192
- }
1193
- };
1194
- passGuard.prototype.clearPass = function () {
1195
- var input = document.getElementById(this.settings.id);
1196
- if (input) {
1197
- input.value = "";
1198
- }
1199
-
1200
- this.v = "";
1201
- this.J = "";
1202
- };
1203
-
1204
- /**
1205
- * 构建密码卫士防护
1206
- * @param ele 绑定控件ID
1207
- * @param keyBoardInstance 键盘实例
1208
- */
1209
- passGuard.prototype.build = function (ele, keyBoardInstance) {
1210
- this.generate(ele, keyBoardInstance);
1211
- keyBoardInstance.generate(passGuard);
1212
- };
1213
-
1214
- passGuard.prototype.jq = function () {
1215
- return $(document.getElementById(this.settings.id));
1216
- };
1217
-
1218
- function Plugin(container) {
1219
-
1220
- return new passGuard($.extend({
1221
- "maxLength": 99, // 最大输入长度
1222
- "regExp1": "", // 输入过程限制的正则
1223
- "regExp2": "", // 输入完毕限制的正则
1224
- "displayMode": 0 // 显示形式,0:星号;1:明文,默认值0
1225
- }, container));
1226
- }
1227
-
1228
- /***/ }),
1229
-
1230
- /***/ 17:
1231
- /***/ (function(module, exports, __webpack_require__) {
1232
-
1233
- "use strict";
1234
-
1235
-
1236
- Object.defineProperty(exports, "__esModule", {
1237
- value: true
1238
- });
1239
-
1240
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*
1241
- * @Author: linyiqing
1242
- * @Date: 2019-05-22 16:58:50
1243
- * @Company: orientsec.com.cn
1244
- * @Description: 对话框
1245
- */
1246
-
1247
-
1248
- var _modal = __webpack_require__(2);
1249
-
1250
- exports.default = function (_text, title, callbackOk, allowClose) {
1251
- // 表达式声明
1252
- if (typeof title === 'function') {
1253
- callbackOk = title;
1254
- title = undefined;
1255
- }
1256
- // 函数对象式声明
1257
- else if ((typeof _text === 'undefined' ? 'undefined' : _typeof(_text)) === 'object') {
1258
- var _text$text = _text.text,
1259
- text = _text$text === undefined ? '' : _text$text,
1260
- _text$title = _text.title,
1261
- _title = _text$title === undefined ? _modal.defaults.modalTitle : _text$title,
1262
- _text$allowClose = _text.allowClose,
1263
- _allowClose = _text$allowClose === undefined ? false : _text$allowClose,
1264
- onClick = _text.onClick,
1265
- modalButtonOk = _text.modalButtonOk;
1266
-
1267
- return (0, _modal.modal)({
1268
- text: text,
1269
- title: _title,
1270
- buttons: [{ text: modalButtonOk || _modal.defaults.modalButtonOk, bold: true, onClick: onClick }],
1271
- isClose: _allowClose,
1272
- extraClass: 'remove-on-close'
1273
- });
1274
- }
1275
-
1276
- return (0, _modal.modal)({
1277
- text: _text || '',
1278
- title: typeof title === 'undefined' ? _modal.defaults.modalTitle : title,
1279
- buttons: [{ text: _modal.defaults.modalButtonOk, bold: true, onClick: callbackOk }],
1280
- isClose: allowClose || false,
1281
- extraClass: 'remove-on-close'
1282
- });
1283
- };
1284
-
1285
- /***/ }),
1286
-
1287
- /***/ 2:
1288
- /***/ (function(module, exports, __webpack_require__) {
1289
-
1290
- "use strict";
1291
-
1292
-
1293
- Object.defineProperty(exports, "__esModule", {
1294
- value: true
1295
- });
1296
- /**
1297
- * Created by linyiqing on 2017/3/16.
1298
- */
1299
- var _modalTemplateTempDiv = document.createElement('div');
1300
-
1301
- $.modalStack = [];
1302
-
1303
- $.modalStackClearQueue = function () {
1304
- if ($.modalStack.length) {
1305
- $.modalStack.shift()();
1306
- }
1307
- };
1308
- var modal = function modal(params) {
1309
- params = params || {};
1310
- var modalHTML = '';
1311
- var buttonsHTML = '';
1312
- if (params.buttons && params.buttons.length > 0) {
1313
- for (var i = 0; i < params.buttons.length; i++) {
1314
- buttonsHTML += '<span class="modal-button' + (params.buttons[i].bold ? ' modal-button-bold' : '') + '">' + params.buttons[i].text + '</span>';
1315
- }
1316
- }
1317
- var extraClass = params.extraClass || '';
1318
- var titleHTML = params.title ? '<div class="modal-title">' + params.title + '</div>' : '';
1319
- var textHTML = params.text ? '<div class="modal-text">' + params.text + '</div>' : '';
1320
- var afterTextHTML = params.afterText ? params.afterText : '';
1321
- var noButtons = !params.buttons || params.buttons.length === 0 ? 'modal-no-buttons' : '';
1322
- var verticalButtons = params.verticalButtons ? 'modal-buttons-vertical' : '';
1323
- var isClose = !!params.isClose; //支持弹框是否可以关闭,目前主要用于alert
1324
- modalHTML = '<div class="modal ' + extraClass + ' ' + noButtons + '">' + (isClose ? '<i class="modal-close">+</i>' : '') + '<div class="modal-inner">' + (titleHTML + textHTML + afterTextHTML) + '</div><div class="modal-buttons ' + verticalButtons + '">' + buttonsHTML + '</div></div>';
1325
-
1326
- _modalTemplateTempDiv.innerHTML = modalHTML;
1327
-
1328
- var modal = $(_modalTemplateTempDiv).children();
1329
-
1330
- $(defaults.modalContainer).append(modal[0]);
1331
-
1332
- // Add events on buttons
1333
- modal.find('.modal-button').each(function (index, el) {
1334
- $(el).on('click', function (e) {
1335
- if (params.buttons[index].close !== false) closeModal(modal);
1336
- if (params.buttons[index].onClick) params.buttons[index].onClick(modal, e);
1337
- if (params.onClick) params.onClick(modal, index);
1338
- });
1339
- });
1340
- // close button
1341
- modal.find('.modal-close').on('click', function (e) {
1342
- closeModal(modal);
1343
- });
1344
- openModal(modal);
1345
- return modal[0];
1346
- };
1347
- var openModal = function openModal(modal, cb) {
1348
- modal = $(modal);
1349
- var isModal = modal.hasClass('modal'),
1350
- isNotToast = !modal.hasClass('toast');
1351
- if ($('.modal.modal-in:not(.modal-out)').length && defaults.modalStack && isModal && isNotToast) {
1352
- $.modalStack.push(function () {
1353
- openModal(modal, cb);
1354
- });
1355
- return;
1356
- }
1357
- var isPopup = modal.hasClass('popup-modal');
1358
- var isLoginScreen = modal.hasClass('login-screen');
1359
- var isPickerModal = modal.hasClass('picker-modal');
1360
- var isToast = modal.hasClass('toast');
1361
- var isTipModal = modal.hasClass('tip-modal');
1362
- var isActionsModal = modal.hasClass('actions-modal');
1363
- if (isModal) {
1364
- modal.show();
1365
- modal.css({
1366
- marginTop: -Math.round(modal.outerHeight() / 2) + 'px'
1367
- });
1368
- }
1369
- if (isToast) {
1370
- modal.css({
1371
- marginLeft: -Math.round(modal.outerWidth() / 2 / 1.185) + 'px' //1.185 是初始化时候的放大效果
1372
- });
1373
- }
1374
- if (isPopup) {
1375
- modal.show();
1376
- modal.find(".content").scroller("refresh");
1377
- if (modal.find('.' + defaults.viewClass).length > 0) {
1378
- $.sizeNavbars(modal.find('.' + defaults.viewClass)[0]);
1379
- }
1380
- }
1381
- if (isTipModal || isActionsModal) {
1382
- modal.show();
1383
- }
1384
-
1385
- var overlay;
1386
- if (!isLoginScreen && !isPickerModal && !isToast && !isTipModal) {
1387
- if ($('.modal-overlay').length === 0 && !isPopup) {
1388
- $(defaults.modalContainer).append('<div class="modal-overlay"></div>');
1389
- }
1390
- if ($('.popup-overlay').length === 0 && isPopup) {
1391
- $(defaults.modalContainer).append('<div class="popup-overlay"></div>');
1392
- }
1393
- overlay = isPopup ? $('.popup-overlay') : $('.modal-overlay');
1394
- }
1395
-
1396
- //Make sure that styles are applied, trigger relayout;
1397
- var clientLeft = modal[0].clientLeft;
1398
-
1399
- // Trugger open event
1400
- modal.trigger('open');
1401
-
1402
- // Picker modal body class
1403
- if (isPickerModal) {
1404
- $(defaults.modalContainer).addClass('with-picker-modal');
1405
- }
1406
-
1407
- // Classes for transition in
1408
- if (!isLoginScreen && !isPickerModal && !isToast && !isTipModal) overlay.addClass('modal-overlay-visible');
1409
- modal.removeClass('modal-out').addClass('modal-in').transitionEnd(function (e) {
1410
- if (modal.hasClass('modal-out')) modal.trigger('closed');else modal.trigger('opened');
1411
- });
1412
- // excute callback
1413
- if (typeof cb === 'function') {
1414
- cb.call(this);
1415
- }
1416
- return true;
1417
- };
1418
- var closeModal = function closeModal(modal, cb) {
1419
- modal = $(modal || '.modal-in');
1420
- if (typeof modal !== 'undefined' && modal.length === 0) {
1421
- return;
1422
- }
1423
- var isModal = modal.hasClass('modal'),
1424
- isPopup = modal.hasClass('popup-modal'),
1425
- isToast = modal.hasClass('toast'),
1426
- isLoginScreen = modal.hasClass('login-screen'),
1427
- isPickerModal = modal.hasClass('picker-modal'),
1428
- isTipModal = modal.hasClass('tip-modal'),
1429
- isActionsModal = modal.hasClass('actions-modal'),
1430
- removeOnClose = modal.hasClass('remove-on-close'),
1431
-
1432
- // removeOnClose = true,
1433
- overlay = isPopup ? $('.popup-overlay') : $('.modal-overlay');
1434
- if (isPopup) {
1435
- if (modal.length === $('.popup-modal.modal-in').length) {
1436
- overlay.removeClass('modal-overlay-visible');
1437
- }
1438
- } else if (!(isPickerModal || isToast)) {
1439
- overlay.removeClass('modal-overlay-visible');
1440
- }
1441
-
1442
- modal.trigger('close');
1443
-
1444
- // Picker modal body class
1445
- if (isPickerModal) {
1446
- $(defaults.modalContainer).removeClass('with-picker-modal');
1447
- $(defaults.modalContainer).addClass('picker-modal-closing');
1448
- }
1449
-
1450
- modal.removeClass('modal-in').addClass('modal-out').transitionEnd(function (e) {
1451
- if (modal.hasClass('modal-out')) modal.trigger('closed');else modal.trigger('opened');
1452
-
1453
- if (isPickerModal) {
1454
- $(defaults.modalContainer).removeClass('picker-modal-closing');
1455
- }
1456
-
1457
- // 在modal-dom移除前执行callback函数
1458
- if (typeof cb === 'function') {
1459
- cb.call(this);
1460
- }
1461
-
1462
- if (isPopup || isLoginScreen || isPickerModal || isModal || isTipModal || isActionsModal) {
1463
- modal.removeClass('modal-out').hide();
1464
- if (removeOnClose && modal.length > 0) {
1465
- modal.remove();
1466
- }
1467
- } else {
1468
- modal.remove();
1469
- }
1470
- });
1471
- if (isModal && defaults.modalStack) {
1472
- $.modalStackClearQueue();
1473
- }
1474
-
1475
- return true;
1476
- };
1477
- function handleClicks(e) {
1478
- /*jshint validthis:true */
1479
- var clicked = $(this);
1480
- var url = clicked.attr('href');
1481
-
1482
- //Collect Clicked data- attributes
1483
- var clickedData = clicked.dataset();
1484
-
1485
- // Popup
1486
- /*var popup;
1487
- if (clicked.hasClass('open-popup')) {
1488
- if (clickedData.popup) {
1489
- popup = clickedData.popup;
1490
- }
1491
- else popup = '.popup';
1492
- $.popup(popup);
1493
- }
1494
- if (clicked.hasClass('close-popup')) {
1495
- if (clickedData.popup) {
1496
- popup = clickedData.popup;
1497
- }
1498
- else popup = '.popup.modal-in';
1499
- $.closeModal(popup);
1500
- }*/
1501
-
1502
- // Close Modal
1503
- if (clicked.hasClass('modal-overlay')) {
1504
- if ($('.modal.modal-in').length > 0 && defaults.modalCloseByOutside) closeModal('.modal.modal-in');
1505
- if ($('.actions-modal.modal-in').length > 0 && defaults.actionsCloseByOutside) closeModal('.actions-modal.modal-in');
1506
- }
1507
- if (clicked.hasClass('popup-overlay')) {
1508
- if ($('.popup-modal.modal-in').length > 0 && defaults.popupCloseByOutside) closeModal('.popup-modal.modal-in');
1509
- }
1510
- }
1511
- $(document).on('click', ' .modal-overlay, .popup-overlay, .close-popup, .open-popup, .close-picker', handleClicks);
1512
- var defaults = modal.prototype.defaults = {
1513
- modalStack: true,
1514
- modalButtonOk: '确定',
1515
- modalButtonCancel: '取消',
1516
- modalPreloaderTitle: '加载中',
1517
- modalContainer: document.body ? document.body : 'body',
1518
- modalTitle: '',
1519
- actionsCloseByOutside: true
1520
- };
1521
-
1522
- exports.defaults = defaults;
1523
- exports.modal = modal;
1524
- exports.openModal = openModal;
1525
- exports.closeModal = closeModal;
1526
-
1527
- /***/ }),
1528
-
1529
- /***/ 20:
1530
- /***/ (function(module, exports, __webpack_require__) {
1531
-
1532
- "use strict";
1533
-
1534
-
1535
- Object.defineProperty(exports, "__esModule", {
1536
- value: true
1537
- });
1538
-
1539
- var _keyboard = __webpack_require__(12);
1540
-
1541
- var _keyboard2 = _interopRequireDefault(_keyboard);
1542
-
1543
- var _passguard = __webpack_require__(13);
1544
-
1545
- var _passguard2 = _interopRequireDefault(_passguard);
1546
-
1547
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1548
-
1549
- // import attachFastClick from 'fastclick'
1550
-
1551
- /**
1552
- * 密码卫士构建函数
1553
- * @param options
1554
- */
1555
- /**
1556
- * Created by dfzq on 2017/4/7.
1557
- */
1558
- var passGuard = function passGuard(options) {
1559
-
1560
- // 空函数
1561
- var _noop = function _noop() {};
1562
-
1563
- // 暂存的placeHolder
1564
- var _placeHolder = void 0;
1565
-
1566
- // 是否键盘组件注册了fastclick
1567
- var isAttachFastClick = false;
1568
-
1569
- // 默认配置
1570
- var _defaultSetting = {
1571
- id: 'kb', // 密码组件对应的dom元素的id(非选择器类型)
1572
- keyboardType: 0, // 键盘类型,0:全键盘;1:纯数字键盘,默认值0
1573
- carrySpot: false, // 数字键盘左下角是否需要点(keyboardType为1时才有效)
1574
- header: true, // 是否需要显示头部
1575
- loading: true, // 是否需要显示loading
1576
- loadingTitle: '安全支付', // loading的标题(loading为true时才有效)
1577
- loadingTimeout: 1500, // loading显示多少秒后再关闭(loading为true时才有效)
1578
- inputMaxLength: 6, // 最大输入长度
1579
- displayMode: 0, // 输入显示形式,0:星号;1:明文
1580
- mixPromise: false, // 混淆生成器,如果不需要启动混淆功能请使用false,如果需要混淆功能,应该传入一个输出混淆数组的promise对象
1581
- clearMixPromise: false,
1582
-
1583
- onShow: _noop, // 键盘打开时触发该驱动事件
1584
- onHide: _noop, // 键盘关闭时触发该驱动事件
1585
- onPressing: _noop, // 键盘被点击时触发该驱动事件,此时键盘值还未发生变化
1586
- onPressed: _noop, // 键盘被点击后触发该驱动事件,此时键盘值已发生变化
1587
- onFocus: _noop, // 密码控件所防护的元素获取焦点时触发的驱动事件
1588
- onSubmit: _noop // 键盘提交(只针对全键盘)
1589
-
1590
-
1591
- // 覆盖后的最新配置
1592
- };var setting = $.extend(_defaultSetting, options);
1593
-
1594
- // 定义一个键盘实例
1595
- var keyboard = (0, _keyboard2.default)({
1596
- 'kbType': setting.keyboardType,
1597
- 'carrySpot': setting.carrySpot,
1598
- 'header': setting.header,
1599
- 'keyboardPlaceholder': $('#' + setting.id).attr("placeholder") || ''
1600
- });
1601
- this.keyboard = keyboard;
1602
- this.id = _defaultSetting.id;
1603
-
1604
- var passguard;
1605
-
1606
- // 定义一个密码卫士防护实例
1607
- passguard = this.passguard = (0, _passguard2.default)({
1608
- 'maxLength': setting.inputMaxLength,
1609
- 'regExp1': '',
1610
- 'regExp2': '',
1611
- 'displayMode': setting.displayMode,
1612
- 'mixPromise': setting.mixPromise,
1613
- 'clearMixPromise': setting.clearMixPromise,
1614
- 'loading': setting.loading,
1615
- 'loadingTitle': setting.loadingTitle,
1616
- 'loadingTimeout': setting.loadingTimeout
1617
- });
1618
-
1619
- // 绑定所要保护的密码文本框,并将防护实例和键盘实例关联起来
1620
- this.passguard.build(setting.id, keyboard);
1621
-
1622
- // 键盘打开时的驱动事件
1623
- keyboard.jq().on('keyboard:show', function () {
1624
-
1625
- // // 注册fastclick
1626
- // if (attachFastClick && !isAttachFastClick)
1627
- // {
1628
- // console.log('onAttachKeyboardFastClick begin')
1629
- // new attachFastClick(this);
1630
- // console.log('onAttachKeyboardFastClick end')
1631
- // isAttachFastClick = true
1632
- // }
1633
-
1634
- console.log('onKeyboardShow');
1635
- _placeHolder = $('#' + setting.id).attr("placeholder");
1636
- $('#' + setting.id).removeAttr("placeholder");
1637
- setting.onShow();
1638
- });
1639
-
1640
- // 键盘关闭时的驱动事件
1641
- keyboard.jq().on('keyboard:hide', function () {
1642
- console.log('onKeyboardHide');
1643
- // $('#' + setting.id).attr("placeholder", _placeHolder)
1644
- $('#' + setting.id).attr("placeholder", _placeHolder || keyboard.settings.keyboardPlaceholder);
1645
- setting.onHide();
1646
- });
1647
-
1648
- // 键盘元素点击时的驱动事件
1649
- keyboard.jq().on('keyboard:pressing', function () {
1650
- console.log('onKeyboardPressing');
1651
- setting.onPressing();
1652
- });
1653
-
1654
- // 键盘元素点击后的驱动事件
1655
- keyboard.jq().on('keyboard:pressed', function () {
1656
- console.log('onKeyboardPressed');
1657
- // if (passguard.v === '') { // 当切换字母时会发生bug,所以注释
1658
- // keyboard.hide()
1659
- // }
1660
- setting.onPressed();
1661
- });
1662
-
1663
- // 密码控件所防护的元素获取焦点时触发的驱动事件
1664
- this.passguard.jq().on('passguard:focus', function () {
1665
- console.log('onPassGuardFocus');
1666
- setting.onFocus();
1667
- });
1668
-
1669
- // 键盘提交
1670
- var _passguardInstance = this.passguard;
1671
- keyboard.jq().on('keyboard:submit', function () {
1672
- console.log('onKeyboardSubmit');
1673
- keyboard.hide();
1674
- setting.onSubmit(_passguardInstance.getOutput());
1675
- });
1676
- };
1677
-
1678
- /**
1679
- * 输出密码输入项内容
1680
- */
1681
- passGuard.prototype.getOutput = function () {
1682
- return this.passguard.getOutput();
1683
- };
1684
-
1685
- /**
1686
- * 获取密码长度
1687
- */
1688
- passGuard.prototype.getLength = function () {
1689
- return this.passguard.getLength();
1690
- };
1691
-
1692
- /**
1693
- * 清除密码
1694
- */
1695
- passGuard.prototype.clearPass = function () {
1696
- return this.passguard.clearPass();
1697
- };
1698
-
1699
- /**
1700
- * 显示密码键盘
1701
- */
1702
- passGuard.prototype.show = function () {
1703
- return this.passguard.show(this.id, this.keyboard);
1704
- };
1705
-
1706
- /**
1707
- * 隐藏密码键盘
1708
- */
1709
- passGuard.prototype.hide = function () {
1710
- return this.keyboard.hide();
1711
- };
1712
-
1713
- var plugin = function plugin(options) {
1714
- return new passGuard(options);
1715
- };
1716
-
1717
- exports.default = plugin;
1718
-
1719
- /***/ })
1720
-
1721
- /******/ });
1722
- });
1
+ !function(a,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fastman=e():a.fastman=e()}(this,function(){return function(a){function e(s){if(t[s])return t[s].exports;var d=t[s]={i:s,l:!1,exports:{}};return a[s].call(d.exports,d,d.exports,e),d.l=!0,d.exports}var t={};return e.m=a,e.c=t,e.i=function(a){return a},e.d=function(a,t,s){e.o(a,t)||Object.defineProperty(a,t,{configurable:!1,enumerable:!0,get:s})},e.n=function(a){var t=a&&a.__esModule?function(){return a.default}:function(){return a};return e.d(t,"a",t),t},e.o=function(a,e){return Object.prototype.hasOwnProperty.call(a,e)},e.p="",e(e.s=20)}({12:function(a,e,t){"use strict";function s(a){this.settings={id:"",aW:0,pressStatus:0,kbType:0,pg:{},odd:1,status:0},void 0!=a&&(this.settings=a)}function d(a){return new s($.extend({chaosMode:0,pressStatus:1,kbType:0,odd:51,status:0},a))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=d;var i=null;!function(a,e){a.addEventListener("pagehide",function(a){if(null!=i)for(var e=0;e<i.G.length;e++)window.clearInterval(i.G[e])},!1)}(window,window.lib||(window.lib={})),s.prototype.generate=function(a){i=a,this.settings.id=(new Date).getTime();var e="",t=!1,s=!0,d='<div class="keyboard-header ui-border-t"><i class="icon-header"></i><h6>安全键盘</h6><i class="icon-keyboard-down keyboardEle" data-value="关闭键盘" data-name="6"></i></div>';e=0==this.settings.kbType?'<div id="'+this.settings.id+'_kb" class="keyboard-box" style="-webkit-user-select: none;-moz-user-select: none; visibility:hidden;"> '+(this.settings.header?d:"")+' <div class="keyboard-chinese"> <div class="row1"> <div class="english"> <div class="white-52-78 keyboardEle" data-value="q" data-name="0">q</div> <div class="white-52-78 keyboardEle" data-value="w" data-name="0">w</div> <div class="white-52-78 keyboardEle" data-value="e" data-name="0">e</div> <div class="white-52-78 keyboardEle" data-value="r" data-name="0">r</div> <div class="white-52-78 keyboardEle" data-value="t" data-name="0">t</div> <div class="white-52-78 keyboardEle" data-value="y" data-name="0">y</div> <div class="white-52-78 keyboardEle" data-value="u" data-name="0">u</div> <div class="white-52-78 keyboardEle" data-value="i" data-name="0">i</div> <div class="white-52-78 keyboardEle" data-value="o" data-name="0">o</div> <div class="white-52-78 keyboardEle last52-78" data-value="p" data-name="0">p</div> </div> <div class="number" style="display:none;"> <div class="white-52-78 keyboardEle" data-value="1" data-name="0">1</div> <div class="white-52-78 keyboardEle" data-value="2" data-name="0">2</div> <div class="white-52-78 keyboardEle" data-value="3" data-name="0">3</div> <div class="white-52-78 keyboardEle" data-value="4" data-name="0">4</div> <div class="white-52-78 keyboardEle" data-value="5" data-name="0">5</div> <div class="white-52-78 keyboardEle" data-value="6" data-name="0">6</div> <div class="white-52-78 keyboardEle" data-value="7" data-name="0">7</div> <div class="white-52-78 keyboardEle" data-value="8" data-name="0">8</div> <div class="white-52-78 keyboardEle" data-value="9" data-name="0">9</div> <div class="white-52-78 keyboardEle" data-value="0" data-name="0">0</div> </div> <div class="mark" style="display:none;"> <div class="white-52-78 keyboardEle" data-value="[" data-name="0">[</div> <div class="white-52-78 keyboardEle" data-value="]" data-name="0">]</div> <div class="white-52-78 keyboardEle" data-value="{" data-name="0">{</div> <div class="white-52-78 keyboardEle" data-value="}" data-name="0">}</div> <div class="white-52-78 keyboardEle" data-value="#" data-name="0">#</div> <div class="white-52-78 keyboardEle" data-value="%" data-name="0">%</div> <div class="white-52-78 keyboardEle" data-value="^" data-name="0">^</div> <div class="white-52-78 keyboardEle" data-value="*" data-name="0">*</div> <div class="white-52-78 keyboardEle" data-value="+" data-name="0">+</div> <div class="white-52-78 keyboardEle" data-value="=" data-name="0">=</div> </div> </div> <div class="row2"> <div class="english"> <div class="white-52-78 keyboardEle" data-value="a" data-name="0">a</div> <div class="white-52-78 keyboardEle" data-value="s" data-name="0">s</div> <div class="white-52-78 keyboardEle" data-value="d" data-name="0">d</div> <div class="white-52-78 keyboardEle" data-value="f" data-name="0">f</div> <div class="white-52-78 keyboardEle" data-value="g" data-name="0">g</div> <div class="white-52-78 keyboardEle" data-value="h" data-name="0">h</div> <div class="white-52-78 keyboardEle" data-value="j" data-name="0">j</div> <div class="white-52-78 keyboardEle" data-value="k" data-name="0">k</div> <div class="white-52-78 keyboardEle" data-value="l" data-name="0">l</div> </div> <div class="number" style="display:none;"> <div class="white-52-78 keyboardEle" data-value="-" data-name="0">-</div> <div class="white-52-78 keyboardEle" data-value="/" data-name="0">/</div> <div class="white-52-78 keyboardEle" data-value=":" data-name="0">:</div> <div class="white-52-78 keyboardEle" data-value=";" data-name="0">;</div> <div class="white-52-78 keyboardEle" data-value="(" data-name="0">(</div> <div class="white-52-78 keyboardEle" data-value=")" data-name="0">)</div> <div class="white-52-78 keyboardEle" data-value="$" data-name="0">$</div> <div class="white-52-78 keyboardEle" data-value="&" data-name="0">&</div> <div class="white-52-78 keyboardEle" data-value="@" data-name="0">@</div> <div class="white-52-78 keyboardEle" data-value="\\"" data-name="0">"</div> </div> <div class="mark" style="display:none;"> <div class="white-52-78 keyboardEle" data-value="_" data-name="0">_</div> <div class="white-52-78 keyboardEle" data-value="\\" data-name="0">/</div> <div class="white-52-78 keyboardEle" data-value="|" data-name="0">|</div> <div class="white-52-78 keyboardEle" data-value="~" data-name="0">~</div> <div class="white-52-78 keyboardEle" data-value="<" data-name="0"><</div> <div class="white-52-78 keyboardEle" data-value=">" data-name="0">></div> <div class="white-52-78 keyboardEle" data-value="$" data-name="0">$</div> <div class="white-52-78 keyboardEle" data-value="&" data-name="0">&</div> <div class="white-52-78 keyboardEle" data-value="@" data-name="0">@</div> <div class="white-52-78 keyboardEle" data-value="`" data-name="0">`</div> </div> </div> <div class="row3"> <div class="english"> <div class="gray-72-78 shift-72-78 keyboardEle" data-value="大小写" data-name="1"><i class="icon-keyboard-caps"></i><i class="icon-keyboard-caps-active"></i></div> <div class="white-52-78 keyboardEle keyboardEle" data-value="z" data-name="0">z</div> <div class="white-52-78 keyboardEle keyboardEle" data-value="x" data-name="0">x</div> <div class="white-52-78 keyboardEle keyboardEle" data-value="c" data-name="0">c</div> <div class="white-52-78 keyboardEle keyboardEle" data-value="v" data-name="0">v</div> <div class="white-52-78 keyboardEle keyboardEle" data-value="b" data-name="0">b</div> <div class="white-52-78 keyboardEle keyboardEle" data-value="n" data-name="0">n</div> <div class="white-52-78 keyboardEle keyboardEle" data-value="m" data-name="0">m</div> </div> <div class="number" style="display:none;"> <div class="gray-72-78 keyboardEle" data-value="切换符号键盘" data-name="2">#+=</div> <div class="white-78-78 keyboardEle" data-value="." data-name="0">.</div> <div class="white-78-78 keyboardEle" data-value="," data-name="0">,</div> <div class="white-78-78 keyboardEle" data-value="?" data-name="0">?</div> <div class="white-78-78 keyboardEle" data-value="!" data-name="0">!</div> <div class="white-78-78 keyboardEle" data-value="\'" data-name="0">\'</div> </div> <div class="mark" style="display:none;"> <div class="gray-72-78 keyboardEle" data-value="切换数字键盘" data-name="3">123</div> <div class="white-78-78 keyboardEle" data-value="." data-name="0">.</div> <div class="white-78-78 keyboardEle" data-value="," data-name="0">,</div> <div class="white-78-78 keyboardEle" data-value="?" data-name="0">?</div> <div class="white-78-78 keyboardEle" data-value="!" data-name="0">!</div> <div class="white-78-78 keyboardEle" data-value="\'" data-name="0">\'</div> </div> <div class="gray-72-78 del-72-78 keyboardEle" data-value="回删" data-name="4"><i class="icon-keyboard-delete"></i></div> </div> <div class="row4"> <div class="english"> <div class="gray-148-78 keyboardEle" data-value="切换数字键盘" data-name="3">.?123</div> </div> <div class="number" style="display:none;"> <div class="gray-148-78 keyboardEle" data-value="切换英文键盘" data-name="5">ABC</div> </div> <div class="mark" style="display:none;"> <div class="gray-148-78 keyboardEle" data-value="切换英文键盘" data-name="5">ABC</div> </div> <div class="white-308-78 keyboardEle" data-value=" " data-name="0">space</div> <div class="gray-148-78 keybord-196-94 keyboardEle" data-value="提交键盘" data-name="7">确定</div> </div> </div> </div>':'<div id="'+this.settings.id+'_kb" class="keyboard-box" style="visibility:hidden;"> '+(this.settings.header?d:"")+' <ul class="keyboard-tel"> \t<div class="row1 ui-border-t"> <li class="white-196-94 keyboardEle ui-border-r" data-value="1" data-name="0">1</li> <li class="white-196-94 keyboardEle ui-border-r" data-value="2" data-name="0">2</li> <li class="white-196-94 keyboardEle" data-value="3" data-name="0">3</li> </div> <div class="row1 ui-border-t"> <li class="white-196-94 keyboardEle ui-border-r" data-value="4" data-name="0">4</li> <li class="white-196-94 keyboardEle ui-border-r" data-value="5" data-name="0">5</li> <li class="white-196-94 keyboardEle" data-value="6" data-name="0">6</li> </div> <div class="row1 ui-border-t"> <li class="white-196-94 keyboardEle ui-border-r" data-value="7" data-name="0">7</li> <li class="white-196-94 keyboardEle ui-border-r" data-value="8" data-name="0">8</li> <li class="white-196-94 keyboardEle" data-value="9" data-name="0">9</li> </div> <div class="row1 ui-border-t"> <li class="gray-196-94 keybord-196-94 keyboardEle ui-border-r" data-value="'+(this.settings.carrySpot?".":" ")+'" data-name="0">'+(this.settings.carrySpot?".":"")+'</li> <li class="white-196-94 keyboardEle ui-border-r" data-value="0" data-name="0">0</li> <li class="gray-196-94 del-196-94 keyboardEle" data-value="回删" data-name="4"><i class="icon-keyboard-delete"></i></li> </div> </ul> </div>',$("body").append(e),0==this.settings.kbType?$(".keyboard-chinese")[0].ontouchstart=function(a){var e=a.target.className;if(e.indexOf("row1")>-1||e.indexOf("row2")>-1||e.indexOf("row3")>-1||e.indexOf("row4")>-1)return a.preventDefault(),!1}:this.settings.kbType;for(var l=document.getElementById(this.settings.id+"_kb").querySelectorAll(".keyboardEle"),o=this,r=[],n=0;n<l.length;n++)if($(l[n]).on("tap",function(a){if(!t||s){var e=-1,d=this.getAttribute("data-name"),i=this.getAttribute("data-value"),l=o.jq();if(e="6"==d?1:"4"==d?2:"3"==d?4:"5"==d?5:"2"==d?6:"1"==d?7:"7"==d?8:0,2==o.settings.aW&&0==e){var r=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"];r=o.randArray(r,u);for(var n=document.getElementById(o.settings.id+"_kb").querySelectorAll(".row1 .english .keyboardEle,.row2 .english .keyboardEle,.row3 .english .white-52-78"),v=0;v<n.length;v++)n[v].innerHTML=r[v],n[v].setAttribute("data-value",r[v])}if(" "!=i){"6"!=d&&"1"!=d&&l.trigger($.Event("keyboard:pressing")),o.preCallBack(e,i.charCodeAt()^o.settings.odd),"6"!=d&&"1"!=d&&l.trigger($.Event("keyboard:pressed")),"7"==d&&l.trigger($.Event("keyboard:submit"));var u=!1,c=0;u=!(!$(".shift-72-78").hasClass("active2")&&!$(".shift-72-78").hasClass("active")),$(".shift-72-78").hasClass("active2")||$(".shift-72-78").hasClass("active")?$(".shift-72-78").hasClass("active2")?c=1:$(".shift-72-78").hasClass("active")&&(c=2):c=0,"1"==d?0==c?($(this).addClass("active2"),$(".english").removeClass("low"),$(".english").addClass("upp"),$(".english .white-52-78").each(function(){var a=$(this).attr("data-value");$(this).attr("data-value",a.toUpperCase())})):($(this).removeClass("active2"),$(this).removeClass("active"),$(".english").removeClass("upp"),$(".english").addClass("low"),$(".english .white-52-78").each(function(){var a=$(this).attr("data-value");$(this).attr("data-value",a.toLowerCase())})):(2!=c&&($(".shift-72-78").removeClass("active2"),$(".shift-72-78").removeClass("active")),$(".shift-72-78").hasClass("active2")||$(".shift-72-78").hasClass("active")?($(".english").removeClass("low"),$(".english").addClass("upp"),$(".english .white-52-78").each(function(){var a=$(this).attr("data-value");$(this).attr("data-value",a.toUpperCase())})):($(".english").removeClass("upp"),$(".english").addClass("low"),$(".english .white-52-78").each(function(){var a=$(this).attr("data-value");$(this).attr("data-value",a.toLowerCase())})),$(this).removeClass("active"))}}}),1==o.settings.pressStatus){var v,u=0,c=0,h=!1;l[n].ontouchstart=function(a){if(document.getElementById(o.settings.pg.settings.id).blur(),u=(new Date).getTime(),!t||s){u=(new Date).getTime(),"1"!=$(this).attr("data-name")&&($(this).addClass("active"),t=!0,s=!1);var e=this;return v=window.setInterval(function(){c=(new Date).getTime();var a=c-u;if("4"==$(e).attr("data-name")&&a>500){var t=document.getElementById(o.settings.pg.settings.id),s=setInterval(function(){o.settings.pg.v=o.settings.pg.v.substr(0,o.settings.pg.v.length-1),o.settings.pg.J=o.settings.pg.J.substr(0,o.settings.pg.J.length-1),t.value=t.value.substr(0,o.settings.pg.J.length-1)},50);r.push(s),clearInterval(v)}},1),a.preventDefault(),!1}},l[n].ontouchmove=function(a){return a.preventDefault(),!1},l[n].ontouchend=function(a){t=!1;var e=$(this).attr("data-name");if("1"!=e&&$(this).removeClass("active"),"4"==e){clearInterval(v);for(var s=0;s<r.length;s++)window.clearInterval(r[s]);r=[];for(var d=document.getElementById(o.settings.pg.settings.id),i="",l=0;l<o.settings.pg.J.length;l++)i+="*";d.value=i}return h=!1,a.preventDefault(),!1}}},s.prototype.randArray=function(a,e){for(var t=a.length,s=new Array,d=0;d<t;d++)try1[d]=d;for(var i=new Array,d=0;d<t;d++)try2[d]=s.splice(Math.floor(Math.random()*s.length),1);for(var l=new Array,d=0;d<t;d++)l[d]=e?a[i[d]].toUpperCase():a[i[d]].toLowerCase();return l},s.prototype.show=function(){var a=this,e='<div id="'+this.settings.id+'_kbLayer" class="keyboard-box-layer"></div>';a.jq().trigger($.Event("keyboard:show")),setTimeout(function(){if(1==a.settings.aW){var t=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l"];t=a.randArray(t);for(var s=document.getElementById(a.settings.id+"_kb").querySelectorAll(".row1 .english .keyboardEle,.row2 .english .keyboardEle"),d=0;d<s.length;d++)s[d].innerHTML=t[d],s[d].setAttribute("data-value",t[d])}var i=(document.documentElement.scrollTop||document.body.scrollTop,$(".keyboard-box").height()+200);$("body").css("padding-bottom",i);var l=document.getElementById(a.settings.id+"_kb");$(".keyboard-box").addClass("key-board-box-active"),l.style.visibility="visible",a.settings.status=1,$("#"+a.settings.id+"_kbLayer").length||$("body").append(e),$("#"+a.settings.id+"_kbLayer").on("click",function(e){e.stopPropagation(),$(".keyboard-box").hasClass("key-board-box-active")&&a.hide()})},10)},s.prototype.hide=function(){var a=this,e=$("#"+a.settings.id+"_kbLayer");e&&(e.off(),e.remove()),a.jq().trigger($.Event("keyboard:hide")),setTimeout(function(){$(".keyboard-box").removeClass("key-board-box-active"),$("body").css("padding-bottom",0);for(var e=document.getElementById(a.settings.id+"_kb"),t=0;t<i.G.length;t++)i.currentG!=i.G[t]&&window.clearInterval(i.G[t]);for(var s=0;s<i.T.length;s++)i.T[s].value=i.T[s].value.replace(/l/,"");a.settings.pg={},a.settings.odd=1,setTimeout(function(){e.style.visibility="hidden"},500),a.settings.status=0},0)},s.prototype.jq=function(){return $(document.getElementById(this.settings.id+"_kb"))}},13:function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function isArray(a){return"[object Array]"===Object.prototype.toString.call(a)}function passGuard(a){this.settings={id:"",maxLength:12,regExp1:"[0-9]",regExp2:"[0-9]{6,12}",displayMode:0,rsaPublicKey:"",randomKey:"",enterEvent:"",keyBoard:{},mappingArray:[]},this.J="",this.v="",void 0!=a&&(this.settings=a)}function Plugin(a){return new passGuard($.extend({maxLength:99,regExp1:"",regExp2:"",displayMode:0},a))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=Plugin;var _alert=__webpack_require__(17),_alert2=_interopRequireDefault(_alert),_modal=__webpack_require__(2);passGuard.G=[],passGuard.T=[],passGuard.L=void 0,passGuard.prototype.generate=function(a,e){this.settings.keyBoard=e,this.settings.id=a;var t=this.settings.mixPromise,s=this.settings.clearMixPromise,d=this.settings.loading,i=this.settings.loadingTitle,l=this.settings.loadingTimeout,o=document.getElementById(a);passGuard.T.push(o);var r=this,n=!1,v=null;try{o.onclick=function(a){this.blur(),a.preventDefault(),$(this).removeAttr("placeholder"),d&&void 0==passGuard.L&&($("body").append($('<div id="keyboard-overlay" class="modal"><h1>'+i+'</h1><h6>安全键盘</h6><div class="keyboard-overlay-loading"><span></span><span></span><span></span><span></span><span></span></div></div>')),(0,_modal.openModal)($("#keyboard-overlay"))),r.jq().trigger($.Event("passguard:focus"));for(var o=0;o<passGuard.G.length;o++)window.clearInterval(passGuard.G[o]);for(var u=0;u<passGuard.T.length;u++)passGuard.T[u].value=passGuard.T[u].value.replace(/l/,"");var c=this,h=function(){void 0!=passGuard.L&&(v=setInterval(function(){""==c.value&&c.removeAttribute("placeholder"),n?(c.value=c.value.replace(/l/,""),n=!1):(c.value=c.value+"l",n=!0)},500),passGuard.G.push(v)),e.preCallBack=r.preCallBack,e.settings.pg=r,e.settings.odd=51,d&&!passGuard.hasInit?setTimeout(function(){(0,_modal.closeModal)($("#keyboard-overlay")),$("#keyboard-overlay").remove(),0==e.settings.status&&void 0!=passGuard.L&&e.show(),c.blur()},l):(0==e.settings.status&&void 0!=passGuard.L&&e.show(),c.blur()),void 0!=passGuard.L&&(passGuard.hasInit=!0)};if(passGuard.G=[],void 0==passGuard.L||s)if("function"==typeof t){var p=t();"function"==typeof p.then?p.then(function(a){r.setMapping(a),h()}).otherwise(function(a){d&&((0,_modal.closeModal)($("#keyboard-overlay")),$("#keyboard-overlay").remove()),(0,_alert2.default)("获取键盘失败!")}):isArray(p)?(r.setMapping(p),h()):(r.setMapping(!1),h())}else r.setMapping(!1),h();else h();return a.preventDefault(),!1}}catch(a){alert(a)}},passGuard.prototype.show=function(a,e){this.settings.keyBoard=e,this.settings.id=a;var t=this.settings.mixPromise,s=this.settings.clearMixPromise,d=document.getElementById(a),i=this,l=!1,o=null;try{for(var r=0;r<passGuard.G.length;r++)window.clearInterval(passGuard.G[r]);for(var n=0;n<passGuard.T.length;n++)passGuard.T[n].value=passGuard.T[n].value.replace(/l/,"");var v=d,u=function(){o=setInterval(function(){""==v.value&&v.removeAttribute("placeholder"),l?(v.value=v.value.replace(/l/,""),l=!1):(v.value=v.value+"l",l=!0)},500),passGuard.G.push(o),e.preCallBack=i.preCallBack,e.settings.pg=i,e.settings.odd=51,e.show()};if(passGuard.G=[],void 0==passGuard.L||s)if("function"==typeof t){var c=t();"function"==typeof c.then?c.then(function(a){i.setMapping(a),u()}):isArray(c)?(i.setMapping(c),u()):(i.setMapping(!1),u())}else i.setMapping(!1),u();else u()}catch(a){alert(a)}},passGuard.prototype.preCallBack=function(a,e){var t=51^e,s=this.settings.pg,d=document.getElementById(s.settings.id);if(d.value=d.value.replace(/l/,""),1==a)this.settings.pg.settings.keyBoard.hide();else if(2==a)d.value=d.value.substr(0,d.value.length-1),s.v=s.v.substr(0,s.v.length-1),s.J=s.J.substr(0,s.J.length-1);else if(4==a)$(".english").hide(),$(".number").show().css("display","inline-block"),$(".mark").hide();else if(5==a)$(".english").show().css("display","inline-block"),$(".number").hide(),$(".mark").hide();else if(6==a)$(".mark").show().css("display","inline-block"),$(".number").hide();else if(0==a){var i=new RegExp(s.settings.regExp1),l=String.fromCharCode(t),o=s.settings.maxLength,r=d.value.length;r<o?i.test(l)&&(s.J+=s.mapping(l),s.v+=l,1==s.settings.displayMode?d.value+=l:d.value+="*",r>=o-1&&this.hide()):8==a||this.hide()}},passGuard.prototype.setMapping=function(a){if(a&&a.length>0)passGuard.L=a;else{for(var e=[],t=33;t<=126;t++)e.push(t);passGuard.L=e}},passGuard.prototype.getOutput=function(){return this.J},passGuard.prototype.getLength=function(){return this.J.length},passGuard.prototype.getValid=function(){return new RegExp(this.settings.regExp2).test(this.v)?0:1},passGuard.prototype.mapping=function(key){var keyCode=key.charCodeAt(0),bC=passGuard.L,aE=eval(bC);return String.fromCharCode(aE[keyCode-33])},passGuard.prototype.setRandKey=function(a){try{a&&(this.settings.randomKey=a)}catch(a){alert(a)}},passGuard.prototype.clearPass=function(){var a=document.getElementById(this.settings.id);a&&(a.value=""),this.v="",this.J=""},passGuard.prototype.build=function(a,e){this.generate(a,e),e.generate(passGuard)},passGuard.prototype.jq=function(){return $(document.getElementById(this.settings.id))}},17:function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},d=t(2);e.default=function(a,e,t,i){if("function"==typeof e)t=e,e=void 0;else if("object"===(void 0===a?"undefined":s(a))){var l=a.text,o=void 0===l?"":l,r=a.title,n=void 0===r?d.defaults.modalTitle:r,v=a.allowClose,u=void 0!==v&&v,c=a.onClick,h=a.modalButtonOk;return(0,d.modal)({text:o,title:n,buttons:[{text:h||d.defaults.modalButtonOk,bold:!0,onClick:c}],isClose:u,extraClass:"remove-on-close"})}return(0,d.modal)({text:a||"",title:void 0===e?d.defaults.modalTitle:e,buttons:[{text:d.defaults.modalButtonOk,bold:!0,onClick:t}],isClose:i||!1,extraClass:"remove-on-close"})}},2:function(a,e,t){"use strict";function s(a){var e=$(this);e.attr("href"),e.dataset();e.hasClass("modal-overlay")&&($(".modal.modal-in").length>0&&r.modalCloseByOutside&&o(".modal.modal-in"),$(".actions-modal.modal-in").length>0&&r.actionsCloseByOutside&&o(".actions-modal.modal-in")),e.hasClass("popup-overlay")&&$(".popup-modal.modal-in").length>0&&r.popupCloseByOutside&&o(".popup-modal.modal-in")}Object.defineProperty(e,"__esModule",{value:!0});var d=document.createElement("div");$.modalStack=[],$.modalStackClearQueue=function(){$.modalStack.length&&$.modalStack.shift()()};var i=function(a){a=a||{};var e="",t="";if(a.buttons&&a.buttons.length>0)for(var s=0;s<a.buttons.length;s++)t+='<span class="modal-button'+(a.buttons[s].bold?" modal-button-bold":"")+'">'+a.buttons[s].text+"</span>";var i=a.extraClass||"",n=a.title?'<div class="modal-title">'+a.title+"</div>":"",v=a.text?'<div class="modal-text">'+a.text+"</div>":"",u=a.afterText?a.afterText:"",c=a.buttons&&0!==a.buttons.length?"":"modal-no-buttons",h=a.verticalButtons?"modal-buttons-vertical":"";e='<div class="modal '+i+" "+c+'">'+(!a.isClose?"":'<i class="modal-close">+</i>')+'<div class="modal-inner">'+(n+v+u)+'</div><div class="modal-buttons '+h+'">'+t+"</div></div>",d.innerHTML=e;var p=$(d).children();return $(r.modalContainer).append(p[0]),p.find(".modal-button").each(function(e,t){$(t).on("click",function(t){!1!==a.buttons[e].close&&o(p),a.buttons[e].onClick&&a.buttons[e].onClick(p,t),a.onClick&&a.onClick(p,e)})}),p.find(".modal-close").on("click",function(a){o(p)}),l(p),p[0]},l=function a(e,t){e=$(e);var s=e.hasClass("modal"),d=!e.hasClass("toast");if($(".modal.modal-in:not(.modal-out)").length&&r.modalStack&&s&&d)return void $.modalStack.push(function(){a(e,t)});var i=e.hasClass("popup-modal"),l=e.hasClass("login-screen"),o=e.hasClass("picker-modal"),n=e.hasClass("toast"),v=e.hasClass("tip-modal"),u=e.hasClass("actions-modal");s&&(e.show(),e.css({marginTop:-Math.round(e.outerHeight()/2)+"px"})),n&&e.css({marginLeft:-Math.round(e.outerWidth()/2/1.185)+"px"}),i&&(e.show(),e.find(".content").scroller("refresh"),e.find("."+r.viewClass).length>0&&$.sizeNavbars(e.find("."+r.viewClass)[0])),(v||u)&&e.show();var c;l||o||n||v||(0!==$(".modal-overlay").length||i||$(r.modalContainer).append('<div class="modal-overlay"></div>'),0===$(".popup-overlay").length&&i&&$(r.modalContainer).append('<div class="popup-overlay"></div>'),c=i?$(".popup-overlay"):$(".modal-overlay"));e[0].clientLeft;return e.trigger("open"),o&&$(r.modalContainer).addClass("with-picker-modal"),l||o||n||v||c.addClass("modal-overlay-visible"),e.removeClass("modal-out").addClass("modal-in").transitionEnd(function(a){e.hasClass("modal-out")?e.trigger("closed"):e.trigger("opened")}),"function"==typeof t&&t.call(this),!0},o=function(a,e){if(void 0===(a=$(a||".modal-in"))||0!==a.length){var t=a.hasClass("modal"),s=a.hasClass("popup-modal"),d=a.hasClass("toast"),i=a.hasClass("login-screen"),l=a.hasClass("picker-modal"),o=a.hasClass("tip-modal"),n=a.hasClass("actions-modal"),v=a.hasClass("remove-on-close"),u=s?$(".popup-overlay"):$(".modal-overlay");return s?a.length===$(".popup-modal.modal-in").length&&u.removeClass("modal-overlay-visible"):l||d||u.removeClass("modal-overlay-visible"),a.trigger("close"),l&&($(r.modalContainer).removeClass("with-picker-modal"),$(r.modalContainer).addClass("picker-modal-closing")),a.removeClass("modal-in").addClass("modal-out").transitionEnd(function(d){a.hasClass("modal-out")?a.trigger("closed"):a.trigger("opened"),l&&$(r.modalContainer).removeClass("picker-modal-closing"),"function"==typeof e&&e.call(this),s||i||l||t||o||n?(a.removeClass("modal-out").hide(),v&&a.length>0&&a.remove()):a.remove()}),t&&r.modalStack&&$.modalStackClearQueue(),!0}};$(document).on("click"," .modal-overlay, .popup-overlay, .close-popup, .open-popup, .close-picker",s);var r=i.prototype.defaults={modalStack:!0,modalButtonOk:"确定",modalButtonCancel:"取消",modalPreloaderTitle:"加载中",modalContainer:document.body?document.body:"body",modalTitle:"",actionsCloseByOutside:!0};e.defaults=r,e.modal=i,e.openModal=l,e.closeModal=o},20:function(a,e,t){"use strict";function s(a){return a&&a.__esModule?a:{default:a}}Object.defineProperty(e,"__esModule",{value:!0});var d=t(12),i=s(d),l=t(13),o=s(l),r=function(a){var e=function(){},t=void 0,s={id:"kb",keyboardType:0,carrySpot:!1,header:!0,loading:!0,loadingTitle:"安全支付",loadingTimeout:1500,inputMaxLength:6,displayMode:0,mixPromise:!1,clearMixPromise:!1,onShow:e,onHide:e,onPressing:e,onPressed:e,onFocus:e,onSubmit:e},d=$.extend(s,a),l=(0,i.default)({kbType:d.keyboardType,carrySpot:d.carrySpot,header:d.header,keyboardPlaceholder:$("#"+d.id).attr("placeholder")||""});this.keyboard=l,this.id=s.id;this.passguard=(0,o.default)({maxLength:d.inputMaxLength,regExp1:"",regExp2:"",displayMode:d.displayMode,mixPromise:d.mixPromise,clearMixPromise:d.clearMixPromise,loading:d.loading,loadingTitle:d.loadingTitle,loadingTimeout:d.loadingTimeout}),this.passguard.build(d.id,l),l.jq().on("keyboard:show",function(){t=$("#"+d.id).attr("placeholder"),$("#"+d.id).removeAttr("placeholder"),d.onShow()}),l.jq().on("keyboard:hide",function(){$("#"+d.id).attr("placeholder",t||l.settings.keyboardPlaceholder),d.onHide()}),l.jq().on("keyboard:pressing",function(){d.onPressing()}),l.jq().on("keyboard:pressed",function(){d.onPressed()}),this.passguard.jq().on("passguard:focus",function(){d.onFocus()});var r=this.passguard;l.jq().on("keyboard:submit",function(){l.hide(),d.onSubmit(r.getOutput())})};r.prototype.getOutput=function(){return this.passguard.getOutput()},r.prototype.getLength=function(){return this.passguard.getLength()},r.prototype.clearPass=function(){return this.passguard.clearPass()},r.prototype.show=function(){return this.passguard.show(this.id,this.keyboard)},r.prototype.hide=function(){return this.keyboard.hide()};var n=function(a){return new r(a)};e.default=n}})});