epii-1 commited on
Commit
bcdcd19
·
1 Parent(s): 260f1b4
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. assets/uniicons.b6d3756e.ttf +0 -0
  2. hybrid/html/css/common.css +1216 -0
  3. hybrid/html/css/dataMap.css +749 -0
  4. hybrid/html/css/kline.css +406 -0
  5. hybrid/html/image/buy.png +0 -0
  6. hybrid/html/image/sell.png +0 -0
  7. hybrid/html/index.html +1022 -0
  8. hybrid/html/index01.html +2492 -0
  9. hybrid/html/javascripts/axios.js +3 -0
  10. hybrid/html/javascripts/dataMap.js +33 -0
  11. hybrid/html/javascripts/echarts.min.js +0 -0
  12. hybrid/html/javascripts/jquery.cookie.js +117 -0
  13. hybrid/html/javascripts/kline.js +1080 -0
  14. hybrid/html/javascripts/main.js +260 -0
  15. hybrid/html/javascripts/qs.js +825 -0
  16. hybrid/html/javascripts/socket.io.js +0 -0
  17. hybrid/html/javascripts/uni.webview.1.5.2.js +152 -0
  18. hybrid/html/javascripts/uni.webview.1.5.4.js +1 -0
  19. hybrid/html/javascripts/vue.js +0 -0
  20. hybrid/html/kefu.html +28 -0
  21. hybrid/html/lib/jquery.js +0 -0
  22. hybrid/html/lib/layer_mobile/layer.js +2 -0
  23. hybrid/html/lib/layer_mobile/mobile/layer.js +2 -0
  24. hybrid/html/lib/layer_mobile/mobile/need/layer.css +1 -0
  25. hybrid/html/lib/layer_mobile/theme/default/icon-ext.png +0 -0
  26. hybrid/html/lib/layer_mobile/theme/default/icon.png +0 -0
  27. hybrid/html/lib/layer_mobile/theme/default/layer.css +1 -0
  28. hybrid/html/lib/layer_mobile/theme/default/loading-0.gif +0 -0
  29. hybrid/html/lib/layer_mobile/theme/default/loading-1.gif +0 -0
  30. hybrid/html/lib/layer_mobile/theme/default/loading-2.gif +0 -0
  31. hybrid/html/lib/vue.min.js +6 -0
  32. hybrid/html/local.html +195 -0
  33. hybrid/html/second.html +2441 -0
  34. hybrid/html/tradeview/CONTRIBUTING.md +19 -0
  35. hybrid/html/tradeview/README.md +17 -0
  36. hybrid/html/tradeview/charting_library/charting_library.min.d.ts +1230 -0
  37. hybrid/html/tradeview/charting_library/charting_library.min.js +1 -0
  38. hybrid/html/tradeview/charting_library/datafeed-api.d.ts +220 -0
  39. hybrid/html/tradeview/charting_library/static/bundles/13.280894673316ad6ac6f2.js +4 -0
  40. hybrid/html/tradeview/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur +0 -0
  41. hybrid/html/tradeview/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur +0 -0
  42. hybrid/html/tradeview/charting_library/static/bundles/ds-property-pages.1a3d233b8aa4552a7048.js +0 -0
  43. hybrid/html/tradeview/charting_library/static/bundles/editobjectdialog.25fa62e6b4f8125e697e.js +6 -0
  44. hybrid/html/tradeview/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur +0 -0
  45. hybrid/html/tradeview/charting_library/static/bundles/go-to-date-dialog-impl.5faeb6b7a961fd527d9b.js +14 -0
  46. hybrid/html/tradeview/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur +0 -0
  47. hybrid/html/tradeview/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur +0 -0
  48. hybrid/html/tradeview/charting_library/static/bundles/ie-fallback-logos.b27f679ee44b7d0992e1.js +1 -0
  49. hybrid/html/tradeview/charting_library/static/bundles/lazy-jquery-ui.1803178846ddad426aeb.js +32 -0
  50. hybrid/html/tradeview/charting_library/static/bundles/lazy-velocity.97588d47c84409f2bc4b.js +15 -0
assets/uniicons.b6d3756e.ttf ADDED
Binary file (35.8 kB). View file
 
hybrid/html/css/common.css ADDED
@@ -0,0 +1,1216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ html {
2
+ width: 100%;
3
+ -webkit-text-size-adjust: 100%;
4
+ -ms-text-size-adjust: 100%;
5
+ }
6
+ html * {
7
+ outline: 0;
8
+ -webkit-text-size-adjust: none;
9
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
10
+ -webkit-box-sizing: border-box;
11
+ box-sizing: border-box;
12
+ }
13
+ body,
14
+ div,
15
+ dl,
16
+ dt,
17
+ dd,
18
+ ul,
19
+ ol,
20
+ li,
21
+ h1,
22
+ h2,
23
+ h3,
24
+ h4,
25
+ h5,
26
+ h6,
27
+ pre,
28
+ code,
29
+ form,
30
+ fieldset,
31
+ legend,
32
+ input,
33
+ textarea,
34
+ p,
35
+ blockquote,
36
+ th,
37
+ td,
38
+ hr,
39
+ button,
40
+ article,
41
+ aside,
42
+ details,
43
+ figcaption,
44
+ figure,
45
+ footer,
46
+ header,
47
+ hgroup,
48
+ menu,
49
+ nav,
50
+ section {
51
+ margin: 0;
52
+ padding: 0;
53
+ }
54
+ * {
55
+ box-sizing: border-box !important;
56
+ }
57
+ body {
58
+ font-size: 14px;
59
+ background: #0b1622;
60
+ color: #F2F5FF;
61
+ overflow-x: hidden;
62
+ }
63
+ input,
64
+ select,
65
+ textarea {
66
+ font-size: 100%;
67
+ -webkit-appearance: none;
68
+ background: transparent;
69
+ }
70
+ textarea {
71
+ border: none;
72
+ outline: none;
73
+ }
74
+ button {
75
+ border: 0;
76
+ }
77
+ table {
78
+ border-collapse: collapse;
79
+ border-spacing: 0;
80
+ }
81
+ input {
82
+ border: 0;
83
+ outline: 0;
84
+ color: #ffffff;
85
+ }
86
+ ::-webkit-input-placeholder {
87
+ color: #42526a;
88
+ }
89
+ /* 显示隐藏 */
90
+ .hide {
91
+ display: none !important;
92
+ }
93
+ .hidden {
94
+ display: none;
95
+ }
96
+ .inblock {
97
+ display: inline-block;
98
+ }
99
+ .block {
100
+ display: block;
101
+ }
102
+ /* flex弹性盒子 */
103
+ .flex {
104
+ display: flex;
105
+ flex-direction: row;
106
+ }
107
+ .between {
108
+ justify-content: space-between;
109
+ }
110
+ .around {
111
+ justify-content: space-around;
112
+ }
113
+ .jscenter {
114
+ justify-content: center;
115
+ }
116
+ .jsend {
117
+ justify-content: flex-end;
118
+ }
119
+ .column {
120
+ flex-direction: column;
121
+ }
122
+ .alcenter {
123
+ align-items: center;
124
+ }
125
+ .flexstart {
126
+ align-items: flex-start;
127
+ }
128
+ .flexend {
129
+ align-items: flex-end;
130
+ }
131
+ .baseline {
132
+ align-items: baseline;
133
+ }
134
+ .flex1 {
135
+ flex: 1 !important;
136
+ }
137
+ .flex2 {
138
+ flex: 2 !important;
139
+ }
140
+ .wraps {
141
+ flex-wrap: wrap;
142
+ }
143
+ /* 位置 */
144
+ .posRelt {
145
+ position: relative;
146
+ }
147
+ .abstrot {
148
+ position: absolute;
149
+ }
150
+ .fixed {
151
+ position: fixed;
152
+ }
153
+ .lf0 {
154
+ left: 0;
155
+ }
156
+ .btm0 {
157
+ bottom: 0;
158
+ }
159
+ .mauto {
160
+ margin-left: auto;
161
+ margin-right: auto;
162
+ }
163
+ .fr {
164
+ float: right;
165
+ }
166
+ .tc {
167
+ text-align: center;
168
+ }
169
+ .tl {
170
+ text-align: left;
171
+ }
172
+ .tr {
173
+ text-align: right;
174
+ }
175
+ /* 字体大小 */
176
+ .ft12 {
177
+ font-size: 12px;
178
+ }
179
+ .ft13 {
180
+ font-size: 13px;
181
+ }
182
+ .ft14 {
183
+ font-size: 14px;
184
+ }
185
+ .ft16 {
186
+ font-size: 16px;
187
+ }
188
+ .ft18 {
189
+ font-size: 18px;
190
+ }
191
+ .ft20 {
192
+ font-size: 20px;
193
+ }
194
+ .ft22 {
195
+ font-size: 22px;
196
+ }
197
+ .ft24 {
198
+ font-size: 24px;
199
+ }
200
+ .ft26 {
201
+ font-size: 26px;
202
+ }
203
+ .ft28 {
204
+ font-size: 28px;
205
+ }
206
+ .ft30 {
207
+ font-size: 30px;
208
+ }
209
+ .ft32 {
210
+ font-size: 32px;
211
+ }
212
+ .ft34 {
213
+ font-size: 34px;
214
+ }
215
+ .ft36 {
216
+ font-size: 36px;
217
+ }
218
+ .ft38 {
219
+ font-size: 38px;
220
+ }
221
+ .ft40 {
222
+ font-size: 40px;
223
+ }
224
+ .ft48 {
225
+ font-size: 48px;
226
+ }
227
+ .ft50 {
228
+ font-size: 50px;
229
+ }
230
+ .iconfont.ft18 {
231
+ font-size: 18px;
232
+ }
233
+ .iconfont.ft12 {
234
+ font-size: 12px;
235
+ }
236
+ .iconfont.ft14 {
237
+ font-size: 14px;
238
+ }
239
+ .iconfont.ft24 {
240
+ font-size: 24px;
241
+ }
242
+ .iconfont.ft48 {
243
+ font-size: 48px;
244
+ }
245
+ .iconfont.ft40 {
246
+ font-size: 40px;
247
+ }
248
+ /* 字体型号 */
249
+ .bold {
250
+ font-weight: bold;
251
+ }
252
+ .italic {
253
+ font-style: italic;
254
+ }
255
+ .wordbreak {
256
+ word-break: break-word;
257
+ }
258
+ /* color字体颜色 */
259
+ .b7c {
260
+ color: #b7c7dc;
261
+ }
262
+ .gray75 {
263
+ color: #7588a1;
264
+ }
265
+ .blue21 {
266
+ color: #217dc1;
267
+ }
268
+ .gary0 {
269
+ color: #000;
270
+ }
271
+ .gray91 {
272
+ color: #9195a1;
273
+ }
274
+ .garyd {
275
+ color: #DDDEDE;
276
+ }
277
+ .white {
278
+ color: #fff !important;
279
+ }
280
+ .gray {
281
+ color: #8689B2;
282
+ }
283
+ .gray_e {
284
+ color: #eeeeee;
285
+ }
286
+ .gray9 {
287
+ color: #999;
288
+ }
289
+ .gray7 {
290
+ color: #7286a5;
291
+ }
292
+ .gray6 {
293
+ color: #666;
294
+ }
295
+ .gray5 {
296
+ color: #5b6c87;
297
+ }
298
+ .gray3 {
299
+ color: #333;
300
+ }
301
+ .gray4 {
302
+ color: #42526a;
303
+ }
304
+ .gray45 {
305
+ color: #454545;
306
+ }
307
+ .blue {
308
+ color: #9FBEDC;
309
+ }
310
+ .blue2 {
311
+ color: #1881d2;
312
+ }
313
+ .blue3 {
314
+ color: #4A5A7A;
315
+ }
316
+ .blue4 {
317
+ color: #8897AD;
318
+ }
319
+ .red {
320
+ color: #e27046;
321
+ }
322
+ .red2 {
323
+ color: #ff5f56;
324
+ }
325
+ .redColor {
326
+ color: #c15465;
327
+ }
328
+ .greenColor {
329
+ color: #4daa90;
330
+ }
331
+ .blueColor {
332
+ color: #3d80ce;
333
+ }
334
+ .yellow {
335
+ color: #FFB103;
336
+ }
337
+ .green {
338
+ color: #02c289;
339
+ }
340
+ .purpel {
341
+ color: #6c2fd3;
342
+ }
343
+ .chengse {
344
+ color: #cc704b;
345
+ }
346
+ .color1 {
347
+ color: #728DAF;
348
+ }
349
+ /* 背景色 */
350
+ .baseBg {
351
+ background: #F2F5FF;
352
+ }
353
+ .bgWhite {
354
+ background: white;
355
+ }
356
+ .bgRed {
357
+ background: #e27046 !important;
358
+ }
359
+ .bgGray {
360
+ background: #c7ced4;
361
+ }
362
+ .bgF3 {
363
+ background: #f3f3f3;
364
+ }
365
+ .bgShadow {
366
+ box-shadow: 0 0 5px #e4dbdb;
367
+ }
368
+ .bgGreen {
369
+ background: #02c289 !important;
370
+ }
371
+ .bggray {
372
+ background: #1a273f;
373
+ }
374
+ .bgyellow {
375
+ background: #ff9e00;
376
+ }
377
+ .bgHeader {
378
+ background: #102030;
379
+ }
380
+ .bgBlue {
381
+ background: #1881d2;
382
+ }
383
+ .bgBlue2 {
384
+ background: #217dc1;
385
+ }
386
+ .bgDark {
387
+ background: #2c548c;
388
+ }
389
+ .bgPart {
390
+ background: #162633;
391
+ }
392
+ .baseBg2 {
393
+ background: #183463;
394
+ }
395
+ .baseBg3 {
396
+ background: #44708a;
397
+ }
398
+ .liner0 {
399
+ background: #7564EF;
400
+ }
401
+ .liner1 {
402
+ background: #E6762C;
403
+ }
404
+ .liner2 {
405
+ background: #419FF6;
406
+ }
407
+ .liner3 {
408
+ background: #4AAB73;
409
+ }
410
+ .liner4 {
411
+ background: #5977F4;
412
+ }
413
+ .bg1 {
414
+ background-color: #1C1734;
415
+ }
416
+ .bg2 {
417
+ background-color: #061623;
418
+ }
419
+ .bgPart {
420
+ background: #151e2e;
421
+ }
422
+ .bgBlack {
423
+ background: #0b1622;
424
+ }
425
+ .bgliner {
426
+ background: linear-gradient(to right, #5BB5EB, #508ADE);
427
+ }
428
+ /* 边框颜色 */
429
+ .bdb_blue {
430
+ border-bottom: 1px solid #5D86D8;
431
+ }
432
+ .bdb_e8 {
433
+ border-bottom: 1px solid #e8ebee;
434
+ }
435
+ .bdbf5 {
436
+ border-bottom: 1px solid #f5f5f5;
437
+ }
438
+ .bdb_f3 {
439
+ border-bottom: 1px solid #f3f3f3;
440
+ }
441
+ .bdt_f3 {
442
+ border-top: 1px solid #f3f3f3;
443
+ }
444
+ .bd_blue2 {
445
+ border: 1px solid #71AED3;
446
+ }
447
+ .bdb {
448
+ border-bottom: 1px solid #dddddd;
449
+ }
450
+ .bdb1f {
451
+ border-bottom: 1px solid #1F253C;
452
+ }
453
+ .bdb_yellow {
454
+ border-bottom: 1px solid #FFB103;
455
+ }
456
+ .bdbwhite {
457
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
458
+ }
459
+ .bdb_blue3 {
460
+ border-bottom: 1px solid #101d2a;
461
+ }
462
+ .bdb27 {
463
+ border-bottom: 1px solid #273344;
464
+ }
465
+ .bdr_white50 {
466
+ border-right: 1px solid rgba(113, 113, 113, 0.2);
467
+ }
468
+ .bd_input {
469
+ border: 1px solid #42526a;
470
+ }
471
+ .bdr_input {
472
+ border-right: 1px solid #42526a;
473
+ }
474
+ .bdb_1e {
475
+ border-bottom: 1px solid #1e2a3d;
476
+ }
477
+ .bor1 {
478
+ border: 1px solid #4d5568;
479
+ }
480
+ .bor2 {
481
+ border: 1px solid #1881d2;
482
+ }
483
+ .bor3 {
484
+ border: 1px solid #02c289 !important;
485
+ }
486
+ .bor4 {
487
+ border: 1px solid #e27046 !important;
488
+ }
489
+ .bor5 {
490
+ border-bottom: 1px solid #555359 !important;
491
+ }
492
+ .bdb_active {
493
+ border-bottom: 2px solid #3d80ce;
494
+ }
495
+ /* margin外边距 */
496
+ .mt5 {
497
+ margin-top: 5px;
498
+ }
499
+ .mb5 {
500
+ margin-bottom: 5px;
501
+ }
502
+ .ml5 {
503
+ margin-left: 5px;
504
+ }
505
+ .mr5 {
506
+ margin-right: 5px;
507
+ }
508
+ .mt7 {
509
+ margin-top: 7px;
510
+ }
511
+ .mt10 {
512
+ margin-top: 10px;
513
+ }
514
+ .mt13 {
515
+ margin-top: 13px;
516
+ }
517
+ .mb10 {
518
+ margin-bottom: 10px;
519
+ }
520
+ .ml10 {
521
+ margin-left: 10px;
522
+ }
523
+ .mr10 {
524
+ margin-right: 10px;
525
+ }
526
+ .mt15 {
527
+ margin-top: 15px;
528
+ }
529
+ .mt20 {
530
+ margin-top: 20px;
531
+ }
532
+ .mb20 {
533
+ margin-bottom: 20px;
534
+ }
535
+ .ml20 {
536
+ margin-left: 20px;
537
+ }
538
+ .mr20 {
539
+ margin-right: 20px;
540
+ }
541
+ .mt30 {
542
+ margin-top: 30px;
543
+ }
544
+ .mb30 {
545
+ margin-bottom: 30px;
546
+ }
547
+ .ml30 {
548
+ margin-left: 30px;
549
+ }
550
+ .mr30 {
551
+ margin-right: 30px;
552
+ }
553
+ .mt40 {
554
+ margin-top: 40px;
555
+ }
556
+ .mt45 {
557
+ margin-top: 45px;
558
+ }
559
+ .mb45 {
560
+ margin-bottom: 45px;
561
+ }
562
+ .ml45 {
563
+ margin-left: 45px;
564
+ }
565
+ .mr45 {
566
+ margin-right: 45px;
567
+ }
568
+ .mt50 {
569
+ margin-top: 50px;
570
+ }
571
+ .mt75 {
572
+ margin-top: 75px;
573
+ }
574
+ .mt88 {
575
+ margin-top: 88px;
576
+ }
577
+ .mt100 {
578
+ margin-top: 100px;
579
+ }
580
+ .mtb10 {
581
+ margin-top: 10px;
582
+ margin-bottom: 10px;
583
+ }
584
+ .mlr5 {
585
+ margin-left: 5px;
586
+ margin-right: 5px;
587
+ }
588
+ .mlr10 {
589
+ margin-left: 10px;
590
+ margin-right: 10px;
591
+ }
592
+ .mtb20 {
593
+ margin-top: 20px;
594
+ margin-bottom: 20px;
595
+ }
596
+ .mlr20 {
597
+ margin-left: 20px;
598
+ margin-right: 20px;
599
+ }
600
+ .mtb30 {
601
+ margin-top: 30px;
602
+ margin-bottom: 30px;
603
+ }
604
+ .mlr30 {
605
+ margin-left: 30px;
606
+ margin-right: 30px;
607
+ }
608
+ .mtb45 {
609
+ margin-top: 45px;
610
+ margin-bottom: 45px;
611
+ }
612
+ .mlr45 {
613
+ margin-left: 45px;
614
+ margin-right: 45px;
615
+ }
616
+ /* padding内边距 */
617
+ .ptb {
618
+ padding-top: 88px;
619
+ padding-bottom: 100px;
620
+ }
621
+ .pt5 {
622
+ padding-top: 5px;
623
+ }
624
+ .pb5 {
625
+ padding-bottom: 5px;
626
+ }
627
+ .pl5 {
628
+ padding-left: 5px;
629
+ }
630
+ .pr5 {
631
+ padding-right: 5px;
632
+ }
633
+ .pt10 {
634
+ padding-top: 10px;
635
+ }
636
+ .pl10 {
637
+ padding-left: 10px;
638
+ }
639
+ .pr10 {
640
+ padding-right: 10px;
641
+ }
642
+ .pb10 {
643
+ padding-bottom: 10px;
644
+ }
645
+ .pl15 {
646
+ padding-left: 15px;
647
+ }
648
+ .pr15 {
649
+ padding-right: 15px;
650
+ }
651
+ .pb15 {
652
+ padding-bottom: 15px;
653
+ }
654
+ .pt20 {
655
+ padding-top: 20px;
656
+ }
657
+ .pb20 {
658
+ padding-bottom: 20px;
659
+ }
660
+ .pl20 {
661
+ padding-left: 20px;
662
+ }
663
+ .pr20 {
664
+ padding-right: 20px;
665
+ }
666
+ .pl30 {
667
+ padding-left: 30px;
668
+ }
669
+ .pr30 {
670
+ padding-right: 30px;
671
+ }
672
+ .pt30 {
673
+ padding-top: 30px;
674
+ }
675
+ .pb30 {
676
+ padding-bottom: 30px;
677
+ }
678
+ .pl40 {
679
+ padding-left: 40px;
680
+ }
681
+ .pr40 {
682
+ padding-right: 40px;
683
+ }
684
+ .pt40 {
685
+ padding-top: 40px;
686
+ }
687
+ .pb40 {
688
+ padding-bottom: 40px;
689
+ }
690
+ .pt45 {
691
+ padding-top: 45px;
692
+ }
693
+ .pb45 {
694
+ padding-bottom: 45px;
695
+ }
696
+ .pt50 {
697
+ padding-top: 50px;
698
+ }
699
+ .pb50 {
700
+ padding-bottom: 50px;
701
+ }
702
+ .pl50 {
703
+ padding-left: 50px;
704
+ }
705
+ .pr50 {
706
+ padding-right: 50px;
707
+ }
708
+ .pt60 {
709
+ padding-top: 60px;
710
+ }
711
+ .pb60 {
712
+ padding-bottom: 60px;
713
+ }
714
+ .pt88 {
715
+ padding-top: 88px;
716
+ }
717
+ .pb100 {
718
+ padding-bottom: 100px;
719
+ }
720
+ .pt100 {
721
+ padding-top: 100px;
722
+ }
723
+ .ptb5 {
724
+ padding-bottom: 5px;
725
+ padding-top: 5px;
726
+ }
727
+ .ptb8 {
728
+ padding-bottom: 8px;
729
+ padding-top: 8px;
730
+ }
731
+ .plr8 {
732
+ padding-left: 8px;
733
+ padding-right: 8px;
734
+ }
735
+ .ptb10 {
736
+ padding-bottom: 10px;
737
+ padding-top: 10px;
738
+ }
739
+ .plr10 {
740
+ padding-left: 10px;
741
+ padding-right: 10px;
742
+ }
743
+ .ptb15 {
744
+ padding-top: 15px;
745
+ padding-bottom: 15px;
746
+ }
747
+ .plr15 {
748
+ padding-left: 15px;
749
+ padding-right: 15px;
750
+ }
751
+ .plr20 {
752
+ padding-left: 20px;
753
+ padding-right: 20px;
754
+ }
755
+ .ptb20 {
756
+ padding-top: 20px;
757
+ padding-bottom: 20px;
758
+ }
759
+ .plr30 {
760
+ padding-left: 30px;
761
+ padding-right: 30px;
762
+ }
763
+ .ptb30 {
764
+ padding-top: 30px;
765
+ padding-bottom: 30px;
766
+ }
767
+ .plr40 {
768
+ padding-left: 40px;
769
+ padding-right: 40px;
770
+ }
771
+ .ptb40 {
772
+ padding-top: 40px;
773
+ padding-bottom: 40px;
774
+ }
775
+ .ptb45 {
776
+ padding-top: 45px;
777
+ padding-bottom: 45px;
778
+ }
779
+ .plr45 {
780
+ padding-left: 45px;
781
+ padding-right: 45px;
782
+ }
783
+ .plr50 {
784
+ padding-left: 50px;
785
+ padding-right: 50px;
786
+ }
787
+ .ptb50 {
788
+ padding-bottom: 50px;
789
+ padding-top: 50px;
790
+ }
791
+ .ptb60 {
792
+ padding-bottom: 60px;
793
+ padding-top: 60px;
794
+ }
795
+ /* 宽度百分比 */
796
+ .w20 {
797
+ width: 20%;
798
+ }
799
+ .w25 {
800
+ width: 25%;
801
+ }
802
+ .w30 {
803
+ width: 30%;
804
+ }
805
+ .w35 {
806
+ width: 35%;
807
+ }
808
+ .w40 {
809
+ width: 40%;
810
+ }
811
+ .w45 {
812
+ width: 45%;
813
+ }
814
+ .w48 {
815
+ width: 48%;
816
+ }
817
+ .w50 {
818
+ width: 50%;
819
+ }
820
+ .w65 {
821
+ width: 65%;
822
+ }
823
+ .w75 {
824
+ width: 75%;
825
+ }
826
+ .w80 {
827
+ width: 80%;
828
+ }
829
+ .w85 {
830
+ width: 85%;
831
+ }
832
+ .w90 {
833
+ width: 90%;
834
+ }
835
+ .w95 {
836
+ width: 95%;
837
+ }
838
+ .w100 {
839
+ width: 100%;
840
+ }
841
+ /* 宽度/2px */
842
+ .wt5 {
843
+ width: 5px;
844
+ }
845
+ .wt8 {
846
+ width: 8px;
847
+ }
848
+ .wt10 {
849
+ width: 10px;
850
+ }
851
+ .wt15 {
852
+ width: 15px;
853
+ }
854
+ .wt20 {
855
+ width: 20px;
856
+ }
857
+ .wt25 {
858
+ width: 25px;
859
+ }
860
+ .wt30 {
861
+ width: 30px;
862
+ }
863
+ .wt35 {
864
+ width: 35px;
865
+ }
866
+ .wt40 {
867
+ width: 40px;
868
+ }
869
+ .wt50 {
870
+ width: 50px;
871
+ }
872
+ .wt60 {
873
+ width: 60px;
874
+ }
875
+ .wt70 {
876
+ width: 70px;
877
+ }
878
+ .wt80 {
879
+ width: 80px;
880
+ }
881
+ .wt90 {
882
+ width: 90px;
883
+ }
884
+ .wt100 {
885
+ width: 100px;
886
+ }
887
+ .w120 {
888
+ width: 120px;
889
+ }
890
+ .w150 {
891
+ width: 150px;
892
+ }
893
+ .w160 {
894
+ width: 160px;
895
+ }
896
+ .w180 {
897
+ width: 180px;
898
+ }
899
+ /* 高度 */
900
+ .h5 {
901
+ height: 5px;
902
+ }
903
+ .h8 {
904
+ height: 8px;
905
+ }
906
+ .h10 {
907
+ height: 10px;
908
+ }
909
+ .h15 {
910
+ height: 15px;
911
+ }
912
+ .h20 {
913
+ height: 20px;
914
+ }
915
+ .h25 {
916
+ height: 25px;
917
+ }
918
+ .h30 {
919
+ height: 30px;
920
+ }
921
+ .h35 {
922
+ height: 35px;
923
+ }
924
+ .h40 {
925
+ height: 40px;
926
+ }
927
+ .h44 {
928
+ height: 44px;
929
+ }
930
+ .h50 {
931
+ height: 50px;
932
+ }
933
+ .h60 {
934
+ height: 60px;
935
+ }
936
+ .h70 {
937
+ height: 70px;
938
+ }
939
+ .h88 {
940
+ height: 88px;
941
+ }
942
+ .h80 {
943
+ height: 80px;
944
+ }
945
+ .h90 {
946
+ height: 90px;
947
+ }
948
+ .h100 {
949
+ height: 100px;
950
+ }
951
+ .h110 {
952
+ height: 110px;
953
+ }
954
+ .h120 {
955
+ height: 120px;
956
+ }
957
+ .h130 {
958
+ height: 130px;
959
+ }
960
+ .h160 {
961
+ height: 160px;
962
+ }
963
+ .h260 {
964
+ height: 260px;
965
+ }
966
+ .h280 {
967
+ height: 280px;
968
+ }
969
+ .h390 {
970
+ height: 390px;
971
+ }
972
+ .ht100 {
973
+ height: 100%;
974
+ }
975
+ /* 行高 */
976
+ .lh10 {
977
+ line-height: 10px;
978
+ }
979
+ .lh20 {
980
+ line-height: 20px;
981
+ }
982
+ .lh25 {
983
+ line-height: 25px;
984
+ }
985
+ .lh30 {
986
+ line-height: 30px;
987
+ }
988
+ .lh35 {
989
+ line-height: 35px;
990
+ }
991
+ .lh40 {
992
+ line-height: 40px;
993
+ }
994
+ .lh44 {
995
+ line-height: 44px;
996
+ }
997
+ .lh50 {
998
+ line-height: 50px;
999
+ }
1000
+ .lh56 {
1001
+ line-height: 56px;
1002
+ }
1003
+ .lh60 {
1004
+ line-height: 60px;
1005
+ }
1006
+ .lh88 {
1007
+ line-height: 88px;
1008
+ }
1009
+ /* 边框圆角 */
1010
+ .radius2 {
1011
+ border-radius: 2px;
1012
+ }
1013
+ .radius4 {
1014
+ border-radius: 4px;
1015
+ }
1016
+ .radius6 {
1017
+ border-radius: 6px;
1018
+ }
1019
+ .radius10 {
1020
+ border-radius: 10px;
1021
+ }
1022
+ .radius15 {
1023
+ border-radius: 15px;
1024
+ }
1025
+ .radius20 {
1026
+ border-radius: 20px;
1027
+ }
1028
+ .radius28 {
1029
+ border-radius: 28px;
1030
+ }
1031
+ .radius50p {
1032
+ border-radius: 50%;
1033
+ }
1034
+ /* 透明度 */
1035
+ .opt0 {
1036
+ opacity: 0;
1037
+ }
1038
+ .opt88 {
1039
+ opacity: 0.88;
1040
+ }
1041
+ .opt50 {
1042
+ opacity: 0.50;
1043
+ }
1044
+ .opt33 {
1045
+ opacity: 0.33;
1046
+ }
1047
+ .opt {
1048
+ opacity: 0.15;
1049
+ }
1050
+ /* 三角形 */
1051
+ .trangle {
1052
+ width: 0;
1053
+ height: 0;
1054
+ border-left: 30px solid transparent;
1055
+ border-right: 30px solid transparent;
1056
+ border-bottom: 10px solid #1b2637;
1057
+ }
1058
+ .trangle_yellow {
1059
+ width: 0;
1060
+ height: 0;
1061
+ border-left: 5px solid transparent;
1062
+ border-right: 5px solid transparent;
1063
+ border-top: 5px solid #fec403;
1064
+ }
1065
+ /* 字体渐变 */
1066
+ .linerColor {
1067
+ color: #416dff;
1068
+ background: linear-gradient(to bottom, #416dff, #464fff);
1069
+ -webkit-background-clip: text;
1070
+ color: transparent;
1071
+ }
1072
+ /* 去除chrome input默认背景 */
1073
+ input:-webkit-autofill {
1074
+ background: transparent;
1075
+ -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
1076
+ }
1077
+ .bshadowf5 {
1078
+ box-shadow: 0 5px 5px #f5f5f5, 0 -5px 5px #f5f5f5, 5px 0 5px #f5f5f5, -5px 0 5px #f5f5f5;
1079
+ }
1080
+ /*清除ie的默认选择框样式清除,隐藏下拉箭头*/
1081
+ select {
1082
+ border: 1px solid #eee;
1083
+ appearance: none;
1084
+ -moz-appearance: none;
1085
+ -webkit-appearance: none;
1086
+ background: transparent;
1087
+ color: #666;
1088
+ }
1089
+ /* 不换行超出隐藏 */
1090
+ .ellipsis {
1091
+ overflow: hidden;
1092
+ text-overflow: ellipsis;
1093
+ white-space: nowrap;
1094
+ }
1095
+ .overxy {
1096
+ overflow: hidden;
1097
+ }
1098
+ .overx {
1099
+ overflow-x: hidden;
1100
+ }
1101
+ .overxscroll {
1102
+ overflow-x: scroll;
1103
+ }
1104
+ /* 其它 */
1105
+ .load-more {
1106
+ display: block;
1107
+ background-color: transparent;
1108
+ padding-top: 15px;
1109
+ border-radius: 4px;
1110
+ }
1111
+ .btn-default {
1112
+ width: 100%;
1113
+ margin-left: auto;
1114
+ margin-right: auto;
1115
+ display: block;
1116
+ border-radius: 2px;
1117
+ text-align: center;
1118
+ outline: none;
1119
+ border: none;
1120
+ color: #fff;
1121
+ height: 40px;
1122
+ line-height: 40px;
1123
+ font-size: 14px;
1124
+ }
1125
+ .bshadow5 {
1126
+ box-shadow: 0 5px 5px #d4dbfc, 0 -5px 5px #d4dbfc, 5px 0 5px #d4dbfc, -5px 0 5px #d4dbfc;
1127
+ }
1128
+ .bshadow5_green {
1129
+ box-shadow: 0 0 5px #75C322;
1130
+ }
1131
+ .bshadowf5 {
1132
+ box-shadow: 0 5px 5px #f5f5f5, 0 -5px 5px #f5f5f5, 5px 0 5px #f5f5f5, -5px 0 5px #f5f5f5;
1133
+ }
1134
+ .bshadow10 {
1135
+ box-shadow: 0 5px 10px rgba(231, 233, 241, 0.6), 0 -5px 10px rgba(231, 233, 241, 0.6), 5px 0 10px rgba(231, 233, 241, 0.6), -5px 0 10px rgba(231, 233, 241, 0.6);
1136
+ }
1137
+ .copy {
1138
+ height: 86px;
1139
+ line-height: 86px;
1140
+ border-radius: 43px;
1141
+ }
1142
+ .header {
1143
+ width: 100%;
1144
+ top: 0;
1145
+ height: 50px;
1146
+ left: 0;
1147
+ z-index: 1000000;
1148
+ }
1149
+ .header .back {
1150
+ display: inline-block;
1151
+ position: absolute;
1152
+ left: 14px;
1153
+ width: 8px;
1154
+ height: 16px;
1155
+ /* background: url(/static/arrow_left.png) no-repeat center / 100% 100%; */
1156
+ }
1157
+ .header .txt {
1158
+ font-size: 10px;
1159
+ }
1160
+ .arrow {
1161
+ width: 6px;
1162
+ height: 11px;
1163
+ }
1164
+ .scan {
1165
+ width: 40px;
1166
+ height: 40px;
1167
+ }
1168
+ .width10 {
1169
+ width: 30px;
1170
+ height: 30px;
1171
+ }
1172
+ .lb {
1173
+ left: -15px;
1174
+ bottom: 0;
1175
+ transform: translateY(50%);
1176
+ }
1177
+ .pos_r30t90 {
1178
+ right: 15px;
1179
+ top: 45px;
1180
+ }
1181
+ .pos_l0b0 {
1182
+ bottom: 0;
1183
+ left: 0;
1184
+ }
1185
+ .shade {
1186
+ left: 5%;
1187
+ bottom: 0;
1188
+ transform: translateY(15px);
1189
+ border-radius: 15px;
1190
+ background: #79809B;
1191
+ z-index: -1;
1192
+ }
1193
+ .zdx100 {
1194
+ z-index: 100;
1195
+ }
1196
+ .my_layer {
1197
+ top: 0;
1198
+ left: 0;
1199
+ background: rgba(0, 0, 0, 0.5);
1200
+ z-index: 999;
1201
+ }
1202
+ .break-word {
1203
+ word-wrap: break-word;
1204
+ }
1205
+ .nowrap {
1206
+ white-space: nowrap;
1207
+ }
1208
+ /* 下划线 */
1209
+ .myline {
1210
+ position: absolute;
1211
+ bottom: 0;
1212
+ left: 50%;
1213
+ transform: translateX(-50%);
1214
+ width: 20px;
1215
+ height: 3px;
1216
+ }
hybrid/html/css/dataMap.css ADDED
@@ -0,0 +1,749 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ .bgBalck #header {
3
+ padding: 10px 3% 0;
4
+ background: #131f30;
5
+ }
6
+
7
+ #header div {
8
+ overflow: hidden;
9
+ }
10
+
11
+ .bgBalck .header {
12
+ width: 100%;
13
+ background: #131f30;
14
+ z-index: 99;
15
+ }
16
+ .insure-header{
17
+ margin-right: 10px
18
+ }
19
+ .insure div{
20
+ font-size: 10px;
21
+
22
+ }
23
+ /* .insure div p{
24
+ width: 30px;
25
+ } */
26
+ .insure span{
27
+ display: block;
28
+ margin-left: 6px;
29
+ border: 1px solid #f1f1f1;
30
+ border-radius: 2px;
31
+ padding: 0 5px;
32
+ line-height: 20px;
33
+ height: 20px;
34
+ margin-top: 10px;
35
+ color: #7d818a;
36
+ }
37
+ .bgBalck .insure span{
38
+ border: 1px solid #2c313c;
39
+ }
40
+ .bgBalck .bg_active{
41
+ background-color: #12151c;
42
+ }
43
+ .bgBalck #sideColumn ul li{
44
+ border-bottom: 1px solid #12151c;
45
+ }
46
+ #header div p img {
47
+ width: 30px;
48
+ margin: -6px 1px 0 0;
49
+ }
50
+ .bgBalck #sideColumn ul li strong{
51
+ color: #fff;
52
+ }
53
+
54
+ #header div P span {
55
+ font-size: 18px;
56
+ font-weight: bold;
57
+
58
+ }
59
+
60
+ .CNY {
61
+ margin-top: 45px;
62
+ padding: 5px 15px 10px;
63
+ }
64
+
65
+ .CNY div h2,
66
+ .CNY div h4 {
67
+ margin: 0;
68
+ }
69
+
70
+ .CNY div h2 {
71
+ color: #4f986f;
72
+ line-height: 40px;
73
+ text-align: left;
74
+ font-size: 28px;
75
+ font-weight: bold;
76
+ }
77
+
78
+ .CNY div h4 {
79
+ color: #5a718e;
80
+ font-size: 1.7rem;
81
+ }
82
+
83
+ .CNY div h4 span {
84
+ color: #4f986f;
85
+ }
86
+
87
+ .CNY ul {
88
+ list-style: none;
89
+ width: 30%;
90
+ }
91
+
92
+ .CNY ul li {
93
+ line-height: 20px;
94
+ text-align: right;
95
+ /* color: #5a718e; */
96
+ }
97
+
98
+ .CNY ul li span {
99
+ padding: 0 6px;
100
+ /* color: #cfd3e9; */
101
+ font-size: 1.3rem;
102
+ }
103
+
104
+
105
+ .p {
106
+ color: #c15a58;
107
+ }
108
+
109
+ .g {
110
+ color: #03bd87;
111
+ }
112
+
113
+
114
+ .bgBalck #bottom {
115
+ position: fixed;
116
+ bottom: 0;
117
+ width: 100%;
118
+ padding: 0 1.5%;
119
+ height: 70px;
120
+ background: #152741;
121
+ font-size: 14px;
122
+ }
123
+
124
+ #bottom {
125
+ position: fixed;
126
+ bottom: 0;
127
+ width: 100%;
128
+ padding: 0 1.5%;
129
+ height: 70px;
130
+ background: #fff;
131
+ font-size: 14px;
132
+ z-index: 99999;
133
+ }
134
+
135
+ #bottom button {
136
+ width: calc(48.50vw - 12px);
137
+ height: 50px;
138
+ font-size: 18px;
139
+ color: #fff;
140
+ outline: none;
141
+ border: none;
142
+ border-radius: 2px;
143
+ margin-top: 10px;
144
+ }
145
+
146
+ #bottom button:nth-child(2) {
147
+ margin-left: 0;
148
+ }
149
+
150
+ div#bottom button:nth-child(1) {
151
+ background: #4f986f;
152
+ }
153
+
154
+ #bottom button:nth-child(2) {
155
+ background: #c15a58;
156
+ }
157
+
158
+ /* 买入卖出弹窗 */
159
+ .data-modal {
160
+ display: none;
161
+ width: 100%;
162
+ margin: 0 auto;
163
+ padding: 10px 15px;
164
+ }
165
+
166
+ .modals {
167
+ background-color: #303032 !important;
168
+ }
169
+
170
+ .modals .layui-layer-btn a {
171
+ display: block;
172
+ width: 100%;
173
+ text-align: center;
174
+ margin: 0;
175
+ padding: 0;
176
+ line-height: 40px;
177
+ height: 40px;
178
+ }
179
+
180
+ .tab p {
181
+ width: 50%;
182
+ }
183
+
184
+ .tab span {
185
+ display: block;
186
+ padding: 0 10px 5px;
187
+ }
188
+
189
+ .tab .active {
190
+ border-bottom: 1px solid #1E9FFF;
191
+ }
192
+
193
+ .control {
194
+ line-height: 30px;
195
+ border: 1px solid #f1f1f1;
196
+ padding: 0 10px;
197
+ width: 100%;
198
+ border-radius: 2px;
199
+ }
200
+
201
+ .modals select {
202
+ background-color: #303032;
203
+ width: 100%;
204
+ }
205
+
206
+ .modals #share {
207
+ width: 40%;
208
+ }
209
+
210
+ .share-num {
211
+ width: 50%;
212
+ line-height: 30px;
213
+ border: 1px solid #f1f1f1;
214
+ padding: 0 10px;
215
+ border-radius: 2px;
216
+ }
217
+
218
+ .new-price {
219
+ color: #4f986f;
220
+ }
221
+
222
+ #sideColumn h4 img {
223
+ width: 20px;
224
+ margin: -6px 5px 0 0;
225
+ }
226
+
227
+ #sideColumn {
228
+ z-index: 101;
229
+ position: fixed;
230
+ top: 0;
231
+ left: -70%;
232
+ width: 70%;
233
+ height: 100%;
234
+ }
235
+
236
+ #sideColumn h4 span {
237
+ margin: 0 10px;
238
+ color: #ccc;
239
+ border: none;
240
+ }
241
+ .insure .active{
242
+ color: #1f6bfd!important;
243
+ border: 1px solid #1f6bfd;
244
+ }
245
+
246
+ #sideColumn ol,
247
+ #sideColumn ul {
248
+ list-style: none;
249
+ }
250
+
251
+ #sideColumn ol {
252
+ display: flex;
253
+ }
254
+
255
+ #sideColumn ol li {
256
+ float: left;
257
+ flex: 1;
258
+ text-align: center;
259
+ line-height: 35px;
260
+ color: #ccc;
261
+ }
262
+
263
+ #mask1 {
264
+ position: fixed;
265
+ left: 0px;
266
+ top: 0px;
267
+ right: 0px;
268
+ bottom: 0px;
269
+ display: none;
270
+ background: rgba(130, 129, 129, 0.5);
271
+ width: 100%;
272
+ height: 100%;
273
+ z-index: 100;
274
+ }
275
+
276
+ #sideColumn ul {
277
+ overflow-y: scroll;
278
+ height: calc(100.0vh - 70px)
279
+ }
280
+
281
+ #sideColumn ul li {
282
+ height: 60px;
283
+ line-height: 60px;
284
+ text-indent: 15px;
285
+ font-size: 1.2rem;
286
+ }
287
+
288
+ #sideColumn ul li strong {
289
+ padding: 0 20px 0 0;
290
+ float: left;
291
+ font-size: 16px;
292
+ font-weight: bold;
293
+ color: #1A384A;
294
+ }
295
+
296
+ #sideColumn ul li strong b {
297
+ color: #7d818a;
298
+ font-size: 14px;
299
+ font-weight: bold;
300
+ }
301
+
302
+ #sideColumn ul li p {
303
+ float: right;
304
+ /* width: 72%; */
305
+ padding: 0 10px;
306
+ margin: 0;
307
+ }
308
+
309
+ .texts-lever {
310
+ margin-top: 10px;
311
+ line-height: 35px;
312
+ padding-left: 15px;
313
+ padding-bottom: 10px;
314
+ }
315
+
316
+ #sideColumn ul li {
317
+ border-bottom: 1px solid #f1f1f1;
318
+ }
319
+ .bdbs {
320
+ border-bottom: 1px solid #12151c;
321
+ }
322
+ .fontC {
323
+ color: #c15a58;
324
+ font-size: 16px;
325
+ font-weight: bold;
326
+ }
327
+
328
+ .gre {
329
+ color: #4f986f;
330
+ font-size: 16px;
331
+ font-weight: bold;
332
+ }
333
+
334
+ .tab_list {
335
+ display: none;
336
+ padding-bottom: 20px;
337
+ }
338
+
339
+ .CNY ul {
340
+ list-style: none;
341
+ width: 40%;
342
+ margin-top: 5px;
343
+ }
344
+
345
+ .CNY div h4 span.red {
346
+ color: #c15a58;
347
+ }
348
+
349
+ .red {
350
+ color: #c15a58 !important;
351
+ }
352
+
353
+ .return {
354
+ width: 20px;
355
+ }
356
+
357
+ select {
358
+ background-color: #fff;
359
+ color: #333;
360
+ border: 1px solid #f1f1f1;
361
+ padding: 5px 10px;
362
+ border-radius: 2px;
363
+ }
364
+
365
+ .tabs-data-map {
366
+ border: none;
367
+ }
368
+
369
+ .tabs-data-map img {
370
+ width: 20px !important;
371
+ position: relative;
372
+ top: 3px;
373
+ margin: -10px 5px 0 0 !important;
374
+ }
375
+
376
+ .bg_active {
377
+ background: #f4f8fb;
378
+ }
379
+
380
+ /* 倒计时下单弹窗 */
381
+ .time-modal {
382
+ display: none;
383
+ padding: 0 15px 20px;
384
+ margin-top: 15px;
385
+ overflow-x: hidden;
386
+ }
387
+
388
+ .time-list {
389
+ margin-top: 10px;
390
+ width: 100%;
391
+ }
392
+
393
+ .lists {
394
+ width: 100%;
395
+ overflow-x: scroll;
396
+ }
397
+
398
+ .lists .fl {
399
+ width: calc(29.33vw - 15px);
400
+ height: calc(29.33vw - 15px);
401
+ margin-right: 10px;
402
+ position: relative;
403
+ }
404
+
405
+ .lists-child {
406
+ width: calc(29.33vw - 15px);
407
+ height: calc(29.33vw - 15px);
408
+ box-sizing: border-box;
409
+ text-align: center;
410
+ background: url(../images/clock.png) no-repeat;
411
+ background-size: cover;
412
+ background-color: #2c2d31;
413
+ border-radius: 5px;
414
+ box-sizing: border-box;
415
+ color: #6d6d6d;
416
+
417
+ }
418
+
419
+ .title {
420
+ width: calc(29.33vw - 15px);
421
+ line-height: 30px;
422
+ }
423
+
424
+ .lists-child div {
425
+ color: #fdbe19;
426
+ margin-top: 6px;
427
+ }
428
+
429
+ .lists-child div p {
430
+ position: relative;
431
+ top: -3px;
432
+ margin-right: 5px;
433
+ }
434
+
435
+ .profit {
436
+ color: #fa2e42;
437
+ background-color: #232227;
438
+ width: 100%;
439
+ height: 24px;
440
+ line-height: 24px;
441
+ border-bottom-left-radius: 5px;
442
+ border-bottom-right-radius: 5px;
443
+ margin-top: 16px;
444
+ }
445
+ .bgBlackColor {
446
+ background-color: #202833;
447
+ }
448
+ .bgBalck .lists .active .profit {
449
+ margin-top: 13px;
450
+ }
451
+
452
+ .bgBalck .currency-list p {
453
+ border: 1px solid #12151c;
454
+ }
455
+
456
+ .bgBalck .time-num ul li {
457
+ border: 1px solid #12151c;
458
+ }
459
+
460
+ .bgBalck .balances {
461
+ border-bottom: 1px solid #12151c;
462
+ }
463
+
464
+ .bgBalck .time-num input {
465
+ color: #fff;
466
+ background-color: #12151c;
467
+ }
468
+
469
+ .time-num {
470
+ width: 100%;
471
+ margin-top: 10px;
472
+ }
473
+ ul,li{
474
+ list-style: none;
475
+ }
476
+ .time-num ul {
477
+ width: 100%;
478
+ }
479
+
480
+ .time-num ul li {
481
+ height: 29px;
482
+ font-size: 12px;
483
+ height: 30px;
484
+ line-height: 30px;
485
+ width: 22.7%;
486
+ text-align: center;
487
+ margin: 0 1.5%;
488
+ border: 1px solid #f1f1f1;
489
+ margin-bottom: 10px;
490
+ }
491
+ .time-num ul li:nth-child(4n +1){
492
+ margin: 0 1.5% 0 0;
493
+ }
494
+ .time-num ul li:nth-child(4n){
495
+ margin: 0 0 0 1.5%;
496
+ }
497
+
498
+
499
+ .time-num .active {
500
+ background: url(../../../static/image/selects.png) no-repeat right bottom;
501
+ background-size: 35px 30px;
502
+ }
503
+
504
+ .time-num input {
505
+ height: 29px;
506
+ font-size: 12px;
507
+ height: 30px;
508
+ line-height: 30px;
509
+ text-align: center;
510
+ background-color: #fff;
511
+ padding: 0 2px;
512
+ border: 1px solid #f1f1f1;
513
+ }
514
+
515
+ .balances {
516
+ width: 100%;
517
+ margin-top: 15px;
518
+ padding-bottom: 5px;
519
+ border-bottom: 1px solid #f1f1f1;
520
+ }
521
+
522
+ .time-bottom span {
523
+ display: block;
524
+ margin-top: 5px;
525
+ font-size: 14px;
526
+ }
527
+
528
+ .yellowColor {
529
+ color: #fdbe19;
530
+ }
531
+
532
+ .time-btn {
533
+ width: 100%;
534
+ line-height: 40px;
535
+ height: 40px;
536
+ border-radius: 6px;
537
+ margin: 20px 0 10px;
538
+ }
539
+
540
+ .time-btn button {
541
+ width: 49%;
542
+ height: 100%;
543
+ border: none;
544
+ outline: none;
545
+ color: #fff;
546
+ border-radius: 6px;
547
+ }
548
+
549
+ .lists .active {
550
+ border: 1px solid #fdbe19;
551
+ background-size: contain;
552
+ background-position: right top;
553
+ background-repeat: no-repeat;
554
+ }
555
+
556
+ .currency-list p {
557
+ border: 1px solid #f1f1f1;
558
+ font-size: 14px;
559
+ text-align: center;
560
+ width: 22.7%;
561
+ height: 30px;
562
+ line-height: 30px;
563
+ text-align: center;
564
+ margin: 0 1.5% 10px;
565
+
566
+
567
+ }
568
+ .currency-list p:first-child{
569
+ margin: 0 1.5% 10px 0;
570
+ }
571
+ .currency-list p:nth-child(4n){
572
+ margin: 0 0 10px 1.5%;
573
+ }
574
+
575
+ .currency-list .active {
576
+ background: url(../../../static/image/selects.png) no-repeat right bottom;
577
+ background-size: 35px 30px;
578
+ }
579
+
580
+ .orders {
581
+ display: none;
582
+ text-align: center;
583
+ padding: 20px 20px 30px;
584
+ }
585
+
586
+ .orders-list {
587
+ margin-top: 20px;
588
+ }
589
+
590
+ .orders-list span {
591
+ margin-top: 10px;
592
+ display: inline-block;
593
+ width: 40%;
594
+ text-align: left;
595
+ }
596
+ .orders-list p span:first-child{
597
+ text-align: right;
598
+ width: 80px;
599
+ }
600
+
601
+ .order-list {
602
+ width: 100%;
603
+ padding-bottom: 20px;
604
+ }
605
+
606
+ .order-list-header {
607
+ width: 100%;
608
+ line-height: 40px;
609
+ background-color: #fff;
610
+ }
611
+
612
+ .order-list-header p {
613
+ width: 50%;
614
+ }
615
+
616
+ .order-list-header .active {
617
+ border-bottom: 2px solid #1f6bfd;
618
+ }
619
+
620
+ #bottom .second-buy {
621
+ width: 21.0vw;
622
+ /* padding: 0 20px; */
623
+ margin-right: 5px;
624
+ }
625
+
626
+ #bottom .second-sell {
627
+ width: 21.0vw;
628
+ /* padding: 0 20px; */
629
+ }
630
+
631
+ .bottom-left {
632
+ width: 52.0vw;
633
+ }
634
+
635
+ .logo-down {
636
+ width: 15px;
637
+ margin-top: 8px;
638
+ }
639
+
640
+ .logo-down img {
641
+ width: 100%;
642
+ }
643
+
644
+ .bottom-left {
645
+ height: 50px;
646
+ margin-top: 10px;
647
+ border: 1px solid #f1f1f1;
648
+ border-radius: 4px;
649
+ padding: 6px 5px;
650
+ }
651
+ #sideColumn ul li p b{
652
+ font-weight: normal;
653
+ color: #7d818a;
654
+ }
655
+ .btn-text .layui-layer-btn{
656
+ text-align: center;
657
+ }
658
+ .btn-text .layui-layer-btn .layui-layer-btn0 {
659
+ width: calc(50% - 8px);
660
+ }
661
+ .btn-text .layui-layer-btn a {
662
+ padding: 0;
663
+ margin: 0;
664
+ line-height: 44px;
665
+ height: 44px;
666
+ border: none;
667
+ font-size: 16px;
668
+ }
669
+ .second-modal .layui-layer-btn0 {
670
+ background-color: #4f986f!important;
671
+ color: #fff!important;
672
+ }
673
+ .btn-text .layui-layer-btn .layui-layer-btn1 {
674
+ width: calc(50% - 8px);
675
+ color: #fff;
676
+ background: #1f6bfd;
677
+ margin-left: 15px;
678
+ }
679
+ .second-modal .layui-layer-btn{
680
+ padding: 0!important;
681
+ }
682
+ .second-modal .layui-layer-btn0{
683
+ background-color: #4f986f!important;
684
+ color: #fff!important;
685
+ }
686
+ .second-modal .layui-layer-btn1{
687
+ background-color: #c15a58!important;
688
+ }
689
+ .buys .layui-layer-btn1{
690
+ background-color: #4f986f!important;
691
+ }
692
+ .sells .layui-layer-btn1{
693
+ background-color: #c15a58!important;
694
+ }
695
+ .order-list li{
696
+ /* line-height: 30px; */
697
+ border-bottom: 1px solid #f1f1f1;
698
+ padding: 10px 0;
699
+ }
700
+ .lists li p{
701
+ width: 15.0vw;
702
+ text-align: center;
703
+ }
704
+ .lists li p:nth-child(2){
705
+ width: 25%;
706
+ }
707
+ .lists li p:nth-child(3){
708
+ width: 25%;
709
+ }
710
+ .bgBalck .order-list-header{
711
+ background-color: #131f30;
712
+ }
713
+ .bgBalck .order-list{
714
+ background-color: #131f30;
715
+ }
716
+ .bgBalck .order-list li{
717
+ border-bottom: 1px solid #12151c;
718
+ }
719
+ .bgBalck .bottom-left{
720
+ border: 1px solid #12151c;
721
+ }
722
+ .bgBalck .time-num input{
723
+ border: 1px solid #12151c;
724
+ background-color: #202833;
725
+ }
726
+ .buys,.sells{
727
+ top: auto!important;
728
+ bottom: 10.0vh;
729
+ }
730
+ .buys .layui-layer-title{
731
+ background-color: #4f986f!important;
732
+ color: #fff;
733
+ }
734
+ .sells .layui-layer-title{
735
+ background-color: #c15a58!important;
736
+ color: #fff;
737
+ }
738
+ .buys .orders,.sells .orders{
739
+ padding: 0 20px 10px;
740
+ }
741
+ .buys .layui-layer-btn,.sells .layui-layer-btn{
742
+ padding: 0 15px 10px;
743
+ }
744
+ .buys .orders-list span,.sells .orders-list span{
745
+ margin-top: 0;
746
+ }
747
+ .bgBalck .btn-text {
748
+ background-color: #202833;
749
+ }
hybrid/html/css/kline.css ADDED
@@ -0,0 +1,406 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+ html{
6
+ background-color: #131623;
7
+ }
8
+ #app{
9
+ height: 100vh;
10
+ width: 100vw;
11
+ overflow-y: scroll;
12
+ overflow-x: hidden;
13
+ -webkit-overflow-scrolling: touch;
14
+ }
15
+ .head{
16
+ padding: 10px;
17
+ }
18
+ .small-left{
19
+ color: rgba(255, 255, 255, 0.38);
20
+ }
21
+ .title{
22
+ font-size: 18px;
23
+ }
24
+ .price{
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: space-between;
28
+ }
29
+ .price-label{
30
+ font-size: 26px;
31
+ font-weight: bold;
32
+ color: #38ad70;
33
+ }
34
+ .price-value{
35
+ margin-left: 10px;
36
+ font-size: 12px;
37
+ color: #fff;
38
+ margin-top: 4px;
39
+ }
40
+ .cell-right{
41
+ justify-content: end;
42
+ }
43
+ .head-item{
44
+ margin-top: 5px;
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: space-between;
48
+ }
49
+ .head-item-cell{
50
+ display: flex;
51
+ flex-direction: row;
52
+ align-items: center;
53
+ }
54
+ .hic-label{
55
+ font-size: 10px;
56
+ color: rgba(255,255,255,0.38);
57
+ }
58
+ .hic-value{
59
+ margin-left: 5px;
60
+ font-size: 10px;
61
+ color: rgba(255,255,255,0.7);
62
+ }
63
+ .tabs{
64
+ display: flex;
65
+ flex-direction: row;
66
+ align-items: center;
67
+ border-bottom: 1px solid rgba(255,255,255,0.1);
68
+ padding: 0 10px;
69
+ }
70
+ .tabs-item{
71
+ margin-right: 14px;
72
+ display: flex;
73
+ flex-direction: column;
74
+ align-items: center;
75
+ }
76
+ .tabs-item-text{
77
+ font-size: 12px;
78
+ line-height: 24px;
79
+ color: rgba(255,255,255,0.38);
80
+ }
81
+ .tabs-item-text-active{
82
+ color: #fff;
83
+ }
84
+ .tabs-item-bar{
85
+ width: 0;
86
+ height: 2px;
87
+ background-color: transparent;
88
+ transition: all .2s;
89
+ }
90
+ .tabs-item-bar-active{
91
+ width: 16px;
92
+ background-color: #fff;
93
+ }
94
+ .category{
95
+ position: sticky;
96
+ top: 0;
97
+ z-index: 999;
98
+ background-color: #131623;
99
+ margin-top: 10px;
100
+ display: flex;
101
+ flex-direction: row;
102
+ align-items: center;
103
+ justify-content: center;
104
+ border-bottom: 1px solid rgba(255,255,255,0.1);
105
+ padding: 0 10px;
106
+ }
107
+ .category-item-wrap{
108
+ flex: 1;
109
+ display: flex;
110
+ flex-direction: row;
111
+ justify-content: center;
112
+ }
113
+ .category-item{
114
+ display: flex;
115
+ flex-direction: column;
116
+ align-items: center;
117
+ }
118
+ .category-item-text{
119
+ font-size: 14px;
120
+ line-height: 28px;
121
+ color: rgba(255,255,255,0.38);
122
+ }
123
+ .category-item-text-active{
124
+ color: #fff;
125
+ }
126
+ .category-item-bar{
127
+ width: 0;
128
+ height: 2px;
129
+ background-color: transparent;
130
+ transition: all .2s;
131
+ }
132
+ .category-item-bar-active{
133
+ width: 100%;
134
+ background-color: #fff;
135
+ }
136
+ .category-main{
137
+ padding: 10px;
138
+ }
139
+ .depth-head{
140
+ display: flex;
141
+ flex-direction: row;
142
+ align-items: center;
143
+ justify-content: space-between;
144
+ }
145
+ .depth-head-left{
146
+ flex: 1;
147
+ display: flex;
148
+ flex-direction: row;
149
+ align-items: center;
150
+ }
151
+ .depth-head-center{
152
+ flex: 1;
153
+ display: flex;
154
+ flex-direction: row;
155
+ align-items: center;
156
+ justify-content: center;
157
+ }
158
+ .depth-head-right{
159
+ flex: 1;
160
+ display: flex;
161
+ flex-direction: row;
162
+ align-items: center;
163
+ justify-content: flex-end;
164
+ }
165
+ .depth-head-label{
166
+ font-size: 10px;
167
+ color: rgba(255,255,255,0.38);
168
+ }
169
+ .depth-head-left-index{
170
+ width: 30px;
171
+ margin-right: 10px;
172
+ text-align: left;
173
+ }
174
+ .depth-head-right-index{
175
+ width: 30px;
176
+ margin-left: 10px;
177
+ text-align: right;
178
+ }
179
+ .depth-main{
180
+ margin-top: 15px;
181
+ display: flex;
182
+ flex-direction: row;
183
+ }
184
+ .depth-main-item{
185
+ flex: 1;
186
+ }
187
+ .dmi-cell{
188
+ position: relative;
189
+ height: 30px;
190
+ display: flex;
191
+ flex-direction: row;
192
+ }
193
+ .dmi-cell-item{
194
+ position: absolute;
195
+ top: 0;
196
+ left: 0;
197
+ right: 0;
198
+ bottom: 0;
199
+ display: flex;
200
+ flex-direction: row;
201
+ align-items: center;
202
+ }
203
+ .dmi-cell-item-right{
204
+ justify-content: flex-end;
205
+ }
206
+ .dmi-cell-bg{
207
+ background-color: red;
208
+ width: 0;
209
+ height: 100%;
210
+ }
211
+ .dmi-cell-index{
212
+ width: 30px;
213
+ font-size: 12px;
214
+ color: #fff;
215
+ }
216
+ .dmi-cell-num{
217
+ flex: 1;
218
+ margin: 0 10px;
219
+ font-size: 12px;
220
+ color: #fff;
221
+ }
222
+ .dmi-cell-price{
223
+ font-size: 12px;
224
+ color: #fff;
225
+ }
226
+ .transaction{
227
+
228
+ }
229
+ .transaction-head{
230
+ display: flex;
231
+ flex-direction: row;
232
+ align-items: center;
233
+ justify-content: space-between;
234
+ }
235
+ .transaction-head-item{
236
+ color: rgba(255,255,255,0.38);
237
+ font-size: 10px;
238
+ }
239
+ .transaction-main{
240
+ margin-top: 10px;
241
+ }
242
+ .transaction-main-cell{
243
+ display: flex;
244
+ flex-direction: row;
245
+ align-items: center;
246
+ justify-content: space-between;
247
+ }
248
+ .tmc-label{
249
+ color: #fff;
250
+ font-size: 12px;
251
+ height: 30px;
252
+ line-height: 30px;
253
+ }
254
+ .tmc-time{
255
+ width: 30%;
256
+ }
257
+ .tmc-type{
258
+ text-align: center;
259
+ width: 20%;
260
+ }
261
+ .tmc-price{
262
+ text-align: center;
263
+ width: 20%;
264
+ }
265
+ .tmc-num{
266
+ text-align: right;
267
+ width: 30%;
268
+ }
269
+ .introduction{
270
+
271
+ }
272
+ .introduction-name{
273
+ color: #fff;
274
+ font-size: 16px;
275
+ font-weight: bold;
276
+ padding-bottom: 20px;
277
+ }
278
+ .introduction-cell{
279
+ margin-top: 20px;
280
+ display: flex;
281
+ flex-direction: row;
282
+ align-items: center;
283
+ justify-content: space-between;
284
+ }
285
+ .introduction-cell-label{
286
+ color: rgba(255,255,255,0.38);
287
+ font-size: 12px;
288
+ }
289
+ .introduction-cell-value{
290
+ color: #fff;
291
+ font-size: 12px;
292
+ font-weight: bold;
293
+ }
294
+ .introduction-label{
295
+ margin-top: 40px;
296
+ color: #fff;
297
+ font-size: 16px;
298
+ font-weight: bold;
299
+ }
300
+ .introduction-value{
301
+ margin-top: 20px;
302
+ color: #fff;
303
+ font-size: 14px;
304
+ }
305
+ .btns{
306
+ position: fixed;
307
+ z-index: 1000;
308
+ left: 0;
309
+ right: 0;
310
+ bottom: 0;
311
+ display: flex;
312
+ flex-direction: row;
313
+ align-items: center;
314
+ justify-content: center;
315
+ padding: 10px;
316
+ box-sizing: border-box;
317
+ background-color: #131623;
318
+ }
319
+ .btn{
320
+ flex: 1;
321
+ height: 40px;
322
+ border-radius: 4px;
323
+ line-height: 40px;
324
+ text-align: center;
325
+ color: #fff;
326
+ font-size: 16px;
327
+ }
328
+ .btn-green{
329
+ margin-right: 20px;
330
+ background-color: #38ad70;
331
+ }
332
+ .btn-red{
333
+ background-color: #fe5c57;
334
+ }
335
+ .charts-border {
336
+ position: relative;
337
+ }
338
+
339
+ .charts {
340
+ width: 100vw;
341
+ height: 420px;
342
+ }
343
+
344
+ .charts-label {
345
+ position: absolute;
346
+ left: 10px;
347
+ top: 5px;
348
+ font-size: 10px;
349
+ display: flex;
350
+ justify-content: center;
351
+ align-items: center;
352
+ }
353
+
354
+ .charts-label div {
355
+ margin-right: 14px;
356
+ }
357
+
358
+ .charts-MA5 {
359
+ color: #eef4ba;
360
+ }
361
+
362
+ .charts-MA10 {
363
+ color: #83c1c5;
364
+ }
365
+
366
+ .charts-MA30 {
367
+ color: #b39cd8;
368
+ }
369
+
370
+ .charts-bar-label {
371
+ position: absolute;
372
+ left: 10px;
373
+ top: 76%;
374
+ font-size: 10px;
375
+ display: flex;
376
+ justify-content: center;
377
+ align-items: center;
378
+ }
379
+
380
+ .charts-bar-label div {
381
+ margin-right: 14px;
382
+ }
383
+
384
+ .charts-tooltip-row {
385
+ display: flex;
386
+ flex-direction: row;
387
+ align-items: center;
388
+ justify-content: space-between;
389
+ padding: 5px 0;
390
+ }
391
+
392
+ .ctr-label {
393
+ color: #51617b;
394
+ }
395
+
396
+ .ctr-value {
397
+ color: #acbadf;
398
+ margin-left: 30px;
399
+ }
400
+
401
+ .price-green{
402
+ color: #38ad70;
403
+ }
404
+ .price-red{
405
+ color: #fe5c57;
406
+ }
hybrid/html/image/buy.png ADDED
hybrid/html/image/sell.png ADDED
hybrid/html/index.html ADDED
@@ -0,0 +1,1022 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title> </title>
8
+ <link rel="stylesheet" href="css/common.css">
9
+ </head>
10
+ <style>
11
+ [v-cloak]{
12
+ display: none !important;
13
+ }
14
+ body{
15
+ text-transform: capitalize;
16
+ }
17
+ button{
18
+ text-transform: capitalize;
19
+ }
20
+ .dn{
21
+ display: none;
22
+ }
23
+ </style>
24
+ <body>
25
+ <!-- <div class="h20 bgHeader"></div> -->
26
+ <div id="app" v-cloak>
27
+ <div class="header plr15 flex alcenter bgHeader white fixed pt30">
28
+ <img src="../../static/image/return.png" class="h15 wt15 mr20" @click="goback">
29
+ <div class="white ft18 bold ">{{symbol}}</div>
30
+ </div>
31
+ <div>
32
+ <div class="pt60 pb10 plr20 bgHeader" style="min-height: 50px;">
33
+ <div class="flex alcenter between pt5">
34
+ <div class="tc" :class="[updown.substring(0,1) == '-'?'red':'green']">
35
+ <p class="bold ft24">{{newprice || '0.00'}}</p>
36
+ <p class="mt10">{{updown ||'0.00'}}%</p>
37
+ </div>
38
+ <div class="w50">
39
+ <div class="flex between mb5">
40
+ <span class="blue">{{translatedInfo.high || '--'}}</span>
41
+ <span class="blue white">{{maxprice || '0.00'}}</span>
42
+ </div>
43
+ <div class="flex between mb5">
44
+ <span class="blue">{{translatedInfo.low || '--'}}</span>
45
+ <span class="blue white">{{minprice ||'0.00'}}</span>
46
+ </div>
47
+ <div class="flex between">
48
+ <span class="blue">{{translatedInfo.volume || '--'}}</span>
49
+ <span class="blue white">{{dayvom ||'0.00'}}</span>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div id="tv_chart_container" style="width:100%;height:70vh;margin-top: 5px;"></div>
55
+ <div class="mt5 pb100 bgHeader dn">
56
+ <div class="plr10">
57
+ <div class="flex alcenter ptb5 ft12">
58
+ <div class="flex1 ">{{translatedInfo.num || '--'}}</div>
59
+ <div class="flex1 tc">{{translatedInfo.price || '--'}}</div>
60
+ <div class="flex1 tr">{{translatedInfo.time || '--'}}</div>
61
+ </div>
62
+ <div class="">
63
+ <div class="flex alcenter ptb5" :class="[item.way==1?'red':'green']" v-for="(item,i) in complete" :key="i">
64
+ <div class="flex1">{{item.number |fixed4}}</div>
65
+ <div class="flex1 tc">{{item.price}}</div>
66
+ <div class="flex1 tr">{{item.time.substr(11)}}</div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ <div class="flex between plr20 alcenter plr20 bgHeader fixed w100 pos_l0b0" style="height: 80px;">
72
+ <!-- <span>添加自选</span>
73
+ <img src="./images/collect.png" style="width: 20px;" id="noCollct" v-if="!hasCollcet" @click="triggerCollcet(true)">
74
+ <img src="./images/collect_active.png" style="width: 20px;" id="hasCollct" @click="triggerCollcet(false)" v-else > -->
75
+ <button class="goTranbuy bgRed flex1 ptb10 mr20 white radius4" @click="goTrade('buy')">{{translatedInfo.buy || '--'}}</button>
76
+ <button class="goTransell bgGreen flex1 ptb10 white radius4" @click="goTrade('sell')">{{translatedInfo.sell || '--'}}</button>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
81
+ <script src="lib/vue.min.js"></script>
82
+
83
+ <script src="lib/jquery.js"></script>
84
+ <!-- <script src="javascripts/jquery.cookie.js"></script> -->
85
+ <script src="lib/layer_mobile/layer.js"></script>
86
+ <script src="javascripts/main.js"></script>
87
+ <script src="javascripts/socket.io.js"></script>
88
+ <script src="tradeview/charting_library/charting_library.min.js"></script>
89
+ <script>
90
+ document.addEventListener('UniAppJSBridgeReady', function() {
91
+ // document.querySelector('.btn-list').addEventListener('click', function(evt) {
92
+ // uni.navigateBack({
93
+ // delta: 1
94
+ // });
95
+ // });
96
+ var vm = new Vue({
97
+ el: '#app',
98
+ data: {
99
+ widget: null,
100
+ symbolInfo: null,
101
+ feed: null,
102
+ wsEx: null,
103
+ ws: null,
104
+ lists: [],
105
+ newData: '',
106
+ symbol: '',
107
+ priceScale: 100000,
108
+ histime: '',
109
+ newprice: '0.00',
110
+ updown: '0.00',
111
+ maxprice: '0.00',
112
+ minprice: '0.00',
113
+ dayvom: '0.00',
114
+ currencyList: [],
115
+ couponSelected: '',
116
+ legal_id: '',
117
+ currency_id: '',
118
+ legal_name: '',
119
+ currency_name: '',
120
+ hasCollcet: '',
121
+ myid: '',
122
+ balance: '',
123
+ rates: '',
124
+ //websockUrl: 'wss://www.uniwallet.cc/ws',
125
+ websockUrl: 'wss://www.usdtlightningnetwork3.com/socket.io/?EIO=3&transport=websocket',
126
+ //websockUrl: 'http://119.23.234.255:2000/socket.io/?EIO=3&transport=polling&t=1679509387202-1',
127
+ url: 'https://www.usdtlightningnetwork3.com/',
128
+ complete: [],
129
+ transwords: {
130
+ zh: {
131
+ high: '高',
132
+ low: '低',
133
+ volume: '24H量',
134
+ num: '数量',
135
+ price: '价格',
136
+ time: '时间',
137
+ buy: '买入',
138
+ sell: '卖出',
139
+ },
140
+ en: {
141
+ high: 'high',
142
+ low: 'low',
143
+ volume: '24H volume',
144
+ num: 'number',
145
+ price: 'price',
146
+ time: 'time',
147
+ buy: 'buy',
148
+ sell: 'sell',
149
+ },
150
+ hk: {
151
+ high: '高',
152
+ low: '低',
153
+ volume: '24H量',
154
+ num: '數量',
155
+ price: '價格',
156
+ time: '時間',
157
+ buy: '買入',
158
+ sell: '賣出',
159
+ },
160
+ jp: {
161
+ high: '高さ',
162
+ low: '低い',
163
+ volume: '24 h量',
164
+ num: '数',
165
+ price: '価格',
166
+ time: '時間',
167
+ buy: '購入',
168
+ sell: '売却',
169
+ }
170
+ },
171
+ translatedInfo: {},
172
+ lang: '',
173
+ },
174
+ filters:{
175
+ fixed4:function(vals){
176
+ var values = iTofixed(vals,4);
177
+ return values;
178
+ }
179
+ },
180
+ created() {
181
+ var that = this;
182
+ if(window.plus){
183
+ that.lang = plus.storage.getItem('lang') || 'zh';
184
+ }else{
185
+ // that.lang = JSON.parse(localStorage.getItem('lang')).data;
186
+ that.lang = localStorage.getItem('lang') || 'zh';
187
+ }
188
+ var paramsed = get_all_params();
189
+ that.symbol = paramsed.symbol;
190
+ let c_name = paramsed.symbol.split('/')
191
+ that.legal_name = c_name[1];
192
+ that.currency_name = c_name[0];
193
+ that.legal_id = paramsed.legal_id;
194
+ that.currency_id = paramsed.currency_id;
195
+ // console.log(that.$t('market.volume'));
196
+ that.translatedInfo = that.transwords[that.lang];
197
+ console.log(that.translatedInfo);
198
+ // document.getElementById('mytitle').innerText='123';
199
+ // document.title = '123' ;
200
+ document.title = that.symbol;
201
+ if(window.plus){
202
+ if (!plus.storage.getItem('token')) {
203
+ uni.navigateTo({
204
+ url: '/pages/mine/login',
205
+
206
+ });
207
+ }
208
+ }else{
209
+ if (localStorage.getItem('token') == null || localStorage.getItem('token') == '') {
210
+ uni.navigateTo({
211
+ url: '/pages/mine/login',
212
+ });
213
+ }
214
+
215
+ }
216
+ // uni.setNavigationBarColor({
217
+ // frontColor: '#ffffff',
218
+ // backgroundColor: '#ff0000',})
219
+ // plus.navigator.setStatusBarStyle('black');
220
+ // plus.navigator.setStatusBarBackground('#102030');
221
+ that.getrate()
222
+ },
223
+ computed: {
224
+ listenState() { //监听交易对
225
+ return this.symbol;
226
+ }
227
+ },
228
+ watch: {
229
+ listenState: function(a, b) { //监听交易对
230
+ if (a != b && b != '') {
231
+ this.widget.setSymbol(a, localStorage.getItem('tim'), function onReadyCallback() {}) //切换币种
232
+ }
233
+ }
234
+ },
235
+ mounted() {
236
+ this.createWidget();
237
+ this.getComplete();
238
+ },
239
+ destroyed() {
240
+ this.removeWidget();
241
+ },
242
+ beforeDestroy() {
243
+
244
+ },
245
+ methods: {
246
+ getrate(){
247
+ let that = this;
248
+ console.log(that.legal_name);
249
+ console.log(that.currency_name);
250
+ initDataToken({
251
+ url: 'market/get_current',
252
+ //url: 'currency/quotation_new',
253
+ type: "post",
254
+ data:{
255
+ base_currency:that.currency_name,
256
+ quote_currency:that.legal_name,
257
+ period:'1day'
258
+ }
259
+ }, function (res) {
260
+ console.log(JSON.stringify(res));
261
+ that.updown = res.change
262
+ that.dayvom = Number(res.vol).toFixed(4)
263
+ that.maxprice = res.high
264
+ that.minprice = res.low
265
+ that.newprice = res.close
266
+
267
+ })
268
+ },
269
+ goback() {
270
+ if(window.plus){
271
+ uni.navigateBack({
272
+ delta: 1
273
+ });
274
+ }else{
275
+ history.back(-1);
276
+ }
277
+ },
278
+ goTrade(mytype) {
279
+ let localData = {
280
+ legal_name: this.legal_name,
281
+ legal_id: this.legal_id,
282
+ currency_name: this.currency_name,
283
+ currency_id: this.currency_id,
284
+ }
285
+ if(window.plus){
286
+ plus.storage.setItem('tradeData', JSON.stringify(localData));
287
+ plus.storage.setItem('tradeType', mytype);
288
+ }else{
289
+ localStorage.setItem('tradeData', JSON.stringify(localData));
290
+ localStorage.setItem('tradeType', mytype);
291
+ }
292
+ uni.switchTab({
293
+ //complete (e){console.log(e)},
294
+ url: '/pages/trade/trade'
295
+ })
296
+ },
297
+ getComplete() {
298
+ initDataToken({
299
+ url: 'transaction/deal',
300
+ //url: 'deal/info',
301
+ type: 'POST',
302
+ data: {
303
+ legal_id: this.legal_id,
304
+ currency_id: this.currency_id,
305
+ }
306
+ }, res => {
307
+ console.log('2023315')
308
+ console.log('transaction/deal123')
309
+ this.complete = res.complete;
310
+ this.completeSocket();
311
+ console.log(JSON.stringify(res.in))
312
+ //console.log(res)
313
+ })
314
+ },
315
+
316
+ // 收藏
317
+ triggerCollcet(e) {
318
+ // if(e){
319
+ // this.initDataToken({url:'quotation/collect',data:{match_id:this.myid},type:'POST'},(res)=>{
320
+ // alert(res);
321
+ // this.hasCollcet=true;
322
+ // })
323
+ // }else{
324
+ // this.initDataToken({url:'quotation/remove',data:{match_id:this.myid}},(res,msg)=>{
325
+ // this.hasCollcet=false;
326
+ // })
327
+ // }
328
+ },
329
+ timestampToTime(timestamp) {
330
+ // var time=''
331
+ // if(timestamp.length>11){
332
+ // time=timestamp
333
+ // }else{
334
+ // time=timestamp*1000
335
+ // }
336
+ // var now = new Date(time),
337
+ //    y = now.getFullYear(),
338
+ //    m = now.getMonth() + 1,
339
+ //    d = now.getDate();
340
+ //    return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
341
+ var time=''
342
+ if(timestamp.toString().length>11){
343
+ time=timestamp
344
+ }else{
345
+ time=timestamp*1000
346
+ }
347
+ var date = new Date(time); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
348
+ var Y = date.getFullYear() + '-';
349
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
350
+ var D = date.getDate() >= 10 ? date.getDate() + ' ' : ('0' + date.getDate()) + ' ';
351
+ var h = date.getHours() >= 10 ? date.getHours() + ':' : ('0' + date.getHours()) + ':';
352
+ var m = date.getMinutes() >= 10 ? date.getMinutes() + ':' : ('0' + date.getMinutes()) + ':';
353
+ var s = date.getSeconds() >= 10 ? date.getSeconds() : ('0' + date.getSeconds());
354
+ return Y + M + D + h + m + s;
355
+ },
356
+
357
+ // 默认
358
+ connect(real) { //封装推送数据
359
+ var that = this;
360
+ var websock = new WebSocket(that.websockUrl);
361
+ console.log(345);
362
+ websock.onopen = function() {
363
+ console.log(that.symbol);
364
+ websock.send(JSON.stringify({
365
+ "event": "sub",
366
+ params: "kline." + that.symbol
367
+ }))
368
+ websock.send(JSON.stringify({event: "sub", params: "daymarket"}))
369
+ }
370
+ websock.onmessage = function(msg) {
371
+ // console.log(msg.data);
372
+ // console.log(typeof msg.data)
373
+ var resmsg = JSON.parse(msg.data);
374
+ if (resmsg.type == 'kline') {
375
+ let obj = {}
376
+ let type = localStorage.getItem('type')
377
+ console.log(that.symbol );
378
+ console.log(resmsg.symbol)
379
+ if (that.symbol == resmsg.symbol) {
380
+ console.log(JSON.stringify(resmsg))
381
+
382
+ // if (resmsg.period == '1day') {
383
+ // that.newprice = resmsg.now_price
384
+ // that.maxprice = resmsg.high
385
+ // that.minprice = resmsg.low
386
+ // that.dayvom = Number(resmsg.volume).toFixed(4);
387
+ // that.updown = resmsg.change;
388
+ // }
389
+ if (resmsg.period == type) {
390
+ obj.open = Number(resmsg.open)
391
+ obj.low = Number(resmsg.low)
392
+ obj.high = Number(resmsg.high)
393
+ obj.close = Number(resmsg.close)
394
+ obj.volume = Number(resmsg.volume)
395
+ obj.time = Number(resmsg.time)
396
+ real(obj)
397
+ }
398
+ }
399
+ }
400
+
401
+ // console.log(JSON.stringify(resmsg))
402
+ if(resmsg.type=='daymarket'){
403
+ console.log(JSON.stringify(resmsg))
404
+ console.log(resmsg.symbol)
405
+ console.log(that.symbol)
406
+ if (that.symbol == resmsg.symbol) {
407
+ console.log('-------------------------')
408
+ if (resmsg.period == '1day') {
409
+ that.newprice = resmsg.now_price;
410
+ that.maxprice = resmsg.high;
411
+ that.minprice = resmsg.low;
412
+ that.dayvom = Number(resmsg.volume).toFixed(4);
413
+ that.updown = resmsg.change;
414
+ }
415
+
416
+ }
417
+ }
418
+ }
419
+ },
420
+ // 币币交易全站交易WebSocket
421
+ completeSocket() { //封装推送数据
422
+ var that = this;
423
+ var websock = new WebSocket(that.websockUrl);
424
+ console.log(408);
425
+ if(window.plus){
426
+ var tokens = plus.storage.getItem('token');
427
+ console.log(tokens)
428
+ }else{
429
+ // var tokens = JSON.parse(localStorage.getItem('token')).data;
430
+ var tokens = localStorage.getItem('token');
431
+ }
432
+ websock.onopen = function() {
433
+ console.log('Socket已连接--------->>>>')
434
+ websock.send(JSON.stringify({
435
+ event: "sub",
436
+ params: "match_trade." + that.symbol
437
+ }))
438
+
439
+ }
440
+ websock.onmessage = function(msg) {
441
+ var msg = JSON.parse(msg.data);
442
+ if (msg.type == 'match_trade') {
443
+ if (that.symbol == msg.symbol) {
444
+ var times = that.timestampToTime(msg.data[0].ts)
445
+ var way;
446
+ msg.data[0].direction == 'buy' ? way = 1 : way = 2;
447
+ var data = {
448
+ price: msg.data[0].price,
449
+ time: times,
450
+ number: msg.data[0].amount,
451
+ way: way
452
+ }
453
+ that.complete.unshift(data);
454
+
455
+ if (that.complete.length > 20) {
456
+ that.complete.pop()
457
+ }
458
+ }
459
+
460
+ }
461
+ }
462
+ },
463
+ createWidget() {
464
+ let _this = this;
465
+ this.$nextTick(function() {
466
+ let widget = _this.widget = new TradingView.widget({
467
+ symbol: _this.symbol,
468
+ interval: 1,
469
+ debug: true,
470
+ fullscreen: false,
471
+ autosize: true,
472
+ container_id: "tv_chart_container",
473
+ // datafeed: new Datafeeds.UDFCompatibleDatafeed("http://demo_feed.tradingview.com"),
474
+ datafeed: _this.createFeed(),
475
+ library_path: "tradeview/charting_library/",
476
+ custom_css_url: 'bundles/new.css',
477
+ locale: _this.lang,
478
+ width: "100%",
479
+ height: 516,
480
+ drawings_access: {
481
+ type: 'black',
482
+ tools: [{
483
+ name: "Regression Trend"
484
+ }]
485
+ },
486
+ disabled_features: [ // 禁用的功能
487
+ 'left_toolbar', 'widget_logo', 'header_saveload', 'compare_symbol', 'display_market_status',
488
+ 'go_to_date', 'header_chart_type', 'header_compare', 'header_interval_dialog_button',
489
+ 'header_resolutions', 'header_screenshot', 'header_symbol_search', 'header_undo_redo',
490
+ 'legend_context_menu', 'show_hide_button_in_legend', 'show_interval_dialog_on_key_press',
491
+ 'snapshot_trading_drawings', 'symbol_info', 'timeframes_toolbar', 'use_localstorage_for_settings',
492
+ 'volume_force_overlay'
493
+ ],
494
+ enabled_features: [ // 启用的功能(备注:disable_resolution_rebuild 功能用于控制当时间范围为1个月时,日期刻度是否都是每个月1号
495
+ 'dont_show_boolean_study_arguments', 'hide_last_na_study_output', 'move_logo_to_main_pane',
496
+ 'same_data_requery', 'side_toolbar_in_fullscreen_mode', 'disable_resolution_rebuild'
497
+ ],
498
+ charts_storage_url: 'http://saveload.tradingview.com',
499
+ charts_storage_api_version: "1.1",
500
+ toolbar_bg: "transparent",
501
+ timezone: "Asia/Shanghai",
502
+ studies_overrides: {
503
+ 'volume.precision': '1000'
504
+ },
505
+ overrides: _this.overrides()
506
+ });
507
+
508
+ widget.MAStudies = [];
509
+ widget.selectedIntervalButton = null;
510
+ // widget.setLanguage('en')
511
+ widget.onChartReady(function() { //图表方法
512
+ // document.getElementById('trade-view').childNodes[0].setAttribute('style', 'display:block;width:100%;height:100%;');
513
+ //let that =this
514
+
515
+ widget.chart().createStudy('Moving Average', false, true, [15, 'close', 0], null, {
516
+ 'Plot.color': '#e843da'
517
+ });
518
+ // widget.chart().createStudy("MA Cross", false, false, [10, 20]);
519
+
520
+ let buttonArr = [{
521
+ value: "1min",
522
+ period: "1",
523
+ text: "Time",
524
+ chartType: 3,
525
+ type: "1min"
526
+ },
527
+ {
528
+ value: "1",
529
+ period: "1m",
530
+ text: "1min",
531
+ chartType: 1,
532
+ type: "1min"
533
+ },
534
+ {
535
+ value: "5",
536
+ period: "5m",
537
+ text: "5min",
538
+ chartType: 1,
539
+ type: "5min"
540
+ },
541
+ {
542
+ value: "30",
543
+ period: "30m",
544
+ text: "30min",
545
+ chartType: 1,
546
+ type: "30min"
547
+ },
548
+ {
549
+ value: "60",
550
+ period: "60分钟",
551
+ text: "1hour",
552
+ chartType: 1,
553
+ type: "60min"
554
+ },
555
+ {
556
+ value: "1D",
557
+ period: "1D",
558
+ text: "1day",
559
+ chartType: 1,
560
+ type: "1day"
561
+ },
562
+ {
563
+ value: "1W",
564
+ period: "1W",
565
+ text: "1week",
566
+ chartType: 1,
567
+ type: "1week"
568
+ },
569
+ {
570
+ value: "1M",
571
+ period: "1M",
572
+ text: "1mon",
573
+ chartType: 1,
574
+ type: "1mon"
575
+ }
576
+ ];
577
+ let btn = {};
578
+ let nowTime = '';
579
+ buttonArr.forEach((v, i) => {
580
+ let button = widget.createButton()
581
+ button.attr('title', v.text)
582
+ .addClass("my2")
583
+ .text(v.text)
584
+
585
+ if (v.text == '1min') {
586
+ button.css({
587
+ 'color': '#218bde',
588
+ 'border-bottom': '1px solid #218bde'
589
+ })
590
+ localStorage.setItem('tim', '1min') //默认为1分钟
591
+ localStorage.setItem('type', '1min') //默认为1分钟
592
+ }
593
+ btn = button.on("click", function(e) {
594
+ $(this).parents(".left").children().find(".my2").removeAttr("style"); //去掉1分钟的
595
+ handleClick(e, v.value, v.type);
596
+
597
+ widget.chart().setChartType(v.chartType); //改变K线类型
598
+ });
599
+
600
+
601
+ });
602
+ if (localStorage.getItem('tim') == '1min') {
603
+ widget.chart().setChartType(1);
604
+ }
605
+ let handleClick = (e, value, type) => {
606
+ _this.setSymbol = function(symbol, value) {
607
+ gh.chart().setSymbol(symbol, value);
608
+ };
609
+ localStorage.setItem('tim', value);
610
+ localStorage.setItem('type', type) //默认为1分钟
611
+ widget.chart().setResolution(value, function onReadyCallback() {}); //改变分辨率
612
+
613
+ $(e.target)
614
+ .addClass("mydate")
615
+ .closest("div.space-single")
616
+ .siblings("div.space-single")
617
+ .find("div.button")
618
+ .removeClass("mydate")
619
+ };
620
+ });
621
+ _this.widget = widget;
622
+ })
623
+ },
624
+ createFeed() {
625
+ let this_vue = this;
626
+ let Datafeed = {};
627
+ Datafeed.DataPulseUpdater = function(datafeed, updateFrequency) {
628
+ this._datafeed = datafeed;
629
+ this._subscribers = {};
630
+
631
+ this._requestsPending = 0;
632
+ var that = this;
633
+
634
+ var update = function() {
635
+ if (that._requestsPending > 0) {
636
+ return;
637
+ }
638
+
639
+ for (var listenerGUID in that._subscribers) {
640
+ var subscriptionRecord = that._subscribers[listenerGUID];
641
+ var resolution = subscriptionRecord.resolution;
642
+
643
+ var datesRangeRight = parseInt((new Date().valueOf()) / 1000);
644
+
645
+
646
+ // BEWARE: please note we really need 2 bars, not the only last one
647
+ // see the explanation below. `10` is the `large enough` value to work around holidays
648
+ var datesRangeLeft = datesRangeRight - that.periodLengthSeconds(resolution, 10);
649
+
650
+ that._requestsPending++;
651
+
652
+ (function(_subscriptionRecord) { // eslint-disable-line
653
+ that._datafeed.getBars(_subscriptionRecord.symbolInfo, resolution, datesRangeLeft, datesRangeRight,
654
+ function(bars) {
655
+ that._requestsPending--;
656
+
657
+ // means the subscription was cancelled while waiting for data
658
+ if (!that._subscribers.hasOwnProperty(listenerGUID)) {
659
+ return;
660
+ }
661
+
662
+ if (bars.length === 0) {
663
+ return;
664
+ }
665
+
666
+ var lastBar = bars[bars.length - 1];
667
+ if (!isNaN(_subscriptionRecord.lastBarTime) && lastBar.time < _subscriptionRecord.lastBarTime) {
668
+ return;
669
+ }
670
+
671
+ var subscribers = _subscriptionRecord.listeners;
672
+
673
+ // BEWARE: this one isn't working when first update comes and this update makes a new bar. In this case
674
+ // _subscriptionRecord.lastBarTime = NaN
675
+ var isNewBar = !isNaN(_subscriptionRecord.lastBarTime) && lastBar.time > _subscriptionRecord.lastBarTime;
676
+
677
+ // Pulse updating may miss some trades data (ie, if pulse period = 10 secods and new bar is started 5 seconds later after the last update, the
678
+ // old bar's last 5 seconds trades will be lost). Thus, at fist we should broadcast old bar updates when it's ready.
679
+ if (isNewBar) {
680
+ if (bars.length < 2) {
681
+ throw new Error('Not enough bars in history for proper pulse update. Need at least 2.');
682
+ }
683
+
684
+ var previousBar = bars[bars.length - 2];
685
+ for (var i = 0; i < subscribers.length; ++i) {
686
+ subscribers[i](previousBar);
687
+ }
688
+ }
689
+
690
+ _subscriptionRecord.lastBarTime = lastBar.time;
691
+
692
+ for (var i = 0; i < subscribers.length; ++i) {
693
+ subscribers[i](lastBar);
694
+ }
695
+ },
696
+
697
+ // on error
698
+ function() {
699
+ that._requestsPending--;
700
+ });
701
+ })(subscriptionRecord);
702
+ }
703
+ };
704
+
705
+ if (typeof updateFrequency != 'undefined' && updateFrequency > 0) {
706
+ setInterval(update, updateFrequency);
707
+ }
708
+ };
709
+
710
+ Datafeed.DataPulseUpdater.prototype.periodLengthSeconds = function(resolution, requiredPeriodsCount) {
711
+ var daysCount = 0;
712
+
713
+ if (resolution === 'D') {
714
+ daysCount = requiredPeriodsCount;
715
+ } else if (resolution === 'M') {
716
+ daysCount = 31 * requiredPeriodsCount;
717
+ } else if (resolution === 'W') {
718
+ daysCount = 7 * requiredPeriodsCount;
719
+ } else {
720
+ daysCount = requiredPeriodsCount * resolution / (24 * 60);
721
+ }
722
+
723
+ return daysCount * 24 * 60 * 60;
724
+ };
725
+
726
+ Datafeed.DataPulseUpdater.prototype.subscribeDataListener = function(symbolInfo, resolution, newDataCallback,
727
+ listenerGUID) {
728
+ this._datafeed._logMessage('Subscribing ' + listenerGUID);
729
+
730
+ if (!this._subscribers.hasOwnProperty(listenerGUID)) {
731
+ this._subscribers[listenerGUID] = {
732
+ symbolInfo: symbolInfo,
733
+ resolution: resolution,
734
+ lastBarTime: NaN,
735
+ listeners: []
736
+ };
737
+ }
738
+
739
+ this._subscribers[listenerGUID].listeners.push(newDataCallback);
740
+ };
741
+
742
+ Datafeed.DataPulseUpdater.prototype.unsubscribeDataListener = function(listenerGUID) {
743
+ this._datafeed._logMessage('Unsubscribing ' + listenerGUID);
744
+ delete this._subscribers[listenerGUID];
745
+ };
746
+
747
+ Datafeed.Container = function(updateFrequency) {
748
+ this._configuration = {
749
+ supports_search: false,
750
+ supports_group_request: false,
751
+ supported_resolutions: ['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', '1D', '3D', '1W',
752
+ '1M'
753
+ ],
754
+ supports_marks: true,
755
+ supports_timescale_marks: true,
756
+ exchanges: ['gh']
757
+ };
758
+
759
+ // this._barsPulseUpdater = new Datafeed.DataPulseUpdater(this, updateFrequency || 10 * 1000);
760
+ this._barsPulseUpdater = new Datafeed.DataPulseUpdater(this, updateFrequency || 1 * 1000);
761
+ // this._quotesPulseUpdater = new Datafeed.QuotesPulseUpdater(this);
762
+
763
+ this._enableLogging = true;
764
+ this._callbacks = {};
765
+
766
+ this._initializationFinished = true;
767
+ this._fireEvent('initialized');
768
+ this._fireEvent('configuration_ready');
769
+ };
770
+
771
+ Datafeed.Container.prototype._fireEvent = function(event, argument) {
772
+ if (this._callbacks.hasOwnProperty(event)) {
773
+ var callbacksChain = this._callbacks[event];
774
+ for (var i = 0; i < callbacksChain.length; ++i) {
775
+ callbacksChain[i](argument);
776
+ }
777
+
778
+ this._callbacks[event] = [];
779
+ }
780
+ };
781
+
782
+ Datafeed.Container.prototype._logMessage = function(message) {
783
+ if (this._enableLogging) {
784
+ var now = new Date();
785
+ }
786
+ };
787
+
788
+ Datafeed.Container.prototype.on = function(event, callback) {
789
+ if (!this._callbacks.hasOwnProperty(event)) {
790
+ this._callbacks[event] = [];
791
+ }
792
+
793
+ this._callbacks[event].push(callback);
794
+ return this;
795
+ };
796
+
797
+ Datafeed.Container.prototype.onReady = function(callback) {
798
+ let that = this;
799
+ if (this._configuration) {
800
+ setTimeout(function() {
801
+ callback(that._configuration);
802
+ }, 0);
803
+ } else {
804
+ this.on('configuration_ready', function() {
805
+ callback(that._configuration);
806
+ });
807
+ }
808
+ };
809
+
810
+ Datafeed.Container.prototype.resolveSymbol = function(symbolName, onSymbolResolvedCallback,
811
+ onResolveErrorCallback) {
812
+ this._logMessage("GOWNO :: resolve symbol " + symbolName);
813
+ Promise.resolve().then(() => {
814
+
815
+
816
+ // this._logMessage("GOWNO :: onResultReady inject "+'AAPL');
817
+ onSymbolResolvedCallback({
818
+ "name": this_vue.symbol,
819
+ "timezone": "Asia/Shanghai",
820
+ "pricescale": this_vue.priceScale,
821
+ "minmov": 1, //minmov(最小波动), pricescale(价格精度), minmove2, fractional(分数)
822
+ "minmov2": 0, //这是一个神奇的数字来格式化复杂情况下的价格。
823
+ "ticker": this_vue.symbol,
824
+ "description": "",
825
+ "type": "bitcoin",
826
+ "volume_precision": 8,
827
+ // "exchange-traded": "sdt",
828
+ // "exchange-listed": "sdt",
829
+ //现在,这两个字段都为某个交易所的略称。将被显示在图表的图例中,以表示此商品。目前此字段不用于其他目的。
830
+ "has_intraday": true,
831
+ "has_weekly_and_monthly": true,
832
+ "has_no_volume": false, //布尔表示商品是否拥有成交量数据。
833
+ 'session': '24x7',
834
+ 'supported_resolutions': ['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', '1D', '3D',
835
+ '1W',
836
+ '1M'
837
+ ]
838
+
839
+ });
840
+ })
841
+ };
842
+
843
+
844
+ //初始化数据
845
+ Datafeed.Container.prototype.getBars = function(symbolInfo, resolution, rangeStartDate, rangeEndDate,
846
+ onHistoryCallback, onErrorCallback) {
847
+ // if (rangeStartDate > 0 && (rangeStartDate + '').length > 10) {
848
+ // throw new Error(['Got a JS time instead of Unix one.', rangeStartDate, rangeEndDate]);
849
+ // }
850
+
851
+ if (resolution.indexOf('D') == -1 && resolution.indexOf('W') == -1 && resolution.indexOf('M') == -1) {
852
+ resolution = resolution + 'min'
853
+ } else if (resolution.indexOf('W') != -1 || resolution.indexOf('M') != -1) {
854
+ resolution = resolution
855
+ }
856
+ // console.log(rangeStartDate);
857
+ // console.log(rangeEndDate)
858
+ // console.log(resolution);
859
+ // console.log(symbolInfo.name)
860
+ $.ajax({
861
+ url: this_vue.url + 'api/currency/new_timeshar?' + 'from=' + rangeStartDate + '&to=' + rangeEndDate +
862
+ '&symbol=' + symbolInfo.name + '&period=' + resolution,
863
+ type: 'get',
864
+ success: function(res) {
865
+ // console.log(res.data)
866
+ // console.log(JSON.stringify(res))
867
+ if (res.code == 1 && res.data && res.data.length > 0) {
868
+ res.data.forEach((item, i) => {
869
+ item.open = Number(item.open)
870
+ item.close = Number(item.close)
871
+ item.high = Number(item.high)
872
+ item.low = Number(item.low)
873
+ // if(len==i){
874
+ // console.log(i)
875
+ // this_vue.newprice = item.close - 0
876
+ // this_vue.maxprice = item.high - 0
877
+ // this_vue.minprice = item.low - 0
878
+ // this_vue.dayvom = Number(item.vol).toFixed(2);
879
+ // this_vue.updown = ((item.close - item.open) / (item.open - 0) * 100).toFixed(4).toString();
880
+ // }
881
+ })
882
+ onHistoryCallback(res.data, {
883
+ noData: false
884
+ })
885
+ onHistoryCallback([], {
886
+ noData: true
887
+ })
888
+
889
+ }
890
+ if (!res.data || res.code == -1) {
891
+ onHistoryCallback([], {
892
+ noData: true
893
+ })
894
+ }
895
+ if (res.data && res.data.length == 0) {
896
+ onHistoryCallback([], {
897
+ noData: true
898
+ })
899
+ }
900
+
901
+ }
902
+ })
903
+
904
+ };
905
+ //实时数据
906
+ Datafeed.Container.prototype.subscribeBars = function(symbolInfo, resolution, onRealtimeCallback,
907
+ listenerGUID,
908
+ onResetCacheNeededCallback) {
909
+ this_vue.connect(onRealtimeCallback)
910
+
911
+ this._barsPulseUpdater.subscribeDataListener(symbolInfo, resolution, onRealtimeCallback, listenerGUID, onResetCacheNeededCallback);
912
+ };
913
+
914
+ Datafeed.Container.prototype.unsubscribeBars = function(listenerGUID) {
915
+
916
+ this._barsPulseUpdater.unsubscribeDataListener(listenerGUID);
917
+
918
+ };
919
+
920
+ return new Datafeed.Container;
921
+ },
922
+
923
+ updateWidget(item) {
924
+ this.symbolInfo = {
925
+ name: item,
926
+ ticker: item,
927
+ description: "",
928
+ session: "24x7",
929
+ supported_resolutions: ['1', '5', '30', '60', '240', '1D', '3D', '1W', '1M'],
930
+ has_intraday: true,
931
+ has_daily: true,
932
+ has_weekly_and_monthly: true,
933
+ timezone: "UTC",
934
+ }
935
+ this.removeWidget();
936
+ this.createWidget();
937
+ },
938
+ removeWidget() {
939
+ if (this.widget) {
940
+ this.widget.remove();
941
+ this.widget = null;
942
+ }
943
+ },
944
+ overrides() {
945
+ let style = {
946
+ up: "#02C289",
947
+ down: "#e86d43",
948
+ bg: "#131f30",
949
+ grid: "#1E2740",
950
+ cross: "#1E2740",
951
+ border: "#4e5b85",
952
+ text: "#61688A",
953
+ areatop: "rgba(122, 152, 247, .1)",
954
+ areadown: "rgba(122, 152, 247, .02)"
955
+ };
956
+ return {
957
+ 'volumePaneSize': "small", //large, medium, small, tiny
958
+ 'paneProperties.topMargin': '20',
959
+ "scalesProperties.lineColor": style.bg,
960
+ "scalesProperties.textColor": style.text,
961
+ "paneProperties.background": style.bg, //改变背景色的重要代码
962
+ "paneProperties.vertGridProperties.color": style.grid,
963
+ "paneProperties.horzGridProperties.color": style.grid,
964
+ "paneProperties.crossHairProperties.color": style.cross,
965
+ "paneProperties.legendProperties.showLegend": true,
966
+ "paneProperties.legendProperties.showStudyArguments": true,
967
+ "paneProperties.legendProperties.showStudyTitles": true,
968
+ "paneProperties.legendProperties.showStudyValues": true,
969
+ "paneProperties.legendProperties.showSeriesTitle": true,
970
+ "paneProperties.legendProperties.showSeriesOHLC": true,
971
+ "mainSeriesProperties.candleStyle.upColor": style.up,
972
+ "mainSeriesProperties.candleStyle.downColor": style.down,
973
+ "mainSeriesProperties.candleStyle.drawWick": true,
974
+ "mainSeriesProperties.candleStyle.drawBorder": true,
975
+ "mainSeriesProperties.candleStyle.borderColor": style.border,
976
+ "mainSeriesProperties.candleStyle.borderUpColor": style.up,
977
+ "mainSeriesProperties.candleStyle.borderDownColor": style.down,
978
+ "mainSeriesProperties.candleStyle.wickUpColor": style.up,
979
+ "mainSeriesProperties.candleStyle.wickDownColor": style.down,
980
+ "mainSeriesProperties.candleStyle.barColorsOnPrevClose": false,
981
+ "mainSeriesProperties.hollowCandleStyle.upColor": style.up,
982
+ "mainSeriesProperties.hollowCandleStyle.downColor": style.down,
983
+
984
+ "mainSeriesProperties.hollowCandleStyle.drawWick": true,
985
+ "mainSeriesProperties.hollowCandleStyle.drawBorder": true,
986
+ "mainSeriesProperties.hollowCandleStyle.borderColor": style.border,
987
+ "mainSeriesProperties.hollowCandleStyle.borderUpColor": style.up,
988
+ "mainSeriesProperties.hollowCandleStyle.borderDownColor": style.down,
989
+ "mainSeriesProperties.hollowCandleStyle.wickColor": style.line,
990
+ "mainSeriesProperties.haStyle.upColor": style.up,
991
+ "mainSeriesProperties.haStyle.downColor": style.down,
992
+ "mainSeriesProperties.haStyle.drawWick": true,
993
+ "mainSeriesProperties.haStyle.drawBorder": true,
994
+ "mainSeriesProperties.haStyle.borderColor": style.border,
995
+ "mainSeriesProperties.haStyle.borderUpColor": style.up,
996
+ "mainSeriesProperties.haStyle.borderDownColor": style.down,
997
+ "mainSeriesProperties.haStyle.wickColor": style.border,
998
+ "mainSeriesProperties.haStyle.barColorsOnPrevClose": false,
999
+ "mainSeriesProperties.barStyle.upColor": style.up,
1000
+ "mainSeriesProperties.barStyle.downColor": style.down,
1001
+ "mainSeriesProperties.barStyle.barColorsOnPrevClose": false,
1002
+ "mainSeriesProperties.barStyle.dontDrawOpen": false,
1003
+ "mainSeriesProperties.lineStyle.color": style.border,
1004
+ "mainSeriesProperties.lineStyle.linewidth": 1,
1005
+ "mainSeriesProperties.lineStyle.priceSource": "close",
1006
+ "mainSeriesProperties.areaStyle.color1": style.areatop,
1007
+ "mainSeriesProperties.areaStyle.color2": style.areadown,
1008
+ "mainSeriesProperties.areaStyle.linecolor": style.borders,
1009
+ "mainSeriesProperties.areaStyle.linewidth": 1,
1010
+ "mainSeriesProperties.areaStyle.priceSource": "close"
1011
+ }
1012
+ },
1013
+ chose() {
1014
+ this.widget.setLanguage('en') //设置语言
1015
+ }
1016
+ },
1017
+ })
1018
+ })
1019
+ </script>
1020
+ </body>
1021
+
1022
+ </html>
hybrid/html/index01.html ADDED
@@ -0,0 +1,2492 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title> </title>
8
+ <link rel="stylesheet" href="css/common.css">
9
+ <link rel="stylesheet" href="css/dataMap.css">
10
+ </head>
11
+ <style>
12
+ [v-cloak]{
13
+ display: none !important;
14
+ }
15
+ </style>
16
+ <body>
17
+ <!-- <div class="h20 bgHeader"></div> -->
18
+ <div id="app" v-cloak class="bgBalck">
19
+ <div class="header plr15 flex alcenter bgHeader white fixed pt30">
20
+ <img src="../../static/image/return.png" class="h15 wt15 mr10" @click="goback" />
21
+ <div class="flex alcenter" @click="showLeft">
22
+ <img src="../../static/image/lists.png" style="width: 20px;">
23
+ <span class="white ft18 bold pl10">{{symbol}}</span>
24
+ </div>
25
+
26
+ <div class="flex alcenter gray7 all" @click="toTrade">
27
+ <img src="../../static/image/all.png" class="h20 wt20 ml5"></img>
28
+ <span url="entrust">{{trade[lang].all}}</span>
29
+ </div>
30
+ </div>
31
+ <div>
32
+ <div class="pt60 pb10 plr20 bgHeader" style="min-height: 50px;">
33
+ <div class="flex alcenter between pt5">
34
+ <div class="tc" :class="[updown.substring(0,1) == '-'?'red':'green']">
35
+ <p class="bold ft24 getlists_close">{{newprice || '0.00'}}</p>
36
+ <!-- <p class="mt10 ">{{updown}}%</p> -->
37
+ </div>
38
+ <div class="w50">
39
+ <div class="flex between mb5">
40
+ <span class="blue">{{translatedInfo.high || '--'}}</span>
41
+ <span class="blue white getlists_high">{{maxprice || '0.00'}}</span>
42
+ </div>
43
+ <div class="flex between mb5">
44
+ <span class="blue">{{translatedInfo.low || '--'}}</span>
45
+ <span class="blue white getlists_low">{{minprice ||'0.00'}}</span>
46
+ </div>
47
+ <div class="flex between">
48
+ <span class="blue">{{translatedInfo.volume || '--'}}</span>
49
+ <span class="blue white maxdayvom">{{dayvom ||'0.00'}}</span>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div id="tv_chart_container" style="width:100%;height:70vh;margin-top: 5px;"></div>
55
+ <!--订单列表 -->
56
+ <div class="order-list dn">
57
+ <div class="flex order-list-header between">
58
+ <p class="tc" :class="[{'active':status == 1}]" @click="selectOrder(1)" data-localize="contract.positionList">{{texts[lang].list}}</p>
59
+ <p class="tc" :class="[{'active':status == 3}]" @click="selectOrder(3)" data-localize="td.drecord">{{texts[lang].record}}</p>
60
+ </div>
61
+ <p v-show="false">{{CountDown}}</p>
62
+ <ul class="lists">
63
+ <li class="flex between ft10">
64
+ <p data-localize="assets.num">{{texts[lang].num}}</p>
65
+ <p data-localize="contract.purchasePrice">{{texts[lang].buyprice}}</p>
66
+ <p v-show="status == 1" data-localize="deals.nowprice">{{texts[lang].nowprice}}</p>
67
+ <p v-show="status == 3" data-localize="contract.transactionPrice">{{texts[lang].okprice}}</p>
68
+ <p v-show="status == 1" data-localize="contract.estimated">{{texts[lang].estimate}}</p>
69
+ <p v-show="status == 1" data-localize="contract.countDown">{{texts[lang].count}}</p>
70
+ <p v-show="status == 3" data-localize="deals.fee">{{texts[lang].handrate}}</p>
71
+ <p v-show="status == 3" data-localize="contract.profitAndLoss">{{texts[lang].profit}}</p>
72
+ </li>
73
+ <li
74
+ v-if="orderList.length > 0 && item.remain_milli_seconds >0 && status==1 || status ==3 && orderList.length >0"
75
+ v-for="(item,index) in orderList" :key="item.id" class="flex between ft10">
76
+ <!-- 数量 -->
77
+ <!-- <p v-if="item.is_insurance == 1">{{item.number || '0' | toFixedNum}}{{item.currency_name}}{{getlg('just')}}</p>
78
+ <p v-else-if="item.is_insurance == 2">{{item.number || '0' | toFixedNum}}{{item.currency_name}}{{getlg('back')}}</p> -->
79
+ <p>{{item.number || '0' | toFixedNum}}{{item.currency_name}}</p>
80
+ <!-- 购买价 -->
81
+ <p>{{item.open_price || '0.00' | toFixed4}}
82
+ <img v-if="item.type == 1" width="10" src="./image/buy.png" alt="">
83
+ <img v-else width="10" src="./image/sell.png" alt="">
84
+ </p>
85
+ <!-- 当前价 -->
86
+ <p v-if="status == 1&&item.status == 1" class="newprice">{{newprice || '0.00' | toFixed4}}</p>
87
+ <!-- 成交价 -->
88
+ <p v-if="status == 1&&item.status == 3">{{item.end_price || '0.00' | toFixed4}}</p>
89
+ <p v-if="status == 3&&item.remain_milli_seconds>0">--</p>
90
+ <p v-if="status == 3&&item.remain_milli_seconds<=0">{{item.end_price || '0.00' | toFixed4}}</p>
91
+ <p v-if="status == 1&&item.status == 1 && (item.open_price -0) == (newprice -0)" class="green">0</p>
92
+ <p v-if="status == 1&&item.status == 1 && item.type == 1 && (item.open_price -0) > (newprice -0)" class="red">
93
+ -{{item.number || '0' | toFixedNum}}</p>
94
+ <p v-if="status == 1&&item.status == 1 && item.type == 1 && (item.open_price -0) < (newprice -0)" class="green">
95
+ {{(item.number * item.profit_ratio -0) /100 || '0.00' | toFixedNum}}</p>
96
+ <p v-if="status == 1&&item.status == 1 && item.type == 2 && (item.open_price -0) > (newprice -0)" class="green">
97
+ {{(item.number * item.profit_ratio -0) /100 || '0.00' | toFixedNum}}</p>
98
+ <p v-if="status == 1&&item.status == 1 && item.type == 2 && (item.open_price -0) < (newprice -0)" class="red">
99
+ -{{(item.number -0) || '0.00' | toFixedNum}}</p>
100
+ <p v-if="status == 1&&item.status == 3" :class="item.fact_profits >= 0?'green':'red'">{{item.fact_profits || '0' | toFixedNum}}</p>
101
+ <p v-if="status == 1&&item.status == 1" class="times">
102
+ {{countDown(item.endTime,index,item.seconds,item.remain_milli_seconds,item.id)}}s</p>
103
+ <p v-if="status == 1&&item.status == 3" class="times">0.0s</p>
104
+ <p v-if="status == 3&&item.remain_milli_seconds>0">--</p>
105
+ <p v-if="status == 3&&item.remain_milli_seconds<=0">{{item.fee || '0.00' | toFixed1}}</p>
106
+ <p v-if="status == 3&&item.remain_milli_seconds>0">--</p>
107
+ <p v-if="status == 3&&item.remain_milli_seconds<=0" :class="item.fact_profits >= 0?'green':'red'">
108
+ {{item.fact_profits || '0' | toFixedNum}}</p>
109
+ <!-- <p v-if="item.status == 3">{{item.fact_profits || '0' | toFixedNum}}</p> -->
110
+ </li>
111
+ </ul>
112
+ <div v-if="orderList.length == 0" class="tc mt10" data-localize="transaction.nodata">{{texts[lang].norecord}}</div>
113
+ <div v-if="orderList.length>0 && hasmore" class="tc mt10" @click="getmore">{{texts[lang].more}}</div>
114
+ <div v-if="orderList.length>0 && !hasmore" class="tc mt10">{{texts[lang].nomore}}</div>
115
+ </div>
116
+ <div style="height:160px;"></div>
117
+ <!-- 底部 -->
118
+ <div id="bottom" class="flex between">
119
+ <div class="flex bottom-left between" @click="slectedTime()">
120
+ <div class="tc">
121
+ <p data-localize="assets.num">{{texts[lang].num}}</p>
122
+ <p class="ftColor">{{inputValue || '0.00' | toFixedNum}}</p>
123
+ </div>
124
+ <div class="tc">
125
+ <p data-localize="assets.time">{{texts[lang].time}}</p>
126
+ <p class="ftColor">{{seconds || '00'}}s</p>
127
+ </div>
128
+ <div class="tc">
129
+ <p data-localize="contract.profitRate">{{texts[lang].rate}}</p>
130
+ <p class="ftColor">{{profitRatio || '00' | toFixedNum}}%</p>
131
+ </div>
132
+ <div class="logo-down">
133
+ <img src="../../static/image/downs.png" alt="">
134
+ </div>
135
+ </div>
136
+ <div class="flex">
137
+ <!-- <button class="second-buy" @click="buyModal(1)" data-localize="contract.buyUp">{{texts[lang].up}}</button>
138
+ <button class="second-sell" @click="buyModal(2)" data-localize="contract.buyAll">{{texts[lang].down}}</button> -->
139
+ <!-- <button class="second-buy" @click="slectedTime()" data-localize="contract.buyUp">{{texts[lang].up}}</button>
140
+ <button class="second-sell" @click="slectedTime()" data-localize="contract.buyAll">{{texts[lang].down}}</button> -->
141
+ <button class="second-buy" @click="slectedTime()" data-localize="contract.buyUp">{{texts[lang].contracts}}</button>
142
+ <!-- <button class="second-sell" @click="slectedTime()" data-localize="contract.buyAll">{{texts[lang].sell}}</button> -->
143
+ </div>
144
+ </div>
145
+ <!-- <div class="flex between plr20 alcenter plr20 bgHeader fixed w100 pos_l0b0" style="height: 80px;">
146
+ <button class="goTranbuy bgRed flex1 ptb10 mr20 white radius4" @click="goTrade('buy')">{{translatedInfo.buy || '--'}}</button>
147
+ <button class="goTransell bgGreen flex1 ptb10 white radius4" @click="goTrade('sell')">{{translatedInfo.sell || '--'}}</button>
148
+ </div> -->
149
+ </div>
150
+ <div id="sideColumn" class="bgBlackColor">
151
+ <div class="ft20 bold bdbs pl20 texts-lever" data-localize="contract.secondContract">{{translatedInfo.micro}}</div>
152
+ <!-- <div class="flex alcenter between ptb20 plr20 bdbs">
153
+ <div class="ft18 bold" :class="{'blue2':topnow==1}" @click="changeTop(1)">{{texts[lang].all}}</div>
154
+ <div class="ft18 bold" :class="{'blue2':topnow==2}" @click="changeTop(2)">{{texts[lang].main}}</div>
155
+ <div class="ft18 bold" :class="{'blue2':topnow==3}" @click="changeTop(3)">{{texts[lang].lever}}</div>
156
+ </div> -->
157
+ <div class="flex alcenter plr20 bdbs bdbs">
158
+ <div class="ptb10 ft16 bold" :class="{'blue2':isActive==i}" v-for="(item,i) in currencyList" :key="i" @click="changeTab(i,item.name)">
159
+ <div class="mr20">{{item.name}}</div>
160
+ </div>
161
+ </div>
162
+ <ul class="ul">
163
+ <li v-for="item in currencyList[isActive].quotation" :key="item.id" v-if="item.open_microtrade == 1"
164
+ :class="['legal_name flex between',{'bg_active':currency_id==item.currency_id}]"
165
+ @click="selectCurrencys(item.id,item.legal_id,item.currency_id,item.legal_name,item.currency_name,item.plate_id)">
166
+ <strong><span>{{item.currency_name}}/{{item.legal_name}}</span></strong>
167
+ <p class="fontC" :class="{ red: parseFloat(item.change) < 0, gre: parseFloat(item.change) >= 0 || item.change == '' }">
168
+ <span>{{item.now_price}}</span>
169
+ </p>
170
+ </li>
171
+ </ul>
172
+ <!-- <ul class="ul" v-if="topnow==2">
173
+ <li v-for="item in currencyList[isActive].quotation" :key="item.id" v-if="item.is_display == 1&&item.open_lever == 1&&item.plate_id==2"
174
+ :class="['legal_name flex between',{'bg_active':currency_id==item.currency_id}]"
175
+ @click="selectCurrencys(item.id,item.legal_id,item.currency_id,item.legal_name,item.currency_name,item.plate_id)">
176
+ <strong><span>{{item.currency_name}}/{{item.legal_name}}</span></strong>
177
+ <p class="fontC" :class="{ red: parseFloat(item.change) < 0, gre: parseFloat(item.change) >= 0 || item.change == '' }">
178
+ <span>{{item.now_price}}</span>
179
+ </p>
180
+ </li>
181
+ </ul>
182
+ <ul class="ul" v-if="topnow==3">
183
+ <li v-for="item in currencyList[isActive].quotation" :key="item.id" v-if="item.is_display == 1&&item.open_lever == 1&&item.plate_id==3"
184
+ :class="['legal_name flex between',{'bg_active':currency_id==item.currency_id}]"
185
+ @click="selectCurrencys(item.id,item.legal_id,item.currency_id,item.legal_name,item.currency_name,item.plate_id)">
186
+ <strong><span>{{item.currency_name}}/{{item.legal_name}}</span></strong>
187
+ <p class="fontC" :class="{ red: parseFloat(item.change) < 0, gre: parseFloat(item.change) >= 0 || item.change == '' }">
188
+ <span>{{item.now_price}}</span>
189
+ </p>
190
+ </li>
191
+ </ul> -->
192
+ </div>
193
+ <!-- 倒计时下单弹窗 -->
194
+ <div class="time-modal">
195
+ <!-- <div class="time-header">
196
+ <div>
197
+ <p class="colorGrey ft12" data-localize="contract.transactionMode">{{texts[lang].pattern}}</p>
198
+ <div class="flex warps currency-list mt10">
199
+ <p :class="[{'active':tradeCurrencyId == item.id}]" v-for="item in tradeCurrency" :key="item.id"
200
+ @click="tradeCurrencyClick(item.id,item.name)">
201
+ {{item.name}}
202
+ </p>
203
+ </div>
204
+ </div>
205
+ </div> -->
206
+
207
+ <div class="time-header">
208
+ <div>
209
+ <p class="colorGrey ft12" data-localize="contract.transactionMode">{{texts[lang].pattern}}</p>
210
+ <div class="flex warps currency-list mt10">
211
+ <p :class="[{'active':tradeCurrencyId == item.id}]" v-for="item in tradeCurrency" :key="item.id"
212
+ @click="tradeCurrencyClick(item.id,item.name)">
213
+ {{item.name}}
214
+ </p>
215
+ </div>
216
+ </div>
217
+ </div>
218
+
219
+
220
+ <div class="time-content mt10">
221
+ <p class="colorGrey ft12" data-localize="contract.openQuantity">{{texts[lang].opennum}}</p>
222
+ <div class="time-num between">
223
+ <ul class="flex warps1" id="top1">
224
+ <li v-for="item in tradeNUm" :key="item.id" @click="tabNumbers(item.number)">
225
+ <p :class="[{'active':(inputValue-0) == (item.number -0).toFixed(0)}]">{{item.number |toFixedNum}}</p>
226
+ </li>
227
+ </ul>
228
+ <input type="number" data-localize="contract.otherQuantities" placeholder="{{market.otherQuantities}}" v-model="inputValue">
229
+ </div>
230
+ <div class="time-list">
231
+ <p class="colorGrey ft12" data-localize="deals.optime">{{texts[lang].opentime}}</p>
232
+ <div class="flex warps1 currency-list mt10">
233
+ <p :class="[{'active':seconds == item.seconds}]" v-for="item in timeList" :key="item.id"
234
+ @click="selectTime(item.seconds,item.profit_ratio)">{{item.seconds}}s</p>
235
+ </div>
236
+ </div>
237
+ <!-- <div class="time-list">
238
+ <p class="colorGrey ft12">{{texts[lang].insurance}}</p>
239
+ <div class="flex warps1 currency-list mt10">
240
+ <p :class="[{'active':is_insurance == 0}]" @click="changeInsurance(0)">{{texts[lang].no}}</p>
241
+ <p :class="[{'active':is_insurance == 1}]" @click="changeInsurance(1)">{{texts[lang].yes}}</p>
242
+ </div>
243
+ </div> -->
244
+ <div class="flex between ft14">
245
+ <p><span data-localize="contract.accountBalance">{{texts[lang].balance}}</span>: <span class="green bold">{{balance|toFixed4}} {{tradeCurrencyName}}</span></p>
246
+ <p><span data-localize="contract.profitRate">{{texts[lang].rate}}</span>: <span class="green bold ft20">{{profitRatio | toFixedNum}}%</span></p>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ <!-- 下单之后的弹窗 -->
251
+ <div class="orders">
252
+ <div>
253
+ <div class="mt20 orders-list">
254
+ <p class="mt10">
255
+ <span data-localize="assets.num">{{texts[lang].num}}</span>:
256
+ <span>{{inputValue || '0' |toFixedNum}} {{tradeCurrencyName}}</span>
257
+ </p>
258
+ <p class="mt10">
259
+ <span data-localize="assets.time">{{texts[lang].time}}</span>:
260
+ <span>{{seconds}} S</span>
261
+ </p>
262
+ <p class="mt10">
263
+ <span data-localize="contract.profitRate">{{texts[lang].rate}}</span>:
264
+ <span>{{profitRatio}}%</span>
265
+ </p>
266
+ </div>
267
+ </div>
268
+ </div>
269
+ <div id="mask1" @click="closeLeft"></div>
270
+ </div>
271
+ <script src="lib/vue.min.js"></script>
272
+ <script src="lib/jquery.js"></script>
273
+ <script src="lib/layer_mobile/layer.js"></script>
274
+ <script src="javascripts/main.js"></script>
275
+ <script src="javascripts/socket.io.js"></script>
276
+ <script src="tradeview/charting_library/charting_library.min.js"></script>
277
+ <script src="javascripts/uni.webview.1.5.4.js"></script>
278
+ <!-- <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
279
+ <script src="lib/vue.min.js"></script> -->
280
+ <script>
281
+ // 在引用依赖的uni.webview文件后,需要在 HTML 中监听 UniAppJSBridgeReady 事件触发后,才能安全调用 uni 的 API
282
+ document.addEventListener('UniAppJSBridgeReady', function() {
283
+ uni.getEnv(function(res) {
284
+ console.log('当前环境:' + JSON.stringify(res));
285
+ });
286
+ // $(function(res){
287
+ // var paramsed = get_all_params();
288
+ // console.log(paramsed.symbol)
289
+ // var symbol=paramsed.symbol.replace('/', "").toLowerCase()
290
+ // console.log(symbol)
291
+ // //var userToken = getData(token)
292
+ // //console.log(userToken)
293
+ // var url = _API + params.url;
294
+ // $.ajax({
295
+ // url: "currency/newGetDetail",
296
+ // data: {symbol: symbol},
297
+ // type: "post",
298
+ // dataType: "josn",
299
+ // success: function(data) {
300
+ // console.log(55)
301
+ // console.log(data)
302
+ // }
303
+ // })
304
+ // })
305
+ })
306
+
307
+
308
+
309
+
310
+ var vm = new Vue({
311
+ el: '#app',
312
+ data: {
313
+ texts: {
314
+ zh: {
315
+ mairo: '合约对冲',
316
+ contract: '永续合约',
317
+ add: '添加自选',
318
+ all: '全部',
319
+ main: '主流',
320
+ lever: '合约',
321
+ pattern: '交易模式',
322
+ num: '数量',
323
+ time: '时间',
324
+ rate: '盈利率',
325
+ opennum: '开仓数量',
326
+ opentime: '开仓时间',
327
+ insurance: '是否购买保险',
328
+ no: '否',
329
+ yes: '是',
330
+ balance: '账户余额',
331
+ up: '买涨',
332
+ down: '买跌',
333
+ list: '持仓列表',
334
+ record: '订单记录',
335
+ buyprice: '购买价',
336
+ nowprice: '当前价',
337
+ okprice: '成交价',
338
+ estimate: '预计盈亏',
339
+ count: '倒计时',
340
+ handrate: '手续费',
341
+ profit: '盈亏',
342
+ norecord: '暂无记录',
343
+ more: '加载更多',
344
+ nomore: '没有更多了',
345
+ buy: '买入',
346
+ sell: '卖出',
347
+ contracts:'合同交易'
348
+ },
349
+ en: {
350
+ mairo: 'contract hedging',
351
+ contract: 'perpetual contract',
352
+ add: 'add optional',
353
+ all: 'all',
354
+ main: 'main',
355
+ lever: 'contract',
356
+ pattern: 'transaction mode',
357
+ num: 'quantity',
358
+ time: 'time',
359
+ rate: 'profit rate',
360
+ opennum: 'open quantity',
361
+ opentime: 'opening time',
362
+ insurance: 'whether to buy insurance',
363
+ no: 'no',
364
+ yes: 'yes',
365
+ balance: 'account balance',
366
+ up: 'buy up',
367
+ down: 'buy down',
368
+ list: 'position list',
369
+ record: 'order record',
370
+ buyprice: 'purchase price',
371
+ nowprice: 'current price',
372
+ okprice: 'closing price',
373
+ estimate: 'estimated profit and loss',
374
+ count: 'count down',
375
+ handrate: 'service charge',
376
+ profit: 'profit and loss',
377
+ norecord: 'no record yet',
378
+ more: 'load more',
379
+ nomore: 'no more',
380
+ // buy: 'buy',
381
+ // sell: 'sell',
382
+ buy: 'Call',
383
+ sell: 'Put',
384
+ contracts:'contract transaction'
385
+ },
386
+ hk: {
387
+ mairo: '合約對沖',
388
+ contracts: '永續合約',
389
+ add: '添加自選',
390
+ all: '全部',
391
+ main: '主流',
392
+ lever: '合約',
393
+ pattern: '交易模式',
394
+ num: '數量',
395
+ time: '時間',
396
+ rate: '盈利率',
397
+ opennum: '開倉數量',
398
+ opentime: '開倉時間',
399
+ insurance: '是否購買保險',
400
+ no: '否',
401
+ yes: '是',
402
+ balance: '帳戶餘額',
403
+ up: '買漲',
404
+ down: '買跌',
405
+ list: '持倉清單',
406
+ record: '訂單記錄',
407
+ buyprice: '購買價',
408
+ nowprice: '當前價',
409
+ okprice: '成交價',
410
+ estimate: '預計盈虧',
411
+ count: '倒數計時',
412
+ handrate: '手續費',
413
+ profit: '盈虧',
414
+ norecord: '暫無記錄',
415
+ more: '加載更多',
416
+ nomore: '沒有更多了',
417
+ buy: '買入',
418
+ sell: '賣出',
419
+ contracts:'契约交易'
420
+ },
421
+ jp: {
422
+ mairo: '契約ヘッジ',
423
+ contract: '永遠契約',
424
+ add: '選択を追加',
425
+ all: '全部',
426
+ main: '主流',
427
+ lever: '契約',
428
+ pattern: '取引モード',
429
+ num: '数量',
430
+ time: '時間',
431
+ rate: '利益率',
432
+ opennum: '開倉数量',
433
+ opentime: '開倉時間',
434
+ insurance: 'は保険を買うかどうか',
435
+ no: 'いいえ',
436
+ yes: 'はい',
437
+ balance: '口座残高',
438
+ up: '買い上げる',
439
+ down: '買いおとす',
440
+ list: '保有リスト',
441
+ record: '注文記録',
442
+ buyprice: '買い入れ価格',
443
+ nowprice: '現在の価格',
444
+ okprice: '出来値',
445
+ estimate: '損益を予想する',
446
+ count: 'カウントダウン',
447
+ handrate: '手数料',
448
+ profit: '利益と損失',
449
+ norecord: '記録がない',
450
+ more: 'もっとロード',
451
+ nomore: 'これ以上ないです',
452
+ buy: '購入',
453
+ sell: '売却',
454
+ contracts:'契約取引'
455
+ },
456
+ kor:{
457
+ mairo:"계약 이 성립 하 다.",
458
+ contract:"무기한 계약",
459
+ add:"선택 추가",
460
+ all:"전부.",
461
+ main:"주류.",
462
+ lever:"계약",
463
+ pattern:"거래 패턴",
464
+ num:"수량.",
465
+ time:"시간.",
466
+ rate:"수익 률",
467
+ opennum:"창 고 를 여 는 수량.",
468
+ opentime:"창 고 를 여 는 시간.",
469
+ insurance:"보험 가입 여부",
470
+ no:"아니.",
471
+ yes:"예.",
472
+ balance:"계좌 잔액",
473
+ up:"값 이 오르다",
474
+ down:"매수 하여 떨어뜨리다",
475
+ list:"창고 보유 리스트",
476
+ record:"주문 기록",
477
+ buyprice:"구입 가격",
478
+ nowprice:"현재 가격",
479
+ okprice:"거래 가",
480
+ estimate:"예상 손익",
481
+ count:"카운트다운",
482
+ handrate:"수수료",
483
+ profit:"손익.",
484
+ norecord:"기록 이 없다",
485
+ more:"더 많이 불 러 오기",
486
+ nomore:"더 없어.",
487
+ buy: '매입',
488
+ sell: '매도',
489
+ },
490
+ th:{
491
+ mairo:"สัญญาป้องกันความเสี่ยง",
492
+ contract:"สัญญายั่งยืน",
493
+ add:"เพิ่มทางเลือก",
494
+ all:"จำนวนทั้งหมด",
495
+ main:"กระแสหลัก",
496
+ lever:"สนธิสัญญา",
497
+ pattern:"โหมดการซื้อขาย",
498
+ num:"จำนวนรวม",
499
+ time:"กาละ",
500
+ rate:"อัตรากำไร",
501
+ opennum:"จำนวนตำแหน่งเปิด",
502
+ opentime:"เวลาเปิด",
503
+ insurance:"ว่าจะซื้อประกันภัยหรือไม่",
504
+ no:"เลว",
505
+ yes:"ใช่แล้ว",
506
+ balance:"ดุลบัญชี",
507
+ up:"ซื้อขึ้น",
508
+ down:"ซื้อหรือขาย",
509
+ list:"รายชื่อตำแหน่ง",
510
+ record:"บันทึกการสั่งซื้อ",
511
+ buyprice:"ราคาซื้อ",
512
+ nowprice:"ราคาปัจจุบัน",
513
+ okprice:"มูลค่าการซื้อขาย",
514
+ estimate:"คาดการณ์กำไรและขาดทุน",
515
+ count:"การนับถอยหลัง",
516
+ handrate:"ค่าธรรมเนียม",
517
+ profit:"ขาดทุน",
518
+ norecord:"ไม่มีบันทึก",
519
+ more:"โหลดเพิ่มเติม",
520
+ nomore:"ไม่อีกแล้ว",
521
+ buy: 'ซื้อ',
522
+ sell: 'ขาย',
523
+ }
524
+ },
525
+ widget: null,
526
+ symbolInfo: null,
527
+ feed: null,
528
+ wsEx: null,
529
+ ws: null,
530
+ lists: [],
531
+ newData: '',
532
+ symbol: '',
533
+ priceScale: 100000,
534
+ histime: '',
535
+ newprice: '0.00',
536
+ updown: '0.00',
537
+ maxprice: '0.00',
538
+ minprice: '0.00',
539
+ dayvom: '0.00',
540
+ currencyList: [],
541
+ couponSelected: '',
542
+ legal_id: '',
543
+ currency_id: '',
544
+ legal_name: '',
545
+ currency_name: '',
546
+ currency_match_id:'',
547
+ hasCollcet: '',
548
+ myid: '',
549
+ // balance: '',
550
+ rates: '',
551
+ // websockUrl: 'wss://www.hsfuture.net/ws', //'ws://74.91.27.98/ws'
552
+ // url: 'http://www.hsfuture.net/',
553
+ // websockUrl: 'http://www.bgobtc.com:2000/',
554
+ websockUrl: _DOMAIN+'/',
555
+ url: _DOMAIN+'/',
556
+ complete: [],
557
+ transwords: {
558
+ zh: {
559
+ high: '高',
560
+ low: '低',
561
+ volume: '24H量',
562
+ num: '数量',
563
+ price: '价格',
564
+ time: '时间',
565
+ buy: '买入',
566
+ sell: '卖出',
567
+ chicang:'持仓列表',
568
+ record:'订单记录',
569
+ num:'数量',
570
+ buyprice:'购买价',
571
+ cjprice:'成交价',
572
+ yuji:'预计盈亏',
573
+ daotime:'倒计时',
574
+ type:'类型',
575
+ yingkui:'盈亏',
576
+ time:'时间',
577
+ nolog:'暂无记录',
578
+ more:'加载更多',
579
+ nomore:'没有更多了',
580
+ ylrate:'盈利率',
581
+ buyup:'买涨',
582
+ buydown:'买跌',
583
+ micro:'期权交易',
584
+ model:'交易模式',
585
+ opennum:'开仓数量',
586
+ opentime:'开仓时间',
587
+ balance:'账户余额',
588
+ num1:'数量:',
589
+ yuqi:'预期收益:',
590
+ circle:'结算周期:',
591
+ nowprice:'当前价',
592
+ ceil:'取消',
593
+ ptime:'请选择开仓时间',
594
+ pnum:'请选择开仓数量',
595
+ success:'下单成功'
596
+ },
597
+ en: {
598
+ high: 'high',
599
+ low: 'low',
600
+ volume: '24H volume',
601
+ num: 'number',
602
+ price: 'price',
603
+ time: 'time',
604
+ // buy: 'buy',
605
+ // sell: 'sell',
606
+ buy: 'Call',
607
+ sell: 'Put',
608
+ chicang: 'Position list',
609
+ record: 'Order record',
610
+ Num: 'Quantity',
611
+ buyprice: 'Purchase price',
612
+ cjprice: 'Closing price',
613
+ yuji: 'Estimated profit and loss',
614
+ daotime: 'Countdown',
615
+ type: 'Type',
616
+ yingkui: 'Profit and loss',
617
+ time: 'Time',
618
+ nolog: 'No record yet',
619
+ more: 'Load more',
620
+ nomore: 'No more',
621
+ ylrate: 'Profit rate',
622
+ buyup: 'Buy up',
623
+ buydown: 'Buy down',
624
+ micro: 'Option contract',
625
+ model: 'Transaction mode',
626
+ opennum: 'Open quantity',
627
+ opentime: 'Opening time',
628
+ balance: 'Balance',
629
+ num1: 'Quantity',
630
+ yuqi: 'Earnings',
631
+ circle: 'Settlement',
632
+ nowprice: 'Price',
633
+ ceil: 'Cancel',
634
+ ptime: 'Please select the opening time',
635
+ pnum: 'Please select the opening quantity',
636
+ success: 'Order successfully'
637
+ },
638
+ hk: {
639
+ high: '高',
640
+ low: '低',
641
+ volume: '24H量',
642
+ num: '數量',
643
+ price: '價格',
644
+ time: '時間',
645
+ buy: '買入',
646
+ sell: '賣出',
647
+ chicang:'持倉清單',
648
+ record:'訂單記錄',
649
+ num:'數量',
650
+ buyprice:'購買價',
651
+ cjprice:'成交價',
652
+ yuji:'預計盈虧',
653
+ daotime:'倒數計時',
654
+ type:'類型',
655
+ yingkui:'盈虧',
656
+ time:'時間',
657
+ nolog:'暫無記錄',
658
+ more:'加載更多',
659
+ nomore:'沒有更多了',
660
+ ylrate:'盈利率',
661
+ buyup:'買漲',
662
+ buydown:'買跌',
663
+ micro:'秒合約',
664
+ model:'交易模式',
665
+ opennum:'開倉數量',
666
+ opentime:'開倉時間',
667
+ balance:'帳戶餘額',
668
+ num1:'數量:',
669
+ yuqi:'預期收益:',
670
+ circle:'結算週期:',
671
+ nowprice:'當前價',
672
+ ceil:'取消',
673
+ ptime:'請選擇開倉時間',
674
+ pnum:'請選擇開倉數量',
675
+ success:'下單成功'
676
+ },
677
+ jp: {
678
+ high: '高さ',
679
+ low: '低い',
680
+ volume: '24 h量',
681
+ num: '数',
682
+ price: '価格',
683
+ time: '時間',
684
+ buy: '購入',
685
+ sell: '売却',
686
+ chicang:'持倉リスト',
687
+ record:'注文記録',
688
+ num:'数量',
689
+ buylice:'購買価格',
690
+ cjprice:'成約価格',
691
+ yuji:'損益予想',
692
+ daotime:'カウントダウン',
693
+ yingkui:'損益',
694
+ time:'時間',
695
+ nolog:'は記録がありません',
696
+ more:'より多くのロード',
697
+ nomore:'もっとないです' ,
698
+ ylrate:'収益率',
699
+ buyup:'買上高',
700
+ buydown:'買って転んで、',
701
+ micro:'秒契約',
702
+ model:'取引モード',
703
+ opennum:'開倉数量',
704
+ opentime:'開倉時間',
705
+ balance:'口座残高',
706
+ num1:'数量:',
707
+ yuqi:'予想収益:',
708
+ circele:'決算周期:',
709
+ nowprice:'現在価格',
710
+ ceil:'キャンセル',
711
+ ptime:'開倉時間を選んでください',
712
+ pnum:'開倉数量を選んでください',
713
+ success:'注文成功'
714
+ },
715
+ kor:{
716
+ high:"높다.",
717
+ low:"낮다.",
718
+ volume:"24H 량",
719
+ num:"수량.",
720
+ price:"가격.",
721
+ time:"시간.",
722
+ buy:"매입 하 다.",
723
+ sell:"매출 하 다.",
724
+ chicang:"창고 보유 리스트",
725
+ record:"주문 기록",
726
+ buyprice:"구입 가격",
727
+ cjprice:"거래 가",
728
+ yuji:"예상 손익",
729
+ daotime:"카운트다운",
730
+ type:"유형.",
731
+ yingkui:"손익.",
732
+ nolog:"기록 이 없다",
733
+ more:"더 많이 불 러 오기",
734
+ nomore:"더 없어.",
735
+ ylrate:"수익 률",
736
+ buyup:"값 이 오르다",
737
+ buydown:"매수 하여 떨어뜨리다",
738
+ micro:"옵션 거래",
739
+ model:"거래 패턴",
740
+ opennum:"창 고 를 여 는 수량.",
741
+ opentime:"창 고 를 여 는 시간.",
742
+ balance:"계좌 잔액",
743
+ num1:"수량:",
744
+ yuqi:"예상 수익:",
745
+ circle:"결제 주기:",
746
+ nowprice:"현재 가격",
747
+ ceil:"취소 하 다.",
748
+ ptime:"창 고 를 여 는 시간 을 선택 하 세 요",
749
+ pnum:"창 고 수량 을 선택 하 세 요",
750
+ success:"주문 성공"
751
+ },
752
+ th:{
753
+ high:"โด่ง",
754
+ low:"หดหู่ใจ",
755
+ volume:"ปริมาณ",
756
+ num:"จำนวนรวม",
757
+ price:"ราคา",
758
+ time:"กาละ",
759
+ buy:"ซื้��",
760
+ sell:"ขาย",
761
+ chicang:"รายชื่อตำแหน่ง",
762
+ record:"บันทึกการสั่งซื้อ",
763
+ buyprice:"ราคาซื้อ",
764
+ cjprice:"มูลค่าการซื้อขาย",
765
+ yuji:"คาดการณ์กำไรและขาดทุน",
766
+ daotime:"การนับถอยหลัง",
767
+ type:"รูปร่างลักษณะ",
768
+ yingkui:"ขาดทุน",
769
+ nolog:"ไม่มีบันทึก",
770
+ more:"โหลดเพิ่มเติม",
771
+ nomore:"ไม่อีกแล้ว",
772
+ ylrate:"อัตรากำไร",
773
+ buyup:"ซื้อขึ้น",
774
+ buydown:"ซื้อหรือขาย",
775
+ micro:"การซื้อขายตัวเลือก",
776
+ model:"โหมดการซื้อขาย",
777
+ opennum:"จำนวนตำแหน่งเปิด",
778
+ opentime:"เวลาเปิด",
779
+ balance:"ดุลบัญชี",
780
+ num1:"ปริมาณ",
781
+ yuqi:"รายได้ที่คาดหวัง",
782
+ circle:"วงจรการตั้งถิ่นฐาน",
783
+ nowprice:"ราคาปัจจุบัน",
784
+ ceil:"ยกเลิก",
785
+ ptime:"กรุณาเลือกเวลาเปิด",
786
+ pnum:"กรุณาเลือกหมายเลขการเปิด",
787
+ success:"สั่งซื้อสำเร็จ"
788
+ },
789
+ de:{
790
+ high:"hoch",
791
+ low:"niedrig",
792
+ volume:"24h Volumen",
793
+ num:"Anzahl",
794
+ price:"Preis",
795
+ time:"Zeit",
796
+ buy:"Kauf",
797
+ sell:"Verkauf aus",
798
+ chicang:"Liste der Positionen",
799
+ record:"Aufzeichnungen der Bestellung",
800
+ buyprice:"Der Kaufpreis",
801
+ cjprice:"Preis der Transaktion",
802
+ yuji:"Geschätzte Gewinne und Verluste",
803
+ daotime:"Zählen nach unten",
804
+ type:"Typ",
805
+ yingkui:"Gewinn und Verlust",
806
+ nolog:"Kein Eintrag",
807
+ more:"Laden Sie mehr",
808
+ nomore:"Nicht mehr",
809
+ ylrate:"Verzinsung des Gewinns",
810
+ buyup:"Kaufen Sie auf",
811
+ buydown:"Kaufen Sie unten",
812
+ micro:"Handel mit Optionen",
813
+ model:"Modus der Transaktion",
814
+ opennum:"Menge der Öffnung",
815
+ opentime:"Open Time",
816
+ balance:"Saldo des Kontos",
817
+ num1:"Anzahl:",
818
+ yuqi:"Erwartete Einnahmen:",
819
+ circle:"Zeitraum der Abrechnung:",
820
+ nowprice:"Aktueller Preis",
821
+ ceil:"Stornieren",
822
+ ptime:"Bitte die Öffnungszeiten auswählen",
823
+ pnum:"Bitte wählen Sie die Öffnungsmenge",
824
+ success:"Erfolg der Kasse"
825
+ },
826
+ fra:{
827
+ high:"Élevé",
828
+ low:"Faible",
829
+ volume:"Quantité 24h",
830
+ num:"Nombre",
831
+ price:"Prix",
832
+ time:"Temps",
833
+ buy:"Acheter",
834
+ sell:"Vendre",
835
+ chicang:"Liste des positions",
836
+ record:"Enregistrement des commandes",
837
+ buyprice:"Prix d'achat",
838
+ cjprice:"Prix de transaction",
839
+ yuji:"Résultat escompté",
840
+ daotime:"Compte à rebours",
841
+ type:"Type",
842
+ yingkui:"Profits et pertes",
843
+ nolog:"Pas d'enregistrement pour le moment",
844
+ more:"Charger plus",
845
+ nomore:"Il n'y en a plus.",
846
+ ylrate:"Taux de rentabilité",
847
+ buyup:"Augmentation des achats",
848
+ buydown:"Buy down",
849
+ micro:"Opérations d'options",
850
+ model:"Mode de transaction",
851
+ opennum:"Quantité d'ouverture",
852
+ opentime:"Heure d'ouverture",
853
+ balance:"Solde du compte",
854
+ num1:"Quantité:",
855
+ yuqi:"Avantages escomptés:",
856
+ circle:"Période de règlement:",
857
+ nowprice:"Prix courants",
858
+ ceil:"Annulation",
859
+ ptime:"Veuillez sélectionner l'heure d'ouverture",
860
+ pnum:"Veuillez sélectionner la quantité d'ouverture",
861
+ success:"Commande réussie"
862
+ },
863
+ hi:{
864
+ high:"उच्च",
865
+ low:"कम",
866
+ volume:"24H मात्रा",
867
+ num:"मात्रा",
868
+ price:"कीमत",
869
+ time:"समय",
870
+ buy:"खरीदना",
871
+ sell:"बेचना",
872
+ chicang:"पदों की सूची",
873
+ record:"आदेश रिकॉर्ड",
874
+ buyprice:"खरीद मूल्य",
875
+ cjprice:"अंतिम कीमत",
876
+ yuji:"अनुमानित लाभ और हानि",
877
+ daotime:"उलटी गिनती",
878
+ type:"के प्रकार",
879
+ yingkui:"लाभ और हानि",
880
+ nolog:"कोई रिकॉर्ड नहीं",
881
+ more:"और लोड करें",
882
+ nomore:"अब और नहीं",
883
+ ylrate:"लाभप्रदता",
884
+ buyup:"खरीद लेना",
885
+ buydown:"खरीदना ���ा गिरना",
886
+ micro:"ऑप्शन ट्रेडिंग",
887
+ model:"लेनदेन मोड",
888
+ opennum:"खोले गए पदों की संख्या",
889
+ opentime:"खुलने का समय",
890
+ balance:"खाते में शेष",
891
+ num1:"मात्रा:",
892
+ yuqi:"अपेक्षित आय:",
893
+ circle:"बिलिंग चक्र:",
894
+ nowprice:"मौजूदा कीमत",
895
+ ceil:"रद्द करना",
896
+ ptime:"कृपया खुलने का समय चुनें",
897
+ pnum:"कृपया उद्घाटन की मात्रा चुनें",
898
+ success:"सफलतापूर्वक आदेश दिया गया"
899
+ },
900
+ id:{
901
+ high:"tinggi",
902
+ low:"rendah",
903
+ volume:"Volume 24 jam",
904
+ num:"Kuantitas",
905
+ price:"harga",
906
+ time:"waktu",
907
+ buy:"Membeli di",
908
+ sell:"Menjual",
909
+ chicang:"Daftar posisi",
910
+ record:"Catatan pesanan",
911
+ buyprice:"Harga pembelian",
912
+ cjprice:"harga akhir",
913
+ yuji:"Taksiran untung dan rugi",
914
+ daotime:"Hitung mundur",
915
+ type:"Jenis dari",
916
+ yingkui:"Laba rugi",
917
+ nolog:"Tidak ada catatan",
918
+ more:"Muat lebih banyak",
919
+ nomore:"Tidak lagi",
920
+ ylrate:"Profitabilitas",
921
+ buyup:"Memborong",
922
+ buydown:"Beli atau jatuh",
923
+ micro:"Perdagangan opsi",
924
+ model:"Mode transaksi",
925
+ opennum:"Jumlah posisi dibuka",
926
+ opentime:"Waktu pembukaan",
927
+ balance:"Saldo rekening",
928
+ num1:"Kuantitas:",
929
+ yuqi:"Hasil yang diharapkan:",
930
+ circle:"Siklus penagihan:",
931
+ nowprice:"Harga sekarang",
932
+ ceil:"membatalkan",
933
+ ptime:"Pilih jam buka",
934
+ pnum:"Silakan pilih jumlah pembukaan",
935
+ success:"berhasil dipesan"
936
+ },
937
+ pt:{
938
+ high:"Alto",
939
+ low:"Baixo",
940
+ volume:"24h volume",
941
+ num:"Número",
942
+ price:"Preço",
943
+ time:"Tempo",
944
+ buy:"Compra",
945
+ sell:"Vender fora",
946
+ chicang:"Lista de posições",
947
+ record:"Registos de encomendas",
948
+ buyprice:"Preço de compra",
949
+ cjprice:"Preço de transacção",
950
+ yuji:"Lucros e Perdas estimados",
951
+ daotime:"Contagem decrescente",
952
+ type:"Tipo",
953
+ yingkui:"Resultado e perda",
954
+ nolog:"Sem Registro",
955
+ more:"Carregar Mais",
956
+ nomore:"Não mais.",
957
+ ylrate:"Taxa de lucro",
958
+ buyup:"Compra aí.",
959
+ buydown:"Comprar para baixo",
960
+ micro:"Opções de negociação",
961
+ model:"Modo de transação",
962
+ opennum:"Quantidade de Abertura",
963
+ opentime:"Tempo Aberto",
964
+ balance:"Balanço de conta",
965
+ num1:"Número:",
966
+ yuqi:"Receitas previstas:",
967
+ circle:"Período de liquidação:",
968
+ nowprice:"Preço actual",
969
+ ceil:"Cancelar",
970
+ ptime:"Por favor, selecione a Hora de Abertura",
971
+ pnum:"Seleccione por favor a quantidade de Abertura",
972
+ success:"SUCESSO do checkout"
973
+ },
974
+ ru:{
975
+ high:"высота",
976
+ low:"низкий",
977
+ volume:"24H количество",
978
+ num:"количество",
979
+ price:"цена",
980
+ time:"время",
981
+ buy:"покупать",
982
+ sell:"продать",
983
+ chicang:"Список владельцев бункера",
984
+ record:"запись заказа",
985
+ buyprice:"покупная цена",
986
+ cjprice:"цена сделки",
987
+ yuji:"ожидаемая прибыльность",
988
+ daotime:"обратный отсчет",
989
+ type:"тип",
990
+ yingkui:"полный убыток",
991
+ nolog:"Пока нет записи",
992
+ more:"Загрузить дополнительно",
993
+ nomore:"Больше нет",
994
+ ylrate:"норма прибыли",
995
+ buyup:"купить",
996
+ buydown:"упасть",
997
+ micro:"опционная сделка",
998
+ model:"режим сделок",
999
+ opennum:"количество вскрытия",
1000
+ opentime:"время открытия бункера",
1001
+ balance:"сальдо счета",
1002
+ num1:"количество",
1003
+ yuqi:"Ожидаемые выгоды:",
1004
+ circle:"расчетный период:",
1005
+ nowprice:"текущая цена",
1006
+ ceil:"отмена",
1007
+ ptime:"Выберите время начала бункера",
1008
+ pnum:"Выберите количество бункера",
1009
+ success:"Следующий успех"
1010
+ },
1011
+ spa:{
1012
+ high:"Alto",
1013
+ low:"Baja",
1014
+ volume:"Cantidad de 24h",
1015
+ num:"Cantidad",
1016
+ price:"Precio",
1017
+ time:"Tiempo",
1018
+ buy:"Comprar",
1019
+ sell:"Vender",
1020
+ chicang:"Lista de posiciones",
1021
+ record:"Registro de pedidos",
1022
+ buyprice:"Precio de compra",
1023
+ cjprice:"Precio de transacción",
1024
+ yuji:"Ganancias y pérdidas previstas",
1025
+ daotime:"Cuenta atrás",
1026
+ type:"Tipo",
1027
+ yingkui:"Ganancias y pérdidas",
1028
+ nolog:"No hay registro",
1029
+ more:"Cargar más",
1030
+ nomore:"No más",
1031
+ ylrate:"Tasa de ganancia",
1032
+ buyup:"Comprar",
1033
+ buydown:"Comprar o caer",
1034
+ micro:"Comercio de opciones",
1035
+ model:"Modo de transacción",
1036
+ opennum:"Cantidad de apertura",
1037
+ opentime:"Tiempo de apertura",
1038
+ balance:"Saldo de la cuenta",
1039
+ num1:"Cantidad:",
1040
+ yuqi:"Ingresos previstos:",
1041
+ circle:"Período de liquidación:",
1042
+ nowprice:"Precio actual",
1043
+ ceil:"Cancelar",
1044
+ ptime:"Por favor, seleccione el tiempo de apertura",
1045
+ pnum:"Por favor, seleccione la cantidad de apertura",
1046
+ success:"Pedido exitoso"
1047
+ }
1048
+ },
1049
+ translatedInfo: {
1050
+ high:'',
1051
+ low:'',
1052
+ volume:'',
1053
+ buy:'',
1054
+ sell:''
1055
+ },
1056
+ trade:{
1057
+ en:{
1058
+ all:'all'
1059
+ },
1060
+ zh:{
1061
+ all:'全部'
1062
+ },
1063
+ hk:{
1064
+ all:'全部'
1065
+ },
1066
+ jp:{
1067
+ all:'すべて'
1068
+ }
1069
+ },
1070
+ lang: 'en',
1071
+ sellType: 'buy',
1072
+ multipleList: [],
1073
+ CountDown: '',
1074
+ balance: '',
1075
+ rate: '',
1076
+ numbers: '0.00',
1077
+ expectedReturn: '0.00',
1078
+ guaranteeAmount: '0.00',
1079
+ tradeType: '',
1080
+ tradeCurrency: [],
1081
+ getlists:[],
1082
+ tradeCurrencylist: [],
1083
+ tradeCurrencyId: '',
1084
+ tradeCurrencyName: '',
1085
+ tradeCurrencyData: [],
1086
+ tradeNUm: [],
1087
+ timeList: [],
1088
+ seconds: '',
1089
+ inputValue: '',
1090
+ profitRatio: '',
1091
+ tradeCurrencyIdTest: '',
1092
+ secondsTest: '',
1093
+ inputValueTest: '',
1094
+ profitRatioTest: '',
1095
+ balanceTest: '',
1096
+ rateTest: '',
1097
+ orderData: {
1098
+
1099
+ },
1100
+ progress: 100,
1101
+ set: null,
1102
+ status: 1,
1103
+ currencyName: "",
1104
+ orderList: [],
1105
+ maxdayvom:'',
1106
+ set: null,
1107
+ bmbBalance: '',
1108
+ sets: null,
1109
+ insurancType:[],
1110
+ userInsurancId:'',
1111
+ page:1,
1112
+ hasmore:false,
1113
+ plate:'',
1114
+ opt: false,
1115
+ addid:'',
1116
+ isActive:0,
1117
+ topnow:1,
1118
+ topList:['全部','主流','合约'],
1119
+ is_insurance: 0,
1120
+ styleColor:'',
1121
+ greenColor:'#02C289',
1122
+ redColor:'#e86d43'
1123
+ },
1124
+ filters:{
1125
+ fixed4:function(vals){
1126
+ var values = iTofixed(vals,4);
1127
+ return values;
1128
+ },
1129
+ toFixeds: function (value) {
1130
+ value = Number(value);
1131
+ return value.toFixed(2);
1132
+ },
1133
+ toFixeds1: function (value) {
1134
+ value = Number(value);
1135
+ return value.toFixed(8);
1136
+ },
1137
+ toFixed4: function (value, options) {
1138
+ value = Number(value);
1139
+ return value.toFixed(4);
1140
+ },
1141
+ toFixedNum: function (value, options) {
1142
+ value = Number(value);
1143
+ return value.toFixed(0);
1144
+ },
1145
+ toFixed1: function (value, options) {
1146
+ value = Number(value);
1147
+ return value.toFixed(1);
1148
+ },
1149
+ },
1150
+ created() {
1151
+ this.lang = this.getJsUrl().lang
1152
+ var paramsed = get_all_params();
1153
+ console.log(paramsed)
1154
+ let that = this
1155
+ if(paramsed.symbol){
1156
+ that.symbol = paramsed.symbol;
1157
+ let c_name = paramsed.symbol.split('/')
1158
+ that.legal_name = c_name[1];
1159
+ that.currency_name = c_name[0];
1160
+ that.legal_id = paramsed.legal_id;
1161
+ that.currency_id = paramsed.currency_id;
1162
+ that.currency_match_id = paramsed.currency_match_id;
1163
+ that.plate = paramsed.plate;
1164
+ that.topnow = paramsed.plate || 1;
1165
+ document.title = that.symbol;
1166
+ }
1167
+ var token=uni.getStorageSync('token');
1168
+ // let token1 = window.localStorage.getItem('token')
1169
+ // console.log(token1)
1170
+ console.log(token)
1171
+ if (token == null || token == ''){
1172
+ uni.navigateTo({
1173
+ url: '/pages/mine/login',
1174
+ });
1175
+ }
1176
+ // if(window.plus){
1177
+ // if (!plus.storage.getItem('token')) {
1178
+ // uni.navigateTo({
1179
+ // url: '/pages/mine/login',
1180
+ // });
1181
+ // // window.location.href=this.url+"h5/#/pages/mine/login"
1182
+ // }
1183
+ // }else{
1184
+ // if (localStorage.getItem('token') == null || localStorage.getItem('token') == '') {
1185
+ // uni.navigateTo({
1186
+ // url: '/pages/mine/login',
1187
+ // });
1188
+ // // window.location.href=this.url+"h5/#/pages/mine/login"
1189
+
1190
+ // }
1191
+ // }
1192
+ },
1193
+ computed: {
1194
+ listenState() { //监听交易对
1195
+ return this.symbol;
1196
+ }
1197
+ },
1198
+ mounted() {
1199
+ let _this = this
1200
+ uni.addInterceptor('navigateTo', { //监听跳转
1201
+ success(e) {
1202
+ console.log("navigateTo>>>>>>>>>>>>>>>>>>>>>")
1203
+ clearInterval(_this._barsPulseUpdater);
1204
+ clearInterval(_this.timer);
1205
+ }
1206
+ })
1207
+ uni.addInterceptor('switchTab', { //监听跳转
1208
+ success(e) {
1209
+ console.log("switchTab>>>>>>>>>>>>>>>>>>>>>>>>>")
1210
+ clearInterval(_this._barsPulseUpdater);
1211
+ clearInterval(_this.timer);
1212
+ }
1213
+ })
1214
+ uni.addInterceptor('redirectTo', { //监听关闭本页面跳转
1215
+ success(e) {
1216
+ console.log("redirectTo>>>>>>>>>>>>>>>>")
1217
+ clearInterval(_this._barsPulseUpdater);
1218
+ clearInterval(_this.timer);
1219
+
1220
+ }
1221
+ })
1222
+ },
1223
+ watch: {
1224
+ listenState: function(a, b) { //监听交易对
1225
+ if (a != b && b != '') {
1226
+ this.widget.setSymbol(a, localStorage.getItem('tim'), function onReadyCallback() {}) //切换币种
1227
+ }
1228
+ }
1229
+ },
1230
+ mounted() {
1231
+ var that = this;
1232
+ if(window.plus){
1233
+ plus.navigator.setStatusBarStyle('light');
1234
+
1235
+ // that.lang = plus.storage.getItem('lang') || "en";
1236
+ console.log(uni.getStorageSync('lang'))
1237
+ that.lang = uni.getStorageSync('lang') || "en";
1238
+ that.translatedInfo = that.transwords[that.lang];
1239
+ that.styleColor = plus.storage.getItem('color');
1240
+ if(that.styleColor=='green'){
1241
+ that.greenColor='#02C289';
1242
+ that.redColor='#e86d43';
1243
+ }else{
1244
+ that.greenColor='#e86d43';
1245
+ that.redColor='#02C289';
1246
+ }
1247
+ }else{
1248
+ // that.lang = JSON.parse(localStorage.getItem('lang')).data;
1249
+ console.log(localStorage.getItem('lang'))
1250
+ that.lang = localStorage.getItem('lang') || "en";
1251
+ that.styleColor = localStorage.getItem('color');
1252
+ if(that.styleColor=='green'){
1253
+ that.greenColor='#02C289';
1254
+ that.redColor='#e86d43';
1255
+ }else{
1256
+ that.greenColor='#e86d43';
1257
+ that.redColor='#02C289';
1258
+ }
1259
+ that.translatedInfo = that.transwords[that.lang];
1260
+ }
1261
+ this.init();
1262
+ this.getSecond();
1263
+ this.getWallet();
1264
+ //this.getrate();
1265
+ // this.getMyAdd()
1266
+ // this.createWidget();
1267
+ },
1268
+ destroyed() {
1269
+ this.removeWidget();
1270
+ },
1271
+ beforeDestroy() {
1272
+
1273
+ },
1274
+ methods: {
1275
+ toTrade(){
1276
+ uni.navigateTo({
1277
+ url: '/pages/trade/entrust'
1278
+ })
1279
+ },
1280
+ getJsUrl(){
1281
+ let pos,str,para,parastr;
1282
+ let array =[]
1283
+ str = window.location.href;
1284
+ parastr = str.split("?")[1];
1285
+ let arr = parastr.split("&");
1286
+ for (let i=0;i<arr.length;i++){
1287
+ array[arr[i].split("=")[0]]=arr[i].split("=")[1];
1288
+ }
1289
+ return array;
1290
+ },
1291
+ changeTop(e){
1292
+ this.topnow=e;
1293
+ },
1294
+ changeTab(e,name){
1295
+ // this.fiat_convert_cny=this.marketLists[e].fiat_convert_cny-0;
1296
+ this.isActive=e;
1297
+ this.legal_name = name;
1298
+ },
1299
+ // getrate(){
1300
+ // let that = this;
1301
+ // symbol=this.symbol.replace('/', "").toLowerCase();
1302
+ // console.log(symbol);
1303
+ // initDataToken({
1304
+ // url: 'currency/newGetDetail',
1305
+ // type: "post",
1306
+ // data:{
1307
+ // // base_currency:that.currency_name,
1308
+ // // quote_currency:that.legal_name,
1309
+ // // period:'1day',
1310
+ // symbol:this.symbol.replace('/', "").toLowerCase(),
1311
+ // }
1312
+ // }, function (res) {
1313
+ // console.log(JSON.stringify(res));
1314
+ // let dta = res.data
1315
+ // console.log(dta)
1316
+ // that.updown = res.data.change
1317
+ // that.dayvom = Number(res.data.vol).toFixed(4)
1318
+ // that.maxprice = res.data.high
1319
+ // that.minprice = res.data.low
1320
+ // that.newprice = res.data.close
1321
+
1322
+ // })
1323
+ // },
1324
+ getrate(){
1325
+ var token = getlocal_storage('token');
1326
+
1327
+ $.ajax({
1328
+ url:"https://www.usdtlightningnetwork3.com/api/currency/newGetDetail",
1329
+ type:'post',
1330
+ data:{
1331
+ symbol:this.symbol.replace('/', "").toLowerCase()
1332
+ },
1333
+ beforeSend: function beforeSend(request) {
1334
+ request.setRequestHeader('AUTHORIZATION', token)
1335
+ },
1336
+ success: function (res) {
1337
+ console.log(JSON.stringify(res));
1338
+ //that.updown = res.change
1339
+ this.getlists = res.data
1340
+ console.log('this.getlists>>>>>>>>>>>>>>');
1341
+ // console.log(this.getlists);
1342
+ this.maxdayvom = Number(this.getlists.vol).toFixed(4)
1343
+ $('.maxdayvom').html(this.maxdayvom)
1344
+ console.log(this.maxdayvom);
1345
+ this.maxhigh = this.getlists.high
1346
+ this.minlow = this.getlists.low
1347
+ this.newprice = this.getlists.close
1348
+ $('.getlists_high').html(this.getlists.high)
1349
+ $('.getlists_low').html(this.getlists.low)
1350
+ $('.getlists_close').html(this.getlists.close)
1351
+ $('.newprice').html(this.newprice)
1352
+ }
1353
+ })
1354
+
1355
+ },
1356
+
1357
+ // 我的自选
1358
+ getMyAdd(){
1359
+ let that = this;
1360
+ initDataToken({
1361
+ url: 'user_match/list',
1362
+ type: "GET",
1363
+ }, function (res) {
1364
+ console.log(JSON.stringify(res))
1365
+ var list = res.data;
1366
+ for(var i=0;i<list.length;i++){
1367
+ if(list[i].legal_id == that.legal_id && list[i].currency_id == that.currency_id ){
1368
+ that.opt= true
1369
+ console.log(1)
1370
+ }
1371
+ }
1372
+ })
1373
+
1374
+ },
1375
+ init(){
1376
+ let that = this;
1377
+ initData({ url: 'currency/quotation_new'}, (res, msg) => {
1378
+ that.currencyList=res;
1379
+ var data1 = res;
1380
+ if(!that.legal_id){
1381
+ that.legal_id = res[0].id;
1382
+ }
1383
+ // console.log(that.legal_id)
1384
+
1385
+ for (var i = 0; i < data1.length; i++) {
1386
+ if (data1[i].id == that.legal_id) {
1387
+ // if (data1[i].id == that.legal_id) {
1388
+ var data2 = data1[i].quotation;
1389
+ // that.currencyList = data2;
1390
+ // console.log(data2)
1391
+ for (var ii = 0; ii < data2.length; ii++) {
1392
+ if (data2[ii].currency_id == that.currency_id) {
1393
+ let data0 = data2[ii];
1394
+ // console.log(data0)
1395
+ // var param = get_all_params();
1396
+ // if(!param.symbol){
1397
+ that.legal_id = data0.legal_id;
1398
+ that.currency_id = data0.currency_id;
1399
+ that.legal_name = data0.legal_name;
1400
+ that.currency_name = data0.currency_name;
1401
+ that.currency_match_id = data0.id;
1402
+ that.symbol = data0.currency_name+'/'+data0.legal_name;
1403
+ // }
1404
+ }
1405
+ }
1406
+ // let data0 = data2[0];
1407
+ // console.log(data0)
1408
+ // // var param = get_all_params();
1409
+ // // if(!param.symbol){
1410
+ // that.legal_id = data0.legal_id;
1411
+ // that.currency_id = data0.currency_id;
1412
+ // that.legal_name = data0.legal_name;
1413
+ // that.currency_name = data0.currency_name;
1414
+ // that.currency_match_id = data0.id;
1415
+ // that.symbol = data0.currency_name+'/'+data0.legal_name;
1416
+ // // }
1417
+
1418
+ // that.getrate();
1419
+ that.createWidget();
1420
+ that.orderList = [];
1421
+ that.page = 1;
1422
+ that.getList();
1423
+ }
1424
+ }
1425
+ this.timer = setInterval((res)=>{
1426
+ console.log(123)
1427
+ that.getrate(); // 获取当前值跨域404
1428
+ },6000);
1429
+ //that.getrate(); // 获取当前值跨域404
1430
+ // that.createWidget();
1431
+ // that.orderList = [];
1432
+ // that.page = 1;
1433
+ // that.getList();
1434
+ })
1435
+ },
1436
+ //获取期权交易信息
1437
+ getWallet(){
1438
+ let that = this;
1439
+ initDataToken({
1440
+ url: 'microtrade/payable_currencies'
1441
+ }, function (res) {
1442
+ console.log(res)
1443
+ that.tradeCurrency = res;
1444
+ let tradeCurrencylist = res[2];
1445
+ console.log(123)
1446
+ // console.log(tradeCurrencylist.name)
1447
+ // alert(JSON.stringify(res))
1448
+ if (res.length > 0) {
1449
+ that.tradeCurrencyId = res[0].id;
1450
+ that.tradeCurrencyName = res[0].name;
1451
+ that.tradeCurrencyIdTest = res[0].id;
1452
+ that.tradeNUm = res[0].micro_numbers;
1453
+ // that.balance = res[0].micro_account.balance;
1454
+ // that.balanceTest = res[0].micro_account.balance;
1455
+ that.balance = res[0].user_wallet.micro_with_insurance;
1456
+ that.balanceTest = res[0].user_wallet.micro_with_insurance;
1457
+ that.rate = res[0].micro_trade_fee;
1458
+ that.rateTest = res[0].micro_trade_fee;
1459
+ if (that.tradeNUm.length > 0) {
1460
+ console.log(that.tradeNUm)
1461
+ that.inputValue = (that.tradeNUm[0].number - 0).toFixed(0);
1462
+ console.log(that.inputValue)
1463
+ that.inputValueTest = that.tradeNUm[0].number;
1464
+ }
1465
+ }
1466
+ that.$forceUpdate();
1467
+ })
1468
+ },
1469
+
1470
+ //获取开仓时间
1471
+ getSecond(){
1472
+ let that = this;
1473
+ initDataToken({
1474
+ url: 'microtrade/seconds'
1475
+ }, function (res) {
1476
+ that.timeList = res;
1477
+ if (res.length > 0) {
1478
+ that.seconds = res[0].seconds;
1479
+ that.profitRatio = res[0].profit_ratio;
1480
+ that.secondsTest = res[0].seconds;
1481
+ that.profitRatioTest = res[0].profit_ratio
1482
+ }
1483
+ })
1484
+ },
1485
+ //选择交易对
1486
+ selectCurrencys(ids, legalId, currencyId, legalName, currencyName,plate_id) {
1487
+ console.log(ids, legalId, currencyId, legalName, currencyName,plate_id)
1488
+ var that = this;
1489
+ that.currency_match_id = ids;
1490
+ that.legal_id = legalId;
1491
+ that.currency_id = currencyId;
1492
+ that.symbol = currencyName + '/' + legalName;
1493
+ that.currency_name = currencyName;
1494
+ that.legal_name = legalName;
1495
+ that.plate = plate_id
1496
+ $('#mask1').hide();
1497
+ $('#sideColumn').animate({
1498
+ left: '-70%'
1499
+ }, 100);
1500
+ // that.init();
1501
+ // this.getrate();
1502
+ that.createWidget();
1503
+ // that.connects();
1504
+ that.getList();
1505
+ },
1506
+
1507
+ tradeCurrencyClick(num, names) {
1508
+ var that = this;
1509
+ that.tradeCurrencyId = num;
1510
+ that.tradeCurrencyName = names;
1511
+ for (var i = 0; i < that.tradeCurrency.length; i++) {
1512
+ if (that.tradeCurrency[i].id == num) {
1513
+ that.tradeNUm = that.tradeCurrency[i].micro_numbers;
1514
+ console.log(that.tradeNUm)
1515
+ if (that.tradeCurrency[i].user_wallet) {
1516
+ if(that.is_insurance==0){
1517
+ that.balance = that.tradeCurrency[i].user_wallet.micro_balance;
1518
+ }else{
1519
+ that.balance = that.tradeCurrency[i].user_wallet.insurance_balance;
1520
+ }
1521
+ }
1522
+ that.rate = that.tradeCurrency[i].micro_trade_fee;
1523
+ if (that.tradeNUm.length > 0) {
1524
+ that.inputValue = (that.tradeNUm[0].number - 0).toFixed(0);
1525
+ }
1526
+ }
1527
+ }
1528
+ },
1529
+ changeInsurance(types){
1530
+ var that = this;
1531
+ that.is_insurance= types;
1532
+ for (var i = 0; i < that.tradeCurrency.length; i++) {
1533
+ if (that.tradeCurrency[i].id == that.tradeCurrencyId) {
1534
+ if (that.tradeCurrency[i].user_wallet) {
1535
+ if(that.is_insurance==0){
1536
+ that.balance = that.tradeCurrency[i].user_wallet.micro_balance;
1537
+ }else{
1538
+ that.balance = that.tradeCurrency[i].user_wallet.insurance_balance;
1539
+ }
1540
+ }
1541
+ }
1542
+ }
1543
+ },
1544
+ tabNumbers(num) {
1545
+ var that = this;
1546
+ that.inputValue = (num - 0).toFixed(0);
1547
+ },
1548
+ // 买入/卖出按钮点击
1549
+ buyModal(types) {
1550
+ var that = this;
1551
+ that.progress = 100;
1552
+ layer.closeAll();
1553
+ clearInterval(that.set);
1554
+ that.tradeType = types;
1555
+ var text1 = '';
1556
+ var skin = 'confirm-modal btn-text ';
1557
+ if (types == 1) {
1558
+ text1 = that.translatedInfo.buyup + that.currencyName;
1559
+ skin = 'confirm-modal btn-text buys';
1560
+ } else {
1561
+ text1 = that.translatedInfo.buydown + that.currencyName;
1562
+ skin = 'confirm-modal btn-text sells';
1563
+ }
1564
+ layer.open({
1565
+ type: 1,
1566
+ title: text1,
1567
+ area: ['90%', 'auto'],
1568
+ skin: skin,
1569
+ content: $('.orders'),
1570
+ shadeClose: true,
1571
+ btn: [that.translatedInfo.ceil, text1],
1572
+ btn2: function (index) {
1573
+ that.taderSubmit()
1574
+ },
1575
+ success: function () {
1576
+
1577
+ }
1578
+ })
1579
+ },
1580
+ slectedTime() {
1581
+ var that = this;
1582
+ that.progress = 100;
1583
+ layer.closeAll();
1584
+ clearInterval(that.set);
1585
+ layer.open({
1586
+ type: 1,
1587
+ title: false,
1588
+ area: ['100%', 'auto'],
1589
+ skin: 'confirm-modal btn-text second-modal',
1590
+ content: $('.time-modal'),
1591
+ shadeClose: true,
1592
+ fixed: true,
1593
+ offset: 'b',
1594
+ closeBtn: 0,
1595
+ // scrollbar: false,
1596
+ tipsMore: true,
1597
+ // btn: [that.translatedInfo.buyup, that.translatedInfo.buydown],
1598
+ btn: [that.translatedInfo.buy, that.translatedInfo.sell],
1599
+ btn2: function (index) {
1600
+ that.buyModal(2);
1601
+ },
1602
+ yes: function () {
1603
+ that.buyModal(1)
1604
+ }
1605
+ })
1606
+ },
1607
+ // 下单
1608
+ taderSubmit() {
1609
+ var that = this;
1610
+ if (!that.seconds) {
1611
+ layer_msg(that.translatedInfo.ptime);
1612
+ return false;
1613
+ }
1614
+ if (!that.inputValue) {
1615
+ layer_msg(that.translatedInfo.pnum);
1616
+ return false;
1617
+ }
1618
+ // else if (that.inputValue % 10 != 0) {
1619
+ // layer_msg(getlg('multipleTen'));
1620
+ // return false;
1621
+ // }
1622
+ initDataToken({
1623
+ url: 'microtrade/submit',
1624
+ data: {
1625
+ match_id: that.currency_match_id,
1626
+ currency_id: that.tradeCurrencyId,
1627
+ type: that.tradeType,
1628
+ seconds: that.seconds,
1629
+ number: that.inputValue,
1630
+ // is_insurance:that.is_insurance
1631
+ },
1632
+
1633
+ type: 'post'
1634
+ }, function (res) {
1635
+ console.log('index01?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
1636
+ layer_msg(that.translatedInfo.success);
1637
+ initDataToken({
1638
+ url: 'microtrade/payable_currencies'
1639
+ }, function (res) {
1640
+ if (res.length > 0) {
1641
+ for (var i = 0; i < res.length; i++) {
1642
+ if (res[i].id == that.tradeCurrencyId) {
1643
+ if(that.is_insurance==0){
1644
+ that.balance = res[i].user_wallet.micro_balance
1645
+ }else{
1646
+ that.balance = res[i].user_wallet.insurance_balance;
1647
+ }
1648
+ }
1649
+ }
1650
+ }
1651
+ })
1652
+ // location.reload();
1653
+ that.page = 1;
1654
+ that.orderList = [];
1655
+ clearTimeout(that.set);
1656
+ clearInterval(that.sets);
1657
+ that.getList();
1658
+ })
1659
+ },
1660
+ selectTime(num, num1) {
1661
+ console.log(num1)
1662
+ var that = this;
1663
+ that.seconds = num;
1664
+ // that.profitRatio = Number(num1)*100;
1665
+ that.profitRatio = Number(num1);
1666
+ },
1667
+ // 显示左侧
1668
+ showLeft() {
1669
+ var that = this;
1670
+ $('#mask1').show();
1671
+ $('#sideColumn').animate({
1672
+ left: '0'
1673
+ }, 100);
1674
+ },
1675
+ // 关闭左侧
1676
+ closeLeft() {
1677
+ var that = this;
1678
+ $('#mask1').hide();
1679
+ $('#sideColumn').animate({
1680
+ left: '-70%'
1681
+ }, 100);
1682
+ },
1683
+ // 获取期权交易订单列表
1684
+ getList() {
1685
+ var that = this;
1686
+ // that.orderList = [];
1687
+ var arr = [];
1688
+ clearTimeout(that.set);
1689
+ clearInterval(that.sets);
1690
+ initDataToken({
1691
+ url: 'microtrade/lists',
1692
+ data: {
1693
+ page: that.page,
1694
+ status: that.status,
1695
+ limit:10,
1696
+ match_id: that.currency_match_id
1697
+ }
1698
+ }, function (res) {
1699
+ that.hasmore = res.current_page<res.last_page ? true : false;
1700
+ arr = res.data;
1701
+ if(that.page==1){
1702
+ that.orderList=[];
1703
+ }else{
1704
+ arr = that.orderList.concat(arr);
1705
+ }
1706
+ if (arr.length > 0) {
1707
+ var nowTime = new Date().getTime();
1708
+ for (var i = 0; i < arr.length; i++) {
1709
+ arr[i].endTime = (nowTime - 0) + (arr[i].remain_milli_seconds - 0);
1710
+ }
1711
+ that.orderList = arr;
1712
+ that.Djs_time();
1713
+ that.set = setTimeout(that.countDown, 200);
1714
+ }
1715
+ })
1716
+ },
1717
+ getmore(){
1718
+ this.page++;
1719
+ this.getList();
1720
+ },
1721
+ // 订单倒计时
1722
+ countDown(val, indexs, seconds, relSeconds) {
1723
+ var that = this;
1724
+ var timeValue = '';
1725
+ // var process = 100 / Number(seconds);
1726
+ var endItem = val; //获取列表传的截止时间
1727
+ var nowItem = new Date().getTime(); //获取当前时间
1728
+ var timeSpace = endItem - nowItem; //截止时间减去当前时间
1729
+ var seconds = '';
1730
+ if (timeSpace > 0) {
1731
+ seconds = (timeSpace / 1000).toFixed(1);
1732
+ console.log(seconds)
1733
+ return seconds;
1734
+ } else if (timeSpace <= 0) {
1735
+ return 0.0;
1736
+ // 倒计时结束打开
1737
+ // clearTimeout(that.set);
1738
+ // var arr = that.orderList;
1739
+ // arr.splice(indexs,1)
1740
+ // that.orderList = arr;
1741
+ // console.log(that.orderList.splice(indexs,1))
1742
+ // that.orderList = that.orderList.splice(indexs,1);
1743
+ // that.getList();
1744
+ // 或者刷新页面
1745
+ // location.reload();
1746
+ }
1747
+ },
1748
+ Djs_time: function () {
1749
+ this.sets = setInterval(() => {
1750
+ var presentTime = new Date().getTime();
1751
+ this.CountDown = presentTime
1752
+ }, 200);
1753
+ },
1754
+ // 选择期权交易订单类型
1755
+ selectOrder(types) {
1756
+ var that = this;
1757
+ that.status = types;
1758
+ that.page = 1;
1759
+ that.orderList = [];
1760
+ that.getList();
1761
+ },
1762
+ goback() {
1763
+ if(window.plus){
1764
+ // uni.navigateBack({
1765
+ // delta: 1
1766
+ // });
1767
+ history.back(-1);
1768
+ }else{
1769
+ history.back(-1);
1770
+ }
1771
+ },
1772
+ golever(){
1773
+ var data = {
1774
+ legalId: this.legal_id,
1775
+ currencyId: this.currency_id,
1776
+ plateId: this.plate
1777
+ };
1778
+ if(window.plus){
1779
+ window.open(this.url+"h5/#/pages/lever/lever");
1780
+ plus.storage.setItem('leverOrder', JSON.stringify(data));
1781
+ }else{
1782
+ window.location.href=this.url+"h5/#/pages/lever/lever"
1783
+ localStorage.setItem('leverOrder', JSON.stringify(data));
1784
+ }
1785
+ // uni.switchTab({
1786
+ // url: '/pages/lever/lever'
1787
+ // })
1788
+ },
1789
+ // goTrade(mytype) {
1790
+ // let localData = {
1791
+ // legal_name: this.legal_name,
1792
+ // legal_id: this.legal_id,
1793
+ // currency_name: this.currency_name,
1794
+ // currency_id: this.currency_id,
1795
+ // match_id:this.currency_match_id
1796
+ // }
1797
+
1798
+ // if(window.plus){
1799
+ // plus.storage.setItem('tradeData', JSON.stringify(localData));
1800
+ // plus.storage.setItem('tradeType', mytype);
1801
+ // }else{
1802
+ // localStorage.setItem('tradeData', JSON.stringify(localData));
1803
+ // localStorage.setItem('tradeType', mytype);
1804
+ // }
1805
+ // uni.switchTab({
1806
+ // url: '/pages/trade/trade'
1807
+ // })
1808
+ // },
1809
+ timestampToTime(timestamp) {
1810
+ var time=''
1811
+ if(timestamp.toString().length>11){
1812
+ time=timestamp
1813
+ }else{
1814
+ time=timestamp*1000
1815
+ }
1816
+ var now = new Date(time),
1817
+    y = now.getFullYear(),
1818
+    m = now.getMonth() + 1,
1819
+    d = now.getDate();
1820
+    return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
1821
+ },
1822
+
1823
+ // 默认
1824
+ connect(real) { //封装推送数据
1825
+ var that = this,tokens='';
1826
+ if(window.plus){
1827
+ if (plus.storage.getItem('uid')) {
1828
+ tokens=JSON.parse(plus.storage.getItem('uid')).data
1829
+ }
1830
+ }else{
1831
+ if(localStorage.getItem('uid')){
1832
+ tokens = JSON.parse(localStorage.getItem('uid')).data;
1833
+ }
1834
+ }
1835
+ var socket=io(socket_api);
1836
+ socket.emit('login',tokens);
1837
+ socket.on('kline', msg=>{
1838
+ if (msg.type == 'kline') {
1839
+ let obj = {};
1840
+ var types = localStorage.getItem('type');
1841
+ if (that.symbol == msg.symbol) {
1842
+ let data = msg;
1843
+ if (data.period == types) {
1844
+ obj.open = Number(data.open)
1845
+ obj.low = Number(data.low)
1846
+ obj.high = Number(data.high)
1847
+ obj.close = Number(data.close)
1848
+ obj.volume = Number(data.volume)
1849
+ obj.time = Number(data.time)
1850
+ real(obj)
1851
+ }
1852
+ }
1853
+ }
1854
+ });
1855
+
1856
+ socket.on('daymarket', msg=> {
1857
+ if (msg.type == 'daymarket') {
1858
+ if (that.symbol == msg.symbol) {
1859
+ let datas = msg;
1860
+ that.newprice = datas.close;
1861
+ that.maxprice = datas.high;
1862
+ that.minprice = datas.low;
1863
+ that.dayvom = Number(datas.volume).toFixed(4);
1864
+ that.updown = datas.change;
1865
+ }
1866
+ }
1867
+ });
1868
+ socket.on('closed_microorder', msg=> {
1869
+ if (msg.type == 'closed_microorder') {
1870
+ for (var i = 0; i < that.orderList.length; i++) {
1871
+ if (that.orderList[i].id == datas.id) {
1872
+ that.orderList[i] = datas;
1873
+ setTimeout( ()=> {
1874
+ var arr = that.orderList;
1875
+ arr.splice(i, 1)
1876
+ that.orderList = arr;
1877
+ }, 500)
1878
+ return false;
1879
+ }
1880
+ }
1881
+ }
1882
+ });
1883
+ },
1884
+ createWidget() {
1885
+ let _this = this;
1886
+ this.$nextTick(()=> {
1887
+ let widget = _this.widget = new TradingView.widget({
1888
+ symbol: _this.symbol,
1889
+ interval: 1,
1890
+ debug: true,
1891
+ fullscreen: false,
1892
+ autosize: true,
1893
+ container_id: "tv_chart_container",
1894
+ // datafeed: new Datafeeds.UDFCompatibleDatafeed("http://demo_feed.tradingview.com"),
1895
+ datafeed: _this.createFeed(),
1896
+ library_path: "tradeview/charting_library/",
1897
+ custom_css_url: 'bundles/new.css',
1898
+ locale: _this.lang,
1899
+ width: "100%",
1900
+ height: 516,
1901
+ drawings_access: {
1902
+ type: 'black',
1903
+ tools: [{
1904
+ name: "Regression Trend"
1905
+ }]
1906
+ },
1907
+ disabled_features: [ // 禁用的功能
1908
+ 'left_toolbar', 'widget_logo', 'header_saveload', 'compare_symbol', 'display_market_status',
1909
+ 'go_to_date', 'header_chart_type', 'header_compare', 'header_interval_dialog_button',
1910
+ 'header_resolutions', 'header_screenshot', 'header_symbol_search', 'header_undo_redo',
1911
+ 'legend_context_menu', 'show_hide_button_in_legend', 'show_interval_dialog_on_key_press',
1912
+ 'snapshot_trading_drawings', 'symbol_info', 'timeframes_toolbar', 'use_localstorage_for_settings',
1913
+ 'volume_force_overlay'
1914
+ ],
1915
+ enabled_features: [ // 启用的功能(备注:disable_resolution_rebuild 功能用于控制当时间范围为1个月时,日期刻度是否都是每个月1号
1916
+ 'dont_show_boolean_study_arguments', 'hide_last_na_study_output', 'move_logo_to_main_pane',
1917
+ 'same_data_requery', 'side_toolbar_in_fullscreen_mode', 'disable_resolution_rebuild'
1918
+ ],
1919
+ charts_storage_url: 'http://saveload.tradingview.com',
1920
+ charts_storage_api_version: "1.1",
1921
+ toolbar_bg: "transparent",
1922
+ timezone: "Asia/Shanghai",
1923
+ studies_overrides: {
1924
+ "volume.volume.color.0": this.redColor,
1925
+ "volume.volume.color.1": this.greenColor,
1926
+ 'volume.precision': '1000'
1927
+ },
1928
+ overrides: _this.overrides()
1929
+ });
1930
+
1931
+ widget.MAStudies = [];
1932
+ widget.selectedIntervalButton = null;
1933
+ // widget.setLanguage('en')
1934
+ widget.onChartReady(function() { //图表方法
1935
+ // document.getElementById('trade-view').childNodes[0].setAttribute('style', 'display:block;width:100%;height:100%;');
1936
+ //let that =this
1937
+
1938
+ widget.chart().createStudy('Moving Average', false, true, [15, 'close', 0], null, {
1939
+ 'Plot.color': '#e843da'
1940
+ });
1941
+ widget.chart().createStudy("MA Cross", false, false, [10, 20]);
1942
+
1943
+ let buttonArr = [{
1944
+ value: "1min",
1945
+ period: "1",
1946
+ text: "Time",
1947
+ chartType: 3,
1948
+ type: "1min"
1949
+ },
1950
+ {
1951
+ value: "1",
1952
+ period: "1m",
1953
+ text: "1min",
1954
+ chartType: 1,
1955
+ type: "1min"
1956
+ },
1957
+ {
1958
+ value: "5",
1959
+ period: "5m",
1960
+ text: "5min",
1961
+ chartType: 1,
1962
+ type: "5min"
1963
+ },
1964
+ {
1965
+ value: "30",
1966
+ period: "30m",
1967
+ text: "30min",
1968
+ chartType: 1,
1969
+ type: "30min"
1970
+ },
1971
+ {
1972
+ value: "60",
1973
+ period: "60分钟",
1974
+ text: "1hour",
1975
+ chartType: 1,
1976
+ type: "60min"
1977
+ },
1978
+ {
1979
+ value: "1D",
1980
+ period: "1D",
1981
+ text: "1day",
1982
+ chartType: 1,
1983
+ type: "1day"
1984
+ },
1985
+ {
1986
+ value: "1W",
1987
+ period: "1W",
1988
+ text: "1week",
1989
+ chartType: 1,
1990
+ type: "1week"
1991
+ },
1992
+ {
1993
+ value: "1M",
1994
+ period: "1M",
1995
+ text: "1mon",
1996
+ chartType: 1,
1997
+ type: "1mon"
1998
+ }
1999
+ ];
2000
+ let btn = {};
2001
+ let nowTime = '';
2002
+ buttonArr.forEach((v, i) => {
2003
+ let button = widget.createButton()
2004
+ button.attr('title', v.text)
2005
+ .addClass("my2")
2006
+ .text(v.text)
2007
+
2008
+ if (v.text == '1min') {
2009
+ button.css({
2010
+ 'color': '#218bde',
2011
+ 'border-bottom': '1px solid #218bde'
2012
+ })
2013
+ localStorage.setItem('tim', '1min') //默认为1分钟
2014
+ localStorage.setItem('type', '1min') //默认为1分钟
2015
+ }
2016
+ btn = button.on("click", function(e) {
2017
+ $(this).parents(".left").children().find(".my2").removeAttr("style"); //去掉1分钟的
2018
+ handleClick(e, v.value, v.type);
2019
+
2020
+ widget.chart().setChartType(v.chartType); //改变K线类型
2021
+ });
2022
+
2023
+
2024
+ });
2025
+ if (localStorage.getItem('tim') == '1min') {
2026
+ widget.chart().setChartType(1);
2027
+ }
2028
+ let handleClick = (e, value, type) => {
2029
+ _this.setSymbol = function(symbol, value) {
2030
+ gh.chart().setSymbol(symbol, value);
2031
+ };
2032
+ localStorage.setItem('tim', value);
2033
+ localStorage.setItem('type', type) //默认为1分钟
2034
+ widget.chart().setResolution(value, function onReadyCallback() {}); //改变分辨率
2035
+
2036
+ $(e.target)
2037
+ .addClass("mydate")
2038
+ .closest("div.space-single")
2039
+ .siblings("div.space-single")
2040
+ .find("div.button")
2041
+ .removeClass("mydate")
2042
+ };
2043
+ });
2044
+ _this.widget = widget;
2045
+ })
2046
+ },
2047
+ createFeed() {
2048
+ let this_vue = this;
2049
+ let Datafeed = {};
2050
+ Datafeed.DataPulseUpdater = function(datafeed, updateFrequency) {
2051
+ this._datafeed = datafeed;
2052
+ this._subscribers = {};
2053
+
2054
+ this._requestsPending = 0;
2055
+ var that = this;
2056
+
2057
+ var update = function() {
2058
+ // console.log(that._requestsPending)
2059
+ if (that._requestsPending > 0) {
2060
+ return;
2061
+ }
2062
+
2063
+ for (var listenerGUID in that._subscribers) {
2064
+ var subscriptionRecord = that._subscribers[listenerGUID];
2065
+ var resolution = subscriptionRecord.resolution;
2066
+
2067
+ var datesRangeRight = parseInt((new Date().valueOf()) / 1000);
2068
+
2069
+
2070
+ // BEWARE: please note we really need 2 bars, not the only last one
2071
+ // see the explanation below. `10` is the `large enough` value to work around holidays
2072
+ var datesRangeLeft = datesRangeRight - that.periodLengthSeconds(resolution, 10);
2073
+
2074
+ that._requestsPending++;
2075
+
2076
+ (function(_subscriptionRecord) { // eslint-disable-line
2077
+
2078
+ that._datafeed.getBars(_subscriptionRecord.symbolInfo, resolution, datesRangeLeft, datesRangeRight,
2079
+ function(bars) {
2080
+ that._requestsPending--;
2081
+ // console.log(that._requestsPending)
2082
+ // console.log(bars)
2083
+ // means the subscription was cancelled while waiting for data
2084
+ if (!that._subscribers.hasOwnProperty(listenerGUID)) {
2085
+ return;
2086
+ }
2087
+
2088
+ if (bars.length === 0) {
2089
+ return;
2090
+ }
2091
+
2092
+ var lastBar = bars[bars.length - 1];
2093
+ if (!isNaN(_subscriptionRecord.lastBarTime) && lastBar.time < _subscriptionRecord.lastBarTime) {
2094
+ return;
2095
+ }
2096
+
2097
+ var subscribers = _subscriptionRecord.listeners;
2098
+
2099
+ // BEWARE: this one isn't working when first update comes and this update makes a new bar. In this case
2100
+ // _subscriptionRecord.lastBarTime = NaN
2101
+ var isNewBar = !isNaN(_subscriptionRecord.lastBarTime) && lastBar.time > _subscriptionRecord.lastBarTime;
2102
+
2103
+ // Pulse updating may miss some trades data (ie, if pulse period = 10 secods and new bar is started 5 seconds later after the last update, the
2104
+ // old bar's last 5 seconds trades will be lost). Thus, at fist we should broadcast old bar updates when it's ready.
2105
+ if (isNewBar) {
2106
+ if (bars.length < 2) {
2107
+ throw new Error('Not enough bars in history for proper pulse update. Need at least 2.');
2108
+ }
2109
+
2110
+ var previousBar = bars[bars.length - 2];
2111
+ for (var i = 0; i < subscribers.length; ++i) {
2112
+ subscribers[i](previousBar);
2113
+ }
2114
+ }
2115
+
2116
+ _subscriptionRecord.lastBarTime = lastBar.time;
2117
+
2118
+ for (var i = 0; i < subscribers.length; ++i) {
2119
+ subscribers[i](lastBar);
2120
+ }
2121
+ },
2122
+
2123
+ // on error
2124
+ function() {
2125
+ console.log('error')
2126
+ that._requestsPending--;
2127
+ });
2128
+ })(subscriptionRecord);
2129
+ }
2130
+ };
2131
+ // console.log(typeof updateFrequency != 'undefined' && updateFrequency > 0)
2132
+ if (typeof updateFrequency != 'undefined' && updateFrequency > 0) {
2133
+ setInterval(update, updateFrequency);
2134
+ }
2135
+ };
2136
+
2137
+ Datafeed.DataPulseUpdater.prototype.periodLengthSeconds = function(resolution, requiredPeriodsCount) {
2138
+ var daysCount = 0;
2139
+
2140
+ if (resolution === 'D') {
2141
+ daysCount = requiredPeriodsCount;
2142
+ } else if (resolution === 'M') {
2143
+ daysCount = 31 * requiredPeriodsCount;
2144
+ } else if (resolution === 'W') {
2145
+ daysCount = 7 * requiredPeriodsCount;
2146
+ } else {
2147
+ daysCount = requiredPeriodsCount * resolution / (24 * 60);
2148
+ }
2149
+
2150
+ return daysCount * 24 * 60 * 60;
2151
+ };
2152
+
2153
+ Datafeed.DataPulseUpdater.prototype.subscribeDataListener = function(symbolInfo, resolution, newDataCallback,
2154
+ listenerGUID) {
2155
+ this._datafeed._logMessage('Subscribing ' + listenerGUID);
2156
+
2157
+ if (!this._subscribers.hasOwnProperty(listenerGUID)) {
2158
+ this._subscribers[listenerGUID] = {
2159
+ symbolInfo: symbolInfo,
2160
+ resolution: resolution,
2161
+ lastBarTime: NaN,
2162
+ listeners: []
2163
+ };
2164
+ }
2165
+
2166
+ this._subscribers[listenerGUID].listeners.push(newDataCallback);
2167
+ };
2168
+
2169
+ Datafeed.DataPulseUpdater.prototype.unsubscribeDataListener = function(listenerGUID) {
2170
+ this._datafeed._logMessage('Unsubscribing ' + listenerGUID);
2171
+ delete this._subscribers[listenerGUID];
2172
+ };
2173
+
2174
+ Datafeed.Container = function(updateFrequency) {
2175
+ this._configuration = {
2176
+ supports_search: false,
2177
+ supports_group_request: false,
2178
+ supported_resolutions: ['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', '1D', '3D', '1W',
2179
+ '1M'
2180
+ ],
2181
+ supports_marks: true,
2182
+ supports_timescale_marks: true,
2183
+ exchanges: ['gh']
2184
+ };
2185
+ // this._barsPulseUpdater = new Datafeed.DataPulseUpdater(this, updateFrequency || 10 * 1000);
2186
+ this._barsPulseUpdater = new Datafeed.DataPulseUpdater(this, updateFrequency || 1 * 1500);
2187
+ // this._quotesPulseUpdater = new Datafeed.QuotesPulseUpdater(this);
2188
+
2189
+ this._enableLogging = true;
2190
+ this._callbacks = {};
2191
+
2192
+ this._initializationFinished = true;
2193
+ this._fireEvent('initialized');
2194
+ this._fireEvent('configuration_ready');
2195
+ };
2196
+
2197
+ Datafeed.Container.prototype._fireEvent = function(event, argument) {
2198
+ if (this._callbacks.hasOwnProperty(event)) {
2199
+ var callbacksChain = this._callbacks[event];
2200
+ for (var i = 0; i < callbacksChain.length; ++i) {
2201
+ callbacksChain[i](argument);
2202
+ }
2203
+
2204
+ this._callbacks[event] = [];
2205
+ }
2206
+ };
2207
+
2208
+ Datafeed.Container.prototype._logMessage = function(message) {
2209
+ if (this._enableLogging) {
2210
+ var now = new Date();
2211
+ }
2212
+ };
2213
+
2214
+ Datafeed.Container.prototype.on = function(event, callback) {
2215
+ if (!this._callbacks.hasOwnProperty(event)) {
2216
+ this._callbacks[event] = [];
2217
+ }
2218
+
2219
+ this._callbacks[event].push(callback);
2220
+ return this;
2221
+ };
2222
+
2223
+ Datafeed.Container.prototype.onReady = function(callback) {
2224
+ let that = this;
2225
+ if (this._configuration) {
2226
+ setTimeout(function() {
2227
+ callback(that._configuration);
2228
+ }, 0);
2229
+ } else {
2230
+ this.on('configuration_ready', function() {
2231
+ callback(that._configuration);
2232
+ });
2233
+ }
2234
+ };
2235
+
2236
+ Datafeed.Container.prototype.resolveSymbol = function(symbolName, onSymbolResolvedCallback,
2237
+ onResolveErrorCallback) {
2238
+ this._logMessage("GOWNO :: resolve symbol " + symbolName);
2239
+ Promise.resolve().then(() => {
2240
+
2241
+
2242
+ // this._logMessage("GOWNO :: onResultReady inject "+'AAPL');
2243
+ onSymbolResolvedCallback({
2244
+ "name": this_vue.symbol,
2245
+ "timezone": "Asia/Shanghai",
2246
+ "pricescale": this_vue.priceScale,
2247
+ "minmov": 1, //minmov(最小波动), pricescale(价格精度), minmove2, fractional(分数)
2248
+ "minmov2": 0, //这是一个神奇的数字来格式化复杂情况下的价格。
2249
+ "ticker": this_vue.symbol,
2250
+ "description": "",
2251
+ "type": "bitcoin",
2252
+ "volume_precision": 8,
2253
+ // "exchange-traded": "sdt",
2254
+ // "exchange-listed": "sdt",
2255
+ //现在,这两个字段都为某个交易所的略称。将被显示在图表的图例中,以表示此商品。目前此字段不用于其他目的。
2256
+ "has_intraday": true,
2257
+ "has_weekly_and_monthly": true,
2258
+ "has_no_volume": false, //布尔表示商品是否拥有成交量数据。
2259
+ 'session': '24x7',
2260
+ 'supported_resolutions': ['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', '1D', '3D',
2261
+ '1W',
2262
+ '1M'
2263
+ ]
2264
+
2265
+ });
2266
+ })
2267
+ };
2268
+
2269
+
2270
+ //初��化数据
2271
+ Datafeed.Container.prototype.getBars = function(symbolInfo, resolution, rangeStartDate, rangeEndDate,
2272
+ onHistoryCallback, onErrorCallback) {
2273
+ // if (rangeStartDate > 0 && (rangeStartDate + '').length > 10) {
2274
+ // throw new Error(['Got a JS time instead of Unix one.', rangeStartDate, rangeEndDate]);
2275
+ // }
2276
+
2277
+ if (resolution.indexOf('D') == -1 && resolution.indexOf('W') == -1 && resolution.indexOf('M') == -1) {
2278
+ resolution = resolution + 'min'
2279
+ } else if (resolution.indexOf('W') != -1 || resolution.indexOf('M') != -1) {
2280
+ resolution = resolution
2281
+ }
2282
+ // console.log(resolution)
2283
+ // console.log(123)
2284
+ //console.log(rangeStartDate);
2285
+ // console.log(rangeEndDate)
2286
+ // console.log(resolution);
2287
+ // console.log(JSON.stringify(symbolInfo) )
2288
+ // console.log(JSON.stringify(symbolInfo.name).replace('/', "").toLowerCase() )
2289
+
2290
+ $.ajax({
2291
+ url: this_vue.url + 'api/currency/newGetList?' + 'from=' + rangeStartDate + '&to=' + rangeEndDate +
2292
+ '&symbol=' + symbolInfo.name.replace('/', "").toLowerCase() + '&period=' + resolution,
2293
+ //url: this_vue.url + 'api/carousel/getHuobi',
2294
+ type: 'post',
2295
+ success: function(res) {
2296
+ //console.log(res)
2297
+ // console.log(JSON.stringify(res))
2298
+ // if (res.code == 1 && res.data && res.data.length > 0) {
2299
+ // res.data.forEach((item, i) => {
2300
+ if (res.code == 1 && res.data && res.data.length > 0) {
2301
+ res.data.forEach((item, i) => {
2302
+ item.open = Number(item.open)
2303
+ item.close = Number(item.close)
2304
+ item.high = Number(item.high)
2305
+ item.low = Number(item.low)
2306
+ //item.time = item.time
2307
+ //item.volume = Number(item.volume)
2308
+
2309
+ // if(len==i){
2310
+ // console.log(i)
2311
+ // this_vue.newprice = item.close - 0
2312
+ // this_vue.maxprice = item.high - 0
2313
+ // this_vue.minprice = item.low - 0
2314
+ // this_vue.dayvom = Number(item.vol).toFixed(2);
2315
+ // this_vue.updown = ((item.close - item.open) / (item.open - 0) * 100).toFixed(4).toString();
2316
+ // }
2317
+ })
2318
+ onHistoryCallback(res.data, {
2319
+ noData: false
2320
+ })
2321
+ onHistoryCallback([], {
2322
+ noData: true
2323
+ })
2324
+
2325
+ }
2326
+ if (!res.data || res.code == -1) {
2327
+ onHistoryCallback([], {
2328
+ noData: true
2329
+ })
2330
+ }
2331
+ if (res.data && res.data.length == 0) {
2332
+ onHistoryCallback([], {
2333
+ noData: true
2334
+ })
2335
+ }
2336
+
2337
+ }
2338
+ })
2339
+
2340
+ };
2341
+ //实时数据
2342
+ Datafeed.Container.prototype.subscribeBars = function(symbolInfo, resolution, onRealtimeCallback,
2343
+ listenerGUID,
2344
+ onResetCacheNeededCallback) {
2345
+ this_vue.connect(onRealtimeCallback)
2346
+
2347
+ this._barsPulseUpdater.subscribeDataListener(symbolInfo, resolution, onRealtimeCallback, listenerGUID, onResetCacheNeededCallback);
2348
+ };
2349
+
2350
+ Datafeed.Container.prototype.unsubscribeBars = function(listenerGUID) {
2351
+
2352
+ this._barsPulseUpdater.unsubscribeDataListener(listenerGUID);
2353
+
2354
+ };
2355
+
2356
+ return new Datafeed.Container;
2357
+ },
2358
+
2359
+ updateWidget(item) {
2360
+ this.symbolInfo = {
2361
+ name: item,
2362
+ ticker: item,
2363
+ description: "",
2364
+ session: "24x7",
2365
+ supported_resolutions: ['1', '5', '30', '60', '240', '1D', '3D', '1W', '1M'],
2366
+ has_intraday: true,
2367
+ has_daily: true,
2368
+ has_weekly_and_monthly: true,
2369
+ timezone: "UTC",
2370
+ }
2371
+ this.removeWidget();
2372
+ this.createWidget();
2373
+ },
2374
+ removeWidget() {
2375
+ if (this.widget) {
2376
+ this.widget.remove();
2377
+ this.widget = null;
2378
+ }
2379
+ },
2380
+ overrides() {
2381
+ let style = {
2382
+ // up: this.greenColor,
2383
+ // down: this.redColor,
2384
+ bg: "#131f30",
2385
+ grid: "#1E2740",
2386
+ cross: "#1E2740",
2387
+ border: "#4e5b85",
2388
+ text: "#61688A",
2389
+ areatop: "rgba(122, 152, 247, .1)",
2390
+ areadown: "rgba(122, 152, 247, .02)"
2391
+ };
2392
+ return {
2393
+ 'volumePaneSize': "small", //large, medium, small, tiny
2394
+ 'paneProperties.topMargin': '20',
2395
+ "scalesProperties.lineColor": style.bg,
2396
+ "scalesProperties.textColor": style.text,
2397
+ "paneProperties.background": style.bg, //改变背景色的重要代码
2398
+ "paneProperties.vertGridProperties.color": style.grid,
2399
+ "paneProperties.horzGridProperties.color": style.grid,
2400
+ "paneProperties.crossHairProperties.color": style.cross,
2401
+ "paneProperties.legendProperties.showLegend": true,
2402
+ "paneProperties.legendProperties.showStudyArguments": true,
2403
+ "paneProperties.legendProperties.showStudyTitles": true,
2404
+ "paneProperties.legendProperties.showStudyValues": true,
2405
+ "paneProperties.legendProperties.showSeriesTitle": true,
2406
+ "paneProperties.legendProperties.showSeriesOHLC": true,
2407
+ "mainSeriesProperties.candleStyle.upColor": style.up,
2408
+ "mainSeriesProperties.candleStyle.downColor": style.down,
2409
+ "mainSeriesProperties.candleStyle.drawWick": true,
2410
+ "mainSeriesProperties.candleStyle.drawBorder": true,
2411
+ "mainSeriesProperties.candleStyle.borderColor": style.border,
2412
+ "mainSeriesProperties.candleStyle.borderUpColor": style.up,
2413
+ "mainSeriesProperties.candleStyle.borderDownColor": style.down,
2414
+ "mainSeriesProperties.candleStyle.wickUpColor": style.up,
2415
+ "mainSeriesProperties.candleStyle.wickDownColor": style.down,
2416
+ "mainSeriesProperties.candleStyle.barColorsOnPrevClose": false,
2417
+ "mainSeriesProperties.hollowCandleStyle.upColor": style.up,
2418
+ "mainSeriesProperties.hollowCandleStyle.downColor": style.down,
2419
+
2420
+ "mainSeriesProperties.hollowCandleStyle.drawWick": true,
2421
+ "mainSeriesProperties.hollowCandleStyle.drawBorder": true,
2422
+ "mainSeriesProperties.hollowCandleStyle.borderColor": style.border,
2423
+ "mainSeriesProperties.hollowCandleStyle.borderUpColor": style.up,
2424
+ "mainSeriesProperties.hollowCandleStyle.borderDownColor": style.down,
2425
+ "mainSeriesProperties.hollowCandleStyle.wickColor": style.line,
2426
+ "mainSeriesProperties.haStyle.upColor": style.up,
2427
+ "mainSeriesProperties.haStyle.downColor": style.down,
2428
+ "mainSeriesProperties.haStyle.drawWick": true,
2429
+ "mainSeriesProperties.haStyle.drawBorder": true,
2430
+ "mainSeriesProperties.haStyle.borderColor": style.border,
2431
+ "mainSeriesProperties.haStyle.borderUpColor": style.up,
2432
+ "mainSeriesProperties.haStyle.borderDownColor": style.down,
2433
+ "mainSeriesProperties.haStyle.wickColor": style.border,
2434
+ "mainSeriesProperties.haStyle.barColorsOnPrevClose": false,
2435
+ "mainSeriesProperties.barStyle.upColor": style.up,
2436
+ "mainSeriesProperties.barStyle.downColor": style.down,
2437
+ "mainSeriesProperties.barStyle.barColorsOnPrevClose": false,
2438
+ "mainSeriesProperties.barStyle.dontDrawOpen": false,
2439
+ "mainSeriesProperties.lineStyle.color": style.border,
2440
+ "mainSeriesProperties.lineStyle.linewidth": 1,
2441
+ "mainSeriesProperties.lineStyle.priceSource": "close",
2442
+ "mainSeriesProperties.areaStyle.color1": style.areatop,
2443
+ "mainSeriesProperties.areaStyle.color2": style.areadown,
2444
+ "mainSeriesProperties.areaStyle.linecolor": style.borders,
2445
+ "mainSeriesProperties.areaStyle.linewidth": 1,
2446
+ "mainSeriesProperties.areaStyle.priceSource": "close"
2447
+ }
2448
+ }
2449
+ },
2450
+
2451
+ })
2452
+ </script>
2453
+ </body>
2454
+ <style>
2455
+ body{
2456
+ text-transform: capitalize;
2457
+ }
2458
+ button{
2459
+ text-transform: capitalize;
2460
+ }
2461
+ .time-num #top1 li{
2462
+ height: 60px;
2463
+ line-height: 60px;
2464
+ font-size: 18px;
2465
+ width: 33%;
2466
+ }
2467
+ .ft12{
2468
+ font-size: 16px;
2469
+ }
2470
+ .time-num input{
2471
+ height: 60px;
2472
+ line-height: 60px;
2473
+ font-size: 18px;
2474
+ }
2475
+ .currency-list p{
2476
+ height: 60px;
2477
+ line-height: 60px;
2478
+ font-size: 18px;
2479
+ }
2480
+ .dn{
2481
+ display: none;
2482
+ }
2483
+ .all{
2484
+ position:absolute;
2485
+ right:20px;
2486
+ }
2487
+ #bottom .second-buy{
2488
+ width: 165px;
2489
+ font-size: 16px;
2490
+ }
2491
+ </style>
2492
+ </html>
hybrid/html/javascripts/axios.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ /* axios v0.19.2 | (c) 2020 by Matt Zabriskie */
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new s(e),n=i(s.prototype.request,t);return o.extend(n,s.prototype,t),o.extend(n,t),n}var o=n(2),i=n(3),s=n(4),a=n(22),u=n(10),c=r(u);c.Axios=s,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===j.call(e)}function o(e){return"undefined"==typeof e}function i(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function s(e){return"[object ArrayBuffer]"===j.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){return"[object Date]"===j.call(e)}function l(e){return"[object File]"===j.call(e)}function h(e){return"[object Blob]"===j.call(e)}function m(e){return"[object Function]"===j.call(e)}function y(e){return p(e)&&m(e.pipe)}function g(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function v(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function w(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}function b(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=b(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;n<r;n++)w(arguments[n],e);return t}function E(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=E(t[n],e):"object"==typeof e?t[n]=E({},e):t[n]=e}for(var t={},n=0,r=arguments.length;n<r;n++)w(arguments[n],e);return t}function S(e,t,n){return w(t,function(t,r){n&&"function"==typeof t?e[r]=C(t,n):e[r]=t}),e}var C=n(3),j=Object.prototype.toString;e.exports={isArray:r,isArrayBuffer:s,isBuffer:i,isFormData:a,isArrayBufferView:u,isString:c,isNumber:f,isObject:p,isUndefined:o,isDate:d,isFile:l,isBlob:h,isFunction:m,isStream:y,isURLSearchParams:g,isStandardBrowserEnv:x,forEach:w,merge:b,deepMerge:E,extend:S,trim:v}},function(e,t){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";function r(e){this.defaults=e,this.interceptors={request:new s,response:new s}}var o=n(2),i=n(5),s=n(6),a=n(7),u=n(22);r.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=u(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},r.prototype.getUri=function(e){return e=u(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},o.forEach(["delete","get","head","options"],function(e){r.prototype[e]=function(t,n){return this.request(o.merge(n||{},{method:e,url:t}))}}),o.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(o.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=r},function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=n(2);e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(o.isURLSearchParams(t))i=t.toString();else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)?t+="[]":e=[e],o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}if(i){var a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}},function(e,t,n){"use strict";function r(){this.handlers=[]}var o=n(2);r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=r},function(e,t,n){"use strict";function r(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=n(2),i=n(8),s=n(9),a=n(10);e.exports=function(e){r(e),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),o.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||a.adapter;return t(e).then(function(t){return r(e),t.data=i(t.data,t.headers,e.transformResponse),t},function(t){return s(t)||(r(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";function r(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function o(){var e;return"undefined"!=typeof XMLHttpRequest?e=n(12):"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(e=n(12)),e}var i=n(2),s=n(11),a={"Content-Type":"application/x-www-form-urlencoded"},u={adapter:o(),transformRequest:[function(e,t){return s(t,"Accept"),s(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(r(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)?(r(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){u.headers[e]={}}),i.forEach(["post","put","patch"],function(e){u.headers[e]=i.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),i=n(5),s=n(16),a=n(19),u=n(20),c=n(14);e.exports=function(e){return new Promise(function(t,f){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var y=s(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in l?a(l.getAllResponseHeaders()):null,r=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:r,status:l.status,statusText:l.statusText,headers:n,config:e,request:l};o(t,f,i),l=null}},l.onabort=function(){l&&(f(c("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){f(c("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(c(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=n(21),v=(e.withCredentials||u(y))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;v&&(d[e.xsrfHeaderName]=v)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),f(e),l=null)}),void 0===p&&(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(17),o=n(18);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?s[t]=(s[t]?s[t]:[]).concat([n]):s[t]=s[t]?s[t]+", "+n:n}}),s):s}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],s=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,function(e){"undefined"!=typeof t[e]&&(n[e]=t[e])}),r.forEach(i,function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):"undefined"!=typeof t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):"undefined"!=typeof e[o]&&(n[o]=e[o])}),r.forEach(s,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])});var a=o.concat(i).concat(s),u=Object.keys(t).filter(function(e){return a.indexOf(e)===-1});return r.forEach(u,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])}),n}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}}])});
3
+ //# sourceMappingURL=axios.min.map
hybrid/html/javascripts/dataMap.js ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ $(function() {
2
+ //=================li标签切换=====================
3
+ $('.tab_content .tab_list').eq(0).show();
4
+
5
+ $('ul.information>li').click(function(){
6
+ $(this).addClass('borb2').siblings().removeClass('borb2');
7
+ var index = $(this).index();
8
+ $('.tab_content .tab_list').hide().eq(index).show();
9
+ // var length = $('#record>div>table').eq(index).find('tr').length;
10
+ // for(var i=0;i<length;i++) {
11
+ // var the = $('#record>div>table').eq(index).find('tr').eq(i).find('td').eq(1);
12
+ // if(the.html() == '买入'){
13
+ // the.addClass('g');
14
+ // }else if(the.html() == '卖出'){
15
+ // the.addClass('p');
16
+ // }
17
+ // }
18
+
19
+ });
20
+ //=====================================
21
+ $('#bottom>dl').click(function(){
22
+ if($(this).hasClass('act') == false){
23
+ $(this).addClass('act');
24
+ $(this).find('dt>img').attr('src','images/collect1.png').parent('dt').next('dd').html('已收藏')
25
+ }else{
26
+ $(this).removeClass('act');
27
+ $(this).find('dt>img').attr('src','images/collect2.png').parent('dt').next('dd').html('添加自选')
28
+ }
29
+
30
+ });
31
+
32
+ });
33
+
hybrid/html/javascripts/echarts.min.js ADDED
The diff for this file is too large to render. See raw diff
 
hybrid/html/javascripts/jquery.cookie.js ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery Cookie Plugin v1.4.1
3
+ * https://github.com/carhartl/jquery-cookie
4
+ *
5
+ * Copyright 2013 Klaus Hartl
6
+ * Released under the MIT license
7
+ */
8
+ (function (factory) {
9
+ if (typeof define === 'function' && define.amd) {
10
+ // AMD
11
+ define(['jquery'], factory);
12
+ } else if (typeof exports === 'object') {
13
+ // CommonJS
14
+ factory(require('jquery'));
15
+ } else {
16
+ // Browser globals
17
+ factory(jQuery);
18
+ }
19
+ }(function ($) {
20
+
21
+ var pluses = /\+/g;
22
+
23
+ function encode(s) {
24
+ return config.raw ? s : encodeURIComponent(s);
25
+ }
26
+
27
+ function decode(s) {
28
+ return config.raw ? s : decodeURIComponent(s);
29
+ }
30
+
31
+ function stringifyCookieValue(value) {
32
+ return encode(config.json ? JSON.stringify(value) : String(value));
33
+ }
34
+
35
+ function parseCookieValue(s) {
36
+ if (s.indexOf('"') === 0) {
37
+ // This is a quoted cookie as according to RFC2068, unescape...
38
+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
39
+ }
40
+
41
+ try {
42
+ // Replace server-side written pluses with spaces.
43
+ // If we can't decode the cookie, ignore it, it's unusable.
44
+ // If we can't parse the cookie, ignore it, it's unusable.
45
+ s = decodeURIComponent(s.replace(pluses, ' '));
46
+ return config.json ? JSON.parse(s) : s;
47
+ } catch(e) {}
48
+ }
49
+
50
+ function read(s, converter) {
51
+ var value = config.raw ? s : parseCookieValue(s);
52
+ return $.isFunction(converter) ? converter(value) : value;
53
+ }
54
+
55
+ var config = $.cookie = function (key, value, options) {
56
+
57
+ // Write
58
+
59
+ if (value !== undefined && !$.isFunction(value)) {
60
+ options = $.extend({}, config.defaults, options);
61
+
62
+ if (typeof options.expires === 'number') {
63
+ var days = options.expires, t = options.expires = new Date();
64
+ t.setTime(+t + days * 864e+5);
65
+ }
66
+
67
+ return (document.cookie = [
68
+ encode(key), '=', stringifyCookieValue(value),
69
+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
70
+ options.path ? '; path=' + options.path : '',
71
+ options.domain ? '; domain=' + options.domain : '',
72
+ options.secure ? '; secure' : ''
73
+ ].join(''));
74
+ }
75
+
76
+ // Read
77
+
78
+ var result = key ? undefined : {};
79
+
80
+ // To prevent the for loop in the first place assign an empty array
81
+ // in case there are no cookies at all. Also prevents odd result when
82
+ // calling $.cookie().
83
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
84
+
85
+ for (var i = 0, l = cookies.length; i < l; i++) {
86
+ var parts = cookies[i].split('=');
87
+ var name = decode(parts.shift());
88
+ var cookie = parts.join('=');
89
+
90
+ if (key && key === name) {
91
+ // If second argument (value) is a function it's a converter...
92
+ result = read(cookie, value);
93
+ break;
94
+ }
95
+
96
+ // Prevent storing a cookie that we couldn't decode.
97
+ if (!key && (cookie = read(cookie)) !== undefined) {
98
+ result[name] = cookie;
99
+ }
100
+ }
101
+
102
+ return result;
103
+ };
104
+
105
+ config.defaults = {};
106
+
107
+ $.removeCookie = function (key, options) {
108
+ if ($.cookie(key) === undefined) {
109
+ return false;
110
+ }
111
+
112
+ // Must not alter options, thus extending a fresh object...
113
+ $.cookie(key, '', $.extend({}, options, { expires: -1 }));
114
+ return !$.cookie(key);
115
+ };
116
+
117
+ }));
hybrid/html/javascripts/kline.js ADDED
@@ -0,0 +1,1080 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var myChart;
2
+ var ws; // WebSocket 实例
3
+ // 弹窗
4
+ function alertError(title) {
5
+ document.addEventListener('plusready', function() {
6
+ console.log('......')
7
+ })
8
+ try {
9
+ plus.nativeUI.toast(title, {
10
+ icon: '/static/common/toast-error.png',
11
+ style: 'inline',
12
+ verticalAlign: 'top'
13
+ });
14
+ } catch (e) {
15
+ //TODO handle the exception
16
+ }
17
+ }
18
+ var app = new Vue({
19
+ el: '#app',
20
+ data: {
21
+ MA5: '',
22
+ MA10: '',
23
+ MA30: '',
24
+ MA60: '',
25
+ volMA5: '',
26
+ volMA10: '',
27
+ current: '1min',
28
+ tabs: [{
29
+ 'label': '1分钟',
30
+ 'value': '1min'
31
+ },
32
+ {
33
+ 'label': '5分钟',
34
+ 'value': '5min'
35
+ },
36
+ {
37
+ 'label': '15分钟',
38
+ 'value': '15min'
39
+ },
40
+ {
41
+ 'label': '30分钟',
42
+ 'value': '30min'
43
+ },
44
+ {
45
+ 'label': '1小时',
46
+ 'value': '60min'
47
+ },
48
+ {
49
+ 'label': '4小时',
50
+ 'value': '4hour'
51
+ },
52
+ {
53
+ 'label': '1天',
54
+ 'value': '1day'
55
+ },
56
+ {
57
+ 'label': '1个月',
58
+ 'value': '1mon'
59
+ },
60
+ ],
61
+ category: 1,
62
+ categoryList: [{
63
+ 'label': '深度',
64
+ 'value': 1
65
+ },
66
+ {
67
+ 'label': '实时成交',
68
+ 'value': 2
69
+ },
70
+ {
71
+ 'label': '简介',
72
+ 'value': 3
73
+ },
74
+ ],
75
+ txData: {}, //交易数据统计
76
+ buyList: [],
77
+ sellList: [],
78
+ dealHis: [],
79
+ tokenInfo: {},
80
+ page: 1,
81
+ klineData: [], // 存储K线数据
82
+ volumesData: [],
83
+ depthList: {},
84
+ dates: [],
85
+ period: '1min',
86
+ currency_name:'',
87
+ pair:'btcusdt',
88
+ rid:null,
89
+
90
+ },
91
+ created() {
92
+ //this.getDepth()
93
+ },
94
+ mounted() {
95
+ const params = new URLSearchParams(window.location.search);
96
+ const symbol = params.get('symbol');
97
+ const pair = params.get('pair');
98
+ this.currency_name=symbol;
99
+ this.pair=pair
100
+
101
+ myChart = echarts.init(document.getElementById('main'));
102
+ this.draw()
103
+ //this.getKline()
104
+ // 连接 WebSocket 服务
105
+ this.connectWebSocket();
106
+ },
107
+ methods: {
108
+ // 返回上一页
109
+ back() {
110
+ uni.navigateBack()
111
+ },
112
+ // 获取k线数据,生成k线
113
+ getKline() {
114
+ var dataMA5 = this.calculateMA(5, this.klineData);
115
+ var dataMA10 = this.calculateMA(10, this.klineData);
116
+ var dataMA30 = this.calculateMA(30, this.klineData);
117
+ //var dataMA60 = this.calculateMA(60, this.klineData);
118
+ var volumeMA5 = this.calculateMA(5, this.volumesData);
119
+ var volumeMA10 = this.calculateMA(10, this.volumesData);
120
+ myChart.setOption({
121
+ tooltip: {
122
+ trigger: 'axis',
123
+ axisPointer: {
124
+ type: 'cross'
125
+ }
126
+ },
127
+ xAxis: [{
128
+ data: this.dates
129
+ },
130
+ {
131
+ data: this.dates
132
+ },
133
+ ],
134
+ series: [{
135
+ name: '日K',
136
+ data: this.klineData
137
+ },
138
+ {
139
+ name: 'MA5',
140
+ data: dataMA5
141
+ },
142
+ {
143
+ name: 'MA10',
144
+ data: dataMA10
145
+ },
146
+ {
147
+ name: 'MA30',
148
+ data: dataMA30
149
+ },
150
+ // {
151
+ // name: 'MA60',
152
+ // data: dataMA60
153
+ // },
154
+ {
155
+ name: 'Volume',
156
+ data: this.volumesData
157
+ },
158
+ {
159
+ name: 'VolumeMA5',
160
+ data: volumeMA5
161
+ },
162
+ {
163
+ name: 'VolumeMA10',
164
+ data: volumeMA10
165
+ },
166
+ ]
167
+ })
168
+ },
169
+ // 列表条数不足补全
170
+ addItem(list, type) {
171
+ // type: 1开头加,2末尾加
172
+ list = list || [];
173
+ let len = 20 - list.length;
174
+ if (len > 0) {
175
+ for (let i = 0; i < len; i++) {
176
+ if (type == 1) {
177
+ list.unshift({})
178
+ } else {
179
+ list.push({})
180
+ }
181
+ }
182
+ }
183
+ return list;
184
+ },
185
+ // 获取深度数据
186
+ getDepth() {
187
+ this.buyList = this.addItem(this.depthList.buyList || []);
188
+ this.sellList = this.addItem(this.depthList.sellList || []);
189
+ },
190
+ // 获取成交记录
191
+ getDealHis() {
192
+ //this.dealHis=dealHis();
193
+ },
194
+ // 获取项目简介信息
195
+ getTokenInfo() {
196
+ this.tokenInfo = tokenInfo;
197
+ },
198
+
199
+ // 切换tab
200
+ switchTab(val) {
201
+ let _self=this
202
+ //console.log(val)
203
+ if (this.current == val) return;
204
+ console.log("--------------------------------",this.period)
205
+ this.current = val;
206
+ let curPeriod = this.period;
207
+ let klineUnsubUrl="market."+_self.pair+".kline."+this.period;
208
+ // 取消订阅数据
209
+ let unsubKline = {
210
+ event: "un_sub",
211
+ channel: [klineUnsubUrl],
212
+ id: _self.rid,
213
+ type: "kline"
214
+ };
215
+ ws.send(JSON.stringify(unsubKline));
216
+
217
+ this.period = val;
218
+ //market.kline.btcusdt.1min.page
219
+ let klineReqUrl = "market.kline." +_self.pair+"."+ _self.period + '.init';
220
+ // 请求对应信息的数据
221
+ //market.kline.btcusdt.1min
222
+ let requestKline = {
223
+ event: "req",
224
+ channel: [klineReqUrl],
225
+ //id: _self.rid
226
+ };
227
+ //market.btcusdt.kline.1min
228
+ // 订阅数据
229
+ let klineUrlPrefix = "market."+_self.pair+".kline."+this.period;
230
+ let subKline = {
231
+ event: "sub",
232
+ channel: [klineUrlPrefix],
233
+ id: _self.rid,
234
+ type: "kline"
235
+ };
236
+
237
+ //请求历史 K线数据
238
+ ws.send(JSON.stringify(requestKline));
239
+ //重新订阅数据
240
+ ws.send(JSON.stringify(subKline));
241
+ this.getKline()
242
+ },
243
+ // 切换类目
244
+ switchCategory(val) {
245
+ if (this.category == val) return;
246
+ this.category = val;
247
+ if (this.category == 1) {
248
+ this.getDepth()
249
+ } else if (this.category == 2) {
250
+ this.getDealHis()
251
+ } else {
252
+ this.getTokenInfo()
253
+ }
254
+ },
255
+ // 截取数字字符串 保留precision小数
256
+ formatterNum(value, precision) {
257
+ let reg = new RegExp('^\\d+(?:\\.\\d{0,' + precision + '})?')
258
+ return value.toString().match(reg)
259
+ },
260
+ // 计算MA
261
+ calculateMA(dayCount, data) {
262
+ var result = [];
263
+ for (var i = 0, len = data.length; i < len; i++) {
264
+ if (i < dayCount) {
265
+ result.push('-');
266
+ continue;
267
+ }
268
+ var sum = 0;
269
+ for (var j = 0; j < dayCount; j++) {
270
+ sum += data[i - j][1];
271
+ }
272
+ result.push((sum / dayCount).toFixed(2));
273
+ }
274
+ return result;
275
+ },
276
+ // 绘制(配置项)
277
+ draw() {
278
+ let that = this;
279
+ var upColor = '#03ad91';
280
+ var downColor = '#dd345b';
281
+ var colorList = ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622',
282
+ '#bda29a', '#6e7074',
283
+ '#546570', '#c4ccd3'
284
+ ];
285
+ var labelFont = 'bold 12px Sans-serif';
286
+ var option = {
287
+ backgroundColor: '#0d1723',
288
+ title: {
289
+ show: false
290
+ },
291
+ legend: {
292
+ show: false
293
+ },
294
+ visualMap: {
295
+ show: false,
296
+ seriesIndex: 4,
297
+ dimension: 2,
298
+ pieces: [{
299
+ value: 1,
300
+ color: downColor
301
+ }, {
302
+ value: -1,
303
+ color: upColor
304
+ }]
305
+ },
306
+ grid: [{
307
+ top: '5%',
308
+ left: 20,
309
+ right: 30,
310
+ height: '70%'
311
+ },
312
+ {
313
+ top: '80%',
314
+ left: 20,
315
+ right: 30,
316
+ height: '16%'
317
+ },
318
+ ],
319
+ axisPointer: { //坐标轴指示器配置项
320
+ link: {
321
+ xAxisIndex: 'all'
322
+ },
323
+ label: {
324
+ backgroundColor: '#0d1723',
325
+ color: '#fff',
326
+ borderColor: 'rgb(99, 117, 139)',
327
+ borderWidth: 1,
328
+ borderRadius: 2,
329
+ fontSize: 10
330
+ }
331
+ },
332
+ xAxis: [{
333
+ type: 'category', //坐标轴类型。(value:数值轴,适用于连续数据。,category:类目轴,适用于离散的类目数据,time: 时间轴,适用于连续的时序数据,log:对数轴。适用于对数数据)
334
+ data: [], //类目数据,在类目轴(type: 'category')中有效。
335
+ scale: true,
336
+ boundaryGap: false, //坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。
337
+ axisLine: {
338
+ show: false
339
+ }, //坐标轴轴线相关设置
340
+ axisTick: {
341
+ show: false
342
+ }, //坐标轴刻度相关设置。
343
+ axisLabel: {
344
+ show: false,
345
+ }, //坐标轴刻度标签的相关设置。
346
+ splitLine: {
347
+ show: false,
348
+ lineStyle: {
349
+ color: 'rgba(255,255,255, 0.1)'
350
+ }
351
+ }, //坐标轴在 grid 区域中的分隔线。
352
+ min: 'dataMin', //坐标轴刻度最小值。可以设置成特殊值 'dataMin',此时取数据在该轴上的最小值作为最小刻度。
353
+ max: 'dataMax', //坐标轴刻度最大值。可以设置成特殊值 'dataMax',此时取数据在该轴上的最大值作为最大刻度。
354
+ axisPointer: {
355
+ //snap: true,
356
+ label: {
357
+ margin: 200
358
+ }
359
+ },
360
+ }, {
361
+ type: 'category',
362
+ gridIndex: 1, //x 轴所在的 grid 的索引,默认位于第一个 grid。
363
+ data: [], //类目数据,在类目轴(type: 'category')中有效。
364
+ scale: true,
365
+ boundaryGap: false, //坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。
366
+ axisLine: {
367
+ show: false,
368
+ lineStyle: {
369
+ color: 'rgba(255,255,255,1)',
370
+ width: 1
371
+ }
372
+ }, //坐标轴轴线相关设置
373
+ axisTick: {
374
+ show: false
375
+ }, //坐标轴刻度相关设置。
376
+ axisLabel: { //坐标轴刻度标签的相关设置。
377
+ show: true,
378
+ margin: 6,
379
+ fontSize: 10,
380
+ color: 'rgba(99, 117, 139, 1.0)',
381
+ formatter: function(value) {
382
+ return echarts.format.formatTime('MM-dd', value);
383
+ }
384
+ },
385
+ splitNumber: 20,
386
+ splitLine: {
387
+ show: false,
388
+ lineStyle: {
389
+ color: 'rgba(255,255,255, 0.1)'
390
+ }
391
+ }, //坐标轴在 grid 区域中的分隔线。
392
+ min: 'dataMin', //坐标轴刻度最小值。可以设置成特殊值 'dataMin',此时取数据在该轴上的最小值作为最小刻度。
393
+ max: 'dataMax', //坐标轴刻度最大值。可以设置成特殊值 'dataMax',此时取数据在该轴上的最大值作为最大刻度。
394
+ // axisPointer: { show: true, type: 'none', label: { show: false }},
395
+ }],
396
+ yAxis: [{
397
+ type: 'value', //坐标轴类型。(value:数值轴,适用于连续数据。,category:类目轴,适用于离散的类目数据,time: 时间轴,适用于连续的时序数据,log:对数轴。适用于对数数据)
398
+ position: 'right', //y 轴的位置。'left','right'
399
+ scale: true, //是否是脱离 0 值比例。设置成 true 后坐标刻度不会强制包含零刻度。在双数值轴的散点图中比较有用。(在设置 min 和 max 之后该配置项无效。)
400
+ axisLine: {
401
+ show: true
402
+ }, //坐标���轴线相关设置。
403
+ axisTick: {
404
+ show: true,
405
+ inside: true
406
+ }, //坐标轴刻度相关设置。
407
+ axisLabel: { //坐标轴刻度标签的相关设置。
408
+ show: true,
409
+ color: 'rgba(99, 117, 139, 1.0)',
410
+ inside: true,
411
+ fontSize: 10,
412
+ formatter: function(value) {
413
+ return Number(value).toFixed(2)
414
+ }
415
+ },
416
+ splitLine: {
417
+ show: false,
418
+ lineStyle: {
419
+ color: 'rgba(255,255,255, 0.1)'
420
+ }
421
+ }, //坐标轴在 grid 区域中的分隔线。
422
+ }, {
423
+ type: 'value',
424
+ position: 'right',
425
+ scale: true,
426
+ gridIndex: 1,
427
+ axisLine: {
428
+ show: false
429
+ },
430
+ axisTick: {
431
+ show: false
432
+ },
433
+ axisLabel: {
434
+ show: false
435
+ },
436
+ splitLine: {
437
+ show: false
438
+ }
439
+ }],
440
+
441
+ animation: false, //是否开启动画。
442
+ color: colorList,
443
+ tooltip: {
444
+ show: true, //是否显示提示框组件,包括提示框浮层和 axisPointer。
445
+ trigger: 'axis', //触发类型。item,axis,none
446
+ formatter(params) {
447
+ let tooltip = '';
448
+ let time = '',
449
+ open = 0,
450
+ high = 0,
451
+ low = 0,
452
+ close = 0,
453
+ amount = 0;
454
+ for (var i = 0; i < params.length; i++) {
455
+ if (params[i].seriesName === '日K') {
456
+ time = params[i].name;
457
+ open = params[i].data.length > 1 ? Number(that.formatterNum(params[i].data[
458
+ 1], 2)) : 0;
459
+ close = params[i].data.length > 1 ? Number(that.formatterNum(params[i].data[
460
+ 2], 2)) : 0;
461
+ low = params[i].data.length > 1 ? Number(that.formatterNum(params[i].data[
462
+ 3], 2)) : 0;
463
+ high = params[i].data.length > 1 ? Number(that.formatterNum(params[i].data[
464
+ 4], 2)) : 0;
465
+ amount = params[i].data.length > 1 ? Number(that.formatterNum(params[i]
466
+ .data[5], 2)) : 0;
467
+ // console.log(time,open,close,low,high,amount)
468
+ tooltip = '<div class="charts-tooltip">' +
469
+ '<div class="charts-tooltip-row"><div class="ctr-label">' + '时间' +
470
+ '</div><div class="ctr-value">' + time + '</div></div>' +
471
+ '<div class="charts-tooltip-row"><div class="ctr-label">' + '开' +
472
+ '</div><div class="ctr-value">' + open + '</div></div>' +
473
+ '<div class="charts-tooltip-row"><div class="ctr-label">' + '高' +
474
+ '</div><div class="ctr-value">' + high + '</div></div>' +
475
+ '<div class="charts-tooltip-row"><div class="ctr-label">' + '低' +
476
+ '</div><div class="ctr-value">' + low + '</div></div>' +
477
+ '<div class="charts-tooltip-row"><div class="ctr-label">' + '收' +
478
+ '</div><div class="ctr-value">' + close + '</div></div>' +
479
+ '<div class="charts-tooltip-row"><div class="ctr-label">' + '数量' +
480
+ '</div><div class="ctr-value">' + amount + '</div></div></div>';
481
+ }
482
+ if (params[i].seriesName === 'MA5') {
483
+ that.MA5 = params[i].data !== 'NAN' ? Number(that.formatterNum(params[i]
484
+ .data, 2)) : 0
485
+ }
486
+ if (params[i].seriesName === 'MA10') {
487
+ that.MA10 = params[i].data !== 'NAN' ? Number(that.formatterNum(params[i]
488
+ .data, 2)) : 0
489
+ }
490
+ if (params[i].seriesName === 'MA30') {
491
+ that.MA30 = params[i].data !== 'NAN' ? Number(that.formatterNum(params[i]
492
+ .data, 2)) : 0
493
+ }
494
+ // if (params[i].seriesName === 'MA60') {
495
+ // that.MA60 = params[i].data !== 'NAN' ? Number(that.formatterNum(params[i].data, 2)) : 0
496
+ // }
497
+ if (params[i].seriesName === 'VolumeMA5') {
498
+ that.volMA5 = params[i].data !== 'NAN' ? Number(that.formatterNum(params[i]
499
+ .data, 2)) : 0
500
+ }
501
+ if (params[i].seriesName === 'VolumeMA10') {
502
+ that.volMA10 = params[i].data !== 'NAN' ? Number(that.formatterNum(params[i]
503
+ .data, 2)) : 0
504
+ }
505
+ }
506
+ return tooltip;
507
+ },
508
+ triggerOn: 'click', //提示框触发的条件 'mousemove','click','mousemove|click','none'
509
+ textStyle: {
510
+ fontSize: 10
511
+ }, //提示框浮层的文本样式
512
+ backgroundColor: 'rgba(30,42,66,0.8);', //提示框浮层的背景颜色。
513
+ borderColor: '#2f3a56', //提示框浮层的边框颜色。
514
+ borderWidth: 2,
515
+ position: function(pos, params, el, elRect, size) { //提示框浮层的位置,默认不设置时位置会跟随鼠标的位置。
516
+ var obj = {
517
+ top: 20
518
+ };
519
+ obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 10;
520
+ return obj;
521
+ },
522
+ axisPointer: { //坐标轴指示器配置项。
523
+ label: {
524
+ color: 'rgba(255,255,255,.87)',
525
+ fontSize: 9,
526
+ backgroundColor: '#020204',
527
+ borderColor: "#9c9fa4",
528
+ shadowBlur: 0,
529
+ borderWidth: 0.5,
530
+ padding: [4, 2, 3, 2],
531
+ },
532
+ animation: false,
533
+ type: 'cross',
534
+ lineStyle: {
535
+ color: {
536
+ type: 'linear',
537
+ x: 0,
538
+ y: 0,
539
+ x2: 0,
540
+ y2: 1,
541
+ colorStops: [{
542
+ offset: 0,
543
+ color: 'rgba(30, 42, 66, 0.1)' // 0% 处的颜色
544
+ }, {
545
+ offset: 0.7,
546
+ color: 'rgba(30, 42, 66,0.9)' // 100% 处的颜色
547
+ }, {
548
+ offset: 1,
549
+ color: 'rgba(30, 42, 66,0.2)' // 100% 处的颜色
550
+ }]
551
+ },
552
+ width: 10,
553
+ shadowColor: 'rgba(30, 42, 66,0.7)',
554
+ shadowBlur: 0,
555
+ shadowOffsetY: 68,
556
+ }
557
+ }
558
+ },
559
+
560
+ dataZoom: [{ //用于区域缩放
561
+ type: 'inside',
562
+ xAxisIndex: [0, 1],
563
+ realtime: false,
564
+ start: 50,
565
+ end: 100,
566
+ }],
567
+ series: [{
568
+ type: 'candlestick',
569
+ name: '日K',
570
+ data: [],
571
+ itemStyle: {
572
+ color: upColor,
573
+ color0: downColor,
574
+ borderColor: upColor,
575
+ borderColor0: downColor
576
+ },
577
+ markPoint: {
578
+ symbol: 'rect',
579
+ symbolSize: [-10, 0.5],
580
+ symbolOffset: [5, 0],
581
+ itemStyle: {
582
+ color: 'rgba(255,255,255,.87)'
583
+ },
584
+ label: {
585
+ color: 'rgba(255,255,255,.87)',
586
+ offset: [10, 0],
587
+ fontSize: 10,
588
+ align: 'left',
589
+ formatter: function(params) {
590
+ return Number(params.value).toFixed(2)
591
+ }
592
+ },
593
+ data: [{
594
+ name: 'max',
595
+ type: 'max',
596
+ valueDim: 'highest'
597
+ },
598
+ {
599
+ name: 'min',
600
+ type: 'min',
601
+ valueDim: 'lowest'
602
+ }
603
+ ]
604
+ },
605
+ },
606
+ {
607
+ name: 'MA5',
608
+ type: 'line',
609
+ data: [],
610
+ symbol: 'none', //去除圆点
611
+ smooth: true,
612
+ lineStyle: {
613
+ normal: {
614
+ opacity: 1,
615
+ width: 1,
616
+ color: "#eef4ba"
617
+ }
618
+ },
619
+ z: 5
620
+ },
621
+ {
622
+ name: 'MA10',
623
+ type: 'line',
624
+ data: [],
625
+ symbol: 'none', //去除圆点
626
+ smooth: true,
627
+ lineStyle: {
628
+ normal: {
629
+ opacity: 1,
630
+ width: 1,
631
+ color: '#83c1c5'
632
+ }
633
+ },
634
+ z: 4
635
+ },
636
+ {
637
+ name: 'MA30',
638
+ type: 'line',
639
+ data: [],
640
+ symbol: 'none', //去除圆点
641
+ smooth: true,
642
+ lineStyle: {
643
+ normal: {
644
+ opacity: 1,
645
+ width: 1,
646
+ color: '#b39cd8'
647
+ }
648
+ },
649
+ z: 3
650
+ },
651
+ // {
652
+ // name: 'MA60',
653
+ // type: 'line',
654
+ // data: [],
655
+ // symbol: 'none',//去除圆点
656
+ // smooth: true,
657
+ // lineStyle: { normal: { opacity: 1, width: 1, color: '#b39cd8' } },
658
+ // z: 1
659
+ // },
660
+ {
661
+ name: 'Volume',
662
+ type: 'bar',
663
+ xAxisIndex: 1,
664
+ yAxisIndex: 1,
665
+ data: []
666
+ },
667
+ {
668
+ name: 'VolumeMA5',
669
+ type: 'line',
670
+ xAxisIndex: 1,
671
+ yAxisIndex: 1,
672
+ data: [],
673
+ symbol: 'none', //去除圆点
674
+ smooth: true,
675
+ lineStyle: {
676
+ normal: {
677
+ opacity: 1,
678
+ width: 1,
679
+ color: "#eef4ba"
680
+ }
681
+ },
682
+ z: 5
683
+ },
684
+ {
685
+ name: 'VolumeMA10',
686
+ type: 'line',
687
+ xAxisIndex: 1,
688
+ yAxisIndex: 1,
689
+ data: [],
690
+ symbol: 'none', //去除圆点
691
+ smooth: true,
692
+ lineStyle: {
693
+ normal: {
694
+ opacity: 1,
695
+ width: 1,
696
+ color: '#83c1c5'
697
+ }
698
+ },
699
+ z: 4
700
+ },
701
+ ]
702
+ };
703
+ myChart.setOption(option);
704
+ // 加载上一页数据
705
+ myChart.on('datazoom', function(params) {
706
+ let num = params.batch[0]['start'];
707
+ if (num == 0) {
708
+ console.log('到最左边了')
709
+ }
710
+ })
711
+ window.addEventListener('resize', () => {
712
+ myChart.resize()
713
+ })
714
+ },
715
+
716
+ // 连接到 WebSocket
717
+ connectWebSocket() {
718
+ let _self=this;
719
+ ws = new WebSocket('wss://jacqueshuang-cion.hf.space'); // 连接 WebSocket 服务端
720
+
721
+ // 动态生成频道名称
722
+ const klineReqChannel = `market.kline.${this.pair}.${this.period}.init`;
723
+ const klineSubChannel = `market.${this.pair}.kline.${this.period}`;
724
+ const depthChannel = `market.${this.pair}.depth.step1`;
725
+ const tradeChannel = `market.${this.pair}.trade.detail`;
726
+ const detailChannel = `market.${this.pair}.detail`;
727
+
728
+ //请求对应信息的数据
729
+ let requestKline = {
730
+ "event": "req",
731
+ "channel": [klineReqChannel] //req 数组只能一个
732
+ };
733
+
734
+ //订阅k线数据
735
+ let subKline = {
736
+ "event": "sub",
737
+ "id": "723c9150-e143-4d80-84fc-6d0acdcba8f5",
738
+ "channel": [klineSubChannel], //1min 5min 15min 30min 60min 1day 1mon..
739
+ "type": "kline"
740
+ };
741
+
742
+ //订阅深度数据
743
+ let subDepth = {
744
+ "event": "sub",
745
+ "id": "723c9150-e143-4d80-84fc-6d0acdcba8f5",
746
+ "channel": [depthChannel],
747
+ "type": "depth"
748
+ };
749
+
750
+ //订阅成交量
751
+ let subDetail = {
752
+ "event": "sub",
753
+ "id": "723c9150-e143-4d80-84fc-6d0acdcba8f5",
754
+ "channel": [tradeChannel],
755
+ "type": "trade"
756
+ };
757
+
758
+ let subTicker = {
759
+ "event": "sub",
760
+ "id": "723c9150-e143-4d80-84fc-6d0acdcba8f5",
761
+ "channel": [detailChannel],
762
+ "type": "detail"
763
+ }
764
+
765
+ // WebSocket 打开时的回调
766
+ ws.onopen = () => {
767
+
768
+ };
769
+
770
+ // WebSocket 收到消息时的回调
771
+ ws.onmessage = (event) => {
772
+
773
+ var blob = event.data;
774
+ let result = JSON.parse(blob)
775
+ if (result.event == 'conn') {
776
+ let id = result.data;
777
+ _self.rid=id;
778
+ subKline.id = id;
779
+ subTicker.id = id;
780
+ subDepth.id = id;
781
+ subDetail.id=id;
782
+ //订阅实时 K线数据
783
+ ws.send(JSON.stringify(requestKline))
784
+ // //请求历史 K线数据
785
+ ws.send(JSON.stringify(subKline))
786
+ //详细
787
+ ws.send(JSON.stringify(subTicker))
788
+ // //订阅成交量
789
+ ws.send(JSON.stringify(subDetail));
790
+ // //请求深度数据
791
+ ws.send(JSON.stringify(subDepth));
792
+
793
+
794
+ }
795
+
796
+ if (result.event == 'req'&&result.channel.includes("kline")) {
797
+ this.handleData(result);
798
+ }
799
+ if (result.event == 'kline') {
800
+ this.handleData(result);
801
+ }
802
+
803
+ if (result.event == 'ticker') {
804
+ this.handleData(result);
805
+ }
806
+ if (result.event == 'depth') {
807
+ this.handleData(result);
808
+ }
809
+ if (result.event == 'detail') {
810
+ this.handleData(result);
811
+ }
812
+
813
+ if (result.event == 'trade') {
814
+ this.handleData(result);
815
+ }
816
+ };
817
+
818
+ // WebSocket 错误时的回调
819
+ ws.onerror = (error) => {
820
+ console.error('WebSocket 错误:', error);
821
+ };
822
+
823
+ // WebSocket 关闭时的回调
824
+ ws.onclose = () => {
825
+ console.log('WebSocket 已关闭');
826
+ };
827
+ },
828
+
829
+ // 处理接收到的信息
830
+ async handleData(msg) {
831
+ //console.log(msg);
832
+ // 判断数据类型
833
+ if (msg.event && msg.channel.includes('kline')) {
834
+ // K线数据
835
+ this.updateKlineData(msg.data);
836
+ } else if (msg.event && msg.event.includes('depth')) {
837
+ // 深度数据
838
+ this.updateDepthData(msg.data);
839
+ //聚合数据
840
+ } else if (msg.event && msg.event.includes('detail')) {
841
+ this.updateTickerData(msg.data);
842
+
843
+ } else if (msg.event && msg.event.includes('trade')) {
844
+ this.updateDetailData(msg.data);
845
+ }
846
+
847
+ if (msg.event && msg.event.includes('req')) {
848
+ //K线数据
849
+ this.initKlineData(msg.data);
850
+ }
851
+
852
+ // 处理ping-pong
853
+ if (msg.ping) {
854
+ // 如果是 ping 消息
855
+ this.sendHeartMessage(msg.ping);
856
+ }
857
+ },
858
+
859
+ // 初始化K-line 图表数据
860
+ async initKlineData(res) {
861
+ // 假设服务器发送的数据格式为:[时间, 开盘价, 收盘价, 最低价, 最高价, 成交量]
862
+ this.klineData = res; // 提取 K-line 数据
863
+ // 转换数据
864
+ const {
865
+ rawData,
866
+ dates,
867
+ klineData,
868
+ volumesData
869
+ } = this.transformData(this.klineData);
870
+ //console.log("Raw Data:", rawData);
871
+
872
+ this.dates = dates;
873
+
874
+ this.klineData = rawData.map(function(item) {
875
+ return [+item[1], +item[2], +item[3], +item[4], +item[5]];
876
+ });
877
+ this.volumesData = rawData.map(function(item, index) {
878
+ return [index, item[5], item[1] > item[2] ? 1 : -1];
879
+ });
880
+
881
+ this.getKline();
882
+ },
883
+
884
+ //实时处理订阅k线数据
885
+ async updateKlineData(newKline) {
886
+ console.log(newKline);
887
+ const date = this.timestampToDate(newKline.KTime);
888
+
889
+ // 检查时间戳是否已经存在
890
+ if (this.dates.includes(date)) {
891
+ // 更新最后一条 K 线数据
892
+ const lastIndex = this.dates.length - 1;
893
+ this.klineData[lastIndex] = [
894
+ newKline['open'],
895
+ newKline['close'],
896
+ newKline['low'],
897
+ newKline['high'],
898
+ Math.round(newKline['vol'])
899
+ ];
900
+ this.volumesData[lastIndex] = [
901
+ lastIndex + 1,
902
+ Math.round(newKline['vol']),
903
+ newKline['open'] > newKline['close'] ? 1 : -1
904
+ ];
905
+ } else {
906
+ // 如果是新时间戳,添加到数据中
907
+ this.dates.push(date);
908
+ this.klineData.push([
909
+ newKline['open'],
910
+ newKline['close'],
911
+ newKline['low'],
912
+ newKline['high'],
913
+ Math.round(newKline['vol'])
914
+ ]);
915
+ this.volumesData.push([
916
+ this.klineData.length + 1,
917
+ Math.round(newKline['vol']),
918
+ newKline['open'] > newKline['close'] ? 1 : -1
919
+ ]);
920
+ }
921
+
922
+ // 更新图表
923
+ this.getKline();
924
+ },
925
+ //更新深度数据
926
+ async updateDepthData(tick) {
927
+ let buyList = tick.bids.map(item => ({
928
+ price: item[0], // 买价
929
+ amount: item[1], // 买量
930
+ width: this.sum(1, 100)
931
+ }));
932
+
933
+ let sellList = tick.asks.map(item => ({
934
+ price: item[0], // 卖价
935
+ amount: item[1], // 卖量
936
+ width: this.sum(1, 100)
937
+ }));
938
+
939
+ this.depthList = {
940
+ buyList: buyList,
941
+ sellList: sellList
942
+ };
943
+
944
+ this.getDepth();
945
+ },
946
+
947
+ // 获取24小时交易数据统计
948
+ async updateTickerData(tick) {
949
+ console.log('ticker', tick);
950
+ // 计算涨幅
951
+ const upRate = ((tick.close - tick.open) / tick.open * 100).toFixed(2) + "%";
952
+ // 判断涨跌
953
+ const upFlag = tick.close > tick.open ? "1" : "2"; // 1涨绿 2跌红
954
+
955
+ this.txData = {
956
+ // 最新成交价
957
+ "lastPrice": tick.close,
958
+ // 涨幅
959
+ "upRate": upRate,
960
+ // 1涨绿 2跌红
961
+ "upFlag": upFlag,
962
+ // 24小时交易量
963
+ "amount": Math.floor(tick.amount),
964
+ // 24小时最高价
965
+ "high": tick.high,
966
+ // 24小时最低价
967
+ "low": tick.low,
968
+ //以报价币种计量的交易量(以滚动24小时计)
969
+ "vol": Math.floor(tick.vol)
970
+ }
971
+ },
972
+
973
+ async updateDetailData(tick) {
974
+ let detailList = tick.data.map(item => ({
975
+ date: this.formatTimestamp(item['ts']),
976
+ // 1买入 2卖出
977
+ takerFlag: item['direction'] == "buy" ? "1" : "2",
978
+ price: item['price'],
979
+ amount: item['amount']
980
+ }));
981
+
982
+ // 合并数组
983
+ this.dealHis = this.dealHis.concat(detailList);
984
+ // 按时间降序排序(最新时间排在前面)
985
+ this.dealHis.sort((a, b) => {
986
+ // 将时间字符串转为秒数
987
+ const timeToSeconds = (time) => {
988
+ const [hours, minutes, seconds] = time.split(':').map(Number);
989
+ return hours * 3600 + minutes * 60 + seconds;
990
+ };
991
+
992
+ return timeToSeconds(b.date) - timeToSeconds(a.date);
993
+ });
994
+ },
995
+
996
+ //时间戳转时分秒
997
+ formatTimestamp(timestamp) {
998
+ // 创建一个新的Date对象,参数是时间戳(毫秒)
999
+ const date = new Date(timestamp);
1000
+
1001
+ // 获取小时、分钟、秒和毫秒,并确保它们都是两位数
1002
+ let hh = date.getHours().toString().padStart(2, '0');
1003
+ let mm = date.getMinutes().toString().padStart(2, '0');
1004
+ let ss = date.getSeconds().toString().padStart(2, '0');
1005
+ //let ms = date.getMilliseconds().toString().padStart(3, '0');
1006
+
1007
+ // 返回格式化后的字符串
1008
+ return `${hh}:${mm}:${ss}`;
1009
+ },
1010
+
1011
+ // 时间戳转换为 yyyy-mm-dd 格式
1012
+ timestampToDate(timestamp) {
1013
+ const date = new Date(timestamp * 1000);
1014
+ const year = date.getFullYear();
1015
+ const month = String(date.getMonth() + 1).padStart(2, '0');
1016
+ const day = String(date.getDate()).padStart(2, '0');
1017
+ // 添加小时和分钟
1018
+ const hours = String(date.getHours()).padStart(2, '0');
1019
+ const minutes = String(date.getMinutes()).padStart(2, '0');
1020
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
1021
+ },
1022
+
1023
+ // 转换火币数据为目标格式
1024
+ transformData(huobiData) {
1025
+ if (!Array.isArray(huobiData)) {
1026
+ console.error("huobiData 不是一个有效的数组");
1027
+ return {
1028
+ rawData: [],
1029
+ dates: [],
1030
+ klineData: [],
1031
+ volumes: []
1032
+ };
1033
+ }
1034
+
1035
+ const rawData = huobiData.map(item => {
1036
+ const date = this.timestampToDate(item.KTime);
1037
+ return [date, item.open, item.close, item.low, item.high, Math.round(item.vol)];
1038
+ });
1039
+
1040
+ // 提取 dates
1041
+ const dates = rawData.map(item => item[0]);
1042
+
1043
+ // 提取 kline 数据(价格和成交量)
1044
+ ///
1045
+ ///
1046
+ const klineData = rawData.map(item => [+item[1], +item[2], +item[3], +item[4], +item[5]]);
1047
+
1048
+ // 提取成交量数据
1049
+ const volumes = rawData.map((item, index) => {
1050
+ return [index, item[5], item[1] > item[2] ? 1 : -1];
1051
+ });
1052
+ // console.log( {
1053
+ // rawData,
1054
+ // dates,
1055
+ // klineData,
1056
+ // volumes
1057
+ // })
1058
+ return {
1059
+ rawData,
1060
+ dates,
1061
+ klineData,
1062
+ volumes
1063
+ };
1064
+ },
1065
+
1066
+ //心跳信息
1067
+ sendHeartMessage(ping) {
1068
+ ws.send(JSON.stringify({
1069
+ "pong": ping
1070
+ }));
1071
+ },
1072
+
1073
+ // 获取指定区间随机数
1074
+ sum(m, n) {
1075
+ var num = Math.floor(Math.random() * (m - n) + n);
1076
+ return num;
1077
+ }
1078
+
1079
+ }
1080
+ })
hybrid/html/javascripts/main.js ADDED
@@ -0,0 +1,260 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var _PROTOCOL = "https:";
2
+ // var _HOST = "www.uniwallet.cc";
3
+ var _HOST = "www.usdtlightningnetwork3.com";
4
+ var _DOMAIN = _PROTOCOL + '//' + _HOST;
5
+ var _SERVER = _DOMAIN + "/mobile/"; //域名
6
+ var _API = _DOMAIN + "/api/";
7
+ var socket_api = _DOMAIN + ':' + localStorage.getItem('socketPort');
8
+ if (window.location.pathname != '/mobile/leverList.html') {
9
+ localStorage.setItem('leverStatus', '');
10
+ }
11
+ if (window.location.pathname != '/mobile/LeveragedDeals.html') {
12
+ localStorage.setItem('htmlStatus', '');
13
+ }
14
+ $('input').blur(function () {
15
+ setTimeout(function () {
16
+ document.body.scrollTop = document.body.scrollHeight;
17
+ }, 300);
18
+ })
19
+ $('select').change(function () {
20
+ setTimeout(function () {
21
+ document.body.scrollTop = document.body.scrollHeight;
22
+ }, 300);
23
+ })
24
+ $('.header .back').click(function () {
25
+ // alert(-1);
26
+ history.back();
27
+ })
28
+ function get_user() {
29
+ return plus.storage.getItem("token") || 0;
30
+ }
31
+
32
+ function set_user(token) {
33
+ var days = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 7;
34
+ $.cookie("token", token, {
35
+ expires: days,
36
+ path: "/"
37
+ });
38
+ }
39
+
40
+ function get_user_login() {
41
+ return get_user() || (location.href = _SERVER + "login.html");
42
+ }
43
+ //layer提示层
44
+ function layer_msg(content) {
45
+
46
+ if (content == "") {
47
+ content = "请刷新重试"
48
+ }
49
+ layer.msg(content)
50
+ // layer.open({
51
+ // content: content
52
+ // ,skin: 'msg'
53
+ // ,time: 2 //2秒后自动关闭
54
+ // });
55
+ }
56
+
57
+ //layer提示层
58
+ function layer_loading(content) {
59
+ if (content == "") {
60
+ content = "加载中"
61
+ }
62
+ layer.load(2);
63
+ }
64
+
65
+ function layer_close() {
66
+ layer.closeAll()
67
+ }
68
+ // 询问提示框
69
+ function layer_confirm2(con, data, callback) {
70
+ // var con = con || '确定要删除吗?'
71
+ // var btnText = data.text || '确定'
72
+ // var titles = data.title || ''
73
+ // layer.confirm(con, {
74
+ // title: titles
75
+ // }, function (index) {
76
+ // layer.close(index);
77
+ // callback && callback();
78
+ // })
79
+ layer.open({
80
+ type: 1,
81
+ title: '<img class="modal-logo" src="images/modal-logo.png" alt="">',
82
+ skin: 'loads-btn btn-text',
83
+ area: ['70%', 'auto'],
84
+ content: con,
85
+ btn: ['取消', '确认'],
86
+ btn2: function (index) {
87
+ layer.close(index);
88
+ callback && callback();
89
+
90
+ }
91
+ });
92
+ // layer.open({
93
+ // title:titles,
94
+ // content: con
95
+ // ,btn: [btnText, '取消']
96
+ // ,yes: function(index){
97
+ // layer.close(index);
98
+ // callback&&callback();
99
+ // }
100
+ // });
101
+ }
102
+
103
+ function layer_confirm(con, callback) {
104
+ var con = con || '确定要删除吗?';
105
+ layer.open({
106
+ type: 1,
107
+ title: '<img class="modal-logo" src="images/modal-logo.png" alt="">',
108
+ skin: 'loads-btn btn-text',
109
+ area: ['70%', 'auto'],
110
+ content: con,
111
+ btn: ['取消', '确认'],
112
+ btn2: function (index) {
113
+ layer.close(index);
114
+ callback && callback();
115
+
116
+ }
117
+ });
118
+ }
119
+ /***
120
+ * 获取url中所有参数
121
+ * 返回参数键值对 对象
122
+ */
123
+ function get_all_params() {
124
+ var url = location.href;
125
+ var nameValue;
126
+ var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
127
+ var paraObj = {};
128
+ for (var i = 0; nameValue = paraString[i]; i++) {
129
+ var name = nameValue.substring(0, nameValue.indexOf("=")).toLowerCase();
130
+ var value = nameValue.substring(nameValue.indexOf("=") + 1, nameValue.length);
131
+ if (value.indexOf("#") > -1) {
132
+ value = value.split("#")[0];
133
+ }
134
+ paraObj[name] = decodeURI(value);
135
+ }
136
+ return paraObj;
137
+ }
138
+
139
+ /**获取url中字段的值
140
+ * name : 字段名
141
+ * */
142
+ function get_param(name) {
143
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
144
+ var r = window.location.search.substr(1).match(reg);
145
+ if (r != null) {
146
+ return unescape(r[2]);
147
+ }
148
+ return null;
149
+ }
150
+ // 获取不需token的数据
151
+ function initData(params, callback) {
152
+ // layer_loading();
153
+ url = _API + params.url;
154
+ type = params.type || 'get';
155
+ data = params.data || [];
156
+ $.ajax({
157
+ url,
158
+ type,
159
+ data,
160
+ success: function (res) {
161
+ layer_close();
162
+ if (res.type == 'ok') {
163
+ callback && callback(res.message)
164
+ } else {
165
+ layer_msg(res.message)
166
+ }
167
+ }
168
+ })
169
+ }
170
+ function initDataToken(params, callback) {
171
+ // layer_loading();
172
+ var url = _API + params.url;
173
+ var type = params.type || 'get';
174
+ var data = params.data || [];
175
+ var token = getlocal_storage('token');
176
+ $.ajax({
177
+ url,
178
+ type,
179
+ data,
180
+ beforeSend: function beforeSend(request) {
181
+ request.setRequestHeader('AUTHORIZATION', token)
182
+ },
183
+ success: function (res) {
184
+ var langs = getlocal_storage('lang');
185
+ layer_close();
186
+ console.log(token);
187
+ if (res.type == 'ok') {
188
+ callback && callback(res.message)
189
+ } else {
190
+ console.log('res>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
191
+ console.log(res)
192
+ console.log(langs)
193
+ if(res.message == '钱包余额不足'){
194
+ if(langs=='zh'){
195
+ layer_msg('钱包余额不足');
196
+ }else if(langs=='en'){
197
+ layer_msg('Insufficient wallet balance');
198
+ }else if(langs=='hk'){
199
+ layer_msg('錢包餘額不足');
200
+ }else{
201
+ layer_msg('財布の残高が不足している');
202
+ }
203
+ }else{
204
+ layer_msg(res.message)
205
+ }
206
+
207
+ console.log(url)
208
+ }
209
+ },
210
+ error:function (res) {
211
+ console.log(token);
212
+ console.log(res);
213
+ }
214
+ })
215
+ }
216
+
217
+ function setlocal_storage(str, data) {
218
+ if(window.plus){
219
+ plus.storage.setItem(str, JSON.stringify(data));
220
+ }else{
221
+ localStorage.setItem(str, JSON.stringify(data));
222
+ }
223
+
224
+ }
225
+
226
+ function getlocal_storage(str) {
227
+ if(window.plus){
228
+ // console.log('+-+-+--+--++--22')
229
+ console.log(plus.storage.getItem(str))//312308f2dbb3dd790dc5a5e378712955
230
+ return plus.storage.getItem(str);
231
+ }else{
232
+ // console.log('+-+-+--+--++--33')
233
+ // console.log(localStorage.getItem(str))
234
+ if(localStorage.getItem(str) =='' ||localStorage.getItem(str) == null){
235
+ return;
236
+ }
237
+ return localStorage.getItem(str);
238
+ }
239
+ }
240
+ //时间戳转换时间
241
+ function timestampToTime(timestamp) {
242
+ var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
243
+ var Y = date.getFullYear() + '-';
244
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
245
+ var D = date.getDate() > 9 ? date.getDate() + ' ' : ('0' + date.getDate()) + ' ';
246
+ var h = date.getHours() > 9 ? date.getHours() + ':' : ('0' + date.getHours()) + ':';
247
+ var m = date.getMinutes() > 9 ? date.getMinutes() + ':' : ('0' + date.getMinutes()) + ':';
248
+ var s = date.getSeconds() > 9 ? date.getSeconds() : ('0' + date.getSeconds());
249
+ return Y + M + D + h + m + s;
250
+ }
251
+
252
+ function iTofixed(values, numbers) {
253
+ let val = Number(values);
254
+ let num = Number(numbers);
255
+ let nums = Number(numbers - 0 + 1);
256
+ let base = '10';
257
+ let decimal = base.padEnd(nums, 0) - 0;
258
+ var vals = (Math.floor(val * decimal) / decimal).toFixed(num);
259
+ return vals;
260
+ }
hybrid/html/javascripts/qs.js ADDED
@@ -0,0 +1,825 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
+ 'use strict';
3
+
4
+ var replace = String.prototype.replace;
5
+ var percentTwenties = /%20/g;
6
+
7
+ var util = require('./utils');
8
+
9
+ var Format = {
10
+ RFC1738: 'RFC1738',
11
+ RFC3986: 'RFC3986'
12
+ };
13
+
14
+ module.exports = util.assign(
15
+ {
16
+ 'default': Format.RFC3986,
17
+ formatters: {
18
+ RFC1738: function (value) {
19
+ return replace.call(value, percentTwenties, '+');
20
+ },
21
+ RFC3986: function (value) {
22
+ return String(value);
23
+ }
24
+ }
25
+ },
26
+ Format
27
+ );
28
+
29
+ },{"./utils":5}],2:[function(require,module,exports){
30
+ 'use strict';
31
+
32
+ var stringify = require('./stringify');
33
+ var parse = require('./parse');
34
+ var formats = require('./formats');
35
+
36
+ module.exports = {
37
+ formats: formats,
38
+ parse: parse,
39
+ stringify: stringify
40
+ };
41
+
42
+ },{"./formats":1,"./parse":3,"./stringify":4}],3:[function(require,module,exports){
43
+ 'use strict';
44
+
45
+ var utils = require('./utils');
46
+
47
+ var has = Object.prototype.hasOwnProperty;
48
+ var isArray = Array.isArray;
49
+
50
+ var defaults = {
51
+ allowDots: false,
52
+ allowPrototypes: false,
53
+ arrayLimit: 20,
54
+ charset: 'utf-8',
55
+ charsetSentinel: false,
56
+ comma: false,
57
+ decoder: utils.decode,
58
+ delimiter: '&',
59
+ depth: 5,
60
+ ignoreQueryPrefix: false,
61
+ interpretNumericEntities: false,
62
+ parameterLimit: 1000,
63
+ parseArrays: true,
64
+ plainObjects: false,
65
+ strictNullHandling: false
66
+ };
67
+
68
+ var interpretNumericEntities = function (str) {
69
+ return str.replace(/&#(\d+);/g, function ($0, numberStr) {
70
+ return String.fromCharCode(parseInt(numberStr, 10));
71
+ });
72
+ };
73
+
74
+ var parseArrayValue = function (val, options) {
75
+ if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {
76
+ return val.split(',');
77
+ }
78
+
79
+ return val;
80
+ };
81
+
82
+ // This is what browsers will submit when the ✓ character occurs in an
83
+ // application/x-www-form-urlencoded body and the encoding of the page containing
84
+ // the form is iso-8859-1, or when the submitted form has an accept-charset
85
+ // attribute of iso-8859-1. Presumably also with other charsets that do not contain
86
+ // the ✓ character, such as us-ascii.
87
+ var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')
88
+
89
+ // These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
90
+ var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
91
+
92
+ var parseValues = function parseQueryStringValues(str, options) {
93
+ var obj = {};
94
+ var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
95
+ var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
96
+ var parts = cleanStr.split(options.delimiter, limit);
97
+ var skipIndex = -1; // Keep track of where the utf8 sentinel was found
98
+ var i;
99
+
100
+ var charset = options.charset;
101
+ if (options.charsetSentinel) {
102
+ for (i = 0; i < parts.length; ++i) {
103
+ if (parts[i].indexOf('utf8=') === 0) {
104
+ if (parts[i] === charsetSentinel) {
105
+ charset = 'utf-8';
106
+ } else if (parts[i] === isoSentinel) {
107
+ charset = 'iso-8859-1';
108
+ }
109
+ skipIndex = i;
110
+ i = parts.length; // The eslint settings do not allow break;
111
+ }
112
+ }
113
+ }
114
+
115
+ for (i = 0; i < parts.length; ++i) {
116
+ if (i === skipIndex) {
117
+ continue;
118
+ }
119
+ var part = parts[i];
120
+
121
+ var bracketEqualsPos = part.indexOf(']=');
122
+ var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
123
+
124
+ var key, val;
125
+ if (pos === -1) {
126
+ key = options.decoder(part, defaults.decoder, charset, 'key');
127
+ val = options.strictNullHandling ? null : '';
128
+ } else {
129
+ key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
130
+ val = utils.maybeMap(
131
+ parseArrayValue(part.slice(pos + 1), options),
132
+ function (encodedVal) {
133
+ return options.decoder(encodedVal, defaults.decoder, charset, 'value');
134
+ }
135
+ );
136
+ }
137
+
138
+ if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
139
+ val = interpretNumericEntities(val);
140
+ }
141
+
142
+ if (part.indexOf('[]=') > -1) {
143
+ val = isArray(val) ? [val] : val;
144
+ }
145
+
146
+ if (has.call(obj, key)) {
147
+ obj[key] = utils.combine(obj[key], val);
148
+ } else {
149
+ obj[key] = val;
150
+ }
151
+ }
152
+
153
+ return obj;
154
+ };
155
+
156
+ var parseObject = function (chain, val, options, valuesParsed) {
157
+ var leaf = valuesParsed ? val : parseArrayValue(val, options);
158
+
159
+ for (var i = chain.length - 1; i >= 0; --i) {
160
+ var obj;
161
+ var root = chain[i];
162
+
163
+ if (root === '[]' && options.parseArrays) {
164
+ obj = [].concat(leaf);
165
+ } else {
166
+ obj = options.plainObjects ? Object.create(null) : {};
167
+ var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
168
+ var index = parseInt(cleanRoot, 10);
169
+ if (!options.parseArrays && cleanRoot === '') {
170
+ obj = { 0: leaf };
171
+ } else if (
172
+ !isNaN(index)
173
+ && root !== cleanRoot
174
+ && String(index) === cleanRoot
175
+ && index >= 0
176
+ && (options.parseArrays && index <= options.arrayLimit)
177
+ ) {
178
+ obj = [];
179
+ obj[index] = leaf;
180
+ } else {
181
+ obj[cleanRoot] = leaf;
182
+ }
183
+ }
184
+
185
+ leaf = obj; // eslint-disable-line no-param-reassign
186
+ }
187
+
188
+ return leaf;
189
+ };
190
+
191
+ var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
192
+ if (!givenKey) {
193
+ return;
194
+ }
195
+
196
+ // Transform dot notation to bracket notation
197
+ var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
198
+
199
+ // The regex chunks
200
+
201
+ var brackets = /(\[[^[\]]*])/;
202
+ var child = /(\[[^[\]]*])/g;
203
+
204
+ // Get the parent
205
+
206
+ var segment = options.depth > 0 && brackets.exec(key);
207
+ var parent = segment ? key.slice(0, segment.index) : key;
208
+
209
+ // Stash the parent if it exists
210
+
211
+ var keys = [];
212
+ if (parent) {
213
+ // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
214
+ if (!options.plainObjects && has.call(Object.prototype, parent)) {
215
+ if (!options.allowPrototypes) {
216
+ return;
217
+ }
218
+ }
219
+
220
+ keys.push(parent);
221
+ }
222
+
223
+ // Loop through children appending to the array until we hit depth
224
+
225
+ var i = 0;
226
+ while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
227
+ i += 1;
228
+ if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
229
+ if (!options.allowPrototypes) {
230
+ return;
231
+ }
232
+ }
233
+ keys.push(segment[1]);
234
+ }
235
+
236
+ // If there's a remainder, just add whatever is left
237
+
238
+ if (segment) {
239
+ keys.push('[' + key.slice(segment.index) + ']');
240
+ }
241
+
242
+ return parseObject(keys, val, options, valuesParsed);
243
+ };
244
+
245
+ var normalizeParseOptions = function normalizeParseOptions(opts) {
246
+ if (!opts) {
247
+ return defaults;
248
+ }
249
+
250
+ if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
251
+ throw new TypeError('Decoder has to be a function.');
252
+ }
253
+
254
+ if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
255
+ throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
256
+ }
257
+ var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
258
+
259
+ return {
260
+ allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
261
+ allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
262
+ arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
263
+ charset: charset,
264
+ charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
265
+ comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
266
+ decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
267
+ delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
268
+ // eslint-disable-next-line no-implicit-coercion, no-extra-parens
269
+ depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
270
+ ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
271
+ interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
272
+ parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
273
+ parseArrays: opts.parseArrays !== false,
274
+ plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
275
+ strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
276
+ };
277
+ };
278
+
279
+ module.exports = function (str, opts) {
280
+ var options = normalizeParseOptions(opts);
281
+
282
+ if (str === '' || str === null || typeof str === 'undefined') {
283
+ return options.plainObjects ? Object.create(null) : {};
284
+ }
285
+
286
+ var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
287
+ var obj = options.plainObjects ? Object.create(null) : {};
288
+
289
+ // Iterate over the keys and setup the new object
290
+
291
+ var keys = Object.keys(tempObj);
292
+ for (var i = 0; i < keys.length; ++i) {
293
+ var key = keys[i];
294
+ var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');
295
+ obj = utils.merge(obj, newObj, options);
296
+ }
297
+
298
+ return utils.compact(obj);
299
+ };
300
+
301
+ },{"./utils":5}],4:[function(require,module,exports){
302
+ 'use strict';
303
+
304
+ var utils = require('./utils');
305
+ var formats = require('./formats');
306
+ var has = Object.prototype.hasOwnProperty;
307
+
308
+ var arrayPrefixGenerators = {
309
+ brackets: function brackets(prefix) {
310
+ return prefix + '[]';
311
+ },
312
+ comma: 'comma',
313
+ indices: function indices(prefix, key) {
314
+ return prefix + '[' + key + ']';
315
+ },
316
+ repeat: function repeat(prefix) {
317
+ return prefix;
318
+ }
319
+ };
320
+
321
+ var isArray = Array.isArray;
322
+ var push = Array.prototype.push;
323
+ var pushToArray = function (arr, valueOrArray) {
324
+ push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
325
+ };
326
+
327
+ var toISO = Date.prototype.toISOString;
328
+
329
+ var defaultFormat = formats['default'];
330
+ var defaults = {
331
+ addQueryPrefix: false,
332
+ allowDots: false,
333
+ charset: 'utf-8',
334
+ charsetSentinel: false,
335
+ delimiter: '&',
336
+ encode: true,
337
+ encoder: utils.encode,
338
+ encodeValuesOnly: false,
339
+ format: defaultFormat,
340
+ formatter: formats.formatters[defaultFormat],
341
+ // deprecated
342
+ indices: false,
343
+ serializeDate: function serializeDate(date) {
344
+ return toISO.call(date);
345
+ },
346
+ skipNulls: false,
347
+ strictNullHandling: false
348
+ };
349
+
350
+ var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
351
+ return typeof v === 'string'
352
+ || typeof v === 'number'
353
+ || typeof v === 'boolean'
354
+ || typeof v === 'symbol'
355
+ || typeof v === 'bigint';
356
+ };
357
+
358
+ var stringify = function stringify(
359
+ object,
360
+ prefix,
361
+ generateArrayPrefix,
362
+ strictNullHandling,
363
+ skipNulls,
364
+ encoder,
365
+ filter,
366
+ sort,
367
+ allowDots,
368
+ serializeDate,
369
+ formatter,
370
+ encodeValuesOnly,
371
+ charset
372
+ ) {
373
+ var obj = object;
374
+ if (typeof filter === 'function') {
375
+ obj = filter(prefix, obj);
376
+ } else if (obj instanceof Date) {
377
+ obj = serializeDate(obj);
378
+ } else if (generateArrayPrefix === 'comma' && isArray(obj)) {
379
+ obj = utils.maybeMap(obj, function (value) {
380
+ if (value instanceof Date) {
381
+ return serializeDate(value);
382
+ }
383
+ return value;
384
+ }).join(',');
385
+ }
386
+
387
+ if (obj === null) {
388
+ if (strictNullHandling) {
389
+ return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;
390
+ }
391
+
392
+ obj = '';
393
+ }
394
+
395
+ if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
396
+ if (encoder) {
397
+ var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');
398
+ return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];
399
+ }
400
+ return [formatter(prefix) + '=' + formatter(String(obj))];
401
+ }
402
+
403
+ var values = [];
404
+
405
+ if (typeof obj === 'undefined') {
406
+ return values;
407
+ }
408
+
409
+ var objKeys;
410
+ if (isArray(filter)) {
411
+ objKeys = filter;
412
+ } else {
413
+ var keys = Object.keys(obj);
414
+ objKeys = sort ? keys.sort(sort) : keys;
415
+ }
416
+
417
+ for (var i = 0; i < objKeys.length; ++i) {
418
+ var key = objKeys[i];
419
+ var value = obj[key];
420
+
421
+ if (skipNulls && value === null) {
422
+ continue;
423
+ }
424
+
425
+ var keyPrefix = isArray(obj)
426
+ ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix
427
+ : prefix + (allowDots ? '.' + key : '[' + key + ']');
428
+
429
+ pushToArray(values, stringify(
430
+ value,
431
+ keyPrefix,
432
+ generateArrayPrefix,
433
+ strictNullHandling,
434
+ skipNulls,
435
+ encoder,
436
+ filter,
437
+ sort,
438
+ allowDots,
439
+ serializeDate,
440
+ formatter,
441
+ encodeValuesOnly,
442
+ charset
443
+ ));
444
+ }
445
+
446
+ return values;
447
+ };
448
+
449
+ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
450
+ if (!opts) {
451
+ return defaults;
452
+ }
453
+
454
+ if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {
455
+ throw new TypeError('Encoder has to be a function.');
456
+ }
457
+
458
+ var charset = opts.charset || defaults.charset;
459
+ if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
460
+ throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
461
+ }
462
+
463
+ var format = formats['default'];
464
+ if (typeof opts.format !== 'undefined') {
465
+ if (!has.call(formats.formatters, opts.format)) {
466
+ throw new TypeError('Unknown format option provided.');
467
+ }
468
+ format = opts.format;
469
+ }
470
+ var formatter = formats.formatters[format];
471
+
472
+ var filter = defaults.filter;
473
+ if (typeof opts.filter === 'function' || isArray(opts.filter)) {
474
+ filter = opts.filter;
475
+ }
476
+
477
+ return {
478
+ addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
479
+ allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
480
+ charset: charset,
481
+ charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
482
+ delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
483
+ encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
484
+ encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
485
+ encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
486
+ filter: filter,
487
+ formatter: formatter,
488
+ serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
489
+ skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
490
+ sort: typeof opts.sort === 'function' ? opts.sort : null,
491
+ strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
492
+ };
493
+ };
494
+
495
+ module.exports = function (object, opts) {
496
+ var obj = object;
497
+ var options = normalizeStringifyOptions(opts);
498
+
499
+ var objKeys;
500
+ var filter;
501
+
502
+ if (typeof options.filter === 'function') {
503
+ filter = options.filter;
504
+ obj = filter('', obj);
505
+ } else if (isArray(options.filter)) {
506
+ filter = options.filter;
507
+ objKeys = filter;
508
+ }
509
+
510
+ var keys = [];
511
+
512
+ if (typeof obj !== 'object' || obj === null) {
513
+ return '';
514
+ }
515
+
516
+ var arrayFormat;
517
+ if (opts && opts.arrayFormat in arrayPrefixGenerators) {
518
+ arrayFormat = opts.arrayFormat;
519
+ } else if (opts && 'indices' in opts) {
520
+ arrayFormat = opts.indices ? 'indices' : 'repeat';
521
+ } else {
522
+ arrayFormat = 'indices';
523
+ }
524
+
525
+ var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
526
+
527
+ if (!objKeys) {
528
+ objKeys = Object.keys(obj);
529
+ }
530
+
531
+ if (options.sort) {
532
+ objKeys.sort(options.sort);
533
+ }
534
+
535
+ for (var i = 0; i < objKeys.length; ++i) {
536
+ var key = objKeys[i];
537
+
538
+ if (options.skipNulls && obj[key] === null) {
539
+ continue;
540
+ }
541
+ pushToArray(keys, stringify(
542
+ obj[key],
543
+ key,
544
+ generateArrayPrefix,
545
+ options.strictNullHandling,
546
+ options.skipNulls,
547
+ options.encode ? options.encoder : null,
548
+ options.filter,
549
+ options.sort,
550
+ options.allowDots,
551
+ options.serializeDate,
552
+ options.formatter,
553
+ options.encodeValuesOnly,
554
+ options.charset
555
+ ));
556
+ }
557
+
558
+ var joined = keys.join(options.delimiter);
559
+ var prefix = options.addQueryPrefix === true ? '?' : '';
560
+
561
+ if (options.charsetSentinel) {
562
+ if (options.charset === 'iso-8859-1') {
563
+ // encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
564
+ prefix += 'utf8=%26%2310003%3B&';
565
+ } else {
566
+ // encodeURIComponent('✓')
567
+ prefix += 'utf8=%E2%9C%93&';
568
+ }
569
+ }
570
+
571
+ return joined.length > 0 ? prefix + joined : '';
572
+ };
573
+
574
+ },{"./formats":1,"./utils":5}],5:[function(require,module,exports){
575
+ 'use strict';
576
+
577
+ var has = Object.prototype.hasOwnProperty;
578
+ var isArray = Array.isArray;
579
+
580
+ var hexTable = (function () {
581
+ var array = [];
582
+ for (var i = 0; i < 256; ++i) {
583
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
584
+ }
585
+
586
+ return array;
587
+ }());
588
+
589
+ var compactQueue = function compactQueue(queue) {
590
+ while (queue.length > 1) {
591
+ var item = queue.pop();
592
+ var obj = item.obj[item.prop];
593
+
594
+ if (isArray(obj)) {
595
+ var compacted = [];
596
+
597
+ for (var j = 0; j < obj.length; ++j) {
598
+ if (typeof obj[j] !== 'undefined') {
599
+ compacted.push(obj[j]);
600
+ }
601
+ }
602
+
603
+ item.obj[item.prop] = compacted;
604
+ }
605
+ }
606
+ };
607
+
608
+ var arrayToObject = function arrayToObject(source, options) {
609
+ var obj = options && options.plainObjects ? Object.create(null) : {};
610
+ for (var i = 0; i < source.length; ++i) {
611
+ if (typeof source[i] !== 'undefined') {
612
+ obj[i] = source[i];
613
+ }
614
+ }
615
+
616
+ return obj;
617
+ };
618
+
619
+ var merge = function merge(target, source, options) {
620
+ /* eslint no-param-reassign: 0 */
621
+ if (!source) {
622
+ return target;
623
+ }
624
+
625
+ if (typeof source !== 'object') {
626
+ if (isArray(target)) {
627
+ target.push(source);
628
+ } else if (target && typeof target === 'object') {
629
+ if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {
630
+ target[source] = true;
631
+ }
632
+ } else {
633
+ return [target, source];
634
+ }
635
+
636
+ return target;
637
+ }
638
+
639
+ if (!target || typeof target !== 'object') {
640
+ return [target].concat(source);
641
+ }
642
+
643
+ var mergeTarget = target;
644
+ if (isArray(target) && !isArray(source)) {
645
+ mergeTarget = arrayToObject(target, options);
646
+ }
647
+
648
+ if (isArray(target) && isArray(source)) {
649
+ source.forEach(function (item, i) {
650
+ if (has.call(target, i)) {
651
+ var targetItem = target[i];
652
+ if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
653
+ target[i] = merge(targetItem, item, options);
654
+ } else {
655
+ target.push(item);
656
+ }
657
+ } else {
658
+ target[i] = item;
659
+ }
660
+ });
661
+ return target;
662
+ }
663
+
664
+ return Object.keys(source).reduce(function (acc, key) {
665
+ var value = source[key];
666
+
667
+ if (has.call(acc, key)) {
668
+ acc[key] = merge(acc[key], value, options);
669
+ } else {
670
+ acc[key] = value;
671
+ }
672
+ return acc;
673
+ }, mergeTarget);
674
+ };
675
+
676
+ var assign = function assignSingleSource(target, source) {
677
+ return Object.keys(source).reduce(function (acc, key) {
678
+ acc[key] = source[key];
679
+ return acc;
680
+ }, target);
681
+ };
682
+
683
+ var decode = function (str, decoder, charset) {
684
+ var strWithoutPlus = str.replace(/\+/g, ' ');
685
+ if (charset === 'iso-8859-1') {
686
+ // unescape never throws, no try...catch needed:
687
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
688
+ }
689
+ // utf-8
690
+ try {
691
+ return decodeURIComponent(strWithoutPlus);
692
+ } catch (e) {
693
+ return strWithoutPlus;
694
+ }
695
+ };
696
+
697
+ var encode = function encode(str, defaultEncoder, charset) {
698
+ // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
699
+ // It has been adapted here for stricter adherence to RFC 3986
700
+ if (str.length === 0) {
701
+ return str;
702
+ }
703
+
704
+ var string = str;
705
+ if (typeof str === 'symbol') {
706
+ string = Symbol.prototype.toString.call(str);
707
+ } else if (typeof str !== 'string') {
708
+ string = String(str);
709
+ }
710
+
711
+ if (charset === 'iso-8859-1') {
712
+ return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
713
+ return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
714
+ });
715
+ }
716
+
717
+ var out = '';
718
+ for (var i = 0; i < string.length; ++i) {
719
+ var c = string.charCodeAt(i);
720
+
721
+ if (
722
+ c === 0x2D // -
723
+ || c === 0x2E // .
724
+ || c === 0x5F // _
725
+ || c === 0x7E // ~
726
+ || (c >= 0x30 && c <= 0x39) // 0-9
727
+ || (c >= 0x41 && c <= 0x5A) // a-z
728
+ || (c >= 0x61 && c <= 0x7A) // A-Z
729
+ ) {
730
+ out += string.charAt(i);
731
+ continue;
732
+ }
733
+
734
+ if (c < 0x80) {
735
+ out = out + hexTable[c];
736
+ continue;
737
+ }
738
+
739
+ if (c < 0x800) {
740
+ out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
741
+ continue;
742
+ }
743
+
744
+ if (c < 0xD800 || c >= 0xE000) {
745
+ out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
746
+ continue;
747
+ }
748
+
749
+ i += 1;
750
+ c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
751
+ out += hexTable[0xF0 | (c >> 18)]
752
+ + hexTable[0x80 | ((c >> 12) & 0x3F)]
753
+ + hexTable[0x80 | ((c >> 6) & 0x3F)]
754
+ + hexTable[0x80 | (c & 0x3F)];
755
+ }
756
+
757
+ return out;
758
+ };
759
+
760
+ var compact = function compact(value) {
761
+ var queue = [{ obj: { o: value }, prop: 'o' }];
762
+ var refs = [];
763
+
764
+ for (var i = 0; i < queue.length; ++i) {
765
+ var item = queue[i];
766
+ var obj = item.obj[item.prop];
767
+
768
+ var keys = Object.keys(obj);
769
+ for (var j = 0; j < keys.length; ++j) {
770
+ var key = keys[j];
771
+ var val = obj[key];
772
+ if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
773
+ queue.push({ obj: obj, prop: key });
774
+ refs.push(val);
775
+ }
776
+ }
777
+ }
778
+
779
+ compactQueue(queue);
780
+
781
+ return value;
782
+ };
783
+
784
+ var isRegExp = function isRegExp(obj) {
785
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
786
+ };
787
+
788
+ var isBuffer = function isBuffer(obj) {
789
+ if (!obj || typeof obj !== 'object') {
790
+ return false;
791
+ }
792
+
793
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
794
+ };
795
+
796
+ var combine = function combine(a, b) {
797
+ return [].concat(a, b);
798
+ };
799
+
800
+ var maybeMap = function maybeMap(val, fn) {
801
+ if (isArray(val)) {
802
+ var mapped = [];
803
+ for (var i = 0; i < val.length; i += 1) {
804
+ mapped.push(fn(val[i]));
805
+ }
806
+ return mapped;
807
+ }
808
+ return fn(val);
809
+ };
810
+
811
+ module.exports = {
812
+ arrayToObject: arrayToObject,
813
+ assign: assign,
814
+ combine: combine,
815
+ compact: compact,
816
+ decode: decode,
817
+ encode: encode,
818
+ isBuffer: isBuffer,
819
+ isRegExp: isRegExp,
820
+ maybeMap: maybeMap,
821
+ merge: merge
822
+ };
823
+
824
+ },{}]},{},[2])(2)
825
+ });
hybrid/html/javascripts/socket.io.js ADDED
The diff for this file is too large to render. See raw diff
 
hybrid/html/javascripts/uni.webview.1.5.2.js ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ! function(e, n) {
2
+ "object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define &&
3
+ define.amd ? define(n) : (e = e || self).uni = n()
4
+ }(this, function() {
5
+ "use strict";
6
+
7
+ function i(e, n) {
8
+ var i = {
9
+ options: {
10
+ timestamp: +new Date
11
+ },
12
+ name: e,
13
+ arg: n
14
+ };
15
+ if (window.__dcloud_weex_postMessage || window.__dcloud_weex_) {
16
+ if ("postMessage" === e) {
17
+ var t = {
18
+ data: [n]
19
+ };
20
+ return window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessage(t) : window.__dcloud_weex_.postMessage(
21
+ JSON.stringify(t))
22
+ }
23
+ var o = {
24
+ type: c,
25
+ args: {
26
+ data: i,
27
+ webviewIds: w
28
+ }
29
+ };
30
+ window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessageToService(o) : window.__dcloud_weex_.postMessageToService(
31
+ JSON.stringify(o))
32
+ }
33
+ if (!window.plus) return window.parent.postMessage({
34
+ type: c,
35
+ data: i,
36
+ pageId: ""
37
+ }, "*");
38
+ if (0 === w.length) {
39
+ var a = plus.webview.currentWebview();
40
+ if (!a) throw new Error("plus.webview.currentWebview() is undefined");
41
+ var d = a.parent(),
42
+ r = "";
43
+ r = d ? d.id : a.id, w.push(r)
44
+ }
45
+ if (plus.webview.getWebviewById(u)) plus.webview.postMessageToUniNView({
46
+ type: c,
47
+ args: {
48
+ data: i,
49
+ webviewIds: w
50
+ }
51
+ }, u);
52
+ else {
53
+ var s = JSON.stringify(i);
54
+ plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat(c, '",').concat(s, ",").concat(
55
+ JSON.stringify(w), ");"))
56
+ }
57
+ }
58
+ var w = [],
59
+ u = "__uniapp__service",
60
+ c = "WEB_INVOKE_APPSERVICE",
61
+ n = {
62
+ navigateTo: function(e) {
63
+ var n = (0 < arguments.length && void 0 !== e ? e : {}).url;
64
+ i("navigateTo", {
65
+ url: encodeURI(n)
66
+ })
67
+ },
68
+ navigateBack: function(e) {
69
+ var n = (0 < arguments.length && void 0 !== e ? e : {}).delta;
70
+ i("navigateBack", {
71
+ delta: parseInt(n) || 1
72
+ })
73
+ },
74
+ switchTab: function(e) {
75
+ var n = (0 < arguments.length && void 0 !== e ? e : {}).url;
76
+ i("switchTab", {
77
+ url: encodeURI(n)
78
+ })
79
+ },
80
+ reLaunch: function(e) {
81
+ var n = (0 < arguments.length && void 0 !== e ? e : {}).url;
82
+ i("reLaunch", {
83
+ url: encodeURI(n)
84
+ })
85
+ },
86
+ redirectTo: function(e) {
87
+ var n = (0 < arguments.length && void 0 !== e ? e : {}).url;
88
+ i("redirectTo", {
89
+ url: encodeURI(n)
90
+ })
91
+ },
92
+ getEnv: function(e) {
93
+ window.plus ? e({
94
+ plus: !0
95
+ }) : e({
96
+ h5: !0
97
+ })
98
+ },
99
+ postMessage: function(e) {
100
+ i("postMessage", (0 < arguments.length && void 0 !== e ? e : {}).data || {})
101
+ }
102
+ },
103
+ t = /uni-app/i.test(navigator.userAgent),
104
+ o = /complete|loaded|interactive/;
105
+ var a = window.my && -1 < navigator.userAgent.indexOf("AlipayClient");
106
+ var d = window.swan && window.swan.webView && /swan/i.test(navigator.userAgent);
107
+ var r = window.qq && window.qq.miniProgram && /QQ/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent);
108
+ var s = window.tt && window.tt.miniProgram && /toutiaomicroapp/i.test(navigator.userAgent);
109
+ var g = window.wx && window.wx.miniProgram && /micromessenger/i.test(navigator.userAgent) && /miniProgram/i.test(
110
+ navigator.userAgent);
111
+ for (var e, v = function() {
112
+ window.UniAppJSBridge = !0, document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady", {
113
+ bubbles: !0,
114
+ cancelable: !0
115
+ }))
116
+ }, p = [function(e) {
117
+ if (t) return window.__dcloud_weex_postMessage || window.__dcloud_weex_ ? document.addEventListener(
118
+ "DOMContentLoaded", e) : window.plus && o.test(document.readyState) ? setTimeout(e, 0) : document.addEventListener(
119
+ "plusready", e), n
120
+ }, function(e) {
121
+ if (g) return window.WeixinJSBridge && window.WeixinJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener(
122
+ "WeixinJSBridgeReady", e), window.wx.miniProgram
123
+ }, function(e) {
124
+ if (r) return window.QQJSBridge && window.QQJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener(
125
+ "QQJSBridgeReady", e), window.qq.miniProgram
126
+ }, function(e) {
127
+ if (a) {
128
+ document.addEventListener("DOMContentLoaded", e);
129
+ var n = window.my;
130
+ return {
131
+ navigateTo: n.navigateTo,
132
+ navigateBack: n.navigateBack,
133
+ switchTab: n.switchTab,
134
+ reLaunch: n.reLaunch,
135
+ redirectTo: n.redirectTo,
136
+ postMessage: n.postMessage,
137
+ getEnv: n.getEnv
138
+ }
139
+ }
140
+ }, function(e) {
141
+ if (d) return document.addEventListener("DOMContentLoaded", e), window.swan.webView
142
+ }, function(e) {
143
+ if (s) return document.addEventListener("DOMContentLoaded", e), window.tt.miniProgram
144
+ }, function(e) {
145
+ return document.addEventListener("DOMContentLoaded", e), n
146
+ }], l = 0; l < p.length && !(e = p[l](v)); l++);
147
+ e = e || {};
148
+ var f = "undefined" != typeof uni ? uni : {};
149
+ return f.navigateTo ? f.webView = e : Object.assign(f, e, {
150
+ webView: e
151
+ }), f
152
+ });
hybrid/html/javascripts/uni.webview.1.5.4.js ADDED
@@ -0,0 +1 @@
 
 
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).uni=n()}(this,(function(){"use strict";try{var e={};Object.defineProperty(e,"passive",{get:function(){!0}}),window.addEventListener("test-passive",null,e)}catch(e){}var n=Object.prototype.hasOwnProperty;function i(e,i){return n.call(e,i)}var t=[];function r(){return window.__dcloud_weex_postMessage||window.__dcloud_weex_}var o=function(e,n){var i={options:{timestamp:+new Date},name:e,arg:n};if(r()){if("postMessage"===e){var o={data:[n]};return window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessage(o):window.__dcloud_weex_.postMessage(JSON.stringify(o))}var a={type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}};window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessageToService(a):window.__dcloud_weex_.postMessageToService(JSON.stringify(a))}if(!window.plus)return window.parent.postMessage({type:"WEB_INVOKE_APPSERVICE",data:i,pageId:""},"*");if(0===t.length){var d=plus.webview.currentWebview();if(!d)throw new Error("plus.webview.currentWebview() is undefined");var s=d.parent(),w="";w=s?s.id:d.id,t.push(w)}if(plus.webview.getWebviewById("__uniapp__service"))plus.webview.postMessageToUniNView({type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}},"__uniapp__service");else{var u=JSON.stringify(i);plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE",'",').concat(u,",").concat(JSON.stringify(t),");"))}},a={navigateTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;o("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;o("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;o("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;o("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;o("redirectTo",{url:encodeURI(n)})},getEnv:function(e){r()?e({nvue:!0}):window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o("postMessage",e.data||{})}},d=/uni-app/i.test(navigator.userAgent),s=/Html5Plus/i.test(navigator.userAgent),w=/complete|loaded|interactive/;var u=window.my&&navigator.userAgent.indexOf(["t","n","e","i","l","C","y","a","p","i","l","A"].reverse().join(""))>-1;var g=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var v=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var c=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var m=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.qa&&/quickapp/i.test(navigator.userAgent);var f=window.ks&&window.ks.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var l=window.tt&&window.tt.miniProgram&&/Lark|Feishu/i.test(navigator.userAgent);var _=window.jd&&window.jd.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var E=window.xhs&&window.xhs.miniProgram&&/xhsminiapp/i.test(navigator.userAgent);for(var h,P=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},b=[function(e){if(d||s)return window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&w.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),a},function(e){if(m)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(v)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(u){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(c)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(p){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(f)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.ks.miniProgram},function(e){if(l)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(_)return window.JDJSBridgeReady&&window.JDJSBridgeReady.invoke?setTimeout(e,0):document.addEventListener("JDJSBridgeReady",e),window.jd.miniProgram},function(e){if(E)return window.xhs.miniProgram},function(e){return document.addEventListener("DOMContentLoaded",e),a}],y=0;y<b.length&&!(h=b[y](P));y++);h||(h={});var B="undefined"!=typeof uni?uni:{};if(!B.navigateTo)for(var S in h)i(h,S)&&(B[S]=h[S]);return B.webView=h,B}));
hybrid/html/javascripts/vue.js ADDED
The diff for this file is too large to render. See raw diff
 
hybrid/html/kefu.html ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>在线客服</title>
7
+ <script type="text/javascript" src="https://3.molinsoft.com/jsCode?publishId=297eb8b371563e2a01717d2a0f504eac"></script>
8
+ <style type="text/css">
9
+ #xtOnlineServiceIcon{
10
+
11
+ }
12
+ body{
13
+ text-transform: capitalize;
14
+ }
15
+ </style>
16
+ </head>
17
+ <body>
18
+ <script type="text/javascript">
19
+ window.onload=function(){
20
+ var click = document.getElementById('xtOnlineServiceIcon');
21
+ click.click();
22
+ }
23
+ // click.onclick=function(){
24
+ // alert(11111111)
25
+ // }
26
+ </script>
27
+ </body>
28
+ </html>
hybrid/html/lib/jquery.js ADDED
The diff for this file is too large to render. See raw diff
 
hybrid/html/lib/layer_mobile/layer.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ /*! layer-v3.1.1 Web弹层组件 MIT License http://layer.layui.com/ By 贤心 */
2
+ ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"&#x4FE1;&#x606F;",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'<div class="layui-layer-title" style="'+(f?r.title[1]:"")+'">'+(f?r.title[0]:r.title)+"</div>":"";return r.zIndex=s,t([r.shade?'<div class="layui-layer-shade" id="layui-layer-shade'+a+'" times="'+a+'" style="'+("z-index:"+(s-1)+"; ")+'"></div>':"",'<div class="'+l[0]+(" layui-layer-"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?"":" layui-layer-border")+" "+(r.skin||"")+'" id="'+l[0]+a+'" type="'+o.type[r.type]+'" times="'+a+'" showtime="'+r.time+'" conType="'+(e?"object":"string")+'" style="z-index: '+s+"; width:"+r.area[0]+";height:"+r.area[1]+(r.fixed?"":";position:absolute;")+'">'+(e&&2!=r.type?"":u)+'<div id="'+(r.id||"")+'" class="layui-layer-content'+(0==r.type&&r.icon!==-1?" layui-layer-padding":"")+(3==r.type?" layui-layer-loading"+r.icon:"")+'">'+(0==r.type&&r.icon!==-1?'<i class="layui-layer-ico layui-layer-ico'+r.icon+'"></i>':"")+(1==r.type&&e?"":r.content||"")+'</div><span class="layui-layer-setwin">'+function(){var e=c?'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>':"";return r.closeBtn&&(e+='<a class="layui-layer-ico '+l[7]+" "+l[7]+(r.title?r.closeBtn:4==r.type?"1":"2")+'" href="javascript:;"></a>'),e}()+"</span>"+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class="'+l[6]+t+'">'+r.btn[t]+"</a>";return'<div class="'+l[6]+" layui-layer-btn-"+(r.btnAlign||"")+'">'+e+"</div>"}():"")+(r.resize?'<span class="layui-layer-resize"></span>':"")+"</div>"],u,i('<div class="layui-layer-move"></div>')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='<iframe scrolling="'+(t.content[1]||"auto")+'" allowtransparency="true" id="'+l[4]+a+'" name="'+l[4]+a+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+t.content[0]+'"></iframe>';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'<i class="layui-layer-TipsG"></i>',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'<textarea class="layui-layer-input"'+a+">"+(e.value||"")+"</textarea>":function(){return'<input type="'+(1==e.formType?"password":"text")+'" class="layui-layer-input" value="'+(e.value||"")+'">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){s=e.find(".layui-layer-input"),s.focus(),"function"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("&#x6700;&#x591A;&#x8F93;&#x5165;"+(e.maxlength||500)+"&#x4E2A;&#x5B57;&#x6570;",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a='<span class="'+n+'">'+t[0].title+"</span>";i<e;i++)a+="<span>"+t[i].title+"</span>";return a}(),content:'<ul class="layui-layer-tabmain">'+function(){var e=t.length,i=1,a="";if(e>0)for(a='<li class="layui-layer-tabli '+n+'">'+(t[0].content||"no content")+"</li>";i<e;i++)a+='<li class="layui-layer-tabli">'+(t[i].content||"no content")+"</li>";return a}()+"</ul>",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("&#x6CA1;&#x6709;&#x56FE;&#x7247;")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+"px",a[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:"layui-layer-photos"+c("photos"),content:'<div class="layui-layer-phimg"><img src="'+u[d].src+'" alt="'+(u[d].alt||"")+'" layer-pid="'+u[d].pid+'"><div class="layui-layer-imgsee">'+(u.length>1?'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>':"")+'<div class="layui-layer-imgbar" style="display:'+(a?"block":"")+'"><span class="layui-layer-imgtit"><a href="javascript:;">'+(u[d].alt||"")+"</a><em>"+s.imgIndex+"/"+u.length+"</em></span></div></div></div>",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;",{time:3e4,btn:["&#x4E0B;&#x4E00;&#x5F20;","&#x4E0D;&#x770B;&#x4E86;"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);
hybrid/html/lib/layer_mobile/mobile/layer.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ /*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
2
+ ;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);
hybrid/html/lib/layer_mobile/mobile/need/layer.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}
hybrid/html/lib/layer_mobile/theme/default/icon-ext.png ADDED
hybrid/html/lib/layer_mobile/theme/default/icon.png ADDED
hybrid/html/lib/layer_mobile/theme/default/layer.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}}
hybrid/html/lib/layer_mobile/theme/default/loading-0.gif ADDED
hybrid/html/lib/layer_mobile/theme/default/loading-1.gif ADDED
hybrid/html/lib/layer_mobile/theme/default/loading-2.gif ADDED
hybrid/html/lib/vue.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Vue.js v2.5.16
3
+ * (c) 2014-2018 Evan You
4
+ * Released under the MIT License.
5
+ */
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Vue=t()}(this,function(){"use strict";var y=Object.freeze({});function M(e){return null==e}function D(e){return null!=e}function S(e){return!0===e}function T(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function P(e){return null!==e&&"object"==typeof e}var r=Object.prototype.toString;function l(e){return"[object Object]"===r.call(e)}function i(e){var t=parseFloat(String(e));return 0<=t&&Math.floor(t)===t&&isFinite(e)}function t(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function F(e){var t=parseFloat(e);return isNaN(t)?e:t}function s(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var c=s("slot,component",!0),u=s("key,ref,slot,slot-scope,is");function f(e,t){if(e.length){var n=e.indexOf(t);if(-1<n)return e.splice(n,1)}}var n=Object.prototype.hasOwnProperty;function p(e,t){return n.call(e,t)}function e(t){var n=Object.create(null);return function(e){return n[e]||(n[e]=t(e))}}var o=/-(\w)/g,g=e(function(e){return e.replace(o,function(e,t){return t?t.toUpperCase():""})}),d=e(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),a=/\B([A-Z])/g,_=e(function(e){return e.replace(a,"-$1").toLowerCase()});var v=Function.prototype.bind?function(e,t){return e.bind(t)}:function(n,r){function e(e){var t=arguments.length;return t?1<t?n.apply(r,arguments):n.call(r,e):n.call(r)}return e._length=n.length,e};function h(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function m(e,t){for(var n in t)e[n]=t[n];return e}function b(e){for(var t={},n=0;n<e.length;n++)e[n]&&m(t,e[n]);return t}function $(e,t,n){}var O=function(e,t,n){return!1},w=function(e){return e};function C(t,n){if(t===n)return!0;var e=P(t),r=P(n);if(!e||!r)return!e&&!r&&String(t)===String(n);try{var i=Array.isArray(t),o=Array.isArray(n);if(i&&o)return t.length===n.length&&t.every(function(e,t){return C(e,n[t])});if(i||o)return!1;var a=Object.keys(t),s=Object.keys(n);return a.length===s.length&&a.every(function(e){return C(t[e],n[e])})}catch(e){return!1}}function x(e,t){for(var n=0;n<e.length;n++)if(C(e[n],t))return n;return-1}function R(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var E="data-server-rendered",k=["component","directive","filter"],A=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],j={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:O,isReservedAttr:O,isUnknownElement:O,getTagNamespace:$,parsePlatformTagName:w,mustUseProp:O,_lifecycleHooks:A};function N(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var L=/[^\w.$]/;var I,H="__proto__"in{},B="undefined"!=typeof window,U="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,V=U&&WXEnvironment.platform.toLowerCase(),z=B&&window.navigator.userAgent.toLowerCase(),K=z&&/msie|trident/.test(z),J=z&&0<z.indexOf("msie 9.0"),q=z&&0<z.indexOf("edge/"),W=(z&&z.indexOf("android"),z&&/iphone|ipad|ipod|ios/.test(z)||"ios"===V),G=(z&&/chrome\/\d+/.test(z),{}.watch),Z=!1;if(B)try{var X={};Object.defineProperty(X,"passive",{get:function(){Z=!0}}),window.addEventListener("test-passive",null,X)}catch(e){}var Y=function(){return void 0===I&&(I=!B&&!U&&"undefined"!=typeof global&&"server"===global.process.env.VUE_ENV),I},Q=B&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ee(e){return"function"==typeof e&&/native code/.test(e.toString())}var te,ne="undefined"!=typeof Symbol&&ee(Symbol)&&"undefined"!=typeof Reflect&&ee(Reflect.ownKeys);te="undefined"!=typeof Set&&ee(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var re=$,ie=0,oe=function(){this.id=ie++,this.subs=[]};oe.prototype.addSub=function(e){this.subs.push(e)},oe.prototype.removeSub=function(e){f(this.subs,e)},oe.prototype.depend=function(){oe.target&&oe.target.addDep(this)},oe.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},oe.target=null;var ae=[];function se(e){oe.target&&ae.push(oe.target),oe.target=e}function ce(){oe.target=ae.pop()}var le=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ue={child:{configurable:!0}};ue.child.get=function(){return this.componentInstance},Object.defineProperties(le.prototype,ue);var fe=function(e){void 0===e&&(e="");var t=new le;return t.text=e,t.isComment=!0,t};function pe(e){return new le(void 0,void 0,void 0,String(e))}function de(e){var t=new le(e.tag,e.data,e.children,e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.isCloned=!0,t}var ve=Array.prototype,he=Object.create(ve);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(o){var a=ve[o];N(he,o,function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,r=a.apply(this,e),i=this.__ob__;switch(o){case"push":case"unshift":n=e;break;case"splice":n=e.slice(2)}return n&&i.observeArray(n),i.dep.notify(),r})});var me=Object.getOwnPropertyNames(he),ye=!0;function ge(e){ye=e}var _e=function(e){(this.value=e,this.dep=new oe,this.vmCount=0,N(e,"__ob__",this),Array.isArray(e))?((H?be:$e)(e,he,me),this.observeArray(e)):this.walk(e)};function be(e,t,n){e.__proto__=t}function $e(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];N(e,o,t[o])}}function we(e,t){var n;if(P(e)&&!(e instanceof le))return p(e,"__ob__")&&e.__ob__ instanceof _e?n=e.__ob__:ye&&!Y()&&(Array.isArray(e)||l(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new _e(e)),t&&n&&n.vmCount++,n}function Ce(n,e,r,t,i){var o=new oe,a=Object.getOwnPropertyDescriptor(n,e);if(!a||!1!==a.configurable){var s=a&&a.get;s||2!==arguments.length||(r=n[e]);var c=a&&a.set,l=!i&&we(r);Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(n):r;return oe.target&&(o.depend(),l&&(l.dep.depend(),Array.isArray(e)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(e))),e},set:function(e){var t=s?s.call(n):r;e===t||e!=e&&t!=t||(c?c.call(n,e):r=e,l=!i&&we(e),o.notify())}})}}function xe(e,t,n){if(Array.isArray(e)&&i(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(Ce(r.value,t,n),r.dep.notify(),n):e[t]=n}function ke(e,t){if(Array.isArray(e)&&i(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||p(e,t)&&(delete e[t],n&&n.dep.notify())}}_e.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Ce(e,t[n])},_e.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)we(e[t])};var Ae=j.optionMergeStrategies;function Oe(e,t){if(!t)return e;for(var n,r,i,o=Object.keys(t),a=0;a<o.length;a++)r=e[n=o[a]],i=t[n],p(e,n)?l(r)&&l(i)&&Oe(r,i):xe(e,n,i);return e}function Se(n,r,i){return i?function(){var e="function"==typeof r?r.call(i,i):r,t="function"==typeof n?n.call(i,i):n;return e?Oe(e,t):t}:r?n?function(){return Oe("function"==typeof r?r.call(this,this):r,"function"==typeof n?n.call(this,this):n)}:r:n}function Te(e,t){return t?e?e.concat(t):Array.isArray(t)?t:[t]:e}function Ee(e,t,n,r){var i=Object.create(e||null);return t?m(i,t):i}Ae.data=function(e,t,n){return n?Se(e,t,n):t&&"function"!=typeof t?e:Se(e,t)},A.forEach(function(e){Ae[e]=Te}),k.forEach(function(e){Ae[e+"s"]=Ee}),Ae.watch=function(e,t,n,r){if(e===G&&(e=void 0),t===G&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in m(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Ae.props=Ae.methods=Ae.inject=Ae.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return m(i,e),t&&m(i,t),i},Ae.provide=Se;var je=function(e,t){return void 0===t?e:t};function Ne(n,r,i){"function"==typeof r&&(r=r.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[g(i)]={type:null});else if(l(n))for(var a in n)i=n[a],o[g(a)]=l(i)?i:{type:i};e.props=o}}(r),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(l(n))for(var o in n){var a=n[o];r[o]=l(a)?m({from:o},a):{from:a}}}}(r),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(r);var e=r.extends;if(e&&(n=Ne(n,e,i)),r.mixins)for(var t=0,o=r.mixins.length;t<o;t++)n=Ne(n,r.mixins[t],i);var a,s={};for(a in n)c(a);for(a in r)p(n,a)||c(a);function c(e){var t=Ae[e]||je;s[e]=t(n[e],r[e],i,e)}return s}function Le(e,t,n,r){if("string"==typeof n){var i=e[t];if(p(i,n))return i[n];var o=g(n);if(p(i,o))return i[o];var a=d(o);return p(i,a)?i[a]:i[n]||i[o]||i[a]}}function Ie(e,t,n,r){var i=t[e],o=!p(n,e),a=n[e],s=Pe(Boolean,i.type);if(-1<s)if(o&&!p(i,"default"))a=!1;else if(""===a||a===_(e)){var c=Pe(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!p(t,"default"))return;var r=t.default;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof r&&"Function"!==Me(t.type)?r.call(e):r}(r,i,e);var l=ye;ge(!0),we(a),ge(l)}return a}function Me(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function De(e,t){return Me(e)===Me(t)}function Pe(e,t){if(!Array.isArray(t))return De(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(De(t[n],e))return n;return-1}function Fe(e,t,n){if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){Re(e,r,"errorCaptured hook")}}Re(e,t,n)}function Re(e,t,n){if(j.errorHandler)try{return j.errorHandler.call(null,e,t,n)}catch(e){He(e,null,"config.errorHandler")}He(e,t,n)}function He(e,t,n){if(!B&&!U||"undefined"==typeof console)throw e;console.error(e)}var Be,Ue,Ve=[],ze=!1;function Ke(){ze=!1;for(var e=Ve.slice(0),t=Ve.length=0;t<e.length;t++)e[t]()}var Je=!1;if("undefined"!=typeof setImmediate&&ee(setImmediate))Ue=function(){setImmediate(Ke)};else if("undefined"==typeof MessageChannel||!ee(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())Ue=function(){setTimeout(Ke,0)};else{var qe=new MessageChannel,We=qe.port2;qe.port1.onmessage=Ke,Ue=function(){We.postMessage(1)}}if("undefined"!=typeof Promise&&ee(Promise)){var Ge=Promise.resolve();Be=function(){Ge.then(Ke),W&&setTimeout($)}}else Be=Ue;function Ze(e,t){var n;if(Ve.push(function(){if(e)try{e.call(t)}catch(e){Fe(e,t,"nextTick")}else n&&n(t)}),ze||(ze=!0,Je?Ue():Be()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var Xe=new te;function Ye(e){!function e(t,n){var r,i;var o=Array.isArray(t);if(!o&&!P(t)||Object.isFrozen(t)||t instanceof le)return;if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,Xe),Xe.clear()}var Qe,et=e(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function tt(e){function i(){var e=arguments,t=i.fns;if(!Array.isArray(t))return t.apply(null,arguments);for(var n=t.slice(),r=0;r<n.length;r++)n[r].apply(null,e)}return i.fns=e,i}function nt(e,t,n,r,i){var o,a,s,c;for(o in e)a=e[o],s=t[o],c=et(o),M(a)||(M(s)?(M(a.fns)&&(a=e[o]=tt(a)),n(c.name,a,c.once,c.capture,c.passive,c.params)):a!==s&&(s.fns=a,e[o]=s));for(o in t)M(e[o])&&r((c=et(o)).name,t[o],c.capture)}function rt(e,t,n){var r;e instanceof le&&(e=e.data.hook||(e.data.hook={}));var i=e[t];function o(){n.apply(this,arguments),f(r.fns,o)}M(i)?r=tt([o]):D(i.fns)&&S(i.merged)?(r=i).fns.push(o):r=tt([i,o]),r.merged=!0,e[t]=r}function it(e,t,n,r,i){if(D(t)){if(p(t,n))return e[n]=t[n],i||delete t[n],!0;if(p(t,r))return e[n]=t[r],i||delete t[r],!0}return!1}function ot(e){return T(e)?[pe(e)]:Array.isArray(e)?function e(t,n){var r=[];var i,o,a,s;for(i=0;i<t.length;i++)M(o=t[i])||"boolean"==typeof o||(a=r.length-1,s=r[a],Array.isArray(o)?0<o.length&&(at((o=e(o,(n||"")+"_"+i))[0])&&at(s)&&(r[a]=pe(s.text+o[0].text),o.shift()),r.push.apply(r,o)):T(o)?at(s)?r[a]=pe(s.text+o):""!==o&&r.push(pe(o)):at(o)&&at(s)?r[a]=pe(s.text+o.text):(S(t._isVList)&&D(o.tag)&&M(o.key)&&D(n)&&(o.key="__vlist"+n+"_"+i+"__"),r.push(o)));return r}(e):void 0}function at(e){return D(e)&&D(e.text)&&!1===e.isComment}function st(e,t){return(e.__esModule||ne&&"Module"===e[Symbol.toStringTag])&&(e=e.default),P(e)?t.extend(e):e}function ct(e){return e.isComment&&e.asyncFactory}function lt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(D(n)&&(D(n.componentOptions)||ct(n)))return n}}function ut(e,t,n){n?Qe.$once(e,t):Qe.$on(e,t)}function ft(e,t){Qe.$off(e,t)}function pt(e,t,n){Qe=e,nt(t,n||{},ut,ft),Qe=void 0}function dt(e,t){var n={};if(!e)return n;for(var r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var l in n)n[l].every(vt)&&delete n[l];return n}function vt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function ht(e,t){t=t||{};for(var n=0;n<e.length;n++)Array.isArray(e[n])?ht(e[n],t):t[e[n].key]=e[n].fn;return t}var mt=null;function yt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function gt(e,t){if(t){if(e._directInactive=!1,yt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)gt(e.$children[n]);_t(e,"activated")}}function _t(t,n){se();var e=t.$options[n];if(e)for(var r=0,i=e.length;r<i;r++)try{e[r].call(t)}catch(e){Fe(e,t,n+" hook")}t._hasHookEvent&&t.$emit("hook:"+n),ce()}var bt=[],$t=[],wt={},Ct=!1,xt=!1,kt=0;function At(){var e,t;for(xt=!0,bt.sort(function(e,t){return e.id-t.id}),kt=0;kt<bt.length;kt++)t=(e=bt[kt]).id,wt[t]=null,e.run();var n=$t.slice(),r=bt.slice();kt=bt.length=$t.length=0,wt={},Ct=xt=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,gt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&_t(r,"updated")}}(r),Q&&j.devtools&&Q.emit("flush")}var Ot=0,St=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Ot,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new te,this.newDepIds=new te,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!L.test(e)){var n=e.split(".");return function(e){for(var t=0;t<n.length;t++){if(!e)return;e=e[n[t]]}return e}}}(t),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};St.prototype.get=function(){var e;se(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Fe(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&Ye(e),ce(),this.cleanupDeps()}return e},St.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},St.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},St.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==wt[t]){if(wt[t]=!0,xt){for(var n=bt.length-1;kt<n&&bt[n].id>e.id;)n--;bt.splice(n+1,0,e)}else bt.push(e);Ct||(Ct=!0,Ze(At))}}(this)},St.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||P(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Fe(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},St.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},St.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},St.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||f(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Tt={enumerable:!0,configurable:!0,get:$,set:$};function Et(e,t,n){Tt.get=function(){return this[t][n]},Tt.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Tt)}function jt(e){e._watchers=[];var t=e.$options;t.props&&function(n,r){var i=n.$options.propsData||{},o=n._props={},a=n.$options._propKeys=[];n.$parent&&ge(!1);var e=function(e){a.push(e);var t=Ie(e,r,i,n);Ce(o,e,t),e in n||Et(n,"_props",e)};for(var t in r)e(t);ge(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?$:v(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data="function"==typeof t?function(e,t){se();try{return e.call(t,t)}catch(e){return Fe(e,t,"data()"),{}}finally{ce()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&p(r,o)||(void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&Et(e,"_data",o))}var a;we(t,!0)}(e):we(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=Y();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new St(e,a||$,$,Nt)),i in e||Lt(e,i,o)}}(e,t.computed),t.watch&&t.watch!==G&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)Mt(e,n,r[i]);else Mt(e,n,r)}}(e,t.watch)}var Nt={lazy:!0};function Lt(e,t,n){var r=!Y();"function"==typeof n?(Tt.get=r?It(t):n,Tt.set=$):(Tt.get=n.get?r&&!1!==n.cache?It(t):n.get:$,Tt.set=n.set?n.set:$),Object.defineProperty(e,t,Tt)}function It(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),oe.target&&e.depend(),e.value}}function Mt(e,t,n,r){return l(n)&&(n=(r=n).handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}function Dt(t,e){if(t){for(var n=Object.create(null),r=ne?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),i=0;i<r.length;i++){for(var o=r[i],a=t[o].from,s=e;s;){if(s._provided&&p(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in t[o]){var c=t[o].default;n[o]="function"==typeof c?c.call(e):c}}return n}}function Pt(e,t){var n,r,i,o,a;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,i=e.length;r<i;r++)n[r]=t(e[r],r);else if("number"==typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(P(e))for(o=Object.keys(e),n=new Array(o.length),r=0,i=o.length;r<i;r++)a=o[r],n[r]=t(e[a],a,r);return D(n)&&(n._isVList=!0),n}function Ft(e,t,n,r){var i,o=this.$scopedSlots[e];if(o)n=n||{},r&&(n=m(m({},r),n)),i=o(n)||t;else{var a=this.$slots[e];a&&(a._rendered=!0),i=a||t}var s=n&&n.slot;return s?this.$createElement("template",{slot:s},i):i}function Rt(e){return Le(this.$options,"filters",e)||w}function Ht(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function Bt(e,t,n,r,i){var o=j.keyCodes[t]||n;return i&&r&&!j.keyCodes[t]?Ht(i,r):o?Ht(o,e):r?_(r)!==t:void 0}function Ut(n,r,i,o,a){if(i)if(P(i)){var s;Array.isArray(i)&&(i=b(i));var e=function(t){if("class"===t||"style"===t||u(t))s=n;else{var e=n.attrs&&n.attrs.type;s=o||j.mustUseProp(r,e,t)?n.domProps||(n.domProps={}):n.attrs||(n.attrs={})}t in s||(s[t]=i[t],a&&((n.on||(n.on={}))["update:"+t]=function(e){i[t]=e}))};for(var t in i)e(t)}else;return n}function Vt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t||Kt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r}function zt(e,t,n){return Kt(e,"__once__"+t+(n?"_"+n:""),!0),e}function Kt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&Jt(e[r],t+"_"+r,n);else Jt(e,t,n)}function Jt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function qt(e,t){if(t)if(l(t)){var n=e.on=e.on?m({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function Wt(e){e._o=zt,e._n=F,e._s=t,e._l=Pt,e._t=Ft,e._q=C,e._i=x,e._m=Vt,e._f=Rt,e._k=Bt,e._b=Ut,e._v=pe,e._e=fe,e._u=ht,e._g=qt}function Gt(e,t,n,o,r){var a,s=r.options;p(o,"_uid")?(a=Object.create(o))._original=o:o=(a=o)._original;var i=S(s._compiled),c=!i;this.data=e,this.props=t,this.children=n,this.parent=o,this.listeners=e.on||y,this.injections=Dt(s.inject,o),this.slots=function(){return dt(n,o)},i&&(this.$options=s,this.$slots=this.slots(),this.$scopedSlots=e.scopedSlots||y),s._scopeId?this._c=function(e,t,n,r){var i=rn(a,e,t,n,r,c);return i&&!Array.isArray(i)&&(i.fnScopeId=s._scopeId,i.fnContext=o),i}:this._c=function(e,t,n,r){return rn(a,e,t,n,r,c)}}function Zt(e,t,n,r){var i=de(e);return i.fnContext=n,i.fnOptions=r,t.slot&&((i.data||(i.data={})).slot=t.slot),i}function Xt(e,t){for(var n in t)e[g(n)]=t[n]}Wt(Gt.prototype);var Yt={init:function(e,t,n,r){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var i=e;Yt.prepatch(i,i)}else{(e.componentInstance=function(e,t,n,r){var i={_isComponent:!0,parent:t,_parentVnode:e,_parentElm:n||null,_refElm:r||null},o=e.data.inlineTemplate;D(o)&&(i.render=o.render,i.staticRenderFns=o.staticRenderFns);return new e.componentOptions.Ctor(i)}(e,mt,n,r)).$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var n=t.componentOptions;!function(e,t,n,r,i){var o=!!(i||e.$options._renderChildren||r.data.scopedSlots||e.$scopedSlots!==y);if(e.$options._parentVnode=r,e.$vnode=r,e._vnode&&(e._vnode.parent=r),e.$options._renderChildren=i,e.$attrs=r.data.attrs||y,e.$listeners=n||y,t&&e.$options.props){ge(!1);for(var a=e._props,s=e.$options._propKeys||[],c=0;c<s.length;c++){var l=s[c],u=e.$options.props;a[l]=Ie(l,u,t,e)}ge(!0),e.$options.propsData=t}n=n||y;var f=e.$options._parentListeners;e.$options._parentListeners=n,pt(e,n,f),o&&(e.$slots=dt(i,r.context),e.$forceUpdate())}(t.componentInstance=e.componentInstance,n.propsData,n.listeners,t,n.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,_t(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,$t.push(t)):gt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(!(n&&(t._directInactive=!0,yt(t))||t._inactive)){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);_t(t,"deactivated")}}(t,!0):t.$destroy())}},Qt=Object.keys(Yt);function en(e,t,n,r,i){if(!M(e)){var o=n.$options._base;if(P(e)&&(e=o.extend(e)),"function"==typeof e){var a,s,c,l,u,f,p;if(M(e.cid)&&void 0===(e=function(t,n,e){if(S(t.error)&&D(t.errorComp))return t.errorComp;if(D(t.resolved))return t.resolved;if(S(t.loading)&&D(t.loadingComp))return t.loadingComp;if(!D(t.contexts)){var r=t.contexts=[e],i=!0,o=function(){for(var e=0,t=r.length;e<t;e++)r[e].$forceUpdate()},a=R(function(e){t.resolved=st(e,n),i||o()}),s=R(function(e){D(t.errorComp)&&(t.error=!0,o())}),c=t(a,s);return P(c)&&("function"==typeof c.then?M(t.resolved)&&c.then(a,s):D(c.component)&&"function"==typeof c.component.then&&(c.component.then(a,s),D(c.error)&&(t.errorComp=st(c.error,n)),D(c.loading)&&(t.loadingComp=st(c.loading,n),0===c.delay?t.loading=!0:setTimeout(function(){M(t.resolved)&&M(t.error)&&(t.loading=!0,o())},c.delay||200)),D(c.timeout)&&setTimeout(function(){M(t.resolved)&&s(null)},c.timeout))),i=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(e)}(a=e,o,n)))return s=a,c=t,l=n,u=r,f=i,(p=fe()).asyncFactory=s,p.asyncMeta={data:c,context:l,children:u,tag:f},p;t=t||{},dn(e),D(t.model)&&function(e,t){var n=e.model&&e.model.prop||"value",r=e.model&&e.model.event||"input";(t.props||(t.props={}))[n]=t.model.value;var i=t.on||(t.on={});D(i[r])?i[r]=[t.model.callback].concat(i[r]):i[r]=t.model.callback}(e.options,t);var d=function(e,t,n){var r=t.options.props;if(!M(r)){var i={},o=e.attrs,a=e.props;if(D(o)||D(a))for(var s in r){var c=_(s);it(i,a,s,c,!0)||it(i,o,s,c,!1)}return i}}(t,e);if(S(e.options.functional))return function(e,t,n,r,i){var o=e.options,a={},s=o.props;if(D(s))for(var c in s)a[c]=Ie(c,s,t||y);else D(n.attrs)&&Xt(a,n.attrs),D(n.props)&&Xt(a,n.props);var l=new Gt(n,a,i,r,e),u=o.render.call(null,l._c,l);if(u instanceof le)return Zt(u,n,l.parent,o);if(Array.isArray(u)){for(var f=ot(u)||[],p=new Array(f.length),d=0;d<f.length;d++)p[d]=Zt(f[d],n,l.parent,o);return p}}(e,d,t,n,r);var v=t.on;if(t.on=t.nativeOn,S(e.options.abstract)){var h=t.slot;t={},h&&(t.slot=h)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<Qt.length;n++){var r=Qt[n];t[r]=Yt[r]}}(t);var m=e.options.name||i;return new le("vue-component-"+e.cid+(m?"-"+m:""),t,void 0,void 0,void 0,n,{Ctor:e,propsData:d,listeners:v,tag:i,children:r},a)}}}var tn=1,nn=2;function rn(e,t,n,r,i,o){return(Array.isArray(n)||T(n))&&(i=r,r=n,n=void 0),S(o)&&(i=nn),function(e,t,n,r,i){if(D(n)&&D(n.__ob__))return fe();D(n)&&D(n.is)&&(t=n.is);if(!t)return fe();Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);i===nn?r=ot(r):i===tn&&(r=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(r));var o,a;if("string"==typeof t){var s;a=e.$vnode&&e.$vnode.ns||j.getTagNamespace(t),o=j.isReservedTag(t)?new le(j.parsePlatformTagName(t),n,r,void 0,void 0,e):D(s=Le(e.$options,"components",t))?en(s,n,e,r,t):new le(t,n,r,void 0,void 0,e)}else o=en(t,n,e,r);return Array.isArray(o)?o:D(o)?(D(a)&&function e(t,n,r){t.ns=n;"foreignObject"===t.tag&&(n=void 0,r=!0);if(D(t.children))for(var i=0,o=t.children.length;i<o;i++){var a=t.children[i];D(a.tag)&&(M(a.ns)||S(r)&&"svg"!==a.tag)&&e(a,n,r)}}(o,a),D(n)&&function(e){P(e.style)&&Ye(e.style);P(e.class)&&Ye(e.class)}(n),o):fe()}(e,t,n,r,i)}var on,an,sn,cn,ln,un,fn,pn=0;function dn(e){var t=e.options;if(e.super){var n=dn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.extendOptions,i=e.sealedOptions;for(var o in n)n[o]!==i[o]&&(t||(t={}),t[o]=vn(n[o],r[o],i[o]));return t}(e);r&&m(e.extendOptions,r),(t=e.options=Ne(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function vn(e,t,n){if(Array.isArray(e)){var r=[];n=Array.isArray(n)?n:[n],t=Array.isArray(t)?t:[t];for(var i=0;i<e.length;i++)(0<=t.indexOf(e[i])||n.indexOf(e[i])<0)&&r.push(e[i]);return r}return e}function hn(e){this._init(e)}function mn(e){e.cid=0;var a=1;e.extend=function(e){e=e||{};var t=this,n=t.cid,r=e._Ctor||(e._Ctor={});if(r[n])return r[n];var i=e.name||t.options.name,o=function(e){this._init(e)};return((o.prototype=Object.create(t.prototype)).constructor=o).cid=a++,o.options=Ne(t.options,e),o.super=t,o.options.props&&function(e){var t=e.options.props;for(var n in t)Et(e.prototype,"_props",n)}(o),o.options.computed&&function(e){var t=e.options.computed;for(var n in t)Lt(e.prototype,n,t[n])}(o),o.extend=t.extend,o.mixin=t.mixin,o.use=t.use,k.forEach(function(e){o[e]=t[e]}),i&&(o.options.components[i]=o),o.superOptions=t.options,o.extendOptions=e,o.sealedOptions=m({},o.options),r[n]=o}}function yn(e){return e&&(e.Ctor.options.name||e.tag)}function gn(e,t){return Array.isArray(e)?-1<e.indexOf(t):"string"==typeof e?-1<e.split(",").indexOf(t):(n=e,"[object RegExp]"===r.call(n)&&e.test(t));var n}function _n(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=yn(a.componentOptions);s&&!t(s)&&bn(n,o,r,i)}}}function bn(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,f(n,t)}hn.prototype._init=function(e){var t,n,r,i,o=this;o._uid=pn++,o._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r,n._parentElm=t._parentElm,n._refElm=t._refElm;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(o,e):o.$options=Ne(dn(o.constructor),e||{},o),function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}((o._renderProxy=o)._self=o),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&pt(e,t)}(o),function(i){i._vnode=null,i._staticTrees=null;var e=i.$options,t=i.$vnode=e._parentVnode,n=t&&t.context;i.$slots=dt(e._renderChildren,n),i.$scopedSlots=y,i._c=function(e,t,n,r){return rn(i,e,t,n,r,!1)},i.$createElement=function(e,t,n,r){return rn(i,e,t,n,r,!0)};var r=t&&t.data;Ce(i,"$attrs",r&&r.attrs||y,null,!0),Ce(i,"$listeners",e._parentListeners||y,null,!0)}(o),_t(o,"beforeCreate"),(n=Dt((t=o).$options.inject,t))&&(ge(!1),Object.keys(n).forEach(function(e){Ce(t,e,n[e])}),ge(!0)),jt(o),(i=(r=o).$options.provide)&&(r._provided="function"==typeof i?i.call(r):i),_t(o,"created"),o.$options.el&&o.$mount(o.$options.el)},on=hn,an={get:function(){return this._data}},sn={get:function(){return this._props}},Object.defineProperty(on.prototype,"$data",an),Object.defineProperty(on.prototype,"$props",sn),on.prototype.$set=xe,on.prototype.$delete=ke,on.prototype.$watch=function(e,t,n){if(l(t))return Mt(this,e,t,n);(n=n||{}).user=!0;var r=new St(this,e,t,n);return n.immediate&&t.call(this,r.value),function(){r.teardown()}},ln=/^hook:/,(cn=hn).prototype.$on=function(e,t){if(Array.isArray(e))for(var n=0,r=e.length;n<r;n++)this.$on(e[n],t);else(this._events[e]||(this._events[e]=[])).push(t),ln.test(e)&&(this._hasHookEvent=!0);return this},cn.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},cn.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)this.$off(e[r],t);return n}var o=n._events[e];if(!o)return n;if(!t)return n._events[e]=null,n;if(t)for(var a,s=o.length;s--;)if((a=o[s])===t||a.fn===t){o.splice(s,1);break}return n},cn.prototype.$emit=function(t){var n=this,e=n._events[t];if(e){e=1<e.length?h(e):e;for(var r=h(arguments,1),i=0,o=e.length;i<o;i++)try{e[i].apply(n,r)}catch(e){Fe(e,n,'event handler for "'+t+'"')}}return n},(un=hn).prototype._update=function(e,t){var n=this;n._isMounted&&_t(n,"beforeUpdate");var r=n.$el,i=n._vnode,o=mt;(mt=n)._vnode=e,i?n.$el=n.__patch__(i,e):(n.$el=n.__patch__(n.$el,e,t,!1,n.$options._parentElm,n.$options._refElm),n.$options._parentElm=n.$options._refElm=null),mt=o,r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},un.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},un.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){_t(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||f(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),_t(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}},Wt((fn=hn).prototype),fn.prototype.$nextTick=function(e){return Ze(e,this)},fn.prototype._render=function(){var t,n=this,e=n.$options,r=e.render,i=e._parentVnode;i&&(n.$scopedSlots=i.data.scopedSlots||y),n.$vnode=i;try{t=r.call(n._renderProxy,n.$createElement)}catch(e){Fe(e,n,"render"),t=n._vnode}return t instanceof le||(t=fe()),t.parent=i,t};var $n,wn,Cn,xn=[String,RegExp,Array],kn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:xn,exclude:xn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)bn(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",function(t){_n(e,function(e){return gn(t,e)})}),this.$watch("exclude",function(t){_n(e,function(e){return!gn(t,e)})})},render:function(){var e=this.$slots.default,t=lt(e),n=t&&t.componentOptions;if(n){var r=yn(n),i=this.include,o=this.exclude;if(i&&(!r||!gn(i,r))||o&&r&&gn(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[c]?(t.componentInstance=a[c].componentInstance,f(s,c),s.push(c)):(a[c]=t,s.push(c),this.max&&s.length>parseInt(this.max)&&bn(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};$n=hn,Cn={get:function(){return j}},Object.defineProperty($n,"config",Cn),$n.util={warn:re,extend:m,mergeOptions:Ne,defineReactive:Ce},$n.set=xe,$n.delete=ke,$n.nextTick=Ze,$n.options=Object.create(null),k.forEach(function(e){$n.options[e+"s"]=Object.create(null)}),m(($n.options._base=$n).options.components,kn),$n.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(-1<t.indexOf(e))return this;var n=h(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this},$n.mixin=function(e){return this.options=Ne(this.options,e),this},mn($n),wn=$n,k.forEach(function(n){wn[n]=function(e,t){return t?("component"===n&&l(t)&&(t.name=t.name||e,t=this.options._base.extend(t)),"directive"===n&&"function"==typeof t&&(t={bind:t,update:t}),this.options[n+"s"][e]=t):this.options[n+"s"][e]}}),Object.defineProperty(hn.prototype,"$isServer",{get:Y}),Object.defineProperty(hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(hn,"FunctionalRenderContext",{value:Gt}),hn.version="2.5.16";var An=s("style,class"),On=s("input,textarea,option,select,progress"),Sn=function(e,t,n){return"value"===n&&On(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Tn=s("contenteditable,draggable,spellcheck"),En=s("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),jn="http://www.w3.org/1999/xlink",Nn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Ln=function(e){return Nn(e)?e.slice(6,e.length):""},In=function(e){return null==e||!1===e};function Mn(e){for(var t=e.data,n=e,r=e;D(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Dn(r.data,t));for(;D(n=n.parent);)n&&n.data&&(t=Dn(t,n.data));return function(e,t){if(D(e)||D(t))return Pn(e,Fn(t));return""}(t.staticClass,t.class)}function Dn(e,t){return{staticClass:Pn(e.staticClass,t.staticClass),class:D(e.class)?[e.class,t.class]:t.class}}function Pn(e,t){return e?t?e+" "+t:e:t||""}function Fn(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r<i;r++)D(t=Fn(e[r]))&&""!==t&&(n&&(n+=" "),n+=t);return n}(e):P(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Rn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Hn=s("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Bn=s("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Un=function(e){return Hn(e)||Bn(e)};function Vn(e){return Bn(e)?"svg":"math"===e?"math":void 0}var zn=Object.create(null);var Kn=s("text,number,password,search,email,tel,url");function Jn(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}var qn=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e||t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n},createElementNS:function(e,t){return document.createElementNS(Rn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),Wn={create:function(e,t){Gn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Gn(e,!0),Gn(t))},destroy:function(e){Gn(e,!0)}};function Gn(e,t){var n=e.data.ref;if(D(n)){var r=e.context,i=e.componentInstance||e.elm,o=r.$refs;t?Array.isArray(o[n])?f(o[n],i):o[n]===i&&(o[n]=void 0):e.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}var Zn=new le("",{},[]),Xn=["create","activate","update","remove","destroy"];function Yn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&D(e.data)===D(t.data)&&function(e,t){if("input"!==e.tag)return!0;var n,r=D(n=e.data)&&D(n=n.attrs)&&n.type,i=D(n=t.data)&&D(n=n.attrs)&&n.type;return r===i||Kn(r)&&Kn(i)}(e,t)||S(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&M(t.asyncFactory.error))}function Qn(e,t,n){var r,i,o={};for(r=t;r<=n;++r)D(i=e[r].key)&&(o[i]=r);return o}var er={create:tr,update:tr,destroy:function(e){tr(e,Zn)}};function tr(e,t){(e.data.directives||t.data.directives)&&function(t,n){var e,r,i,o=t===Zn,a=n===Zn,s=rr(t.data.directives,t.context),c=rr(n.data.directives,n.context),l=[],u=[];for(e in c)r=s[e],i=c[e],r?(i.oldValue=r.value,ir(i,"update",n,t),i.def&&i.def.componentUpdated&&u.push(i)):(ir(i,"bind",n,t),i.def&&i.def.inserted&&l.push(i));if(l.length){var f=function(){for(var e=0;e<l.length;e++)ir(l[e],"inserted",n,t)};o?rt(n,"insert",f):f()}u.length&&rt(n,"postpatch",function(){for(var e=0;e<u.length;e++)ir(u[e],"componentUpdated",n,t)});if(!o)for(e in s)c[e]||ir(s[e],"unbind",t,t,a)}(e,t)}var nr=Object.create(null);function rr(e,t){var n,r,i,o=Object.create(null);if(!e)return o;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=nr),(o[(i=r,i.rawName||i.name+"."+Object.keys(i.modifiers||{}).join("."))]=r).def=Le(t.$options,"directives",r.name);return o}function ir(t,n,r,e,i){var o=t.def&&t.def[n];if(o)try{o(r.elm,t,r,e,i)}catch(e){Fe(e,r.context,"directive "+t.name+" "+n+" hook")}}var or=[Wn,er];function ar(e,t){var n=t.componentOptions;if(!(D(n)&&!1===n.Ctor.options.inheritAttrs||M(e.data.attrs)&&M(t.data.attrs))){var r,i,o=t.elm,a=e.data.attrs||{},s=t.data.attrs||{};for(r in D(s.__ob__)&&(s=t.data.attrs=m({},s)),s)i=s[r],a[r]!==i&&sr(o,r,i);for(r in(K||q)&&s.value!==a.value&&sr(o,"value",s.value),a)M(s[r])&&(Nn(r)?o.removeAttributeNS(jn,Ln(r)):Tn(r)||o.removeAttribute(r))}}function sr(e,t,n){-1<e.tagName.indexOf("-")?cr(e,t,n):En(t)?In(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Tn(t)?e.setAttribute(t,In(n)||"false"===n?"false":"true"):Nn(t)?In(n)?e.removeAttributeNS(jn,Ln(t)):e.setAttributeNS(jn,t,n):cr(e,t,n)}function cr(t,e,n){if(In(n))t.removeAttribute(e);else{if(K&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var lr={create:ar,update:ar};function ur(e,t){var n=t.elm,r=t.data,i=e.data;if(!(M(r.staticClass)&&M(r.class)&&(M(i)||M(i.staticClass)&&M(i.class)))){var o=Mn(t),a=n._transitionClasses;D(a)&&(o=Pn(o,Fn(a))),o!==n._prevClass&&(n.setAttribute("class",o),n._prevClass=o)}}var fr,pr,dr,vr,hr,mr,yr={create:ur,update:ur},gr=/[\w).+\-_$\]]/;function _r(e){var t,n,r,i,o,a=!1,s=!1,c=!1,l=!1,u=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(c)96===t&&92!==n&&(c=!1);else if(l)47===t&&92!==n&&(l=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||u||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:u++;break;case 125:u--}if(47===t){for(var v=r-1,h=void 0;0<=v&&" "===(h=e.charAt(v));v--);h&&gr.test(h)||(l=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=br(i,o[r]);return i}function br(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var r=t.slice(0,n),i=t.slice(n+1);return'_f("'+r+'")('+e+(")"!==i?","+i:i)}function $r(e){console.error("[Vue compiler]: "+e)}function wr(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function Cr(e,t,n){(e.props||(e.props=[])).push({name:t,value:n}),e.plain=!1}function xr(e,t,n){(e.attrs||(e.attrs=[])).push({name:t,value:n}),e.plain=!1}function kr(e,t,n){e.attrsMap[t]=n,e.attrsList.push({name:t,value:n})}function Ar(e,t,n,r,i,o){var a;(r=r||y).capture&&(delete r.capture,t="!"+t),r.once&&(delete r.once,t="~"+t),r.passive&&(delete r.passive,t="&"+t),"click"===t&&(r.right?(t="contextmenu",delete r.right):r.middle&&(t="mouseup")),r.native?(delete r.native,a=e.nativeEvents||(e.nativeEvents={})):a=e.events||(e.events={});var s={value:n.trim()};r!==y&&(s.modifiers=r);var c=a[t];Array.isArray(c)?i?c.unshift(s):c.push(s):a[t]=c?i?[s,c]:[c,s]:s,e.plain=!1}function Or(e,t,n){var r=Sr(e,":"+t)||Sr(e,"v-bind:"+t);if(null!=r)return _r(r);if(!1!==n){var i=Sr(e,t);if(null!=i)return JSON.stringify(i)}}function Sr(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Tr(e,t,n){var r=n||{},i=r.number,o="$$v",a=o;r.trim&&(a="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(a="_n("+a+")");var s=Er(t,a);e.model={value:"("+t+")",expression:'"'+t+'"',callback:"function ($$v) {"+s+"}"}}function Er(e,t){var n=function(e){if(e=e.trim(),fr=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<fr-1)return-1<(vr=e.lastIndexOf("."))?{exp:e.slice(0,vr),key:'"'+e.slice(vr+1)+'"'}:{exp:e,key:null};pr=e,vr=hr=mr=0;for(;!Nr();)Lr(dr=jr())?Mr(dr):91===dr&&Ir(dr);return{exp:e.slice(0,hr),key:e.slice(hr+1,mr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function jr(){return pr.charCodeAt(++vr)}function Nr(){return fr<=vr}function Lr(e){return 34===e||39===e}function Ir(e){var t=1;for(hr=vr;!Nr();)if(Lr(e=jr()))Mr(e);else if(91===e&&t++,93===e&&t--,0===t){mr=vr;break}}function Mr(e){for(var t=e;!Nr()&&(e=jr())!==t;);}var Dr,Pr="__r",Fr="__c";function Rr(e,t,n,r,i){var o,a,s,c,l;t=(o=t)._withTask||(o._withTask=function(){Je=!0;var e=o.apply(null,arguments);return Je=!1,e}),n&&(a=t,s=e,c=r,l=Dr,t=function e(){null!==a.apply(null,arguments)&&Hr(s,e,c,l)}),Dr.addEventListener(e,t,Z?{capture:r,passive:i}:r)}function Hr(e,t,n,r){(r||Dr).removeEventListener(e,t._withTask||t,n)}function Br(e,t){if(!M(e.data.on)||!M(t.data.on)){var n=t.data.on||{},r=e.data.on||{};Dr=t.elm,function(e){if(D(e[Pr])){var t=K?"change":"input";e[t]=[].concat(e[Pr],e[t]||[]),delete e[Pr]}D(e[Fr])&&(e.change=[].concat(e[Fr],e.change||[]),delete e[Fr])}(n),nt(n,r,Rr,Hr,t.context),Dr=void 0}}var Ur={create:Br,update:Br};function Vr(e,t){if(!M(e.data.domProps)||!M(t.data.domProps)){var n,r,i,o,a=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};for(n in D(c.__ob__)&&(c=t.data.domProps=m({},c)),s)M(c[n])&&(a[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n){var l=M(a._value=r)?"":String(r);o=l,(i=a).composing||"OPTION"!==i.tagName&&!function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(i,o)&&!function(e,t){var n=e.value,r=e._vModifiers;if(D(r)){if(r.lazy)return!1;if(r.number)return F(n)!==F(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(i,o)||(a.value=l)}else a[n]=r}}}var zr={create:Vr,update:Vr},Kr=e(function(e){var n={},r=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var t=e.split(r);1<t.length&&(n[t[0].trim()]=t[1].trim())}}),n});function Jr(e){var t=qr(e.style);return e.staticStyle?m(e.staticStyle,t):t}function qr(e){return Array.isArray(e)?b(e):"string"==typeof e?Kr(e):e}var Wr,Gr=/^--/,Zr=/\s*!important$/,Xr=function(e,t,n){if(Gr.test(t))e.style.setProperty(t,n);else if(Zr.test(n))e.style.setProperty(t,n.replace(Zr,""),"important");else{var r=Qr(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},Yr=["Webkit","Moz","ms"],Qr=e(function(e){if(Wr=Wr||document.createElement("div").style,"filter"!==(e=g(e))&&e in Wr)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<Yr.length;n++){var r=Yr[n]+t;if(r in Wr)return r}});function ei(e,t){var n=t.data,r=e.data;if(!(M(n.staticStyle)&&M(n.style)&&M(r.staticStyle)&&M(r.style))){var i,o,a=t.elm,s=r.staticStyle,c=r.normalizedStyle||r.style||{},l=s||c,u=qr(t.data.style)||{};t.data.normalizedStyle=D(u.__ob__)?m({},u):u;var f=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=Jr(i.data))&&m(r,n);(n=Jr(e.data))&&m(r,n);for(var o=e;o=o.parent;)o.data&&(n=Jr(o.data))&&m(r,n);return r}(t,!0);for(o in l)M(f[o])&&Xr(a,o,"");for(o in f)(i=f[o])!==l[o]&&Xr(a,o,null==i?"":i)}}var ti={create:ei,update:ei};function ni(t,e){if(e&&(e=e.trim()))if(t.classList)-1<e.indexOf(" ")?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function ri(t,e){if(e&&(e=e.trim()))if(t.classList)-1<e.indexOf(" ")?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";0<=n.indexOf(r);)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function ii(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&m(t,oi(e.name||"v")),m(t,e),t}return"string"==typeof e?oi(e):void 0}}var oi=e(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),ai=B&&!J,si="transition",ci="animation",li="transition",ui="transitionend",fi="animation",pi="animationend";ai&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(li="WebkitTransition",ui="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(fi="WebkitAnimation",pi="webkitAnimationEnd"));var di=B?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function vi(e){di(function(){di(e)})}function hi(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),ni(e,t))}function mi(e,t){e._transitionClasses&&f(e._transitionClasses,t),ri(e,t)}function yi(t,e,n){var r=_i(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===si?ui:pi,c=0,l=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++c>=a&&l()};setTimeout(function(){c<a&&l()},o+1),t.addEventListener(s,u)}var gi=/\b(transform|all)(,|$)/;function _i(e,t){var n,r=window.getComputedStyle(e),i=r[li+"Delay"].split(", "),o=r[li+"Duration"].split(", "),a=bi(i,o),s=r[fi+"Delay"].split(", "),c=r[fi+"Duration"].split(", "),l=bi(s,c),u=0,f=0;return t===si?0<a&&(n=si,u=a,f=o.length):t===ci?0<l&&(n=ci,u=l,f=c.length):f=(n=0<(u=Math.max(a,l))?l<a?si:ci:null)?n===si?o.length:c.length:0,{type:n,timeout:u,propCount:f,hasTransform:n===si&&gi.test(r[li+"Property"])}}function bi(n,e){for(;n.length<e.length;)n=n.concat(n);return Math.max.apply(null,e.map(function(e,t){return $i(e)+$i(n[t])}))}function $i(e){return 1e3*Number(e.slice(0,-1))}function wi(n,e){var r=n.elm;D(r._leaveCb)&&(r._leaveCb.cancelled=!0,r._leaveCb());var t=ii(n.data.transition);if(!M(t)&&!D(r._enterCb)&&1===r.nodeType){for(var i=t.css,o=t.type,a=t.enterClass,s=t.enterToClass,c=t.enterActiveClass,l=t.appearClass,u=t.appearToClass,f=t.appearActiveClass,p=t.beforeEnter,d=t.enter,v=t.afterEnter,h=t.enterCancelled,m=t.beforeAppear,y=t.appear,g=t.afterAppear,_=t.appearCancelled,b=t.duration,$=mt,w=mt.$vnode;w&&w.parent;)$=(w=w.parent).context;var C=!$._isMounted||!n.isRootInsert;if(!C||y||""===y){var x=C&&l?l:a,k=C&&f?f:c,A=C&&u?u:s,O=C&&m||p,S=C&&"function"==typeof y?y:d,T=C&&g||v,E=C&&_||h,j=F(P(b)?b.enter:b),N=!1!==i&&!J,L=ki(S),I=r._enterCb=R(function(){N&&(mi(r,A),mi(r,k)),I.cancelled?(N&&mi(r,x),E&&E(r)):T&&T(r),r._enterCb=null});n.data.show||rt(n,"insert",function(){var e=r.parentNode,t=e&&e._pending&&e._pending[n.key];t&&t.tag===n.tag&&t.elm._leaveCb&&t.elm._leaveCb(),S&&S(r,I)}),O&&O(r),N&&(hi(r,x),hi(r,k),vi(function(){mi(r,x),I.cancelled||(hi(r,A),L||(xi(j)?setTimeout(I,j):yi(r,o,I)))})),n.data.show&&(e&&e(),S&&S(r,I)),N||L||I()}}}function Ci(e,t){var n=e.elm;D(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=ii(e.data.transition);if(M(r)||1!==n.nodeType)return t();if(!D(n._leaveCb)){var i=r.css,o=r.type,a=r.leaveClass,s=r.leaveToClass,c=r.leaveActiveClass,l=r.beforeLeave,u=r.leave,f=r.afterLeave,p=r.leaveCancelled,d=r.delayLeave,v=r.duration,h=!1!==i&&!J,m=ki(u),y=F(P(v)?v.leave:v),g=n._leaveCb=R(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),h&&(mi(n,s),mi(n,c)),g.cancelled?(h&&mi(n,a),p&&p(n)):(t(),f&&f(n)),n._leaveCb=null});d?d(_):_()}function _(){g.cancelled||(e.data.show||((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),l&&l(n),h&&(hi(n,a),hi(n,c),vi(function(){mi(n,a),g.cancelled||(hi(n,s),m||(xi(y)?setTimeout(g,y):yi(n,o,g)))})),u&&u(n,g),h||m||g())}}function xi(e){return"number"==typeof e&&!isNaN(e)}function ki(e){if(M(e))return!1;var t=e.fns;return D(t)?ki(Array.isArray(t)?t[0]:t):1<(e._length||e.length)}function Ai(e,t){!0!==t.data.show&&wi(t)}var Oi=function(e){var r,t,g={},n=e.modules,_=e.nodeOps;for(r=0;r<Xn.length;++r)for(g[Xn[r]]=[],t=0;t<n.length;++t)D(n[t][Xn[r]])&&g[Xn[r]].push(n[t][Xn[r]]);function o(e){var t=_.parentNode(e);D(t)&&_.removeChild(t,e)}function b(e,t,n,r,i,o,a){if(D(e.elm)&&D(o)&&(e=o[a]=de(e)),e.isRootInsert=!i,!function(e,t,n,r){var i=e.data;if(D(i)){var o=D(e.componentInstance)&&i.keepAlive;if(D(i=i.hook)&&D(i=i.init)&&i(e,!1,n,r),D(e.componentInstance))return d(e,t),S(o)&&function(e,t,n,r){for(var i,o=e;o.componentInstance;)if(o=o.componentInstance._vnode,D(i=o.data)&&D(i=i.transition)){for(i=0;i<g.activate.length;++i)g.activate[i](Zn,o);t.push(o);break}u(n,e.elm,r)}(e,t,n,r),!0}}(e,t,n,r)){var s=e.data,c=e.children,l=e.tag;D(l)?(e.elm=e.ns?_.createElementNS(e.ns,l):_.createElement(l,e),f(e),v(e,c,t),D(s)&&h(e,t)):S(e.isComment)?e.elm=_.createComment(e.text):e.elm=_.createTextNode(e.text),u(n,e.elm,r)}}function d(e,t){D(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,$(e)?(h(e,t),f(e)):(Gn(e),t.push(e))}function u(e,t,n){D(e)&&(D(n)?n.parentNode===e&&_.insertBefore(e,t,n):_.appendChild(e,t))}function v(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)b(t[r],n,e.elm,null,!0,t,r);else T(e.text)&&_.appendChild(e.elm,_.createTextNode(String(e.text)))}function $(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return D(e.tag)}function h(e,t){for(var n=0;n<g.create.length;++n)g.create[n](Zn,e);D(r=e.data.hook)&&(D(r.create)&&r.create(Zn,e),D(r.insert)&&t.push(e))}function f(e){var t;if(D(t=e.fnScopeId))_.setStyleScope(e.elm,t);else for(var n=e;n;)D(t=n.context)&&D(t=t.$options._scopeId)&&_.setStyleScope(e.elm,t),n=n.parent;D(t=mt)&&t!==e.context&&t!==e.fnContext&&D(t=t.$options._scopeId)&&_.setStyleScope(e.elm,t)}function y(e,t,n,r,i,o){for(;r<=i;++r)b(n[r],o,e,t,!1,n,r)}function w(e){var t,n,r=e.data;if(D(r))for(D(t=r.hook)&&D(t=t.destroy)&&t(e),t=0;t<g.destroy.length;++t)g.destroy[t](e);if(D(t=e.children))for(n=0;n<e.children.length;++n)w(e.children[n])}function C(e,t,n,r){for(;n<=r;++n){var i=t[n];D(i)&&(D(i.tag)?(a(i),w(i)):o(i.elm))}}function a(e,t){if(D(t)||D(e.data)){var n,r=g.remove.length+1;for(D(t)?t.listeners+=r:t=function(e,t){function n(){0==--n.listeners&&o(e)}return n.listeners=t,n}(e.elm,r),D(n=e.componentInstance)&&D(n=n._vnode)&&D(n.data)&&a(n,t),n=0;n<g.remove.length;++n)g.remove[n](e,t);D(n=e.data.hook)&&D(n=n.remove)?n(e,t):t()}else o(e.elm)}function x(e,t,n,r){for(var i=n;i<r;i++){var o=t[i];if(D(o)&&Yn(e,o))return i}}function k(e,t,n,r){if(e!==t){var i=t.elm=e.elm;if(S(e.isAsyncPlaceholder))D(t.asyncFactory.resolved)?O(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(S(t.isStatic)&&S(e.isStatic)&&t.key===e.key&&(S(t.isCloned)||S(t.isOnce)))t.componentInstance=e.componentInstance;else{var o,a=t.data;D(a)&&D(o=a.hook)&&D(o=o.prepatch)&&o(e,t);var s=e.children,c=t.children;if(D(a)&&$(t)){for(o=0;o<g.update.length;++o)g.update[o](e,t);D(o=a.hook)&&D(o=o.update)&&o(e,t)}M(t.text)?D(s)&&D(c)?s!==c&&function(e,t,n,r,i){for(var o,a,s,c=0,l=0,u=t.length-1,f=t[0],p=t[u],d=n.length-1,v=n[0],h=n[d],m=!i;c<=u&&l<=d;)M(f)?f=t[++c]:M(p)?p=t[--u]:Yn(f,v)?(k(f,v,r),f=t[++c],v=n[++l]):Yn(p,h)?(k(p,h,r),p=t[--u],h=n[--d]):Yn(f,h)?(k(f,h,r),m&&_.insertBefore(e,f.elm,_.nextSibling(p.elm)),f=t[++c],h=n[--d]):(Yn(p,v)?(k(p,v,r),m&&_.insertBefore(e,p.elm,f.elm),p=t[--u]):(M(o)&&(o=Qn(t,c,u)),M(a=D(v.key)?o[v.key]:x(v,t,c,u))?b(v,r,e,f.elm,!1,n,l):Yn(s=t[a],v)?(k(s,v,r),t[a]=void 0,m&&_.insertBefore(e,s.elm,f.elm)):b(v,r,e,f.elm,!1,n,l)),v=n[++l]);u<c?y(e,M(n[d+1])?null:n[d+1].elm,n,l,d,r):d<l&&C(0,t,c,u)}(i,s,c,n,r):D(c)?(D(e.text)&&_.setTextContent(i,""),y(i,null,c,0,c.length-1,n)):D(s)?C(0,s,0,s.length-1):D(e.text)&&_.setTextContent(i,""):e.text!==t.text&&_.setTextContent(i,t.text),D(a)&&D(o=a.hook)&&D(o=o.postpatch)&&o(e,t)}}}function A(e,t,n){if(S(n)&&D(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r<t.length;++r)t[r].data.hook.insert(t[r])}var m=s("attrs,class,staticClass,staticStyle,key");function O(e,t,n,r){var i,o=t.tag,a=t.data,s=t.children;if(r=r||a&&a.pre,t.elm=e,S(t.isComment)&&D(t.asyncFactory))return t.isAsyncPlaceholder=!0;if(D(a)&&(D(i=a.hook)&&D(i=i.init)&&i(t,!0),D(i=t.componentInstance)))return d(t,n),!0;if(D(o)){if(D(s))if(e.hasChildNodes())if(D(i=a)&&D(i=i.domProps)&&D(i=i.innerHTML)){if(i!==e.innerHTML)return!1}else{for(var c=!0,l=e.firstChild,u=0;u<s.length;u++){if(!l||!O(l,s[u],n,r)){c=!1;break}l=l.nextSibling}if(!c||l)return!1}else v(t,s,n);if(D(a)){var f=!1;for(var p in a)if(!m(p)){f=!0,h(t,n);break}!f&&a.class&&Ye(a.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,r,i,o){if(!M(t)){var a,s=!1,c=[];if(M(e))s=!0,b(t,c,i,o);else{var l=D(e.nodeType);if(!l&&Yn(e,t))k(e,t,c,r);else{if(l){if(1===e.nodeType&&e.hasAttribute(E)&&(e.removeAttribute(E),n=!0),S(n)&&O(e,t,c))return A(t,c,!0),e;a=e,e=new le(_.tagName(a).toLowerCase(),{},[],void 0,a)}var u=e.elm,f=_.parentNode(u);if(b(t,c,u._leaveCb?null:f,_.nextSibling(u)),D(t.parent))for(var p=t.parent,d=$(t);p;){for(var v=0;v<g.destroy.length;++v)g.destroy[v](p);if(p.elm=t.elm,d){for(var h=0;h<g.create.length;++h)g.create[h](Zn,p);var m=p.data.hook.insert;if(m.merged)for(var y=1;y<m.fns.length;y++)m.fns[y]()}else Gn(p);p=p.parent}D(f)?C(0,[e],0,0):D(e.tag)&&w(e)}}return A(t,c,s),t.elm}D(e)&&w(e)}}({nodeOps:qn,modules:[lr,yr,Ur,zr,ti,B?{create:Ai,activate:Ai,remove:function(e,t){!0!==e.data.show?Ci(e,t):t()}}:{}].concat(or)});J&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Mi(e,"input")});var Si={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?rt(n,"postpatch",function(){Si.componentUpdated(e,t,n)}):Ti(e,t,n.context),e._vOptions=[].map.call(e.options,Ni)):("textarea"===n.tag||Kn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",Li),e.addEventListener("compositionend",Ii),e.addEventListener("change",Ii),J&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ti(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Ni);if(i.some(function(e,t){return!C(e,r[t])}))(e.multiple?t.value.some(function(e){return ji(e,i)}):t.value!==t.oldValue&&ji(t.value,i))&&Mi(e,"change")}}};function Ti(e,t,n){Ei(e,t,n),(K||q)&&setTimeout(function(){Ei(e,t,n)},0)}function Ei(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],i)o=-1<x(r,Ni(a)),a.selected!==o&&(a.selected=o);else if(C(Ni(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function ji(t,e){return e.every(function(e){return!C(e,t)})}function Ni(e){return"_value"in e?e._value:e.value}function Li(e){e.target.composing=!0}function Ii(e){e.target.composing&&(e.target.composing=!1,Mi(e.target,"input"))}function Mi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Di(e){return!e.componentInstance||e.data&&e.data.transition?e:Di(e.componentInstance._vnode)}var Pi={model:Si,show:{bind:function(e,t,n){var r=t.value,i=(n=Di(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,wi(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Di(n)).data&&n.data.transition?(n.data.show=!0,r?wi(n,function(){e.style.display=e.__vOriginalDisplay}):Ci(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Fi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ri(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Ri(lt(t.children)):e}function Hi(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[g(o)]=i[o];return t}function Bi(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Ui={name:"transition",props:Fi,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(function(e){return e.tag||ct(e)})).length){var r=this.mode,i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=Ri(i);if(!o)return i;if(this._leaving)return Bi(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:T(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s,c,l=(o.data||(o.data={})).transition=Hi(this),u=this._vnode,f=Ri(u);if(o.data.directives&&o.data.directives.some(function(e){return"show"===e.name})&&(o.data.show=!0),f&&f.data&&(s=o,(c=f).key!==s.key||c.tag!==s.tag)&&!ct(f)&&(!f.componentInstance||!f.componentInstance._vnode.isComment)){var p=f.data.transition=m({},l);if("out-in"===r)return this._leaving=!0,rt(p,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),Bi(e,i);if("in-out"===r){if(ct(o))return u;var d,v=function(){d()};rt(l,"afterEnter",v),rt(l,"enterCancelled",v),rt(p,"delayLeave",function(e){d=e})}}return i}}},Vi=m({tag:String,moveClass:String},Fi);function zi(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ki(e){e.data.newPos=e.elm.getBoundingClientRect()}function Ji(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Vi.mode;var qi={Transition:Ui,TransitionGroup:{props:Vi,render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Hi(this),s=0;s<i.length;s++){var c=i[s];c.tag&&null!=c.key&&0!==String(c.key).indexOf("__vlist")&&(o.push(c),((n[c.key]=c).data||(c.data={})).transition=a)}if(r){for(var l=[],u=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?l.push(p):u.push(p)}this.kept=e(t,null,l),this.removed=u}return e(t,null,o)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var e=this.prevChildren,r=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,r)&&(e.forEach(zi),e.forEach(Ki),e.forEach(Ji),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,t=n.style;hi(n,r),t.transform=t.WebkitTransform=t.transitionDuration="",n.addEventListener(ui,n._moveCb=function e(t){t&&!/transform$/.test(t.propertyName)||(n.removeEventListener(ui,e),n._moveCb=null,mi(n,r))})}}))},methods:{hasMove:function(e,t){if(!ai)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){ri(n,e)}),ni(n,t),n.style.display="none",this.$el.appendChild(n);var r=_i(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};hn.config.mustUseProp=Sn,hn.config.isReservedTag=Un,hn.config.isReservedAttr=An,hn.config.getTagNamespace=Vn,hn.config.isUnknownElement=function(e){if(!B)return!0;if(Un(e))return!1;if(e=e.toLowerCase(),null!=zn[e])return zn[e];var t=document.createElement(e);return-1<e.indexOf("-")?zn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:zn[e]=/HTMLUnknownElement/.test(t.toString())},m(hn.options.directives,Pi),m(hn.options.components,qi),hn.prototype.__patch__=B?Oi:$,hn.prototype.$mount=function(e,t){return e=e&&B?Jn(e):void 0,r=e,i=t,(n=this).$el=r,n.$options.render||(n.$options.render=fe),_t(n,"beforeMount"),new St(n,function(){n._update(n._render(),i)},$,null,!0),i=!1,null==n.$vnode&&(n._isMounted=!0,_t(n,"mounted")),n;var n,r,i},B&&setTimeout(function(){j.devtools&&Q&&Q.emit("init",hn)},0);var Wi=/\{\{((?:.|\n)+?)\}\}/g,Gi=/[-.*+?^${}()|[\]\/\\]/g,Zi=e(function(e){var t=e[0].replace(Gi,"\\$&"),n=e[1].replace(Gi,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var Xi={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Sr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Or(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var Yi,Qi={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Sr(e,"style");n&&(e.staticStyle=JSON.stringify(Kr(n)));var r=Or(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},eo=function(e){return(Yi=Yi||document.createElement("div")).innerHTML=e,Yi.textContent},to=s("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),no=s("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),ro=s("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),io=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,oo="[a-zA-Z_][\\w\\-\\.]*",ao="((?:"+oo+"\\:)?"+oo+")",so=new RegExp("^<"+ao),co=/^\s*(\/?)>/,lo=new RegExp("^<\\/"+ao+"[^>]*>"),uo=/^<!DOCTYPE [^>]+>/i,fo=/^<!\--/,po=/^<!\[/,vo=!1;"x".replace(/x(.)?/g,function(e,t){vo=""===t});var ho=s("script,style,textarea",!0),mo={},yo={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t"},go=/&(?:lt|gt|quot|amp);/g,_o=/&(?:lt|gt|quot|amp|#10|#9);/g,bo=s("pre,textarea",!0),$o=function(e,t){return e&&bo(e)&&"\n"===t[0]};var wo,Co,xo,ko,Ao,Oo,So,To,Eo=/^@|^v-on:/,jo=/^v-|^@|^:/,No=/([^]*?)\s+(?:in|of)\s+([^]*)/,Lo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Io=/^\(|\)$/g,Mo=/:(.*)$/,Do=/^:|^v-bind:/,Po=/\.[^.]+/g,Fo=e(eo);function Ro(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:function(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}(t),parent:n,children:[]}}function Ho(e,p){wo=p.warn||$r,Oo=p.isPreTag||O,So=p.mustUseProp||O,To=p.getTagNamespace||O,xo=wr(p.modules,"transformNode"),ko=wr(p.modules,"preTransformNode"),Ao=wr(p.modules,"postTransformNode"),Co=p.delimiters;var d,v,h=[],i=!1!==p.preserveWhitespace,m=!1,y=!1;function g(e){e.pre&&(m=!1),Oo(e.tag)&&(y=!1);for(var t=0;t<Ao.length;t++)Ao[t](e,p)}return function(i,d){for(var e,v,h=[],m=d.expectHTML,y=d.isUnaryTag||O,g=d.canBeLeftOpenTag||O,a=0;i;){if(e=i,v&&ho(v)){var r=0,o=v.toLowerCase(),t=mo[o]||(mo[o]=new RegExp("([\\s\\S]*?)(</"+o+"[^>]*>)","i")),n=i.replace(t,function(e,t,n){return r=n.length,ho(o)||"noscript"===o||(t=t.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),$o(o,t)&&(t=t.slice(1)),d.chars&&d.chars(t),""});a+=i.length-n.length,i=n,A(o,a-r,a)}else{var s=i.indexOf("<");if(0===s){if(fo.test(i)){var c=i.indexOf("--\x3e");if(0<=c){d.shouldKeepComment&&d.comment(i.substring(4,c)),C(c+3);continue}}if(po.test(i)){var l=i.indexOf("]>");if(0<=l){C(l+2);continue}}var u=i.match(uo);if(u){C(u[0].length);continue}var f=i.match(lo);if(f){var p=a;C(f[0].length),A(f[1],p,a);continue}var _=x();if(_){k(_),$o(v,i)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(0<=s){for($=i.slice(s);!(lo.test($)||so.test($)||fo.test($)||po.test($)||(w=$.indexOf("<",1))<0);)s+=w,$=i.slice(s);b=i.substring(0,s),C(s)}s<0&&(b=i,i=""),d.chars&&b&&d.chars(b)}if(i===e){d.chars&&d.chars(i);break}}function C(e){a+=e,i=i.substring(e)}function x(){var e=i.match(so);if(e){var t,n,r={tagName:e[1],attrs:[],start:a};for(C(e[0].length);!(t=i.match(co))&&(n=i.match(io));)C(n[0].length),r.attrs.push(n);if(t)return r.unarySlash=t[1],C(t[0].length),r.end=a,r}}function k(e){var t=e.tagName,n=e.unarySlash;m&&("p"===v&&ro(t)&&A(v),g(t)&&v===t&&A(t));for(var r,i,o,a=y(t)||!!n,s=e.attrs.length,c=new Array(s),l=0;l<s;l++){var u=e.attrs[l];vo&&-1===u[0].indexOf('""')&&(""===u[3]&&delete u[3],""===u[4]&&delete u[4],""===u[5]&&delete u[5]);var f=u[3]||u[4]||u[5]||"",p="a"===t&&"href"===u[1]?d.shouldDecodeNewlinesForHref:d.shouldDecodeNewlines;c[l]={name:u[1],value:(r=f,i=p,o=i?_o:go,r.replace(o,function(e){return yo[e]}))}}a||(h.push({tag:t,lowerCasedTag:t.toLowerCase(),attrs:c}),v=t),d.start&&d.start(t,c,a,e.start,e.end)}function A(e,t,n){var r,i;if(null==t&&(t=a),null==n&&(n=a),e&&(i=e.toLowerCase()),e)for(r=h.length-1;0<=r&&h[r].lowerCasedTag!==i;r--);else r=0;if(0<=r){for(var o=h.length-1;r<=o;o--)d.end&&d.end(h[o].tag,t,n);h.length=r,v=r&&h[r-1].tag}else"br"===i?d.start&&d.start(e,[],!0,t,n):"p"===i&&(d.start&&d.start(e,[],!1,t,n),d.end&&d.end(e,t,n))}A()}(e,{warn:wo,expectHTML:p.expectHTML,isUnaryTag:p.isUnaryTag,canBeLeftOpenTag:p.canBeLeftOpenTag,shouldDecodeNewlines:p.shouldDecodeNewlines,shouldDecodeNewlinesForHref:p.shouldDecodeNewlinesForHref,shouldKeepComment:p.comments,start:function(e,t,n){var r=v&&v.ns||To(e);K&&"svg"===r&&(t=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];Ko.test(r.name)||(r.name=r.name.replace(Jo,""),t.push(r))}return t}(t));var i,o,a,s,c,l=Ro(e,t,v);r&&(l.ns=r),"style"!==(i=l).tag&&("script"!==i.tag||i.attrsMap.type&&"text/javascript"!==i.attrsMap.type)||Y()||(l.forbidden=!0);for(var u=0;u<ko.length;u++)l=ko[u](l,p)||l;if(m||(null!=Sr(o=l,"v-pre")&&(o.pre=!0),l.pre&&(m=!0)),Oo(l.tag)&&(y=!0),m?function(e){var t=e.attrsList.length;if(t)for(var n=e.attrs=new Array(t),r=0;r<t;r++)n[r]={name:e.attrsList[r].name,value:JSON.stringify(e.attrsList[r].value)};else e.pre||(e.plain=!0)}(l):l.processed||(Uo(l),function(e){var t=Sr(e,"v-if");if(t)e.if=t,Vo(e,{exp:t,block:e});else{null!=Sr(e,"v-else")&&(e.else=!0);var n=Sr(e,"v-else-if");n&&(e.elseif=n)}}(l),null!=Sr(a=l,"v-once")&&(a.once=!0),Bo(l,p)),d?h.length||d.if&&(l.elseif||l.else)&&Vo(d,{exp:l.elseif,block:l}):d=l,v&&!l.forbidden)if(l.elseif||l.else)s=l,(c=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(v.children))&&c.if&&Vo(c,{exp:s.elseif,block:s});else if(l.slotScope){v.plain=!1;var f=l.slotTarget||'"default"';(v.scopedSlots||(v.scopedSlots={}))[f]=l}else v.children.push(l),l.parent=v;n?g(l):(v=l,h.push(l))},end:function(){var e=h[h.length-1],t=e.children[e.children.length-1];t&&3===t.type&&" "===t.text&&!y&&e.children.pop(),h.length-=1,v=h[h.length-1],g(e)},chars:function(e){if(v&&(!K||"textarea"!==v.tag||v.attrsMap.placeholder!==e)){var t,n,r=v.children;if(e=y||e.trim()?"script"===(t=v).tag||"style"===t.tag?e:Fo(e):i&&r.length?" ":"")!m&&" "!==e&&(n=function(e,t){var n=t?Zi(t):Wi;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){c<(i=r.index)&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var l=_r(r[1].trim());a.push("_s("+l+")"),s.push({"@binding":l}),c=i+r[0].length}return c<e.length&&(s.push(o=e.slice(c)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(e,Co))?r.push({type:2,expression:n.expression,tokens:n.tokens,text:e}):" "===e&&r.length&&" "===r[r.length-1].text||r.push({type:3,text:e})}},comment:function(e){v.children.push({type:3,text:e,isComment:!0})}}),d}function Bo(e,t){var n,r,i,o;(r=Or(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.attrsList.length,(o=Or(i=e,"ref"))&&(i.ref=o,i.refInFor=function(e){for(var t=e;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(i)),function(e){if("slot"===e.tag)e.slotName=Or(e,"name");else{var t;"template"===e.tag?(t=Sr(e,"scope"),e.slotScope=t||Sr(e,"slot-scope")):(t=Sr(e,"slot-scope"))&&(e.slotScope=t);var n=Or(e,"slot");n&&(e.slotTarget='""'===n?'"default"':n,"template"===e.tag||e.slotScope||xr(e,"slot",n))}}(e),function(e){var t;(t=Or(e,"is"))&&(e.component=t);null!=Sr(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var a=0;a<xo.length;a++)e=xo[a](e,t)||e;!function(e){var t,n,r,i,o,a,s,c=e.attrsList;for(t=0,n=c.length;t<n;t++)if(r=i=c[t].name,o=c[t].value,jo.test(r))if(e.hasBindings=!0,(a=zo(r))&&(r=r.replace(Po,"")),Do.test(r))r=r.replace(Do,""),o=_r(o),s=!1,a&&(a.prop&&(s=!0,"innerHtml"===(r=g(r))&&(r="innerHTML")),a.camel&&(r=g(r)),a.sync&&Ar(e,"update:"+g(r),Er(o,"$event"))),s||!e.component&&So(e.tag,e.attrsMap.type,r)?Cr(e,r,o):xr(e,r,o);else if(Eo.test(r))r=r.replace(Eo,""),Ar(e,r,o,a,!1);else{var l=(r=r.replace(jo,"")).match(Mo),u=l&&l[1];u&&(r=r.slice(0,-(u.length+1))),p=r,d=i,v=o,h=u,m=a,((f=e).directives||(f.directives=[])).push({name:p,rawName:d,value:v,arg:h,modifiers:m}),f.plain=!1}else xr(e,r,JSON.stringify(o)),!e.component&&"muted"===r&&So(e.tag,e.attrsMap.type,r)&&Cr(e,r,"true");var f,p,d,v,h,m}(e)}function Uo(e){var t;if(t=Sr(e,"v-for")){var n=function(e){var t=e.match(No);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace(Io,""),i=r.match(Lo);i?(n.alias=r.replace(Lo,""),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&m(e,n)}}function Vo(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function zo(e){var t=e.match(Po);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}var Ko=/^xmlns:NS\d+/,Jo=/^NS\d+:/;function qo(e){return Ro(e.tag,e.attrsList.slice(),e.parent)}var Wo=[Xi,Qi,{preTransformNode:function(e,t){if("input"===e.tag){var n,r=e.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Or(e,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Sr(e,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Sr(e,"v-else",!0),s=Sr(e,"v-else-if",!0),c=qo(e);Uo(c),kr(c,"type","checkbox"),Bo(c,t),c.processed=!0,c.if="("+n+")==='checkbox'"+o,Vo(c,{exp:c.if,block:c});var l=qo(e);Sr(l,"v-for",!0),kr(l,"type","radio"),Bo(l,t),Vo(c,{exp:"("+n+")==='radio'"+o,block:l});var u=qo(e);return Sr(u,"v-for",!0),kr(u,":type",n),Bo(u,t),Vo(c,{exp:i,block:u}),a?c.else=!0:s&&(c.elseif=s),c}}}}];var Go,Zo,Xo,Yo={expectHTML:!0,modules:Wo,directives:{model:function(e,t,n){var r,i,o,a,s,c,l,u,f,p,d,v,h,m,y,g,_=t.value,b=t.modifiers,$=e.tag,w=e.attrsMap.type;if(e.component)return Tr(e,_,b),!1;if("select"===$)h=e,m=_,g=(g='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+((y=b)&&y.number?"_n(val)":"val")+"});")+" "+Er(m,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Ar(h,"change",g,null,!0);else if("input"===$&&"checkbox"===w)c=e,l=_,f=(u=b)&&u.number,p=Or(c,"value")||"null",d=Or(c,"true-value")||"true",v=Or(c,"false-value")||"false",Cr(c,"checked","Array.isArray("+l+")?_i("+l+","+p+")>-1"+("true"===d?":("+l+")":":_q("+l+","+d+")")),Ar(c,"change","var $$a="+l+",$$el=$event.target,$$c=$$el.checked?("+d+"):("+v+");if(Array.isArray($$a)){var $$v="+(f?"_n("+p+")":p)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Er(l,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Er(l,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Er(l,"$$c")+"}",null,!0);else if("input"===$&&"radio"===w)r=e,i=_,a=(o=b)&&o.number,s=Or(r,"value")||"null",Cr(r,"checked","_q("+i+","+(s=a?"_n("+s+")":s)+")"),Ar(r,"change",Er(i,s),null,!0);else if("input"===$||"textarea"===$)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,l=o?"change":"range"===r?Pr:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=Er(t,u);c&&(f="if($event.target.composing)return;"+f),Cr(e,"value","("+t+")"),Ar(e,l,f,null,!0),(s||a)&&Ar(e,"blur","$forceUpdate()")}(e,_,b);else if(!j.isReservedTag($))return Tr(e,_,b),!1;return!0},text:function(e,t){t.value&&Cr(e,"textContent","_s("+t.value+")")},html:function(e,t){t.value&&Cr(e,"innerHTML","_s("+t.value+")")}},isPreTag:function(e){return"pre"===e},isUnaryTag:to,mustUseProp:Sn,canBeLeftOpenTag:no,isReservedTag:Un,getTagNamespace:Vn,staticKeys:(Go=Wo,Go.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(","))},Qo=e(function(e){return s("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(e?","+e:""))});function ea(e,t){e&&(Zo=Qo(t.staticKeys||""),Xo=t.isReservedTag||O,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||c(e.tag)||!Xo(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Zo)))}(t);if(1===t.type){if(!Xo(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var ta=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,na=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ra={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ia={esc:"Escape",tab:"Tab",enter:"Enter",space:" ",up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete"]},oa=function(e){return"if("+e+")return null;"},aa={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:oa("$event.target !== $event.currentTarget"),ctrl:oa("!$event.ctrlKey"),shift:oa("!$event.shiftKey"),alt:oa("!$event.altKey"),meta:oa("!$event.metaKey"),left:oa("'button' in $event && $event.button !== 0"),middle:oa("'button' in $event && $event.button !== 1"),right:oa("'button' in $event && $event.button !== 2")};function sa(e,t,n){var r=t?"nativeOn:{":"on:{";for(var i in e)r+='"'+i+'":'+ca(i,e[i])+",";return r.slice(0,-1)+"}"}function ca(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return ca(t,e)}).join(",")+"]";var n=na.test(e.value),r=ta.test(e.value);if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(aa[s])o+=aa[s],ra[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=oa(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+="if(!('button' in $event)&&"+a.map(la).join("&&")+")return null;"),o&&(i+=o),"function($event){"+i+(n?"return "+e.value+"($event)":r?"return ("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function la(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=ra[e],r=ia[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var ua={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(t,n){t.wrapData=function(e){return"_b("+e+",'"+t.tag+"',"+n.value+","+(n.modifiers&&n.modifiers.prop?"true":"false")+(n.modifiers&&n.modifiers.sync?",true":"")+")"}},cloak:$},fa=function(e){this.options=e,this.warn=e.warn||$r,this.transforms=wr(e.modules,"transformCode"),this.dataGenFns=wr(e.modules,"genData"),this.directives=m(m({},ua),e.directives);var t=e.isReservedTag||O;this.maybeComponent=function(e){return!t(e.tag)},this.onceId=0,this.staticRenderFns=[]};function pa(e,t){var n=new fa(t);return{render:"with(this){return "+(e?da(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function da(e,t){if(e.staticRoot&&!e.staticProcessed)return va(e,t);if(e.once&&!e.onceProcessed)return ha(e,t);if(e.for&&!e.forProcessed)return f=t,v=(u=e).for,h=u.alias,m=u.iterator1?","+u.iterator1:"",y=u.iterator2?","+u.iterator2:"",u.forProcessed=!0,(d||"_l")+"(("+v+"),function("+h+m+y+"){return "+(p||da)(u,f)+"})";if(e.if&&!e.ifProcessed)return ma(e,t);if("template"!==e.tag||e.slotTarget){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=_a(e,t),i="_t("+n+(r?","+r:""),o=e.attrs&&"{"+e.attrs.map(function(e){return g(e.name)+":"+e.value}).join(",")+"}",a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)a=e.component,c=t,l=(s=e).inlineTemplate?null:_a(s,c,!0),n="_c("+a+","+ya(s,c)+(l?","+l:"")+")";else{var r=e.plain?void 0:ya(e,t),i=e.inlineTemplate?null:_a(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return _a(e,t)||"void 0";var a,s,c,l,u,f,p,d,v,h,m,y}function va(e,t){return e.staticProcessed=!0,t.staticRenderFns.push("with(this){return "+da(e,t)+"}"),"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function ha(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return ma(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+da(e,t)+","+t.onceId+++","+n+")":da(e,t)}return va(e,t)}function ma(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+e(t,n,r,i):""+a(o.block);function a(e){return r?r(e,n):e.once?ha(e,n):da(e,n)}}(e.ifConditions.slice(),t,n,r)}function ya(e,t){var n,r,i="{",o=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var l=t.directives[o.name];l&&(a=!!l(e,o,t.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?',arg:"'+o.arg+'"':"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(c)return s.slice(0,-1)+"]"}(e,t);o&&(i+=o+","),e.key&&(i+="key:"+e.key+","),e.ref&&(i+="ref:"+e.ref+","),e.refInFor&&(i+="refInFor:true,"),e.pre&&(i+="pre:true,"),e.component&&(i+='tag:"'+e.tag+'",');for(var a=0;a<t.dataGenFns.length;a++)i+=t.dataGenFns[a](e);if(e.attrs&&(i+="attrs:{"+wa(e.attrs)+"},"),e.props&&(i+="domProps:{"+wa(e.props)+"},"),e.events&&(i+=sa(e.events,!1,t.warn)+","),e.nativeEvents&&(i+=sa(e.nativeEvents,!0,t.warn)+","),e.slotTarget&&!e.slotScope&&(i+="slot:"+e.slotTarget+","),e.scopedSlots&&(i+=(n=e.scopedSlots,r=t,"scopedSlots:_u(["+Object.keys(n).map(function(e){return ga(e,n[e],r)}).join(",")+"]),")),e.model&&(i+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var s=function(e,t){var n=e.children[0];if(1===n.type){var r=pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);s&&(i+=s+",")}return i=i.replace(/,$/,"")+"}",e.wrapData&&(i=e.wrapData(i)),e.wrapListeners&&(i=e.wrapListeners(i)),i}function ga(e,t,n){return t.for&&!t.forProcessed?(r=e,o=n,a=(i=t).for,s=i.alias,c=i.iterator1?","+i.iterator1:"",l=i.iterator2?","+i.iterator2:"",i.forProcessed=!0,"_l(("+a+"),function("+s+c+l+"){return "+ga(r,i,o)+"})"):"{key:"+e+",fn:"+("function("+String(t.slotScope)+"){return "+("template"===t.tag?t.if?t.if+"?"+(_a(t,n)||"undefined")+":undefined":_a(t,n)||"undefined":da(t,n))+"}")+"}";var r,i,o,a,s,c,l}function _a(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag)return(r||da)(a,t);var s=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(ba(i)||i.ifConditions&&i.ifConditions.some(function(e){return ba(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,c=i||$a;return"["+o.map(function(e){return c(e,t)}).join(",")+"]"+(s?","+s:"")}}function ba(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function $a(e,t){return 1===e.type?da(e,t):3===e.type&&e.isComment?(r=e,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=e).type?n.expression:Ca(JSON.stringify(n.text)))+")";var n,r}function wa(e){for(var t="",n=0;n<e.length;n++){var r=e[n];t+='"'+r.name+'":'+Ca(r.value)+","}return t.slice(0,-1)}function Ca(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)");function xa(t,n){try{return new Function(t)}catch(e){return n.push({err:e,code:t}),$}}var ka,Aa,Oa=(ka=function(e,t){var n=Ho(e.trim(),t);!1!==t.optimize&&ea(n,t);var r=pa(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(s){function e(e,t){var n=Object.create(s),r=[],i=[];if(n.warn=function(e,t){(t?i:r).push(e)},t)for(var o in t.modules&&(n.modules=(s.modules||[]).concat(t.modules)),t.directives&&(n.directives=m(Object.create(s.directives||null),t.directives)),t)"modules"!==o&&"directives"!==o&&(n[o]=t[o]);var a=ka(e,n);return a.errors=r,a.tips=i,a}return{compile:e,compileToFunctions:(c=e,l=Object.create(null),function(e,t,n){(t=m({},t)).warn,delete t.warn;var r=t.delimiters?String(t.delimiters)+e:e;if(l[r])return l[r];var i=c(e,t),o={},a=[];return o.render=xa(i.render,a),o.staticRenderFns=i.staticRenderFns.map(function(e){return xa(e,a)}),l[r]=o})};var c,l})(Yo).compileToFunctions;function Sa(e){return(Aa=Aa||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',0<Aa.innerHTML.indexOf("&#10;")}var Ta=!!B&&Sa(!1),Ea=!!B&&Sa(!0),ja=e(function(e){var t=Jn(e);return t&&t.innerHTML}),Na=hn.prototype.$mount;return hn.prototype.$mount=function(e,t){if((e=e&&Jn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=ja(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){{if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}}(e));if(r){var i=Oa(r,{shouldDecodeNewlines:Ta,shouldDecodeNewlinesForHref:Ea,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Na.call(this,e,t)},hn.compile=Oa,hn});
hybrid/html/local.html ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>K线</title>
7
+ <link rel="stylesheet" type="text/css" href="css/kline.css"/>
8
+ </head>
9
+
10
+ <body>
11
+ <div id="app">
12
+ <div class="head">
13
+ <div class="small-left">
14
+ <div class="title">{{currency_name}}</div>
15
+ <!-- <div>
16
+ <a rel="noopener noreferrer" class="info-href info-href-intro"><i class="icon-currency"></i> <span title="Bitcoin">Bitcoin</span></a>
17
+ </div> -->
18
+ </div>
19
+ <div class="price">
20
+ <div>
21
+ <span class="price-label">{{txData.lastPrice || 0}}</span>
22
+ <span class="price-value">≈ ${{txData.lastPrice || 0}}</span>
23
+ </div>
24
+ <div>
25
+ <div class="head-item-cell">
26
+ <span class="hic-label">24h</span>
27
+ <span class="hic-label">高</span>
28
+ <span class="hic-value">{{txData.high || 0}}</span>
29
+ </div>
30
+ <div class="head-item-cell">
31
+ <span class="hic-label">24h</span>
32
+ <span class="hic-label">低</span>
33
+ <span class="hic-value">{{txData.low || 0}}</span>
34
+ </div>
35
+ </div>
36
+
37
+ </div>
38
+ <div class="head-item">
39
+ <div class="head-item-cell">
40
+ <span class="hic-label">涨跌幅</span>
41
+ <span class="hic-value" :class="txData.upFlag==1?'price-green':'price-red'">{{txData.upRate || 0}}</span>
42
+ </div>
43
+ <div>
44
+ <div class="head-item-cell cell-right">
45
+ <span class="hic-label">24h量(BTC)</span>
46
+ <span class="hic-value">{{txData.amount || 0}}</span>
47
+ </div>
48
+ <div class="head-item-cell cell-right">
49
+ <span class="hic-label">24h额(USDT)</span>
50
+ <span class="hic-value">{{txData.vol || 0}}</span>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <!-- <div class="head-item">
55
+ <div class="head-item-cell">
56
+ <span class="hic-label">24h额(USDT)</span>
57
+ <span class="hic-value">{{txData.vol || 0}}</span>
58
+ </div>
59
+ </div> -->
60
+ </div>
61
+ <div class="tabs">
62
+ <div @click="switchTab(item.value)" class="tabs-item" v-for="(item,index) in tabs" :key="index">
63
+ <span class="tabs-item-text" :class="{'tabs-item-text-active':current==item.value}">{{item.label}}</span>
64
+ <div class="tabs-item-bar" :class="{'tabs-item-bar-active':current==item.value}"></div>
65
+ </div>
66
+ </div>
67
+ <div class="charts-border">
68
+ <div id="main" class="charts"></div>
69
+ <div class="charts-label">
70
+ <div class="charts-MA5">MA5:{{MA5 || 0}}</div>
71
+ <div class="charts-MA10">MA10:{{MA10 || 0}}</div>
72
+ <div class="charts-MA30">MA30:{{MA30 || 0}}</div>
73
+ </div>
74
+ <div class="charts-bar-label">
75
+ <div class="charts-MA5">MA5:{{volMA5 || 0}}</div>
76
+ <div class="charts-MA10">MA10:{{volMA10 || 0}}</div>
77
+ </div>
78
+ </div>
79
+ <div class="category">
80
+ <div class="category-item-wrap" v-for="(item,index) in categoryList" :key="index">
81
+ <div @click="switchCategory(item.value)" class="category-item">
82
+ <span class="category-item-text" :class="{'category-item-text-active':category==item.value}">{{item.label}}</span>
83
+ <div class="category-item-bar" :class="{'category-item-bar-active':category==item.value}"></div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ <div class="category-main">
88
+ <div v-if="category==1" class="depth">
89
+ <div class="depth-head">
90
+ <div class="depth-head-left">
91
+ <div class="depth-head-label depth-head-left-index">买盘</div>
92
+ <div class="depth-head-label">数量(XRD)</div>
93
+ </div>
94
+ <div class="depth-head-center">
95
+ <div class="depth-head-label">价格(USDT)</div>
96
+ </div>
97
+ <div class="depth-head-right">
98
+ <div class="depth-head-label">数量(XRD)</div>
99
+ <div class="depth-head-label depth-head-right-index">卖盘</div>
100
+ </div>
101
+ </div>
102
+ <div class="depth-main">
103
+ <div class="depth-main-item">
104
+ <div class="dmi-cell" style="justify-content: flex-end;" v-for="(item,index) in buyList" :key="index">
105
+ <div class="dmi-cell-bg" :style="{'width': `${item.width}%`,'backgroundColor':'#303f38'}"></div>
106
+ <div class="dmi-cell-item">
107
+ <div class="dmi-cell-index">{{index+1}}</div>
108
+ <div class="dmi-cell-num">{{item.amount || '--'}}</div>
109
+ <div class="dmi-cell-price" style="padding-right: 5px;">{{item.price || '--'}}</div>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ <div class="depth-main-item">
114
+ <div class="dmi-cell" v-for="(item,index) in sellList || 10" :key="index">
115
+ <div class="dmi-cell-bg" :style="{'width': `${item.width}%`,'backgroundColor':'#3c2a2e'}"></div>
116
+ <div class="dmi-cell-item">
117
+ <div class="dmi-cell-price" style="padding-left: 5px;">{{item.price || '--'}}</div>
118
+ <div class="dmi-cell-num" style="text-align: right;">{{item.amount || '--'}}</div>
119
+ <div class="dmi-cell-index" style="text-align: right;">{{index+1}}</div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ </div>
125
+ <div v-else-if="category==2" class="transaction">
126
+ <div class="transaction-head">
127
+ <div class="transaction-head-item tmc-time">时间</div>
128
+ <div class="transaction-head-item tmc-type">方向</div>
129
+ <div class="transaction-head-item tmc-price">价格(USDT)</div>
130
+ <div class="transaction-head-item tmc-num">数量(BTC)</div>
131
+ </div>
132
+ <div class="transaction-main">
133
+ <div class="transaction-main-cell" v-for="(item,index) in dealHis || 10" :key="index">
134
+ <span class="tmc-label tmc-time">{{item.date || '--'}}</span>
135
+ <span class="tmc-label tmc-type" :style="{color:item.takerFlag==1?'#38ad70':'#fe5c57'}">{{item.takerFlag==1?'买入':'卖出'}}</span>
136
+ <span class="tmc-label tmc-price">{{item.price || '--'}}</span>
137
+ <span class="tmc-label tmc-num">{{item.amount || '--'}}</span>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ <div v-else="category==3" class="introduction">
142
+ <div class="introduction-name">{{tokenInfo.tokenName || '--'}}</div>
143
+ <div class="introduction-cell">
144
+ <span class="introduction-cell-label">发行时间</span>
145
+ <span class="introduction-cell-value">{{tokenInfo.issueDate || '--'}}</span>
146
+ </div>
147
+ <div class="introduction-cell">
148
+ <span class="introduction-cell-label">发行总量</span>
149
+ <span class="introduction-cell-value">{{tokenInfo.totalSupply || '--'}}</span>
150
+ </div>
151
+ <div class="introduction-cell">
152
+ <span class="introduction-cell-label">流通总量</span>
153
+ <span class="introduction-cell-value">{{tokenInfo.nowSupply || '--'}}</span>
154
+ </div>
155
+
156
+ <div class="introduction-cell">
157
+ <span class="introduction-cell-label">众筹价格</span>
158
+ <span class="introduction-cell-value">{{tokenInfo.price || '--'}}</span>
159
+ </div>
160
+ <div class="introduction-cell">
161
+ <span class="introduction-cell-label">白皮书</span>
162
+ <span class="introduction-cell-value">{{tokenInfo.whitePaper || '--'}}</span>
163
+ </div>
164
+ <div class="introduction-cell">
165
+ <span class="introduction-cell-label">官网</span>
166
+ <span class="introduction-cell-value">{{tokenInfo.webSite || '--'}}</span>
167
+ </div>
168
+ <div class="introduction-cell">
169
+ <span class="introduction-cell-label">区块查询</span>
170
+ <span class="introduction-cell-value">{{tokenInfo.exploereSite || '--'}}</span>
171
+ </div>
172
+ <div class="introduction-label">简介</div>
173
+ <div class="introduction-value">{{tokenInfo.remark || '--'}}</div>
174
+ </div>
175
+ </div>
176
+ <div style="height:80px"></div>
177
+ <div class="btns">
178
+ <div @click="back" class="btn btn-green">买入</div>
179
+ <div @click="back" class="btn btn-red">卖出</div>
180
+ </div>
181
+
182
+
183
+ </div>
184
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js"></script>
185
+ <script type="text/javascript" src="javascripts/uni.webview.1.5.2.js"></script>
186
+ <script type="text/javascript" src="javascripts/echarts.min.js"></script>
187
+ <script type="text/javascript" src="javascripts/qs.js"></script>
188
+ <script type="text/javascript" src="javascripts/axios.js"></script>
189
+ <script type="text/javascript" src="javascripts/vue.js"></script>
190
+ <!-- <script type="text/javascript" src="js/mock.js"></script> -->
191
+ <script type="text/javascript" src="javascripts/kline.js"></script>
192
+ </body>
193
+ <script>
194
+ </script>
195
+ </html>
hybrid/html/second.html ADDED
@@ -0,0 +1,2441 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title> </title>
8
+ <link rel="stylesheet" href="css/common.css">
9
+ <link rel="stylesheet" href="css/dataMap.css">
10
+ </head>
11
+ <style>
12
+ [v-cloak]{
13
+ display: none !important;
14
+ }
15
+ </style>
16
+ <body>
17
+ <!-- <div class="h20 bgHeader"></div> -->
18
+ <div id="app" v-cloak class="bgBalck">
19
+ <div class="header plr15 flex alcenter bgHeader white fixed pt30">
20
+ <img src="../../static/image/return.png" class="h15 wt15 mr10" @click="goback" />
21
+ <div class="flex alcenter" @click="showLeft">
22
+ <img src="../../static/image/lists.png" style="width: 20px;">
23
+ <span class="white ft18 bold pl10">{{symbol}}</span>
24
+ </div>
25
+
26
+ <div class="flex alcenter gray7 all" @click="toTrade">
27
+ <img src="../../static/image/all.png" class="h20 wt20 ml5"></img>
28
+ <span url="entrust">{{trade[lang].all}}</span>
29
+ </div>
30
+ </div>
31
+ <div>
32
+ <div class="pt60 pb10 plr20 bgHeader" style="min-height: 50px;">
33
+ <div class="flex alcenter between pt5">
34
+ <div class="tc" :class="[updown.substring(0,1) == '-'?'red':'green']">
35
+ <p class="bold ft24 getlists_close">{{newprice || '0.00'}}</p>
36
+ <!-- <p class="mt10">{{updown ||'0.00'}}%</p> -->
37
+ </div>
38
+ <div class="w50">
39
+ <div class="flex between mb5">
40
+ <span class="blue">{{translatedInfo.high || '--'}}</span>
41
+ <span class="blue white getlists_high">{{maxprice || '0.00'}}</span>
42
+ </div>
43
+ <div class="flex between mb5">
44
+ <span class="blue">{{translatedInfo.low || '--'}}</span>
45
+ <span class="blue white getlists_low">{{minprice ||'0.00'}}</span>
46
+ </div>
47
+ <div class="flex between">
48
+ <span class="blue">{{translatedInfo.volume || '--'}}</span>
49
+ <span class="blue white maxdayvom">{{dayvom ||'0.00'}}</span>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div id="tv_chart_container" style="width:100%;height:70vh;margin-top: 5px;"></div>
55
+ <!--订单列表 -->
56
+ <div class="order-list dn">
57
+ <div class="flex order-list-header between">
58
+ <p class="tc" :class="[{'active':status == 1}]" @click="selectOrder(1)" data-localize="contract.positionList">{{texts[lang].list}}</p>
59
+ <p class="tc" :class="[{'active':status == 3}]" @click="selectOrder(3)" data-localize="td.drecord">{{texts[lang].record}}</p>
60
+ </div>
61
+ <p v-show="false">{{CountDown}}</p>
62
+ <ul class="lists">
63
+ <li class="flex between ft10">
64
+ <p data-localize="assets.num">{{texts[lang].num}}</p>
65
+ <p data-localize="contract.purchasePrice">{{texts[lang].buyprice}}</p>
66
+ <p v-show="status == 1" data-localize="deals.nowprice">{{texts[lang].nowprice}}</p>
67
+ <p v-show="status == 3" data-localize="contract.transactionPrice">{{texts[lang].okprice}}</p>
68
+ <p v-show="status == 1" data-localize="contract.estimated">{{texts[lang].estimate}}</p>
69
+ <p v-show="status == 1" data-localize="contract.countDown">{{texts[lang].count}}</p>
70
+ <p v-show="status == 3" data-localize="deals.fee">{{texts[lang].handrate}}</p>
71
+ <p v-show="status == 3" data-localize="contract.profitAndLoss">{{texts[lang].profit}}</p>
72
+ </li>
73
+ <li
74
+ v-if="orderList.length > 0 && item.remain_milli_seconds >0 && status==1 || status ==3 && orderList.length >0"
75
+ v-for="(item,index) in orderList" :key="item.id" class="flex between ft10">
76
+ <!-- 数量 -->
77
+ <!-- <p v-if="item.is_insurance == 1">{{item.number || '0' | toFixedNum}}{{item.currency_name}}{{getlg('just')}}</p>
78
+ <p v-else-if="item.is_insurance == 2">{{item.number || '0' | toFixedNum}}{{item.currency_name}}{{getlg('back')}}</p> -->
79
+ <p>{{item.number || '0' | toFixedNum}}{{item.currency_name}}</p>
80
+ <!-- 购买价 -->
81
+ <p>{{item.open_price || '0.00' | toFixed4}}
82
+ <img v-if="item.type == 1" width="10" src="./image/buy.png" alt="">
83
+ <img v-else width="10" src="./image/sell.png" alt="">
84
+ </p>
85
+ <!-- 当前价 -->
86
+ <p v-if="status == 1&&item.status == 1">{{newprice || '0.00' | toFixed4}}</p>
87
+ <!-- 成交价 -->
88
+ <p v-if="status == 1&&item.status == 3">{{item.end_price || '0.00' | toFixed4}}</p>
89
+ <p v-if="status == 3&&item.remain_milli_seconds>0">--</p>
90
+ <p v-if="status == 3&&item.remain_milli_seconds<=0">{{item.end_price || '0.00' | toFixed4}}</p>
91
+ <p v-if="status == 1&&item.status == 1 && (item.open_price -0) == (newprice -0)" class="green">0</p>
92
+ <p v-if="status == 1&&item.status == 1 && item.type == 1 && (item.open_price -0) > (newprice -0)" class="red">
93
+ -{{item.number || '0' | toFixedNum}}</p>
94
+ <p v-if="status == 1&&item.status == 1 && item.type == 1 && (item.open_price -0) < (newprice -0)" class="green">
95
+ {{(item.number * item.profit_ratio -0) /100 || '0.00' | toFixedNum}}</p>
96
+ <p v-if="status == 1&&item.status == 1 && item.type == 2 && (item.open_price -0) > (newprice -0)" class="green">
97
+ {{(item.number * item.profit_ratio -0) /100 || '0.00' | toFixedNum}}</p>
98
+ <p v-if="status == 1&&item.status == 1 && item.type == 2 && (item.open_price -0) < (newprice -0)" class="red">
99
+ -{{(item.number -0) || '0.00' | toFixedNum}}</p>
100
+ <p v-if="status == 1&&item.status == 3" :class="item.fact_profits >= 0?'green':'red'">{{item.fact_profits || '0' | toFixedNum}}</p>
101
+ <p v-if="status == 1&&item.status == 1" class="times">
102
+ {{countDown(item.endTime,index,item.seconds,item.remain_milli_seconds,item.id)}}s</p>
103
+ <p v-if="status == 1&&item.status == 3" class="times">0.0s</p>
104
+ <p v-if="status == 3&&item.remain_milli_seconds>0">--</p>
105
+ <p v-if="status == 3&&item.remain_milli_seconds<=0">{{item.fee || '0.00' | toFixed1}}</p>
106
+ <p v-if="status == 3&&item.remain_milli_seconds>0">--</p>
107
+ <p v-if="status == 3&&item.remain_milli_seconds<=0" :class="item.fact_profits >= 0?'green':'red'">
108
+ {{item.fact_profits || '0' | toFixedNum}}</p>
109
+ <!-- <p v-if="item.status == 3">{{item.fact_profits || '0' | toFixedNum}}</p> -->
110
+ </li>
111
+ </ul>
112
+ <div v-if="orderList.length == 0" class="tc mt10" data-localize="transaction.nodata">{{texts[lang].norecord}}</div>
113
+ <div v-if="orderList.length>0 && hasmore" class="tc mt10" @click="getmore">{{texts[lang].more}}</div>
114
+ <div v-if="orderList.length>0 && !hasmore" class="tc mt10">{{texts[lang].nomore}}</div>
115
+ </div>
116
+ <div style="height:160px;"></div>
117
+ <!-- 底部 -->
118
+ <div id="bottom" class="flex between">
119
+ <div class="flex bottom-left between" @click="slectedTime()">
120
+ <div class="tc">
121
+ <p data-localize="assets.num">{{texts[lang].num}}</p>
122
+ <p class="ftColor">{{inputValue || '0.00' | toFixedNum}}</p>
123
+ </div>
124
+ <div class="tc">
125
+ <p data-localize="assets.time">{{texts[lang].time}}</p>
126
+ <p class="ftColor">{{seconds || '00'}}s</p>
127
+ </div>
128
+ <div class="tc">
129
+ <p data-localize="contract.profitRate">{{texts[lang].rate}}</p>
130
+ <p class="ftColor">{{profitRatio || '00' | toFixedNum}}%</p>
131
+ </div>
132
+ <div class="logo-down">
133
+ <img src="../../static/image/downs.png" alt="">
134
+ </div>
135
+ </div>
136
+ <div class="flex">
137
+ <!-- <button class="second-buy" @click="buyModal(1)" data-localize="contract.buyUp">{{texts[lang].up}}</button>
138
+ <button class="second-sell" @click="buyModal(2)" data-localize="contract.buyAll">{{texts[lang].down}}</button> -->
139
+ <!-- <button class="second-buy" @click="slectedTime()" data-localize="contract.buyUp">{{texts[lang].up}}</button>
140
+ <button class="second-sell" @click="slectedTime()" data-localize="contract.buyAll">{{texts[lang].down}}</button> -->
141
+ <button class="second-buy" @click="slectedTime()" data-localize="contract.buyUp">{{texts[lang].contracts}}</button>
142
+ <!-- <button class="second-sell" @click="slectedTime()" data-localize="contract.buyAll">{{texts[lang].sell}}</button> -->
143
+ </div>
144
+ </div>
145
+ <!-- <div class="flex between plr20 alcenter plr20 bgHeader fixed w100 pos_l0b0" style="height: 80px;">
146
+ <button class="goTranbuy bgRed flex1 ptb10 mr20 white radius4" @click="goTrade('buy')">{{translatedInfo.buy || '--'}}</button>
147
+ <button class="goTransell bgGreen flex1 ptb10 white radius4" @click="goTrade('sell')">{{translatedInfo.sell || '--'}}</button>
148
+ </div> -->
149
+ </div>
150
+ <div id="sideColumn" class="bgBlackColor">
151
+ <div class="ft20 bold bdbs pl20 texts-lever" data-localize="contract.secondContract">{{translatedInfo.micro}}</div>
152
+ <!-- <div class="flex alcenter between ptb20 plr20 bdbs">
153
+ <div class="ft18 bold" :class="{'blue2':topnow==1}" @click="changeTop(1)">{{texts[lang].all}}</div>
154
+ <div class="ft18 bold" :class="{'blue2':topnow==2}" @click="changeTop(2)">{{texts[lang].main}}</div>
155
+ <div class="ft18 bold" :class="{'blue2':topnow==3}" @click="changeTop(3)">{{texts[lang].lever}}</div>
156
+ </div> -->
157
+ <div class="flex alcenter plr20 bdbs bdbs">
158
+ <div class="ptb10 ft16 bold" :class="{'blue2':isActive==i}" v-for="(item,i) in currencyList" :key="i" @click="changeTab(i,item.name)">
159
+ <div class="mr20">{{item.name}}</div>
160
+ </div>
161
+ </div>
162
+ <ul class="ul">
163
+ <li v-for="item in currencyList[isActive].quotation" :key="item.id" v-if="item.open_microtrade == 1"
164
+ :class="['legal_name flex between',{'bg_active':currency_id==item.currency_id}]"
165
+ @click="selectCurrencys(item.id,item.legal_id,item.currency_id,item.legal_name,item.currency_name,item.plate_id)">
166
+ <strong><span>{{item.currency_name}}/{{item.legal_name}}</span></strong>
167
+ <p class="fontC" :class="{ red: parseFloat(item.change) < 0, gre: parseFloat(item.change) >= 0 || item.change == '' }">
168
+ <span>{{item.now_price}}</span>
169
+ </p>
170
+ </li>
171
+ </ul>
172
+ <!-- <ul class="ul" v-if="topnow==2">
173
+ <li v-for="item in currencyList[isActive].quotation" :key="item.id" v-if="item.is_display == 1&&item.open_lever == 1&&item.plate_id==2"
174
+ :class="['legal_name flex between',{'bg_active':currency_id==item.currency_id}]"
175
+ @click="selectCurrencys(item.id,item.legal_id,item.currency_id,item.legal_name,item.currency_name,item.plate_id)">
176
+ <strong><span>{{item.currency_name}}/{{item.legal_name}}</span></strong>
177
+ <p class="fontC" :class="{ red: parseFloat(item.change) < 0, gre: parseFloat(item.change) >= 0 || item.change == '' }">
178
+ <span>{{item.now_price}}</span>
179
+ </p>
180
+ </li>
181
+ </ul>
182
+ <ul class="ul" v-if="topnow==3">
183
+ <li v-for="item in currencyList[isActive].quotation" :key="item.id" v-if="item.is_display == 1&&item.open_lever == 1&&item.plate_id==3"
184
+ :class="['legal_name flex between',{'bg_active':currency_id==item.currency_id}]"
185
+ @click="selectCurrencys(item.id,item.legal_id,item.currency_id,item.legal_name,item.currency_name,item.plate_id)">
186
+ <strong><span>{{item.currency_name}}/{{item.legal_name}}</span></strong>
187
+ <p class="fontC" :class="{ red: parseFloat(item.change) < 0, gre: parseFloat(item.change) >= 0 || item.change == '' }">
188
+ <span>{{item.now_price}}</span>
189
+ </p>
190
+ </li>
191
+ </ul> -->
192
+ </div>
193
+ <!-- 倒计时下单弹窗 -->
194
+ <div class="time-modal">
195
+ <!-- <div class="time-header">
196
+ <div>
197
+ <p class="colorGrey ft12" data-localize="contract.transactionMode">{{texts[lang].pattern}}</p>
198
+ <div class="flex warps currency-list mt10">
199
+ <p :class="[{'active':tradeCurrencyId == item.id}]" v-for="item in tradeCurrency" :key="item.id"
200
+ @click="tradeCurrencyClick(item.id,item.name)">
201
+ {{item.name}}
202
+ </p>
203
+ </div>
204
+ </div>
205
+ </div> -->
206
+
207
+ <div class="time-header">
208
+ <div>
209
+ <p class="colorGrey ft12" data-localize="contract.transactionMode">{{texts[lang].pattern}}</p>
210
+ <div class="flex warps currency-list mt10">
211
+ <p :class="[{'active':tradeCurrencyId == item.id}]" v-for="item in tradeCurrency" :key="item.id"
212
+ @click="tradeCurrencyClick(item.id,item.name)">
213
+ {{item.name}}
214
+ </p>
215
+ </div>
216
+ </div>
217
+ </div>
218
+
219
+
220
+ <div class="time-content mt10">
221
+ <p class="colorGrey ft12" data-localize="contract.openQuantity">{{texts[lang].opennum}}</p>
222
+ <div class="time-num between">
223
+ <ul class="flex warps1" id="top1">
224
+ <li v-for="item in tradeNUm" :key="item.id" @click="tabNumbers(item.number)">
225
+ <p :class="[{'active':(inputValue-0) == (item.number -0).toFixed(0)}]">{{item.number |toFixedNum}}</p>
226
+ </li>
227
+ </ul>
228
+ <input type="number" data-localize="contract.otherQuantities" placeholder="其他数量" v-model="inputValue">
229
+ </div>
230
+ <div class="time-list">
231
+ <p class="colorGrey ft12" data-localize="deals.optime">{{texts[lang].opentime}}</p>
232
+ <div class="flex warps1 currency-list mt10">
233
+ <p :class="[{'active':seconds == item.seconds}]" v-for="item in timeList" :key="item.id"
234
+ @click="selectTime(item.seconds,item.profit_ratio)">{{item.seconds}}s</p>
235
+ </div>
236
+ </div>
237
+ <!-- <div class="time-list">
238
+ <p class="colorGrey ft12">{{texts[lang].insurance}}</p>
239
+ <div class="flex warps1 currency-list mt10">
240
+ <p :class="[{'active':is_insurance == 0}]" @click="changeInsurance(0)">{{texts[lang].no}}</p>
241
+ <p :class="[{'active':is_insurance == 1}]" @click="changeInsurance(1)">{{texts[lang].yes}}</p>
242
+ </div>
243
+ </div> -->
244
+ <div class="flex between ft14">
245
+ <p><span data-localize="contract.accountBalance">{{texts[lang].balance}}</span>: <span class="green bold">{{balance|toFixed4}} {{tradeCurrencyName}}</span></p>
246
+ <p><span data-localize="contract.profitRate">{{texts[lang].rate}}</span>: <span class="green bold ft20">{{profitRatio | toFixedNum}}%</span></p>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ <!-- 下单之后的弹窗 -->
251
+ <div class="orders">
252
+ <div>
253
+ <div class="mt20 orders-list">
254
+ <p class="mt10">
255
+ <span data-localize="assets.num">{{texts[lang].num}}</span>:
256
+ <span>{{inputValue || '0' |toFixedNum}} {{tradeCurrencyName}}</span>
257
+ </p>
258
+ <p class="mt10">
259
+ <span data-localize="assets.time">{{texts[lang].time}}</span>:
260
+ <span>{{seconds}} S</span>
261
+ </p>
262
+ <p class="mt10">
263
+ <span data-localize="contract.profitRate">{{texts[lang].rate}}</span>:
264
+ <span>{{profitRatio}}%</span>
265
+ </p>
266
+ </div>
267
+ </div>
268
+ </div>
269
+ <div id="mask1" @click="closeLeft"></div>
270
+ </div>
271
+ <script src="lib/vue.min.js"></script>
272
+ <script src="lib/jquery.js"></script>
273
+ <script src="lib/layer_mobile/layer.js"></script>
274
+ <script src="javascripts/main.js"></script>
275
+ <script src="javascripts/socket.io.js"></script>
276
+ <script src="tradeview/charting_library/charting_library.min.js"></script>
277
+ <script src="javascripts/uni.webview.1.5.4.js"></script>
278
+ <script>
279
+ // 在引用依赖的uni.webview文件后,需要在 HTML 中监听 UniAppJSBridgeReady 事件触发后,才能安全调用 uni �� API
280
+ document.addEventListener('UniAppJSBridgeReady', function() {
281
+ uni.getEnv(function(res) {
282
+ console.log('当前环境:' + JSON.stringify(res));
283
+ });
284
+ })
285
+
286
+
287
+
288
+
289
+ var vm = new Vue({
290
+ el: '#app',
291
+ data: {
292
+ texts: {
293
+ zh: {
294
+ mairo: '合约对冲',
295
+ contract: '永续合约',
296
+ add: '添加自选',
297
+ all: '全部',
298
+ main: '主流',
299
+ lever: '合约',
300
+ pattern: '交易模式',
301
+ num: '数量',
302
+ time: '时间',
303
+ rate: '盈利率',
304
+ opennum: '开仓数量',
305
+ opentime: '开仓时间',
306
+ insurance: '是否购买保险',
307
+ no: '否',
308
+ yes: '是',
309
+ balance: '账户余额',
310
+ up: '买涨',
311
+ down: '买跌',
312
+ list: '持仓列表',
313
+ record: '订单记录',
314
+ buyprice: '购买价',
315
+ nowprice: '当前价',
316
+ okprice: '成交价',
317
+ estimate: '预计盈亏',
318
+ count: '倒计时',
319
+ handrate: '手续费',
320
+ profit: '盈亏',
321
+ norecord: '暂无记录',
322
+ more: '加载更多',
323
+ nomore: '没有更多了',
324
+ buy: '买入',
325
+ sell: '卖出',
326
+ contracts:'合同交易'
327
+ },
328
+ en: {
329
+ mairo: 'contract hedging',
330
+ contract: 'perpetual contract',
331
+ add: 'add optional',
332
+ all: 'all',
333
+ main: 'main',
334
+ lever: 'contract',
335
+ pattern: 'transaction mode',
336
+ num: 'quantity',
337
+ time: 'time',
338
+ rate: 'profit rate',
339
+ opennum: 'open quantity',
340
+ opentime: 'opening time',
341
+ insurance: 'whether to buy insurance',
342
+ no: 'no',
343
+ yes: 'yes',
344
+ balance: 'account balance',
345
+ up: 'buy up',
346
+ down: 'buy down',
347
+ list: 'position list',
348
+ record: 'order record',
349
+ buyprice: 'purchase price',
350
+ nowprice: 'current price',
351
+ okprice: 'closing price',
352
+ estimate: 'estimated profit and loss',
353
+ count: 'count down',
354
+ handrate: 'service charge',
355
+ profit: 'profit and loss',
356
+ norecord: 'no record yet',
357
+ more: 'load more',
358
+ nomore: 'no more',
359
+ // buy: 'buy',
360
+ // sell: 'sell',
361
+ buy: 'Call',
362
+ sell: 'Put',
363
+ contracts:'contract transaction'
364
+ },
365
+ hk: {
366
+ mairo: '合約對沖',
367
+ contract: '永續合約',
368
+ add: '添加自選',
369
+ all: '全部',
370
+ main: '主流',
371
+ lever: '合約',
372
+ pattern: '交易模式',
373
+ num: '數量',
374
+ time: '時間',
375
+ rate: '盈利率',
376
+ opennum: '開倉數量',
377
+ opentime: '開倉時間',
378
+ insurance: '是否購買保險',
379
+ no: '否',
380
+ yes: '是',
381
+ balance: '帳戶餘額',
382
+ up: '買漲',
383
+ down: '買跌',
384
+ list: '持倉清單',
385
+ record: '訂單記錄',
386
+ buyprice: '購買價',
387
+ nowprice: '當前價',
388
+ okprice: '成交價',
389
+ estimate: '預計盈虧',
390
+ count: '倒數計時',
391
+ handrate: '手續費',
392
+ profit: '盈虧',
393
+ norecord: '暫無記錄',
394
+ more: '加載更多',
395
+ nomore: '沒有更多了',
396
+ buy: '買入',
397
+ sell: '賣出',
398
+ contracts:'契约交易'
399
+ },
400
+ jp: {
401
+ mairo: '契約ヘッジ',
402
+ contract: '永遠契約',
403
+ add: '選択を追加',
404
+ all: '全部',
405
+ main: '主流',
406
+ lever: '契約',
407
+ pattern: '取引モード',
408
+ num: '数量',
409
+ time: '時間',
410
+ rate: '利益率',
411
+ opennum: '開倉数量',
412
+ opentime: '開倉時間',
413
+ insurance: 'は保険を買うかどうか',
414
+ no: 'いいえ',
415
+ yes: 'はい',
416
+ balance: '口座残高',
417
+ up: '買い上げる',
418
+ down: '買いおとす',
419
+ list: '保有リスト',
420
+ record: '注文記録',
421
+ buyprice: '買い入れ価格',
422
+ nowprice: '現在の価格',
423
+ okprice: '出来値',
424
+ estimate: '損益を予想する',
425
+ count: 'カウントダウン',
426
+ handrate: '手数料',
427
+ profit: '利益と損失',
428
+ norecord: '記録がない',
429
+ more: 'もっとロード',
430
+ nomore: 'これ以上ないです',
431
+ buy: '購入',
432
+ sell: '売却',
433
+ contracts:'契約取引'
434
+ },
435
+ kor:{
436
+ mairo:"계약 이 성립 하 다.",
437
+ contract:"무기한 계약",
438
+ add:"선택 추가",
439
+ all:"전부.",
440
+ main:"주류.",
441
+ lever:"계약",
442
+ pattern:"거래 패턴",
443
+ num:"수량.",
444
+ time:"시간.",
445
+ rate:"수익 률",
446
+ opennum:"창 ��� 를 여 는 수량.",
447
+ opentime:"창 고 를 여 는 시간.",
448
+ insurance:"보험 가입 여부",
449
+ no:"아니.",
450
+ yes:"예.",
451
+ balance:"계좌 잔액",
452
+ up:"값 이 오르다",
453
+ down:"매수 하여 떨어뜨리다",
454
+ list:"창고 보유 리스트",
455
+ record:"주문 기록",
456
+ buyprice:"구입 가격",
457
+ nowprice:"현재 가격",
458
+ okprice:"거래 가",
459
+ estimate:"예상 손익",
460
+ count:"카운트다운",
461
+ handrate:"수수료",
462
+ profit:"손익.",
463
+ norecord:"기록 이 없다",
464
+ more:"더 많이 불 러 오기",
465
+ nomore:"더 없어.",
466
+ buy: '매입',
467
+ sell: '매도',
468
+ },
469
+ th:{
470
+ mairo:"สัญญาป้องกันความเสี่ยง",
471
+ contract:"สัญญายั่งยืน",
472
+ add:"เพิ่มทางเลือก",
473
+ all:"จำนวนทั้งหมด",
474
+ main:"กระแสหลัก",
475
+ lever:"สนธิสัญญา",
476
+ pattern:"โหมดการซื้อขาย",
477
+ num:"จำนวนรวม",
478
+ time:"กาละ",
479
+ rate:"อัตรากำไร",
480
+ opennum:"จำนวนตำแหน่งเปิด",
481
+ opentime:"เวลาเปิด",
482
+ insurance:"ว่าจะซื้อประกันภัยหรือไม่",
483
+ no:"เลว",
484
+ yes:"ใช่แล้ว",
485
+ balance:"ดุลบัญชี",
486
+ up:"ซื้อขึ้น",
487
+ down:"ซื้อหรือขาย",
488
+ list:"รายชื่อตำแหน่ง",
489
+ record:"บันทึกการสั่งซื้อ",
490
+ buyprice:"ราคาซื้อ",
491
+ nowprice:"ราคาปัจจุบัน",
492
+ okprice:"มูลค่าการซื้อขาย",
493
+ estimate:"คาดการณ์กำไรและขาดทุน",
494
+ count:"การนับถอยหลัง",
495
+ handrate:"ค่าธรรมเนียม",
496
+ profit:"ขาดทุน",
497
+ norecord:"ไม่มีบันทึก",
498
+ more:"โหลดเพิ่มเติม",
499
+ nomore:"ไม่อีกแล้ว",
500
+ buy: 'ซื้อ',
501
+ sell: 'ขาย',
502
+ }
503
+ },
504
+ widget: null,
505
+ symbolInfo: null,
506
+ feed: null,
507
+ wsEx: null,
508
+ ws: null,
509
+ lists: [],
510
+ newData: '',
511
+ symbol: '',
512
+ priceScale: 100000,
513
+ histime: '',
514
+ newprice: '0.00',
515
+ updown: '0.00',
516
+ maxprice: '0.00',
517
+ minprice: '0.00',
518
+ dayvom: '0.00',
519
+ currencyList: [],
520
+ couponSelected: '',
521
+ legal_id: '',
522
+ currency_id: '',
523
+ legal_name: '',
524
+ currency_name: '',
525
+ currency_match_id:'',
526
+ hasCollcet: '',
527
+ myid: '',
528
+ // balance: '',
529
+ rates: '',
530
+ // websockUrl: 'wss://www.hsfuture.net/ws', //'ws://74.91.27.98/ws'
531
+ // url: 'http://www.hsfuture.net/',
532
+ // websockUrl: 'http://www.bgobtc.com:2000/',
533
+ websockUrl: _DOMAIN+'/',
534
+ url: _DOMAIN+'/',
535
+ complete: [],
536
+ transwords: {
537
+ zh: {
538
+ high: '高',
539
+ low: '低',
540
+ volume: '24H量',
541
+ num: '数量',
542
+ price: '价格',
543
+ time: '时间',
544
+ buy: '买入',
545
+ sell: '卖出',
546
+ chicang:'持仓列表',
547
+ record:'订单记录',
548
+ num:'数量',
549
+ buyprice:'购买价',
550
+ cjprice:'成交价',
551
+ yuji:'预计盈亏',
552
+ daotime:'倒计时',
553
+ type:'类型',
554
+ yingkui:'盈亏',
555
+ time:'时间',
556
+ nolog:'暂无记录',
557
+ more:'加载更多',
558
+ nomore:'没有更多了',
559
+ ylrate:'盈利率',
560
+ buyup:'买涨',
561
+ buydown:'买跌',
562
+ micro:'期权交易',
563
+ model:'交易模式',
564
+ opennum:'开仓数量',
565
+ opentime:'开仓时间',
566
+ balance:'账户余额',
567
+ num1:'数量:',
568
+ yuqi:'预期收益:',
569
+ circle:'结算周期:',
570
+ nowprice:'当前价',
571
+ ceil:'取消',
572
+ ptime:'请选择开仓时间',
573
+ pnum:'请选择开仓数量',
574
+ success:'下单成功'
575
+ },
576
+ en: {
577
+ high: 'high',
578
+ low: 'low',
579
+ volume: '24H volume',
580
+ num: 'number',
581
+ price: 'price',
582
+ time: 'time',
583
+ // buy: 'buy',
584
+ // sell: 'sell',
585
+ buy: 'Call',
586
+ sell: 'Put',
587
+ chicang: 'Position list',
588
+ record: 'Order record',
589
+ Num: 'Quantity',
590
+ buyprice: 'Purchase price',
591
+ cjprice: 'Closing price',
592
+ yuji: 'Estimated profit and loss',
593
+ daotime: 'Countdown',
594
+ type: 'Type',
595
+ yingkui: 'Profit and loss',
596
+ time: 'Time',
597
+ nolog: 'No record yet',
598
+ more: 'Load more',
599
+ nomore: 'No more',
600
+ ylrate: 'Profit rate',
601
+ buyup: 'Buy up',
602
+ buydown: 'Buy down',
603
+ micro: 'Option contract',
604
+ model: 'Transaction mode',
605
+ opennum: 'Open quantity',
606
+ opentime: 'Opening time',
607
+ balance: 'Balance',
608
+ num1: 'Quantity',
609
+ yuqi: 'Earnings',
610
+ circle: 'Settlement',
611
+ nowprice: 'Price',
612
+ ceil: 'Cancel',
613
+ ptime: 'Please select the opening time',
614
+ pnum: 'Please select the opening quantity',
615
+ success: 'Order successfully'
616
+ },
617
+ hk: {
618
+ high: '高',
619
+ low: '低',
620
+ volume: '24H量',
621
+ num: '數量',
622
+ price: '價格',
623
+ time: '時間',
624
+ buy: '買入',
625
+ sell: '賣出',
626
+ chicang:'持倉清單',
627
+ record:'訂單記錄',
628
+ num:'數量',
629
+ buyprice:'購買價',
630
+ cjprice:'成交價',
631
+ yuji:'預計盈虧',
632
+ daotime:'倒數計時',
633
+ type:'類型',
634
+ yingkui:'盈虧',
635
+ time:'時間',
636
+ nolog:'暫無記錄',
637
+ more:'加載更多',
638
+ nomore:'沒有更多了',
639
+ ylrate:'盈利率',
640
+ buyup:'買漲',
641
+ buydown:'買跌',
642
+ micro:'秒合約',
643
+ model:'交易模式',
644
+ opennum:'開倉數量',
645
+ opentime:'開倉時間',
646
+ balance:'帳戶餘額',
647
+ num1:'數量:',
648
+ yuqi:'預期收益:',
649
+ circle:'結算週期:',
650
+ nowprice:'當前價',
651
+ ceil:'取消',
652
+ ptime:'請選擇開倉時間',
653
+ pnum:'請選擇開倉數量',
654
+ success:'下單成功'
655
+ },
656
+ jp: {
657
+ high: '高さ',
658
+ low: '低い',
659
+ volume: '24 h量',
660
+ num: '数',
661
+ price: '価格',
662
+ time: '時間',
663
+ buy: '購入',
664
+ sell: '売却',
665
+ chicang:'持倉リスト',
666
+ record:'注文記録',
667
+ num:'数量',
668
+ buylice:'購買価格',
669
+ cjprice:'成約価格',
670
+ yuji:'損益予想',
671
+ daotime:'カウントダウン',
672
+ yingkui:'損益',
673
+ time:'時間',
674
+ nolog:'は記録がありません',
675
+ more:'より多くのロード',
676
+ nomore:'もっとないです' ,
677
+ ylrate:'収益率',
678
+ buyup:'買上高',
679
+ buydown:'買って転んで、',
680
+ micro:'秒契約',
681
+ model:'取引モード',
682
+ opennum:'開倉数量',
683
+ opentime:'開倉時間',
684
+ balance:'口座残高',
685
+ num1:'数量:',
686
+ yuqi:'予想収益:',
687
+ circele:'決算周期:',
688
+ nowprice:'現在価格',
689
+ ceil:'キャンセル',
690
+ ptime:'開倉時間を選んでください',
691
+ pnum:'開倉数量を選んでください',
692
+ success:'注文成功'
693
+ },
694
+ kor:{
695
+ high:"높다.",
696
+ low:"낮다.",
697
+ volume:"24H 량",
698
+ num:"수량.",
699
+ price:"가격.",
700
+ time:"시간.",
701
+ buy:"매입 하 다.",
702
+ sell:"매출 하 다.",
703
+ chicang:"창고 보유 리스트",
704
+ record:"주문 기록",
705
+ buyprice:"구입 가격",
706
+ cjprice:"거래 가",
707
+ yuji:"예상 손익",
708
+ daotime:"카운트다운",
709
+ type:"유형.",
710
+ yingkui:"손익.",
711
+ nolog:"기록 이 없다",
712
+ more:"더 많이 불 러 오기",
713
+ nomore:"더 없어.",
714
+ ylrate:"수익 률",
715
+ buyup:"값 이 오르다",
716
+ buydown:"매수 하여 떨어뜨리다",
717
+ micro:"옵션 거래",
718
+ model:"거래 패턴",
719
+ opennum:"창 고 를 여 는 수량.",
720
+ opentime:"창 고 를 여 는 시간.",
721
+ balance:"계좌 잔액",
722
+ num1:"수량:",
723
+ yuqi:"예상 수익:",
724
+ circle:"결제 주기:",
725
+ nowprice:"현재 가격",
726
+ ceil:"취소 하 다.",
727
+ ptime:"창 고 를 여 는 시간 을 선택 하 세 요",
728
+ pnum:"창 고 수량 을 선택 하 세 요",
729
+ success:"주문 성공"
730
+ },
731
+ th:{
732
+ high:"โด่ง",
733
+ low:"หดหู่ใจ",
734
+ volume:"ปริมาณ",
735
+ num:"จำนวนรวม",
736
+ price:"ราคา",
737
+ time:"กาละ",
738
+ buy:"ซื้อ",
739
+ sell:"ขาย",
740
+ chicang:"รายชื่อตำแหน่ง",
741
+ record:"บันทึกการสั่งซื้อ",
742
+ buyprice:"ราคาซื้อ",
743
+ cjprice:"มูลค่าการซื้อขาย",
744
+ yuji:"คาดการณ์กำไรและขาดทุน",
745
+ daotime:"การนับถอยหลัง",
746
+ type:"รูปร่างลักษณะ",
747
+ yingkui:"ขาดทุน",
748
+ nolog:"ไม่มีบันทึก",
749
+ more:"โหลดเพิ่มเติม",
750
+ nomore:"ไม่อีกแล้ว",
751
+ ylrate:"อัตรากำไร",
752
+ buyup:"ซื้อขึ้น",
753
+ buydown:"ซื้อหรื���ขาย",
754
+ micro:"การซื้อขายตัวเลือก",
755
+ model:"โหมดการซื้อขาย",
756
+ opennum:"จำนวนตำแหน่งเปิด",
757
+ opentime:"เวลาเปิด",
758
+ balance:"ดุลบัญชี",
759
+ num1:"ปริมาณ",
760
+ yuqi:"รายได้ที่คาดหวัง",
761
+ circle:"วงจรการตั้งถิ่นฐาน",
762
+ nowprice:"ราคาปัจจุบัน",
763
+ ceil:"ยกเลิก",
764
+ ptime:"กรุณาเลือกเวลาเปิด",
765
+ pnum:"กรุณาเลือกหมายเลขการเปิด",
766
+ success:"สั่งซื้อสำเร็จ"
767
+ },
768
+ de:{
769
+ high:"hoch",
770
+ low:"niedrig",
771
+ volume:"24h Volumen",
772
+ num:"Anzahl",
773
+ price:"Preis",
774
+ time:"Zeit",
775
+ buy:"Kauf",
776
+ sell:"Verkauf aus",
777
+ chicang:"Liste der Positionen",
778
+ record:"Aufzeichnungen der Bestellung",
779
+ buyprice:"Der Kaufpreis",
780
+ cjprice:"Preis der Transaktion",
781
+ yuji:"Geschätzte Gewinne und Verluste",
782
+ daotime:"Zählen nach unten",
783
+ type:"Typ",
784
+ yingkui:"Gewinn und Verlust",
785
+ nolog:"Kein Eintrag",
786
+ more:"Laden Sie mehr",
787
+ nomore:"Nicht mehr",
788
+ ylrate:"Verzinsung des Gewinns",
789
+ buyup:"Kaufen Sie auf",
790
+ buydown:"Kaufen Sie unten",
791
+ micro:"Handel mit Optionen",
792
+ model:"Modus der Transaktion",
793
+ opennum:"Menge der Öffnung",
794
+ opentime:"Open Time",
795
+ balance:"Saldo des Kontos",
796
+ num1:"Anzahl:",
797
+ yuqi:"Erwartete Einnahmen:",
798
+ circle:"Zeitraum der Abrechnung:",
799
+ nowprice:"Aktueller Preis",
800
+ ceil:"Stornieren",
801
+ ptime:"Bitte die Öffnungszeiten auswählen",
802
+ pnum:"Bitte wählen Sie die Öffnungsmenge",
803
+ success:"Erfolg der Kasse"
804
+ },
805
+ fra:{
806
+ high:"Élevé",
807
+ low:"Faible",
808
+ volume:"Quantité 24h",
809
+ num:"Nombre",
810
+ price:"Prix",
811
+ time:"Temps",
812
+ buy:"Acheter",
813
+ sell:"Vendre",
814
+ chicang:"Liste des positions",
815
+ record:"Enregistrement des commandes",
816
+ buyprice:"Prix d'achat",
817
+ cjprice:"Prix de transaction",
818
+ yuji:"Résultat escompté",
819
+ daotime:"Compte à rebours",
820
+ type:"Type",
821
+ yingkui:"Profits et pertes",
822
+ nolog:"Pas d'enregistrement pour le moment",
823
+ more:"Charger plus",
824
+ nomore:"Il n'y en a plus.",
825
+ ylrate:"Taux de rentabilité",
826
+ buyup:"Augmentation des achats",
827
+ buydown:"Buy down",
828
+ micro:"Opérations d'options",
829
+ model:"Mode de transaction",
830
+ opennum:"Quantité d'ouverture",
831
+ opentime:"Heure d'ouverture",
832
+ balance:"Solde du compte",
833
+ num1:"Quantité:",
834
+ yuqi:"Avantages escomptés:",
835
+ circle:"Période de règlement:",
836
+ nowprice:"Prix courants",
837
+ ceil:"Annulation",
838
+ ptime:"Veuillez sélectionner l'heure d'ouverture",
839
+ pnum:"Veuillez sélectionner la quantité d'ouverture",
840
+ success:"Commande réussie"
841
+ },
842
+ hi:{
843
+ high:"उच्च",
844
+ low:"कम",
845
+ volume:"24H मात्रा",
846
+ num:"मात्रा",
847
+ price:"कीमत",
848
+ time:"समय",
849
+ buy:"खरीदना",
850
+ sell:"बेचना",
851
+ chicang:"पदों की सूची",
852
+ record:"आदेश रिकॉर्ड",
853
+ buyprice:"खरीद मूल्य",
854
+ cjprice:"अंतिम कीमत",
855
+ yuji:"अनुमानित लाभ और हानि",
856
+ daotime:"उलटी गिनती",
857
+ type:"के प्रकार",
858
+ yingkui:"लाभ और हानि",
859
+ nolog:"कोई रिकॉर्ड नहीं",
860
+ more:"और लोड करें",
861
+ nomore:"अब और नहीं",
862
+ ylrate:"लाभप्रदता",
863
+ buyup:"खरीद लेना",
864
+ buydown:"खरीदना या गिरना",
865
+ micro:"ऑप्शन ट्रेडिंग",
866
+ model:"लेनदेन मोड",
867
+ opennum:"खोले गए पदों की संख्या",
868
+ opentime:"खुलने का समय",
869
+ balance:"खाते में शेष",
870
+ num1:"मात्रा:",
871
+ yuqi:"अपेक्षित आय:",
872
+ circle:"बिलिंग चक्र:",
873
+ nowprice:"मौजूदा कीमत",
874
+ ceil:"रद्द करना",
875
+ ptime:"कृपया खुलने का समय चुनें",
876
+ pnum:"कृपया उद्घाटन की मात्रा चुनें",
877
+ success:"सफलतापूर्वक आदेश दिय��� गया"
878
+ },
879
+ id:{
880
+ high:"tinggi",
881
+ low:"rendah",
882
+ volume:"Volume 24 jam",
883
+ num:"Kuantitas",
884
+ price:"harga",
885
+ time:"waktu",
886
+ buy:"Membeli di",
887
+ sell:"Menjual",
888
+ chicang:"Daftar posisi",
889
+ record:"Catatan pesanan",
890
+ buyprice:"Harga pembelian",
891
+ cjprice:"harga akhir",
892
+ yuji:"Taksiran untung dan rugi",
893
+ daotime:"Hitung mundur",
894
+ type:"Jenis dari",
895
+ yingkui:"Laba rugi",
896
+ nolog:"Tidak ada catatan",
897
+ more:"Muat lebih banyak",
898
+ nomore:"Tidak lagi",
899
+ ylrate:"Profitabilitas",
900
+ buyup:"Memborong",
901
+ buydown:"Beli atau jatuh",
902
+ micro:"Perdagangan opsi",
903
+ model:"Mode transaksi",
904
+ opennum:"Jumlah posisi dibuka",
905
+ opentime:"Waktu pembukaan",
906
+ balance:"Saldo rekening",
907
+ num1:"Kuantitas:",
908
+ yuqi:"Hasil yang diharapkan:",
909
+ circle:"Siklus penagihan:",
910
+ nowprice:"Harga sekarang",
911
+ ceil:"membatalkan",
912
+ ptime:"Pilih jam buka",
913
+ pnum:"Silakan pilih jumlah pembukaan",
914
+ success:"berhasil dipesan"
915
+ },
916
+ pt:{
917
+ high:"Alto",
918
+ low:"Baixo",
919
+ volume:"24h volume",
920
+ num:"Número",
921
+ price:"Preço",
922
+ time:"Tempo",
923
+ buy:"Compra",
924
+ sell:"Vender fora",
925
+ chicang:"Lista de posições",
926
+ record:"Registos de encomendas",
927
+ buyprice:"Preço de compra",
928
+ cjprice:"Preço de transacção",
929
+ yuji:"Lucros e Perdas estimados",
930
+ daotime:"Contagem decrescente",
931
+ type:"Tipo",
932
+ yingkui:"Resultado e perda",
933
+ nolog:"Sem Registro",
934
+ more:"Carregar Mais",
935
+ nomore:"Não mais.",
936
+ ylrate:"Taxa de lucro",
937
+ buyup:"Compra aí.",
938
+ buydown:"Comprar para baixo",
939
+ micro:"Opções de negociação",
940
+ model:"Modo de transação",
941
+ opennum:"Quantidade de Abertura",
942
+ opentime:"Tempo Aberto",
943
+ balance:"Balanço de conta",
944
+ num1:"Número:",
945
+ yuqi:"Receitas previstas:",
946
+ circle:"Período de liquidação:",
947
+ nowprice:"Preço actual",
948
+ ceil:"Cancelar",
949
+ ptime:"Por favor, selecione a Hora de Abertura",
950
+ pnum:"Seleccione por favor a quantidade de Abertura",
951
+ success:"SUCESSO do checkout"
952
+ },
953
+ ru:{
954
+ high:"высота",
955
+ low:"низкий",
956
+ volume:"24H количество",
957
+ num:"количество",
958
+ price:"цена",
959
+ time:"время",
960
+ buy:"покупать",
961
+ sell:"продать",
962
+ chicang:"Список владельцев бункера",
963
+ record:"запись заказа",
964
+ buyprice:"покупная цена",
965
+ cjprice:"цена сделки",
966
+ yuji:"ожидаемая прибыльность",
967
+ daotime:"обратный отсчет",
968
+ type:"тип",
969
+ yingkui:"полный убыток",
970
+ nolog:"Пока нет записи",
971
+ more:"Загрузить дополнительно",
972
+ nomore:"Больше нет",
973
+ ylrate:"норма прибыли",
974
+ buyup:"купить",
975
+ buydown:"упасть",
976
+ micro:"опционная сделка",
977
+ model:"режим сделок",
978
+ opennum:"количество вскрытия",
979
+ opentime:"время открытия бункера",
980
+ balance:"сальдо счета",
981
+ num1:"количество",
982
+ yuqi:"Ожидаемые выгоды:",
983
+ circle:"расчетный период:",
984
+ nowprice:"текущая цена",
985
+ ceil:"отмена",
986
+ ptime:"Выберите время начала бункера",
987
+ pnum:"Выберите количество бункера",
988
+ success:"Следующий успех"
989
+ },
990
+ spa:{
991
+ high:"Alto",
992
+ low:"Baja",
993
+ volume:"Cantidad de 24h",
994
+ num:"Cantidad",
995
+ price:"Precio",
996
+ time:"Tiempo",
997
+ buy:"Comprar",
998
+ sell:"Vender",
999
+ chicang:"Lista de posiciones",
1000
+ record:"Registro de pedidos",
1001
+ buyprice:"Precio de compra",
1002
+ cjprice:"Precio de transacción",
1003
+ yuji:"Ganancias y pérdidas previstas",
1004
+ daotime:"Cuenta atrás",
1005
+ type:"Tipo",
1006
+ yingkui:"Ganancias y pérdidas",
1007
+ nolog:"No hay registro",
1008
+ more:"Cargar más",
1009
+ nomore:"No más",
1010
+ ylrate:"Tasa de ganancia",
1011
+ buyup:"Comprar",
1012
+ buydown:"Comprar o caer",
1013
+ micro:"Comercio de opciones",
1014
+ model:"Modo de transacción",
1015
+ opennum:"Cantidad de apertura",
1016
+ opentime:"Tiempo de apertura",
1017
+ balance:"Saldo de la cuenta",
1018
+ num1:"Cantidad:",
1019
+ yuqi:"Ingresos previstos:",
1020
+ circle:"Período de liquidación:",
1021
+ nowprice:"Precio actual",
1022
+ ceil:"Cancelar",
1023
+ ptime:"Por favor, seleccione el tiempo de apertura",
1024
+ pnum:"Por favor, seleccione la cantidad de apertura",
1025
+ success:"Pedido exitoso"
1026
+ }
1027
+ },
1028
+ translatedInfo: {
1029
+ high:'',
1030
+ low:'',
1031
+ volume:'',
1032
+ buy:'',
1033
+ sell:''
1034
+ },
1035
+ lang: 'en',
1036
+ sellType: 'buy',
1037
+ multipleList: [],
1038
+ CountDown: '',
1039
+ balance: '',
1040
+ rate: '',
1041
+ numbers: '0.00',
1042
+ expectedReturn: '0.00',
1043
+ guaranteeAmount: '0.00',
1044
+ tradeType: '',
1045
+ tradeCurrency: [],
1046
+ getlists:[],
1047
+ tradeCurrencylist: [],
1048
+ tradeCurrencyId: '',
1049
+ tradeCurrencyName: '',
1050
+ tradeCurrencyData: [],
1051
+ tradeNUm: [],
1052
+ trade:{
1053
+ en:{
1054
+ all:'all'
1055
+ },
1056
+ zh:{
1057
+ all:'全部'
1058
+ },
1059
+ hk:{
1060
+ all:'全部'
1061
+ },
1062
+ jp:{
1063
+ all:'すべて'
1064
+ }
1065
+ },
1066
+ timeList: [],
1067
+ seconds: '',
1068
+ inputValue: '',
1069
+ profitRatio: '',
1070
+ tradeCurrencyIdTest: '',
1071
+ secondsTest: '',
1072
+ inputValueTest: '',
1073
+ profitRatioTest: '',
1074
+ balanceTest: '',
1075
+ rateTest: '',
1076
+ orderData: {
1077
+
1078
+ },
1079
+ progress: 100,
1080
+ set: null,
1081
+ status: 1,
1082
+ currencyName: "",
1083
+ orderList: [],
1084
+ set: null,
1085
+ bmbBalance: '',
1086
+ sets: null,
1087
+ insurancType:[],
1088
+ userInsurancId:'',
1089
+ page:1,
1090
+ hasmore:false,
1091
+ plate:'',
1092
+ opt: false,
1093
+ addid:'',
1094
+ isActive:0,
1095
+ topnow:1,
1096
+ topList:['全部','主流','合约'],
1097
+ is_insurance: 0,
1098
+ styleColor:'',
1099
+ greenColor:'#02C289',
1100
+ redColor:'#e86d43'
1101
+ },
1102
+ filters:{
1103
+ fixed4:function(vals){
1104
+ var values = iTofixed(vals,4);
1105
+ return values;
1106
+ },
1107
+ toFixeds: function (value) {
1108
+ value = Number(value);
1109
+ return value.toFixed(2);
1110
+ },
1111
+ toFixeds1: function (value) {
1112
+ value = Number(value);
1113
+ return value.toFixed(8);
1114
+ },
1115
+ toFixed4: function (value, options) {
1116
+ value = Number(value);
1117
+ return value.toFixed(4);
1118
+ },
1119
+ toFixedNum: function (value, options) {
1120
+ value = Number(value);
1121
+ return value.toFixed(0);
1122
+ },
1123
+ toFixed1: function (value, options) {
1124
+ value = Number(value);
1125
+ return value.toFixed(1);
1126
+ },
1127
+ },
1128
+ created() {
1129
+ this.lang = this.getJsUrl().lang
1130
+ var paramsed = get_all_params();
1131
+ // if(paramsed.symbol){
1132
+ // that.symbol = paramsed.symbol;
1133
+ // let c_name = paramsed.symbol.split('/')
1134
+ // that.legal_name = c_name[1];
1135
+ // that.currency_name = c_name[0];
1136
+ // that.legal_id = paramsed.legal_id;
1137
+ // that.currency_id = paramsed.currency_id;
1138
+ // that.currency_match_id = paramsed.currency_match_id;
1139
+ // that.plate = paramsed.plate;
1140
+ // that.topnow = paramsed.plate || 1;
1141
+ // document.title = that.symbol;
1142
+ // }
1143
+ var token=uni.getStorageSync('token');
1144
+ // let token1 = window.localStorage.getItem('token')
1145
+ // console.log(token1)
1146
+ console.log(token)
1147
+ if (token == null || token == ''){
1148
+ uni.navigateTo({
1149
+ url: '/pages/mine/login',
1150
+ });
1151
+ }
1152
+ // if(window.plus){
1153
+ // if (!plus.storage.getItem('token')) {
1154
+ // uni.navigateTo({
1155
+ // url: '/pages/mine/login',
1156
+ // });
1157
+ // // window.location.href=this.url+"h5/#/pages/mine/login"
1158
+ // }
1159
+ // }else{
1160
+ // if (localStorage.getItem('token') == null || localStorage.getItem('token') == '') {
1161
+ // uni.navigateTo({
1162
+ // url: '/pages/mine/login',
1163
+ // });
1164
+ // // window.location.href=this.url+"h5/#/pages/mine/login"
1165
+
1166
+ // }
1167
+ // }
1168
+ },
1169
+ computed: {
1170
+ listenState() { //监听交易对
1171
+ return this.symbol;
1172
+ }
1173
+ },mounted() {
1174
+ let _this = this
1175
+ uni.addInterceptor('navigateTo', { //监听跳转
1176
+ success(e) {
1177
+ console.log("navigateTo>>>>>>>>>>>>>>>>>>>>>")
1178
+ clearInterval(_this._barsPulseUpdater);
1179
+ clearInterval(_this.timer);
1180
+ }
1181
+ })
1182
+ uni.addInterceptor('switchTab', { //监听跳转
1183
+ success(e) {
1184
+ console.log("switchTab>>>>>>>>>>>>>>>>>>>>>>>>>")
1185
+ clearInterval(_this._barsPulseUpdater);
1186
+ clearInterval(_this.timer);
1187
+ }
1188
+ })
1189
+ uni.addInterceptor('redirectTo', { //监听关闭本页面跳转
1190
+ success(e) {
1191
+ console.log("redirectTo>>>>>>>>>>>>>>>>")
1192
+ clearInterval(_this._barsPulseUpdater);
1193
+ clearInterval(_this.timer);
1194
+
1195
+ }
1196
+ })
1197
+ },
1198
+ watch: {
1199
+ listenState: function(a, b) { //监听交易对
1200
+ if (a != b && b != '') {
1201
+ this.widget.setSymbol(a, localStorage.getItem('tim'), function onReadyCallback() {}) //切换币种
1202
+ }
1203
+ }
1204
+ },
1205
+ mounted() {
1206
+ var that = this;
1207
+ if(window.plus){
1208
+ plus.navigator.setStatusBarStyle('light');
1209
+
1210
+ // that.lang = plus.storage.getItem('lang') || "en";
1211
+ console.log(uni.getStorageSync('lang'))
1212
+ that.lang = uni.getStorageSync('lang') || "en";
1213
+ that.translatedInfo = that.transwords[that.lang];
1214
+ that.styleColor = plus.storage.getItem('color');
1215
+ if(that.styleColor=='green'){
1216
+ that.greenColor='#02C289';
1217
+ that.redColor='#e86d43';
1218
+ }else{
1219
+ that.greenColor='#e86d43';
1220
+ that.redColor='#02C289';
1221
+ }
1222
+ }else{
1223
+ // that.lang = JSON.parse(localStorage.getItem('lang')).data;
1224
+ console.log(localStorage.getItem('lang'))
1225
+ that.lang = localStorage.getItem('lang') || "en";
1226
+ that.styleColor = localStorage.getItem('color');
1227
+ if(that.styleColor=='green'){
1228
+ that.greenColor='#02C289';
1229
+ that.redColor='#e86d43';
1230
+ }else{
1231
+ that.greenColor='#e86d43';
1232
+ that.redColor='#02C289';
1233
+ }
1234
+ that.translatedInfo = that.transwords[that.lang];
1235
+ }
1236
+ this.init();
1237
+ this.getSecond();
1238
+ this.getWallet();
1239
+ // this.getMyAdd()
1240
+ // this.createWidget();
1241
+ },
1242
+ destroyed() {
1243
+ this.removeWidget();
1244
+ },
1245
+ beforeDestroy() {
1246
+
1247
+ },
1248
+ methods: {
1249
+ getJsUrl(){
1250
+ let pos,str,para,parastr;
1251
+ let array =[]
1252
+ str = window.location.href;
1253
+ parastr = str.split("?")[1];
1254
+ let arr = parastr.split("&");
1255
+ for (let i=0;i<arr.length;i++){
1256
+ array[arr[i].split("=")[0]]=arr[i].split("=")[1];
1257
+ }
1258
+ return array;
1259
+ },
1260
+ changeTop(e){
1261
+ this.topnow=e;
1262
+ },
1263
+ changeTab(e,name){
1264
+ // this.fiat_convert_cny=this.marketLists[e].fiat_convert_cny-0;
1265
+ this.isActive=e;
1266
+ this.legal_name = name;
1267
+ },
1268
+ getrate(){
1269
+ var token = getlocal_storage('token');
1270
+
1271
+ $.ajax({
1272
+ url:"https://www.usdtlightningnetwork3.com/api/currency/newGetDetail",
1273
+ type:'post',
1274
+ data:{
1275
+ symbol:this.symbol.replace('/', "").toLowerCase()
1276
+ },
1277
+ beforeSend: function beforeSend(request) {
1278
+ request.setRequestHeader('AUTHORIZATION', token)
1279
+ },
1280
+ success: function (res) {
1281
+ // console.log(JSON.stringify(res));
1282
+ //that.updown = res.change
1283
+ this.getlists = res.data
1284
+ // console.log('this.getlists>>>>>>>>>>>>>>');
1285
+ // console.log(this.getlists);
1286
+ this.maxdayvom = Number(this.getlists.vol).toFixed(4)
1287
+ $('.maxdayvom').html(this.maxdayvom)
1288
+ // console.log(this.maxdayvom);
1289
+ this.maxhigh = this.getlists.high
1290
+ this.minlow = this.getlists.low
1291
+ this.newprice = this.getlists.close
1292
+ $('.getlists_high').html(this.getlists.high)
1293
+ $('.getlists_low').html(this.getlists.low)
1294
+ $('.getlists_close').html(this.getlists.close)
1295
+ $('.newprice').html(this.newprice)
1296
+ }
1297
+ })
1298
+
1299
+ },
1300
+ // getrate(){
1301
+ // let that = this;
1302
+ // initDataToken({
1303
+ // url: 'market/deal',
1304
+ // data:{
1305
+ // currency_match_id:that.currency_match_id
1306
+ // }
1307
+ // }, function (res) {
1308
+ // let data = res.quotation;
1309
+ // that.updown = data.change
1310
+ // that.dayvom = Number(data.volume).toFixed(4)
1311
+ // that.maxprice = data.high
1312
+ // that.minprice = data.low
1313
+ // that.newprice = data.close
1314
+ // })
1315
+ // },
1316
+ // 自选添加删除
1317
+ toggle(url){
1318
+ var that = this;
1319
+ that.opt=!that.opt
1320
+ initDataToken({
1321
+ url: 'user_match/'+url,
1322
+ type: "post",
1323
+ data:{id:that.currency_match_id},
1324
+ }, function (res) {
1325
+ layer_msg(res);
1326
+ })
1327
+ },
1328
+ // 我的自选
1329
+ getMyAdd(){
1330
+ let that = this;
1331
+ initDataToken({
1332
+ url: 'user_match/list',
1333
+ type: "GET",
1334
+ }, function (res) {
1335
+ console.log(JSON.stringify(res))
1336
+ var list = res.data;
1337
+ for(var i=0;i<list.length;i++){
1338
+ if(list[i].legal_id == that.legal_id && list[i].currency_id == that.currency_id ){
1339
+ that.opt= true
1340
+ console.log(1)
1341
+ }
1342
+ }
1343
+ })
1344
+
1345
+ },
1346
+ init(){
1347
+ let that = this;
1348
+ initData({ url: 'currency/quotation_new'}, (res, msg) => {
1349
+ that.currencyList=res;
1350
+ var data1 = res;
1351
+ if(!that.legal_id){
1352
+ that.legal_id = res[0].id;
1353
+ }
1354
+ console.log(that.legal_id)
1355
+
1356
+ for (var i = 0; i < data1.length; i++) {
1357
+ if (data1[i].id == that.legal_id) {
1358
+ var data2 = data1[i].quotation;
1359
+ // that.currencyList = data2;
1360
+ let data0 = data2[0];
1361
+ console.log(data0)
1362
+ // var param = get_all_params();
1363
+ // if(!param.symbol){
1364
+ that.legal_id = data0.legal_id;
1365
+ that.currency_id = data0.currency_id;
1366
+ that.legal_name = data0.legal_name;
1367
+ that.currency_name = data0.currency_name;
1368
+ that.currency_match_id = data0.id;
1369
+ that.symbol = data0.currency_name+'/'+data0.legal_name;
1370
+ // }
1371
+
1372
+ // that.getrate();
1373
+ that.createWidget();
1374
+ that.orderList = [];
1375
+ that.page = 1;
1376
+ that.getList();
1377
+ }
1378
+ }
1379
+ this.timer = setInterval((res)=>{
1380
+ // console.log(123)
1381
+ that.getrate(); // 获取当前值跨域404
1382
+ },5000);
1383
+ //that.getrate(); // 获取当前值跨域404
1384
+ // that.createWidget();
1385
+ // that.orderList = [];
1386
+ // that.page = 1;
1387
+ // that.getList();
1388
+ })
1389
+ },
1390
+ //获取期权交易信息
1391
+ getWallet(){
1392
+ let that = this;
1393
+ initDataToken({
1394
+ url: 'microtrade/payable_currencies'
1395
+ }, function (res) {
1396
+ that.tradeCurrency = res;
1397
+ let tradeCurrencylist = res[2];
1398
+ console.log(123)
1399
+ // console.log(tradeCurrencylist.name)
1400
+ // alert(JSON.stringify(res))
1401
+ if (res.length > 0) {
1402
+ that.tradeCurrencyId = res[0].id;
1403
+ that.tradeCurrencyName = res[0].name;
1404
+ that.tradeCurrencyIdTest = res[0].id;
1405
+ that.tradeNUm = res[0].micro_numbers;
1406
+ // that.balance = res[0].micro_account.balance;
1407
+ // that.balanceTest = res[0].micro_account.balance;
1408
+ that.balance = res[0].user_wallet.micro_with_insurance;
1409
+ that.balanceTest = res[0].user_wallet.micro_with_insurance;
1410
+ that.rate = res[0].micro_trade_fee;
1411
+ that.rateTest = res[0].micro_trade_fee;
1412
+ if (that.tradeNUm.length > 0) {
1413
+ console.log(that.tradeNUm)
1414
+ that.inputValue = (that.tradeNUm[0].number - 0).toFixed(0);
1415
+ console.log(that.inputValue)
1416
+ that.inputValueTest = that.tradeNUm[0].number;
1417
+ }
1418
+ }
1419
+ that.$forceUpdate();
1420
+ })
1421
+ },
1422
+
1423
+ //获取开仓时间
1424
+ getSecond(){
1425
+ let that = this;
1426
+ initDataToken({
1427
+ url: 'microtrade/seconds'
1428
+ }, function (res) {
1429
+ that.timeList = res;
1430
+ if (res.length > 0) {
1431
+ that.seconds = res[0].seconds;
1432
+ that.profitRatio = res[0].profit_ratio;
1433
+ that.secondsTest = res[0].seconds;
1434
+ that.profitRatioTest = res[0].profit_ratio
1435
+ }
1436
+ })
1437
+ },
1438
+ //选择交易对
1439
+ selectCurrencys(ids, legalId, currencyId, legalName, currencyName,plate_id) {
1440
+ console.log(ids, legalId, currencyId, legalName, currencyName,plate_id)
1441
+ var that = this;
1442
+ that.currency_match_id = ids;
1443
+ that.legal_id = legalId;
1444
+ that.currency_id = currencyId;
1445
+ that.symbol = currencyName + '/' + legalName;
1446
+ that.currency_name = currencyName;
1447
+ that.legal_name = legalName;
1448
+ that.plate = plate_id
1449
+ $('#mask1').hide();
1450
+ $('#sideColumn').animate({
1451
+ left: '-70%'
1452
+ }, 100);
1453
+ // that.init();
1454
+ // this.getrate();
1455
+ that.createWidget();
1456
+ // that.connects();
1457
+ that.getList();
1458
+ },
1459
+
1460
+ tradeCurrencyClick(num, names) {
1461
+ var that = this;
1462
+ that.tradeCurrencyId = num;
1463
+ that.tradeCurrencyName = names;
1464
+ for (var i = 0; i < that.tradeCurrency.length; i++) {
1465
+ if (that.tradeCurrency[i].id == num) {
1466
+ that.tradeNUm = that.tradeCurrency[i].micro_numbers;
1467
+ console.log(that.tradeNUm)
1468
+ if (that.tradeCurrency[i].user_wallet) {
1469
+ if(that.is_insurance==0){
1470
+ that.balance = that.tradeCurrency[i].user_wallet.micro_balance;
1471
+ }else{
1472
+ that.balance = that.tradeCurrency[i].user_wallet.insurance_balance;
1473
+ }
1474
+ }
1475
+ that.rate = that.tradeCurrency[i].micro_trade_fee;
1476
+ if (that.tradeNUm.length > 0) {
1477
+ that.inputValue = (that.tradeNUm[0].number - 0).toFixed(0);
1478
+ }
1479
+ }
1480
+ }
1481
+ },
1482
+ changeInsurance(types){
1483
+ var that = this;
1484
+ that.is_insurance= types;
1485
+ for (var i = 0; i < that.tradeCurrency.length; i++) {
1486
+ if (that.tradeCurrency[i].id == that.tradeCurrencyId) {
1487
+ if (that.tradeCurrency[i].user_wallet) {
1488
+ if(that.is_insurance==0){
1489
+ that.balance = that.tradeCurrency[i].user_wallet.micro_balance;
1490
+ }else{
1491
+ that.balance = that.tradeCurrency[i].user_wallet.insurance_balance;
1492
+ }
1493
+ }
1494
+ }
1495
+ }
1496
+ },
1497
+ tabNumbers(num) {
1498
+ var that = this;
1499
+ that.inputValue = (num - 0).toFixed(0);
1500
+ },
1501
+ // 买入/卖出按钮点击
1502
+ buyModal(types) {
1503
+ var that = this;
1504
+ that.progress = 100;
1505
+ layer.closeAll();
1506
+ clearInterval(that.set);
1507
+ that.tradeType = types;
1508
+ var text1 = '';
1509
+ var skin = 'confirm-modal btn-text ';
1510
+ if (types == 1) {
1511
+ text1 = that.translatedInfo.buyup + that.currencyName;
1512
+ skin = 'confirm-modal btn-text buys';
1513
+ } else {
1514
+ text1 = that.translatedInfo.buydown + that.currencyName;
1515
+ skin = 'confirm-modal btn-text sells';
1516
+ }
1517
+ layer.open({
1518
+ type: 1,
1519
+ title: text1,
1520
+ area: ['90%', 'auto'],
1521
+ skin: skin,
1522
+ content: $('.orders'),
1523
+ shadeClose: true,
1524
+ btn: [that.translatedInfo.ceil, text1],
1525
+ btn2: function (index) {
1526
+ that.taderSubmit()
1527
+ },
1528
+ success: function () {
1529
+
1530
+ }
1531
+ })
1532
+ },
1533
+ slectedTime() {
1534
+ var that = this;
1535
+ that.progress = 100;
1536
+ layer.closeAll();
1537
+ clearInterval(that.set);
1538
+ layer.open({
1539
+ type: 1,
1540
+ title: false,
1541
+ area: ['100%', 'auto'],
1542
+ skin: 'confirm-modal btn-text second-modal',
1543
+ content: $('.time-modal'),
1544
+ shadeClose: true,
1545
+ fixed: true,
1546
+ offset: 'b',
1547
+ closeBtn: 0,
1548
+ // scrollbar: false,
1549
+ tipsMore: true,
1550
+ // btn: [that.translatedInfo.buyup, that.translatedInfo.buydown],
1551
+ btn: [that.translatedInfo.buy, that.translatedInfo.sell],
1552
+ btn2: function (index) {
1553
+ that.buyModal(2);
1554
+ },
1555
+ yes: function () {
1556
+ that.buyModal(1)
1557
+ }
1558
+ })
1559
+ },
1560
+ // 下单
1561
+ taderSubmit() {
1562
+ var that = this;
1563
+ if (!that.seconds) {
1564
+ layer_msg(that.translatedInfo.ptime);
1565
+ return false;
1566
+ }
1567
+ if (!that.inputValue) {
1568
+ layer_msg(that.translatedInfo.pnum);
1569
+ return false;
1570
+ }
1571
+ // else if (that.inputValue % 10 != 0) {
1572
+ // layer_msg(getlg('multipleTen'));
1573
+ // return false;
1574
+ // }
1575
+ initDataToken({
1576
+ url: 'microtrade/submit',
1577
+ data: {
1578
+ match_id: that.currency_match_id,
1579
+ currency_id: that.tradeCurrencyId,
1580
+ type: that.tradeType,
1581
+ seconds: that.seconds,
1582
+ number: that.inputValue,
1583
+ // is_insurance:that.is_insurance
1584
+ },
1585
+
1586
+ type: 'post'
1587
+ }, function (res) {
1588
+ layer_msg(that.translatedInfo.success);
1589
+ initDataToken({
1590
+ url: 'microtrade/payable_currencies',
1591
+ }, function (res) {
1592
+ if (res.length > 0) {
1593
+ for (var i = 0; i < res.length; i++) {
1594
+ if (res[i].id == that.tradeCurrencyId) {
1595
+ if(that.is_insurance==0){
1596
+ that.balance = res[i].user_wallet.micro_balance
1597
+ }else{
1598
+ that.balance = res[i].user_wallet.insurance_balance;
1599
+ }
1600
+ }
1601
+ }
1602
+ }
1603
+ })
1604
+ // location.reload();
1605
+ that.page = 1;
1606
+ that.orderList = [];
1607
+ clearTimeout(that.set);
1608
+ clearInterval(that.sets);
1609
+ that.getList();
1610
+ })
1611
+ },
1612
+ selectTime(num, num1) {
1613
+ console.log(num1)
1614
+ var that = this;
1615
+ that.seconds = num;
1616
+ // that.profitRatio = Number(num1)*100;
1617
+ that.profitRatio = Number(num1);
1618
+ },
1619
+ // 显示左侧
1620
+ showLeft() {
1621
+ var that = this;
1622
+ $('#mask1').show();
1623
+ $('#sideColumn').animate({
1624
+ left: '0'
1625
+ }, 100);
1626
+ },
1627
+ // 关闭左侧
1628
+ closeLeft() {
1629
+ var that = this;
1630
+ $('#mask1').hide();
1631
+ $('#sideColumn').animate({
1632
+ left: '-70%'
1633
+ }, 100);
1634
+ },
1635
+ // 获取期权交易订单列表
1636
+ getList() {
1637
+ var that = this;
1638
+ // that.orderList = [];
1639
+ var arr = [];
1640
+ clearTimeout(that.set);
1641
+ clearInterval(that.sets);
1642
+ initDataToken({
1643
+ url: 'microtrade/lists',
1644
+ data: {
1645
+ page: that.page,
1646
+ status: that.status,
1647
+ limit:10,
1648
+ match_id: that.currency_match_id
1649
+ }
1650
+ }, function (res) {
1651
+ that.hasmore = res.current_page<res.last_page ? true : false;
1652
+ arr = res.data;
1653
+ if(that.page==1){
1654
+ that.orderList=[];
1655
+ }else{
1656
+ arr = that.orderList.concat(arr);
1657
+ }
1658
+ if (arr.length > 0) {
1659
+ var nowTime = new Date().getTime();
1660
+ for (var i = 0; i < arr.length; i++) {
1661
+ arr[i].endTime = (nowTime - 0) + (arr[i].remain_milli_seconds - 0);
1662
+ }
1663
+ that.orderList = arr;
1664
+ that.Djs_time();
1665
+ that.set = setTimeout(that.countDown, 200);
1666
+ }
1667
+ })
1668
+ },
1669
+ getmore(){
1670
+ this.page++;
1671
+ this.getList();
1672
+ },
1673
+ // 订单倒计时
1674
+ countDown(val, indexs, seconds, relSeconds) {
1675
+ var that = this;
1676
+ var timeValue = '';
1677
+ // var process = 100 / Number(seconds);
1678
+ var endItem = val; //获取列表传的截止时间
1679
+ var nowItem = new Date().getTime(); //获取当前时间
1680
+ var timeSpace = endItem - nowItem; //截止时间减去当前时间
1681
+ var seconds = '';
1682
+ if (timeSpace > 0) {
1683
+ seconds = (timeSpace / 1000).toFixed(1);
1684
+ console.log(seconds)
1685
+ return seconds;
1686
+ } else if (timeSpace <= 0) {
1687
+ return 0.0;
1688
+ // 倒��时结束打开
1689
+ // clearTimeout(that.set);
1690
+ // var arr = that.orderList;
1691
+ // arr.splice(indexs,1)
1692
+ // that.orderList = arr;
1693
+ // console.log(that.orderList.splice(indexs,1))
1694
+ // that.orderList = that.orderList.splice(indexs,1);
1695
+ // that.getList();
1696
+ // 或者刷新页面
1697
+ // location.reload();
1698
+ }
1699
+ },
1700
+ Djs_time: function () {
1701
+ this.sets = setInterval(() => {
1702
+ var presentTime = new Date().getTime();
1703
+ this.CountDown = presentTime
1704
+ }, 200);
1705
+ },
1706
+ // 选择期权交易订单类型
1707
+ selectOrder(types) {
1708
+ var that = this;
1709
+ that.status = types;
1710
+ that.page = 1;
1711
+ that.orderList = [];
1712
+ that.getList();
1713
+ },
1714
+ goback() {
1715
+ if(window.plus){
1716
+ // uni.navigateBack({
1717
+ // delta: 1
1718
+ // });
1719
+ history.back(-1);
1720
+ }else{
1721
+ history.back(-1);
1722
+ }
1723
+ },
1724
+ golever(){
1725
+ var data = {
1726
+ legalId: this.legal_id,
1727
+ currencyId: this.currency_id,
1728
+ plateId: this.plate
1729
+ };
1730
+ if(window.plus){
1731
+ window.open(this.url+"h5/#/pages/lever/lever");
1732
+ plus.storage.setItem('leverOrder', JSON.stringify(data));
1733
+ }else{
1734
+ window.location.href=this.url+"h5/#/pages/lever/lever"
1735
+ localStorage.setItem('leverOrder', JSON.stringify(data));
1736
+ }
1737
+ // uni.switchTab({
1738
+ // url: '/pages/lever/lever'
1739
+ // })
1740
+ },
1741
+ // goTrade(mytype) {
1742
+ // let localData = {
1743
+ // legal_name: this.legal_name,
1744
+ // legal_id: this.legal_id,
1745
+ // currency_name: this.currency_name,
1746
+ // currency_id: this.currency_id,
1747
+ // match_id:this.currency_match_id
1748
+ // }
1749
+
1750
+ // if(window.plus){
1751
+ // plus.storage.setItem('tradeData', JSON.stringify(localData));
1752
+ // plus.storage.setItem('tradeType', mytype);
1753
+ // }else{
1754
+ // localStorage.setItem('tradeData', JSON.stringify(localData));
1755
+ // localStorage.setItem('tradeType', mytype);
1756
+ // }
1757
+ // uni.switchTab({
1758
+ // url: '/pages/trade/trade'
1759
+ // })
1760
+ // },
1761
+ timestampToTime(timestamp) {
1762
+ var time=''
1763
+ if(timestamp.toString().length>11){
1764
+ time=timestamp
1765
+ }else{
1766
+ time=timestamp*1000
1767
+ }
1768
+ var now = new Date(time),
1769
+    y = now.getFullYear(),
1770
+    m = now.getMonth() + 1,
1771
+    d = now.getDate();
1772
+    return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
1773
+ },
1774
+
1775
+ // 默认
1776
+ connect(real) { //封装推送数据
1777
+ var that = this,tokens='';
1778
+ if(window.plus){
1779
+ if (plus.storage.getItem('uid')) {
1780
+ tokens=JSON.parse(plus.storage.getItem('uid')).data
1781
+ }
1782
+ }else{
1783
+ if(localStorage.getItem('uid')){
1784
+ tokens = JSON.parse(localStorage.getItem('uid')).data;
1785
+ }
1786
+ }
1787
+ var socket=io(socket_api);
1788
+ socket.emit('login',tokens);
1789
+ socket.on('kline', msg=>{
1790
+ if (msg.type == 'kline') {
1791
+ let obj = {};
1792
+ var types = localStorage.getItem('type');
1793
+ if (that.symbol == msg.symbol) {
1794
+ let data = msg;
1795
+ if (data.period == types) {
1796
+ obj.open = Number(data.open)
1797
+ obj.low = Number(data.low)
1798
+ obj.high = Number(data.high)
1799
+ obj.close = Number(data.close)
1800
+ obj.volume = Number(data.volume)
1801
+ obj.time = Number(data.time)
1802
+ real(obj)
1803
+ }
1804
+ }
1805
+ }
1806
+ });
1807
+
1808
+ socket.on('daymarket', msg=> {
1809
+ if (msg.type == 'daymarket') {
1810
+ if (that.symbol == msg.symbol) {
1811
+ let datas = msg;
1812
+ that.newprice = datas.close;
1813
+ that.maxprice = datas.high;
1814
+ that.minprice = datas.low;
1815
+ that.dayvom = Number(datas.volume).toFixed(4);
1816
+ that.updown = datas.change;
1817
+ }
1818
+ }
1819
+ });
1820
+ socket.on('closed_microorder', msg=> {
1821
+ if (msg.type == 'closed_microorder') {
1822
+ for (var i = 0; i < that.orderList.length; i++) {
1823
+ if (that.orderList[i].id == datas.id) {
1824
+ that.orderList[i] = datas;
1825
+ setTimeout( ()=> {
1826
+ var arr = that.orderList;
1827
+ arr.splice(i, 1)
1828
+ that.orderList = arr;
1829
+ }, 500)
1830
+ return false;
1831
+ }
1832
+ }
1833
+ }
1834
+ });
1835
+ },
1836
+ createWidget() {
1837
+ let _this = this;
1838
+ this.$nextTick(()=> {
1839
+ let widget = _this.widget = new TradingView.widget({
1840
+ symbol: _this.symbol,
1841
+ interval: 1,
1842
+ debug: true,
1843
+ fullscreen: false,
1844
+ autosize: true,
1845
+ container_id: "tv_chart_container",
1846
+ // datafeed: new Datafeeds.UDFCompatibleDatafeed("http://demo_feed.tradingview.com"),
1847
+ datafeed: _this.createFeed(),
1848
+ library_path: "tradeview/charting_library/",
1849
+ custom_css_url: 'bundles/new.css',
1850
+ locale: _this.lang,
1851
+ width: "100%",
1852
+ height: 516,
1853
+ drawings_access: {
1854
+ type: 'black',
1855
+ tools: [{
1856
+ name: "Regression Trend"
1857
+ }]
1858
+ },
1859
+ disabled_features: [ // 禁用的功能
1860
+ 'left_toolbar', 'widget_logo', 'header_saveload', 'compare_symbol', 'display_market_status',
1861
+ 'go_to_date', 'header_chart_type', 'header_compare', 'header_interval_dialog_button',
1862
+ 'header_resolutions', 'header_screenshot', 'header_symbol_search', 'header_undo_redo',
1863
+ 'legend_context_menu', 'show_hide_button_in_legend', 'show_interval_dialog_on_key_press',
1864
+ 'snapshot_trading_drawings', 'symbol_info', 'timeframes_toolbar', 'use_localstorage_for_settings',
1865
+ 'volume_force_overlay'
1866
+ ],
1867
+ enabled_features: [ // 启用的功能(备注:disable_resolution_rebuild 功能用于控制当时间范围为1个月时,日期刻度是否都是每个月1号
1868
+ 'dont_show_boolean_study_arguments', 'hide_last_na_study_output', 'move_logo_to_main_pane',
1869
+ 'same_data_requery', 'side_toolbar_in_fullscreen_mode', 'disable_resolution_rebuild'
1870
+ ],
1871
+ charts_storage_url: 'http://saveload.tradingview.com',
1872
+ charts_storage_api_version: "1.1",
1873
+ toolbar_bg: "transparent",
1874
+ timezone: "Asia/Shanghai",
1875
+ studies_overrides: {
1876
+ "volume.volume.color.0": this.redColor,
1877
+ "volume.volume.color.1": this.greenColor,
1878
+ 'volume.precision': '1000'
1879
+ },
1880
+ overrides: _this.overrides()
1881
+ });
1882
+
1883
+ widget.MAStudies = [];
1884
+ widget.selectedIntervalButton = null;
1885
+ // widget.setLanguage('en')
1886
+ widget.onChartReady(function() { //图表方法
1887
+ // document.getElementById('trade-view').childNodes[0].setAttribute('style', 'display:block;width:100%;height:100%;');
1888
+ //let that =this
1889
+
1890
+ widget.chart().createStudy('Moving Average', false, true, [15, 'close', 0], null, {
1891
+ 'Plot.color': '#e843da'
1892
+ });
1893
+ widget.chart().createStudy("MA Cross", false, false, [10, 20]);
1894
+
1895
+ let buttonArr = [{
1896
+ value: "1min",
1897
+ period: "1",
1898
+ text: "Time",
1899
+ chartType: 3,
1900
+ type: "1min"
1901
+ },
1902
+ {
1903
+ value: "1",
1904
+ period: "1m",
1905
+ text: "1min",
1906
+ chartType: 1,
1907
+ type: "1min"
1908
+ },
1909
+ {
1910
+ value: "5",
1911
+ period: "5m",
1912
+ text: "5min",
1913
+ chartType: 1,
1914
+ type: "5min"
1915
+ },
1916
+ {
1917
+ value: "30",
1918
+ period: "30m",
1919
+ text: "30min",
1920
+ chartType: 1,
1921
+ type: "30min"
1922
+ },
1923
+ {
1924
+ value: "60",
1925
+ period: "60分钟",
1926
+ text: "1hour",
1927
+ chartType: 1,
1928
+ type: "60min"
1929
+ },
1930
+ {
1931
+ value: "1D",
1932
+ period: "1D",
1933
+ text: "1day",
1934
+ chartType: 1,
1935
+ type: "1day"
1936
+ },
1937
+ {
1938
+ value: "1W",
1939
+ period: "1W",
1940
+ text: "1week",
1941
+ chartType: 1,
1942
+ type: "1week"
1943
+ },
1944
+ {
1945
+ value: "1M",
1946
+ period: "1M",
1947
+ text: "1mon",
1948
+ chartType: 1,
1949
+ type: "1mon"
1950
+ }
1951
+ ];
1952
+ let btn = {};
1953
+ let nowTime = '';
1954
+ buttonArr.forEach((v, i) => {
1955
+ let button = widget.createButton()
1956
+ button.attr('title', v.text)
1957
+ .addClass("my2")
1958
+ .text(v.text)
1959
+
1960
+ if (v.text == '1min') {
1961
+ button.css({
1962
+ 'color': '#218bde',
1963
+ 'border-bottom': '1px solid #218bde'
1964
+ })
1965
+ localStorage.setItem('tim', '1min') //默认为1分钟
1966
+ localStorage.setItem('type', '1min') //默认为1分钟
1967
+ }
1968
+ btn = button.on("click", function(e) {
1969
+ $(this).parents(".left").children().find(".my2").removeAttr("style"); //去掉1分钟的
1970
+ handleClick(e, v.value, v.type);
1971
+
1972
+ widget.chart().setChartType(v.chartType); //改变K线类型
1973
+ });
1974
+
1975
+
1976
+ });
1977
+ if (localStorage.getItem('tim') == '1min') {
1978
+ widget.chart().setChartType(1);
1979
+ }
1980
+ let handleClick = (e, value, type) => {
1981
+ _this.setSymbol = function(symbol, value) {
1982
+ gh.chart().setSymbol(symbol, value);
1983
+ };
1984
+ localStorage.setItem('tim', value);
1985
+ localStorage.setItem('type', type) //默认为1分钟
1986
+ widget.chart().setResolution(value, function onReadyCallback() {}); //改变分辨率
1987
+
1988
+ $(e.target)
1989
+ .addClass("mydate")
1990
+ .closest("div.space-single")
1991
+ .siblings("div.space-single")
1992
+ .find("div.button")
1993
+ .removeClass("mydate")
1994
+ };
1995
+ });
1996
+ _this.widget = widget;
1997
+ })
1998
+ },
1999
+ createFeed() {
2000
+ let this_vue = this;
2001
+ let Datafeed = {};
2002
+ Datafeed.DataPulseUpdater = function(datafeed, updateFrequency) {
2003
+ this._datafeed = datafeed;
2004
+ this._subscribers = {};
2005
+
2006
+ this._requestsPending = 0;
2007
+ var that = this;
2008
+
2009
+ var update = function() {
2010
+ // console.log(that._requestsPending)
2011
+ if (that._requestsPending > 0) {
2012
+ return;
2013
+ }
2014
+
2015
+ for (var listenerGUID in that._subscribers) {
2016
+ var subscriptionRecord = that._subscribers[listenerGUID];
2017
+ var resolution = subscriptionRecord.resolution;
2018
+
2019
+ var datesRangeRight = parseInt((new Date().valueOf()) / 1000);
2020
+
2021
+
2022
+ // BEWARE: please note we really need 2 bars, not the only last one
2023
+ // see the explanation below. `10` is the `large enough` value to work around holidays
2024
+ var datesRangeLeft = datesRangeRight - that.periodLengthSeconds(resolution, 10);
2025
+
2026
+ that._requestsPending++;
2027
+
2028
+ (function(_subscriptionRecord) { // eslint-disable-line
2029
+
2030
+ that._datafeed.getBars(_subscriptionRecord.symbolInfo, resolution, datesRangeLeft, datesRangeRight,
2031
+ function(bars) {
2032
+ that._requestsPending--;
2033
+ // console.log(that._requestsPending)
2034
+ // console.log(bars)
2035
+ // means the subscription was cancelled while waiting for data
2036
+ if (!that._subscribers.hasOwnProperty(listenerGUID)) {
2037
+ return;
2038
+ }
2039
+
2040
+ if (bars.length === 0) {
2041
+ return;
2042
+ }
2043
+
2044
+ var lastBar = bars[bars.length - 1];
2045
+ if (!isNaN(_subscriptionRecord.lastBarTime) && lastBar.time < _subscriptionRecord.lastBarTime) {
2046
+ return;
2047
+ }
2048
+
2049
+ var subscribers = _subscriptionRecord.listeners;
2050
+
2051
+ // BEWARE: this one isn't working when first update comes and this update makes a new bar. In this case
2052
+ // _subscriptionRecord.lastBarTime = NaN
2053
+ var isNewBar = !isNaN(_subscriptionRecord.lastBarTime) && lastBar.time > _subscriptionRecord.lastBarTime;
2054
+
2055
+ // Pulse updating may miss some trades data (ie, if pulse period = 10 secods and new bar is started 5 seconds later after the last update, the
2056
+ // old bar's last 5 seconds trades will be lost). Thus, at fist we should broadcast old bar updates when it's ready.
2057
+ if (isNewBar) {
2058
+ if (bars.length < 2) {
2059
+ throw new Error('Not enough bars in history for proper pulse update. Need at least 2.');
2060
+ }
2061
+
2062
+ var previousBar = bars[bars.length - 2];
2063
+ for (var i = 0; i < subscribers.length; ++i) {
2064
+ subscribers[i](previousBar);
2065
+ }
2066
+ }
2067
+
2068
+ _subscriptionRecord.lastBarTime = lastBar.time;
2069
+
2070
+ for (var i = 0; i < subscribers.length; ++i) {
2071
+ subscribers[i](lastBar);
2072
+ }
2073
+ },
2074
+
2075
+ // on error
2076
+ function() {
2077
+ console.log('error')
2078
+ that._requestsPending--;
2079
+ });
2080
+ })(subscriptionRecord);
2081
+ }
2082
+ };
2083
+ // console.log(typeof updateFrequency != 'undefined' && updateFrequency > 0)
2084
+ if (typeof updateFrequency != 'undefined' && updateFrequency > 0) {
2085
+ setInterval(update, updateFrequency);
2086
+ }
2087
+ };
2088
+
2089
+ Datafeed.DataPulseUpdater.prototype.periodLengthSeconds = function(resolution, requiredPeriodsCount) {
2090
+ var daysCount = 0;
2091
+
2092
+ if (resolution === 'D') {
2093
+ daysCount = requiredPeriodsCount;
2094
+ } else if (resolution === 'M') {
2095
+ daysCount = 31 * requiredPeriodsCount;
2096
+ } else if (resolution === 'W') {
2097
+ daysCount = 7 * requiredPeriodsCount;
2098
+ } else {
2099
+ daysCount = requiredPeriodsCount * resolution / (24 * 60);
2100
+ }
2101
+
2102
+ return daysCount * 24 * 60 * 60;
2103
+ };
2104
+
2105
+ Datafeed.DataPulseUpdater.prototype.subscribeDataListener = function(symbolInfo, resolution, newDataCallback,
2106
+ listenerGUID) {
2107
+ this._datafeed._logMessage('Subscribing ' + listenerGUID);
2108
+
2109
+ if (!this._subscribers.hasOwnProperty(listenerGUID)) {
2110
+ this._subscribers[listenerGUID] = {
2111
+ symbolInfo: symbolInfo,
2112
+ resolution: resolution,
2113
+ lastBarTime: NaN,
2114
+ listeners: []
2115
+ };
2116
+ }
2117
+
2118
+ this._subscribers[listenerGUID].listeners.push(newDataCallback);
2119
+ };
2120
+
2121
+ Datafeed.DataPulseUpdater.prototype.unsubscribeDataListener = function(listenerGUID) {
2122
+ this._datafeed._logMessage('Unsubscribing ' + listenerGUID);
2123
+ delete this._subscribers[listenerGUID];
2124
+ };
2125
+
2126
+ Datafeed.Container = function(updateFrequency) {
2127
+ this._configuration = {
2128
+ supports_search: false,
2129
+ supports_group_request: false,
2130
+ supported_resolutions: ['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', '1D', '3D', '1W',
2131
+ '1M'
2132
+ ],
2133
+ supports_marks: true,
2134
+ supports_timescale_marks: true,
2135
+ exchanges: ['gh']
2136
+ };
2137
+ // this._barsPulseUpdater = new Datafeed.DataPulseUpdater(this, updateFrequency || 10 * 1000);
2138
+ this._barsPulseUpdater = new Datafeed.DataPulseUpdater(this, updateFrequency || 1 * 1000);
2139
+ // this._quotesPulseUpdater = new Datafeed.QuotesPulseUpdater(this);
2140
+
2141
+ this._enableLogging = true;
2142
+ this._callbacks = {};
2143
+
2144
+ this._initializationFinished = true;
2145
+ this._fireEvent('initialized');
2146
+ this._fireEvent('configuration_ready');
2147
+ };
2148
+
2149
+ Datafeed.Container.prototype._fireEvent = function(event, argument) {
2150
+ if (this._callbacks.hasOwnProperty(event)) {
2151
+ var callbacksChain = this._callbacks[event];
2152
+ for (var i = 0; i < callbacksChain.length; ++i) {
2153
+ callbacksChain[i](argument);
2154
+ }
2155
+
2156
+ this._callbacks[event] = [];
2157
+ }
2158
+ };
2159
+
2160
+ Datafeed.Container.prototype._logMessage = function(message) {
2161
+ if (this._enableLogging) {
2162
+ var now = new Date();
2163
+ }
2164
+ };
2165
+
2166
+ Datafeed.Container.prototype.on = function(event, callback) {
2167
+ if (!this._callbacks.hasOwnProperty(event)) {
2168
+ this._callbacks[event] = [];
2169
+ }
2170
+
2171
+ this._callbacks[event].push(callback);
2172
+ return this;
2173
+ };
2174
+
2175
+ Datafeed.Container.prototype.onReady = function(callback) {
2176
+ let that = this;
2177
+ if (this._configuration) {
2178
+ setTimeout(function() {
2179
+ callback(that._configuration);
2180
+ }, 0);
2181
+ } else {
2182
+ this.on('configuration_ready', function() {
2183
+ callback(that._configuration);
2184
+ });
2185
+ }
2186
+ };
2187
+
2188
+ Datafeed.Container.prototype.resolveSymbol = function(symbolName, onSymbolResolvedCallback,
2189
+ onResolveErrorCallback) {
2190
+ this._logMessage("GOWNO :: resolve symbol " + symbolName);
2191
+ Promise.resolve().then(() => {
2192
+
2193
+
2194
+ // this._logMessage("GOWNO :: onResultReady inject "+'AAPL');
2195
+ onSymbolResolvedCallback({
2196
+ "name": this_vue.symbol,
2197
+ "timezone": "Asia/Shanghai",
2198
+ "pricescale": this_vue.priceScale,
2199
+ "minmov": 1, //minmov(最小波动), pricescale(价格精度), minmove2, fractional(分数)
2200
+ "minmov2": 0, //这是一个神奇的数字来格式化复杂情况下的价格。
2201
+ "ticker": this_vue.symbol,
2202
+ "description": "",
2203
+ "type": "bitcoin",
2204
+ "volume_precision": 8,
2205
+ // "exchange-traded": "sdt",
2206
+ // "exchange-listed": "sdt",
2207
+ //现在,这两个字段都为某个交易所的略称。将被显示在图表的图例中,以表示此商品。目前此字段不用于其他目的。
2208
+ "has_intraday": true,
2209
+ "has_weekly_and_monthly": true,
2210
+ "has_no_volume": false, //布尔表示商品是否拥有成交量数据。
2211
+ 'session': '24x7',
2212
+ 'supported_resolutions': ['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', '1D', '3D',
2213
+ '1W',
2214
+ '1M'
2215
+ ]
2216
+
2217
+ });
2218
+ })
2219
+ };
2220
+
2221
+
2222
+ //初始化数据
2223
+ Datafeed.Container.prototype.getBars = function(symbolInfo, resolution, rangeStartDate, rangeEndDate,
2224
+ onHistoryCallback, onErrorCallback) {
2225
+ // if (rangeStartDate > 0 && (rangeStartDate + '').length > 10) {
2226
+ // throw new Error(['Got a JS time instead of Unix one.', rangeStartDate, rangeEndDate]);
2227
+ // }
2228
+
2229
+ if (resolution.indexOf('D') == -1 && resolution.indexOf('W') == -1 && resolution.indexOf('M') == -1) {
2230
+ resolution = resolution + 'min'
2231
+ } else if (resolution.indexOf('W') != -1 || resolution.indexOf('M') != -1) {
2232
+ resolution = resolution
2233
+ }
2234
+ // console.log(resolution)
2235
+ // console.log(123)
2236
+ // console.log(rangeStartDate);
2237
+ // console.log(rangeEndDate)
2238
+ // console.log(resolution);
2239
+ // console.log(JSON.stringify(symbolInfo) )
2240
+ $.ajax({
2241
+ url: this_vue.url + '/api/currency/newGetList?' + 'from=' + rangeStartDate + '&to=' + rangeEndDate +
2242
+ '&symbol=' + symbolInfo.name.replace('/', "").toLowerCase() + '&period=' + resolution,
2243
+ type: 'get',
2244
+ success: function(res) {
2245
+ // console.log(res)
2246
+ // console.log(JSON.stringify(res))
2247
+ if (res.code == 1 && res.data && res.data.length > 0) {
2248
+ res.data.forEach((item, i) => {
2249
+ item.open = Number(item.open)
2250
+ item.close = Number(item.close)
2251
+ item.high = Number(item.high)
2252
+ item.low = Number(item.low)
2253
+ // if(len==i){
2254
+ // console.log(i)
2255
+ // this_vue.newprice = item.close - 0
2256
+ // this_vue.maxprice = item.high - 0
2257
+ // this_vue.minprice = item.low - 0
2258
+ // this_vue.dayvom = Number(item.vol).toFixed(2);
2259
+ // this_vue.updown = ((item.close - item.open) / (item.open - 0) * 100).toFixed(4).toString();
2260
+ // }
2261
+ })
2262
+ onHistoryCallback(res.data, {
2263
+ noData: false
2264
+ })
2265
+ onHistoryCallback([], {
2266
+ noData: true
2267
+ })
2268
+
2269
+ }
2270
+ if (!res.data || res.code == -1) {
2271
+ onHistoryCallback([], {
2272
+ noData: true
2273
+ })
2274
+ }
2275
+ if (res.data && res.data.length == 0) {
2276
+ onHistoryCallback([], {
2277
+ noData: true
2278
+ })
2279
+ }
2280
+
2281
+ }
2282
+ })
2283
+
2284
+ };
2285
+ //实时数据
2286
+ Datafeed.Container.prototype.subscribeBars = function(symbolInfo, resolution, onRealtimeCallback,
2287
+ listenerGUID,
2288
+ onResetCacheNeededCallback) {
2289
+ this_vue.connect(onRealtimeCallback)
2290
+
2291
+ this._barsPulseUpdater.subscribeDataListener(symbolInfo, resolution, onRealtimeCallback, listenerGUID, onResetCacheNeededCallback);
2292
+ };
2293
+
2294
+ Datafeed.Container.prototype.unsubscribeBars = function(listenerGUID) {
2295
+
2296
+ this._barsPulseUpdater.unsubscribeDataListener(listenerGUID);
2297
+
2298
+ };
2299
+
2300
+ return new Datafeed.Container;
2301
+ },
2302
+
2303
+ updateWidget(item) {
2304
+ this.symbolInfo = {
2305
+ name: item,
2306
+ ticker: item,
2307
+ description: "",
2308
+ session: "24x7",
2309
+ supported_resolutions: ['1', '5', '30', '60', '240', '1D', '3D', '1W', '1M'],
2310
+ has_intraday: true,
2311
+ has_daily: true,
2312
+ has_weekly_and_monthly: true,
2313
+ timezone: "UTC",
2314
+ }
2315
+ this.removeWidget();
2316
+ this.createWidget();
2317
+ },
2318
+ removeWidget() {
2319
+ if (this.widget) {
2320
+ this.widget.remove();
2321
+ this.widget = null;
2322
+ }
2323
+ },
2324
+ overrides() {
2325
+ let style = {
2326
+ // up: this.greenColor,
2327
+ // down: this.redColor,
2328
+ bg: "#131f30",
2329
+ grid: "#1E2740",
2330
+ cross: "#1E2740",
2331
+ border: "#4e5b85",
2332
+ text: "#61688A",
2333
+ areatop: "rgba(122, 152, 247, .1)",
2334
+ areadown: "rgba(122, 152, 247, .02)"
2335
+ };
2336
+ return {
2337
+ 'volumePaneSize': "small", //large, medium, small, tiny
2338
+ 'paneProperties.topMargin': '20',
2339
+ "scalesProperties.lineColor": style.bg,
2340
+ "scalesProperties.textColor": style.text,
2341
+ "paneProperties.background": style.bg, //改变背景色的重要代码
2342
+ "paneProperties.vertGridProperties.color": style.grid,
2343
+ "paneProperties.horzGridProperties.color": style.grid,
2344
+ "paneProperties.crossHairProperties.color": style.cross,
2345
+ "paneProperties.legendProperties.showLegend": true,
2346
+ "paneProperties.legendProperties.showStudyArguments": true,
2347
+ "paneProperties.legendProperties.showStudyTitles": true,
2348
+ "paneProperties.legendProperties.showStudyValues": true,
2349
+ "paneProperties.legendProperties.showSeriesTitle": true,
2350
+ "paneProperties.legendProperties.showSeriesOHLC": true,
2351
+ "mainSeriesProperties.candleStyle.upColor": style.up,
2352
+ "mainSeriesProperties.candleStyle.downColor": style.down,
2353
+ "mainSeriesProperties.candleStyle.drawWick": true,
2354
+ "mainSeriesProperties.candleStyle.drawBorder": true,
2355
+ "mainSeriesProperties.candleStyle.borderColor": style.border,
2356
+ "mainSeriesProperties.candleStyle.borderUpColor": style.up,
2357
+ "mainSeriesProperties.candleStyle.borderDownColor": style.down,
2358
+ "mainSeriesProperties.candleStyle.wickUpColor": style.up,
2359
+ "mainSeriesProperties.candleStyle.wickDownColor": style.down,
2360
+ "mainSeriesProperties.candleStyle.barColorsOnPrevClose": false,
2361
+ "mainSeriesProperties.hollowCandleStyle.upColor": style.up,
2362
+ "mainSeriesProperties.hollowCandleStyle.downColor": style.down,
2363
+
2364
+ "mainSeriesProperties.hollowCandleStyle.drawWick": true,
2365
+ "mainSeriesProperties.hollowCandleStyle.drawBorder": true,
2366
+ "mainSeriesProperties.hollowCandleStyle.borderColor": style.border,
2367
+ "mainSeriesProperties.hollowCandleStyle.borderUpColor": style.up,
2368
+ "mainSeriesProperties.hollowCandleStyle.borderDownColor": style.down,
2369
+ "mainSeriesProperties.hollowCandleStyle.wickColor": style.line,
2370
+ "mainSeriesProperties.haStyle.upColor": style.up,
2371
+ "mainSeriesProperties.haStyle.downColor": style.down,
2372
+ "mainSeriesProperties.haStyle.drawWick": true,
2373
+ "mainSeriesProperties.haStyle.drawBorder": true,
2374
+ "mainSeriesProperties.haStyle.borderColor": style.border,
2375
+ "mainSeriesProperties.haStyle.borderUpColor": style.up,
2376
+ "mainSeriesProperties.haStyle.borderDownColor": style.down,
2377
+ "mainSeriesProperties.haStyle.wickColor": style.border,
2378
+ "mainSeriesProperties.haStyle.barColorsOnPrevClose": false,
2379
+ "mainSeriesProperties.barStyle.upColor": style.up,
2380
+ "mainSeriesProperties.barStyle.downColor": style.down,
2381
+ "mainSeriesProperties.barStyle.barColorsOnPrevClose": false,
2382
+ "mainSeriesProperties.barStyle.dontDrawOpen": false,
2383
+ "mainSeriesProperties.lineStyle.color": style.border,
2384
+ "mainSeriesProperties.lineStyle.linewidth": 1,
2385
+ "mainSeriesProperties.lineStyle.priceSource": "close",
2386
+ "mainSeriesProperties.areaStyle.color1": style.areatop,
2387
+ "mainSeriesProperties.areaStyle.color2": style.areadown,
2388
+ "mainSeriesProperties.areaStyle.linecolor": style.borders,
2389
+ "mainSeriesProperties.areaStyle.linewidth": 1,
2390
+ "mainSeriesProperties.areaStyle.priceSource": "close"
2391
+ }
2392
+ },
2393
+ toTrade(){
2394
+ uni.navigateTo({
2395
+ url: '/pages/trade/entrust'
2396
+ })
2397
+ }
2398
+
2399
+ },
2400
+ })
2401
+ </script>
2402
+ </body>
2403
+ <style>
2404
+ body{
2405
+ text-transform: capitalize;
2406
+ }
2407
+ button{
2408
+ text-transform: capitalize;
2409
+ }
2410
+ .time-num #top1 li{
2411
+ height: 60px;
2412
+ line-height: 60px;
2413
+ font-size: 18px;
2414
+ width: 33%;
2415
+ }
2416
+ .ft12{
2417
+ font-size: 16px;
2418
+ }
2419
+ .time-num input{
2420
+ height: 60px;
2421
+ line-height: 60px;
2422
+ font-size: 18px;
2423
+ }
2424
+ .currency-list p{
2425
+ height: 60px;
2426
+ line-height: 60px;
2427
+ font-size: 18px;
2428
+ }
2429
+ .dn{
2430
+ display: none;
2431
+ }
2432
+ .all{
2433
+ position:absolute;
2434
+ right:20px;
2435
+ }
2436
+ #bottom .second-buy{
2437
+ width: 165px;
2438
+ font-size: 16px;
2439
+ }
2440
+ </style>
2441
+ </html>
hybrid/html/tradeview/CONTRIBUTING.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## General
2
+ * Please use English. We want to share experience between our customers to increase effectiveness of this bug tracker.
3
+
4
+ ## Reporting a bug
5
+ * Please help us spend our time effectively and always update your Library's build to the latest `unstable` version to check if the issue still happens. You can also find the Charting Library built from `unstable` at https://demo_chart.tradingview.com
6
+ * Report a version of the library. You can check it with `TradingView.version()` from the browser console
7
+ * Report a device/browser where the issue can be replicated
8
+ * Provide step-by-step way to reproduce the issue
9
+ * Provide a code example
10
+ * Give a link to your Charting Library where we can reproduce it
11
+
12
+ ## Asking a question
13
+ * We spent a lot of time creating those [docs](https://github.com/tradingview/charting_library/wiki) for you to make your life easier. Please give it a try. If you are a newcomer please make sure that you've read the [Best Practices](https://github.com/tradingview/charting_library/wiki/Best-practices) and [Frequently Asked Questions](https://github.com/tradingview/charting_library/wiki/Frequently-Asked-Questions).
14
+ * Describe what do you want to achieve
15
+ * Provide screenshots if possible
16
+
17
+ ## Requesting a new feature
18
+ * While we would love to be able to implement everything, we simply don’t have the resources. At this time, please be aware we have long term plans and quick implementation of new feature requests should not be expected. However, we review everything and take your many great suggestions into account.
19
+ * Thank you for playing an active part in the TradingView community!
hybrid/html/tradeview/README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TradingView Charting Library
2
+
3
+
4
+ This repository contains Charting Library package. If you use Git in your project, please feel free to use this repo as a submodule to your one.
5
+
6
+ `master` branch contains current stable version.
7
+
8
+ `unstable` branch contains the most recent features and fixes, but it can be less stable (actually, it is beta which is already thourghly tested).
9
+
10
+ ### Documentation
11
+ See our docs @ this repository's [wiki](https://github.com/tradingview/charting_library/wiki). Please read it (at least, [Overview](https://github.com/tradingview/charting_library/wiki) and [Best Practices](https://github.com/tradingview/charting_library/wiki/Best-practices)) before running the Library.
12
+
13
+ ### Issues Tracking
14
+ We use GitHub [Issues tracker](https://github.com/tradingview/charting_library/issues) for our project. Feel free to create bug reports and features requests. Please try reading the doc before asking questions because we will have more time for development then.
15
+
16
+ ### Stay Tuned
17
+ [Follow us](https://twitter.com/intent/follow?screen_name=tv_charts) on Twitter to receive the updates.
hybrid/html/tradeview/charting_library/charting_library.min.d.ts ADDED
@@ -0,0 +1,1230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /// <reference types="jquery" />
2
+
3
+ export declare type LanguageCode = 'ar' | 'zh' | 'cs' | 'da_DK' | 'nl_NL' | 'en' | 'et_EE' | 'fr' | 'de' | 'el' | 'he_IL' | 'hu_HU' | 'id_ID' | 'it' | 'ja' | 'ko' | 'fa' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk_SK' | 'es' | 'sv' | 'th' | 'tr' | 'vi';
4
+ export interface ISubscription<TFunc extends Function> {
5
+ subscribe(obj: object | null, member: TFunc, singleshot?: boolean): void;
6
+ unsubscribe(obj: object | null, member: TFunc): void;
7
+ unsubscribeAll(obj: object | null): void;
8
+ }
9
+ export interface IDelegate<TFunc extends Function> extends ISubscription<TFunc> {
10
+ fire: TFunc;
11
+ }
12
+ export interface IDestroyable {
13
+ destroy(): void;
14
+ }
15
+ export interface FormatterParseResult {
16
+ res: boolean;
17
+ }
18
+ export interface ErrorFormatterParseResult extends FormatterParseResult {
19
+ error?: string;
20
+ res: false;
21
+ }
22
+ export interface SuccessFormatterParseResult extends FormatterParseResult {
23
+ res: true;
24
+ suggest?: string;
25
+ }
26
+ export interface IFormatter {
27
+ format(value: any): string;
28
+ parse?(value: string): ErrorFormatterParseResult | SuccessFormatterParseResult;
29
+ }
30
+ /**
31
+ * This is the generic type useful for declaring a nominal type,
32
+ * which does not structurally matches with the base type and
33
+ * the other types declared over the same base type
34
+ *
35
+ * Usage:
36
+ * @example
37
+ * type Index = Nominal<number, 'Index'>;
38
+ * // let i: Index = 42; // this fails to compile
39
+ * let i: Index = 42 as Index; // OK
40
+ * @example
41
+ * type TagName = Nominal<string, 'TagName'>;
42
+ */
43
+ export declare type Nominal<T, Name extends string> = T & {
44
+ [Symbol.species]: Name;
45
+ };
46
+ export declare type StudyInputValueType = string | number | boolean;
47
+ export declare type StudyOverrideValueType = string | number | boolean;
48
+ export interface StudyOverrides {
49
+ [key: string]: StudyOverrideValueType;
50
+ }
51
+ export interface WatchedValueSubscribeOptions {
52
+ once?: boolean;
53
+ callWithLast?: boolean;
54
+ }
55
+ export interface IWatchedValueReadonly<T> {
56
+ value(): T;
57
+ subscribe(callback: (value: T) => void, options?: WatchedValueSubscribeOptions): void;
58
+ unsubscribe(callback?: ((value: T) => void) | null): void;
59
+ spawn(): IWatchedValueReadonlySpawn<T>;
60
+ }
61
+ export interface IWatchedValueReadonlySpawn<T> extends IWatchedValueReadonly<T>, IDestroyable {
62
+ }
63
+ export declare type WatchedValueCallback<T> = (value: T) => void;
64
+ export interface IWatchedValue<T> extends IWatchedValueReadonly<T> {
65
+ value(): T;
66
+ setValue(value: T, forceUpdate?: boolean): void;
67
+ subscribe(callback: WatchedValueCallback<T>, options?: WatchedValueSubscribeOptions): void;
68
+ unsubscribe(callback?: WatchedValueCallback<T> | null): void;
69
+ readonly(): IWatchedValueReadonly<T>;
70
+ spawn(): IWatchedValueSpawn<T>;
71
+ }
72
+ export interface IWatchedValueSpawn<T> extends IWatchedValueReadonlySpawn<T>, IWatchedValue<T> {
73
+ spawn(): IWatchedValueSpawn<T>;
74
+ }
75
+ export declare const enum ConnectionStatus {
76
+ Connected = 1,
77
+ Connecting = 2,
78
+ Disconnected = 3,
79
+ Error = 4,
80
+ }
81
+ export declare const enum OrderType {
82
+ Limit = 1,
83
+ Market = 2,
84
+ Stop = 3,
85
+ StopLimit = 4,
86
+ }
87
+ export declare const enum Side {
88
+ Buy = 1,
89
+ Sell = -1,
90
+ }
91
+ export declare const enum OrderStatus {
92
+ Canceled = 1,
93
+ Filled = 2,
94
+ Inactive = 3,
95
+ Placing = 4,
96
+ Rejected = 5,
97
+ Working = 6,
98
+ }
99
+ export declare const enum ParentType {
100
+ Order = 1,
101
+ Position = 2,
102
+ Trade = 3,
103
+ }
104
+ export declare const enum OrderTicketFocusControl {
105
+ StopLoss = 1,
106
+ StopPrice = 2,
107
+ TakeProfit = 3,
108
+ }
109
+ export declare const enum NotificationType {
110
+ Error = 0,
111
+ Success = 1,
112
+ }
113
+ export interface TableRow {
114
+ priceFormatter?: IFormatter;
115
+ [name: string]: any;
116
+ }
117
+ export interface TableFormatterInputs {
118
+ value: number | string | Side | OrderType | OrderStatus;
119
+ prevValue?: number | undefined;
120
+ row: TableRow;
121
+ $container: JQuery;
122
+ priceFormatter?: IFormatter;
123
+ }
124
+ export declare type TableElementFormatFunction = (inputs: TableFormatterInputs) => string | JQuery;
125
+ export interface TableElementFormatter {
126
+ name: string;
127
+ format: TableElementFormatFunction;
128
+ }
129
+ export declare type StandardFormatterName = 'date' | 'default' | 'fixed' | 'formatPrice' | 'formatPriceForexSup' | 'integerSeparated' | 'localDate' | 'percentage' | 'pips' | 'profit' | 'side' | 'status' | 'symbol' | 'type';
130
+ export interface DOMLevel {
131
+ price: number;
132
+ volume: number;
133
+ }
134
+ export interface DOMData {
135
+ snapshot: boolean;
136
+ asks: DOMLevel[];
137
+ bids: DOMLevel[];
138
+ }
139
+ export interface QuantityMetainfo {
140
+ min: number;
141
+ max: number;
142
+ step: number;
143
+ }
144
+ export interface InstrumentInfo {
145
+ qty: QuantityMetainfo;
146
+ pipValue: number;
147
+ pipSize: number;
148
+ minTick: number;
149
+ description: string;
150
+ domVolumePrecision?: number;
151
+ }
152
+ export interface CustomFields {
153
+ [key: string]: any;
154
+ }
155
+ export interface PreOrder {
156
+ symbol: string;
157
+ brokerSymbol?: string;
158
+ type?: OrderType;
159
+ side?: Side;
160
+ qty: number;
161
+ status?: OrderStatus;
162
+ stopPrice?: number;
163
+ limitPrice?: number;
164
+ stopLoss?: number;
165
+ takeProfit?: number;
166
+ duration?: OrderDuration;
167
+ }
168
+ export interface PlacedOrder extends PreOrder, CustomFields {
169
+ id: string;
170
+ filledQty?: number;
171
+ avgPrice?: number;
172
+ updateTime?: number;
173
+ takeProfit?: number;
174
+ stopLoss?: number;
175
+ type: OrderType;
176
+ side: Side;
177
+ status: OrderStatus;
178
+ }
179
+ export interface OrderWithParent extends PlacedOrder {
180
+ parentId: string;
181
+ parentType: ParentType;
182
+ }
183
+ export declare type Order = OrderWithParent | PlacedOrder;
184
+ export interface Position {
185
+ id: string;
186
+ symbol: string;
187
+ brokerSymbol?: string;
188
+ qty: number;
189
+ side: Side;
190
+ avgPrice: number;
191
+ [key: string]: any;
192
+ }
193
+ export interface Trade extends CustomFields {
194
+ id: string;
195
+ date: number;
196
+ symbol: string;
197
+ brokerSymbol?: string;
198
+ qty: number;
199
+ side: Side;
200
+ price: number;
201
+ }
202
+ export interface Execution extends CustomFields {
203
+ symbol: string;
204
+ brokerSymbol?: string;
205
+ price: number;
206
+ qty: number;
207
+ side: Side;
208
+ time: number;
209
+ }
210
+ export interface AccountInfo {
211
+ id: string;
212
+ name: string;
213
+ currency?: string;
214
+ }
215
+ export interface AccountManagerColumn {
216
+ id?: string;
217
+ label: string;
218
+ className?: string;
219
+ formatter?: StandardFormatterName | 'orderSettings' | 'posSettings' | string;
220
+ property?: string;
221
+ sortProp?: string;
222
+ modificationProperty?: string;
223
+ notSortable?: boolean;
224
+ help?: string;
225
+ highlightDiff?: boolean;
226
+ fixedWidth?: boolean;
227
+ notHideable?: boolean;
228
+ hideByDefault?: boolean;
229
+ }
230
+ export interface SortingParameters {
231
+ columnId: string;
232
+ asc?: boolean;
233
+ }
234
+ export interface AccountManagerTable {
235
+ id: string;
236
+ title?: string;
237
+ columns: AccountManagerColumn[];
238
+ initialSorting?: SortingParameters;
239
+ changeDelegate: IDelegate<(data: object) => void>;
240
+ getData(): Promise<object[]>;
241
+ }
242
+ export interface AccountManagerPage {
243
+ id: string;
244
+ title: string;
245
+ tables: AccountManagerTable[];
246
+ }
247
+ export interface AccountManagerInfo {
248
+ accountTitle: string;
249
+ accountsList?: AccountInfo[];
250
+ account?: IWatchedValue<AccountInfo>;
251
+ summary: AccountManagerSummaryField[];
252
+ customFormatters?: TableElementFormatter[];
253
+ orderColumns: AccountManagerColumn[];
254
+ historyColumns?: AccountManagerColumn[];
255
+ positionColumns: AccountManagerColumn[];
256
+ tradeColumns?: AccountManagerColumn[];
257
+ pages: AccountManagerPage[];
258
+ possibleOrderStatuses?: OrderStatus[];
259
+ contextMenuActions?(contextMenuEvent: JQueryEventObject, activePageActions: ActionMetaInfo[]): Promise<ActionMetaInfo[]>;
260
+ }
261
+ export interface TradingQuotes {
262
+ trade?: number;
263
+ size?: number;
264
+ bid?: number;
265
+ bid_size?: number;
266
+ ask?: number;
267
+ ask_size?: number;
268
+ spread?: number;
269
+ }
270
+ export interface ActionDescription {
271
+ text?: '-' | string;
272
+ separator?: boolean;
273
+ shortcut?: string;
274
+ tooltip?: string;
275
+ checked?: boolean;
276
+ checkable?: boolean;
277
+ enabled?: boolean;
278
+ externalLink?: boolean;
279
+ }
280
+ export interface MenuSeparator extends ActionDescription {
281
+ separator: boolean;
282
+ }
283
+ export interface ActionDescriptionWithCallback extends ActionDescription {
284
+ action: (a: ActionDescription) => void;
285
+ }
286
+ export declare type ActionMetaInfo = ActionDescriptionWithCallback | MenuSeparator;
287
+ export interface AccountManagerSummaryField {
288
+ text: string;
289
+ wValue: IWatchedValueReadonly<number>;
290
+ formatter?: string;
291
+ }
292
+ export interface OrderDurationMetaInfo {
293
+ hasDatePicker?: boolean;
294
+ hasTimePicker?: boolean;
295
+ name: string;
296
+ value: string;
297
+ }
298
+ export interface OrderDuration {
299
+ type: string;
300
+ datetime?: number;
301
+ }
302
+ export interface BrokerConfigFlags {
303
+ showQuantityInsteadOfAmount?: boolean;
304
+ supportOrderBrackets?: boolean;
305
+ supportPositionBrackets?: boolean;
306
+ supportTradeBrackets?: boolean;
307
+ supportTrades?: boolean;
308
+ supportClosePosition?: boolean;
309
+ supportCloseTrade?: boolean;
310
+ supportEditAmount?: boolean;
311
+ supportLevel2Data?: boolean;
312
+ supportMultiposition?: boolean;
313
+ supportPLUpdate?: boolean;
314
+ supportReducePosition?: boolean;
315
+ supportReversePosition?: boolean;
316
+ supportStopLimitOrders?: boolean;
317
+ supportDemoLiveSwitcher?: boolean;
318
+ supportCustomPlaceOrderTradableCheck?: boolean;
319
+ supportMarketBrackets?: boolean;
320
+ supportSymbolSearch?: boolean;
321
+ supportModifyDuration?: boolean;
322
+ requiresFIFOCloseTrades?: boolean;
323
+ supportBottomWidget?: boolean;
324
+ /**
325
+ * @deprecated
326
+ */
327
+ supportBrackets?: boolean;
328
+ }
329
+ export interface SingleBrokerMetaInfo {
330
+ configFlags: BrokerConfigFlags;
331
+ customNotificationFields?: string[];
332
+ durations?: OrderDurationMetaInfo[];
333
+ }
334
+ export interface Brackets {
335
+ stopLoss?: number;
336
+ takeProfit?: number;
337
+ }
338
+ export interface DefaultContextMenuActionsParams {
339
+ }
340
+ export interface DefaultDropdownActionsParams {
341
+ showFloatingToolbar?: boolean;
342
+ showDOM?: boolean;
343
+ tradingProperties?: boolean;
344
+ selectAnotherBroker?: boolean;
345
+ disconnect?: boolean;
346
+ showHowToUse?: boolean;
347
+ }
348
+ export interface ITradeContext {
349
+ symbol: string;
350
+ displaySymbol: string;
351
+ value: number | null;
352
+ formattedValue: string;
353
+ last: number;
354
+ }
355
+ export interface QuotesBase {
356
+ change: number;
357
+ change_percent: number;
358
+ last_price: number;
359
+ fractional: number;
360
+ minmov: number;
361
+ minmove2: number;
362
+ pricescale: number;
363
+ description: string;
364
+ }
365
+ export interface IBrokerConnectionAdapterFactory {
366
+ createDelegate<T extends Function>(): IDelegate<T>;
367
+ createWatchedValue<T>(value?: T): IWatchedValue<T>;
368
+ }
369
+ export interface IBrokerConnectionAdapterHost {
370
+ factory: IBrokerConnectionAdapterFactory;
371
+ connectionStatusUpdate(status: ConnectionStatus, message?: string): void;
372
+ defaultFormatter(symbol: string): Promise<IFormatter>;
373
+ numericFormatter(decimalPlaces: number): Promise<IFormatter>;
374
+ defaultContextMenuActions(context: ITradeContext, params?: DefaultContextMenuActionsParams): Promise<ActionMetaInfo[]>;
375
+ defaultDropdownMenuActions(options?: Partial<DefaultDropdownActionsParams>): ActionMetaInfo[];
376
+ floatingTradingPanelVisibility(): IWatchedValue<boolean>;
377
+ domVisibility(): IWatchedValue<boolean>;
378
+ patchConfig(config: Partial<BrokerConfigFlags>): void;
379
+ setDurations(durations: OrderDurationMetaInfo[]): void;
380
+ orderUpdate(order: Order, isHistoryUpdate?: boolean): void;
381
+ orderPartialUpdate(id: string, orderChanges: Partial<Order>): void;
382
+ positionUpdate(position: Position, isHistoryUpdate?: boolean): void;
383
+ positionPartialUpdate(id: string, positionChanges: Partial<Position>): void;
384
+ tradeUpdate(trade: Trade, isHistoryUpdate?: boolean): void;
385
+ tradePartialUpdate(id: string, tradeChanges: Partial<Trade>): void;
386
+ executionUpdate(execution: Execution, isHistoryUpdate?: boolean): void;
387
+ fullUpdate(): void;
388
+ realtimeUpdate(symbol: string, data: TradingQuotes): void;
389
+ plUpdate(positionId: string, pl: number): void;
390
+ tradePLUpdate(tradeId: string, pl: number): void;
391
+ equityUpdate(equity: number): void;
392
+ domeUpdate(symbol: string, equity: DOMData): void;
393
+ showOrderDialog<T extends PreOrder>(order: T, handler: (order: T) => Promise<void>, focus?: OrderTicketFocusControl): Promise<void>;
394
+ showCancelOrderDialog(orderId: string, handler: () => void): Promise<void>;
395
+ showCancelMultipleOrdersDialog(symbol: string, side: Side | undefined, qty: number, handler: () => void): Promise<void>;
396
+ showCancelBracketsDialog(orderId: string, handler: () => void): Promise<void>;
397
+ showCancelMultipleBracketsDialog(orderId: string, handler: () => void): Promise<void>;
398
+ showClosePositionDialog(positionId: string, handler: () => void): Promise<void>;
399
+ showReversePositionDialog(position: Position, handler: () => void): Promise<void>;
400
+ showPositionBracketsDialog(position: Position | Trade, brackets: Brackets, focus: OrderTicketFocusControl | null, handler: (brackets: Brackets) => void): Promise<void>;
401
+ showNotification(title: string, text: string, notificationType?: NotificationType): void;
402
+ setButtonDropdownActions(descriptions: ActionMetaInfo[]): void;
403
+ activateBottomWidget(): Promise<void>;
404
+ showTradingProperties(): void;
405
+ symbolSnapshot(symbol: string): Promise<QuotesBase>;
406
+ }
407
+ export interface IBrokerCommon {
408
+ chartContextMenuActions(context: ITradeContext, options?: DefaultContextMenuActionsParams): Promise<ActionMetaInfo[]>;
409
+ isTradable(symbol: string): Promise<boolean>;
410
+ connectionStatus(): ConnectionStatus;
411
+ placeOrder(order: PreOrder, silently?: boolean): Promise<void>;
412
+ modifyOrder(order: Order, silently?: boolean, focus?: OrderTicketFocusControl): Promise<void>;
413
+ orders(): Promise<Order[]>;
414
+ positions(): Promise<Position[]>;
415
+ trades?(): Promise<Trade[]>;
416
+ executions(symbol: string): Promise<Execution[]>;
417
+ symbolInfo(symbol: string): Promise<InstrumentInfo>;
418
+ accountInfo(): Promise<AccountInfo>;
419
+ editPositionBrackets?(positionId: string, focus?: OrderTicketFocusControl, brackets?: Brackets, silently?: boolean): Promise<void>;
420
+ editTradeBrackets?(tradeId: string, focus?: OrderTicketFocusControl, brackets?: Brackets, silently?: boolean): Promise<void>;
421
+ accountManagerInfo(): AccountManagerInfo;
422
+ formatter?(symbol: string): Promise<IFormatter>;
423
+ spreadFormatter?(symbol: string): Promise<IFormatter>;
424
+ }
425
+ export interface IBrokerWithoutRealtime extends IBrokerCommon {
426
+ subscribeDOME?(symbol: string): void;
427
+ unsubscribeDOME?(symbol: string): void;
428
+ cancelOrder(orderId: string, silently: boolean): Promise<void>;
429
+ cancelOrders(symbol: string, side: Side | undefined, ordersIds: string[], silently: boolean): Promise<void>;
430
+ reversePosition?(positionId: string, silently?: boolean): Promise<void>;
431
+ closePosition(positionId: string, silently: boolean): Promise<void>;
432
+ closeTrade?(tradeId: string, silently: boolean): Promise<void>;
433
+ /**
434
+ * @deprecated Brokers should always send PL and equity updates
435
+ */
436
+ subscribePL?(positionId: string): void;
437
+ subscribeEquity?(): void;
438
+ /**
439
+ * @deprecated
440
+ */
441
+ unsubscribePL?(positionId: string): void;
442
+ unsubscribeEquity?(): void;
443
+ }
444
+ export interface IBrokerTerminal extends IBrokerWithoutRealtime {
445
+ subscribeRealtime(symbol: string): void;
446
+ unsubscribeRealtime(symbol: string): void;
447
+ }
448
+ export declare type ResolutionString = string;
449
+ export interface Exchange {
450
+ value: string;
451
+ name: string;
452
+ desc: string;
453
+ }
454
+ export interface DatafeedSymbolType {
455
+ name: string;
456
+ value: string;
457
+ }
458
+ export interface DatafeedConfiguration {
459
+ exchanges?: Exchange[];
460
+ supported_resolutions?: ResolutionString[];
461
+ supports_marks?: boolean;
462
+ supports_time?: boolean;
463
+ supports_timescale_marks?: boolean;
464
+ symbols_types?: DatafeedSymbolType[];
465
+ }
466
+ export declare type OnReadyCallback = (configuration: DatafeedConfiguration) => void;
467
+ export interface IExternalDatafeed {
468
+ onReady(callback: OnReadyCallback): void;
469
+ }
470
+ export interface DatafeedQuoteValues {
471
+ ch?: number;
472
+ chp?: number;
473
+ short_name?: string;
474
+ exchange?: string;
475
+ description?: string;
476
+ lp?: number;
477
+ ask?: number;
478
+ bid?: number;
479
+ spread?: number;
480
+ open_price?: number;
481
+ high_price?: number;
482
+ low_price?: number;
483
+ prev_close_price?: number;
484
+ volume?: number;
485
+ original_name?: string;
486
+ [valueName: string]: string | number | undefined;
487
+ }
488
+ export interface QuoteOkData {
489
+ s: 'ok';
490
+ n: string;
491
+ v: DatafeedQuoteValues;
492
+ }
493
+ export interface QuoteErrorData {
494
+ s: 'error';
495
+ n: string;
496
+ v: object;
497
+ }
498
+ export declare type QuoteData = QuoteOkData | QuoteErrorData;
499
+ export declare type QuotesCallback = (data: QuoteData[]) => void;
500
+ export interface IDatafeedQuotesApi {
501
+ getQuotes(symbols: string[], onDataCallback: QuotesCallback, onErrorCallback: (msg: string) => void): void;
502
+ subscribeQuotes(symbols: string[], fastSymbols: string[], onRealtimeCallback: QuotesCallback, listenerGUID: string): void;
503
+ unsubscribeQuotes(listenerGUID: string): void;
504
+ }
505
+ export declare type CustomTimezones = 'America/New_York' | 'America/Los_Angeles' | 'America/Chicago' | 'America/Phoenix' | 'America/Toronto' | 'America/Vancouver' | 'America/Argentina/Buenos_Aires' | 'America/El_Salvador' | 'America/Sao_Paulo' | 'America/Bogota' | 'America/Caracas' | 'Europe/Moscow' | 'Europe/Athens' | 'Europe/Berlin' | 'Europe/London' | 'Europe/Madrid' | 'Europe/Paris' | 'Europe/Rome' | 'Europe/Warsaw' | 'Europe/Istanbul' | 'Europe/Zurich' | 'Australia/Sydney' | 'Australia/Brisbane' | 'Australia/Adelaide' | 'Australia/ACT' | 'Asia/Almaty' | 'Asia/Ashkhabad' | 'Asia/Tokyo' | 'Asia/Taipei' | 'Asia/Singapore' | 'Asia/Shanghai' | 'Asia/Seoul' | 'Asia/Tehran' | 'Asia/Dubai' | 'Asia/Kolkata' | 'Asia/Hong_Kong' | 'Asia/Bangkok' | 'Pacific/Auckland' | 'Pacific/Chatham' | 'Pacific/Fakaofo' | 'Pacific/Honolulu' | 'America/Mexico_City' | 'Africa/Johannesburg' | 'Asia/Kathmandu' | 'US/Mountain';
506
+ export declare type Timezone = 'UTC' | CustomTimezones;
507
+ export interface LibrarySymbolInfo {
508
+ /**
509
+ * Symbol Name
510
+ */
511
+ name: string;
512
+ full_name: string;
513
+ base_name?: [string];
514
+ /**
515
+ * Unique symbol id
516
+ */
517
+ ticker?: string;
518
+ description: string;
519
+ type: string;
520
+ /**
521
+ * @example "1700-0200"
522
+ */
523
+ session: string;
524
+ /**
525
+ * Traded exchange
526
+ * @example "NYSE"
527
+ */
528
+ exchange: string;
529
+ listed_exchange: string;
530
+ timezone: Timezone;
531
+ /**
532
+ * Code (Tick)
533
+ * @example 8/16/.../256 (1/8/100 1/16/100 ... 1/256/100) or 1/10/.../10000000 (1 0.1 ... 0.0000001)
534
+ */
535
+ pricescale: number;
536
+ /**
537
+ * The number of units that make up one tick.
538
+ * @example For example, U.S. equities are quotes in decimals, and tick in decimals, and can go up +/- .01. So the tick increment is 1. But the e-mini S&P futures contract, though quoted in decimals, goes up in .25 increments, so the tick increment is 25. (see also Tick Size)
539
+ */
540
+ minmov: number;
541
+ fractional?: boolean;
542
+ /**
543
+ * @example Quarters of 1/32: pricescale=128, minmovement=1, minmovement2=4
544
+ */
545
+ minmove2?: number;
546
+ /**
547
+ * false if DWM only
548
+ */
549
+ has_intraday?: boolean;
550
+ /**
551
+ * An array of resolutions which should be enabled in resolutions picker for this symbol.
552
+ */
553
+ supported_resolutions: ResolutionString[];
554
+ /**
555
+ * @example (for ex.: "1,5,60") - only these resolutions will be requested, all others will be built using them if possible
556
+ */
557
+ intraday_multipliers?: string[];
558
+ has_seconds?: boolean;
559
+ /**
560
+ * It is an array containing seconds resolutions (in seconds without a postfix) the datafeed builds by itself.
561
+ */
562
+ seconds_multipliers?: string[];
563
+ has_daily?: boolean;
564
+ has_weekly_and_monthly?: boolean;
565
+ has_empty_bars?: boolean;
566
+ force_session_rebuild?: boolean;
567
+ has_no_volume?: boolean;
568
+ /**
569
+ * Integer showing typical volume value decimal places for this symbol
570
+ */
571
+ volume_precision?: number;
572
+ data_status?: 'streaming' | 'endofday' | 'pulsed' | 'delayed_streaming';
573
+ /**
574
+ * Boolean showing whether this symbol is expired futures contract or not.
575
+ */
576
+ expired?: boolean;
577
+ /**
578
+ * Unix timestamp of expiration date.
579
+ */
580
+ expiration_date?: number;
581
+ sector?: string;
582
+ industry?: string;
583
+ currency_code?: string;
584
+ }
585
+ export interface Bar {
586
+ time: number;
587
+ open: number;
588
+ high: number;
589
+ low: number;
590
+ close: number;
591
+ volume?: number;
592
+ }
593
+ export interface SearchSymbolResultItem {
594
+ symbol: string;
595
+ full_name: string;
596
+ description: string;
597
+ exchange: string;
598
+ ticker: string;
599
+ type: string;
600
+ }
601
+ export interface HistoryMetadata {
602
+ noData: boolean;
603
+ nextTime?: number | null;
604
+ }
605
+ export interface MarkCustomColor {
606
+ color: string;
607
+ background: string;
608
+ }
609
+ export declare type MarkConstColors = 'red' | 'green' | 'blue' | 'yellow';
610
+ export interface Mark {
611
+ id: string | number;
612
+ time: number;
613
+ color: MarkConstColors | MarkCustomColor;
614
+ text: string;
615
+ label: string;
616
+ labelFontColor: string;
617
+ minSize: number;
618
+ }
619
+ export interface TimescaleMark {
620
+ id: string | number;
621
+ time: number;
622
+ color: MarkConstColors | string;
623
+ label: string;
624
+ tooltip: string[];
625
+ }
626
+ export declare type ResolutionBackValues = 'D' | 'M';
627
+ export interface HistoryDepth {
628
+ resolutionBack: ResolutionBackValues;
629
+ intervalBack: number;
630
+ }
631
+ export declare type SearchSymbolsCallback = (items: SearchSymbolResultItem[]) => void;
632
+ export declare type ResolveCallback = (symbolInfo: LibrarySymbolInfo) => void;
633
+ export declare type HistoryCallback = (bars: Bar[], meta: HistoryMetadata) => void;
634
+ export declare type SubscribeBarsCallback = (bar: Bar) => void;
635
+ export declare type GetMarksCallback<T> = (marks: T[]) => void;
636
+ export declare type ServerTimeCallback = (serverTime: number) => void;
637
+ export declare type DomeCallback = (data: DOMData) => void;
638
+ export declare type ErrorCallback = (reason: string) => void;
639
+ export interface IDatafeedChartApi {
640
+ calculateHistoryDepth?(resolution: ResolutionString, resolutionBack: ResolutionBackValues, intervalBack: number): HistoryDepth | undefined;
641
+ getMarks?(symbolInfo: LibrarySymbolInfo, startDate: number, endDate: number, onDataCallback: GetMarksCallback<Mark>, resolution: ResolutionString): void;
642
+ getTimescaleMarks?(symbolInfo: LibrarySymbolInfo, startDate: number, endDate: number, onDataCallback: GetMarksCallback<TimescaleMark>, resolution: ResolutionString): void;
643
+ /**
644
+ * This function is called if configuration flag supports_time is set to true when chart needs to know the server time.
645
+ * The charting library expects callback to be called once.
646
+ * The time is provided without milliseconds. Example: 1445324591. It is used to display Countdown on the price scale.
647
+ */
648
+ getServerTime?(callback: ServerTimeCallback): void;
649
+ searchSymbols(userInput: string, exchange: string, symbolType: string, onResult: SearchSymbolsCallback): void;
650
+ resolveSymbol(symbolName: string, onResolve: ResolveCallback, onError: ErrorCallback): void;
651
+ getBars(symbolInfo: LibrarySymbolInfo, resolution: ResolutionString, rangeStartDate: number, rangeEndDate: number, onResult: HistoryCallback, onError: ErrorCallback, isFirstCall: boolean): void;
652
+ subscribeBars(symbolInfo: LibrarySymbolInfo, resolution: ResolutionString, onTick: SubscribeBarsCallback, listenerGuid: string, onResetCacheNeededCallback: () => void): void;
653
+ unsubscribeBars(listenerGuid: string): void;
654
+ subscribeDepth?(symbolInfo: LibrarySymbolInfo, callback: DomeCallback): string;
655
+ unsubscribeDepth?(subscriberUID: string): void;
656
+ }
657
+ export interface ChartMetaInfo {
658
+ id: string;
659
+ name: string;
660
+ symbol: string;
661
+ resolution: ResolutionString;
662
+ timestamp: number;
663
+ }
664
+ export interface ChartData {
665
+ id: string;
666
+ name: string;
667
+ symbol: string;
668
+ resolution: ResolutionString;
669
+ content: string;
670
+ }
671
+ export interface StudyTemplateMetaInfo {
672
+ name: string;
673
+ }
674
+ export interface StudyTemplateData {
675
+ name: string;
676
+ content: string;
677
+ }
678
+ export interface IExternalSaveLoadAdapter {
679
+ getAllCharts(): Promise<ChartMetaInfo[]>;
680
+ removeChart(chartId: string): Promise<void>;
681
+ saveChart(chartData: ChartData): Promise<string>;
682
+ getChartContent(chartId: string): Promise<string>;
683
+ getAllStudyTemplates(): Promise<StudyTemplateMetaInfo[]>;
684
+ removeStudyTemplate(studyTemplateInfo: StudyTemplateMetaInfo): Promise<void>;
685
+ saveStudyTemplate(studyTemplateData: StudyTemplateData): Promise<void>;
686
+ getStudyTemplateContent(studyTemplateInfo: StudyTemplateMetaInfo): Promise<string>;
687
+ }
688
+ export interface RestBrokerMetaInfo {
689
+ url: string;
690
+ access_token: string;
691
+ }
692
+ export interface AccessListItem {
693
+ name: string;
694
+ grayed?: boolean;
695
+ }
696
+ export interface AccessList {
697
+ type: 'black' | 'white';
698
+ tools: AccessListItem[];
699
+ }
700
+ export interface NumericFormattingParams {
701
+ decimal_sign: string;
702
+ }
703
+ export declare type AvailableSaveloadVersions = '1.0' | '1.1';
704
+ export interface Overrides {
705
+ [key: string]: string | number | boolean;
706
+ }
707
+ export interface WidgetBarParams {
708
+ details?: boolean;
709
+ watchlist?: boolean;
710
+ news?: boolean;
711
+ watchlist_settings?: {
712
+ default_symbols: string[];
713
+ readonly?: boolean;
714
+ };
715
+ }
716
+ export interface RssNewsFeedInfo {
717
+ url: string;
718
+ name: string;
719
+ }
720
+ export declare type RssNewsFeedItem = RssNewsFeedInfo | RssNewsFeedInfo[];
721
+ export interface RssNewsFeedParams {
722
+ default: RssNewsFeedItem;
723
+ [symbolType: string]: RssNewsFeedItem;
724
+ }
725
+ export interface NewsProvider {
726
+ is_news_generic?: boolean;
727
+ get_news(symbol: string, callback: (items: NewsItem[]) => void): void;
728
+ }
729
+ export interface CustomFormatter {
730
+ format(date: Date): string;
731
+ formatLocal(date: Date): string;
732
+ }
733
+ export interface CustomFormatters {
734
+ timeFormatter: CustomFormatter;
735
+ dateFormatter: CustomFormatter;
736
+ }
737
+ export interface TimeFrameItem {
738
+ text: string;
739
+ resolution: ResolutionString;
740
+ description?: string;
741
+ title?: string;
742
+ }
743
+ export interface Favorites {
744
+ intervals: ResolutionString[];
745
+ chartTypes: string[];
746
+ }
747
+ export interface NewsItem {
748
+ fullDescription: string;
749
+ link?: string;
750
+ published: number;
751
+ shortDescription?: string;
752
+ source: string;
753
+ title: string;
754
+ }
755
+ export interface LoadingScreenOptions {
756
+ foregroundColor?: string;
757
+ backgroundColor?: string;
758
+ }
759
+ export interface InitialSettingsMap {
760
+ [key: string]: string;
761
+ }
762
+ export interface ISettingsAdapter {
763
+ initialSettings?: InitialSettingsMap;
764
+ setValue(key: string, value: string): void;
765
+ removeValue(key: string): void;
766
+ }
767
+ export declare type IBasicDataFeed = IDatafeedChartApi & IExternalDatafeed;
768
+ export interface ChartingLibraryWidgetOptions {
769
+ container_id: string;
770
+ datafeed: IBasicDataFeed | (IBasicDataFeed & IDatafeedQuotesApi);
771
+ interval: ResolutionString;
772
+ symbol: string;
773
+ auto_save_delay?: number;
774
+ autosize?: boolean;
775
+ debug?: boolean;
776
+ disabled_features?: string[];
777
+ drawings_access?: AccessList;
778
+ enabled_features?: string[];
779
+ fullscreen?: boolean;
780
+ height?: number;
781
+ library_path?: string;
782
+ locale: LanguageCode;
783
+ numeric_formatting?: NumericFormattingParams;
784
+ saved_data?: object;
785
+ studies_access?: AccessList;
786
+ study_count_limit?: number;
787
+ symbol_search_request_delay?: number;
788
+ timeframe?: string;
789
+ timezone?: 'exchange' | Timezone;
790
+ toolbar_bg?: string;
791
+ width?: number;
792
+ charts_storage_url?: string;
793
+ charts_storage_api_version?: AvailableSaveloadVersions;
794
+ client_id?: string;
795
+ user_id?: string;
796
+ load_last_chart?: boolean;
797
+ studies_overrides?: StudyOverrides;
798
+ customFormatters?: CustomFormatters;
799
+ overrides?: Overrides;
800
+ snapshot_url?: string;
801
+ indicators_file_name?: string;
802
+ preset?: 'mobile';
803
+ time_frames?: TimeFrameItem[];
804
+ custom_css_url?: string;
805
+ favorites?: Favorites;
806
+ save_load_adapter?: IExternalSaveLoadAdapter;
807
+ loading_screen?: LoadingScreenOptions;
808
+ settings_adapter?: ISettingsAdapter;
809
+ }
810
+ export interface TradingTerminalWidgetOptions extends ChartingLibraryWidgetOptions {
811
+ brokerConfig?: SingleBrokerMetaInfo;
812
+ restConfig?: RestBrokerMetaInfo;
813
+ widgetbar?: WidgetBarParams;
814
+ rss_news_feed?: RssNewsFeedParams;
815
+ news_provider?: NewsProvider;
816
+ brokerFactory?(host: IBrokerConnectionAdapterHost): IBrokerWithoutRealtime | IBrokerTerminal;
817
+ }
818
+ export declare type LayoutType = 's' | '2h' | '2-1' | '2v' | '3h' | '3v' | '3s' | '4' | '6' | '8';
819
+ export declare type SupportedLineTools = 'text' | 'anchored_text' | 'note' | 'anchored_note' | 'double_curve' | 'arc' | 'icon' | 'arrow_up' | 'arrow_down' | 'arrow_left' | 'arrow_right' | 'price_label' | 'flag' | 'vertical_line' | 'horizontal_line' | 'horizontal_ray' | 'trend_line' | 'trend_angle' | 'arrow' | 'ray' | 'extended' | 'parallel_channel' | 'disjoint_angle' | 'flat_bottom' | 'pitchfork' | 'schiff_pitchfork_modified' | 'schiff_pitchfork' | 'balloon' | 'inside_pitchfork' | 'pitchfan' | 'gannbox' | 'gannbox_square' | 'gannbox_fan' | 'fib_retracement' | 'fib_trend_ext' | 'fib_speed_resist_fan' | 'fib_timezone' | 'fib_trend_time' | 'fib_circles' | 'fib_spiral' | 'fib_speed_resist_arcs' | 'fib_channel' | 'xabcd_pattern' | 'cypher_pattern' | 'abcd_pattern' | 'callout' | 'triangle_pattern' | '3divers_pattern' | 'head_and_shoulders' | 'fib_wedge' | 'elliott_impulse_wave' | 'elliott_triangle_wave' | 'elliott_triple_combo' | 'elliott_correction' | 'elliott_double_combo' | 'cyclic_lines' | 'time_cycles' | 'sine_line' | 'long_position' | 'short_position' | 'forecast' | 'date_range' | 'price_range' | 'date_and_price_range' | 'bars_pattern' | 'ghost_feed' | 'projection' | 'rectangle' | 'rotated_rectangle' | 'ellipse' | 'triangle' | 'polyline' | 'curve' | 'regression_trend' | 'cursor' | 'dot' | 'arrow_cursor' | 'eraser' | 'measure' | 'zoom' | 'brush';
820
+ export interface IOrderLineAdapter {
821
+ remove(): void;
822
+ onModify(callback: () => void): this;
823
+ onModify<T>(data: T, callback: (data: T) => void): this;
824
+ onMove(callback: () => void): this;
825
+ onMove<T>(data: T, callback: (data: T) => void): this;
826
+ getPrice(): number;
827
+ setPrice(value: number): this;
828
+ getText(): string;
829
+ setText(value: string): this;
830
+ getTooltip(): string;
831
+ setTooltip(value: string): this;
832
+ getQuantity(): string;
833
+ setQuantity(value: string): this;
834
+ getEditable(): boolean;
835
+ setEditable(value: boolean): this;
836
+ getExtendLeft(): boolean;
837
+ setExtendLeft(value: boolean): this;
838
+ getLineLength(): number;
839
+ setLineLength(value: number): this;
840
+ getLineStyle(): number;
841
+ setLineStyle(value: number): this;
842
+ getLineWidth(): number;
843
+ setLineWidth(value: number): this;
844
+ getBodyFont(): string;
845
+ setBodyFont(value: string): this;
846
+ getQuantityFont(): string;
847
+ setQuantityFont(value: string): this;
848
+ getLineColor(): string;
849
+ setLineColor(value: string): this;
850
+ getBodyBorderColor(): string;
851
+ setBodyBorderColor(value: string): this;
852
+ getBodyBackgroundColor(): string;
853
+ setBodyBackgroundColor(value: string): this;
854
+ getBodyTextColor(): string;
855
+ setBodyTextColor(value: string): this;
856
+ getQuantityBorderColor(): string;
857
+ setQuantityBorderColor(value: string): this;
858
+ getQuantityBackgroundColor(): string;
859
+ setQuantityBackgroundColor(value: string): this;
860
+ getQuantityTextColor(): string;
861
+ setQuantityTextColor(value: string): this;
862
+ getCancelButtonBorderColor(): string;
863
+ setCancelButtonBorderColor(value: string): this;
864
+ getCancelButtonBackgroundColor(): string;
865
+ setCancelButtonBackgroundColor(value: string): this;
866
+ getCancelButtonIconColor(): string;
867
+ setCancelButtonIconColor(value: string): this;
868
+ }
869
+ export interface IPositionLineAdapter {
870
+ remove(): void;
871
+ onClose(callback: () => void): this;
872
+ onClose<T>(data: T, callback: (data: T) => void): this;
873
+ onModify(callback: () => void): this;
874
+ onModify<T>(data: T, callback: (data: T) => void): this;
875
+ onReverse(callback: () => void): this;
876
+ onReverse<T>(data: T, callback: (data: T) => void): this;
877
+ getPrice(): number;
878
+ setPrice(value: number): this;
879
+ getText(): string;
880
+ setText(value: string): this;
881
+ getTooltip(): string;
882
+ setTooltip(value: string): this;
883
+ getQuantity(): string;
884
+ setQuantity(value: string): this;
885
+ getExtendLeft(): boolean;
886
+ setExtendLeft(value: boolean): this;
887
+ getLineLength(): number;
888
+ setLineLength(value: number): this;
889
+ getLineStyle(): number;
890
+ setLineStyle(value: number): this;
891
+ getLineWidth(): number;
892
+ setLineWidth(value: number): this;
893
+ getBodyFont(): string;
894
+ setBodyFont(value: string): this;
895
+ getQuantityFont(): string;
896
+ setQuantityFont(value: string): this;
897
+ getLineColor(): string;
898
+ setLineColor(value: string): this;
899
+ getBodyBorderColor(): string;
900
+ setBodyBorderColor(value: string): this;
901
+ getBodyBackgroundColor(): string;
902
+ setBodyBackgroundColor(value: string): this;
903
+ getBodyTextColor(): string;
904
+ setBodyTextColor(value: string): this;
905
+ getQuantityBorderColor(): string;
906
+ setQuantityBorderColor(value: string): this;
907
+ getQuantityBackgroundColor(): string;
908
+ setQuantityBackgroundColor(value: string): this;
909
+ getQuantityTextColor(): string;
910
+ setQuantityTextColor(value: string): this;
911
+ getReverseButtonBorderColor(): string;
912
+ setReverseButtonBorderColor(value: string): this;
913
+ getReverseButtonBackgroundColor(): string;
914
+ setReverseButtonBackgroundColor(value: string): this;
915
+ getReverseButtonIconColor(): string;
916
+ setReverseButtonIconColor(value: string): this;
917
+ getCloseButtonBorderColor(): string;
918
+ setCloseButtonBorderColor(value: string): this;
919
+ getCloseButtonBackgroundColor(): string;
920
+ setCloseButtonBackgroundColor(value: string): this;
921
+ getCloseButtonIconColor(): string;
922
+ setCloseButtonIconColor(value: string): this;
923
+ }
924
+ export declare type Direction = 'buy' | 'sell';
925
+ export interface IExecutionLineAdapter {
926
+ remove(): void;
927
+ getPrice(): number;
928
+ setPrice(value: number): this;
929
+ getTime(): number;
930
+ setTime(value: number): this;
931
+ getDirection(): Direction;
932
+ setDirection(value: Direction): this;
933
+ getText(): string;
934
+ setText(value: string): this;
935
+ getTooltip(): string;
936
+ setTooltip(value: string): this;
937
+ getArrowHeight(): number;
938
+ setArrowHeight(value: number): this;
939
+ getArrowSpacing(): number;
940
+ setArrowSpacing(value: number): this;
941
+ getFont(): string;
942
+ setFont(value: string): this;
943
+ getTextColor(): string;
944
+ setTextColor(value: string): this;
945
+ getArrowColor(): string;
946
+ setArrowColor(value: string): this;
947
+ }
948
+ export declare type StudyInputId = Nominal<string, 'StudyInputId'>;
949
+ export interface StudyInputInfo {
950
+ id: StudyInputId;
951
+ name: string;
952
+ type: string;
953
+ localizedName: string;
954
+ }
955
+ export interface StudyInputValueItem {
956
+ id: StudyInputId;
957
+ value: StudyInputValueType;
958
+ }
959
+ export interface IStudyApi {
960
+ isUserEditEnabled(): boolean;
961
+ setUserEditEnabled(enabled: boolean): void;
962
+ getInputsInfo(): StudyInputInfo[];
963
+ getInputValues(): StudyInputValueItem[];
964
+ setInputValues(values: StudyInputValueItem[]): void;
965
+ mergeUp(): void;
966
+ mergeDown(): void;
967
+ unmergeUp(): void;
968
+ unmergeDown(): void;
969
+ isVisible(): boolean;
970
+ setVisible(visible: boolean): void;
971
+ bringToFront(): void;
972
+ sendToBack(): void;
973
+ applyOverrides<TOverrides extends StudyOverrides>(overrides: TOverrides): void;
974
+ }
975
+ export interface TimePoint {
976
+ time: number;
977
+ }
978
+ export interface StickedPoint extends TimePoint {
979
+ channel: 'open' | 'high' | 'low' | 'close';
980
+ }
981
+ export interface PricedPoint extends TimePoint {
982
+ price: number;
983
+ }
984
+ export declare type ShapePoint = StickedPoint | PricedPoint | TimePoint;
985
+ export interface ILineDataSourceApi {
986
+ isSelectionEnabled(): boolean;
987
+ setSelectionEnabled(enable: boolean): void;
988
+ isSavingEnabled(): boolean;
989
+ setSavingEnabled(enable: boolean): void;
990
+ isShowInObjectsTreeEnabled(): boolean;
991
+ setShowInObjectsTreeEnabled(enabled: boolean): void;
992
+ isUserEditEnabled(): boolean;
993
+ setUserEditEnabled(enabled: boolean): void;
994
+ bringToFront(): void;
995
+ sendToBack(): void;
996
+ getProperties(): object;
997
+ setProperties(newProperties: object): void;
998
+ getPoints(): PricedPoint[];
999
+ setPoints(points: ShapePoint[]): void;
1000
+ }
1001
+ export interface CrossHairMovedEventParams {
1002
+ time: number;
1003
+ price: number;
1004
+ }
1005
+ export interface VisibleTimeRange {
1006
+ from: number;
1007
+ to: number;
1008
+ }
1009
+ export interface VisiblePriceRange {
1010
+ from: number;
1011
+ to: number;
1012
+ }
1013
+ export declare type ChartActionId = 'chartProperties' | 'compareOrAdd' | 'scalesProperties' | 'tmzProperties' | 'paneObjectTree' | 'insertIndicator' | 'symbolSearch' | 'changeInterval' | 'timeScaleReset' | 'chartReset' | 'seriesHide' | 'studyHide' | 'lineToggleLock' | 'lineHide' | 'showLeftAxis' | 'showRightAxis' | 'scaleSeriesOnly' | 'drawingToolbarAction' | 'magnetAction' | 'stayInDrawingModeAction' | 'lockDrawingsAction' | 'hideAllDrawingsAction' | 'hideAllMarks' | 'showCountdown' | 'showSeriesLastValue' | 'showSymbolLabelsAction' | 'showStudyLastValue' | 'showStudyPlotNamesAction' | 'undo' | 'redo' | 'takeScreenshot' | 'paneRemoveAllStudiesDrawingTools';
1014
+ export declare const enum SeriesStyle {
1015
+ Bars = 0,
1016
+ Candles = 1,
1017
+ Line = 2,
1018
+ Area = 3,
1019
+ HeikenAshi = 8,
1020
+ HollowCandles = 9,
1021
+ Renko = 4,
1022
+ Kagi = 5,
1023
+ PointAndFigure = 6,
1024
+ LineBreak = 7,
1025
+ }
1026
+ export declare type EntityId = Nominal<string, 'EntityId'>;
1027
+ export interface EntityInfo {
1028
+ id: EntityId;
1029
+ name: string;
1030
+ }
1031
+ export interface CreateStudyOptions {
1032
+ checkLimit: boolean;
1033
+ }
1034
+ export interface CreateShapeOptions<TOverrides extends object> {
1035
+ shape?: 'arrow_up' | 'arrow_down' | 'flag' | 'vertical_line' | 'horizontal_line';
1036
+ text?: string;
1037
+ lock?: boolean;
1038
+ disableSelection?: boolean;
1039
+ disableSave?: boolean;
1040
+ disableUndo?: boolean;
1041
+ overrides?: TOverrides;
1042
+ zOrder?: 'top' | 'bottom';
1043
+ showInObjectsTree?: boolean;
1044
+ }
1045
+ export interface CreateStudyTemplateOptions {
1046
+ saveInterval?: boolean;
1047
+ }
1048
+ export interface SymbolExt {
1049
+ symbol: string;
1050
+ full_name: string;
1051
+ exchange: string;
1052
+ description: string;
1053
+ type: string;
1054
+ }
1055
+ export interface CreateTradingPrimitiveOptions {
1056
+ disableUndo?: boolean;
1057
+ }
1058
+ export interface IChartWidgetApi {
1059
+ onDataLoaded(): ISubscription<() => void>;
1060
+ onSymbolChanged(): ISubscription<() => void>;
1061
+ onIntervalChanged(): ISubscription<(interval: ResolutionString, timeFrameParameters: {
1062
+ timeframe?: string;
1063
+ }) => void>;
1064
+ dataReady(callback: () => void): boolean;
1065
+ crossHairMoved(callback: (params: CrossHairMovedEventParams) => void): void;
1066
+ setVisibleRange(range: VisibleTimeRange, callback: () => void): void;
1067
+ setSymbol(symbol: string, callback: () => void): void;
1068
+ setResolution(resolution: ResolutionString, callback: () => void): void;
1069
+ resetData(): void;
1070
+ executeActionById(actionId: ChartActionId): void;
1071
+ getCheckableActionState(actionId: ChartActionId): boolean;
1072
+ refreshMarks(): void;
1073
+ clearMarks(): void;
1074
+ setChartType(type: SeriesStyle): void;
1075
+ getAllShapes(): EntityInfo[];
1076
+ getAllStudies(): EntityInfo[];
1077
+ /**
1078
+ * @deprecated Use shape/study API instead ([getStudyById] / [getShapeById])
1079
+ */
1080
+ setEntityVisibility(entityId: EntityId, isVisible: boolean): void;
1081
+ createStudy<TStudyInputs extends StudyInputValueType, TOverrides extends StudyOverrides>(name: string, forceOverlay: boolean, lock?: boolean, inputs?: TStudyInputs[], callback?: (entityId: EntityId) => void, overrides?: TOverrides, options?: CreateStudyOptions): EntityId | null;
1082
+ getStudyById(entityId: EntityId): IStudyApi;
1083
+ createShape<TOverrides extends object>(point: ShapePoint, options: CreateShapeOptions<TOverrides>): EntityId | null;
1084
+ createMultipointShape<TOverrides extends object>(points: ShapePoint[], options: CreateShapeOptions<TOverrides>): EntityId | null;
1085
+ getShapeById(entityId: EntityId): ILineDataSourceApi;
1086
+ removeEntity(entityId: EntityId): void;
1087
+ removeAllShapes(): void;
1088
+ removeAllStudies(): void;
1089
+ createStudyTemplate(options: CreateStudyTemplateOptions): object;
1090
+ applyStudyTemplate(template: object): void;
1091
+ createOrderLine(options: CreateTradingPrimitiveOptions): IOrderLineAdapter;
1092
+ createPositionLine(options: CreateTradingPrimitiveOptions): IPositionLineAdapter;
1093
+ createExecutionShape(options: CreateTradingPrimitiveOptions): IExecutionLineAdapter;
1094
+ symbol(): string;
1095
+ symbolExt(): SymbolExt;
1096
+ resolution(): ResolutionString;
1097
+ getVisibleRange(): VisibleTimeRange;
1098
+ getVisiblePriceRange(): VisiblePriceRange;
1099
+ priceFormatter(): IFormatter;
1100
+ chartType(): SeriesStyle;
1101
+ setTimezone(timezone: 'exchange' | Timezone): void;
1102
+ }
1103
+ export declare type EditObjectDialogObjectType = 'mainSeries' | 'drawing' | 'study' | 'other';
1104
+ export interface EditObjectDialogEventParams {
1105
+ objectType: EditObjectDialogObjectType;
1106
+ scriptTitle: string;
1107
+ }
1108
+ export interface MouseEventParams {
1109
+ clientX: number;
1110
+ clientY: number;
1111
+ pageX: number;
1112
+ pageY: number;
1113
+ screenX: number;
1114
+ screenY: number;
1115
+ }
1116
+ export interface StudyOrDrawingAddedToChartEventParams {
1117
+ value: string;
1118
+ }
1119
+ export declare type EmptyCallback = () => void;
1120
+ export interface SubscribeEventsMap {
1121
+ toggle_sidebar: (isHidden: boolean) => void;
1122
+ indicators_dialog: EmptyCallback;
1123
+ toggle_header: (isHidden: boolean) => void;
1124
+ edit_object_dialog: (params: EditObjectDialogEventParams) => void;
1125
+ chart_load_requested: (savedData: object) => void;
1126
+ chart_loaded: EmptyCallback;
1127
+ mouse_down: (params: MouseEventParams) => void;
1128
+ mouse_up: (params: MouseEventParams) => void;
1129
+ drawing: (params: StudyOrDrawingAddedToChartEventParams) => void;
1130
+ study: (params: StudyOrDrawingAddedToChartEventParams) => void;
1131
+ undo: EmptyCallback;
1132
+ redo: EmptyCallback;
1133
+ reset_scales: EmptyCallback;
1134
+ compare_add: EmptyCallback;
1135
+ add_compare: EmptyCallback;
1136
+ 'load_study template': EmptyCallback;
1137
+ onTick: (tick: Bar) => void;
1138
+ onAutoSaveNeeded: EmptyCallback;
1139
+ onScreenshotReady: (url: string) => void;
1140
+ onMarkClick: (markId: Mark['id']) => void;
1141
+ onTimescaleMarkClick: (markId: TimescaleMark['id']) => void;
1142
+ onSelectedLineToolChanged: EmptyCallback;
1143
+ layout_about_to_be_changed: (newLayoutType: LayoutType) => void;
1144
+ layout_changed: EmptyCallback;
1145
+ activeChartChanged: (chartIndex: number) => void;
1146
+ }
1147
+ export interface SaveChartToServerOptions {
1148
+ chartName?: string;
1149
+ defaultChartName?: string;
1150
+ }
1151
+ export interface WatchListApi {
1152
+ getList(): string[];
1153
+ setList(symbols: string[]): void;
1154
+ onListChanged(): ISubscription<EmptyCallback>;
1155
+ }
1156
+ export interface GrayedObject {
1157
+ type: 'drawing' | 'study';
1158
+ name: string;
1159
+ }
1160
+ export interface ContextMenuItem {
1161
+ position: 'top' | 'bottom';
1162
+ text: string;
1163
+ click: EmptyCallback;
1164
+ }
1165
+ export interface DialogParams<CallbackType> {
1166
+ title: string;
1167
+ body: string;
1168
+ callback: CallbackType;
1169
+ }
1170
+ export interface SymbolIntervalResult {
1171
+ symbol: string;
1172
+ interval: ResolutionString;
1173
+ }
1174
+ export interface SaveLoadChartRecord {
1175
+ id: string;
1176
+ name: string;
1177
+ image_url: string;
1178
+ modified_iso: number;
1179
+ short_symbol: string;
1180
+ interval: ResolutionString;
1181
+ }
1182
+ export interface CreateButtonOptions {
1183
+ align: 'right' | 'left';
1184
+ }
1185
+ export interface IChartingLibraryWidget {
1186
+ onChartReady(callback: EmptyCallback): void;
1187
+ onGrayedObjectClicked(callback: (obj: GrayedObject) => void): void;
1188
+ onShortcut(shortCut: string, callback: EmptyCallback): void;
1189
+ subscribe<EventName extends keyof SubscribeEventsMap>(event: EventName, callback: SubscribeEventsMap[EventName]): void;
1190
+ unsubscribe<EventName extends keyof SubscribeEventsMap>(event: EventName, callback: SubscribeEventsMap[EventName]): void;
1191
+ chart(index?: number): IChartWidgetApi;
1192
+ setLanguage(lang: LanguageCode): void;
1193
+ setSymbol(symbol: string, interval: ResolutionString, callback: EmptyCallback): void;
1194
+ remove(): void;
1195
+ closePopupsAndDialogs(): void;
1196
+ selectLineTool(linetool: SupportedLineTools): void;
1197
+ selectedLineTool(): SupportedLineTools;
1198
+ save(callback: (state: object) => void): void;
1199
+ load(state: object): void;
1200
+ getSavedCharts(callback: (chartRecords: SaveLoadChartRecord[]) => void): void;
1201
+ loadChartFromServer(chartRecord: SaveLoadChartRecord): void;
1202
+ saveChartToServer(onComplete?: EmptyCallback, onFail?: EmptyCallback, saveAsSnapshot?: false, options?: SaveChartToServerOptions): void;
1203
+ removeChartFromServer(chartId: string, onCompleteCallback: EmptyCallback): void;
1204
+ onContextMenu(callback: (unixTime: number, price: number) => ContextMenuItem[]): void;
1205
+ createButton(options?: CreateButtonOptions): JQuery;
1206
+ showNoticeDialog(params: DialogParams<() => void>): void;
1207
+ showConfirmDialog(params: DialogParams<(confirmed: boolean) => void>): void;
1208
+ showLoadChartDialog(): void;
1209
+ showSaveAsChartDialog(): void;
1210
+ symbolInterval(): SymbolIntervalResult;
1211
+ mainSeriesPriceFormatter(): IFormatter;
1212
+ getIntervals(): string[];
1213
+ getStudiesList(): string[];
1214
+ addCustomCSSFile(url: string): void;
1215
+ applyOverrides<TOverrides extends StudyOverrides>(overrides: TOverrides): void;
1216
+ applyStudiesOverrides(overrides: object): void;
1217
+ watchList(): WatchListApi;
1218
+ activeChart(): IChartWidgetApi;
1219
+ chartsCount(): number;
1220
+ layout(): LayoutType;
1221
+ setLayout(layout: LayoutType): void;
1222
+ }
1223
+ export interface ChartingLibraryWidgetConstructor {
1224
+ new (options: ChartingLibraryWidgetOptions | TradingTerminalWidgetOptions): IChartingLibraryWidget;
1225
+ }
1226
+ export declare function version(): string;
1227
+ export declare function onready(callback: () => void): void;
1228
+ export declare const widget: ChartingLibraryWidgetConstructor;
1229
+
1230
+ export as namespace TradingView;
hybrid/html/tradeview/charting_library/charting_library.min.js ADDED
@@ -0,0 +1 @@
 
 
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.TradingView=t.TradingView||{})}(this,function(t){"use strict";function e(t,o){var i=n({},t);for(var s in o)"object"!=typeof t[s]||null===t[s]||Array.isArray(t[s])?void 0!==o[s]&&(i[s]=o[s]):i[s]=e(t[s],o[s]);return i}function o(){return"1.12 (internal id 630b704a @ 2018-06-06 02:16:11.305509)"}function i(t){window.addEventListener("DOMContentLoaded",t,!1)}var n=Object.assign||function(t){for(var e,o=arguments,i=1,n=arguments.length;i<n;i++){e=o[i];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])}return t},s={mobile:{disabled_features:["left_toolbar","header_widget","timeframes_toolbar","edit_buttons_in_legend","context_menus","control_bar","border_around_the_chart"],enabled_features:[]}},r={width:800,height:500,symbol:"AA",interval:"D",timezone:"UTC",container_id:"",library_path:"",locale:"en",widgetbar:{details:!1,watchlist:!1,watchlist_settings:{default_symbols:[]}},overrides:{"mainSeriesProperties.showCountdown":!1},studies_overrides:{},brokerConfig:{configFlags:{}},fullscreen:!1,autosize:!1,disabled_features:[],enabled_features:[],debug:!1,logo:{},time_frames:[{text:"5y",resolution:"W"},{text:"1y",resolution:"W"},{text:"6m",resolution:"120"},{text:"3m",resolution:"60"},{text:"1m",resolution:"30"},{text:"5d",resolution:"5"},{text:"1d",resolution:"1"}],client_id:"0",user_id:"0",charts_storage_api_version:"1.0",favorites:{intervals:[],chartTypes:[]}},a=function(){function t(t){if(this._id="tradingview_"+(1048576*(1+Math.random())|0).toString(16).substring(1),this._ready=!1,this._readyHandlers=[],this._onWindowResize=this._autoResizeChart.bind(this),!t.datafeed)throw new Error("Datafeed is not defined");if(this._options=e(r,t),t.preset){var o=s[t.preset];o?(void 0!==this._options.disabled_features?this._options.disabled_features=this._options.disabled_features.concat(o.disabled_features):this._options.disabled_features=o.disabled_features,void 0!==this._options.enabled_features?this._options.enabled_features=this._options.enabled_features.concat(o.enabled_features):this._options.enabled_features=o.enabled_features):console.warn("Unknown preset: `"+t.preset+"`")}this._create()}return t.prototype.onChartReady=function(t){this._ready?t.call(this):this._readyHandlers.push(t)},t.prototype.onGrayedObjectClicked=function(t){this._innerAPI().onGrayedObjectClicked(t)},t.prototype.onShortcut=function(t,e){this._innerWindow().createShortcutAction(t,e)},t.prototype.subscribe=function(t,e){this._innerAPI().subscribe(t,e)},t.prototype.unsubscribe=function(t,e){this._innerAPI().unsubscribe(t,e)},t.prototype.chart=function(t){return this._innerAPI().chart(t)},t.prototype.setLanguage=function(t){this.remove(),this._options.locale=t,this._create()},t.prototype.setSymbol=function(t,e,o){this._innerAPI().changeSymbol(t,e+"",o)},t.prototype.remove=function(){window.removeEventListener("resize",this._onWindowResize),this._readyHandlers.splice(0,this._readyHandlers.length),delete window[this._id];var t=this._getIFrameElement();t.contentWindow.destroyChart(),t.parentNode&&t.parentNode.removeChild(t)},t.prototype.closePopupsAndDialogs=function(){this._innerAPI().closePopupsAndDialogs()},t.prototype.selectLineTool=function(t){this._innerAPI().selectLineTool(t)},t.prototype.selectedLineTool=function(){return this._innerAPI().selectedLineTool()},t.prototype.save=function(t){this._innerAPI().saveChart(t)},t.prototype.load=function(t,e){this._innerAPI().loadChart({json:t,extendedData:e})},t.prototype.getSavedCharts=function(t){this._innerAPI().getSavedCharts(t)},t.prototype.loadChartFromServer=function(t){this._innerAPI().loadChartFromServer(t)},t.prototype.saveChartToServer=function(t,e,o,i){this._innerAPI().saveChartToServer(t,e,o,i)},t.prototype.removeChartFromServer=function(t,e){this._innerAPI().removeChartFromServer(t,e)},t.prototype.onContextMenu=function(t){this._innerAPI().onContextMenu(t)},t.prototype.createButton=function(t){return this._innerWindow().createButton(t)},t.prototype.showNoticeDialog=function(t){this._innerAPI().showNoticeDialog(t)},t.prototype.showConfirmDialog=function(t){this._innerAPI().showConfirmDialog(t)},t.prototype.showLoadChartDialog=function(){this._innerAPI().showLoadChartDialog()},t.prototype.showSaveAsChartDialog=function(){this._innerAPI().showSaveAsChartDialog()},t.prototype.symbolInterval=function(){return this._innerAPI().getSymbolInterval()},t.prototype.mainSeriesPriceFormatter=function(){return this._innerAPI().mainSeriesPriceFormatter()},t.prototype.getIntervals=function(){return this._innerAPI().getIntervals()},t.prototype.getStudiesList=function(){return this._innerAPI().getStudiesList()},t.prototype.addCustomCSSFile=function(t){this._innerWindow().addCustomCSSFile(t)},t.prototype.applyOverrides=function(t){this._options=e(this._options,{overrides:t}),this._innerWindow().applyOverrides(t)},t.prototype.applyStudiesOverrides=function(t){this._innerWindow().applyStudiesOverrides(t)},t.prototype.watchList=function(){return this._innerAPI().watchlist()},t.prototype.activeChart=function(){return this._innerAPI().activeChart()},t.prototype.chartsCount=function(){return this._innerAPI().chartsCount()},t.prototype.layout=function(){return this._innerAPI().layout()},t.prototype.setLayout=function(t){this._innerAPI().setLayout(t)},t.prototype._getIFrameElement=function(){var t=document.getElementById(this._id);if(null===t)throw new Error("There is no such iframe");return t},t.prototype._innerAPI=function(){return this._getIFrameElement().contentWindow.tradingViewApi},t.prototype._innerWindow=function(){return this._getIFrameElement().contentWindow},t.prototype._autoResizeChart=function(){this._options.fullscreen&&(this._getIFrameElement().style.height=window.innerHeight+"px")},t.prototype._create=function(){var t=this,e=this._render(),o=document.getElementById(this._options.container_id);if(null===o)throw new Error("There is no such element - #"+this._options.container_id);o.innerHTML=e;var i=this._getIFrameElement();(this._options.autosize||this._options.fullscreen)&&(i.style.width="100%",this._options.fullscreen||(i.style.height="100%")),window.addEventListener("resize",this._onWindowResize),this._onWindowResize();var n=function(){i.removeEventListener("load",n,!1),i.contentWindow.widgetReady(function(){t._ready=!0;for(var e=0,o=t._readyHandlers;e<o.length;e++){o[e].call(t)}i.contentWindow.initializationFinished()})};i.addEventListener("load",n,!1)},t.prototype._render=function(){var t=window;t[this._id]={datafeed:this._options.datafeed,customFormatters:this._options.customFormatters,brokerFactory:this._options.brokerFactory,overrides:this._options.overrides,studiesOverrides:this._options.studies_overrides,disabledFeatures:this._options.disabled_features,enabledFeatures:this._options.enabled_features,brokerConfig:this._options.brokerConfig,restConfig:this._options.restConfig,favorites:this._options.favorites,logo:this._options.logo,numeric_formatting:this._options.numeric_formatting,rss_news_feed:this._options.rss_news_feed,newsProvider:this._options.news_provider,loadLastChart:this._options.load_last_chart,saveLoadAdapter:this._options.save_load_adapter,loading_screen:this._options.loading_screen,settingsAdapter:this._options.settings_adapter},this._options.saved_data&&(t[this._id].chartContent={json:this._options.saved_data});var e=(this._options.library_path||"")+"static/tv-chart.630b704a2b9d0eaf1593.html#localserver=1&symbol="+encodeURIComponent(this._options.symbol)+"&interval="+encodeURIComponent(this._options.interval)+(this._options.timeframe?"&timeframe="+encodeURIComponent(this._options.timeframe):"")+(this._options.toolbar_bg?"&toolbarbg="+this._options.toolbar_bg.replace("#",""):"")+(this._options.studies_access?"&studiesAccess="+encodeURIComponent(JSON.stringify(this._options.studies_access)):"")+"&widgetbar="+encodeURIComponent(JSON.stringify(this._options.widgetbar))+(this._options.drawings_access?"&drawingsAccess="+encodeURIComponent(JSON.stringify(this._options.drawings_access)):"")+"&timeFrames="+encodeURIComponent(JSON.stringify(this._options.time_frames))+"&locale="+encodeURIComponent(this._options.locale)+"&uid="+encodeURIComponent(this._id)+"&clientId="+encodeURIComponent(String(this._options.client_id))+"&userId="+encodeURIComponent(String(this._options.user_id))+(this._options.charts_storage_url?"&chartsStorageUrl="+encodeURIComponent(this._options.charts_storage_url):"")+(this._options.charts_storage_api_version?"&chartsStorageVer="+encodeURIComponent(this._options.charts_storage_api_version):"")+(this._options.indicators_file_name?"&indicatorsFile="+encodeURIComponent(this._options.indicators_file_name):"")+(this._options.custom_css_url?"&customCSS="+encodeURIComponent(this._options.custom_css_url):"")+(this._options.auto_save_delay?"&autoSaveDelay="+encodeURIComponent(String(this._options.auto_save_delay)):"")+"&debug="+this._options.debug+(this._options.snapshot_url?"&snapshotUrl="+encodeURIComponent(this._options.snapshot_url):"")+(this._options.timezone?"&timezone="+encodeURIComponent(this._options.timezone):"")+(this._options.study_count_limit?"&studyCountLimit="+encodeURIComponent(String(this._options.study_count_limit)):"")+(this._options.symbol_search_request_delay?"&ssreqdelay="+encodeURIComponent(String(this._options.symbol_search_request_delay)):"");return'<iframe id="'+this._id+'" name="'+this._id+'" src="'+e+'"'+(this._options.autosize||this._options.fullscreen?"":' width="'+this._options.width+'" height="'+this._options.height+'"')+' frameborder="0" allowTransparency="true" scrolling="no" allowfullscreen style="display:block;"></iframe>'},t}(),d=a;window.TradingView=window.TradingView||{},window.TradingView.version=o,t.version=o,t.onready=i,t.widget=d,Object.defineProperty(t,"__esModule",{value:!0})});
hybrid/html/tradeview/charting_library/datafeed-api.d.ts ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export declare type ResolutionString = string;
2
+ export interface Exchange {
3
+ value: string;
4
+ name: string;
5
+ desc: string;
6
+ }
7
+ export interface DatafeedSymbolType {
8
+ name: string;
9
+ value: string;
10
+ }
11
+ export interface DatafeedConfiguration {
12
+ exchanges?: Exchange[];
13
+ supported_resolutions?: ResolutionString[];
14
+ supports_marks?: boolean;
15
+ supports_time?: boolean;
16
+ supports_timescale_marks?: boolean;
17
+ symbols_types?: DatafeedSymbolType[];
18
+ }
19
+ export declare type OnReadyCallback = (configuration: DatafeedConfiguration) => void;
20
+ export interface IExternalDatafeed {
21
+ onReady(callback: OnReadyCallback): void;
22
+ }
23
+ export interface DatafeedQuoteValues {
24
+ ch?: number;
25
+ chp?: number;
26
+ short_name?: string;
27
+ exchange?: string;
28
+ description?: string;
29
+ lp?: number;
30
+ ask?: number;
31
+ bid?: number;
32
+ spread?: number;
33
+ open_price?: number;
34
+ high_price?: number;
35
+ low_price?: number;
36
+ prev_close_price?: number;
37
+ volume?: number;
38
+ original_name?: string;
39
+ [valueName: string]: string | number | undefined;
40
+ }
41
+ export interface QuoteOkData {
42
+ s: 'ok';
43
+ n: string;
44
+ v: DatafeedQuoteValues;
45
+ }
46
+ export interface QuoteErrorData {
47
+ s: 'error';
48
+ n: string;
49
+ v: object;
50
+ }
51
+ export declare type QuoteData = QuoteOkData | QuoteErrorData;
52
+ export declare type QuotesCallback = (data: QuoteData[]) => void;
53
+ export interface IDatafeedQuotesApi {
54
+ getQuotes(symbols: string[], onDataCallback: QuotesCallback, onErrorCallback: (msg: string) => void): void;
55
+ subscribeQuotes(symbols: string[], fastSymbols: string[], onRealtimeCallback: QuotesCallback, listenerGUID: string): void;
56
+ unsubscribeQuotes(listenerGUID: string): void;
57
+ }
58
+ export declare type CustomTimezones = 'America/New_York' | 'America/Los_Angeles' | 'America/Chicago' | 'America/Phoenix' | 'America/Toronto' | 'America/Vancouver' | 'America/Argentina/Buenos_Aires' | 'America/El_Salvador' | 'America/Sao_Paulo' | 'America/Bogota' | 'America/Caracas' | 'Europe/Moscow' | 'Europe/Athens' | 'Europe/Berlin' | 'Europe/London' | 'Europe/Madrid' | 'Europe/Paris' | 'Europe/Rome' | 'Europe/Warsaw' | 'Europe/Istanbul' | 'Europe/Zurich' | 'Australia/Sydney' | 'Australia/Brisbane' | 'Australia/Adelaide' | 'Australia/ACT' | 'Asia/Almaty' | 'Asia/Ashkhabad' | 'Asia/Tokyo' | 'Asia/Taipei' | 'Asia/Singapore' | 'Asia/Shanghai' | 'Asia/Seoul' | 'Asia/Tehran' | 'Asia/Dubai' | 'Asia/Kolkata' | 'Asia/Hong_Kong' | 'Asia/Bangkok' | 'Pacific/Auckland' | 'Pacific/Chatham' | 'Pacific/Fakaofo' | 'Pacific/Honolulu' | 'America/Mexico_City' | 'Africa/Johannesburg' | 'Asia/Kathmandu' | 'US/Mountain';
59
+ export declare type Timezone = 'UTC' | CustomTimezones;
60
+ export interface LibrarySymbolInfo {
61
+ /**
62
+ * Symbol Name
63
+ */
64
+ name: string;
65
+ full_name: string;
66
+ base_name?: [string];
67
+ /**
68
+ * Unique symbol id
69
+ */
70
+ ticker?: string;
71
+ description: string;
72
+ type: string;
73
+ /**
74
+ * @example "1700-0200"
75
+ */
76
+ session: string;
77
+ /**
78
+ * Traded exchange
79
+ * @example "NYSE"
80
+ */
81
+ exchange: string;
82
+ listed_exchange: string;
83
+ timezone: Timezone;
84
+ /**
85
+ * Code (Tick)
86
+ * @example 8/16/.../256 (1/8/100 1/16/100 ... 1/256/100) or 1/10/.../10000000 (1 0.1 ... 0.0000001)
87
+ */
88
+ pricescale: number;
89
+ /**
90
+ * The number of units that make up one tick.
91
+ * @example For example, U.S. equities are quotes in decimals, and tick in decimals, and can go up +/- .01. So the tick increment is 1. But the e-mini S&P futures contract, though quoted in decimals, goes up in .25 increments, so the tick increment is 25. (see also Tick Size)
92
+ */
93
+ minmov: number;
94
+ fractional?: boolean;
95
+ /**
96
+ * @example Quarters of 1/32: pricescale=128, minmovement=1, minmovement2=4
97
+ */
98
+ minmove2?: number;
99
+ /**
100
+ * false if DWM only
101
+ */
102
+ has_intraday?: boolean;
103
+ /**
104
+ * An array of resolutions which should be enabled in resolutions picker for this symbol.
105
+ */
106
+ supported_resolutions: ResolutionString[];
107
+ /**
108
+ * @example (for ex.: "1,5,60") - only these resolutions will be requested, all others will be built using them if possible
109
+ */
110
+ intraday_multipliers?: string[];
111
+ has_seconds?: boolean;
112
+ /**
113
+ * It is an array containing seconds resolutions (in seconds without a postfix) the datafeed builds by itself.
114
+ */
115
+ seconds_multipliers?: string[];
116
+ has_daily?: boolean;
117
+ has_weekly_and_monthly?: boolean;
118
+ has_empty_bars?: boolean;
119
+ force_session_rebuild?: boolean;
120
+ has_no_volume?: boolean;
121
+ /**
122
+ * Integer showing typical volume value decimal places for this symbol
123
+ */
124
+ volume_precision?: number;
125
+ data_status?: 'streaming' | 'endofday' | 'pulsed' | 'delayed_streaming';
126
+ /**
127
+ * Boolean showing whether this symbol is expired futures contract or not.
128
+ */
129
+ expired?: boolean;
130
+ /**
131
+ * Unix timestamp of expiration date.
132
+ */
133
+ expiration_date?: number;
134
+ sector?: string;
135
+ industry?: string;
136
+ currency_code?: string;
137
+ }
138
+ export interface DOMLevel {
139
+ price: number;
140
+ volume: number;
141
+ }
142
+ export interface DOMData {
143
+ snapshot: boolean;
144
+ asks: DOMLevel[];
145
+ bids: DOMLevel[];
146
+ }
147
+ export interface Bar {
148
+ time: number;
149
+ open: number;
150
+ high: number;
151
+ low: number;
152
+ close: number;
153
+ volume?: number;
154
+ }
155
+ export interface SearchSymbolResultItem {
156
+ symbol: string;
157
+ full_name: string;
158
+ description: string;
159
+ exchange: string;
160
+ ticker: string;
161
+ type: string;
162
+ }
163
+ export interface HistoryMetadata {
164
+ noData: boolean;
165
+ nextTime?: number | null;
166
+ }
167
+ export interface MarkCustomColor {
168
+ color: string;
169
+ background: string;
170
+ }
171
+ export declare type MarkConstColors = 'red' | 'green' | 'blue' | 'yellow';
172
+ export interface Mark {
173
+ id: string | number;
174
+ time: number;
175
+ color: MarkConstColors | MarkCustomColor;
176
+ text: string;
177
+ label: string;
178
+ labelFontColor: string;
179
+ minSize: number;
180
+ }
181
+ export interface TimescaleMark {
182
+ id: string | number;
183
+ time: number;
184
+ color: MarkConstColors | string;
185
+ label: string;
186
+ tooltip: string[];
187
+ }
188
+ export declare type ResolutionBackValues = 'D' | 'M';
189
+ export interface HistoryDepth {
190
+ resolutionBack: ResolutionBackValues;
191
+ intervalBack: number;
192
+ }
193
+ export declare type SearchSymbolsCallback = (items: SearchSymbolResultItem[]) => void;
194
+ export declare type ResolveCallback = (symbolInfo: LibrarySymbolInfo) => void;
195
+ export declare type HistoryCallback = (bars: Bar[], meta: HistoryMetadata) => void;
196
+ export declare type SubscribeBarsCallback = (bar: Bar) => void;
197
+ export declare type GetMarksCallback<T> = (marks: T[]) => void;
198
+ export declare type ServerTimeCallback = (serverTime: number) => void;
199
+ export declare type DomeCallback = (data: DOMData) => void;
200
+ export declare type ErrorCallback = (reason: string) => void;
201
+ export interface IDatafeedChartApi {
202
+ calculateHistoryDepth?(resolution: ResolutionString, resolutionBack: ResolutionBackValues, intervalBack: number): HistoryDepth | undefined;
203
+ getMarks?(symbolInfo: LibrarySymbolInfo, startDate: number, endDate: number, onDataCallback: GetMarksCallback<Mark>, resolution: ResolutionString): void;
204
+ getTimescaleMarks?(symbolInfo: LibrarySymbolInfo, startDate: number, endDate: number, onDataCallback: GetMarksCallback<TimescaleMark>, resolution: ResolutionString): void;
205
+ /**
206
+ * This function is called if configuration flag supports_time is set to true when chart needs to know the server time.
207
+ * The charting library expects callback to be called once.
208
+ * The time is provided without milliseconds. Example: 1445324591. It is used to display Countdown on the price scale.
209
+ */
210
+ getServerTime?(callback: ServerTimeCallback): void;
211
+ searchSymbols(userInput: string, exchange: string, symbolType: string, onResult: SearchSymbolsCallback): void;
212
+ resolveSymbol(symbolName: string, onResolve: ResolveCallback, onError: ErrorCallback): void;
213
+ getBars(symbolInfo: LibrarySymbolInfo, resolution: ResolutionString, rangeStartDate: number, rangeEndDate: number, onResult: HistoryCallback, onError: ErrorCallback, isFirstCall: boolean): void;
214
+ subscribeBars(symbolInfo: LibrarySymbolInfo, resolution: ResolutionString, onTick: SubscribeBarsCallback, listenerGuid: string, onResetCacheNeededCallback: () => void): void;
215
+ unsubscribeBars(listenerGuid: string): void;
216
+ subscribeDepth?(symbolInfo: LibrarySymbolInfo, callback: DomeCallback): string;
217
+ unsubscribeDepth?(subscriberUID: string): void;
218
+ }
219
+
220
+ export as namespace TradingView;
hybrid/html/tradeview/charting_library/static/bundles/13.280894673316ad6ac6f2.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ webpackJsonp([13],{334:function(t,e,n){var o,i,r;!function(a,c){i=[t,n(516),n(1092),n(687)],o=c,void 0!==(r="function"==typeof o?o.apply(e,i):o)&&(t.exports=r)}(0,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=i(e),s=i(n),f=i(o),h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d=function(){function t(t,e){var n,o;for(n=0;n<e.length;n++)o=e[n],o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){r(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),d(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===h(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},516:function(t,e,n){var o,i,r;!function(a,c){i=[t,n(1091)],o=c,
2
+ void 0!==(r="function"==typeof o?o.apply(e,i):o)&&(t.exports=r)}(0,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=function(){function t(t,e){var n,o;for(n=0;n<e.length;n++)o=e[n],o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),c=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return a(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t,e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px",t=window.pageYOffset||document.documentElement.scrollTop,this.fakeElem.style.top=t+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",
3
+ set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=c})},613:function(t,e){function n(t,e){for(;t&&t.nodeType!==i;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o,i=9;"undefined"==typeof Element||Element.prototype.matches||(o=Element.prototype,o.matches=o.matchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector||o.webkitMatchesSelector),t.exports=n},614:function(t,e,n){function o(t,e,n,o,i){var a=r.apply(this,arguments);return t.addEventListener(n,a,i),{destroy:function(){t.removeEventListener(n,a,i)}}}function i(t,e,n,i,r){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,i,r)}))}function r(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(613);t.exports=i},686:function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},687:function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return i(t,e,n);if(c.nodeList(t))return r(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function r(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(686),u=n(614);t.exports=o},1091:function(t,e){function n(t){var e,n,o,i;return"SELECT"===t.nodeName?(t.focus(),e=t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?(n=t.hasAttribute("readonly"),n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value):(t.hasAttribute("contenteditable")&&t.focus(),o=window.getSelection(),
4
+ i=document.createRange(),i.selectNodeContents(t),o.removeAllRanges(),o.addRange(i),e=""+o),e}t.exports=n},1092:function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){i.off(t,o),e.apply(n,arguments)}var i=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;for(o;o<i;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n,o,i=this.e||(this.e={}),r=i[t],a=[];if(r&&e)for(n=0,o=r.length;n<o;n++)r[n].fn!==e&&r[n].fn._!==e&&a.push(r[n]);return a.length?i[t]=a:delete i[t],this}},t.exports=n}});
hybrid/html/tradeview/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur ADDED
Binary file (4.29 kB). View file
 
hybrid/html/tradeview/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur ADDED
Binary file (4.29 kB). View file
 
hybrid/html/tradeview/charting_library/static/bundles/ds-property-pages.1a3d233b8aa4552a7048.js ADDED
The diff for this file is too large to render. See raw diff
 
hybrid/html/tradeview/charting_library/static/bundles/editobjectdialog.25fa62e6b4f8125e697e.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ webpackJsonp([9,11],{14:function(e,t,i){"use strict";function a(e){function t(t,i,a){e.call(this,t,i,a),this._linetool=a,this._templateList=new p(this._linetool._constructor,this.applyTemplate.bind(this))}return inherit(t,e),t.prototype.applyTemplate=function(e){this._linetool.restoreTemplate(e),this._model.model().updateSource(this._linetool),this.loadData()},t.prototype.createTemplateButton=function(e){var t=this;return e=$.extend({},e,{getDataForSaveAs:function(){return t._linetool.template()}}),this._templateList.createButton(e)},t}function o(e,t,i){n.call(this,e,t),this._linetool=i}var r=i(10),n=r.PropertyPage,s=r.ColorBinding,l=i(47).addColorPicker,p=i(268);inherit(o,n),o.prototype.createOneColorForAllLinesWidget=function(){var e=$("<td class='colorpicker-cell'>");return this.bindControl(new s(l(e),this._linetool.properties().collectibleColors,!0,this.model(),"Change All Lines Color",0)),{label:$("<td>"+$.t("Use one color")+"</td>"),editor:e}},o.prototype.addOneColorPropertyWidget=function(e){var t=this.createOneColorForAllLinesWidget(),i=$("<tr>");i.append($("<td>")).append(t.label).append(t.editor),i.appendTo(e)},o=a(o),o.createTemplatesPropertyPage=a,e.exports=o},81:function(e,t,i){"use strict";function a(e,t,i){r.call(this,e,t),this._linetool=i,this.prepareLayout()}var o=i(10),r=o.PropertyPage,n=o.GreateTransformer,s=o.LessTransformer,l=o.ToIntTransformer,p=o.SimpleStringBinder;i(142),inherit(a,r),a.BarIndexPastLimit=-5e4,a.BarIndexFutureLimit=15e3,a.prototype.bindBarIndex=function(e,t,i,o){var r=[l(e.value()),n(a.BarIndexPastLimit),s(a.BarIndexFutureLimit)];this.bindControl(new p(t,e,r,!1,i,o))},a.prototype.createPriceEditor=function(e){var t,i=this._linetool.ownerSource().formatter(),a=function(e){return i.format(e)},o=function(e){var t=i.parse(e);if(t.res)return t.price?t.price:t.value},r=$("<input type='text'>");return r.TVTicker({step:i._minMove/i._priceScale||1,formatter:a,parser:o}),e&&(t=[function(t){var i=o(t);return void 0===i?e.value():i}],this.bindControl(new p(r,e,t,!1,this.model(),"Change "+this._linetool+" point price")).addFormatter(function(e){return i.format(e)})),r},a.prototype._createPointRow=function(e,t,i){var a,o,r,n,s,l=$("<tr>"),p=$("<td>");return p.html($.t("Price")+i),p.appendTo(l),a=$("<td>"),a.appendTo(l),o=this.createPriceEditor(t.price),o.appendTo(a),r=$("<td>"),r.html($.t("Bar #")),r.appendTo(l),n=$("<td>"),n.appendTo(l),s=$("<input type='text'>"),s.appendTo(n),s.addClass("ticker"),this.bindBarIndex(t.bar,s,this.model(),"Change "+this._linetool+" point bar index"),l},a.prototype.prepareLayoutForTable=function(e){var t,i,a,o,r,n=this._linetool.points(),s=n.length;for(t=0;t<n.length;t++)i=n[t],(a=this._linetool.properties().points[t])&&(o=t||s>1?" "+(t+1):"",r=this._createPointRow(i,a,o),r.appendTo(e))},a.prototype.prepareLayout=function(){this._table=$(document.createElement("table")),this._table.addClass("property-page"),this._table.attr("cellspacing","0"),this._table.attr("cellpadding","2"),this.prepareLayoutForTable(this._table),this.loadData()},
2
+ a.prototype.widget=function(){return this._table},e.exports=a},121:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Coordinates=100]="Coordinates",e[e.Display=100]="Display",e[e.Style=200]="Style",e[e.Inputs=300]="Inputs",e[e.Properties=250]="Properties"}(t.TabPriority||(t.TabPriority={})),function(e){e.background="Background",e.coordinates="Coordinates",e.drawings="Drawings",e.events="Events",e.eventsAndAlerts="Events & Alerts",e.inputs="Inputs",e.properties="Properties",e.scales="Scales",e.sourceCode="Source Code",e.style="Style",e.timezoneSessions="Timezone/Sessions",e.trading="Trading",e.visibility="Visibility"}(t.TabNames||(t.TabNames={})),function(e){e[e.Default=100]="Default",e[e.UserSave=200]="UserSave",e[e.Override=300]="Override"}(t.TabOpenFrom||(t.TabOpenFrom={}))},162:function(e,t){"use strict";t.createInputsPropertyPage=function(e,t){var i=e.getInputsPropertyPage();return null==i?null:new i(e.properties(),t,e)},t.createStudyStrategyPropertyPage=function(e,t){var i=e.getStrategyPropertyPage();return null==i?null:new i(e.properties(),t,e)},t.createStylesPropertyPage=function(e,t){var i=e.getStylesPropertyPage();return null==i?null:new i(e.properties(),t,e)},t.createDisplayPropertyPage=function(e,t){var i=e.getDisplayPropertyPage();return null==i?null:new i(e.properties(),t,e)},t.createVisibilitiesPropertyPage=function(e,t){var i=e.getVisibilitiesPropertyPage();return null==i?null:new i(e.properties(),t,e)},t.hasInputsPropertyPage=function(e){return null!==e.getInputsPropertyPage()},t.hasStylesPropertyPage=function(e){return null!==e.getStylesPropertyPage()}},396:function(e,t,i){(function(t){"use strict";function a(e,t,i){this._source=e,this._model=t,this._undoCheckpoint=i}var o=i(3).LineDataSource,r=i(61).Study,n=i(85),s=i(62).DataSource,l=i(43),p=i(103).bindPopupMenu,c=i(121),d=i(48).trackEvent;i(142),a.prototype.hide=function(e){TVDialogs.destroy(this._dialogTitle,{undoChanges:!!e})},a.prototype._onDestroy=function(e,t){var i,a=(t||{}).undoChanges;$(window).unbind("keyup.hidePropertyDialog"),a?(i=this._undoCheckpoint?this._undoCheckpoint:this._undoCheckpointOnShow)&&this._model.undoToCheckpoint(i):this._source.hasAlert.value()&&this._source.localAndServerAlersMismatch&&this._source.synchronizeAlert(!0),this._undoCheckpointOnShow&&delete this._undoCheckpointOnShow,window.lineToolPropertiesToolbar&&window.lineToolPropertiesToolbar.refresh()},a.prototype.isVisible=function(){return this._dialog&&this._dialog.is(":visible")},a.prototype.focusOnText=function(){this._dialog.find('input[type="text"]').focus().select()},a.prototype.switchTab=function(e,t){var i,a;if(this._tabs)return i=null,e?e=e.valueOf():null===e&&(e=void 0),"string"==typeof e&&$.each(this._tabs,function(t,a){if(a.name===e)return i=a,!1}),"object"==typeof e&&$.each(this._tabs,function(t,a){if(e===a||$(a.labelObject).is(e)||$(a.wrapperObject).is(e))return i=a,!1}),i||(i=this._tabs[~~e]),!!i&&($.each(this._tabs,function(e,t){var a=t===i;$(t.wrapperObject)[a?"show":"hide"](),
3
+ $(t.labelObject)[a?"addClass":"removeClass"]("active")}),t&&(a=this.activeTabSettingsName())&&TVSettings.setValue(a,i.name),this._dialog.height()+100>$(window).height()&&!i.isScrollable&&this.makeScrollable(i),$(":focus").blur(),!0)},a.prototype.makeScrollable=function(e){var t=e.wrapperObject,i=$(e.objects[0]),a=i.width();t.css({height:$(window).height()/1.4,overflow:"auto"}),i.css("width",a+20),e.isScrollable=!0},a.prototype.appendToTab=function(e,t,i,a,o,r){var n,s;$(e).is("table")&&!$(e).find("tr").size()||(this._tabs||(this._tabs=[]),$.each(this._tabs,function(e,i){if(i.name===t)return n=e,!1}),void 0===n&&(this._tabs.push({name:t,localizedName:$.t(t),objects:$(),displayPriority:0,defaultOpen:0,isButton:!!o,callback:o?r||function(){}:null}),n=this._tabs.length-1),s=this._tabs[n],s.objects=s.objects.add(e),s.displayPriority=Math.max(s.displayPriority||0,i||0),s.defaultOpen=Math.max(s.defaultOpen||0,a||0))},a.prototype.insertTabs=function(){function e(e){r&&r===e.name&&(e.defaultOpen=Math.max(~~e.defaultOpen,c.TabOpenFrom.UserSave)),(!a||~~a.defaultOpen<~~e.defaultOpen)&&(a=e),e.labelObject=$('<a href="#" class="properties-tabs-label tv-tabs__tab"></a>').text(e.localizedName).appendTo(i._tabContainer),e.labelObject.bind("click",function(e){e.preventDefault(),i.switchTab(this,!0)});var t=$('<div class="main-properties"></div>');e.wrapperObject=$().add(t),e.objects.each(function(i,a){var o=$(a);o.is("table")?(o.data("layout-separated")&&(e.wrapperObject=e.wrapperObject.add('<div class="properties-separator"></div>').add(t=$('<div class="main-properties"></div>')),o.removeData("layout-separated")),t.append(o),o.children("tbody").each(function(i,o){if(0!==i&&$(o).data("layout-separated")){e.wrapperObject=e.wrapperObject.add('<div class="properties-separator"></div>').add(t=$('<div class="main-properties"></div>'));var r=$(a).clone(!0,!1).appendTo(t);r.children().remove(),r.append(o),$(o).removeData("layout-separated")}})):t.append(o)}),e.wrapperObject.appendTo(i._container)}function t(e){e.labelObject=$('<a href="#" class="properties-tabs-label tv-tabs__tab"></a>').text(e.localizedName).appendTo(i._tabContainer),e.labelObject.bind("click",e.callback)}var i,a,o,r;this._tabs&&(this._tabs.sort(function(e,t){return(t.displayPriority||0)-(e.displayPriority||0)}),i=this,a=null,o=this.activeTabSettingsName(),o&&(r=TVSettings.getValue(o)),$.each(this._tabs,function(i,a){a.isButton?t(a):e(a)}),this.switchTab(a))},a.prototype.activeTabSettingsName=function(){var e=this._source;if(e)return e instanceof n?"properties_dialog.active_tab.chart":e instanceof o?"properties_dialog.active_tab.drawing":e instanceof r?"properties_dialog.active_tab.study":void 0},a.prototype.show=function(e){function a(){v.hide(!0)}var u,h,b,f,y,_,g,v,T,m,P,w,S,C,O,D,k,I,x,j,N,V,L,B,z;if(t.enabled("property_pages")&&(u=i(162),e=e||{},h=e.onWidget||!1,TradingView.isInherited(this._source.constructor,n)&&d("GUI","Series Properties"),TradingView.isInherited(this._source.constructor,r)&&d("GUI","Study Properties"),
4
+ TradingView.isInherited(this._source.constructor,s)&&this._model.setSelectedSource(this._source),b=u.createStudyStrategyPropertyPage(this._source,this._model),f=u.createInputsPropertyPage(this._source,this._model),y=u.createStylesPropertyPage(this._source,this._model),_=u.createVisibilitiesPropertyPage(this._source,this._model),g=u.createDisplayPropertyPage(this._source,this._model),f&&!f.widget().is(":empty")||y||b))return v=this,T=null!==f,m=this._source.title(),P=TVDialogs.createDialog(m,{hideTitle:!0,dragHandle:".properties-tabs"}),w=P.find("._tv-dialog-content"),S=$('<div class="properties-tabs tv-tabs"></div>').appendTo(w),O=[],D=400,this._tabs=O,this._dialog=P,this._dialogTitle=m,this._container=w,this._tabContainer=S,this._undoCheckpointOnShow=this._model.createUndoCheckpoint(),P.on("destroy",function(e,t){var t=t||{};v._onDestroy(e,t),C&&(t.undoChanges?C.restore():C.applyTheme()),f&&f.destroy(),b&&b.destroy(),y&&y.destroy(),g&&g.destroy(),_&&_.destroy(),$("select",w).each(function(){$(this).selectbox("detach")})}),e.selectScales&&y.setScalesOpenTab&&y.setScalesOpenTab(),e.selectTmz&&y.setTmzOpenTab&&y.setTmzOpenTab(),!this._model.readOnly()&&b&&b.widget().each(function(e,t){var i,a,o=+$(t).data("layout-tab-priority");isNaN(o)&&(o=c.TabPriority.Properties),i=~~$(t).data("layout-tab-open"),a=$(t).data("layout-tab"),void 0===a&&(a=c.TabNames.properties),v.appendToTab(t,a,o,i)}),this._model.readOnly()||!T||f.widget().is(":empty")||f.widget().each(function(e,t){var a,o,r=i(81),n=f instanceof r,s=+$(t).data("layout-tab-priority");TradingView.isNaN(s)&&(s=n?c.TabPriority.Coordinates:c.TabPriority.Inputs),a=~~$(t).data("layout-tab-open"),o=$(t).data("layout-tab"),void 0===o&&(o=n?c.TabNames.coordinates:c.TabNames.inputs),v.appendToTab(t,o,s,a)}),y&&y.widget().each(function(e,t){var a,o,r,n=+$(t).data("layout-tab-priority");TradingView.isNaN(n)&&(n=c.TabPriority.Style),a=~~$(t).data("layout-tab-open"),o=i(14),!a&&y instanceof o&&(a=c.TabOpenFrom.Default),r=$(t).data("layout-tab"),void 0===r&&(r=c.TabNames.style),v.appendToTab(t,r,n,a)}),g&&g.widget().each(function(e,t){var i,a,o=+$(t).data("layout-tab-priority");TradingView.isNaN(o)&&(o=c.TabPriority.Display),i=~~$(t).data("layout-tab-open"),a=$(t).data("layout-tab"),void 0===a&&(a=c.TabNames.properties),v.appendToTab(t,a,o,i)}),_&&_.widget().each(function(e,t){v.appendToTab(t,c.TabNames.visibility,c.TabPriority.Display,!1)}),x=this._source instanceof r&&!!this._source.metaInfo().pine,x&&this._source.metaInfo(),this.insertTabs(),this._helpItemRequired()&&this._createHelp(),j=110,$(".js-dialog").each(function(){var e=parseInt($(this).css("z-index"),10);e>j&&(j=e)}),P.css("z-index",j),k=$('<div class="main-properties main-properties-aftertabs"></div>').appendTo(w),I=$('<div class="dialog-buttons">').appendTo(k),N=function(){function e(t){t._childs&&t._childs.length&&$.each(t._childs,function(i,a){"percentage"===a?t.percentage.listeners().fire(t.percentage):e(t[a])})}var t=[];y&&"function"==typeof y.defaultProperties&&(t=t.concat(y.defaultProperties())),
5
+ f&&"function"==typeof f.defaultProperties&&(t=t.concat(f.defaultProperties())),0===t.length&&v._source.properties?t=[v._source.properties()]:v._source._sessionsStudy&&(t=t.concat(v._source._sessionsStudy.properties())),t.length&&($.each(t,function(t,i){"chartproperties"===i._defaultName||v._model.restoreFactoryDefaults(i),v._source.calcIsActualSymbol&&v._source.calcIsActualSymbol(),e(i)}),v._source.properties().minTick&&v._source.properties().minTick.listeners().fire(v._source.properties().minTick),v._source.properties().precision&&v._source.properties().precision.listeners().fire(v._source.properties().precision),f&&f.loadData(),b&&b.loadData(),y.onResoreDefaults&&y.onResoreDefaults(),y&&y.loadData(),_&&_.loadData())},V=function(){_&&_.loadData(),f&&f.loadData()},(!h||window.is_authenticated)&&y&&"function"==typeof y.createTemplateButton&&t.enabled("linetoolpropertieswidget_template_button")?(C&&I[0].appendChild(C.domNode),y.createTemplateButton({popupZIndex:j,defaultsCallback:N,loadTemplateCallback:V}).addClass("tv-left").appendTo(I)):TradingView.isInherited(this._source.constructor,r)?(L=[{title:$.t("Reset Settings"),action:N},{title:$.t("Save As Default"),action:function(){v._source.properties().saveDefaults()}}],B=$('<a href="#" class="_tv-button tv-left">'+$.t("Defaults")+'<span class="icon-dropdown"></span></a>'),B.on("click",function(e){e.preventDefault();var t=$(this);t.is(".active")||t.trigger("button-popup",[L,!0])}).appendTo(I),p(B,null,{direction:"down",event:"button-popup",notCloseOnButtons:!0,zIndex:j})):$('<a class="_tv-button tv-left">'+$.t("Defaults")+"</a>").appendTo(I).click(N),$('<a class="_tv-button ok">'+$.t("OK")+"</a>").appendTo(I).click(function(){v.hide(),window.saver.saveChartSilently()}),$('<a class="_tv-button cancel">'+$.t("Cancel")+"</a>").appendTo(I).on("click",a),P.find("._tv-dialog-title a").on("click",a),$(window).bind("keyup.hidePropertyDialog",function(e){13===e.keyCode&&"textarea"!==e.target.tagName.toLowerCase()&&v.hide()}),$("select",w).each(function(){var e=$(this),t="tv-select-container dialog";e.hasClass("tv-select-container-fontsize")&&(t+=" tv-select-container-fontsize"),e.selectbox({speed:100,classHolder:t})}),$('input[type="text"]',w).addClass("tv-text-input inset dialog"),$("input.ticker",w).TVTicker(),P.css("min-width",D+"px"),TVDialogs.applyHandlers(P,e),z={top:($(window).height()-P.height())/2,left:($(window).width()-P.width())/2},y&&"function"==typeof y.dialogPosition&&(z=y.dialogPosition(z,P)||z),TVDialogs.positionDialog(P,z),window.lineToolPropertiesToolbar&&window.lineToolPropertiesToolbar.hide(),l.emit("edit_object_dialog",{objectType:this._source===this._model.mainSeries()?"mainSeries":this._source instanceof o?"drawing":this._source instanceof r?"study":"other",scriptTitle:this._source.title()}),P},a.prototype._helpItemRequired=function(){return this._source._metaInfo&&!!this._source._metaInfo.helpURL},a.prototype._createHelp=function(){var e=$('<a class="help" href="#" target="_blank" title="'+$.t("Help")+'"></a>')
6
+ ;e.attr("href",this._source._metaInfo.helpURL),this._tabContainer.prepend(e)},e.exports=a}).call(t,i(7))}});
hybrid/html/tradeview/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur ADDED
Binary file (4.29 kB). View file
 
hybrid/html/tradeview/charting_library/static/bundles/go-to-date-dialog-impl.5faeb6b7a961fd527d9b.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ webpackJsonp([6],{108:function(e,t,n){"use strict";function o(e){return t=function(t){function n(e,n){var o=t.call(this,e,n)||this;return o._getWrappedComponent=function(e){o._instance=e},o}return r.__extends(n,t),n.prototype.componentDidMount=function(){this._instance.componentWillEnter&&this.context.lifecycleProvider.registerWillEnterCb(this._instance.componentWillEnter.bind(this._instance)),this._instance.componentDidEnter&&this.context.lifecycleProvider.registerDidEnterCb(this._instance.componentDidEnter.bind(this._instance)),this._instance.componentWillLeave&&this.context.lifecycleProvider.registerWillLeaveCb(this._instance.componentWillLeave.bind(this._instance)),this._instance.componentDidLeave&&this.context.lifecycleProvider.registerDidLeaveCb(this._instance.componentDidLeave.bind(this._instance))},n.prototype.render=function(){return i.createElement(e,r.__assign({},this.props,{ref:this._getWrappedComponent}),this.props.children)},n}(i.PureComponent),t.displayName="Lifecycle Consumer",t.contextTypes={lifecycleProvider:s.object},t;var t}var r,i,s,a;Object.defineProperty(t,"__esModule",{value:!0}),r=n(5),i=n(2),s=n(86),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t}(i.PureComponent),t.LifecycleConsumer=a,t.makeTransitionGroupLifecycleConsumer=o},153:function(e,t){e.exports={body:"body-1yAIljnK-"}},154:function(e,t){e.exports={footer:"footer-AwxgkLHY-"}},155:function(e,t){e.exports={header:"header-2Hz0Lxou-",close:"close-3H_MMLbw-"}},156:function(e,t){e.exports={message:"message-1CYdTy_T-",error:"error-1u_m-Ehm-"}},157:function(e,t){e.exports={dialog:"dialog-13-QRYuG-",rounded:"rounded-1GLivxii-",shadowed:"shadowed-30OTTAts-"}},182:function(e,t,n){"use strict";function o(e){return r.createElement("div",{className:i.body,ref:e.reference},e.children)}var r,i;Object.defineProperty(t,"__esModule",{value:!0}),r=n(2),i=n(153),t.Body=o},183:function(e,t,n){"use strict";var o,r,i,s;Object.defineProperty(t,"__esModule",{value:!0}),o=n(185),t.Header=o.Header,r=n(184),t.Footer=r.Footer,i=n(182),t.Body=i.Body,s=n(186),t.Message=s.Message},184:function(e,t,n){"use strict";function o(e){return r.createElement("div",{className:i.footer,ref:e.reference},e.children)}var r,i;Object.defineProperty(t,"__esModule",{value:!0}),r=n(2),i=n(154),t.Footer=o},185:function(e,t,n){"use strict";function o(e){return r.createElement("div",{className:i.header,"data-dragg-area":!0,ref:e.reference},e.children,r.createElement(a.Icon,{className:i.close,icon:s,onClick:e.onClose}))}var r,i,s,a;Object.defineProperty(t,"__esModule",{value:!0}),r=n(2),i=n(155),s=n(109),a=n(77),t.Header=o},186:function(e,t,n){"use strict";function o(e){var t,n;return e.text?t=r.createElement("span",null,e.text):e.html&&(t=r.createElement("span",{dangerouslySetInnerHTML:{__html:e.html}})),n=i.message,e.isError&&(n+=" "+i.error),r.createElement(s.CSSTransitionGroup,{transitionName:"message",transitionEnterTimeout:c.dur,transitionLeaveTimeout:c.dur},t?r.createElement("div",{className:n,key:"0"
2
+ },r.createElement(a.OutsideEvent,{mouseDown:!0,toucUINart:!0,handler:e.onClickOutside},t)):null)}var r,i,s,a,c;Object.defineProperty(t,"__esModule",{value:!0}),r=n(2),i=n(156),s=n(46),a=n(107),c=n(28),t.Message=o},187:function(e,t,n){"use strict";function o(e){var t,n=e.rounded,o=void 0===n||n,a=e.shadowed,c=void 0===a||a,u=e.className,l=void 0===u?"":u,d=s(i.dialog,(t={},t[l]=!!l,t[i.rounded]=o,t[i.shadowed]=c,t[i.animated]=i.animated,t)),p={bottom:e.bottom,left:e.left,maxWidth:e.width,right:e.right,top:e.top,zIndex:e.zIndex};return r.createElement("div",{className:d,ref:e.reference,style:p,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onClick:e.onClick},e.children)}var r,i,s;Object.defineProperty(t,"__esModule",{value:!0}),r=n(2),i=n(157),s=n(26),t.Dialog=o},188:function(e,t,n){"use strict";function o(){d=document.createElement("div"),document.body.appendChild(d),i()}function r(e,t){p.getItems().forEach(function(n){n!==t&&m.emitEvent(e+":"+n)})}function i(e){a.render(s.createElement(c.TransitionGroup,{component:"div"},Array.from(f.values())),d,e)}var s,a,c,u,l,d,p,h,m,f;Object.defineProperty(t,"__esModule",{value:!0}),s=n(2),a=n(55),c=n(46),u=n(110),l=function(){function e(){this._storage=[]}return e.prototype.add=function(e){this._storage.push(e)},e.prototype.remove=function(e){this._storage=this._storage.filter(function(t){return e!==t})},e.prototype.getIndex=function(e){return this._storage.findIndex(function(t){return e===t})},e.prototype.toTop=function(e){this.remove(e),this.add(e)},e.prototype.has=function(e){return this._storage.includes(e)},e.prototype.getItems=function(){return this._storage},e}(),t.EVENTS={ZindexUpdate:"ZindexUpdate"},p=new l,h=150,m=new u,f=new Map,function(e){function n(e){p.has(e)||(p.add(e),r(t.EVENTS.ZindexUpdate,e))}function o(e){p.remove(e),f.delete(e)}function s(e){return p.getIndex(e)+h}function a(e,t,n){f.set(e,t),i(n)}function c(e,t){o(e),i(t)}function u(){return m}e.registerWindow=n,e.unregisterWindow=o,e.getZindex=s,e.renderWindow=a,e.removeWindow=c,e.getStream=u}(t.OverlapManager||(t.OverlapManager={})),o()},189:function(e,t,n){"use strict";function o(e){return t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return i.__extends(n,t),n.prototype.componentWillEnter=function(e){this.props.beforeOpen?this.props.beforeOpen(e):e()},n.prototype.componentDidEnter=function(){this.props.afterOpen&&this.props.afterOpen()},n.prototype.componentWillLeave=function(e){this.props.beforeClose?this.props.beforeClose(e):e()},n.prototype.componentDidLeave=function(){this.props.afterClose&&this.props.afterClose()},n.prototype.render=function(){return s.createElement(e,i.__assign({},this.props))},n}(s.PureComponent),t.displayName="OverlapLifecycle("+(e.displayName||"Component")+")",t;var t}function r(e){var t,n=u.makeTransitionGroupLifecycleProvider(l.makeTransitionGroupLifecycleConsumer(o(e)));return t=function(e){function t(t){var n=e.call(this,t)||this;return n._onZIndexUpdate=function(){
3
+ n.props.isOpened&&("parent"===n.props.root?n.forceUpdate():n._renderWindow(n.props))},n._uuid=d.guid(),n._zIndexUpdateEvent=c.EVENTS.ZindexUpdate+":"+n._uuid,n}return i.__extends(t,e),t.prototype.componentDidMount=function(){this._subscribe()},t.prototype.componentWillUnmount=function(){this._unsubscribe(),c.OverlapManager.removeWindow(this._uuid)},t.prototype.componentWillReceiveProps=function(e){"parent"!==this.props.root&&this._renderWindow(e)},t.prototype.render=function(){return"parent"===this.props.root?s.createElement(a.TransitionGroup,{component:"div"},this._createContent(this.props)):null},t.prototype._renderWindow=function(e){c.OverlapManager.renderWindow(this._uuid,this._createContent(e))},t.prototype._createContent=function(e){return e.isOpened?(c.OverlapManager.registerWindow(this._uuid),s.createElement(n,i.__assign({},e,{key:this._uuid,zIndex:c.OverlapManager.getZindex(this._uuid)}),e.children)):(c.OverlapManager.unregisterWindow(this._uuid),null)},t.prototype._subscribe=function(){c.OverlapManager.getStream().on(this._zIndexUpdateEvent,this._onZIndexUpdate)},t.prototype._unsubscribe=function(){c.OverlapManager.getStream().off(this._zIndexUpdateEvent,this._onZIndexUpdate)},t}(s.PureComponent),t.displayName="Overlapable("+(e.displayName||"Component")+")",t}var i,s,a,c,u,l,d;Object.defineProperty(t,"__esModule",{value:!0}),i=n(5),s=n(2),a=n(46),c=n(188),u=n(191),l=n(108),d=n(64),t.makeOverlapable=r},191:function(e,t,n){"use strict";function o(e){return t=function(t){function n(e){var n=t.call(this,e)||this;return n._registerWillEnterCb=function(e){n._willEnter.push(e)},n._registerDidEnterCb=function(e){n._didEnter.push(e)},n._registerWillLeaveCb=function(e){n._willLeave.push(e)},n._registerDidLeaveCb=function(e){n._didLeave.push(e)},n._willEnter=[],n._didEnter=[],n._willLeave=[],n._didLeave=[],n}return r.__extends(n,t),n.prototype.getChildContext=function(){return{lifecycleProvider:{registerWillEnterCb:this._registerWillEnterCb,registerDidEnterCb:this._registerDidEnterCb,registerWillLeaveCb:this._registerWillLeaveCb,registerDidLeaveCb:this._registerDidLeaveCb}}},n.prototype.componentWillEnter=function(e){var t=this._willEnter.map(function(e){return new Promise(function(t){e(t)})});Promise.all(t).then(e)},n.prototype.componentDidEnter=function(){this._didEnter.forEach(function(e){e()})},n.prototype.componentWillLeave=function(e){var t=this._willLeave.map(function(e){return new Promise(function(t){e(t)})});Promise.all(t).then(e)},n.prototype.componentDidLeave=function(){this._didLeave.forEach(function(e){e()})},n.prototype.render=function(){return i.createElement(e,r.__assign({},this.props),this.props.children)},n}(i.PureComponent),t.displayName="Lifecycle Provider",t.childContextTypes={lifecycleProvider:s.object},t;var t}var r,i,s;Object.defineProperty(t,"__esModule",{value:!0}),r=n(5),i=n(2),s=n(86),t.makeTransitionGroupLifecycleProvider=o},201:function(e,t){e.exports={inputWrapper:"inputWrapper-23iUt2Ae-",textInput:"textInput-3hvomQp9-",error:"error-2ydrzcvg-",success:"success-2y4Cbw_L-",
4
+ xsmall:"xsmall-2Dz_yiDV-",small:"small-3g0mV7FW-",large:"large-CZ_w52Xn-",iconed:"iconed-2X3rffL9-",inputIcon:"inputIcon-nJhQLYdg-",clearable:"clearable-3HVD9v3B-",clearIcon:"clearIcon-UZyPhrkf-",grouped:"grouped-2xS7_jZ2-"}},255:function(e,t){e.exports={ghost:"ghost-2xkVjo4o-",primary:"primary-nwbhr-QZ-",success:"success-13aJxw0L-",danger:"danger-1jVFBwRj-",warning:"warning-1sksz0Rq-",secondary:"secondary-2H-Jwmir-",button:"button-2jCWN5M1-",withPadding:"withPadding-UPhHkA1c-",hiddenText:"hiddenText-13D-S4nC-",text:"text-1d01iK8L-",loader:"loader-1aihbDEL-",base:"base-2PiGQ3aT-",secondaryScript:"secondaryScript-3pO7_bSM-",link:"link-1v4pOPj2-",xsmall:"xsmall-1XIYvP4K-",small:"small-2fwP8rrU-",large:"large-1a-qmr37-",grouped:"grouped-3T2Y_EXg-",growable:"growable-S0qQuxEB-",active:"active-3Eem2fUt-",disabled:"disabled-2jaDvv_v-"}},256:function(e,t){e.exports={dialog:"dialog-2MaUXXMw-",dragging:"dragging-3oeGgbIQ-"}},257:function(e,t){e.exports={loader:"loader-3q6az1FO-",item:"item-I1y2jPt8-","tv-button-loader":"tv-button-loader-or3q47Bu-",black:"black-29_3FgL9-",white:"white-PhPAMkPg-"}},258:function(e,t){e.exports={calendar:"calendar-31T-f8xW-",header:"header-1IspLgQG-",title:"title-165i_Hrv-",switchBtn:"switchBtn-3TukPHdl-",prev:"prev-x9isN-kp-",next:"next-34HZFkxR-",month:"month-2hQY5F0z-",weekdays:"weekdays-uTDB6j1H-",weeks:"weeks-2XtkuRel-",week:"week-5_tvG-8b-",day:"day-1IQ3pxmF-",disabled:"disabled-3CCvhen1-",selected:"selected-1HN89txM-",currentDay:"currentDay-3Ojny1au-",otherMonth:"otherMonth-3Wqk07bY-"}},259:function(e,t){e.exports={clock:"clock-24NOooZu-",header:"header-2zhGNKci-",number:"number-2B8nA4rf-",active:"active-p8XQNXmZ-",body:"body-1lkcbofs-",clockFace:"clockFace-ratNcUJ8-",face:"face-2S_dz-Lt-",inner:"inner-1O9iOFrM-",hand:"hand-14LdqePA-",knob:"knob-3OZv5WLP-",centerDot:"centerDot-1Fru2d4j-"}},322:function(e,t,n){"use strict";function o(e){switch(e){case"default":return u.base;case"primary":return u.primary;case"secondary":return u.secondary;case"secondary-script":return u.secondaryScript;case"success":return u.success;case"warning":return u.warning;case"danger":return u.danger;case"link":return u.link;default:return""}}function r(e){switch(e){case"xsmall":return u.xsmall;case"small":return u.small;case"large":return u.large;default:return""}}function i(e){switch(e){case"ghost":return u.ghost;default:return""}}function s(e){var t,n=e.active,s=void 0===n||n,h=e.children,m=e.className,f=void 0===m?"":m,_=e.disabled,v=void 0!==_&&_,g=e.grouped,y=void 0!==g&&g,w=e.growable,E=void 0!==w&&w,M=e.id,b=void 0===M?0:M,C=e.onClick,k=e.reference,x=e.size,D=e.theme,S=e.type,P=void 0===S?"default":S,T=e.loading,N=void 0!==T&&T,L=e.withPadding,O=void 0===L||L,H=e.title,I=void 0===H?"":H,W=e.disabledClassName,z=e.tabIndex,j=void 0===z?0:z,F=e.component,V=void 0===F?"button":F,R=e.target,Y=void 0===R?"":R,G=e.href,U=void 0===G?"":G,B=c((t={},t[f]=!!f,t[u.button]=!0,t[u.active]=s&&!v,t[W||u.disabled]=v,t[u.grouped]=y,t[u.growable]=E,t[u.withPadding]=O,t[r(x)]=!!x,t[i(D)]=!!D,t[o(P)]=!0,
5
+ t)),A="default"===P?"black":"white",X=a.createElement("span",{key:"1",className:u.text},h);return N&&(X=a.createElement("span",{key:"2",className:u.loader},a.createElement(d.Loader,{color:A}))),a.createElement(l.CSSTransitionGroup,{component:V,tabIndex:j,transitionEnterTimeout:p.dur,transitionLeaveTimeout:p.dur,transitionName:"body",className:B,disabled:v,key:b,onClick:N?void 0:C,ref:k,title:I,target:Y,href:U},a.createElement("span",{className:u.hiddenText},h),X)}var a,c,u,l,d,p;Object.defineProperty(t,"__esModule",{value:!0}),a=n(2),c=n(26),u=n(255),l=n(46),d=n(327),p=n(28),t.Button=s},323:function(e,t){"use strict";function n(e,t,n){return e+t>n&&(e=n-t),e<0&&(e=0),e}function o(e){return{x:e.pageX,y:e.pageY}}function r(e){return{x:e.touches[0].pageX,y:e.touches[0].pageY}}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){var n=this;this._drag=null,this._onMouseDragStart=function(e){e.preventDefault(),n._dragStart(o(e))},this._onTouchDragStart=function(e){n._dragStart(r(e))},this._onMouseDragMove=function(e){n._dragMove(o(e))},this._onTouchDragMove=function(e){e.preventDefault(),n._dragMove(r(e))},this._onDragStop=function(){n._drag=null,n._header.classList.remove("dragging")},this._dialog=e,this._header=t,t.addEventListener("mousedown",this._onMouseDragStart),t.addEventListener("toucUINart",this._onTouchDragStart),document.addEventListener("mousemove",this._onMouseDragMove),document.addEventListener("touchmove",this._onTouchDragMove),document.addEventListener("mouseup",this._onDragStop),document.addEventListener("touchend",this._onDragStop)}return e.prototype.destroy=function(){this._header.removeEventListener("mousedown",this._onMouseDragStart),this._header.removeEventListener("toucUINart",this._onTouchDragStart),document.removeEventListener("mousemove",this._onMouseDragMove),document.removeEventListener("touchmove",this._onTouchDragMove),document.removeEventListener("mouseup",this._onDragStop),document.removeEventListener("touchend",this._onDragStop)},e.prototype._dragStart=function(e){var t=this._dialog.getBoundingClientRect();this._drag={startX:e.x,startY:e.y,dialogX:t.left,dialogY:t.top},this._dialog.style.left=t.left+"px",this._dialog.style.top=t.top+"px",this._header.classList.add("dragging")},e.prototype._dragMove=function(e){var t,n;this._drag&&(t=e.x-this._drag.startX,n=e.y-this._drag.startY,this._moveDialog(this._drag.dialogX+t,this._drag.dialogY+n))},e.prototype._moveDialog=function(e,t){var o=this._dialog.getBoundingClientRect();this._dialog.style.left=n(e,o.width,window.innerWidth)+"px",this._dialog.style.top=n(t,o.height,window.innerHeight)+"px"},e}();t.DragHandler=i},324:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l,d,p,h;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(187),s=n(189),a=n(108),c=n(107),u=n(256),l=n(323),d=n(325),p=n(26),h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._setDialog=function(e){e&&(t._dialog=e)},t}return o.__extends(t,e),t.prototype.render=function(){return r.createElement("span",{
6
+ style:{zIndex:this.props.zIndex}},r.createElement(c.OutsideEvent,{mouseDown:!0,toucUINart:!0,handler:this.props.onClickOutside},r.createElement(i.Dialog,o.__assign({},this.props,{reference:this._setDialog,className:p(u.dialog,this.props.className)}),this.props.children)))},t.prototype.componentDidMount=function(){if(this._dialog){var e=this._dialog.querySelector("[data-dragg-area]");e&&(this._drag=new l.DragHandler(this._dialog,e)),this._resize=new d.ResizeHandler(this._dialog)}},t.prototype.componentWillEnter=function(e){this._resize&&this._resize.position(),e()},t.prototype.componentWillUnmount=function(){this._drag&&this._drag.destroy(),this._resize&&this._resize.destroy()},t}(r.PureComponent),t.PopupDialog=s.makeOverlapable(a.makeTransitionGroupLifecycleConsumer(h))},325:function(e,t){"use strict";function n(e,t,n){return e+t>n&&(e=n-t),e<0&&(e=0),e}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e){this._onResizeThrottled=requestAnimationFrame.bind(null,this._onResize.bind(this)),this._dialog=e,this._initialHeight=e.style.height,window.addEventListener("resize",this._onResizeThrottled)}return e.prototype.position=function(){var e,t=this._dialog.getBoundingClientRect(),n=window.innerWidth/2-t.width/2;this._dialog.style.left=n+"px",e=window.innerHeight/2-t.height/2,this._dialog.style.top=e+"px"},e.prototype.destroy=function(){window.removeEventListener("resize",this._onResizeThrottled)},e.prototype._onResize=function(){var e,t=this._dialog.getBoundingClientRect(),o=n(t.left,t.width,window.innerWidth);o!==t.left&&(this._dialog.style.left=o+"px"),e=n(t.top,t.height,window.innerHeight),e!==t.top&&(this._dialog.style.top=e+"px"),this._dialog.style.height=window.innerHeight<t.height?window.innerHeight+"px":this._initialHeight},e}();t.ResizeHandler=o},326:function(e,t,n){"use strict";function o(e){var t,n=e.className,o=e.icon,d=e.clearable,p=e.onClear,h=e.size,m=r.__rest(e,["className","icon","clearable","onClear","size"]),f=s(u.inputWrapper,(t={},t[n]=!!n,t[u.iconed]=!!o,t[u.clearable]=d,t));return i.createElement(l,r.__assign({theme:u,className:f,leftComponent:o?i.createElement(a.Icon,{key:"inputIcon",icon:o,className:u.inputIcon}):void 0,rightComponent:d?i.createElement(a.Icon,{className:u.clearIcon,icon:c,key:"clearIcon",onClick:p}):void 0,sizeMode:h},m))}var r,i,s,a,c,u,l;Object.defineProperty(t,"__esModule",{value:!0}),r=n(5),i=n(2),s=n(26),a=n(77),c=n(331),u=n(201),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.__extends(t,e),t.prototype.render=function(){var e,t,n,o,a=this.props,c=a.theme,u=a.error,l=a.success,d=a.sizeMode,p=a.leftComponent,h=a.rightComponent,m=a.grouped,f=a.fontSize,_=a.reference,v=a.className,g=r.__rest(a,["theme","error","success","sizeMode","leftComponent","rightComponent","grouped","fontSize","reference","className"]),y={fontSize:f},w=s(c.textInput,(n={},n[c.error]=u,n[c.success]=l,n[c[d]]=!!d,n)),E=s(c.inputWrapper,(o={},o[v]=!!v,o[c.grouped]=m,o)),M=[],b=i.createElement("input",r.__assign({ref:_,className:w,key:"textInput",
7
+ style:y},g));return p&&(e={className:s(c.leftComponent,p.props.className),key:"leftComponent"},M.push(i.cloneElement(p,e))),M.push(b),h&&(t={className:s(c.leftComponent,h.props.className),key:"rightComponent"},M.push(i.cloneElement(h,t))),i.createElement("div",{className:E},M)},t}(i.PureComponent),t.CommonTextInput=l,t.TextInput=o},327:function(e,t,n){"use strict";function o(e){var t,n=e.color,o=void 0===n?"black":n,u=s(c.item,(t={},t[c[o]]=!!o,t));return r.createElement(i.CSSTransitionGroup,{transitionName:"loader",transitionAppear:!0,transitionAppearTimeout:2*a.dur,transitionEnter:!1,transitionLeave:!1},r.createElement("span",{className:c.loader},r.createElement("span",{className:u}),r.createElement("span",{className:u}),r.createElement("span",{className:u})))}var r,i,s,a,c;Object.defineProperty(t,"__esModule",{value:!0}),r=n(2),i=n(46),s=n(26),a=n(28),c=n(257),t.Loader=o},500:function(e,t,n){"use strict";function o(e){i({isOpened:!1}),i({isOpened:!0,onClose:function(){i({isOpened:!1}),u=null},dateOnly:e.model().mainSeries().isDWM(),onGoToDate:function(t){r(e,t)}})}function r(e,t){void 0!==e.model().timeScale().tickMarks().minIndex&&(i({isOpened:!0,processing:!0}),e.model().gotoTime(t).done(function(t){e.model().mainSeries().setGotoDateResult(t)}).always(function(){i({isOpened:!1,processing:!1})}))}function i(e){u||(u=document.createElement("div"),document.body.appendChild(u)),a.render(s.createElement(c.GoToDateDialog,e),u)}var s,a,c,u;Object.defineProperty(t,"__esModule",{value:!0}),s=n(2),a=n(55),c=n(1104),t.showGoToDateDialog=o},504:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l,d,p,h;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(77),s=n(326),a=n(201),c=n(26),u=n(46),l=n(28),d=n(107),p=n(662),h=function(e){function t(t){var n=e.call(this,t)||this;return n._onShowPicker=function(e){if(e){var t=e.getBoundingClientRect();t.width&&t.right>window.innerWidth?e.style.right="0":e.style.right="auto"}},n._onChange=function(){var e=n._input.value;n.setState({value:e}),n.props.onType(n.props.isValid(e)?e:null)},n._onKeyDown=function(e){n.props.onHidePicker()},n._onKeyPress=function(e){if(e.charCode){var t=String.fromCharCode(e.charCode);n.props.inputRegex.test(t)||e.preventDefault()}},n._onKeyUp=function(e){var t,o;8!==e.keyCode&&(t=n._input.value,(o=n.props.fixValue(t))!==t&&n.setState({value:o}))},n.state={value:t.value},n}return o.__extends(t,e),t.prototype.componentWillReceiveProps=function(e){e.value!==this.props.value&&this.setState({value:e.value})},t.prototype.render=function(){var e,t=this,n=c(p.inputIcon,(e={},e[p.disabled]=this.props.disabled,e));return r.createElement("div",{className:p.pickerInput},r.createElement(s.CommonTextInput,{value:this.state.value,onKeyDown:this._onKeyDown,onKeyPress:this._onKeyPress,onKeyUp:this._onKeyUp,onChange:this._onChange,onFocus:this.props.onShowPicker,onClick:this.props.onShowPicker,reference:function(e){return t._input=e},rightComponent:r.createElement(i.Icon,{icon:this.props.icon,className:n,onClick:this.props.disabled?void 0:this.props.onShowPicker}),
8
+ theme:a,className:a.inputWrapper,disabled:this.props.disabled,error:!this.props.isValid(this.state.value)}),r.createElement(d.OutsideEvent,{mouseDown:!0,handler:this.props.onHidePicker},r.createElement(u.CSSTransitionGroup,{transitionName:"tv-picker",transitionEnterTimeout:l.dur,transitionLeaveTimeout:l.dur},this.props.showPicker?r.createElement("div",{className:p.picker,key:"0",ref:this._onShowPicker},this.props.children):null)))},t}(r.PureComponent),t.PickerInput=h},505:function(e,t,n){"use strict";var o,r,i,s,a;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(259),s=n(26),a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._renderNumber=function(e,n){var o,a=s(i.number,(o={},o[i.active]=e===t.props.activeNumber,o)),c=t.props.format?t.props.format(e):""+e;return r.createElement("span",{key:e,className:a,style:t._numberStyle(t.props.radius-t.props.spacing,n),"data-value":c},r.createElement("span",null,c))},t}return o.__extends(t,e),t.prototype.render=function(){return r.createElement("div",{className:i.face,style:this._faceStyle(),onMouseDown:this.props.onMouseDown,onToucUINart:this.props.onToucUINart},this.props.numbers.map(this._renderNumber))},t.prototype._faceStyle=function(){return{height:2*this.props.radius,width:2*this.props.radius}},t.prototype._numberStyle=function(e,t){var n=Math.PI/180*360/12*t;return{left:e+e*Math.sin(n)+this.props.spacing,top:e-e*Math.cos(n)+this.props.spacing}},t}(r.PureComponent),t.Face=a},506:function(e,t,n){"use strict";function o(e){return{x:e.pageX,y:e.pageY}}function r(e){return{x:e.touches[0].pageX,y:e.touches[0].pageY}}function i(e,t,n,o){var r=s(e,t,n,o);return r<0?360+r:r}function s(e,t,n,o){return 180*(Math.atan2(o-t,n-e)+Math.PI/2)/Math.PI}var a,c,u,l;Object.defineProperty(t,"__esModule",{value:!0}),a=n(5),c=n(2),u=n(259),l=function(e){function t(t){var n=e.call(this,t)||this;return n._onMouseMove=function(e){n._move(o(e))},n._onTouchMove=function(e){n._move(r(e))},n._onMouseUp=function(){document.removeEventListener("mousemove",n._onMouseMove),document.removeEventListener("mouseup",n._onMouseUp),n._endMove()},n._onTouchEnd=function(){document.removeEventListener("touchmove",n._onTouchMove),document.removeEventListener("touchend",n._onTouchEnd),n._endMove()},n}return a.__extends(t,e),t.prototype.render=function(){var e=this,t={height:this.props.length,transform:"rotate("+this.props.angle+"deg)"};return c.createElement("div",{className:u.hand,style:t},c.createElement("span",{ref:function(t){return e._knob=t},className:u.knob}))},t.prototype.mouseStart=function(e){document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp),this._move(o(e.nativeEvent))},t.prototype.toucUINart=function(e){document.addEventListener("touchmove",this._onTouchMove),document.addEventListener("touchend",this._onTouchEnd),this._move(r(e.nativeEvent)),e.preventDefault(),e.stopPropagation()},t.prototype._endMove=function(){this.props.onMoveEnd&&this.props.onMoveEnd()},t.prototype._move=function(e){
9
+ var t=this._trimAngleToValue(this._positionToAngle(e)),n=this._getPositionRadius(e);!this.props.onMove||isNaN(t)||isNaN(n)||this.props.onMove(360===t?0:t,n)},t.prototype._trimAngleToValue=function(e){return this.props.step*Math.round(e/this.props.step)},t.prototype._positionToAngle=function(e){return i(this.props.center.x,this.props.center.y,e.x,e.y)},t.prototype._getPositionRadius=function(e){var t=this.props.center.x-e.x,n=this.props.center.y-e.y;return Math.sqrt(t*t+n*n)},t}(c.PureComponent),t.Hand=l},507:function(e,t){"use strict";function n(e,t,n){var o,r,i;for(void 0===n&&(n=1),o=Math.max(Math.ceil((t-e)/n),0),r=Array(o),i=0;i<o;i++,e+=n)r[i]=e;return r}function o(e){return("0"+e).slice(-2)}Object.defineProperty(t,"__esModule",{value:!0}),t.range=n,t.twoDigitsFormat=o},658:function(e,t){e.exports={dialog:"dialog-1u03BRLN-",formRow:"formRow-2yaURS6j-",cell:"cell-EVXJGc2w-",input:"input-iWIICkSL-",btn:"btn-2vvoNhxg-",button:"button-3N2pepAa-"}},661:function(e,t){e.exports={calendar:"calendar-3TJkQWuB-"}},662:function(e,t){e.exports={pickerInput:"pickerInput-1KuQJx85-",inputIcon:"inputIcon-2iqNmiTT-",disabled:"disabled-3mdc0fm2-",picker:"picker-145BnyQ1-"}},1104:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l,d,p,h,m,f,_;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),n(23),r=n(2),i=n(324),s=n(183),a=n(1171),c=n(1175),u=n(77),l=n(1188),d=n(322),p=n(658),h=n(36),m=n(234),f=n(26),_=function(e){function t(t){var n=e.call(this,t)||this;return n._todayMidnight=h("00:00","HH:mm"),n._onDatePick=function(e){n.setState({date:e})},n._onTimePick=function(e){n.setState({time:e})},n._onGoToDate=function(){var e,t;n.props.onGoToDate&&n.state.date&&n.state.time&&(e=n.state.date.clone(),e.hours(n.state.time.hours()),e.minutes(n.state.time.minutes()),t=new Date(e.format("YYYY-MM-DD[T]HH:mm[:00Z]")).valueOf(),n.props.onGoToDate(t))},n._onEscape=function(){n.props.onClose&&n.props.onClose()},n.state={date:h(),time:h("00:00","HH:mm")},n}return o.__extends(t,e),t.prototype.render=function(){return r.createElement(i.PopupDialog,{isOpened:this.props.isOpened,onClickOutside:this.props.onClose,className:p.dialog},r.createElement(s.Header,{onClose:this.props.onClose},window.t("Go to")),r.createElement(s.Body,null,r.createElement(m.KeyboardDocumentListener,{keyCode:27,handler:this._onEscape}),r.createElement(m.KeyboardDocumentListener,{keyCode:13,handler:this._onGoToDate}),r.createElement("div",{className:p.formRow},r.createElement("div",{className:f(p.cell,p.input)},r.createElement(a.DatePicker,{initial:this.state.date||this._todayMidnight,onPick:this._onDatePick,maxDate:this._todayMidnight,disabled:this.props.processing})),r.createElement("div",{className:f(p.cell,p.input)},r.createElement(c.TimePicker,{initial:this.state.time||this._todayMidnight,onPick:this._onTimePick,disabled:this.props.processing||this.props.dateOnly||!this.state.date})),r.createElement("div",{className:f(p.cell,p.btn)},r.createElement(d.Button,{type:"primary",disabled:!this.state.date||!this.state.time||this.props.processing,onClick:this._onGoToDate,
10
+ className:p.button},r.createElement(u.Icon,{icon:l}))))))},t}(r.PureComponent),t.GoToDateDialog=_},1168:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l,d;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(1170),s=n(77),a=n(1344),c=n(512),u=n(258),l=n(26),d=function(e){function t(t){var n=e.call(this,t)||this;return n._prevMonth=function(){n.setState({viewDate:n.state.viewDate.clone().subtract(1,"months")})},n._nextMonth=function(){n.setState({viewDate:n.state.viewDate.clone().add(1,"months")})},n._onClickDay=function(e){var t=e.clone();n.setState({viewDate:t}),n.props.onSelect&&n.props.onSelect(t.clone())},n.state={viewDate:t.selectedDate},n}return o.__extends(t,e),t.prototype.render=function(){return r.createElement("div",{className:l(u.calendar,this.props.className)},r.createElement("div",{className:u.header},r.createElement(s.Icon,{icon:a,onClick:this._prevMonth,className:l(u.switchBtn,u.prev)}),r.createElement("div",{className:u.title},this.state.viewDate.format("MMMM YYYY")),r.createElement(s.Icon,{icon:c,onClick:this._nextMonth,className:l(u.switchBtn,u.next)})),r.createElement(i.Month,{viewDate:this.state.viewDate,selectedDate:this.props.selectedDate,maxDate:this.props.maxDate,onClickDay:this._onClickDay}))},t}(r.PureComponent),t.Calendar=d},1169:function(e,t,n){"use strict";var o,r,i,s,a,c;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(258),s=n(26),a=n(36),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._onClick=function(){t.props.onClick&&!t.props.isDisabled&&t.props.onClick(t.props.day.clone())},t}return o.__extends(t,e),t.prototype.render=function(){var e,t=s(i.day,(e={},e[i.selected]=this.props.isSelected,e[i.disabled]=this.props.isDisabled,e[i.currentDay]=a(new Date).isSame(this.props.day,"day"),e[i.otherMonth]=this.props.isOtherMonth,e));return r.createElement("span",{className:t,onClick:this._onClick,"data-day":this.props.day.format("YYYY-MM-DD")},r.createElement("span",null,this.props.day.date()))},t}(r.PureComponent),t.Day=c},1170:function(e,t,n){"use strict";var o,r,i,s,a,c;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(1169),s=n(258),a=n(36),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.prototype.render=function(){return r.createElement("div",{className:s.month},r.createElement("div",{className:s.weekdays},this._renderWeekdays()),r.createElement("div",{className:s.weeks},this._renderWeeks()))},t.prototype._renderWeekdays=function(){var e,t,n=[];for(e=0;e<7;e++)t=a().day(e).format("dd"),n.push(r.createElement("span",{key:e},t));return n},t.prototype._renderWeeks=function(){var e,t=[],n=this.props.viewDate.clone().startOf("month").day(0);for(e=0;e<6;e++)t.push(this._renderWeek(n)),n=n.clone().add(1,"weeks");return t},t.prototype._renderWeek=function(e){var t,n,o=[];for(t=0;t<7;t++)n=e.clone().add(t,"days"),o.push(r.createElement(i.Day,{key:t,day:n,isDisabled:!this._isInRange(n),isSelected:n.isSame(this.props.selectedDate,"day"),
11
+ isOtherMonth:!n.isSame(this.props.viewDate,"month"),onClick:this.props.onClickDay}));return r.createElement("div",{className:s.week,key:e.week()},o)},t.prototype._isInRange=function(e){return!this.props.maxDate||this.props.maxDate.startOf("day").diff(e.startOf("day"),"days")>=0},t}(r.PureComponent),t.Month=c},1171:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(1168),s=n(1337),a=n(661),c=n(36),u=n(504),l=function(e){function t(t){var n=e.call(this,t)||this;return n._format="YYYY-MM-DD",n._fixValue=function(e){return e=e.substr(0,10),e=e.replace(/\-+/g,"-"),e.endsWith(".")||4!==e.length&&7!==e.length||(e+="-"),e},n._isValid=function(e){if(/^[0-9]{4}(\-[0-9]{2}){2}/.test(e)){var t=c(e,n._format);return t.isValid()&&n._isInRange(t)}return!1},n._onType=function(e){var t=e?c(e,n._format):null;t&&n.setState({date:t}),n.props.onPick(t)},n._onSelect=function(e){n.setState({date:e,showCalendar:!1}),n.props.onPick(e)},n._showCalendar=function(){n.setState({showCalendar:!0})},n._hideCalendar=function(){n.setState({showCalendar:!1})},n.state={date:t.initial,showCalendar:!1},n}return o.__extends(t,e),t.prototype.render=function(){return r.createElement(u.PickerInput,{value:this.state.date.format(this._format),inputRegex:/[0-9\.]/,fixValue:this._fixValue,isValid:this._isValid,onType:this._onType,onShowPicker:this._showCalendar,onHidePicker:this._hideCalendar,showPicker:this.state.showCalendar,icon:s,disabled:this.props.disabled},r.createElement(i.Calendar,{selectedDate:this.state.date,maxDate:this.props.maxDate,onSelect:this._onSelect,className:a.calendar}))},t.prototype._isInRange=function(e){return!this.props.maxDate||this.props.maxDate.startOf("day").diff(e.startOf("day"),"days")>=0},t}(r.PureComponent),t.DatePicker=l},1172:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l,d,p,h;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(259),s=n(1173),a=n(1174),c=n(26),u=n(46),l=n(28),d=.18,function(e){e[e.Hours=0]="Hours",e[e.Minutes=1]="Minutes"}(p=t.ClockFaceType||(t.ClockFaceType={})),h=function(e){function t(t){var n=e.call(this,t)||this;return n._calculateShapeThrottled=requestAnimationFrame.bind(null,n._calculateShape.bind(n)),n._onChangeHours=function(e){n.state.time.hours()!==e&&n._onChange(n.state.time.clone().hours(e))},n._onChangeMinutes=function(e){n.state.time.minutes()!==e&&n._onChange(n.state.time.clone().minutes(e))},n._onSelectHours=function(){n._displayMinutes()},n._onSelectMinutes=function(){n.props.onSelect&&n.props.onSelect(n.state.time.clone())},n._displayHours=function(){n.setState({faceType:p.Hours})},n._displayMinutes=function(){n.setState({faceType:p.Minutes})},n._setClockFace=function(e){e&&(n._clockFace=e)},n.state={center:{x:0,y:0},radius:0,time:n.props.selectedTime,faceType:p.Hours},n}return o.__extends(t,e),t.prototype.render=function(){return r.createElement("div",{className:c(i.clock,this.props.className)},r.createElement("div",{className:i.header},r.createElement("span",{className:c(i.number,(e={},
12
+ e[i.active]=this.state.faceType===p.Hours,e)),onClick:this._displayHours},this.state.time.format("HH")),r.createElement("span",null,":"),r.createElement("span",{className:c(i.number,(t={},t[i.active]=this.state.faceType===p.Minutes,t)),onClick:this._displayMinutes},this.state.time.format("mm"))),r.createElement("div",{className:i.body},r.createElement("div",{className:i.clockFace,ref:this._setClockFace},r.createElement(u.CSSTransitionGroup,{transitionName:"tv-clock-face-animate",transitionEnter:!0,transitionEnterTimeout:l.dur,transitionLeave:!0,transitionLeaveTimeout:l.dur},this.state.faceType===p.Hours?this._renderHours():null,this.state.faceType===p.Minutes?this._renderMinutes():null),r.createElement("span",{className:i.centerDot}))));var e,t},t.prototype.componentDidMount=function(){this._calculateShape(),setTimeout(this._calculateShape.bind(this),1),window.addEventListener("resize",this._calculateShapeThrottled),window.addEventListener("scroll",this._calculateShapeThrottled,!0)},t.prototype.componentWillUnmount=function(){window.removeEventListener("resize",this._calculateShapeThrottled),window.removeEventListener("scroll",this._calculateShapeThrottled,!0)},t.prototype._renderHours=function(){return r.createElement(s.Hours,{center:this.state.center,radius:this.state.radius,spacing:this.state.radius*d,selected:this.state.time.hours(),onChange:this._onChangeHours,onSelect:this._onSelectHours})},t.prototype._renderMinutes=function(){return r.createElement(a.Minutes,{center:this.state.center,radius:this.state.radius,spacing:this.state.radius*d,selected:this.state.time.minutes(),onChange:this._onChangeMinutes,onSelect:this._onSelectMinutes})},t.prototype._onChange=function(e){this.setState({time:e}),this.props.onChange&&this.props.onChange(e.clone())},t.prototype._calculateShape=function(){var e=this._clockFace.getBoundingClientRect(),t=e.left,n=e.top,o=e.width;this.setState({center:{x:t+o/2,y:n+o/2},radius:o/2})},t}(r.PureComponent),t.Clock=h},1173:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l,d,p;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(505),s=n(506),a=n(507),c=[0].concat(a.range(13,24)),u=[12].concat(a.range(1,12)),l=30,d=.46,p=function(e){function t(t){var n=e.call(this,t)||this;return n._onMouseDown=function(e){n._hand.mouseStart(e)},n._onToucUINart=function(e){n._hand.toucUINart(e)},n._onHandMove=function(e,t){var o=t<n.props.radius-n.props.spacing;n.state.isInner!==o?n.setState({isInner:o},function(){n.props.onChange(n._valueFromDegrees(e))}):n.props.onChange(n._valueFromDegrees(e))},n._onHandMoveEnd=function(){n.props.onSelect&&n.props.onSelect()},n.state={isInner:n.props.selected>0&&n.props.selected<=12},n}return o.__extends(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.center,o=t.radius,u=t.spacing,p=t.selected;return r.createElement("div",null,r.createElement(i.Face,{radius:o,spacing:u,numbers:c,activeNumber:p,format:a.twoDigitsFormat,onMouseDown:this._onMouseDown,onToucUINart:this._onToucUINart}),this._renderInnerFace(o*d),r.createElement(s.Hand,{
13
+ ref:function(t){return e._hand=t},length:o-(this.state.isInner?o*d:u),angle:p*l,step:l,center:n,onMove:this._onHandMove,onMoveEnd:this._onHandMoveEnd}))},t.prototype._renderInnerFace=function(e){return r.createElement(i.Face,{radius:this.props.radius,spacing:e,numbers:u,activeNumber:this.props.selected,onMouseDown:this._onMouseDown,onToucUINart:this._onToucUINart})},t.prototype._valueFromDegrees=function(e){return this.state.isInner?u[e/l]:c[e/l]},t}(r.PureComponent),t.Hours=p},1174:function(e,t,n){"use strict";var o,r,i,s,a,c,u,l;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(505),s=n(506),a=n(507),c=a.range(0,60,5),u=6,l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._onMouseDown=function(e){t._hand.mouseStart(e)},t._onToucUINart=function(e){t._hand.toucUINart(e)},t._onHandMove=function(e){t.props.onChange(e/u)},t._onHandMoveEnd=function(){t.props.onSelect&&t.props.onSelect()},t}return o.__extends(t,e),t.prototype.render=function(){var e=this;return r.createElement("div",null,r.createElement(i.Face,{radius:this.props.radius,spacing:this.props.spacing,numbers:c,activeNumber:this.props.selected,format:a.twoDigitsFormat,onMouseDown:this._onMouseDown,onToucUINart:this._onToucUINart}),r.createElement(s.Hand,{ref:function(t){return e._hand=t},length:this.props.radius-this.props.spacing,angle:this.props.selected*u,step:u,center:this.props.center,onMove:this._onHandMove,onMoveEnd:this._onHandMoveEnd}))},t}(r.PureComponent),t.Minutes=l},1175:function(e,t,n){"use strict";var o,r,i,s,a,c,u;Object.defineProperty(t,"__esModule",{value:!0}),o=n(5),r=n(2),i=n(1172),s=n(1335),a=n(36),c=n(504),u=function(e){function t(t){var n=e.call(this,t)||this;return n._format="HH:mm",n._fixValue=function(e){return e=e.substr(0,5),e=e.replace(/:+/g,":"),e.endsWith(":")||2!==e.length||(e+=":"),e},n._isValid=function(e){return/^[0-9]{2}:[0-9]{2}/.test(e)&&a(e,n._format).isValid()},n._onType=function(e){var t=e?a(e,n._format):null;t&&n.setState({time:t}),n.props.onPick(t)},n._onSelect=function(e){n.setState({time:e,showClock:!1}),n.props.onPick(e)},n._showClock=function(){n.setState({showClock:!0})},n._hideClock=function(){n.setState({showClock:!1})},n.state={time:t.initial,showClock:!1},n}return o.__extends(t,e),t.prototype.render=function(){return r.createElement(c.PickerInput,{value:this.state.time.format(this._format),inputRegex:/[0-9:]/,fixValue:this._fixValue,isValid:this._isValid,onType:this._onType,onShowPicker:this._showClock,onHidePicker:this._hideClock,showPicker:this.state.showClock,icon:s,disabled:this.props.disabled},r.createElement(i.Clock,{selectedTime:this.state.time,onSelect:this._onSelect}))},t}(r.PureComponent),t.TimePicker=u},1188:function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path fill="none" d="M0 0h16v16H0z"/><path d="M8 .034l-1.41 1.41 5.58 5.59H0v2h12.17l-5.58 5.59L8 16.034l8-8z"/></svg>'},1335:function(e,t){
14
+ e.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="14px" height="14px"><path fill-rule="evenodd" d="M7 0C3.15 0 0 3.15 0 7s3.15 7 7 7 7-3.15 7-7-3.15-7-7-7zm0 12.25c-2.888 0-5.25-2.363-5.25-5.25 0-2.888 2.362-5.25 5.25-5.25 2.887 0 5.25 2.362 5.25 5.25 0 2.887-2.363 5.25-5.25 5.25zm.25-8H6V8h3.75V6.75h-2.5v-2.5z"/></svg>'},1337:function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4 0c-.6 0-1 .4-1 1v1H1c-.6 0-1 .4-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1h-2V1c0-.6-.4-1-1-1h-1c-.6 0-1 .4-1 1v1H6V1c0-.6-.4-1-1-1H4zM2 5h12v9H2V5zm5 2v2h2V7H7zm3 0v2h2V7h-2zm-6 3v2h2v-2H4zm3 0v2h2v-2H7zm3 0v2h2v-2h-2z"/></svg>'},1344:function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 16" width="10" height="16"><path d="M9.4 1.4l-1.4-1.4-8 8 8 8 1.4-1.4-6.389-6.532 6.389-6.668z"/></svg>'}});
hybrid/html/tradeview/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur ADDED
Binary file (4.29 kB). View file
 
hybrid/html/tradeview/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur ADDED
Binary file (4.29 kB). View file
 
hybrid/html/tradeview/charting_library/static/bundles/ie-fallback-logos.b27f679ee44b7d0992e1.js ADDED
@@ -0,0 +1 @@
 
 
1
+ webpackJsonp([10],{695:function(A,h,i){"use strict";Object.defineProperty(h,"__esModule",{value:!0}),h.fallbackImages={tvLogoBlack:i(1349),tvLogoWhite:i(1350)},h.logoSizes={benzingapro:{width:135,height:25},bovespa:{width:135,height:50},cme:{width:175,height:26},currencywiki:{width:135,height:25},dailyfx:{width:135,height:25},fxstreet:{width:137,height:33},investopedia:{width:135,height:23},smartlab:{width:135,height:37},lse:{width:135,height:31},arabictrader:{width:135,height:40},goldprice:{width:135,height:27},silverprice:{width:135,height:27},inbestia:{width:195,height:50},immfx:{width:122,height:26},kitco:{width:130,height:35},enbourse:{width:135,height:40},rankia:{width:65,height:17},stockwatch:{width:135,height:19},tradecapitan:{width:121,height:45}}},1349:function(A,h){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAAmCAMAAACmhKjHAAAAXVBMVEUAAAAAAAAAAAAFEhgrg6g4rNsznskLIy0AAAAQMkAdWXIAAAAxlb4UQFEAAAAAAAAAAAAkcI8ujbQgZYEZTWMAAAAAAAAAAAA2pNIAAAAAAAAAAAAoe50AAAA7s+Q2ucaKAAAAHnRSTlMAmU2f2fnspiWswAnms3xCE8zfxrmPhjfybV9W0hyxWOJtAAABrElEQVRIx8WVbbOCIBCFrwmKCpnvlsb//5mXXcrlxcpm7sw9nwx4hrPLgX7+XBchxPdQfU2srlP1BXZLXC1H0WlIfI3HLC+4OC+ZlG1TWnQ6wN0QY/ohzlIYqC+fuBMsa7Qj3lu/71kBa5j2VSZWpzfgmbgd8ly9bKiZ7XUsLrscyVd24dhnva8VujRU+3kxU6V+pbkw07cYE+cE1MKaVql2x7CxO4ZY9YwZcvARkwy81gFnt0sVtkbBt4o5lN8f5MqMLBFInNU1zGcKGHLQBPztKksxi8as286Iy3MzwkMulStsWXnHJ50VKUNnBQ+4TEs/QANURCvy7JEzRQeBHJwlkk6yGXHqsVEPaSD3xUw9miihdlQartNOsStx3OnuSHfQjtnyNjK1Tnrinqd830BuuTwLj4Dh81EShw0SW40SOeXMb9kLkz/DU4LgHV+LbiuPBIPxFUUQNcKrBuVFahBs/AyhVRTcQyovDqiMXDzvxpDYzscqyCl1jG6lIEOhWMN8rtic0jO8Sv1BWQehXbwH/JjiV7IejlHxv1e1jIe2o/pI9+n0XjVQ/6ZfnFlWaxVUZmcAAAAASUVORK5CYII="},1350:function(A,h){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAAmCAMAAACmhKjHAAAAYFBMVEUAAAD////////q9/1ux+tSvOfZ8fr////I6vid2fL///9bwOm45Pb///////////+E0O9jw+mQ1fCq3vT///////9KuOb///////////94y+3///////////////87s+R/+BgSAAAAH3RSTlMAmU2f2eymJazACeazfEITzN/GuY+G8l9WOdJyaRwwr8L7/gAAAaRJREFUSMfFld2SgyAMhZeCP4i11qpV2y7v/5ZLwrgBYls7szN7rhT5hpOQxK8/16kois+h5ia8bnP1AXYVoaa96NyLWMM+y5MA5VoZc261R+cd3BUxZVcpCQvN6R13gG2tDXXxfl+zBexRNpYWXocX4JG4DfJYPU2o+3qxGzJdjuQzu3Dto93WAlnqq+16cZ+0faaxdJ+vHCuOAnSGPee6Pm+gzu6QYtVaZsjBAycVeG0Szh8na0xNDc8151BxfpDTGVkiMOHEPa1PCRgKkoDvoTKJtejMhulkXJ67FcZJs8CRdCV392qCHVKhszLlMmviAuohItqR4+E6DDNHDu4SyaCyFXE1dYUO3Jcj5WimCvWrxnGdDYJdiAuzO1AP+jUMjyS9kwtx6y0/IlBBeGkqVavjCsYEFb8xGuDYpWPtJZwdYZQg+MBp0VF4JLfIWxRB1ABTDcJjagWfQRlaRUEfUni8QA1zsfZGL3zmuUrmNJNBVxZkKJVqVcyV4DQZw4uxb5R1ULRTNMD3iU/Jpt9H8b9XNQ27jqP4SI/vw2s1QP2bfgDhqloD84hV5AAAAABJRU5ErkJggg=="}});
hybrid/html/tradeview/charting_library/static/bundles/lazy-jquery-ui.1803178846ddad426aeb.js ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ webpackJsonp([8],{502:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),i(995),i(1e3),i(994),i(999),i(1001)},994:function(module,exports){!function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function extendRemove(t,e){$.extend(t,e);for(var i in e)null!=e[i]&&e[i]!=undefined||(t[i]=e[i]);return t}function isArray(t){return t&&($.browser.safari&&"object"==typeof t&&t.length||t.constructor&&(""+t.constructor).match(/\Array\(\)/))}var PROP_NAME,dpuuid;$.extend($.ui,{datepicker:{version:"@VERSION"}}),PROP_NAME="datepicker",dpuuid=(new Date).getTime(),$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return extendRemove(this._defaults,t||{}),this},_attachDatepicker:function(target,settings){var attrName,attrValue,nodeName,inline,inst,inlineSettings=null;for(attrName in this._defaults)if(attrValue=target.getAttribute("date:"+attrName)){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(t){inlineSettings[attrName]=attrValue}}
2
+ nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName,target.id||(this.uuid+=1,target.id="dp"+this.uuid),inst=this._newInst($(target),inline),inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(t,e){return{id:t[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:e,dpDiv:e?$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'):this.dpDiv}},_connectDatepicker:function(t,e){var i=$(t);e.append=$([]),e.trigger=$([]),i.hasClass(this.markerClassName)||(this._attachments(i,e),i.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(t,i,s){e.settings[i]=s}).bind("getData.datepicker",function(t,i){return this._get(e,i)}),this._autoSize(e),$.data(t,PROP_NAME,e))},_attachments:function(t,e){var i,s,n,o=this._get(e,"appendText"),r=this._get(e,"isRTL");e.append&&e.append.remove(),o&&(e.append=$('<span class="'+this._appendClass+'">'+o+"</span>"),t[r?"before":"after"](e.append)),t.unbind("focus",this._showDatepicker),e.trigger&&e.trigger.remove(),i=this._get(e,"showOn"),"focus"!=i&&"both"!=i||t.focus(this._showDatepicker),"button"!=i&&"both"!=i||(s=this._get(e,"buttonText"),n=this._get(e,"buttonImage"),e.trigger=$(this._get(e,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:n,alt:s,title:s}):$('<button type="button"></button>').addClass(this._triggerClass).html(""==n?s:$("<img/>").attr({src:n,alt:s,title:s}))),t[r?"before":"after"](e.trigger),e.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==t[0]?$.datepicker._hideDatepicker():$.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(t){var e,i,s;this._get(t,"autoSize")&&!t.inline&&(e=new Date(2009,11,20),i=this._get(t,"dateFormat"),i.match(/[DM]/)&&(s=function(t){var e,i=0,s=0;for(e=0;e<t.length;e++)t[e].length>i&&(i=t[e].length,s=e);return s},e.setMonth(s(this._get(t,i.match(/MM/)?"monthNames":"monthNamesShort"))),e.setDate(s(this._get(t,i.match(/DD/)?"dayNames":"dayNamesShort"))+20-e.getDay())),t.input.attr("size",this._formatDate(t,e).length))},_inlineDatepicker:function(t,e){var i=$(t);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(e.dpDiv).bind("setData.datepicker",function(t,i,s){e.settings[i]=s}).bind("getData.datepicker",function(t,i){return this._get(e,i)}),$.data(t,PROP_NAME,e),this._setDate(e,this._getDefaultDate(e),!0),this._updateDatepicker(e),this._updateAlternate(e),e.dpDiv.show())},_dialogDatepicker:function(t,e,i,s,n){var o,r,a,h,l,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=$('<input type="text" id="'+o+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),
3
+ c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},$.data(this._dialogInput[0],PROP_NAME,c)),extendRemove(c.settings,s||{}),e=e&&e.constructor==Date?this._formatDate(c,e):e,this._dialogInput.val(e),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(r=document.documentElement.clientWidth,a=document.documentElement.clientHeight,h=document.documentElement.scrollLeft||document.body.scrollLeft,l=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[r/2-100+h,a/2-150+l]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,c),this},_destroyDatepicker:function(t){var e,i=$(t),s=$.data(t,PROP_NAME);i.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),$.removeData(t,PROP_NAME),"input"==e?(s.append.remove(),s.trigger.remove(),i.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):"div"!=e&&"span"!=e||i.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var e,i,s=$(t),n=$.data(t,PROP_NAME);s.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),"input"==e?(t.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):"div"!=e&&"span"!=e||(i=s.children("."+this._inlineClass),i.children().removeClass("ui-state-disabled")),this._disabledInputs=$.map(this._disabledInputs,function(e){return e==t?null:e}))},_disableDatepicker:function(t){var e,i,s=$(t),n=$.data(t,PROP_NAME);s.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),"input"==e?(t.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):"div"!=e&&"span"!=e||(i=s.children("."+this._inlineClass),i.children().addClass("ui-state-disabled")),this._disabledInputs=$.map(this._disabledInputs,function(e){return e==t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;e<this._disabledInputs.length;e++)if(this._disabledInputs[e]==t)return!0;return!1},_getInst:function(t){try{return $.data(t,PROP_NAME)}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,e,i){var s,n,o,r,a=this._getInst(t);if(2==arguments.length&&"string"==typeof e)return"defaults"==e?$.extend({},$.datepicker._defaults):a?"all"==e?$.extend({},a.settings):this._get(a,e):null;s=e||{},"string"==typeof e&&(s={},s[e]=i),a&&(this._curInst==a&&this._hideDatepicker(),n=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(a,"min"),r=this._getMinMaxDate(a,"max"),extendRemove(a.settings,s),null!==o&&s.dateFormat!==undefined&&s.minDate===undefined&&(a.settings.minDate=this._formatDate(a,o)),
4
+ null!==r&&s.dateFormat!==undefined&&s.maxDate===undefined&&(a.settings.maxDate=this._formatDate(a,r)),this._attachments($(t),a),this._autoSize(a),this._setDateDatepicker(t,n),this._updateDatepicker(a))},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(t){var e,i=$.datepicker._getInst(t.target),s=!0,n=i.dpDiv.is(".ui-datepicker-rtl");if(i._keyEvent=!0,$.datepicker._datepickerShowing)switch(t.keyCode){case 9:$.datepicker._hideDatepicker(),s=!1;break;case 13:return e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",i.dpDiv),e[0]?$.datepicker._selectDay(t.target,i.selectedMonth,i.selectedYear,e[0]):$.datepicker._hideDatepicker(),!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(t.target,t.ctrlKey?-$.datepicker._get(i,"stepBigMonths"):-$.datepicker._get(i,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(t.target,t.ctrlKey?+$.datepicker._get(i,"stepBigMonths"):+$.datepicker._get(i,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&$.datepicker._clearDate(t.target),s=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&$.datepicker._gotoToday(t.target),s=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&$.datepicker._adjustDate(t.target,n?1:-1,"D"),s=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&$.datepicker._adjustDate(t.target,t.ctrlKey?-$.datepicker._get(i,"stepBigMonths"):-$.datepicker._get(i,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&$.datepicker._adjustDate(t.target,-7,"D"),s=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&$.datepicker._adjustDate(t.target,n?-1:1,"D"),s=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&$.datepicker._adjustDate(t.target,t.ctrlKey?+$.datepicker._get(i,"stepBigMonths"):+$.datepicker._get(i,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&$.datepicker._adjustDate(t.target,7,"D"),s=t.ctrlKey||t.metaKey;break;default:s=!1}else 36==t.keyCode&&t.ctrlKey?$.datepicker._showDatepicker(this):s=!1;s&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var e,i,s=$.datepicker._getInst(t.target);if($.datepicker._get(s,"constrainInput"))return e=$.datepicker._possibleChars($.datepicker._get(s,"dateFormat")),i=String.fromCharCode(t.charCode==undefined?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||i<" "||!e||e.indexOf(i)>-1},_doKeyUp:function(t){var e,i=$.datepicker._getInst(t.target);if(i.input.val()!=i.lastVal)try{e=$.datepicker.parseDate($.datepicker._get(i,"dateFormat"),i.input?i.input.val():null,$.datepicker._getFormatConfig(i)),e&&($.datepicker._setDateFromField(i),$.datepicker._updateAlternate(i),$.datepicker._updateDatepicker(i))}catch(t){$.datepicker.log(t)}return!0},_showDatepicker:function(t){
5
+ var e,i,s,n,o,r,a;t=t.target||t,"input"!=t.nodeName.toLowerCase()&&(t=$("input",t.parentNode)[0]),$.datepicker._isDisabledDatepicker(t)||$.datepicker._lastInput==t||(e=$.datepicker._getInst(t),$.datepicker._curInst&&$.datepicker._curInst!=e&&$.datepicker._curInst.dpDiv.stop(!0,!0),i=$.datepicker._get(e,"beforeShow"),extendRemove(e.settings,i?i.apply(t,[t,e]):{}),e.lastVal=null,$.datepicker._lastInput=t,$.datepicker._setDateFromField(e),$.datepicker._inDialog&&(t.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(t),$.datepicker._pos[1]+=t.offsetHeight),s=!1,$(t).parents().each(function(){return!(s|="fixed"==$(this).css("position"))}),s&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop),n={left:$.datepicker._pos[0],top:$.datepicker._pos[1]},$.datepicker._pos=null,e.dpDiv.empty(),e.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(e),n=$.datepicker._checkOffset(e,n,s),e.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":s?"fixed":"absolute",display:"none",left:n.left+"px",top:n.top+"px"}),e.inline||(o=$.datepicker._get(e,"showAnim"),r=$.datepicker._get(e,"duration"),a=function(){var t,i;$.datepicker._datepickerShowing=!0,t=e.dpDiv.find("iframe.ui-datepicker-cover"),t.length&&(i=$.datepicker._getBorders(e.dpDiv),t.css({left:-i[0],top:-i[1],width:e.dpDiv.outerWidth(),height:e.dpDiv.outerHeight()}))},e.dpDiv.zIndex($(t).zIndex()+1),$.effects&&$.effects[o]?e.dpDiv.show(o,$.datepicker._get(e,"showOptions"),r,a):e.dpDiv[o||"show"](o?r:null,a),o&&r||a(),e.input.is(":visible")&&!e.input.is(":disabled")&&e.input.focus(),$.datepicker._curInst=e))},_updateDatepicker:function(t){var e,i,s,n,o,r=this,a=$.datepicker._getBorders(t.dpDiv);t.dpDiv.empty().append(this._generateHTML(t)),e=t.dpDiv.find("iframe.ui-datepicker-cover"),e.length&&e.css({left:-a[0],top:-a[1],width:t.dpDiv.outerWidth(),height:t.dpDiv.outerHeight()}),t.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover"),-1!=this.className.indexOf("ui-datepicker-prev")&&$(this).removeClass("ui-datepicker-prev-hover"),-1!=this.className.indexOf("ui-datepicker-next")&&$(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){r._isDisabledDatepicker(t.inline?t.dpDiv.parent()[0]:t.input[0])||($(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),$(this).addClass("ui-state-hover"),-1!=this.className.indexOf("ui-datepicker-prev")&&$(this).addClass("ui-datepicker-prev-hover"),-1!=this.className.indexOf("ui-datepicker-next")&&$(this).addClass("ui-datepicker-next-hover"))}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end(),i=this._getNumberOfMonths(t),s=i[1],n=17,s>1?t.dpDiv.addClass("ui-datepicker-multi-"+s).css("width",n*s+"em"):t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),
6
+ t.dpDiv[(1!=i[0]||1!=i[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t==$.datepicker._curInst&&$.datepicker._datepickerShowing&&t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&t.input[0]!=document.activeElement&&t.input.focus(),t.yearshtml&&(o=t.yearshtml,setTimeout(function(){o===t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),o=t.yearshtml=null},0))},_getBorders:function(t){var e=function(t){return{thin:1,medium:2,thick:3}[t]||t};return[parseFloat(e(t.css("border-left-width"))),parseFloat(e(t.css("border-top-width")))]},_checkOffset:function(t,e,i){var s=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,a=document.documentElement.clientWidth+$(document).scrollLeft(),h=document.documentElement.clientHeight+$(document).scrollTop();return e.left-=this._get(t,"isRTL")?s-o:0,e.left-=i&&e.left==t.input.offset().left?$(document).scrollLeft():0,e.top-=i&&e.top==t.input.offset().top+r?$(document).scrollTop():0,e.left-=Math.min(e.left,e.left+s>a&&a>s?Math.abs(e.left+s-a):0),e.top-=Math.min(e.top,e.top+n>h&&h>n?Math.abs(n+r):0),e},_findPos:function(t){for(var e,i=this._getInst(t),s=this._get(i,"isRTL");t&&("hidden"==t.type||1!=t.nodeType||$.expr.filters.hidden(t));)t=t[s?"previousSibling":"nextSibling"];return e=$(t).offset(),[e.left,e.top]},_hideDatepicker:function(t){var e,i,s,n,o=this._curInst;!o||t&&o!=$.data(t,PROP_NAME)||this._datepickerShowing&&(e=this._get(o,"showAnim"),i=this._get(o,"duration"),s=function(){$.datepicker._tidyDialog(o),this._curInst=null},$.effects&&$.effects[e]?o.dpDiv.hide(e,$.datepicker._get(o,"showOptions"),i,s):o.dpDiv["slideDown"==e?"slideUp":"fadeIn"==e?"fadeOut":"hide"](e?i:null,s),e||s(),n=this._get(o,"onClose"),n&&n.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._datepickerShowing=!1,this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if($.datepicker._curInst){var e=$(t.target);e[0].id==$.datepicker._mainDivId||0!=e.parents("#"+$.datepicker._mainDivId).length||e.hasClass($.datepicker.markerClassName)||e.hasClass($.datepicker._triggerClass)||!$.datepicker._datepickerShowing||$.datepicker._inDialog&&$.blockUI||$.datepicker._hideDatepicker()}},_adjustDate:function(t,e,i){var s=$(t),n=this._getInst(s[0]);this._isDisabledDatepicker(s[0])||(this._adjustInstDate(n,e+("M"==i?this._get(n,"showCurrentAtPos"):0),i),this._updateDatepicker(n))},_gotoToday:function(t){var e,i=$(t),s=this._getInst(i[0]);this._get(s,"gotoCurrent")&&s.currentDay?(s.selectedDay=s.currentDay,s.drawMonth=s.selectedMonth=s.currentMonth,s.drawYear=s.selectedYear=s.currentYear):(e=new Date,s.selectedDay=e.getDate(),s.drawMonth=s.selectedMonth=e.getMonth(),
7
+ s.drawYear=s.selectedYear=e.getFullYear()),this._notifyChange(s),this._adjustDate(i)},_selectMonthYear:function(t,e,i){var s=$(t),n=this._getInst(s[0]);n._selectingMonthYear=!1,n["selected"+("M"==i?"Month":"Year")]=n["draw"+("M"==i?"Month":"Year")]=parseInt(e.options[e.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(s)},_clickMonthYear:function(t){var e=$(t),i=this._getInst(e[0]);i.input&&i._selectingMonthYear&&setTimeout(function(){i.input.focus()},0),i._selectingMonthYear=!i._selectingMonthYear},_selectDay:function(t,e,i,s){var n,o=$(t);$(s).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(n=this._getInst(o[0]),n.selectedDay=n.currentDay=$("a",s).html(),n.selectedMonth=n.currentMonth=e,n.selectedYear=n.currentYear=i,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){var e=$(t);this._getInst(e[0]);this._selectDate(e,"")},_selectDate:function(t,e){var i,s=$(t),n=this._getInst(s[0]);e=null!=e?e:this._formatDate(n),n.input&&n.input.val(e),this._updateAlternate(n),i=this._get(n,"onSelect"),i?i.apply(n.input?n.input[0]:null,[e,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var e,i,s,n=this._get(t,"altField");n&&(e=this._get(t,"altFormat")||this._get(t,"dateFormat"),i=this._getDate(t),s=this.formatDate(e,i,this._getFormatConfig(t)),$(n).each(function(){$(this).val(s)}))},noWeekends:function(t){var e=t.getDay();return[e>0&&e<6,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(t,e,i){var s,n,o,r,a,h,l,c,p,d,u,f,g,m,_,v,b,y;if(null==t||null==e)throw"Invalid arguments";if(""==(e="object"==typeof e?""+e:e+""))return null;for(s=(i?i.shortYearCutoff:null)||this._defaults.shortYearCutoff,s="string"!=typeof s?s:(new Date).getFullYear()%100+parseInt(s,10),n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,a=(i?i.monthNames:null)||this._defaults.monthNames,h=-1,l=-1,c=-1,p=-1,d=!1,u=function(e){var i=v+1<t.length&&t.charAt(v+1)==e;return i&&v++,i},f=function(t){var i=u(t),s="@"==t?14:"!"==t?20:"y"==t&&i?4:"o"==t?3:2,n=RegExp("^\\d{1,"+s+"}"),o=e.substring(_).match(n);if(!o)throw"Missing number at position "+_;return _+=o[0].length,parseInt(o[0],10)},g=function(t,i,s){var n,o=u(t)?s:i;for(n=0;n<o.length;n++)if(e.substr(_,o[n].length).toLowerCase()==o[n].toLowerCase())return _+=o[n].length,n+1;throw"Unknown name at position "+_},m=function(){if(e.charAt(_)!=t.charAt(v))throw"Unexpected literal at position "+_;_++},_=0,v=0;v<t.length;v++)if(d)"'"!=t.charAt(v)||u("'")?m():d=!1;else switch(t.charAt(v)){case"d":c=f("d");break;case"D":g("D",n,o);break;case"o":p=f("o");break;case"m":l=f("m");break;case"M":
8
+ l=g("M",r,a);break;case"y":h=f("y");break;case"@":b=new Date(f("@")),h=b.getFullYear(),l=b.getMonth()+1,c=b.getDate();break;case"!":b=new Date((f("!")-this._ticksTo1970)/1e4),h=b.getFullYear(),l=b.getMonth()+1,c=b.getDate();break;case"'":u("'")?m():d=!0;break;default:m()}if(-1==h?h=(new Date).getFullYear():h<100&&(h+=(new Date).getFullYear()-(new Date).getFullYear()%100+(h<=s?0:-100)),p>-1)for(l=1,c=p;;){if(y=this._getDaysInMonth(h,l-1),c<=y)break;l++,c-=y}if(b=this._daylightSavingAdjust(new Date(h,l-1,c)),b.getFullYear()!=h||b.getMonth()+1!=l||b.getDate()!=c)throw"Invalid date";return b},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(t,e,i){var s,n,o,r,a,h,l,c,p,d;if(!e)return"";if(s=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,n=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,a=function(e){var i=d+1<t.length&&t.charAt(d+1)==e;return i&&d++,i},h=function(t,e,i){var s=""+e;if(a(t))for(;s.length<i;)s="0"+s;return s},l=function(t,e,i,s){return a(t)?s[e]:i[e]},c="",p=!1,e)for(d=0;d<t.length;d++)if(p)"'"!=t.charAt(d)||a("'")?c+=t.charAt(d):p=!1;else switch(t.charAt(d)){case"d":c+=h("d",e.getDate(),2);break;case"D":c+=l("D",e.getDay(),s,n);break;case"o":c+=h("o",(e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5,3);break;case"m":c+=h("m",e.getMonth()+1,2);break;case"M":c+=l("M",e.getMonth(),o,r);break;case"y":c+=a("y")?e.getFullYear():(e.getYear()%100<10?"0":"")+e.getYear()%100;break;case"@":c+=e.getTime();break;case"!":c+=1e4*e.getTime()+this._ticksTo1970;break;case"'":a("'")?c+="'":p=!0;break;default:c+=t.charAt(d)}return c},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=e+1<t.length&&t.charAt(e+1)==i;return s&&e++,s};for(e=0;e<t.length;e++)if(s)"'"!=t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return t.settings[e]!==undefined?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){var i,s,n,o,r;if(t.input.val()!=t.lastVal){i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=o=this._getDefaultDate(t),r=this._getFormatConfig(t);try{n=this.parseDate(i,s,r)||o}catch(t){this.log(t),s=e?"":s}t.selectedDay=n.getDate(),t.drawMonth=t.selectedMonth=n.getMonth(),t.drawYear=t.selectedYear=n.getFullYear(),t.currentDay=s?n.getDate():0,t.currentMonth=s?n.getMonth():0,t.currentYear=s?n.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(t,e,i){var s=function(t){var e=new Date
9
+ ;return e.setDate(e.getDate()+t),e},n=function(e){var i,s,n,o,r,a;try{return $.datepicker.parseDate($.datepicker._get(t,"dateFormat"),e,$.datepicker._getFormatConfig(t))}catch(t){}for(i=(e.toLowerCase().match(/^c/)?$.datepicker._getDate(t):null)||new Date,s=i.getFullYear(),n=i.getMonth(),o=i.getDate(),r=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,a=r.exec(e);a;){switch(a[2]||"d"){case"d":case"D":o+=parseInt(a[1],10);break;case"w":case"W":o+=7*parseInt(a[1],10);break;case"m":case"M":n+=parseInt(a[1],10),o=Math.min(o,$.datepicker._getDaysInMonth(s,n));break;case"y":case"Y":s+=parseInt(a[1],10),o=Math.min(o,$.datepicker._getDaysInMonth(s,n))}a=r.exec(e)}return new Date(s,n,o)},o=null==e||""===e?i:"string"==typeof e?n(e):"number"==typeof e?isNaN(e)?i:s(e):new Date(e.getTime());return o=o&&""+o=="Invalid Date"?i:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,r=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=r.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=r.getMonth(),t.drawYear=t.selectedYear=t.currentYear=r.getFullYear(),n==t.selectedMonth&&o==t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){return!t.currentYear||t.input&&""==t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))},_generateHTML:function(t){var e,i,s,n,o,r,a,h,l,c,p,d,u,f,g,m,_,v,b,y,k,w,D,P,I,M,x,z,C,S,T,N,R,A,H,Y,O,E,F,W,L,j,K,X,B,Q,V,U,J,Z,q,G=new Date;if(G=this._daylightSavingAdjust(new Date(G.getFullYear(),G.getMonth(),G.getDate())),e=this._get(t,"isRTL"),i=this._get(t,"showButtonPanel"),s=this._get(t,"hideIfNoPrevNext"),n=this._get(t,"navigationAsDateFormat"),o=this._getNumberOfMonths(t),r=this._get(t,"showCurrentAtPos"),a=this._get(t,"stepMonths"),h=1!=o[0]||1!=o[1],l=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),c=this._getMinMaxDate(t,"min"),p=this._getMinMaxDate(t,"max"),d=t.drawMonth-r,u=t.drawYear,d<0&&(d+=12,u--),p)for(f=this._daylightSavingAdjust(new Date(p.getFullYear(),p.getMonth()-o[0]*o[1]+1,p.getDate())),f=c&&f<c?c:f;this._daylightSavingAdjust(new Date(u,d,1))>f;)--d<0&&(d=11,u--);for(t.drawMonth=d,t.drawYear=u,g=this._get(t,"prevText"),g=n?this.formatDate(g,this._daylightSavingAdjust(new Date(u,d-a,1)),this._getFormatConfig(t)):g,m=this._canAdjustMonth(t,-1,u,d)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+t.id+"', -"+a+", 'M');\" title=\""+g+'"><span class="ui-icon ui-icon-circle-triangle-'+(e?"e":"w")+'">'+g+"</span></a>":s?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+g+'"><span class="ui-icon ui-icon-circle-triangle-'+(e?"e":"w")+'">'+g+"</span></a>",_=this._get(t,"nextText"),
10
+ _=n?this.formatDate(_,this._daylightSavingAdjust(new Date(u,d+a,1)),this._getFormatConfig(t)):_,v=this._canAdjustMonth(t,1,u,d)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+t.id+"', +"+a+", 'M');\" title=\""+_+'"><span class="ui-icon ui-icon-circle-triangle-'+(e?"w":"e")+'">'+_+"</span></a>":s?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+_+'"><span class="ui-icon ui-icon-circle-triangle-'+(e?"w":"e")+'">'+_+"</span></a>",b=this._get(t,"currentText"),y=this._get(t,"gotoCurrent")&&t.currentDay?l:G,b=n?this.formatDate(b,y,this._getFormatConfig(t)):b,k=t.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(t,"closeText")+"</button>",w=i?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(e?k:"")+(this._isInRange(t,y)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+t.id+"');\">"+b+"</button>":"")+(e?"":k)+"</div>":"",D=parseInt(this._get(t,"firstDay"),10),D=isNaN(D)?0:D,P=this._get(t,"showWeek"),I=this._get(t,"dayNames"),this._get(t,"dayNamesShort"),M=this._get(t,"dayNamesMin"),x=this._get(t,"monthNames"),z=this._get(t,"monthNamesShort"),C=this._get(t,"beforeShowDay"),S=this._get(t,"showOtherMonths"),T=this._get(t,"selectOtherMonths"),this._get(t,"calculateWeek")||this.iso8601Week,N=this._getDefaultDate(t),R="",A=0;A<o[0];A++){for(H="",Y=0;Y<o[1];Y++){if(O=this._daylightSavingAdjust(new Date(u,d,t.selectedDay)),E=" ui-corner-all",F="",h){if(F+='<div class="ui-datepicker-group',o[1]>1)switch(Y){case 0:F+=" ui-datepicker-group-first",E=" ui-corner-"+(e?"right":"left");break;case o[1]-1:F+=" ui-datepicker-group-last",E=" ui-corner-"+(e?"left":"right");break;default:F+=" ui-datepicker-group-middle",E=""}F+='">'}for(F+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+E+'">'+(/all|left/.test(E)&&0==A?e?v:m:"")+(/all|right/.test(E)&&0==A?e?m:v:"")+this._generateMonthYearHeader(t,d,u,c,p,A>0||Y>0,x,z)+'</div><table class="ui-datepicker-calendar"><thead><tr>',W=P?'<th class="ui-datepicker-week-col">'+this._get(t,"weekHeader")+"</th>":"",L=0;L<7;L++)j=(L+D)%7,W+="<th"+((L+D+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+I[j]+'">'+M[j]+"</span></th>";for(F+=W+"</tr></thead><tbody>",K=this._getDaysInMonth(u,d),u==t.selectedYear&&d==t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,K)),X=(this._getFirstDayOfMonth(u,d)-D+7)%7,B=h?6:Math.ceil((X+K)/7),Q=this._daylightSavingAdjust(new Date(u,d,1-X)),V=0;V<B;V++){for(F+="<tr>",U=P?'<td class="ui-datepicker-week-col">'+this._get(t,"calculateWeek")(Q)+"</td>":"",L=0;L<7;L++)J=C?C.apply(t.input?t.input[0]:null,[Q]):[!0,""],Z=Q.getMonth()!=d,q=Z&&!T||!J[0]||c&&Q<c||p&&Q>p,
11
+ U+='<td class="'+((L+D+6)%7>=5?" ui-datepicker-week-end":"")+(Z?" ui-datepicker-other-month":"")+(Q.getTime()==O.getTime()&&d==t.selectedMonth&&t._keyEvent||N.getTime()==Q.getTime()&&N.getTime()==O.getTime()?" "+this._dayOverClass:"")+(q?" "+this._unselectableClass+" ui-state-disabled":"")+(Z&&!S?"":" "+J[1]+(Q.getTime()==l.getTime()?" "+this._currentClass:"")+(Q.getTime()==G.getTime()?" ui-datepicker-today":""))+'"'+(Z&&!S||!J[2]?"":' title="'+J[2]+'"')+(q?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+t.id+"',"+Q.getMonth()+","+Q.getFullYear()+', this);return false;"')+">"+(Z&&!S?"&#xa0;":q?'<span class="ui-state-default">'+Q.getDate()+"</span>":'<a class="ui-state-default'+(Q.getTime()==G.getTime()?" ui-state-highlight":"")+(Q.getTime()==l.getTime()?" ui-state-active":"")+(Z?" ui-priority-secondary":"")+'" href="#">'+Q.getDate()+"</a>")+"</td>",Q.setDate(Q.getDate()+1),Q=this._daylightSavingAdjust(Q);F+=U+"</tr>"}d++,d>11&&(d=0,u++),F+="</tbody></table>"+(h?"</div>"+(o[0]>0&&Y==o[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),H+=F}R+=H}return R+=w+($.browser.msie&&parseInt($.browser.version,10)<7&&!t.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),t._keyEvent=!1,R},_generateMonthYearHeader:function(t,e,i,s,n,o,r,a){var h,l,c,p,d,u,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b='<div class="ui-datepicker-title">',y="";if(o||!m)y+='<span class="ui-datepicker-month">'+r[e]+"</span>";else{for(h=s&&s.getFullYear()==i,l=n&&n.getFullYear()==i,y+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+t.id+"', this, 'M');\" onclick=\"DP_jQuery_"+dpuuid+".datepicker._clickMonthYear('#"+t.id+"');\">",c=0;c<12;c++)(!h||c>=s.getMonth())&&(!l||c<=n.getMonth())&&(y+='<option value="'+c+'"'+(c==e?' selected="selected"':"")+">"+a[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":"&#xa0;")),t.yearshtml="",o||!_)b+='<span class="ui-datepicker-year">'+i+"</span>";else{for(p=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),u=function(t){var e=t.match(/c[+-].*/)?i+parseInt(t.substring(1),10):t.match(/[+-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=u(p[0]),g=Math.max(f,u(p[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+t.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+dpuuid+".datepicker._clickMonthYear('#"+t.id+"');\">";f<=g;f++)t.yearshtml+='<option value="'+f+'"'+(f==i?' selected="selected"':"")+">"+f+"</option>";t.yearshtml+="</select>",$.browser.mozilla?b+='<select class="ui-datepicker-year"><option value="'+i+'" selected="selected">'+i+"</option></select>":(b+=t.yearshtml,t.yearshtml=null)}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){
12
+ var s=t.drawYear+("Y"==i?e:0),n=t.drawMonth+("M"==i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"==i?e:0),r=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=r.getDate(),t.drawMonth=t.selectedMonth=r.getMonth(),t.drawYear=t.selectedYear=r.getFullYear(),"M"!=i&&"Y"!=i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&e<i?i:e;return n=s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(e<0?e:n[0]*n[1]),1));return e<0&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max");return(!i||e.getTime()>=i.getTime())&&(!s||e.getTime()<=s.getTime())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),$.fn.datepicker=function(t){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var e=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!=t&&"getDate"!=t&&"widget"!=t?"option"==t&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this].concat(e)):$.datepicker._attachDatepicker(this,t)}):$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this[0]].concat(e))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="@VERSION",window["DP_jQuery_"+dpuuid]=$}(jQuery)},995:function(t,e){!function(t,e){t.widget("ui.draggable",t.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,
13
+ cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){"original"!=this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(this.element.data("draggable"))return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(e){var i=this.options;return!(this.helper||i.disabled||t(e.target).is(".ui-resizable-handle"))&&(this.handle=this._getHandle(e),!!this.handle)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),i.containment&&this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(e,!0),!0)},_mouseDrag:function(e,i){if(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(!1===this._trigger("drag",e,s))return this._mouseUp({}),!1;this.position=s.position}return this.options.axis&&"y"==this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"==this.options.axis||(this.helper[0].style.top=this.position.top+"px"),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),!!(this.element[0]&&this.element[0].parentNode||"original"!=this.options.helper)&&("invalid"==this.options.revert&&!s||"valid"==this.options.revert&&s||!0===this.options.revert||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?(i=this,t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==i._trigger("stop",e)&&i._clear()})):!1!==this._trigger("stop",e)&&this._clear(),!1)},cancel:function(){
14
+ return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){var i=!this.options.handle||!t(this.options.handle,this.element).length;return t(this.options.handle,this.element).find("*").andSelf().each(function(){this==e.target&&(i=!0)}),i},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e])):"clone"==i.helper?this.element.clone():this.element;return s.parents("body").length||s.appendTo("parent"==i.appendTo?this.element[0].parentNode:i.appendTo),s[0]==this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"==this.cssPosition&&this.scrollParent[0]!=document&&t.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&"html"==this.offsetParent[0].tagName.toLowerCase()&&t.browser.msie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"==this.cssPosition){var t=this.element.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;if("parent"==n.containment&&(n.containment=this.helper[0].parentNode),
15
+ "document"!=n.containment&&"window"!=n.containment||(this.containment=[("document"==n.containment?0:t(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,("document"==n.containment?0:t(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,("document"==n.containment?0:t(window).scrollLeft())+t("document"==n.containment?document:window).width()-this.helperProportions.width-this.margins.left,("document"==n.containment?0:t(window).scrollTop())+(t("document"==n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||n.containment.constructor==Array)n.containment.constructor==Array&&(this.containment=n.containment);else{if(!(e=t(n.containment)[0]))return;i=t(n.containment).offset(),s="hidden"!=t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0),i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0),i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}},_convertPositionTo:function(e,i){var s,n,o;return i||(i=this.position),s="absolute"==e?1:-1,this.options,n="absolute"!=this.cssPosition||this.scrollParent[0]!=document&&t.ui.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName),{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-(t.browser.safari&&t.browser.version<526&&"fixed"==this.cssPosition?0:("fixed"==this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s),left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-(t.browser.safari&&t.browser.version<526&&"fixed"==this.cssPosition?0:("fixed"==this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s)}},_generatePosition:function(e){var i,s,n=this.options,o="absolute"!=this.cssPosition||this.scrollParent[0]!=document&&t.ui.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,r=/(html|body)/i.test(o[0].tagName),a=e.pageX,h=e.pageY;return this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(h=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(h=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((h-this.originalPageY)/n.grid[1])*n.grid[1],
16
+ h=this.containment&&(i-this.offset.click.top<this.containment[1]||i-this.offset.click.top>this.containment[3])?i-this.offset.click.top<this.containment[1]?i+n.grid[1]:i-n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment&&(s-this.offset.click.left<this.containment[0]||s-this.offset.click.left>this.containment[2])?s-this.offset.click.left<this.containment[0]?s+n.grid[0]:s-n.grid[0]:s)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(t.browser.safari&&t.browser.version<526&&"fixed"==this.cssPosition?0:"fixed"==this.cssPosition?-this.scrollParent.scrollTop():r?0:o.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(t.browser.safari&&t.browser.version<526&&"fixed"==this.cssPosition?0:"fixed"==this.cssPosition?-this.scrollParent.scrollLeft():r?0:o.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]==this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s]),"drag"==e&&(this.positionAbs=this._convertPositionTo("absolute")),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(t){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.extend(t.ui.draggable,{version:"@VERSION"}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i){var s=t(this).data("draggable"),n=s.options,o=t.extend({},i,{item:s.element});s.sortables=[],t(n.connectToSortable).each(function(){var i=t.data(this,"sortable");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",e,o))})},stop:function(e,i){var s=t(this).data("draggable"),n=t.extend({},i,{item:s.element});t.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(e),this.instance.options.helper=this.instance.options._helper,"original"==s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",e,n))})},drag:function(e,i){var s=t(this).data("draggable"),n=this;t.each(s.sortables,function(o){this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=t(n).clone().appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},e.target=this.instance.currentItem[0],this.instance._mouseCapture(e,!0),this.instance._mouseStart(e,!0,!0),
17
+ this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",e),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(e)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",e,this.instance._uiHash(this.instance)),this.instance._mouseStop(e,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",e),s.dropped=!1)})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i){var s=t("body"),n=t(this).data("draggable").options;s.css("cursor")&&(n._cursor=s.css("cursor")),s.css("cursor",n.cursor)},stop:function(e,i){var s=t(this).data("draggable").options;s._cursor&&t("body").css("cursor",s._cursor)}}),t.ui.plugin.add("draggable","iframeFix",{start:function(e,i){var s=t(this).data("draggable").options;t(!0===s.iframeFix?"iframe":s.iframeFix).each(function(){t('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(t(this).offset()).appendTo("body")})},stop:function(e,i){t("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i){var s=t(i.helper),n=t(this).data("draggable").options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(e,i){var s=t(this).data("draggable").options;s._opacity&&t(i.helper).css("opacity",s._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(e,i){var s=t(this).data("draggable");s.scrollParent[0]!=document&&"HTML"!=s.scrollParent[0].tagName&&(s.overflowOffset=s.scrollParent.offset())},drag:function(e,i){var s=t(this).data("draggable"),n=s.options,o=!1;s.scrollParent[0]!=document&&"HTML"!=s.scrollParent[0].tagName?(n.axis&&"x"==n.axis||(s.overflowOffset.top+s.scrollParent[0].offsetHeight-e.pageY<n.scrollSensitivity?s.scrollParent[0].scrollTop=o=s.scrollParent[0].scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(s.scrollParent[0].scrollTop=o=s.scrollParent[0].scrollTop-n.scrollSpeed)),
18
+ n.axis&&"y"==n.axis||(s.overflowOffset.left+s.scrollParent[0].offsetWidth-e.pageX<n.scrollSensitivity?s.scrollParent[0].scrollLeft=o=s.scrollParent[0].scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(s.scrollParent[0].scrollLeft=o=s.scrollParent[0].scrollLeft-n.scrollSpeed))):(n.axis&&"x"==n.axis||(e.pageY-t(document).scrollTop()<n.scrollSensitivity?o=t(document).scrollTop(t(document).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(document).scrollTop())<n.scrollSensitivity&&(o=t(document).scrollTop(t(document).scrollTop()+n.scrollSpeed))),n.axis&&"y"==n.axis||(e.pageX-t(document).scrollLeft()<n.scrollSensitivity?o=t(document).scrollLeft(t(document).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(document).scrollLeft())<n.scrollSensitivity&&(o=t(document).scrollLeft(t(document).scrollLeft()+n.scrollSpeed)))),!1!==o&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i){var s=t(this).data("draggable"),n=s.options;s.snapElements=[],t(n.snap.constructor!=String?n.snap.items||":data(draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!=s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i){var s,n,o,r,a,h,l,c,p,d,u=t(this).data("draggable"),f=u.options,g=f.snapTolerance,m=i.offset.left,_=m+u.helperProportions.width,v=i.offset.top,b=v+u.helperProportions.height;for(s=u.snapElements.length-1;s>=0;s--)n=u.snapElements[s].left,o=n+u.snapElements[s].width,r=u.snapElements[s].top,a=r+u.snapElements[s].height,n-g<m&&m<o+g&&r-g<v&&v<a+g||n-g<m&&m<o+g&&r-g<b&&b<a+g||n-g<_&&_<o+g&&r-g<v&&v<a+g||n-g<_&&_<o+g&&r-g<b&&b<a+g?("inner"!=f.snapMode&&(h=Math.abs(r-b)<=g,l=Math.abs(a-v)<=g,c=Math.abs(n-_)<=g,p=Math.abs(o-m)<=g,h&&(i.position.top=u._convertPositionTo("relative",{top:r-u.helperProportions.height,left:0}).top-u.margins.top),l&&(i.position.top=u._convertPositionTo("relative",{top:a,left:0}).top-u.margins.top),c&&(i.position.left=u._convertPositionTo("relative",{top:0,left:n-u.helperProportions.width}).left-u.margins.left),p&&(i.position.left=u._convertPositionTo("relative",{top:0,left:o}).left-u.margins.left)),d=h||l||c||p,"outer"!=f.snapMode&&(h=Math.abs(r-v)<=g,l=Math.abs(a-b)<=g,c=Math.abs(n-m)<=g,p=Math.abs(o-_)<=g,h&&(i.position.top=u._convertPositionTo("relative",{top:r,left:0}).top-u.margins.top),l&&(i.position.top=u._convertPositionTo("relative",{top:a-u.helperProportions.height,left:0}).top-u.margins.top),c&&(i.position.left=u._convertPositionTo("relative",{top:0,left:n}).left-u.margins.left),p&&(i.position.left=u._convertPositionTo("relative",{top:0,left:o-u.helperProportions.width}).left-u.margins.left)),!u.snapElements[s].snapping&&(h||l||c||p||d)&&u.options.snap.snap&&u.options.snap.snap.call(u.element,e,t.extend(u._uiHash(),{snapItem:u.snapElements[s].item})),
19
+ u.snapElements[s].snapping=h||l||c||p||d):(u.snapElements[s].snapping&&u.options.snap.release&&u.options.snap.release.call(u.element,e,t.extend(u._uiHash(),{snapItem:u.snapElements[s].item})),u.snapElements[s].snapping=!1)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i){var s,n=t(this).data("draggable").options,o=t.makeArray(t(n.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});o.length&&(s=parseInt(o[0].style.zIndex)||0,t(o).each(function(t){this.style.zIndex=s+t}),this[0].style.zIndex=s+o.length)}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i){var s=t(i.helper),n=t(this).data("draggable").options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(e,i){var s=t(this).data("draggable").options;s._zIndex&&t(i.helper).css("zIndex",s._zIndex)}})}(jQuery)},999:function(t,e){!function(t,e){var i,s;t.widget("ui.resizable",t.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var e,i,s,n,o,r=this,a=this.options;if(this.element.addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(/relative/.test(this.element.css("position"))&&t.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"}),this.element.wrap(t('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor==String)for("all"==this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),
20
+ this.handles={},i=0;i<e.length;i++)s=t.trim(e[i]),n="ui-resizable-"+s,o=t('<div class="ui-resizable-handle '+n+'"></div>'),/sw|se|ne|nw/.test(s)&&o.css({zIndex:++a.zIndex}),"se"==s&&o.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor==String&&(this.handles[i]=t(this.handles[i],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=t(this.handles[i],this.element),n=0,n=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),o="padding"+(/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"),e.css(o,n),this._proportionallyResize()),t(this.handles[i]).length},this._renderAxis(this.element),this._handles=t(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!r.resizing){if(this.className)var t=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);r.axis=t&&t[1]?t[1]:"se"}}),a.autoHide&&(this._handles.hide(),t(this.element).addClass("ui-resizable-autohide").hover(function(){t(this).removeClass("ui-resizable-autohide"),r._handles.show()},function(){r.resizing||(t(this).addClass("ui-resizable-autohide"),r._handles.hide())})),this._mouseInit()},destroy:function(){var e,i;return this._mouseDestroy(),e=function(e){t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()},this.elementIsWrapper&&(e(this.element),i=this.element,i.after(this.originalElement.css({position:i.css("position"),width:i.outerWidth(),height:i.outerHeight(),top:i.css("top"),left:i.css("left")})).remove()),this.originalElement.css("resize",this.originalResizeStyle),e(this.originalElement),this},_mouseCapture:function(e){var i,s=!1;for(i in this.handles)t(this.handles[i])[0]==e.target&&(s=!0);return!this.options.disabled&&s},_mouseStart:function(e){var s,n,o,r=this.options,a=this.element.position(),h=this.element;return this.resizing=!0,this.documentScroll={top:t(document).scrollTop(),left:t(document).scrollLeft()},(h.is(".ui-draggable")||/absolute/.test(h.css("position")))&&h.css({position:"absolute",top:a.top,left:a.left}),t.browser.opera&&/relative/.test(h.css("position"))&&h.css({position:"relative",top:"auto",left:"auto"}),this._renderProxy(),s=i(this.helper.css("left")),n=i(this.helper.css("top")),r.containment&&(s+=t(r.containment).scrollLeft()||0,n+=t(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:s,top:n},this.size=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalSize=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalPosition={left:s,top:n},this.sizeDiff={width:h.outerWidth()-h.width(),height:h.outerHeight()-h.height()},this.originalMousePosition={left:e.pageX,top:e.pageY},
21
+ this.aspectRatio="number"==typeof r.aspectRatio?r.aspectRatio:this.originalSize.width/this.originalSize.height||1,o=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"==o?this.axis+"-resize":o),h.addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s=this.helper,n=(this.options,this.originalMousePosition),o=this.axis,r=e.pageX-n.left||0,a=e.pageY-n.top||0,h=this._change[o];return!!h&&(i=h.apply(this,[e,r,a]),t.browser.msie&&t.browser.version<7,this.sizeDiff,(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._propagate("resize",e),s.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(i),this._trigger("resize",e,this.ui()),!1)},_mouseStop:function(e){var i,s,n,o,r,a,h,l,c;return this.resizing=!1,i=this.options,s=this,this._helper&&(n=this._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),r=o&&t.ui.hasScroll(n[0],"left")?0:s.sizeDiff.height,a=o?0:s.sizeDiff.width,h={width:s.helper.width()-a,height:s.helper.height()-r},l=parseInt(s.element.css("left"),10)+(s.position.left-s.originalPosition.left)||null,c=parseInt(s.element.css("top"),10)+(s.position.top-s.originalPosition.top)||null,i.animate||this.element.css(t.extend(h,{top:c,left:l})),s.helper.height(s.size.height),s.helper.width(s.size.width),this._helper&&!i.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updateCache:function(t){this.options;this.offset=this.helper.offset(),s(t.left)&&(this.position.left=t.left),s(t.top)&&(this.position.top=t.top),s(t.height)&&(this.size.height=t.height),s(t.width)&&(this.size.width=t.width)},_updateRatio:function(t,e){var i=(this.options,this.position),s=this.size,n=this.axis;return t.height?t.width=s.height*this.aspectRatio:t.width&&(t.height=s.width/this.aspectRatio),"sw"==n&&(t.left=i.left+(s.width-t.width),t.top=null),"nw"==n&&(t.top=i.top+(s.height-t.height),t.left=i.left+(s.width-t.width)),t},_respectSize:function(t,e){var i,n,o,r,a,h=(this.helper,this.options),l=(this._aspectRatio||e.shiftKey,this.axis),c=s(t.width)&&h.maxWidth&&h.maxWidth<t.width,p=s(t.height)&&h.maxHeight&&h.maxHeight<t.height,d=s(t.width)&&h.minWidth&&h.minWidth>t.width,u=s(t.height)&&h.minHeight&&h.minHeight>t.height;return d&&(t.width=h.minWidth),u&&(t.height=h.minHeight),c&&(t.width=h.maxWidth),p&&(t.height=h.maxHeight),i=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height,o=/sw|nw|w/.test(l),r=/nw|ne|n/.test(l),d&&o&&(t.left=i-h.minWidth),c&&o&&(t.left=i-h.maxWidth),u&&r&&(t.top=n-h.minHeight),p&&r&&(t.top=n-h.maxHeight),a=!t.width&&!t.height,a&&!t.left&&t.top?t.top=null:a&&!t.top&&t.left&&(t.left=null),t},_proportionallyResize:function(){var e,i,s,n,o;this.options
22
+ ;if(this._proportionallyResizeElements.length)for(e=this.helper||this.element,i=0;i<this._proportionallyResizeElements.length;i++)s=this._proportionallyResizeElements[i],this.borderDif||(n=[s.css("borderTopWidth"),s.css("borderRightWidth"),s.css("borderBottomWidth"),s.css("borderLeftWidth")],o=[s.css("paddingTop"),s.css("paddingRight"),s.css("paddingBottom"),s.css("paddingLeft")],this.borderDif=t.map(n,function(t,e){return(parseInt(t,10)||0)+(parseInt(o[e],10)||0)})),t.browser.msie&&(t(e).is(":hidden")||t(e).parents(":hidden").length)||s.css({height:e.height()-this.borderDif[0]-this.borderDif[2]||0,width:e.width()-this.borderDif[1]-this.borderDif[3]||0})},_renderProxy:function(){var e,i,s,n=this.element,o=this.options;this.elementOffset=n.offset(),this._helper?(this.helper=this.helper||t('<div style="overflow:hidden;"></div>'),e=t.browser.msie&&t.browser.version<7,i=e?1:0,s=e?2:-1,this.helper.addClass(this._helper).css({width:this.element.outerWidth()+s,height:this.element.outerHeight()+s,position:"absolute",left:this.elementOffset.left-i+"px",top:this.elementOffset.top-i+"px",zIndex:++o.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e,i){return{width:this.originalSize.width+e}},w:function(t,e,i){var s=(this.options,this.originalSize);return{left:this.originalPosition.left+e,width:s.width-e}},n:function(t,e,i){var s=(this.options,this.originalSize);return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!=e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.extend(t.ui.resizable,{version:"@VERSION"}),t.ui.plugin.add("resizable","alsoResize",{start:function(e,i){var s=t(this).data("resizable"),n=s.options,o=function(e){t(e).each(function(){var e=t(this);e.data("resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10),position:e.css("position")})})};"object"!=typeof n.alsoResize||n.alsoResize.parentNode?o(n.alsoResize):n.alsoResize.length?(n.alsoResize=n.alsoResize[0],o(n.alsoResize)):t.each(n.alsoResize,function(t){o(t)})},resize:function(e,i){var s=t(this).data("resizable"),n=s.options,o=s.originalSize,r=s.originalPosition,a={height:s.size.height-o.height||0,width:s.size.width-o.width||0,
23
+ top:s.position.top-r.top||0,left:s.position.left-r.left||0},h=function(e,n){t(e).each(function(){var e=t(this),o=t(this).data("resizable-alsoresize"),r={},h=n&&n.length?n:e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(h,function(t,e){var i=(o[e]||0)+(a[e]||0);i&&i>=0&&(r[e]=i||null)}),t.browser.opera&&/relative/.test(e.css("position"))&&(s._revertToRelativePosition=!0,e.css({position:"absolute",top:"auto",left:"auto"})),e.css(r)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):t.each(n.alsoResize,function(t,e){h(t,e)})},stop:function(e,i){var s=t(this).data("resizable"),n=s.options,o=function(e){t(e).each(function(){var e=t(this);e.css({position:e.data("resizable-alsoresize").position})})};s._revertToRelativePosition&&(s._revertToRelativePosition=!1,"object"!=typeof n.alsoResize||n.alsoResize.nodeType?o(n.alsoResize):t.each(n.alsoResize,function(t){o(t)})),t(this).removeData("resizable-alsoresize")}}),t.ui.plugin.add("resizable","animate",{stop:function(e,i){var s=t(this).data("resizable"),n=s.options,o=s._proportionallyResizeElements,r=o.length&&/textarea/i.test(o[0].nodeName),a=r&&t.ui.hasScroll(o[0],"left")?0:s.sizeDiff.height,h=r?0:s.sizeDiff.width,l={width:s.size.width-h,height:s.size.height-a},c=parseInt(s.element.css("left"),10)+(s.position.left-s.originalPosition.left)||null,p=parseInt(s.element.css("top"),10)+(s.position.top-s.originalPosition.top)||null;s.element.animate(t.extend(l,p&&c?{top:p,left:c}:{}),{duration:n.animateDuration,easing:n.animateEasing,step:function(){var i={width:parseInt(s.element.css("width"),10),height:parseInt(s.element.css("height"),10),top:parseInt(s.element.css("top"),10),left:parseInt(s.element.css("left"),10)};o&&o.length&&t(o[0]).css({width:i.width,height:i.height}),s._updateCache(i),s._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(e,s){var n,o,r,a,h,l,c,p=t(this).data("resizable"),d=p.options,u=p.element,f=d.containment,g=f instanceof t?f.get(0):/parent/.test(f)?u.parent().get(0):f;g&&(p.containerElement=t(g),/document/.test(f)||f==document?(p.containerOffset={left:0,top:0},p.containerPosition={left:0,top:0},p.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(n=t(g),o=[],t(["Top","Right","Left","Bottom"]).each(function(t,e){o[t]=i(n.css("padding"+e))}),p.containerOffset=n.offset(),p.containerPosition=n.position(),p.containerSize={height:n.innerHeight()-o[3],width:n.innerWidth()-o[1]},r=p.containerOffset,a=p.containerSize.height,h=p.containerSize.width,l=t.ui.hasScroll(g,"left")?g.scrollWidth:h,c=t.ui.hasScroll(g)?g.scrollHeight:a,p.parentData={element:g,left:r.left,top:r.top,width:l,height:c}))},resize:function(e,i){var s,n,o,r,a=t(this).data("resizable"),h=a.options,l=(a.containerSize,a.containerOffset),c=(a.size,a.position),p=a._aspectRatio||e.shiftKey,d={top:0,left:0},u=a.containerElement,f=/^static$/.test(u.css("position"));u[0]!=document&&f&&(d=l),
24
+ c.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-d.left),p&&(a.size.height=a.size.width/h.aspectRatio),a.position.left=h.helper?l.left:0),c.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),p&&(a.size.width=a.size.height*h.aspectRatio),a.position.top=a._helper?l.top:0),a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top,s=Math.abs((a._helper,a.offset.left-d.left+a.sizeDiff.width)),n=Math.abs((a._helper?a.offset.top-d.top:a.offset.top-l.top)+a.sizeDiff.height),o=a.containerElement.get(0)==a.element.parent().get(0),r=/relative|absolute/.test(a.containerElement.css("position")),o&&r&&(s-=a.parentData.left),s+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-s,p&&(a.size.height=a.size.width/a.aspectRatio)),n+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-n,p&&(a.size.width=a.size.height*a.aspectRatio))},stop:function(e,i){var s=t(this).data("resizable"),n=s.options,o=(s.position,s.containerOffset),r=s.containerPosition,a=s.containerElement,h=t(s.helper),l=h.offset(),c=h.outerWidth()-s.sizeDiff.width,p=h.outerHeight()-s.sizeDiff.height;s._helper&&!n.animate&&/relative/.test(a.css("position"))&&t(this).css({left:l.left-r.left-o.left,width:c,height:p}),s._helper&&!n.animate&&/^static$/.test(a.css("position"))&&t(this).css({left:l.left-r.left-o.left,width:c,height:p})}}),t.ui.plugin.add("resizable","ghost",{start:function(e,i){var s=t(this).data("resizable"),n=s.options,o=s.size;s.ghost=s.originalElement.clone(),s.ghost.css({opacity:.25,display:"block",position:"relative",height:o.height,width:o.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof n.ghost?n.ghost:""),s.ghost.appendTo(s.helper)},resize:function(e,i){var s=t(this).data("resizable");s.options;s.ghost&&s.ghost.css({position:"relative",height:s.size.height,width:s.size.width})},stop:function(e,i){var s=t(this).data("resizable");s.options;s.ghost&&s.helper&&s.helper.get(0).removeChild(s.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(e,i){var s,n,o=t(this).data("resizable"),r=o.options,a=o.size,h=o.originalSize,l=o.originalPosition,c=o.axis;r._aspectRatio||e.shiftKey;r.grid="number"==typeof r.grid?[r.grid,r.grid]:r.grid,s=Math.round((a.width-h.width)/(r.grid[0]||1))*(r.grid[0]||1),n=Math.round((a.height-h.height)/(r.grid[1]||1))*(r.grid[1]||1),/^(se|s|e)$/.test(c)?(o.size.width=h.width+s,o.size.height=h.height+n):/^(ne)$/.test(c)?(o.size.width=h.width+s,o.size.height=h.height+n,o.position.top=l.top-n):/^(sw)$/.test(c)?(o.size.width=h.width+s,o.size.height=h.height+n,o.position.left=l.left-s):(o.size.width=h.width+s,o.size.height=h.height+n,o.position.top=l.top-n,o.position.left=l.left-s)}}),i=function(t){return parseInt(t,10)||0},s=function(t){return!isNaN(parseInt(t,10))}}(jQuery)},1e3:function(t,e){!function(t,e){t.widget("ui.sortable",t.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:!1,
25
+ connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=!!this.items.length&&(/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display"))),this.offset=this.element.offset(),this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData("sortable-item");return this},_setOption:function(e,i){"disabled"===e?(this.options[e]=i,this.widget()[i?"addClass":"removeClass"]("ui-sortable-disabled")):t.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,i){var s,n,o;return!this.reverting&&(!this.options.disabled&&"static"!=this.options.type&&(this._refreshItems(e),s=null,n=this,t(e.target).parents().each(function(){if(t.data(this,"sortable-item")==n)return s=t(this),!1}),t.data(e.target,"sortable-item")==n&&(s=t(e.target)),!!s&&(!(this.options.handle&&!i&&(o=!1,t(this.options.handle,s).find("*").andSelf().each(function(){this==e.target&&(o=!0)}),!o))&&(this.currentItem=s,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(e,i,s){var n,o=this.options,r=this;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&(t("body").css("cursor")&&(this._storedCursor=t("body").css("cursor")),t("body").css("cursor",o.cursor)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!=document&&"HTML"!=this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),
26
+ this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,r._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,r,a;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(i=this.options,s=!1,this.scrollParent[0]!=document&&"HTML"!=this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<i.scrollSensitivity?this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop+i.scrollSpeed:e.pageY-this.overflowOffset.top<i.scrollSensitivity&&(this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop-i.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<i.scrollSensitivity?this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft+i.scrollSpeed:e.pageX-this.overflowOffset.left<i.scrollSensitivity&&(this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft-i.scrollSpeed)):(e.pageY-t(document).scrollTop()<i.scrollSensitivity?s=t(document).scrollTop(t(document).scrollTop()-i.scrollSpeed):t(window).height()-(e.pageY-t(document).scrollTop())<i.scrollSensitivity&&(s=t(document).scrollTop(t(document).scrollTop()+i.scrollSpeed)),e.pageX-t(document).scrollLeft()<i.scrollSensitivity?s=t(document).scrollLeft(t(document).scrollLeft()-i.scrollSpeed):t(window).width()-(e.pageX-t(document).scrollLeft())<i.scrollSensitivity&&(s=t(document).scrollLeft(t(document).scrollLeft()+i.scrollSpeed))),!1!==s&&t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"==this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"==this.options.axis||(this.helper[0].style.top=this.position.top+"px"),n=this.items.length-1;n>=0;n--)if(o=this.items[n],r=o.item[0],a=this._intersectsWithPointer(o),a&&!(r==this.currentItem[0]||this.placeholder[1==a?"next":"prev"]()[0]==r||t.ui.contains(this.placeholder[0],r)||"semi-dynamic"==this.options.type&&t.ui.contains(this.element[0],r))){if(this.direction=1==a?"down":"up","pointer"!=this.options.tolerance&&!this._intersectsWithSides(o))break;this._rearrange(e,o),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){var s,n;if(e)return t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert?(s=this,n=s.placeholder.offset(),s.reverting=!0,t(this.helper).animate({left:n.left-this.offset.parent.left-s.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),
27
+ top:n.top-this.offset.parent.top-s.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){s._clear(e)})):this._clear(e,i),!1},cancel:function(){var e,i=this;if(this.dragging)for(this._mouseUp({target:null}),"original"==this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show(),e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,i._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,i._uiHash(this)),this.containers[e].containerCache.over=0);return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!=this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,r=o+t.width,a=t.top,h=a+t.height,l=this.offset.click.top,c=this.offset.click.left,p=s+l>a&&s+l<h&&e+c>o&&e+c<r;return"pointer"==this.options.tolerance||this.options.forcePointerForContainers||"pointer"!=this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:o<e+this.helperProportions.width/2&&i-this.helperProportions.width/2<r&&a<s+this.helperProportions.height/2&&n-this.helperProportions.height/2<h},_intersectsWithPointer:function(e){var i=t.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),s=t.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),n=i&&s,o=this._getDragVerticalDirection(),r=this._getDragHorizontalDirection();return!!n&&(this.floating?r&&"right"==r||"down"==o?2:1:o&&("down"==o?2:1))},_intersectsWithSides:function(e){var i=t.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),s=t.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),n=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return this.floating&&o?"right"==o&&s||"left"==o&&!s:n&&("down"==n&&i||"up"==n&&!i)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!=t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){
28
+ var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!=t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor==String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){var i,s,n,o,r=[],a=[],h=this._connectWith();if(h&&e)for(i=h.length-1;i>=0;i--)for(s=t(h[i]),n=s.length-1;n>=0;n--)(o=t.data(s[n],"sortable"))&&o!=this&&!o.options.disabled&&a.push([t.isFunction(o.options.items)?o.options.items.call(o.element):t(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(a.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=a.length-1;i>=0;i--)a[i][0].each(function(){r.push(this)});return t(r)},_removeCurrentsFromItems:function(){var t,e,i=this.currentItem.find(":data(sortable-item)");for(t=0;t<this.items.length;t++)for(e=0;e<i.length;e++)i[e]==this.items[t].item[0]&&this.items.splice(t,1)},_refreshItems:function(e){var i,s,n,o,r,a,h,l,c,p,d;if(this.items=[],this.containers=[this],i=this.items,this,s=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],n=this._connectWith())for(o=n.length-1;o>=0;o--)for(r=t(n[o]),a=r.length-1;a>=0;a--)(h=t.data(r[a],"sortable"))&&h!=this&&!h.options.disabled&&(s.push([t.isFunction(h.options.items)?h.options.items.call(h.element[0],e,{item:this.currentItem}):t(h.options.items,h.element),h]),this.containers.push(h));for(o=s.length-1;o>=0;o--)for(l=s[o][1],c=s[o][0],a=0,p=c.length;a<p;a++)d=t(c[a]),d.data("sortable-item",l),i.push({item:d,instance:l,width:0,height:0,left:0,top:0})},refreshPositions:function(e){var i,s,n,o;for(this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),i=this.items.length-1;i>=0;i--)s=this.items[i],n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top;if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){var i,s=e||this,n=s.options;n.placeholder&&n.placeholder.constructor!=String||(i=n.placeholder,n.placeholder={element:function(){var e=t(document.createElement(s.currentItem[0].nodeName)).addClass(i||s.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return i||(e.style.visibility="hidden"),e},update:function(t,e){
29
+ i&&!n.forcePlaceholderSize||(e.height()||e.height(s.currentItem.innerHeight()-parseInt(s.currentItem.css("paddingTop")||0,10)-parseInt(s.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(s.currentItem.innerWidth()-parseInt(s.currentItem.css("paddingLeft")||0,10)-parseInt(s.currentItem.css("paddingRight")||0,10)))}}),s.placeholder=t(n.placeholder.element.call(s.element,s.currentItem)),s.currentItem.after(s.placeholder),n.placeholder.update(s,s.placeholder)},_contactContainers:function(e){var i,s,n,o,r,a,h=null,l=null;for(i=this.containers.length-1;i>=0;i--)if(!t.ui.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(h&&t.ui.contains(this.containers[i].element[0],h.element[0]))continue;h=this.containers[i],l=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(h)if(1===this.containers.length)this.containers[l]._trigger("over",e,this._uiHash(this)),this.containers[l].containerCache.over=1;else if(this.currentContainer!=this.containers[l]){for(s=1e4,n=null,o=this.positionAbs[this.containers[l].floating?"left":"top"],r=this.items.length-1;r>=0;r--)t.ui.contains(this.containers[l].element[0],this.items[r].item[0])&&(a=this.items[r][this.containers[l].floating?"left":"top"],Math.abs(a-o)<s&&(s=Math.abs(a-o),n=this.items[r]));if(!n&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[l],n?this._rearrange(e,n,null,!0):this._rearrange(e,null,this.containers[l].element,!0),this._trigger("change",e,this._uiHash()),this.containers[l]._trigger("change",e,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[l]._trigger("over",e,this._uiHash(this)),this.containers[l].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"==i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!=i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(""==s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(""==s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent()
30
+ ;var e=this.offsetParent.offset();return"absolute"==this.cssPosition&&this.scrollParent[0]!=document&&t.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&"html"==this.offsetParent[0].tagName.toLowerCase()&&t.browser.msie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"==this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"==n.containment&&(n.containment=this.helper[0].parentNode),"document"!=n.containment&&"window"!=n.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,t("document"==n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(t("document"==n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!=t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){var s,n,o;return i||(i=this.position),s="absolute"==e?1:-1,this.options,n="absolute"!=this.cssPosition||this.scrollParent[0]!=document&&t.ui.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName),{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-(t.browser.safari&&"fixed"==this.cssPosition?0:("fixed"==this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s),
31
+ left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-(t.browser.safari&&"fixed"==this.cssPosition?0:("fixed"==this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s)}},_generatePosition:function(e){var i,s,n,o,r=this.options,a="absolute"!=this.cssPosition||this.scrollParent[0]!=document&&t.ui.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(a[0].tagName);return"relative"!=this.cssPosition||this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),i=e.pageX,s=e.pageY,this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(i=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(s=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(i=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),r.grid&&(n=this.originalPageY+Math.round((s-this.originalPageY)/r.grid[1])*r.grid[1],s=this.containment&&(n-this.offset.click.top<this.containment[1]||n-this.offset.click.top>this.containment[3])?n-this.offset.click.top<this.containment[1]?n+r.grid[1]:n-r.grid[1]:n,o=this.originalPageX+Math.round((i-this.originalPageX)/r.grid[0])*r.grid[0],i=this.containment&&(o-this.offset.click.left<this.containment[0]||o-this.offset.click.left>this.containment[2])?o-this.offset.click.left<this.containment[0]?o+r.grid[0]:o-r.grid[0]:o)),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(t.browser.safari&&"fixed"==this.cssPosition?0:"fixed"==this.cssPosition?-this.scrollParent.scrollTop():h?0:a.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(t.browser.safari&&"fixed"==this.cssPosition?0:"fixed"==this.cssPosition?-this.scrollParent.scrollLeft():h?0:a.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"==this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this,o=this.counter;window.setTimeout(function(){o==n.counter&&n.refreshPositions(!s)},0)},_clear:function(e,i){var s,n;if(this.reverting=!1,s=[],this,!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]==this.currentItem[0]){for(n in this._storedCSS)"auto"!=this._storedCSS[n]&&"static"!=this._storedCSS[n]||(this._storedCSS[n]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();if(this.fromOutside&&!i&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev==this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent==this.currentItem.parent()[0]||i||s.push(function(t){this._trigger("update",t,this._uiHash())}),
32
+ !t.ui.contains(this.element[0],this.currentItem[0]))for(i||s.push(function(t){this._trigger("remove",t,this._uiHash())}),n=this.containers.length-1;n>=0;n--)t.ui.contains(this.containers[n].element[0],this.currentItem[0])&&!i&&(s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.containers[n])),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.containers[n])));for(n=this.containers.length-1;n>=0;n--)i||s.push(function(t){return function(e){t._trigger("deactivate",e,this._uiHash(this))}}.call(this,this.containers[n])),this.containers[n].containerCache.over&&(s.push(function(t){return function(e){t._trigger("out",e,this._uiHash(this))}}.call(this,this.containers[n])),this.containers[n].containerCache.over=0);if(this._storedCursor&&t("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"==this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!i){for(this._trigger("beforeStop",e,this._uiHash()),n=0;n<s.length;n++)s[n].call(this,e);this._trigger("stop",e,this._uiHash())}return!1}if(i||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null,!i){for(n=0;n<s.length;n++)s[n].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){!1===t.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.extend(t.ui.sortable,{version:"@VERSION"})}(jQuery)},1001:function(t,e){"use strict";!function(t){function e(t,e){if(!(t.originalEvent.touches.length>1)){t.preventDefault();var i=t.originalEvent.changedTouches[0],s=document.createEvent("MouseEvents");s.initMouseEvent(e,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(s)}}if(t.support.touch="ontouchend"in document,t.support.touch){var i,s=t.ui.mouse.prototype,n=s._mouseInit,o=s._mouseDestroy;s._toucUINart=function(t){var s=this;!i&&s._mouseCapture(t.originalEvent.changedTouches[0])&&(i=!0,s._touchMoved=!1,e(t,"mouseover"),e(t,"mousemove"),e(t,"mousedown"))},s._touchMove=function(t){i&&(this._touchMoved=!0,e(t,"mousemove"))},s._touchEnd=function(t){i&&(e(t,"mouseup"),e(t,"mouseout"),this._touchMoved||e(t,"click"),i=!1)},s._mouseInit=function(){var e=this;e.element.bind({toucUINart:t.proxy(e,"_toucUINart"),touchmove:t.proxy(e,"_touchMove"),touchend:t.proxy(e,"_touchEnd")}),n.call(e)},s._mouseDestroy=function(){var e=this;e.element.unbind({toucUINart:t.proxy(e,"_toucUINart"),touchmove:t.proxy(e,"_touchMove"),touchend:t.proxy(e,"_touchEnd")}),o.call(e)}}}(jQuery)}});
hybrid/html/tradeview/charting_library/static/bundles/lazy-velocity.97588d47c84409f2bc4b.js ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ webpackJsonp([0],{514:function(e,t,r){var n,a;!function(e){"use strict";function t(e){var t=e.length,n=r.type(e);return"function"!==n&&!r.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e))}var r,n,a,i,o,s,l;if(!e.jQuery){r=function(e,t){return new r.fn.init(e,t)},r.isWindow=function(e){return e&&e===e.window},r.type=function(e){return e?"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e:e+""},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!i.call(e,"constructor")&&!i.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}for(t in e);return void 0===t||i.call(e,t)},r.each=function(e,r,n){var a=0,i=e.length,o=t(e);if(n){if(o)for(;a<i&&!1!==r.apply(e[a],n);a++);else for(a in e)if(e.hasOwnProperty(a)&&!1===r.apply(e[a],n))break}else if(o)for(;a<i&&!1!==r.call(e[a],a,e[a]);a++);else for(a in e)if(e.hasOwnProperty(a)&&!1===r.call(e[a],a,e[a]))break;return e},r.data=function(e,t,a){var i,o,s;if(void 0===a){if(i=e[r.expando],o=i&&n[i],void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t)return s=e[r.expando]||(e[r.expando]=++r.uuid),n[s]=n[s]||{},n[s][t]=a,a},r.removeData=function(e,t){var a=e[r.expando],i=a&&n[a];i&&(t?r.each(t,function(e,t){delete i[t]}):delete n[a])},r.extend=function(){var e,t,n,a,i,o,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==r.type(s)&&(s={}),l===u&&(s=this,l--);l<u;l++)if(i=arguments[l])for(a in i)i.hasOwnProperty(a)&&(e=s[a],n=i[a],s!==n&&(c&&n&&(r.isPlainObject(n)||(t=r.isArray(n)))?(t?(t=!1,o=e&&r.isArray(e)?e:[]):o=e&&r.isPlainObject(e)?e:{},s[a]=r.extend(c,o,n)):void 0!==n&&(s[a]=n)));return s},r.queue=function(e,n,a){function i(e,r){var n=r||[];return e&&(t(Object(e))?function(e,t){for(var r=+t.length,n=0,a=e.length;n<r;)e[a++]=t[n++];if(r!==r)for(;void 0!==t[n];)e[a++]=t[n++];e.length=a}(n,"string"==typeof e?[e]:e):[].push.call(n,e)),n}if(e){n=(n||"fx")+"queue";var o=r.data(e,n);return a?(!o||r.isArray(a)?o=r.data(e,n,i(a)):o.push(a),o):o||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,n){t=t||"fx";var a=r.queue(n,t),i=a.shift();"inprogress"===i&&(i=a.shift()),i&&("fx"===t&&a.unshift("inprogress"),i.call(n,function(){r.dequeue(n,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(e){for(var t=e.offsetParent;t&&"html"!==t.nodeName.toLowerCase()&&t.style&&"static"===t.style.position;)t=t.offsetParent;return t||document}var t=this[0],n=e(t),a=this.offset(),i=/^(?:body|html)$/i.test(n.nodeName)?{top:0,left:0
2
+ }:r(n).offset();return a.top-=parseFloat(t.style.marginTop)||0,a.left-=parseFloat(t.style.marginLeft)||0,n.style&&(i.top+=parseFloat(n.style.borderTopWidth)||0,i.left+=parseFloat(n.style.borderLeftWidth)||0),{top:a.top-i.top,left:a.left-i.left}}},n={},r.expando="velocity"+(new Date).getTime(),r.uuid=0,a={},i=a.hasOwnProperty,o=a.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" ");for(l=0;l<s.length;l++)a["[object "+s[l]+"]"]=s[l].toLowerCase();r.fn.init.prototype=r.fn,e.Velocity={Utilities:r}}}(window),function(i){"use strict";"object"==typeof e&&"object"==typeof e.exports?e.exports=i():(n=i,void 0!==(a="function"==typeof n?n.call(t,r,t,e):n)&&(e.exports=a))}(function(){"use strict";return function(e,t,r,n){function a(e){for(var t,r=-1,n=e?e.length:0,a=[];++r<n;)(t=e[r])&&a.push(t);return a}function i(e){return A.isWrapped(e)?e=T.call(e):A.isNode(e)&&(e=[e]),e}function o(e){var t=g.data(e,"velocity");return null===t?n:t}function s(e,t){var r=o(e);r&&r.delayTimer&&!r.delayPaused&&(r.delayRemaining=r.delay-t+r.delayBegin,r.delayPaused=!0,clearTimeout(r.delayTimer.setTimeout))}function l(e,t){var r=o(e);r&&r.delayTimer&&r.delayPaused&&(r.delayPaused=!1,r.delayTimer.setTimeout=setTimeout(r.delayTimer.next,r.delayRemaining))}function u(e){return function(t){return Math.round(t*e)*(1/e)}}function c(e,r,n,a){function i(e,t){return 1-3*t+3*e}function o(e,t){return 3*t-6*e}function s(e){return 3*e}function l(e,t,r){return((i(t,r)*e+o(t,r))*e+s(t))*e}function u(e,t,r){return 3*i(t,r)*e*e+2*o(t,r)*e+s(t)}function c(t,r){var a,i,o;for(a=0;a<x;++a){if(0===(i=u(r,e,n)))return r;o=l(r,e,n)-t,r-=o/i}return r}function p(){for(var t=0;t<k;++t)h[t]=l(t*V,e,n)}function d(t,r,a){var i,o,s=0;do{o=r+(a-r)/2,i=l(o,e,n)-t,i>0?a=o:r=o}while(Math.abs(i)>S&&++s<P);return o}function f(t){for(var r,a,i,o=0,s=1,l=k-1;s!==l&&h[s]<=t;++s)o+=V;return--s,r=(t-h[s])/(h[s+1]-h[s]),a=o+r*V,i=u(a,e,n),i>=w?c(t,a):0===i?a:d(t,o,o+V)}function g(){y=!0,e===r&&n===a||p()}var m,h,y,b,v,x=4,w=.001,S=1e-7,P=10,k=11,V=1/(k-1),T="Float32Array"in t;if(4!==arguments.length)return!1;for(m=0;m<4;++m)if("number"!=typeof arguments[m]||isNaN(arguments[m])||!isFinite(arguments[m]))return!1;return e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0),h=T?new Float32Array(k):Array(k),y=!1,b=function(t){return y||g(),e===r&&n===a?t:0===t?0:1===t?1:l(f(t),r,a)},b.getControlPoints=function(){return[{x:e,y:r},{x:n,y:a}]},v="generateBezier("+[e,r,n,a]+")",b.toString=function(){return v},b}function p(e,t){var r=e;return A.isString(e)?y.Easings[e]||(r=!1):r=A.isArray(e)&&1===e.length?u.apply(null,e):A.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):!(!A.isArray(e)||4!==e.length)&&c.apply(null,e),!1===r&&(r=y.Easings[y.defaults.easing]?y.defaults.easing:h),r}function d(e){var t,r,i,s,l,u,c,p,m,h,b,x,S,k,T,C,F,E,N,H,O,j,q,L,z,R,M;if(e)for(t=y.timestamp&&!0!==e?e:V.now(),r=y.State.calls.length,r>1e4&&(y.State.calls=a(y.State.calls),r=y.State.calls.length),i=0;i<r;i++)if(y.State.calls[i]){if(s=y.State.calls[i],l=s[0],u=s[2],c=s[3],
3
+ p=!!c,m=null,h=s[5],b=s[6],c||(c=y.State.calls[i][3]=t-16),h){if(!0!==h.resume)continue;c=s[3]=Math.round(t-b-16),s[5]=null}for(b=s[6]=t-c,x=Math.min(b/u.duration,1),S=0,k=l.length;S<k;S++)if(T=l[S],C=T.element,o(C)){F=!1,u.display!==n&&null!==u.display&&"none"!==u.display&&("flex"===u.display&&(E=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"],g.each(E,function(e,t){v.setPropertyValue(C,"display",t)})),v.setPropertyValue(C,"display",u.display)),u.visibility!==n&&"hidden"!==u.visibility&&v.setPropertyValue(C,"visibility",u.visibility);for(N in T)if(T.hasOwnProperty(N)&&"element"!==N){if(H=T[N],j=A.isString(H.easing)?y.Easings[H.easing]:H.easing,A.isString(H.pattern)?(q=1===x?function(e,t,r){var n=H.endValue[t];return r?Math.round(n):n}:function(e,t,r){var n=H.startValue[t],a=H.endValue[t]-n,i=n+a*j(x,u,a);return r?Math.round(i):i},O=H.pattern.replace(/{(\d+)(!)?}/g,q)):1===x?O=H.endValue:(L=H.endValue-H.startValue,O=H.startValue+L*j(x,u,L)),!p&&O===H.currentValue)continue;H.currentValue=O,"tween"===N?m=O:(v.Hooks.registered[N]&&(z=v.Hooks.getRoot(N),(R=o(C).rootPropertyValueCache[z])&&(H.rootPropertyValue=R)),M=v.setPropertyValue(C,N,H.currentValue+(P<9&&0===parseFloat(O)?"":H.unitType),H.rootPropertyValue,H.scrollData),v.Hooks.registered[N]&&(v.Normalizations.registered[z]?o(C).rootPropertyValueCache[z]=v.Normalizations.registered[z]("extract",null,M[1]):o(C).rootPropertyValueCache[z]=M[1]),"transform"===M[0]&&(F=!0))}u.mobileHA&&o(C).transformCache.translate3d===n&&(o(C).transformCache.translate3d="(0px, 0px, 0px)",F=!0),F&&v.flushTransformCache(C)}u.display!==n&&"none"!==u.display&&(y.State.calls[i][2].display=!1),u.visibility!==n&&"hidden"!==u.visibility&&(y.State.calls[i][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],x,Math.max(0,c+u.duration-t),c,m),1===x&&f(i)}y.State.isTicking&&w(d)}function f(e,t){var r,a,i,s,l,u,c,p,d,f,m,h;if(!y.State.calls[e])return!1;for(r=y.State.calls[e][0],a=y.State.calls[e][1],i=y.State.calls[e][2],s=y.State.calls[e][4],l=!1,u=0,c=r.length;u<c;u++){if(p=r[u].element,t||i.loop||("none"===i.display&&v.setPropertyValue(p,"display",i.display),"hidden"===i.visibility&&v.setPropertyValue(p,"visibility",i.visibility)),d=o(p),!0===i.loop||g.queue(p)[1]!==n&&/\.velocityQueueEntryFlag/i.test(g.queue(p)[1])||d&&(d.isAnimating=!1,d.rootPropertyValueCache={},f=!1,g.each(v.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,a=d.transformCache[t];d.transformCache[t]!==n&&RegExp("^\\("+r+"[^.]").test(a)&&(f=!0,delete d.transformCache[t])}),i.mobileHA&&(f=!0,delete d.transformCache.translate3d),f&&v.flushTransformCache(p),v.Values.removeClass(p,"velocity-animating")),!t&&i.complete&&!i.loop&&u===c-1)try{i.complete.call(a,a)}catch(e){setTimeout(function(){throw e},1)}s&&!0!==i.loop&&s(a),d&&!0===i.loop&&!t&&(g.each(d.tweensContainer,function(e,t){if(/^rotate/.test(e)&&(parseFloat(t.startValue)-parseFloat(t.endValue))%360==0){var r=t.startValue;t.startValue=t.endValue,t.endValue=r}/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,
4
+ t.startValue=100)}),y(p,"reverse",{loop:!0,delay:i.delay})),!1!==i.queue&&g.dequeue(p,i.queue)}for(y.State.calls[e]=!1,m=0,h=y.State.calls.length;m<h;m++)if(!1!==y.State.calls[m]){l=!0;break}!1===l&&(y.State.isTicking=!1,delete y.State.calls,y.State.calls=[])}var g,m,h,y,b,v,x,w,S,P=function(){var e,t;if(r.documentMode)return r.documentMode;for(e=7;e>4;e--)if(t=r.createElement("div"),t.innerHTML="\x3c!--[if IE "+e+"]><span></span><![endif]--\x3e",t.getElementsByTagName("span").length)return t=null,e;return n}(),k=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,n=(new Date).getTime();return r=Math.max(0,16-(n-e)),e=n+r,setTimeout(function(){t(n+r)},r)}}(),V=function(){var e,r=t.performance||{};return"function"!=typeof r.now&&(e=r.timing&&r.timing.navigationStart?r.timing.navigationStart:(new Date).getTime(),r.now=function(){return(new Date).getTime()-e}),r}(),T=function(){var e=Array.prototype.slice;try{return e.call(r.documentElement),e}catch(t){return function(t,r){var n,a,i,o,s,l=this.length;if("number"!=typeof t&&(t=0),"number"!=typeof r&&(r=l),this.slice)return e.call(this,t,r);if(a=[],i=t>=0?t:Math.max(0,l+t),o=r<0?l+r:Math.min(r,l),s=o-i,s>0)if(a=Array(s),this.charAt)for(n=0;n<s;n++)a[n]=this.charAt(i+n);else for(n=0;n<s;n++)a[n]=this[i+n];return a}}}(),C=function(){return Array.prototype.includes?function(e,t){return e.includes(t)}:Array.prototype.indexOf?function(e,t){return e.indexOf(t)>=0}:function(e,t){for(var r=0;r<e.length;r++)if(e[r]===t)return!0;return!1}},A={isNumber:function(e){return"number"==typeof e},isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isWrapped:function(e){return e&&e!==t&&A.isNumber(e.length)&&!A.isString(e)&&!A.isFunction(e)&&!A.isNode(e)&&(0===e.length||A.isNode(e[0]))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}},F=!1;if(e.fn&&e.fn.jquery?(g=e,F=!0):g=t.Velocity.Utilities,P<=8&&!F)throw Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");return P<=7?void(jQuery.fn.velocity=jQuery.fn.animate):(m=400,h="swing",y={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[],delayedElements:{count:0}},CSS:{},Utilities:g,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:m,easing:h,begin:n,complete:n,progress:n,display:n,visibility:n,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0,promiseRejectEmpty:!0},
5
+ init:function(e){g.data(e,"velocity",{isSVG:A.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:5,patch:0},debug:!1,timestamp:!0,pauseAll:function(e){var t=(new Date).getTime();g.each(y.State.calls,function(t,r){if(r){if(e!==n&&(r[2].queue!==e||!1===r[2].queue))return!0;r[5]={resume:!1}}}),g.each(y.State.delayedElements,function(e,r){r&&s(r,t)})},resumeAll:function(e){var t=(new Date).getTime();g.each(y.State.calls,function(t,r){if(r){if(e!==n&&(r[2].queue!==e||!1===r[2].queue))return!0;r[5]&&(r[5].resume=!0)}}),g.each(y.State.delayedElements,function(e,r){r&&l(r,t)})}},t.pageYOffset!==n?(y.State.scrollAnchor=t,y.State.scrollPropertyLeft="pageXOffset",y.State.scrollPropertyTop="pageYOffset"):(y.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,y.State.scrollPropertyLeft="scrollLeft",y.State.scrollPropertyTop="scrollTop"),b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,n){var a={x:t.x+n.dx*r,v:t.v+n.dv*r,tension:t.tension,friction:t.friction};return{dx:a.v,dv:e(a)}}function r(r,n){var a={dx:r.v,dv:e(r)},i=t(r,.5*n,a),o=t(r,.5*n,i),s=t(r,n,o),l=1/6*(a.dx+2*(i.dx+o.dx)+s.dx),u=1/6*(a.dv+2*(i.dv+o.dv)+s.dv);return r.x=r.x+l*n,r.v=r.v+u*n,r}return function e(t,n,a){var i,o,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,d=.016;for(t=parseFloat(t)||500,n=parseFloat(n)||20,a=a||null,l.tension=t,l.friction=n,i=null!==a,i?(c=e(t,n),o=c/a*d):o=d;;)if(s=r(s||l,o),u.push(1+s.x),c+=16,!(Math.abs(s.x)>p&&Math.abs(s.v)>p))break;return i?function(e){return u[e*(u.length-1)|0]}:c}}(),y.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},g.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){y.Easings[t[0]]=c.apply(null,t[1])}),v=y.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],
6
+ transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",
7
+ royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){var e,t,r,n,a,i,o,s,l;for(e=0;e<v.Lists.colors.length;e++)t="color"===v.Lists.colors[e]?"0 0 0 1":"255 255 255 1",v.Hooks.templates[v.Lists.colors[e]]=["Red Green Blue Alpha",t];if(P)for(r in v.Hooks.templates)v.Hooks.templates.hasOwnProperty(r)&&(n=v.Hooks.templates[r],a=n[0].split(" "),i=n[1].match(v.RegEx.valueSplit),"Color"===a[0]&&(a.push(a.shift()),i.push(i.shift()),v.Hooks.templates[r]=[a.join(" "),i.join(" ")]));for(r in v.Hooks.templates)if(v.Hooks.templates.hasOwnProperty(r)){n=v.Hooks.templates[r],a=n[0].split(" ");for(o in a)a.hasOwnProperty(o)&&(s=r+a[o],l=o,v.Hooks.registered[s]=[r,l])}},getRoot:function(e){var t=v.Hooks.registered[e];return t?t[0]:e},getUnit:function(e,t){var r=(e.substr(t||0,5).match(/^[a-z%]+/)||[])[0]||"";return r&&C(v.Lists.units,r)?r:""},fixColors:function(e){return e.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g,function(e,t,r){return v.Lists.colorNames.hasOwnProperty(r)?(t||"rgba(")+v.Lists.colorNames[r]+(t?"":",1)"):t+r})},cleanRootPropertyValue:function(e,t){return v.RegEx.valueUnwrap.test(t)&&(t=t.match(v.RegEx.valueUnwrap)[1]),v.Values.isCSSNullValue(t)&&(t=v.Hooks.templates[e][1]),t},extractValue:function(e,t){var r,n,a=v.Hooks.registered[e];return a?(r=a[0],n=a[1],t=v.Hooks.cleanRootPropertyValue(r,t),(""+t).match(v.RegEx.valueSplit)[n]):t},injectValue:function(e,t,r){var n,a,i,o=v.Hooks.registered[e];return o?(n=o[0],a=o[1],r=v.Hooks.cleanRootPropertyValue(n,r),i=(""+r).match(v.RegEx.valueSplit),i[a]=t,i.join(" ")):r}},Normalizations:{registered:{clip:function(e,t,r){switch(e){case"name":return"clip";case"extract":var n;return v.RegEx.wrappedValueAlreadyExtracted.test(r)?n=r:(n=(""+r).match(v.RegEx.valueUnwrap),n=n?n[1].replace(/,(\s+)?/g," "):r),n;case"inject":return"rect("+r+")"}},blur:function(e,t,r){var n,a;switch(e){case"name":return y.State.isFirefox?"filter":"-webkit-filter";case"extract":return n=parseFloat(r),n||0===n||(a=(""+r).match(/blur\(([0-9]+[A-z]+)\)/i),n=a?a[1]:0),n;case"inject":return parseFloat(r)?"blur("+r+")":"none"}},opacity:function(e,t,r){if(P<=8)switch(e){case"name":return"filter";case"extract":var n=(""+r).match(/alpha\(opacity=(.*)\)/i);return r=n?n[1]/100:1;case"inject":return t.style.zoom=1,
8
+ parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":case"inject":return r}}},register:function(){function e(e,t,r){var n,a,i,o,s;if("border-box"===(""+v.getPropertyValue(t,"boxSizing")).toLowerCase()===(r||!1)){for(i=0,o="width"===e?["Left","Right"]:["Top","Bottom"],s=["padding"+o[0],"padding"+o[1],"border"+o[0]+"Width","border"+o[1]+"Width"],n=0;n<s.length;n++)a=parseFloat(v.getPropertyValue(t,s[n])),isNaN(a)||(i+=a);return r?-i:i}return 0}function t(t,r){return function(n,a,i){switch(n){case"name":return t;case"extract":return parseFloat(i)+e(t,a,r);case"inject":return parseFloat(i)-e(t,a,r)+"px"}}}var r,a;for(P&&!(P>9)||y.State.isGingerbread||(v.Lists.transformsBase=v.Lists.transformsBase.concat(v.Lists.transforms3D)),r=0;r<v.Lists.transformsBase.length;r++)!function(){var e=v.Lists.transformsBase[r];v.Normalizations.registered[e]=function(t,r,a){switch(t){case"name":return"transform";case"extract":return o(r)===n||o(r).transformCache[e]===n?/^scale/i.test(e)?1:0:o(r).transformCache[e].replace(/[()]/g,"");case"inject":var i=!1;switch(e.substr(0,e.length-1)){case"translate":i=!/(%|px|em|rem|vw|vh|\d)$/i.test(a);break;case"scal":case"scale":y.State.isAndroid&&o(r).transformCache[e]===n&&a<1&&(a=1),i=!/(\d)$/i.test(a);break;case"skew":case"rotate":i=!/(deg|\d)$/i.test(a)}return i||(o(r).transformCache[e]="("+a+")"),o(r).transformCache[e]}}}();for(a=0;a<v.Lists.colors.length;a++)!function(){var e=v.Lists.colors[a];v.Normalizations.registered[e]=function(t,r,a){var i,o,s;switch(t){case"name":return e;case"extract":return v.RegEx.wrappedValueAlreadyExtracted.test(a)?i=a:(s={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"},/^[A-z]+$/i.test(a)?o=s[a]!==n?s[a]:s.black:v.RegEx.isHex.test(a)?o="rgb("+v.Values.hexToRgb(a).join(" ")+")":/^rgba?\(/i.test(a)||(o=s.black),i=(""+(o||a)).match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")),(!P||P>8)&&3===i.split(" ").length&&(i+=" 1"),i;case"inject":return/^rgb/.test(a)?a:(P<=8?4===a.split(" ").length&&(a=a.split(/\s+/).slice(0,3).join(" ")):3===a.split(" ").length&&(a+=" 1"),(P<=8?"rgb":"rgba")+"("+a.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}}();v.Normalizations.registered.innerWidth=t("width",!0),v.Normalizations.registered.innerHeight=t("height",!0),v.Normalizations.registered.outerWidth=t("width"),v.Normalizations.registered.outerHeight=t("height")}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(P||y.State.isAndroid&&!y.State.isChrome)&&(t+="|transform"),RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){var t,r,n,a;if(y.State.prefixMatches[e])return[y.State.prefixMatches[e],!0];for(t=["","Webkit","Moz","ms","O"],r=0,n=t.length;r<n;r++)if(a=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),
9
+ A.isString(y.State.prefixElement.style[a]))return y.State.prefixMatches[e]=a,[a,!0];return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,n){return t+t+r+r+n+n}),t=n.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return!e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&(""+e.tagName).toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){if(e)if(e.classList)e.classList.add(t);else if(A.isString(e.className))e.className+=(e.className.length?" ":"")+t;else{var r=e.getAttribute(P<=7?"className":"class")||"";e.setAttribute("class",r+(r?" ":"")+t)}},removeClass:function(e,t){if(e)if(e.classList)e.classList.remove(t);else if(A.isString(e.className))e.className=(""+e.className).replace(RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ");else{var r=e.getAttribute(P<=7?"className":"class")||"";e.setAttribute("class",r.replace(RegExp("(^|s)"+t.split(" ").join("|")+"(s|$)","gi")," "))}}},getPropertyValue:function(e,r,a,i){function s(e,r){var a,l,u,c,p,d,f=0;if(P<=8)f=g.css(e,r);else{if(a=!1,/^(width|height)$/.test(r)&&0===v.getPropertyValue(e,"display")&&(a=!0,v.setPropertyValue(e,"display",v.Values.getDisplayType(e))),l=function(){a&&v.setPropertyValue(e,"display","none")},!i){if("height"===r&&"border-box"!==(""+v.getPropertyValue(e,"boxSizing")).toLowerCase())return u=e.offsetHeight-(parseFloat(v.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(v.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(v.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(v.getPropertyValue(e,"paddingBottom"))||0),l(),u;if("width"===r&&"border-box"!==(""+v.getPropertyValue(e,"boxSizing")).toLowerCase())return c=e.offsetWidth-(parseFloat(v.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(v.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(v.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(v.getPropertyValue(e,"paddingRight"))||0),l(),c}p=o(e)===n?t.getComputedStyle(e,null):o(e).computedStyle?o(e).computedStyle:o(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),f=9===P&&"filter"===r?p.getPropertyValue(r):p[r],""!==f&&null!==f||(f=e.style[r]),l()}return"auto"===f&&/^(top|right|bottom|left)$/i.test(r)&&("fixed"===(d=s(e,"position"))||"absolute"===d&&/top|left/i.test(r))&&(f=g(e).position()[r]+"px"),f}var l,u,c,p,d,f;if(v.Hooks.registered[r]?(u=r,c=v.Hooks.getRoot(u),
10
+ a===n&&(a=v.getPropertyValue(e,v.Names.prefixCheck(c)[0])),v.Normalizations.registered[c]&&(a=v.Normalizations.registered[c]("extract",e,a)),l=v.Hooks.extractValue(u,a)):v.Normalizations.registered[r]&&(p=v.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,v.Names.prefixCheck(p)[0]),v.Values.isCSSNullValue(d)&&v.Hooks.templates[r]&&(d=v.Hooks.templates[r][1])),l=v.Normalizations.registered[r]("extract",e,d)),!/^[\d-]/.test(l))if((f=o(e))&&f.isSVG&&v.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(e){l=0}else l=e.getAttribute(r);else l=s(e,v.Names.prefixCheck(r)[0]);return v.Values.isCSSNullValue(l)&&(l=0),y.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,n,a,i){var s,l,u,c=r;if("scroll"===r)i.container?i.container["scroll"+i.direction]=n:"Left"===i.direction?t.scrollTo(n,i.alternateValue):t.scrollTo(i.alternateValue,n);else if(v.Normalizations.registered[r]&&"transform"===v.Normalizations.registered[r]("name",e))v.Normalizations.registered[r]("inject",e,n),c="transform",n=o(e).transformCache[r];else{if(v.Hooks.registered[r]&&(s=r,l=v.Hooks.getRoot(r),a=a||v.getPropertyValue(e,l),n=v.Hooks.injectValue(s,n,a),r=l),v.Normalizations.registered[r]&&(n=v.Normalizations.registered[r]("inject",e,n),r=v.Normalizations.registered[r]("name",e)),c=v.Names.prefixCheck(r)[0],P<=8)try{e.style[c]=n}catch(e){y.debug&&console.log("Browser does not support ["+n+"] for ["+c+"]")}else u=o(e),u&&u.isSVG&&v.Names.SVGAttribute(r)?e.setAttribute(r,n):e.style[c]=n;y.debug>=2&&console.log("Set "+r+" ("+c+"): "+n)}return[c,n]},flushTransformCache:function(e){var t,r,n,a,i="",s=o(e);(P||y.State.isAndroid&&!y.State.isChrome)&&s&&s.isSVG?(t=function(t){return parseFloat(v.getPropertyValue(e,t))},r={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]},g.each(o(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),r[e]&&(i+=e+"("+r[e].join(" ")+") ",delete r[e])})):(g.each(o(e).transformCache,function(t){if(n=o(e).transformCache[t],"transformPerspective"===t)return a=n,!0;9===P&&"rotateZ"===t&&(t="rotate"),i+=t+n+" "}),a&&(i="perspective"+a+" "+i)),v.setPropertyValue(e,"transform",i)}},v.Hooks.register(),v.Normalizations.register(),y.hook=function(e,t,r){var a;return e=i(e),g.each(e,function(e,i){if(o(i)===n&&y.init(i),r===n)a===n&&(a=v.getPropertyValue(i,t));else{var s=v.setPropertyValue(i,t,r);"transform"===s[0]&&y.CSS.flushTransformCache(i),a=s}}),a},x=function(){function e(){return c?k.promise||null:h}function a(e,a){function i(i){var l,u,m,h,b,x,F,E,H,O,j,q,L,M,$,B,W,I,D,G,Q,X;if(c.begin&&0===T)try{c.begin.call(w,w)}catch(e){setTimeout(function(){throw e},1)}if("scroll"===N)m=/^x$/i.test(c.axis)?"Left":"Top",h=parseFloat(c.offset)||0,c.container?A.isWrapped(c.container)||A.isNode(c.container)?(c.container=c.container[0]||c.container,b=c.container["scroll"+m],
11
+ F=b+g(e).position()[m.toLowerCase()]+h):c.container=null:(b=y.State.scrollAnchor[y.State["scrollProperty"+m]],x=y.State.scrollAnchor[y.State["scrollProperty"+("Left"===m?"Top":"Left")]],F=g(e).offset()[m.toLowerCase()]+h),f={scroll:{rootPropertyValue:!1,startValue:b,currentValue:b,endValue:F,unitType:"",easing:c.easing,scrollData:{container:c.container,direction:m,alternateValue:x}},element:e},y.debug&&console.log("tweensContainer (scroll): ",f.scroll,e);else if("reverse"===N){if(!(l=o(e)))return;if(!l.tweensContainer)return void g.dequeue(e,c.queue);"none"===l.opts.display&&(l.opts.display="auto"),"hidden"===l.opts.visibility&&(l.opts.visibility="visible"),l.opts.loop=!1,l.opts.begin=null,l.opts.complete=null,P.easing||delete c.easing,P.duration||delete c.duration,c=g.extend({},l.opts,c),u=g.extend(!0,{},l?l.tweensContainer:null);for(E in u)u.hasOwnProperty(E)&&"element"!==E&&(H=u[E].startValue,u[E].startValue=u[E].currentValue=u[E].endValue,u[E].endValue=H,A.isEmptyObject(P)||(u[E].easing=c.easing),y.debug&&console.log("reverse tweensContainer ("+E+"): "+JSON.stringify(u[E]),e));f=u}else if("start"===N){l=o(e),l&&l.tweensContainer&&!0===l.isAnimating&&(u=l.tweensContainer),O=function(t,r){var n,i,o;return A.isFunction(t)&&(t=t.call(e,a,V)),A.isArray(t)?(n=t[0],!A.isArray(t[1])&&/^[\d-]/.test(t[1])||A.isFunction(t[1])||v.RegEx.isHex.test(t[1])?o=t[1]:A.isString(t[1])&&!v.RegEx.isHex.test(t[1])&&y.Easings[t[1]]||A.isArray(t[1])?(i=r?t[1]:p(t[1],c.duration),o=t[2]):o=t[1]||t[2]):n=t,r||(i=i||c.easing),A.isFunction(n)&&(n=n.call(e,a,V)),A.isFunction(o)&&(o=o.call(e,a,V)),[n||0,i,o]},j=function(a,i){var o,p,d,m,h,b,x,w,S,P,k,V,T,C,F,E,N,H,O,j,q,L,R,M,$,B=v.Hooks.getRoot(a),W=!1,I=i[0],D=i[1],G=i[2];if(!(l&&l.isSVG||"tween"===B||!1!==v.Names.prefixCheck(B)[1]||v.Normalizations.registered[B]!==n))return void(y.debug&&console.log("Skipping ["+B+"] due to a lack of browser support."));if((c.display!==n&&null!==c.display&&"none"!==c.display||c.visibility!==n&&"hidden"!==c.visibility)&&/opacity|filter/.test(a)&&!G&&0!==I&&(G=0),c._cacheValues&&u&&u[a]?(G===n&&(G=u[a].endValue+u[a].unitType),W=l.rootPropertyValueCache[B]):v.Hooks.registered[a]?G===n?(W=v.getPropertyValue(e,B),G=v.getPropertyValue(e,a,W)):W=v.Hooks.templates[B][1]:G===n&&(G=v.getPropertyValue(e,a)),h=!1,b=function(e,t){var r,n;return n=(""+(t||"0")).toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=v.Values.getUnitType(e)),[n,r]},G!==I&&A.isString(G)&&A.isString(I)){for(o="",x=0,w=0,S=[],P=[],k=0,V=0,T=0,G=v.Hooks.fixColors(G),I=v.Hooks.fixColors(I);x<G.length&&w<I.length;)if(C=G[x],F=I[w],/[\d\.-]/.test(C)&&/[\d\.-]/.test(F)){for(E=C,N=F,H=".",O=".";++x<G.length;){if((C=G[x])===H)H="..";else if(!/\d/.test(C))break;E+=C}for(;++w<I.length;){if((F=I[w])===O)O="..";else if(!/\d/.test(F))break;N+=F}j=v.Hooks.getUnit(G,x),q=v.Hooks.getUnit(I,w),x+=j.length,w+=q.length,j===q?E===N?o+=E+j:(o+="{"+S.length+(V?"!":"")+"}"+j,S.push(parseFloat(E)),P.push(parseFloat(N))):(L=parseFloat(E),R=parseFloat(N),
12
+ o+=(k<5?"calc":"")+"("+(L?"{"+S.length+(V?"!":"")+"}":"0")+j+" + "+(R?"{"+(S.length+(L?1:0))+(V?"!":"")+"}":"0")+q+")",L&&(S.push(L),P.push(0)),R&&(S.push(0),P.push(R)))}else{if(C!==F){k=0;break}o+=C,x++,w++,0===k&&"c"===C||1===k&&"a"===C||2===k&&"l"===C||3===k&&"c"===C||k>=4&&"("===C?k++:(k&&k<5||k>=4&&")"===C&&--k<5)&&(k=0),0===V&&"r"===C||1===V&&"g"===C||2===V&&"b"===C||3===V&&"a"===C||V>=3&&"("===C?(3===V&&"a"===C&&(T=1),V++):T&&","===C?++T>3&&(V=T=0):(T&&V<(T?5:4)||V>=(T?4:3)&&")"===C&&--V<(T?5:4))&&(V=T=0)}x===G.length&&w===I.length||(y.debug&&console.error('Trying to pattern match mis-matched strings ["'+I+'", "'+G+'"]'),o=n),o&&(S.length?(y.debug&&console.log('Pattern found "'+o+'" -> ',S,P,"["+G+","+I+"]"),G=S,I=P,d=m=""):o=n)}if(o||(p=b(a,G),G=p[0],m=p[1],p=b(a,I),I=p[0].replace(/^([+-\/*])=/,function(e,t){return h=t,""}),d=p[1],G=parseFloat(G)||0,I=parseFloat(I)||0,"%"===d&&(/^(fontSize|lineHeight)$/.test(a)?(I/=100,d="em"):/^scale/.test(a)?(I/=100,d=""):/(Red|Green|Blue)$/i.test(a)&&(I=I/100*255,d=""))),M=function(){var n,a,i,o={myParent:e.parentNode||r.body,position:v.getPropertyValue(e,"position"),fontSize:v.getPropertyValue(e,"fontSize")},s=o.position===z.lastPosition&&o.myParent===z.lastParent,u=o.fontSize===z.lastFontSize;return z.lastParent=o.myParent,z.lastPosition=o.position,z.lastFontSize=o.fontSize,n=100,a={},u&&s?(a.emToPx=z.lastEmToPx,a.percentToPxWidth=z.lastPercentToPxWidth,a.percentToPxHeight=z.lastPercentToPxHeight):(i=l&&l.isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div"),y.init(i),o.myParent.appendChild(i),g.each(["overflow","overflowX","overflowY"],function(e,t){y.CSS.setPropertyValue(i,t,"hidden")}),y.CSS.setPropertyValue(i,"position",o.position),y.CSS.setPropertyValue(i,"fontSize",o.fontSize),y.CSS.setPropertyValue(i,"boxSizing","content-box"),g.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){y.CSS.setPropertyValue(i,t,n+"%")}),y.CSS.setPropertyValue(i,"paddingLeft",n+"em"),a.percentToPxWidth=z.lastPercentToPxWidth=(parseFloat(v.getPropertyValue(i,"width",null,!0))||1)/n,a.percentToPxHeight=z.lastPercentToPxHeight=(parseFloat(v.getPropertyValue(i,"height",null,!0))||1)/n,a.emToPx=z.lastEmToPx=(parseFloat(v.getPropertyValue(i,"paddingLeft"))||1)/n,o.myParent.removeChild(i)),null===z.remToPx&&(z.remToPx=parseFloat(v.getPropertyValue(r.body,"fontSize"))||16),null===z.vwToPx&&(z.vwToPx=parseFloat(t.innerWidth)/100,z.vhToPx=parseFloat(t.innerHeight)/100),a.remToPx=z.remToPx,a.vwToPx=z.vwToPx,a.vhToPx=z.vhToPx,y.debug>=1&&console.log("Unit ratios: "+JSON.stringify(a),e),a},/[\/*]/.test(h))d=m;else if(m!==d&&0!==G)if(0===I)d=m;else{switch(s=s||M(),$=/margin|padding|left|right|width|text|word|letter/i.test(a)||/X$/.test(a)||"x"===a?"x":"y",m){case"%":G*="x"===$?s.percentToPxWidth:s.percentToPxHeight;break;case"px":break;default:G*=s[m+"ToPx"]}switch(d){case"%":G*=1/("x"===$?s.percentToPxWidth:s.percentToPxHeight);break;case"px":break;default:G*=1/s[d+"ToPx"]}}switch(h){case"+":I=G+I;break;case"-":I=G-I;break;case"*":I*=G
13
+ ;break;case"/":I=G/I}f[a]={rootPropertyValue:W,startValue:G,currentValue:G,endValue:I,unitType:d,easing:D},o&&(f[a].pattern=o),y.debug&&console.log("tweensContainer ("+a+"): "+JSON.stringify(f[a]),e)};for(q in S)if(S.hasOwnProperty(q))if(L=v.Names.camelCase(q),M=O(S[q]),C(v.Lists.colors,L)&&($=M[0],B=M[1],W=M[2],v.RegEx.isHex.test($)))for(I=["Red","Green","Blue"],D=v.Values.hexToRgb($),G=W?v.Values.hexToRgb(W):n,Q=0;Q<I.length;Q++)X=[D[Q]],B&&X.push(B),G!==n&&X.push(G[Q]),j(L+I[Q],X);else j(L,M);f.element=e}f.element&&(v.Values.addClass(e,"velocity-animating"),R.push(f),l=o(e),l&&(""===c.queue&&(l.tweensContainer=f,l.opts=c),l.isAnimating=!0),T===V-1?(y.State.calls.push([R,w,c,null,k.resolver,null,0]),!1===y.State.isTicking&&(y.State.isTicking=!0,d())):T++)}var s,l,u,c=g.extend({},y.defaults,P),f={};switch(o(e)===n&&y.init(e),parseFloat(c.delay)&&!1!==c.queue&&g.queue(e,c.queue,function(t){var r,n;y.velocityQueueEntryFlag=!0,r=y.State.delayedElements.count++,y.State.delayedElements[r]=e,n=function(e){return function(){y.State.delayedElements[e]=!1,t()}}(r),o(e).delayBegin=(new Date).getTime(),o(e).delay=parseFloat(c.delay),o(e).delayTimer={setTimeout:setTimeout(t,parseFloat(c.delay)),next:n}}),(""+c.duration).toLowerCase()){case"fast":c.duration=200;break;case"normal":c.duration=m;break;case"slow":c.duration=600;break;default:c.duration=parseFloat(c.duration)||1}!1!==y.mock&&(!0===y.mock?c.duration=c.delay=1:(c.duration*=parseFloat(y.mock)||1,c.delay*=parseFloat(y.mock)||1)),c.easing=p(c.easing,c.duration),c.begin&&!A.isFunction(c.begin)&&(c.begin=null),c.progress&&!A.isFunction(c.progress)&&(c.progress=null),c.complete&&!A.isFunction(c.complete)&&(c.complete=null),c.display!==n&&null!==c.display&&(c.display=(""+c.display).toLowerCase(),"auto"===c.display&&(c.display=y.CSS.Values.getDisplayType(e))),c.visibility!==n&&null!==c.visibility&&(c.visibility=(""+c.visibility).toLowerCase()),c.mobileHA=c.mobileHA&&y.State.isMobile&&!y.State.isGingerbread,!1===c.queue?c.delay?(l=y.State.delayedElements.count++,y.State.delayedElements[l]=e,u=function(e){return function(){y.State.delayedElements[e]=!1,i()}}(l),o(e).delayBegin=(new Date).getTime(),o(e).delay=parseFloat(c.delay),o(e).delayTimer={setTimeout:setTimeout(i,parseFloat(c.delay)),next:u}):i():g.queue(e,c.queue,function(e,t){if(!0===t)return k.promise&&k.resolver(w),!0;y.velocityQueueEntryFlag=!0,i(e)}),""!==c.queue&&"fx"!==c.queue||"inprogress"===g.queue(e)[0]||g.dequeue(e)}var u,c,h,b,w,S,P,k,V,T,F,E,N,H,O,j,q,L,z,R,M,$,B,W=arguments[0]&&(arguments[0].p||g.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||A.isString(arguments[0].properties));if(A.isWrapped(this)?(c=!1,b=0,w=this,h=this):(c=!0,b=1,w=W?arguments[0].elements||arguments[0].e:arguments[0]),k={promise:null,resolver:null,rejecter:null},c&&y.Promise&&(k.promise=new y.Promise(function(e,t){k.resolver=e,k.rejecter=t})),W?(S=arguments[0].properties||arguments[0].p,P=arguments[0].options||arguments[0].o):(S=arguments[b],P=arguments[b+1]),
14
+ !(w=i(w)))return void(k.promise&&(S&&P&&!1===P.promiseRejectEmpty?k.resolver():k.rejecter()));if(V=w.length,T=0,!/^(stop|finish|finishAll|pause|resume)$/i.test(S)&&!g.isPlainObject(P))for(F=b+1,P={},E=F;E<arguments.length;E++)A.isArray(arguments[E])||!/^(fast|normal|slow)$/i.test(arguments[E])&&!/^\d/.test(arguments[E])?A.isString(arguments[E])||A.isArray(arguments[E])?P.easing=arguments[E]:A.isFunction(arguments[E])&&(P.complete=arguments[E]):P.duration=arguments[E];switch(S){case"scroll":N="scroll";break;case"reverse":N="reverse";break;case"pause":return H=(new Date).getTime(),g.each(w,function(e,t){s(t,H)}),g.each(y.State.calls,function(e,t){var r=!1;t&&g.each(t[1],function(e,a){var i=P===n?"":P;return!0!==i&&t[2].queue!==i&&(P!==n||!1!==t[2].queue)||(g.each(w,function(e,n){if(n===a)return t[5]={resume:!1},r=!0,!1}),!r&&n)})}),e();case"resume":return g.each(w,function(e,t){l(t,H)}),g.each(y.State.calls,function(e,t){var r=!1;t&&g.each(t[1],function(e,a){var i=P===n?"":P;return!0!==i&&t[2].queue!==i&&(P!==n||!1!==t[2].queue)||(!t[5]||(g.each(w,function(e,n){if(n===a)return t[5].resume=!0,r=!0,!1}),!r&&n))})}),e();case"finish":case"finishAll":case"stop":return g.each(w,function(e,t){o(t)&&o(t).delayTimer&&(clearTimeout(o(t).delayTimer.setTimeout),o(t).delayTimer.next&&o(t).delayTimer.next(),delete o(t).delayTimer),"finishAll"!==S||!0!==P&&!A.isString(P)||(g.each(g.queue(t,A.isString(P)?P:""),function(e,t){A.isFunction(t)&&t()}),g.queue(t,A.isString(P)?P:"",[]))}),O=[],g.each(y.State.calls,function(e,t){t&&g.each(t[1],function(r,a){var i=P===n?"":P;if(!0!==i&&t[2].queue!==i&&(P!==n||!1!==t[2].queue))return!0;g.each(w,function(r,n){if(n===a)if((!0===P||A.isString(P))&&(g.each(g.queue(n,A.isString(P)?P:""),function(e,t){A.isFunction(t)&&t(null,!0)}),g.queue(n,A.isString(P)?P:"",[])),"stop"===S){var s=o(n);s&&s.tweensContainer&&!1!==i&&g.each(s.tweensContainer,function(e,t){t.endValue=t.currentValue}),O.push(e)}else"finish"!==S&&"finishAll"!==S||(t[2].duration=1)})})}),"stop"===S&&(g.each(O,function(e,t){f(t,!0)}),k.promise&&k.resolver(w)),e();default:if(!g.isPlainObject(S)||A.isEmptyObject(S))return A.isString(S)&&y.Redirects[S]?(u=g.extend({},P),j=u.duration,q=u.delay||0,!0===u.backwards&&(w=g.extend(!0,[],w).reverse()),g.each(w,function(e,t){parseFloat(u.stagger)?u.delay=q+parseFloat(u.stagger)*e:A.isFunction(u.stagger)&&(u.delay=q+u.stagger.call(t,e,V)),u.drag&&(u.duration=parseFloat(j)||(/^(callout|transition)/.test(S)?1e3:m),u.duration=Math.max(u.duration*(u.backwards?1-e/V:(e+1)/V),.75*u.duration,200)),y.Redirects[S].call(t,t,u||{},e,V,w,k.promise?k:n)}),e()):(L="Velocity: First argument ("+S+") was not a property map, a known action, or a registered redirect. Aborting.",k.promise?k.rejecter(Error(L)):t.console&&console.log(L),e());N="start"}if(z={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},R=[],g.each(w,function(e,t){A.isNode(t)&&a(t,e)}),u=g.extend({},y.defaults,P),u.loop=parseInt(u.loop,10),
15
+ M=2*u.loop-1,u.loop)for($=0;$<M;$++)B={delay:u.delay,progress:u.progress},$===M-1&&(B.display=u.display,B.visibility=u.visibility,B.complete=u.complete),x(w,"reverse",B);return e()},y=g.extend(x,y),y.animate=x,w=t.requestAnimationFrame||k,y.State.isMobile||r.hidden===n||(S=function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},d()):w=t.requestAnimationFrame||k},S(),r.addEventListener("visibilitychange",S)),e.Velocity=y,e!==t&&(e.fn.velocity=x,e.fn.velocity.defaults=y.defaults),g.each(["Down","Up"],function(e,t){y.Redirects["slide"+t]=function(e,r,a,i,o,s){var l=g.extend({},r),u=l.begin,c=l.complete,p={},d={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""};l.display===n&&(l.display="Down"===t?"inline"===y.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){var r,n;0===a&&u&&u.call(o,o);for(r in d)d.hasOwnProperty(r)&&(p[r]=e.style[r],n=v.getPropertyValue(e,r),d[r]="Down"===t?[n,0]:[0,n]);p.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in p)p.hasOwnProperty(t)&&(e.style[t]=p[t]);a===i-1&&(c&&c.call(o,o),s&&s.resolver(o))},y(e,d,l)}}),g.each(["In","Out"],function(e,t){y.Redirects["fade"+t]=function(e,r,a,i,o,s){var l=g.extend({},r),u=l.complete,c={opacity:"In"===t?1:0};0!==a&&(l.begin=null),l.complete=a!==i-1?null:function(){u&&u.call(o,o),s&&s.resolver(o)},l.display===n&&(l.display="In"===t?"auto":"none"),y(this,c,l)}}),y)}(window.jQuery||window.Zepto||window,window,window?window.document:void 0)})}});