eoss 0.1.0-alpha.39 → 0.1.0-alpha.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/lib/0.js +1 -1
  2. package/lib/1.js +1 -1
  3. package/lib/10.js +1 -1
  4. package/lib/11.js +1 -1
  5. package/lib/12.js +1 -1
  6. package/lib/13.js +1 -1
  7. package/lib/14.js +1 -1
  8. package/lib/15.js +1 -1
  9. package/lib/16.js +1 -1
  10. package/lib/17.js +1 -1
  11. package/lib/18.js +1 -1
  12. package/lib/19.js +1 -1
  13. package/lib/20.js +1 -1
  14. package/lib/21.js +1 -1
  15. package/lib/22.js +1 -1
  16. package/lib/23.js +1 -1
  17. package/lib/24.js +1 -1
  18. package/lib/25.js +1 -1
  19. package/lib/26.js +1 -1
  20. package/lib/27.js +1 -1
  21. package/lib/28.js +1 -1
  22. package/lib/29.js +1 -1
  23. package/lib/3.js +1 -1
  24. package/lib/30.js +1 -1
  25. package/lib/31.js +1 -1
  26. package/lib/32.js +1 -1
  27. package/lib/33.js +1 -1
  28. package/lib/34.js +1 -1
  29. package/lib/35.js +1 -1
  30. package/lib/36.js +1 -1
  31. package/lib/37.js +1 -1
  32. package/lib/38.js +1 -1
  33. package/lib/39.js +1 -1
  34. package/lib/4.js +1 -1
  35. package/lib/40.js +1 -1
  36. package/lib/41.js +1 -1
  37. package/lib/42.js +1 -1
  38. package/lib/43.js +1 -1
  39. package/lib/44.js +1 -1
  40. package/lib/45.js +1 -1
  41. package/lib/46.js +1 -1
  42. package/lib/47.js +1 -1
  43. package/lib/48.js +1 -1
  44. package/lib/49.js +1 -1
  45. package/lib/5.js +1 -1
  46. package/lib/50.js +1 -1
  47. package/lib/51.js +1 -1
  48. package/lib/52.js +1 -1
  49. package/lib/53.js +1 -1
  50. package/lib/54.js +1 -1
  51. package/lib/55.js +1 -1
  52. package/lib/56.js +1 -1
  53. package/lib/57.js +1 -1
  54. package/lib/58.js +1 -1
  55. package/lib/59.js +1 -1
  56. package/lib/6.js +1 -1
  57. package/lib/60.js +1 -1
  58. package/lib/61.js +1 -1
  59. package/lib/62.js +1 -1
  60. package/lib/63.js +1 -1
  61. package/lib/64.js +1 -1
  62. package/lib/65.js +1 -1
  63. package/lib/66.js +1 -1
  64. package/lib/67.js +1 -1
  65. package/lib/68.js +1 -1
  66. package/lib/69.js +1 -1
  67. package/lib/7.js +1 -1
  68. package/lib/70.js +1 -1
  69. package/lib/71.js +1 -1
  70. package/lib/72.js +1 -1
  71. package/lib/73.js +1 -1
  72. package/lib/74.js +1 -1
  73. package/lib/75.js +1 -1
  74. package/lib/76.js +1 -1
  75. package/lib/77.js +1 -1
  76. package/lib/78.js +1 -1
  77. package/lib/79.js +1 -1
  78. package/lib/8.js +1 -1
  79. package/lib/80.js +1 -1
  80. package/lib/81.js +1 -1
  81. package/lib/9.js +1 -1
  82. package/lib/account-login.js +837 -862
  83. package/lib/alert.js +2 -2
  84. package/lib/aside.js +2 -2
  85. package/lib/audit-trajectory.js +4 -4
  86. package/lib/autocomplete.js +1813 -1988
  87. package/lib/avatar.js +2 -2
  88. package/lib/backtop.js +2 -2
  89. package/lib/badge.js +2 -2
  90. package/lib/breadcrumb-item.js +4 -4
  91. package/lib/breadcrumb.js +4 -4
  92. package/lib/button-group.js +4 -4
  93. package/lib/button.js +2 -2
  94. package/lib/ca-login.js +837 -862
  95. package/lib/calendar.js +839 -864
  96. package/lib/card.js +2 -2
  97. package/lib/carousel-item.js +846 -871
  98. package/lib/carousel.js +839 -864
  99. package/lib/cascader-panel.js +852 -877
  100. package/lib/cascader.js +2048 -2223
  101. package/lib/checkbox-button.js +4 -4
  102. package/lib/checkbox-group.js +859 -884
  103. package/lib/checkbox.js +4 -4
  104. package/lib/col.js +2 -2
  105. package/lib/collapse-item.js +1040 -1065
  106. package/lib/collapse.js +1040 -1065
  107. package/lib/color-picker.js +972 -1122
  108. package/lib/container.js +2 -2
  109. package/lib/cron.js +12 -12
  110. package/lib/data-table.js +843 -868
  111. package/lib/date-picker.js +10520 -10695
  112. package/lib/descriptions-item.js +4 -4
  113. package/lib/descriptions.js +4 -4
  114. package/lib/dialog.js +837 -862
  115. package/lib/divider.js +2 -2
  116. package/lib/drawer.js +2 -2
  117. package/lib/dropdown-item.js +4 -4
  118. package/lib/dropdown-menu.js +974 -1124
  119. package/lib/dropdown.js +841 -866
  120. package/lib/email-login.js +837 -862
  121. package/lib/empty.js +2 -2
  122. package/lib/eoss.common.js +4023 -2668
  123. package/lib/flip.js +2 -2
  124. package/lib/flow-group.js +853 -878
  125. package/lib/flow.js +868 -893
  126. package/lib/flows.js +854 -879
  127. package/lib/footer.js +2 -2
  128. package/lib/form-item.js +860 -885
  129. package/lib/form.js +933 -950
  130. package/lib/guide.js +2 -2
  131. package/lib/header.js +2 -2
  132. package/lib/icon.js +837 -862
  133. package/lib/icons.js +2 -2
  134. package/lib/image-viewer.js +837 -862
  135. package/lib/image.js +4 -4
  136. package/lib/index.js +1 -1
  137. package/lib/infinite-scroll.js +2 -2
  138. package/lib/input-number.js +6 -6
  139. package/lib/input.js +839 -864
  140. package/lib/link.js +2 -2
  141. package/lib/loading.js +2 -2
  142. package/lib/login.js +867 -891
  143. package/lib/lowcode-view.js +1843 -1185
  144. package/lib/lowcode.js +3050 -1569
  145. package/lib/main.js +970 -988
  146. package/lib/marquee.js +837 -862
  147. package/lib/menu-item-group.js +15 -15
  148. package/lib/menu-item.js +6 -6
  149. package/lib/menu.js +2227 -2368
  150. package/lib/message-box.js +843 -868
  151. package/lib/message.js +839 -864
  152. package/lib/notification.js +861 -886
  153. package/lib/option-group.js +4 -4
  154. package/lib/option.js +839 -864
  155. package/lib/page-header.js +2 -2
  156. package/lib/pagination.js +839 -864
  157. package/lib/phone-login.js +847 -866
  158. package/lib/popconfirm.js +4 -4
  159. package/lib/popover.js +1831 -2006
  160. package/lib/process-config.js +839 -864
  161. package/lib/process-module.js +846 -871
  162. package/lib/process-rule.js +905 -930
  163. package/lib/progress.js +2 -2
  164. package/lib/qr-code.js +4 -4
  165. package/lib/qrcode-login.js +839 -864
  166. package/lib/radio-button.js +4 -4
  167. package/lib/radio-group.js +850 -875
  168. package/lib/radio.js +4 -4
  169. package/lib/rate.js +837 -862
  170. package/lib/retrial-auth.js +837 -862
  171. package/lib/row.js +2 -2
  172. package/lib/scrollbar.js +839 -864
  173. package/lib/select.js +2139 -2314
  174. package/lib/selector-panel.js +940 -965
  175. package/lib/selector.js +852 -877
  176. package/lib/slider.js +4 -4
  177. package/lib/step.js +32 -32
  178. package/lib/steps.js +874 -899
  179. package/lib/submenu.js +1269 -1385
  180. package/lib/switch.js +839 -864
  181. package/lib/tab-pane.js +4 -4
  182. package/lib/table-column.js +840 -865
  183. package/lib/table.js +1825 -2000
  184. package/lib/tabs.js +846 -871
  185. package/lib/tag.js +2 -2
  186. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  187. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  188. package/lib/theme-chalk/index.css +1 -1
  189. package/lib/theme-chalk/lowcode.css +1 -1
  190. package/lib/time-picker.js +6471 -6646
  191. package/lib/time-select.js +5039 -5214
  192. package/lib/timeline-item.js +2 -2
  193. package/lib/timeline.js +2 -2
  194. package/lib/tips.js +837 -862
  195. package/lib/toolbar.js +4 -4
  196. package/lib/tooltip.js +1813 -1988
  197. package/lib/transfer.js +837 -862
  198. package/lib/tree-group.js +853 -878
  199. package/lib/tree.js +1026 -1051
  200. package/lib/update-history.js +4 -4
  201. package/lib/upload.js +859 -884
  202. package/lib/wujie.js +841 -866
  203. package/package.json +1 -1
  204. package/packages/flow-group/src/main.vue +2 -2
  205. package/packages/form/src/form-item-render.vue +1 -0
  206. package/packages/form/src/form-item.vue +12 -6
  207. package/packages/form/src/form.vue +5 -5
  208. package/packages/login/src/login.vue +1 -0
  209. package/packages/lowcode/src/attribute/function.vue +28 -9
  210. package/packages/lowcode/src/attribute/props.vue +202 -0
  211. package/packages/lowcode/src/attribute/styles.vue +79 -5
  212. package/packages/lowcode/src/attribute.vue +61 -4
  213. package/packages/lowcode/src/canvas.vue +159 -2
  214. package/packages/lowcode/src/form-render.vue +305 -0
  215. package/packages/lowcode/src/lowcode.vue +33 -13
  216. package/packages/lowcode/src/modules.vue +53 -37
  217. package/packages/lowcode/src/render.vue +80 -25
  218. package/packages/lowcode/src/util/components.js +100 -0
  219. package/packages/lowcode/src/util/props-util.js +67 -0
  220. package/packages/lowcode/src/util/source-generator.js +69 -9
  221. package/packages/lowcode/src/util/source-parser.js +64 -10
  222. package/packages/lowcode-view/src/render.vue +48 -18
  223. package/packages/main/src/components/userinfo.vue +0 -1
  224. package/packages/menu/src/menu-item-group.vue +1 -1
  225. package/packages/menu/src/mixins.js +8 -4
  226. package/packages/menu/src/submenu.vue +35 -5
  227. package/packages/phone-login/src/phone-login.vue +5 -2
  228. package/packages/theme-chalk/dist/fonts/iconfont.ttf +0 -0
  229. package/packages/theme-chalk/dist/fonts/iconfont.woff +0 -0
  230. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  231. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  232. package/packages/theme-chalk/src/lowcode.scss +21 -2
  233. package/src/index.js +336 -336
package/lib/main.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 183);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 190);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ([
@@ -4338,759 +4338,736 @@ var changeInTime = '/baseIssueRules/changeInTime';
4338
4338
  /* unused harmony export getSecond */
4339
4339
  /* unused harmony export getWeekday */
4340
4340
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return timeCycle; });
4341
- /* Modified from https://github.com/taylorhakes/fecha
4342
- *
4343
- * The MIT License (MIT)
4344
- *
4345
- * Copyright (c) 2015 Taylor Hakes
4346
- *
4347
- * Permission is hereby granted, free of charge, to any person obtaining a copy
4348
- * of this software and associated documentation files (the "Software"), to deal
4349
- * in the Software without restriction, including without limitation the rights
4350
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
4351
- * copies of the Software, and to permit persons to whom the Software is
4352
- * furnished to do so, subject to the following conditions:
4353
- *
4354
- * The above copyright notice and this permission notice shall be included in all
4355
- * copies or substantial portions of the Software.
4356
- *
4357
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4358
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4359
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4360
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4361
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4362
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4363
- * SOFTWARE.
4364
- */
4365
-
4366
- /*eslint-disable*/
4367
- // 把 YYYY-MM-DD 改成了 yyyy-MM-dd
4368
-
4369
-
4341
+
4342
+
4370
4343
  /**
4371
4344
  * Parse or format dates
4372
4345
  * @class fecha
4373
- */
4374
- const fecha = {};
4375
- const token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
4376
- const twoDigits = '\\d\\d?';
4377
- const threeDigits = '\\d{3}';
4378
- const fourDigits = '\\d{4}';
4379
- const word = '[^\\s]+';
4380
- const literal = /\[([^]*?)\]/gm;
4381
- const noop = function () {};
4382
-
4383
- function regexEscape(str) {
4384
- return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
4385
- }
4386
-
4387
- function shorten(arr, sLen) {
4388
- const newArr = [];
4389
- for (let i = 0, len = arr.length; i < len; i++) {
4390
- newArr.push(arr[i].substr(0, sLen));
4391
- }
4392
- return newArr;
4393
- }
4394
-
4395
- function monthUpdate() {
4396
- return function (d, v) {
4397
- const index = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'].indexOf(v.toLowerCase());
4398
- if (~index) {
4399
- d.month = index;
4400
- }
4401
- };
4402
- }
4403
-
4404
- function pad(val, len) {
4405
- val = String(val);
4406
- len = len || 2;
4407
- while (val.length < len) {
4408
- val = '0' + val;
4409
- }
4410
- return val;
4411
- }
4412
-
4413
- // 直接使用中文日期名称常量
4414
- const dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
4415
- const monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
4416
- const monthNamesShort = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
4417
- const dayNamesShort = ['日', '一', '二', '三', '四', '五', '六'];
4418
- const amPm = ['上午', '下午'];
4419
- const DoFn = function DoFn(D) {
4420
- return D + '日';
4421
- };
4422
-
4423
- const formatFlags = {
4424
- D: function(dateObj) {
4425
- return dateObj.getDay();
4426
- },
4427
- DD: function(dateObj) {
4428
- return pad(dateObj.getDay());
4429
- },
4430
- Do: function(dateObj) {
4431
- return DoFn(dateObj.getDate());
4432
- },
4433
- d: function(dateObj) {
4434
- return dateObj.getDate();
4435
- },
4436
- dd: function(dateObj) {
4437
- return pad(dateObj.getDate());
4438
- },
4439
- ddd: function(dateObj) {
4440
- return dayNamesShort[dateObj.getDay()];
4441
- },
4442
- dddd: function(dateObj) {
4443
- return dayNames[dateObj.getDay()];
4444
- },
4445
- M: function(dateObj) {
4446
- return dateObj.getMonth() + 1;
4447
- },
4448
- MM: function(dateObj) {
4449
- return pad(dateObj.getMonth() + 1);
4450
- },
4451
- MMM: function(dateObj) {
4452
- return monthNamesShort[dateObj.getMonth()];
4453
- },
4454
- MMMM: function(dateObj) {
4455
- return monthNames[dateObj.getMonth()];
4456
- },
4457
- yy: function(dateObj) {
4458
- return pad(String(dateObj.getFullYear()), 4).substr(2);
4459
- },
4460
- yyyy: function(dateObj) {
4461
- return pad(dateObj.getFullYear(), 4);
4462
- },
4463
- h: function(dateObj) {
4464
- return dateObj.getHours() % 12 || 12;
4465
- },
4466
- hh: function(dateObj) {
4467
- return pad(dateObj.getHours() % 12 || 12);
4468
- },
4469
- H: function(dateObj) {
4470
- return dateObj.getHours();
4471
- },
4472
- HH: function(dateObj) {
4473
- return pad(dateObj.getHours());
4474
- },
4475
- m: function(dateObj) {
4476
- return dateObj.getMinutes();
4477
- },
4478
- mm: function(dateObj) {
4479
- return pad(dateObj.getMinutes());
4480
- },
4481
- s: function(dateObj) {
4482
- return dateObj.getSeconds();
4483
- },
4484
- ss: function(dateObj) {
4485
- return pad(dateObj.getSeconds());
4486
- },
4487
- S: function(dateObj) {
4488
- return Math.round(dateObj.getMilliseconds() / 100);
4489
- },
4490
- SS: function(dateObj) {
4491
- return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
4492
- },
4493
- SSS: function(dateObj) {
4494
- return pad(dateObj.getMilliseconds(), 3);
4495
- },
4496
- a: function(dateObj) {
4497
- return dateObj.getHours() < 12 ? '上午' : '下午';
4498
- },
4499
- A: function(dateObj) {
4500
- return dateObj.getHours() < 12 ? '上午' : '下午';
4501
- },
4502
- ZZ: function(dateObj) {
4503
- const o = dateObj.getTimezoneOffset();
4504
- return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
4505
- }
4506
- };
4507
-
4508
- const parseFlags = {
4509
- d: [twoDigits, function (d, v) {
4510
- d.day = v;
4511
- }],
4512
- Do: [twoDigits + word, function (d, v) {
4513
- d.day = parseInt(v, 10);
4514
- }],
4515
- M: [twoDigits, function (d, v) {
4516
- d.month = v - 1;
4517
- }],
4518
- yy: [twoDigits, function (d, v) {
4519
- const da = new Date(), cent = +('' + da.getFullYear()).substr(0, 2);
4520
- d.year = '' + (v > 68 ? cent - 1 : cent) + v;
4521
- }],
4522
- h: [twoDigits, function (d, v) {
4523
- d.hour = v;
4524
- }],
4525
- m: [twoDigits, function (d, v) {
4526
- d.minute = v;
4527
- }],
4528
- s: [twoDigits, function (d, v) {
4529
- d.second = v;
4530
- }],
4531
- yyyy: [fourDigits, function (d, v) {
4532
- d.year = v;
4533
- }],
4534
- S: ['\\d', function (d, v) {
4535
- d.millisecond = v * 100;
4536
- }],
4537
- SS: ['\\d{2}', function (d, v) {
4538
- d.millisecond = v * 10;
4539
- }],
4540
- SSS: [threeDigits, function (d, v) {
4541
- d.millisecond = v;
4542
- }],
4543
- D: [twoDigits, noop],
4544
- ddd: [word, noop],
4545
- MMM: [word, monthUpdate('monthNamesShort')],
4546
- MMMM: [word, monthUpdate('monthNames')],
4547
- a: [word, function (d, v) {
4548
- const val = v.toLowerCase();
4549
- if (val === '上午') {
4550
- d.isPm = false;
4551
- } else if (val === '下午') {
4552
- d.isPm = true;
4553
- }
4554
- }],
4555
- ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
4556
- let parts = (v + '').match(/([+-]|\d\d)/gi), minutes;
4557
-
4558
- if (parts) {
4559
- minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
4560
- d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
4561
- }
4562
- }]
4563
- };
4564
- parseFlags.dd = parseFlags.d;
4565
- parseFlags.dddd = parseFlags.ddd;
4566
- parseFlags.DD = parseFlags.D;
4567
- parseFlags.mm = parseFlags.m;
4568
- parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
4569
- parseFlags.MM = parseFlags.M;
4570
- parseFlags.ss = parseFlags.s;
4571
- parseFlags.A = parseFlags.a;
4572
-
4573
-
4574
- // Some common format strings
4575
- fecha.masks = {
4576
- default: 'ddd MMM dd yyyy HH:mm:ss',
4577
- shortDate: 'M/D/yy',
4578
- mediumDate: 'MMM d, yyyy',
4579
- longDate: 'MMMM d, yyyy',
4580
- fullDate: 'dddd, MMMM d, yyyy',
4581
- shortTime: 'HH:mm',
4582
- mediumTime: 'HH:mm:ss',
4583
- longTime: 'HH:mm:ss.SSS'
4584
- };
4585
-
4346
+ */
4347
+ var fecha = {};
4348
+ var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
4349
+ var twoDigits = '\\d\\d?';
4350
+ var threeDigits = '\\d{3}';
4351
+ var fourDigits = '\\d{4}';
4352
+ var word = '[^\\s]+';
4353
+ var literal = /\[([^]*?)\]/gm;
4354
+ var noop = function noop() {};
4355
+
4356
+ function regexEscape(str) {
4357
+ return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
4358
+ }
4359
+
4360
+ function shorten(arr, sLen) {
4361
+ var newArr = [];
4362
+ for (var i = 0, len = arr.length; i < len; i++) {
4363
+ newArr.push(arr[i].substr(0, sLen));
4364
+ }
4365
+ return newArr;
4366
+ }
4367
+
4368
+ function monthUpdate() {
4369
+ return function (d, v) {
4370
+ var index = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'].indexOf(v.toLowerCase());
4371
+ if (~index) {
4372
+ d.month = index;
4373
+ }
4374
+ };
4375
+ }
4376
+
4377
+ function pad(val, len) {
4378
+ val = String(val);
4379
+ len = len || 2;
4380
+ while (val.length < len) {
4381
+ val = '0' + val;
4382
+ }
4383
+ return val;
4384
+ }
4385
+
4386
+ // 直接使用中文日期名称常量
4387
+ var dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
4388
+ var monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
4389
+ var monthNamesShort = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
4390
+ var dayNamesShort = ['日', '一', '二', '三', '四', '五', '六'];
4391
+ var amPm = ['上午', '下午'];
4392
+ var DoFn = function DoFn(D) {
4393
+ return D + '日';
4394
+ };
4395
+
4396
+ var formatFlags = {
4397
+ D: function D(dateObj) {
4398
+ return dateObj.getDay();
4399
+ },
4400
+ DD: function DD(dateObj) {
4401
+ return pad(dateObj.getDay());
4402
+ },
4403
+ Do: function Do(dateObj) {
4404
+ return DoFn(dateObj.getDate());
4405
+ },
4406
+ d: function d(dateObj) {
4407
+ return dateObj.getDate();
4408
+ },
4409
+ dd: function dd(dateObj) {
4410
+ return pad(dateObj.getDate());
4411
+ },
4412
+ ddd: function ddd(dateObj) {
4413
+ return dayNamesShort[dateObj.getDay()];
4414
+ },
4415
+ dddd: function dddd(dateObj) {
4416
+ return dayNames[dateObj.getDay()];
4417
+ },
4418
+ M: function M(dateObj) {
4419
+ return dateObj.getMonth() + 1;
4420
+ },
4421
+ MM: function MM(dateObj) {
4422
+ return pad(dateObj.getMonth() + 1);
4423
+ },
4424
+ MMM: function MMM(dateObj) {
4425
+ return monthNamesShort[dateObj.getMonth()];
4426
+ },
4427
+ MMMM: function MMMM(dateObj) {
4428
+ return monthNames[dateObj.getMonth()];
4429
+ },
4430
+ yy: function yy(dateObj) {
4431
+ return pad(String(dateObj.getFullYear()), 4).substr(2);
4432
+ },
4433
+ yyyy: function yyyy(dateObj) {
4434
+ return pad(dateObj.getFullYear(), 4);
4435
+ },
4436
+ h: function h(dateObj) {
4437
+ return dateObj.getHours() % 12 || 12;
4438
+ },
4439
+ hh: function hh(dateObj) {
4440
+ return pad(dateObj.getHours() % 12 || 12);
4441
+ },
4442
+ H: function H(dateObj) {
4443
+ return dateObj.getHours();
4444
+ },
4445
+ HH: function HH(dateObj) {
4446
+ return pad(dateObj.getHours());
4447
+ },
4448
+ m: function m(dateObj) {
4449
+ return dateObj.getMinutes();
4450
+ },
4451
+ mm: function mm(dateObj) {
4452
+ return pad(dateObj.getMinutes());
4453
+ },
4454
+ s: function s(dateObj) {
4455
+ return dateObj.getSeconds();
4456
+ },
4457
+ ss: function ss(dateObj) {
4458
+ return pad(dateObj.getSeconds());
4459
+ },
4460
+ S: function S(dateObj) {
4461
+ return Math.round(dateObj.getMilliseconds() / 100);
4462
+ },
4463
+ SS: function SS(dateObj) {
4464
+ return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
4465
+ },
4466
+ SSS: function SSS(dateObj) {
4467
+ return pad(dateObj.getMilliseconds(), 3);
4468
+ },
4469
+ a: function a(dateObj) {
4470
+ return dateObj.getHours() < 12 ? '上午' : '下午';
4471
+ },
4472
+ A: function A(dateObj) {
4473
+ return dateObj.getHours() < 12 ? '上午' : '下午';
4474
+ },
4475
+ ZZ: function ZZ(dateObj) {
4476
+ var o = dateObj.getTimezoneOffset();
4477
+ return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
4478
+ }
4479
+ };
4480
+
4481
+ var parseFlags = {
4482
+ d: [twoDigits, function (d, v) {
4483
+ d.day = v;
4484
+ }],
4485
+ Do: [twoDigits + word, function (d, v) {
4486
+ d.day = parseInt(v, 10);
4487
+ }],
4488
+ M: [twoDigits, function (d, v) {
4489
+ d.month = v - 1;
4490
+ }],
4491
+ yy: [twoDigits, function (d, v) {
4492
+ var da = new Date(),
4493
+ cent = +('' + da.getFullYear()).substr(0, 2);
4494
+ d.year = '' + (v > 68 ? cent - 1 : cent) + v;
4495
+ }],
4496
+ h: [twoDigits, function (d, v) {
4497
+ d.hour = v;
4498
+ }],
4499
+ m: [twoDigits, function (d, v) {
4500
+ d.minute = v;
4501
+ }],
4502
+ s: [twoDigits, function (d, v) {
4503
+ d.second = v;
4504
+ }],
4505
+ yyyy: [fourDigits, function (d, v) {
4506
+ d.year = v;
4507
+ }],
4508
+ S: ['\\d', function (d, v) {
4509
+ d.millisecond = v * 100;
4510
+ }],
4511
+ SS: ['\\d{2}', function (d, v) {
4512
+ d.millisecond = v * 10;
4513
+ }],
4514
+ SSS: [threeDigits, function (d, v) {
4515
+ d.millisecond = v;
4516
+ }],
4517
+ D: [twoDigits, noop],
4518
+ ddd: [word, noop],
4519
+ MMM: [word, monthUpdate('monthNamesShort')],
4520
+ MMMM: [word, monthUpdate('monthNames')],
4521
+ a: [word, function (d, v) {
4522
+ var val = v.toLowerCase();
4523
+ if (val === '上午') {
4524
+ d.isPm = false;
4525
+ } else if (val === '下午') {
4526
+ d.isPm = true;
4527
+ }
4528
+ }],
4529
+ ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
4530
+ var parts = (v + '').match(/([+-]|\d\d)/gi),
4531
+ minutes = void 0;
4532
+
4533
+ if (parts) {
4534
+ minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
4535
+ d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
4536
+ }
4537
+ }]
4538
+ };
4539
+ parseFlags.dd = parseFlags.d;
4540
+ parseFlags.dddd = parseFlags.ddd;
4541
+ parseFlags.DD = parseFlags.D;
4542
+ parseFlags.mm = parseFlags.m;
4543
+ parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
4544
+ parseFlags.MM = parseFlags.M;
4545
+ parseFlags.ss = parseFlags.s;
4546
+ parseFlags.A = parseFlags.a;
4547
+
4548
+ // Some common format strings
4549
+ fecha.masks = {
4550
+ default: 'ddd MMM dd yyyy HH:mm:ss',
4551
+ shortDate: 'M/D/yy',
4552
+ mediumDate: 'MMM d, yyyy',
4553
+ longDate: 'MMMM d, yyyy',
4554
+ fullDate: 'dddd, MMMM d, yyyy',
4555
+ shortTime: 'HH:mm',
4556
+ mediumTime: 'HH:mm:ss',
4557
+ longTime: 'HH:mm:ss.SSS'
4558
+ };
4559
+
4586
4560
  /***
4587
4561
  * Format a date
4588
4562
  * @method format
4589
4563
  * @param {Date|number} dateObj
4590
4564
  * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
4591
- */
4592
- fecha.format = function (dateObj, mask) {
4593
- if (typeof dateObj === 'number') {
4594
- dateObj = new Date(dateObj);
4595
- }
4596
-
4597
- if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
4598
- throw new Error('Invalid Date in fecha.format');
4599
- }
4600
-
4601
- mask = fecha.masks[mask] || mask || fecha.masks['default'];
4602
-
4603
- const literals = [];
4604
-
4605
- // Make literals inactive by replacing them with ??
4606
- mask = mask.replace(literal, function($0, $1) {
4607
- literals.push($1);
4608
- return '@@@';
4609
- });
4610
- // Apply formatting rules
4611
- mask = mask.replace(token, function ($0) {
4612
- return $0 in formatFlags ? formatFlags[$0](dateObj) : $0.slice(1, $0.length - 1);
4613
- });
4614
- // Inline literal values back into the formatted value
4615
- return mask.replace(/@@@/g, function() {
4616
- return literals.shift();
4617
- });
4618
- };
4619
-
4565
+ */
4566
+ fecha.format = function (dateObj, mask) {
4567
+ if (typeof dateObj === 'number') {
4568
+ dateObj = new Date(dateObj);
4569
+ }
4570
+
4571
+ if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
4572
+ throw new Error('Invalid Date in fecha.format');
4573
+ }
4574
+
4575
+ mask = fecha.masks[mask] || mask || fecha.masks['default'];
4576
+
4577
+ var literals = [];
4578
+
4579
+ // Make literals inactive by replacing them with ??
4580
+ mask = mask.replace(literal, function ($0, $1) {
4581
+ literals.push($1);
4582
+ return '@@@';
4583
+ });
4584
+ // Apply formatting rules
4585
+ mask = mask.replace(token, function ($0) {
4586
+ return $0 in formatFlags ? formatFlags[$0](dateObj) : $0.slice(1, $0.length - 1);
4587
+ });
4588
+ // Inline literal values back into the formatted value
4589
+ return mask.replace(/@@@/g, function () {
4590
+ return literals.shift();
4591
+ });
4592
+ };
4593
+
4620
4594
  /**
4621
4595
  * Parse a date string into an object, changes - into /
4622
4596
  * @method parse
4623
4597
  * @param {string} dateStr Date string
4624
4598
  * @param {string} format Date parse format
4625
4599
  * @returns {Date|boolean}
4626
- */
4627
- fecha.parse = function (dateStr, format) {
4628
- if (typeof format !== 'string') {
4629
- throw new Error('Invalid format in fecha.parse');
4630
- }
4631
-
4632
- format = fecha.masks[format] || format;
4633
-
4634
- // Avoid regular expression denial of service, fail early for really long strings
4635
- // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
4636
- if (dateStr.length > 1000) {
4637
- return null;
4638
- }
4639
-
4640
- const dateInfo = {};
4641
- const parseInfo = [];
4642
- const literals = [];
4643
- format = format.replace(literal, function($0, $1) {
4644
- literals.push($1);
4645
- return '@@@';
4646
- });
4647
- let newFormat = regexEscape(format).replace(token, function ($0) {
4648
- if (parseFlags[$0]) {
4649
- const info = parseFlags[$0];
4650
- parseInfo.push(info[1]);
4651
- return '(' + info[0] + ')';
4652
- }
4653
-
4654
- return $0;
4655
- });
4656
- newFormat = newFormat.replace(/@@@/g, function() {
4657
- return literals.shift();
4658
- });
4659
- const matches = dateStr.match(new RegExp(newFormat, 'i'));
4660
- if (!matches) {
4661
- return null;
4662
- }
4663
-
4664
- for (let i = 1; i < matches.length; i++) {
4665
- parseInfo[i - 1](dateInfo, matches[i]);
4666
- }
4667
-
4668
- const today = new Date();
4669
- if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
4670
- dateInfo.hour = +dateInfo.hour + 12;
4671
- } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
4672
- dateInfo.hour = 0;
4673
- }
4674
-
4675
- let date;
4676
- if (dateInfo.timezoneOffset != null) {
4677
- dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
4678
- date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
4679
- dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
4680
- } else {
4681
- date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
4682
- dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
4683
- }
4684
- return date;
4685
- };
4686
-
4687
- // 导出fecha对象
4688
-
4689
-
4690
- // 以下是从date-util.js合并的函数
4691
- const newArray = function(start, end) {
4692
- let result = [];
4693
- for (let i = start; i <= end; i++) {
4694
- result.push(i);
4695
- }
4696
- return result;
4697
- };
4698
-
4699
- const getSettings = () => {
4700
- return {
4701
- dayNamesShort: ['日', '一', '二', '三', '四', '五', '六'],
4702
- dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
4703
- monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
4704
- monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
4705
- amPm: ['上午', '下午']
4706
- };
4707
- };
4708
-
4709
- const toDate = function(date) {
4710
- return isDate(date) ? new Date(date) : null;
4711
- };
4712
-
4713
- const isDate = function(date) {
4714
- if (date === null || date === undefined) return false;
4715
- if (isNaN(new Date(date).getTime())) return false;
4716
- if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
4717
- return true;
4718
- };
4719
-
4720
- const isDateObject = function(val) {
4721
- return val instanceof Date;
4722
- };
4723
-
4724
- const formatDate = function (date, format = 'yyyy-MM-dd') {
4725
- // 处理多种输入类型
4726
- if (!date) return '';
4727
-
4728
- // 如果是时间戳,转成日期对象
4729
- if (typeof date === 'number') {
4730
- date = new Date(date);
4731
- }
4732
- // 如果是字符串,转成日期对象
4733
- if (typeof date === 'string') {
4734
- date = new Date(date);
4735
- }
4736
-
4737
- // 调用toDate进一步验证和转换
4738
- date = toDate(date);
4739
- if (!date) return '';
4740
-
4741
- // 兼容大写和小写的格式标记
4742
- // 将大写的YYYY/MM/DD/HH/mm/ss转换为小写的yyyy/mm/dd/hh/mm/ss
4743
- const lowercaseFormat = format
4744
- .replace(/YYYY/g, 'yyyy')
4745
- .replace(/D/g, 'd')
4746
-
4747
- // 使用fecha库进行格式化,支持中文配置
4748
- const str = fecha.format(date, lowercaseFormat, getSettings());
4749
- return str;
4750
- };
4751
-
4752
- const parseDate = function(string, format) {
4753
- return fecha.parse(string, format || 'yyyy-MM-dd', getSettings());
4754
- };
4755
-
4756
- const getDayCountOfMonth = function(year, month) {
4757
- if (month === 3 || month === 5 || month === 8 || month === 10) {
4758
- return 30;
4759
- }
4760
-
4761
- if (month === 1) {
4762
- if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
4763
- return 29;
4764
- } else {
4765
- return 28;
4766
- }
4767
- }
4768
-
4769
- return 31;
4770
- };
4771
-
4772
- const getDayCountOfYear = function(year) {
4773
- const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
4774
- return isLeapYear ? 366 : 365;
4775
- };
4776
-
4777
- const getFirstDayOfMonth = function(date) {
4778
- const temp = new Date(date.getTime());
4779
- temp.setDate(1);
4780
- return temp.getDay();
4781
- };
4782
-
4783
- // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
4784
- // {prev, next} Date should work for Daylight Saving Time
4785
- // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
4786
- const prevDate = function(date, amount = 1) {
4787
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
4788
- };
4789
-
4790
- const nextDate = function(date, amount = 1) {
4791
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
4792
- };
4793
-
4794
- const getStartDateOfMonth = function(year, month) {
4795
- const result = new Date(year, month, 1);
4796
- const day = result.getDay();
4797
-
4798
- if (day === 0) {
4799
- return prevDate(result, 7);
4800
- } else {
4801
- return prevDate(result, day);
4802
- }
4803
- };
4804
-
4805
- const getWeekNumber = function(date) {
4806
- // 支持多种输入类型
4807
- if (!date||!isDate(date)) {
4808
- date = new Date();
4809
- }
4810
- if (typeof date === 'string') {
4811
- date = new Date(date);
4812
- }
4813
-
4814
- // 验证日期有效性
4815
- if (!isDate(date)) return null;
4816
-
4817
- const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
4818
- // 设置为最近的星期四:当前日期 + 4 - 当前星期数
4819
- // 将星期日的星期数设为7
4820
- d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
4821
- // 获取当年的第一天
4822
- const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
4823
- // 计算到最近的星期四的完整周数
4824
- const weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
4825
- // 返回周数
4826
- return weekNo;
4827
- };
4828
-
4829
- const getRangeHours = function(ranges) {
4830
- const hours = [];
4831
- let disabledHours = [];
4832
-
4833
- (ranges || []).forEach(range => {
4834
- const value = range.map(date => date.getHours());
4835
-
4836
- disabledHours = disabledHours.concat(newArray(value[0], value[1]));
4837
- });
4838
-
4839
- if (disabledHours.length) {
4840
- for (let i = 0; i < 24; i++) {
4841
- hours[i] = disabledHours.indexOf(i) === -1;
4842
- }
4843
- } else {
4844
- for (let i = 0; i < 24; i++) {
4845
- hours[i] = false;
4846
- }
4847
- }
4848
-
4849
- return hours;
4850
- };
4851
-
4852
- const getPrevMonthLastDays = (date, amount) => {
4853
- if (amount <= 0) return [];
4854
- const temp = new Date(date.getTime());
4855
- temp.setDate(0);
4856
- const lastDay = temp.getDate();
4857
- return range(amount).map((_, index) => lastDay - (amount - index - 1));
4858
- };
4859
-
4860
- const getMonthDays = (date) => {
4861
- const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
4862
- const days = temp.getDate();
4863
- return range(days).map((_, index) => index + 1);
4864
- };
4865
-
4866
- function setRangeData(arr, start, end, value) {
4867
- for (let i = start; i < end; i++) {
4868
- arr[i] = value;
4869
- }
4870
- }
4871
-
4872
- const getRangeMinutes = function(ranges, hour) {
4873
- const minutes = new Array(60);
4874
-
4875
- if (ranges.length > 0) {
4876
- ranges.forEach(range => {
4877
- const start = range[0];
4878
- const end = range[1];
4879
- const startHour = start.getHours();
4880
- const startMinute = start.getMinutes();
4881
- const endHour = end.getHours();
4882
- const endMinute = end.getMinutes();
4883
- if (startHour === hour && endHour !== hour) {
4884
- setRangeData(minutes, startMinute, 60, true);
4885
- } else if (startHour === hour && endHour === hour) {
4886
- setRangeData(minutes, startMinute, endMinute + 1, true);
4887
- } else if (startHour !== hour && endHour === hour) {
4888
- setRangeData(minutes, 0, endMinute + 1, true);
4889
- } else if (startHour < hour && endHour > hour) {
4890
- setRangeData(minutes, 0, 60, true);
4891
- }
4892
- });
4893
- } else {
4894
- setRangeData(minutes, 0, 60, true);
4895
- }
4896
- return minutes;
4897
- };
4898
-
4899
- const range = function(n) {
4900
- // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
4901
- return Array.apply(null, {length: n}).map((_, n) => n);
4902
- };
4903
-
4904
- const modifyDate = function(date, y, m, d) {
4905
- return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
4906
- };
4907
-
4908
- const modifyTime = function(date, h, m, s) {
4909
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
4910
- };
4911
-
4912
- const modifyWithTimeString = (date, time) => {
4913
- if (date == null || !time) {
4914
- return date;
4915
- }
4916
- time = parseDate(time, 'HH:mm:ss');
4917
- return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
4918
- };
4919
-
4920
- const clearTime = function(date) {
4921
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
4922
- };
4923
-
4924
- const clearMilliseconds = function(date) {
4925
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
4926
- };
4927
-
4928
- const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
4929
- // TODO: refactory a more elegant solution
4930
- if (ranges.length === 0) return date;
4931
- const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
4932
- const ndate = normalizeDate(date);
4933
- const nranges = ranges.map(range => range.map(normalizeDate));
4934
- if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
4935
-
4936
- let minDate = nranges[0][0];
4937
- let maxDate = nranges[0][0];
4938
-
4939
- nranges.forEach(nrange => {
4940
- minDate = new Date(Math.min(nrange[0], minDate));
4941
- maxDate = new Date(Math.max(nrange[1], minDate));
4942
- });
4943
-
4944
- const ret = ndate < minDate ? minDate : maxDate;
4945
- // preserve Year/Month/Date
4946
- return modifyDate(
4947
- ret,
4948
- date.getFullYear(),
4949
- date.getMonth(),
4950
- date.getDate()
4951
- );
4952
- };
4953
-
4954
- const timeWithinRange = function(date, selectableRange, format) {
4955
- const limitedDate = limitTimeRange(date, selectableRange, format);
4956
- return limitedDate.getTime() === date.getTime();
4957
- };
4958
-
4959
- const changeYearMonthAndClampDate = function(date, year, month) {
4960
- // clamp date to the number of days in `year`, `month`
4961
- // eg: (2010-1-31, 2010, 2) => 2010-2-28
4962
- const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
4963
- return modifyDate(date, year, month, monthDate);
4964
- };
4965
-
4966
- const prevMonth = function(date) {
4967
- const year = date.getFullYear();
4968
- const month = date.getMonth();
4969
- return month === 0
4970
- ? changeYearMonthAndClampDate(date, year - 1, 11)
4971
- : changeYearMonthAndClampDate(date, year, month - 1);
4972
- };
4973
-
4974
- const nextMonth = function(date) {
4975
- const year = date.getFullYear();
4976
- const month = date.getMonth();
4977
- return month === 11
4978
- ? changeYearMonthAndClampDate(date, year + 1, 0)
4979
- : changeYearMonthAndClampDate(date, year, month + 1);
4980
- };
4981
-
4982
- const prevYear = function(date, amount = 1) {
4983
- const year = date.getFullYear();
4984
- const month = date.getMonth();
4985
- return changeYearMonthAndClampDate(date, year - amount, month);
4986
- };
4987
-
4988
- const nextYear = function(date, amount = 1) {
4989
- const year = date.getFullYear();
4990
- const month = date.getMonth();
4991
- return changeYearMonthAndClampDate(date, year + amount, month);
4992
- };
4993
-
4994
- const extractDateFormat = function(format) {
4995
- return format
4996
- .replace(/\W?m{1,2}|\W?ZZ/g, '')
4997
- .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
4998
- .trim();
4999
- };
5000
-
5001
- const extractTimeFormat = function(format) {
5002
- return format
5003
- .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
5004
- .trim();
5005
- };
5006
-
5007
- const validateRangeInOneMonth = function(start, end) {
5008
- return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
5009
- };
5010
-
4600
+ */
4601
+ fecha.parse = function (dateStr, format) {
4602
+ if (typeof format !== 'string') {
4603
+ throw new Error('Invalid format in fecha.parse');
4604
+ }
4605
+
4606
+ format = fecha.masks[format] || format;
4607
+
4608
+ // Avoid regular expression denial of service, fail early for really long strings
4609
+ // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
4610
+ if (dateStr.length > 1000) {
4611
+ return null;
4612
+ }
4613
+
4614
+ var dateInfo = {};
4615
+ var parseInfo = [];
4616
+ var literals = [];
4617
+ format = format.replace(literal, function ($0, $1) {
4618
+ literals.push($1);
4619
+ return '@@@';
4620
+ });
4621
+ var newFormat = regexEscape(format).replace(token, function ($0) {
4622
+ if (parseFlags[$0]) {
4623
+ var info = parseFlags[$0];
4624
+ parseInfo.push(info[1]);
4625
+ return '(' + info[0] + ')';
4626
+ }
4627
+
4628
+ return $0;
4629
+ });
4630
+ newFormat = newFormat.replace(/@@@/g, function () {
4631
+ return literals.shift();
4632
+ });
4633
+ var matches = dateStr.match(new RegExp(newFormat, 'i'));
4634
+ if (!matches) {
4635
+ return null;
4636
+ }
4637
+
4638
+ for (var i = 1; i < matches.length; i++) {
4639
+ parseInfo[i - 1](dateInfo, matches[i]);
4640
+ }
4641
+
4642
+ var today = new Date();
4643
+ if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
4644
+ dateInfo.hour = +dateInfo.hour + 12;
4645
+ } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
4646
+ dateInfo.hour = 0;
4647
+ }
4648
+
4649
+ var date = void 0;
4650
+ if (dateInfo.timezoneOffset != null) {
4651
+ dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
4652
+ date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
4653
+ } else {
4654
+ date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
4655
+ }
4656
+ return date;
4657
+ };
4658
+
4659
+ // 导出fecha对象
4660
+
4661
+
4662
+ // 以下是从date-util.js合并的函数
4663
+ var newArray = function newArray(start, end) {
4664
+ var result = [];
4665
+ for (var i = start; i <= end; i++) {
4666
+ result.push(i);
4667
+ }
4668
+ return result;
4669
+ };
4670
+
4671
+ var getSettings = function getSettings() {
4672
+ return {
4673
+ dayNamesShort: ['日', '一', '二', '三', '四', '五', '六'],
4674
+ dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
4675
+ monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
4676
+ monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
4677
+ amPm: ['上午', '下午']
4678
+ };
4679
+ };
4680
+
4681
+ var toDate = function toDate(date) {
4682
+ return isDate(date) ? new Date(date) : null;
4683
+ };
4684
+
4685
+ var isDate = function isDate(date) {
4686
+ if (date === null || date === undefined) return false;
4687
+ if (isNaN(new Date(date).getTime())) return false;
4688
+ if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
4689
+ return true;
4690
+ };
4691
+
4692
+ var isDateObject = function isDateObject(val) {
4693
+ return val instanceof Date;
4694
+ };
4695
+
4696
+ var formatDate = function formatDate(date) {
4697
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd';
4698
+
4699
+ // 处理多种输入类型
4700
+ if (!date) return '';
4701
+
4702
+ // 如果是时间戳,转成日期对象
4703
+ if (typeof date === 'number') {
4704
+ date = new Date(date);
4705
+ }
4706
+ // 如果是字符串,转成日期对象
4707
+ if (typeof date === 'string') {
4708
+ date = new Date(date);
4709
+ }
4710
+
4711
+ // 调用toDate进一步验证和转换
4712
+ date = toDate(date);
4713
+ if (!date) return '';
4714
+
4715
+ // 兼容大写和小写的格式标记
4716
+ // 将大写的YYYY/MM/DD/HH/mm/ss转换为小写的yyyy/mm/dd/hh/mm/ss
4717
+ var lowercaseFormat = format.replace(/YYYY/g, 'yyyy').replace(/D/g, 'd');
4718
+
4719
+ // 使用fecha库进行格式化,支持中文配置
4720
+ var str = fecha.format(date, lowercaseFormat, getSettings());
4721
+ return str;
4722
+ };
4723
+
4724
+ var parseDate = function parseDate(string, format) {
4725
+ return fecha.parse(string, format || 'yyyy-MM-dd', getSettings());
4726
+ };
4727
+
4728
+ var getDayCountOfMonth = function getDayCountOfMonth(year, month) {
4729
+ if (month === 3 || month === 5 || month === 8 || month === 10) {
4730
+ return 30;
4731
+ }
4732
+
4733
+ if (month === 1) {
4734
+ if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
4735
+ return 29;
4736
+ } else {
4737
+ return 28;
4738
+ }
4739
+ }
4740
+
4741
+ return 31;
4742
+ };
4743
+
4744
+ var getDayCountOfYear = function getDayCountOfYear(year) {
4745
+ var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;
4746
+ return isLeapYear ? 366 : 365;
4747
+ };
4748
+
4749
+ var getFirstDayOfMonth = function getFirstDayOfMonth(date) {
4750
+ var temp = new Date(date.getTime());
4751
+ temp.setDate(1);
4752
+ return temp.getDay();
4753
+ };
4754
+
4755
+ // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
4756
+ // {prev, next} Date should work for Daylight Saving Time
4757
+ // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
4758
+ var prevDate = function prevDate(date) {
4759
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4760
+
4761
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
4762
+ };
4763
+
4764
+ var nextDate = function nextDate(date) {
4765
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4766
+
4767
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
4768
+ };
4769
+
4770
+ var getStartDateOfMonth = function getStartDateOfMonth(year, month) {
4771
+ var result = new Date(year, month, 1);
4772
+ var day = result.getDay();
4773
+
4774
+ if (day === 0) {
4775
+ return prevDate(result, 7);
4776
+ } else {
4777
+ return prevDate(result, day);
4778
+ }
4779
+ };
4780
+
4781
+ var getWeekNumber = function getWeekNumber(date) {
4782
+ // 支持多种输入类型
4783
+ if (!date || !isDate(date)) {
4784
+ date = new Date();
4785
+ }
4786
+ if (typeof date === 'string') {
4787
+ date = new Date(date);
4788
+ }
4789
+
4790
+ // 验证日期有效性
4791
+ if (!isDate(date)) return null;
4792
+
4793
+ var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
4794
+ // 设置为最近的星期四:当前日期 + 4 - 当前星期数
4795
+ // 将星期日的星期数设为7
4796
+ d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
4797
+ // 获取当年的第一天
4798
+ var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
4799
+ // 计算到最近的星期四的完整周数
4800
+ var weekNo = Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
4801
+ // 返回周数
4802
+ return weekNo;
4803
+ };
4804
+
4805
+ var getRangeHours = function getRangeHours(ranges) {
4806
+ var hours = [];
4807
+ var disabledHours = [];
4808
+
4809
+ (ranges || []).forEach(function (range) {
4810
+ var value = range.map(function (date) {
4811
+ return date.getHours();
4812
+ });
4813
+
4814
+ disabledHours = disabledHours.concat(newArray(value[0], value[1]));
4815
+ });
4816
+
4817
+ if (disabledHours.length) {
4818
+ for (var i = 0; i < 24; i++) {
4819
+ hours[i] = disabledHours.indexOf(i) === -1;
4820
+ }
4821
+ } else {
4822
+ for (var _i = 0; _i < 24; _i++) {
4823
+ hours[_i] = false;
4824
+ }
4825
+ }
4826
+
4827
+ return hours;
4828
+ };
4829
+
4830
+ var getPrevMonthLastDays = function getPrevMonthLastDays(date, amount) {
4831
+ if (amount <= 0) return [];
4832
+ var temp = new Date(date.getTime());
4833
+ temp.setDate(0);
4834
+ var lastDay = temp.getDate();
4835
+ return range(amount).map(function (_, index) {
4836
+ return lastDay - (amount - index - 1);
4837
+ });
4838
+ };
4839
+
4840
+ var getMonthDays = function getMonthDays(date) {
4841
+ var temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
4842
+ var days = temp.getDate();
4843
+ return range(days).map(function (_, index) {
4844
+ return index + 1;
4845
+ });
4846
+ };
4847
+
4848
+ function setRangeData(arr, start, end, value) {
4849
+ for (var i = start; i < end; i++) {
4850
+ arr[i] = value;
4851
+ }
4852
+ }
4853
+
4854
+ var getRangeMinutes = function getRangeMinutes(ranges, hour) {
4855
+ var minutes = new Array(60);
4856
+
4857
+ if (ranges.length > 0) {
4858
+ ranges.forEach(function (range) {
4859
+ var start = range[0];
4860
+ var end = range[1];
4861
+ var startHour = start.getHours();
4862
+ var startMinute = start.getMinutes();
4863
+ var endHour = end.getHours();
4864
+ var endMinute = end.getMinutes();
4865
+ if (startHour === hour && endHour !== hour) {
4866
+ setRangeData(minutes, startMinute, 60, true);
4867
+ } else if (startHour === hour && endHour === hour) {
4868
+ setRangeData(minutes, startMinute, endMinute + 1, true);
4869
+ } else if (startHour !== hour && endHour === hour) {
4870
+ setRangeData(minutes, 0, endMinute + 1, true);
4871
+ } else if (startHour < hour && endHour > hour) {
4872
+ setRangeData(minutes, 0, 60, true);
4873
+ }
4874
+ });
4875
+ } else {
4876
+ setRangeData(minutes, 0, 60, true);
4877
+ }
4878
+ return minutes;
4879
+ };
4880
+
4881
+ var range = function range(n) {
4882
+ // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
4883
+ return Array.apply(null, { length: n }).map(function (_, n) {
4884
+ return n;
4885
+ });
4886
+ };
4887
+
4888
+ var modifyDate = function modifyDate(date, y, m, d) {
4889
+ return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
4890
+ };
4891
+
4892
+ var modifyTime = function modifyTime(date, h, m, s) {
4893
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
4894
+ };
4895
+
4896
+ var modifyWithTimeString = function modifyWithTimeString(date, time) {
4897
+ if (date == null || !time) {
4898
+ return date;
4899
+ }
4900
+ time = parseDate(time, 'HH:mm:ss');
4901
+ return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
4902
+ };
4903
+
4904
+ var clearTime = function clearTime(date) {
4905
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
4906
+ };
4907
+
4908
+ var clearMilliseconds = function clearMilliseconds(date) {
4909
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
4910
+ };
4911
+
4912
+ var limitTimeRange = function limitTimeRange(date, ranges) {
4913
+ var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';
4914
+
4915
+ // TODO: refactory a more elegant solution
4916
+ if (ranges.length === 0) return date;
4917
+ var normalizeDate = function normalizeDate(date) {
4918
+ return fecha.parse(fecha.format(date, format), format);
4919
+ };
4920
+ var ndate = normalizeDate(date);
4921
+ var nranges = ranges.map(function (range) {
4922
+ return range.map(normalizeDate);
4923
+ });
4924
+ if (nranges.some(function (nrange) {
4925
+ return ndate >= nrange[0] && ndate <= nrange[1];
4926
+ })) return date;
4927
+
4928
+ var minDate = nranges[0][0];
4929
+ var maxDate = nranges[0][0];
4930
+
4931
+ nranges.forEach(function (nrange) {
4932
+ minDate = new Date(Math.min(nrange[0], minDate));
4933
+ maxDate = new Date(Math.max(nrange[1], minDate));
4934
+ });
4935
+
4936
+ var ret = ndate < minDate ? minDate : maxDate;
4937
+ // preserve Year/Month/Date
4938
+ return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
4939
+ };
4940
+
4941
+ var timeWithinRange = function timeWithinRange(date, selectableRange, format) {
4942
+ var limitedDate = limitTimeRange(date, selectableRange, format);
4943
+ return limitedDate.getTime() === date.getTime();
4944
+ };
4945
+
4946
+ var changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {
4947
+ // clamp date to the number of days in `year`, `month`
4948
+ // eg: (2010-1-31, 2010, 2) => 2010-2-28
4949
+ var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
4950
+ return modifyDate(date, year, month, monthDate);
4951
+ };
4952
+
4953
+ var prevMonth = function prevMonth(date) {
4954
+ var year = date.getFullYear();
4955
+ var month = date.getMonth();
4956
+ return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);
4957
+ };
4958
+
4959
+ var nextMonth = function nextMonth(date) {
4960
+ var year = date.getFullYear();
4961
+ var month = date.getMonth();
4962
+ return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);
4963
+ };
4964
+
4965
+ var prevYear = function prevYear(date) {
4966
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4967
+
4968
+ var year = date.getFullYear();
4969
+ var month = date.getMonth();
4970
+ return changeYearMonthAndClampDate(date, year - amount, month);
4971
+ };
4972
+
4973
+ var nextYear = function nextYear(date) {
4974
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4975
+
4976
+ var year = date.getFullYear();
4977
+ var month = date.getMonth();
4978
+ return changeYearMonthAndClampDate(date, year + amount, month);
4979
+ };
4980
+
4981
+ var extractDateFormat = function extractDateFormat(format) {
4982
+ return format.replace(/\W?m{1,2}|\W?ZZ/g, '').replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '').trim();
4983
+ };
4984
+
4985
+ var extractTimeFormat = function extractTimeFormat(format) {
4986
+ return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
4987
+ };
4988
+
4989
+ var validateRangeInOneMonth = function validateRangeInOneMonth(start, end) {
4990
+ return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();
4991
+ };
4992
+
5011
4993
  /**
5012
4994
  * 计算两个日期之间的工作日数量(不包括周末和节假日)
5013
4995
  * @param {string} start_date - 开始日期字符串,格式为 "YYYY-MM-DD"
5014
4996
  * @param {string} end_date - 结束日期字符串,格式为 "YYYY-MM-DD"
5015
4997
  * @param {Array<string>} holidays - 假期日期字符串数组,格式为 "YYYY-MM-DD"
5016
4998
  * @returns {number} 工作日数量
5017
- */
5018
- const calculateNetworkDays = function (start_date, end_date, holidays = []) {
5019
- if (typeof start_date !== 'string' || typeof end_date !== 'string') {
5020
- throw new Error(
5021
- "Invalid input. Please provide valid date strings in the format 'YYYY-MM-DD'."
5022
- );
5023
- }
5024
-
5025
- const startDateObj = new Date(start_date);
5026
- const endDateObj = new Date(end_date);
5027
-
5028
- if (isNaN(startDateObj.getTime()) || isNaN(endDateObj.getTime())) {
5029
- throw new Error(
5030
- "Invalid date format. Please provide valid date strings in the format 'YYYY-MM-DD'."
5031
- );
5032
- }
5033
-
5034
- if (startDateObj > endDateObj) {
5035
- throw new Error('Start date should be earlier than or equal to end date.');
5036
- }
5037
-
5038
- let workdays = 0;
5039
-
5040
- // Iterate through each day in the date range
5041
- for (
5042
- let currentDate = new Date(startDateObj);
5043
- currentDate <= endDateObj;
5044
- currentDate.setDate(currentDate.getDate() + 1)
5045
- ) {
5046
- // Check if the current day is a weekend (Saturday or Sunday)
5047
- const isWeekend = currentDate.getDay() === 0 || currentDate.getDay() === 6;
5048
-
5049
- // Check if the current day is a holiday
5050
- const isHoliday = holidays.some((holiday) => {
5051
- const holidayDate = new Date(holiday);
5052
- return currentDate.toDateString() === holidayDate.toDateString();
5053
- });
5054
-
5055
- // If it's a workday (not a weekend or holiday), increment the workdays count
5056
- if (!isWeekend && !isHoliday) {
5057
- workdays++;
5058
- }
5059
- }
5060
-
5061
- return workdays;
5062
- };
5063
-
4999
+ */
5000
+ var calculateNetworkDays = function calculateNetworkDays(start_date, end_date) {
5001
+ var holidays = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
5002
+
5003
+ if (typeof start_date !== 'string' || typeof end_date !== 'string') {
5004
+ throw new Error("Invalid input. Please provide valid date strings in the format 'YYYY-MM-DD'.");
5005
+ }
5006
+
5007
+ var startDateObj = new Date(start_date);
5008
+ var endDateObj = new Date(end_date);
5009
+
5010
+ if (isNaN(startDateObj.getTime()) || isNaN(endDateObj.getTime())) {
5011
+ throw new Error("Invalid date format. Please provide valid date strings in the format 'YYYY-MM-DD'.");
5012
+ }
5013
+
5014
+ if (startDateObj > endDateObj) {
5015
+ throw new Error('Start date should be earlier than or equal to end date.');
5016
+ }
5017
+
5018
+ var workdays = 0;
5019
+
5020
+ // Iterate through each day in the date range
5021
+
5022
+ var _loop = function _loop(currentDate) {
5023
+ // Check if the current day is a weekend (Saturday or Sunday)
5024
+ var isWeekend = currentDate.getDay() === 0 || currentDate.getDay() === 6;
5025
+
5026
+ // Check if the current day is a holiday
5027
+ var isHoliday = holidays.some(function (holiday) {
5028
+ var holidayDate = new Date(holiday);
5029
+ return currentDate.toDateString() === holidayDate.toDateString();
5030
+ });
5031
+
5032
+ // If it's a workday (not a weekend or holiday), increment the workdays count
5033
+ if (!isWeekend && !isHoliday) {
5034
+ workdays++;
5035
+ }
5036
+ };
5037
+
5038
+ for (var currentDate = new Date(startDateObj); currentDate <= endDateObj; currentDate.setDate(currentDate.getDate() + 1)) {
5039
+ _loop(currentDate);
5040
+ }
5041
+
5042
+ return workdays;
5043
+ };
5044
+
5064
5045
  /**
5065
5046
  * 日期加减天数
5066
5047
  * @param {string} start_date - 起始日期字符串,格式为 "YYYY-MM-DD"
5067
5048
  * @param {number} days - 要加上或减去的天数,正数表示加,负数表示减
5068
5049
  * @returns {string} 结果日期,格式为 "YYYY-MM-DD"
5069
- */
5070
- const dateAddDays = function (start_date, days) {
5071
- if (typeof start_date !== 'string' || !Number.isInteger(days)) {
5072
- throw new Error(
5073
- "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD' and a valid integer for the number of days."
5074
- );
5075
- }
5076
-
5077
- const startDateObj = new Date(start_date);
5078
- if (isNaN(startDateObj.getTime())) {
5079
- throw new Error(
5080
- "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
5081
- );
5082
- }
5083
-
5084
- const resultDateObj = new Date(startDateObj);
5085
- resultDateObj.setDate(resultDateObj.getDate() + days);
5086
-
5087
- const resultYear = resultDateObj.getFullYear();
5088
- const resultMonth = String(resultDateObj.getMonth() + 1).padStart(2, '0');
5089
- const resultDay = String(resultDateObj.getDate()).padStart(2, '0');
5090
-
5091
- return `${resultYear}-${resultMonth}-${resultDay}`;
5092
- };
5093
-
5050
+ */
5051
+ var dateAddDays = function dateAddDays(start_date, days) {
5052
+ if (typeof start_date !== 'string' || !Number.isInteger(days)) {
5053
+ throw new Error("Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD' and a valid integer for the number of days.");
5054
+ }
5055
+
5056
+ var startDateObj = new Date(start_date);
5057
+ if (isNaN(startDateObj.getTime())) {
5058
+ throw new Error("Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'.");
5059
+ }
5060
+
5061
+ var resultDateObj = new Date(startDateObj);
5062
+ resultDateObj.setDate(resultDateObj.getDate() + days);
5063
+
5064
+ var resultYear = resultDateObj.getFullYear();
5065
+ var resultMonth = String(resultDateObj.getMonth() + 1).padStart(2, '0');
5066
+ var resultDay = String(resultDateObj.getDate()).padStart(2, '0');
5067
+
5068
+ return resultYear + '-' + resultMonth + '-' + resultDay;
5069
+ };
5070
+
5094
5071
  /**
5095
5072
  * 计算两个日期之间的差值
5096
5073
  * @date 2023年12月14日
@@ -5098,182 +5075,180 @@ const dateAddDays = function (start_date, days) {
5098
5075
  * @param {String} end_date - 结束日期字符串
5099
5076
  * @param {String} unit - 单位:year/month/day
5100
5077
  * @returns {Number} 差值
5101
- */
5102
- const dateDiff = function (start_date, end_date, unit = 'day') {
5103
- // Assuming date strings are in "YYYY-MM-DD" format
5104
- var startDate = new Date(start_date);
5105
- var endDate = new Date(end_date);
5106
-
5107
- // If the date is invalid, return 0
5108
- if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
5109
- return 0;
5110
- }
5111
-
5112
- if (unit === 'year') {
5113
- return endDate.getFullYear() - startDate.getFullYear();
5114
- } else if (unit === 'month') {
5115
- return (
5116
- (endDate.getFullYear() - startDate.getFullYear()) * 12 +
5117
- (endDate.getMonth() - startDate.getMonth())
5118
- );
5119
- } else {
5120
- // Default to day
5121
- var timeDifference = endDate - startDate;
5122
- // Calculate days (86400000 milliseconds per day)
5123
- return Math.floor(timeDifference / 86400000);
5124
- }
5125
- };
5126
-
5078
+ */
5079
+ var dateDiff = function dateDiff(start_date, end_date) {
5080
+ var unit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'day';
5081
+
5082
+ // Assuming date strings are in "YYYY-MM-DD" format
5083
+ var startDate = new Date(start_date);
5084
+ var endDate = new Date(end_date);
5085
+
5086
+ // If the date is invalid, return 0
5087
+ if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
5088
+ return 0;
5089
+ }
5090
+
5091
+ if (unit === 'year') {
5092
+ return endDate.getFullYear() - startDate.getFullYear();
5093
+ } else if (unit === 'month') {
5094
+ return (endDate.getFullYear() - startDate.getFullYear()) * 12 + (endDate.getMonth() - startDate.getMonth());
5095
+ } else {
5096
+ // Default to day
5097
+ var timeDifference = endDate - startDate;
5098
+ // Calculate days (86400000 milliseconds per day)
5099
+ return Math.floor(timeDifference / 86400000);
5100
+ }
5101
+ };
5102
+
5127
5103
  /**
5128
5104
  * 获取月份中的日期
5129
5105
  * @param {string} date - 日期字符串,格式为 "YYYY-MM-DD"
5130
5106
  * @returns {number} 月份中的日期(1-31)
5131
- */
5132
- const dayOfMonth = function (date) {
5133
- if (typeof date !== 'string') {
5134
- throw new Error(
5135
- "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD'."
5136
- );
5137
- }
5138
-
5139
- const dateObj = new Date(date);
5140
- if (isNaN(dateObj.getTime())) {
5141
- throw new Error(
5142
- "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
5143
- );
5144
- }
5145
-
5146
- return dateObj.getDate();
5147
- };
5148
-
5107
+ */
5108
+ var dayOfMonth = function dayOfMonth(date) {
5109
+ if (typeof date !== 'string') {
5110
+ throw new Error("Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD'.");
5111
+ }
5112
+
5113
+ var dateObj = new Date(date);
5114
+ if (isNaN(dateObj.getTime())) {
5115
+ throw new Error("Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'.");
5116
+ }
5117
+
5118
+ return dateObj.getDate();
5119
+ };
5120
+
5149
5121
  /**
5150
5122
  * 获取当前日期
5151
5123
  * @date 2022年5月7日
5152
5124
  * @param {string} format - 日期格式,默认为'YYYY-MM-DD'
5153
5125
  * @returns {string} 当前日期的格式化字符串
5154
- */
5155
- const getCurrentDate = function (format = 'YYYY-MM-DD') {
5156
- return formatDate(new Date(), format);
5157
- };
5158
-
5126
+ */
5127
+ var getCurrentDate = function getCurrentDate() {
5128
+ var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'YYYY-MM-DD';
5129
+
5130
+ return formatDate(new Date(), format);
5131
+ };
5132
+
5159
5133
  /**
5160
5134
  * 获取当前日期时间
5161
5135
  * @date 2022年5月7日
5162
5136
  * @param {string} format - 日期时间格式,默认为'YYYY-MM-DD HH:mm:ss'
5163
5137
  * @returns {string} 当前日期时间的格式化字符串
5164
- */
5165
- const getCurrentDateTime = function (format = 'YYYY-MM-DD HH:mm:ss') {
5166
- return formatDate(new Date(), format);
5167
- };
5168
-
5138
+ */
5139
+ var getCurrentDateTime = function getCurrentDateTime() {
5140
+ var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'YYYY-MM-DD HH:mm:ss';
5141
+
5142
+ return formatDate(new Date(), format);
5143
+ };
5144
+
5169
5145
  /**
5170
5146
  * 获取小时
5171
5147
  * @date 2022年5月7日
5172
5148
  * @param {Date|string} [date] - 日期对象或日期字符串
5173
5149
  * @returns {number} 小时数(0-23)
5174
- */
5175
- const getHour = function (date) {
5176
- if (!date) {
5177
- return new Date().getHours();
5178
- }
5179
- if (typeof date === 'string') {
5180
- date = new Date(date);
5181
- }
5182
- return date.getHours();
5183
- };
5184
-
5150
+ */
5151
+ var getHour = function getHour(date) {
5152
+ if (!date) {
5153
+ return new Date().getHours();
5154
+ }
5155
+ if (typeof date === 'string') {
5156
+ date = new Date(date);
5157
+ }
5158
+ return date.getHours();
5159
+ };
5160
+
5185
5161
  /**
5186
5162
  * 获取分钟
5187
5163
  * @date 2022年5月7日
5188
5164
  * @param {Date|string} [date] - 日期对象或日期字符串
5189
5165
  * @returns {number} 分钟数(0-59)
5190
- */
5191
- const getMinute = function (date) {
5192
- if (!date) {
5193
- return new Date().getMinutes();
5194
- }
5195
- if (typeof date === 'string') {
5196
- date = new Date(date);
5197
- }
5198
- return date.getMinutes();
5199
- };
5200
-
5166
+ */
5167
+ var getMinute = function getMinute(date) {
5168
+ if (!date) {
5169
+ return new Date().getMinutes();
5170
+ }
5171
+ if (typeof date === 'string') {
5172
+ date = new Date(date);
5173
+ }
5174
+ return date.getMinutes();
5175
+ };
5176
+
5201
5177
  /**
5202
5178
  * 获取月份
5203
5179
  * @date 2022年5月7日
5204
5180
  * @param {Date|string} [date] - 日期对象或日期字符串
5205
5181
  * @returns {number} 月份数(1-12)
5206
- */
5207
- const getMonth = function (date) {
5208
- if (!date) {
5209
- return new Date().getMonth() + 1;
5210
- }
5211
- if (typeof date === 'string') {
5212
- date = new Date(date);
5213
- }
5214
- return date.getMonth() + 1;
5215
- };
5216
-
5182
+ */
5183
+ var getMonth = function getMonth(date) {
5184
+ if (!date) {
5185
+ return new Date().getMonth() + 1;
5186
+ }
5187
+ if (typeof date === 'string') {
5188
+ date = new Date(date);
5189
+ }
5190
+ return date.getMonth() + 1;
5191
+ };
5192
+
5217
5193
  /**
5218
5194
  * 获取秒
5219
5195
  * @date 2022年5月7日
5220
5196
  * @param {Date|string} [date] - 日期对象或日期字符串
5221
5197
  * @returns {number} 秒数(0-59)
5222
- */
5223
- const getSecond = function (date) {
5224
- if (!date) {
5225
- return new Date().getSeconds();
5226
- }
5227
- if (typeof date === 'string') {
5228
- date = new Date(date);
5229
- }
5230
- return date.getSeconds();
5231
- };
5232
-
5198
+ */
5199
+ var getSecond = function getSecond(date) {
5200
+ if (!date) {
5201
+ return new Date().getSeconds();
5202
+ }
5203
+ if (typeof date === 'string') {
5204
+ date = new Date(date);
5205
+ }
5206
+ return date.getSeconds();
5207
+ };
5208
+
5233
5209
  /**
5234
5210
  * 获取星期几
5235
5211
  * @date 2022年5月7日
5236
5212
  * @param {Date|string} [date] - 日期对象或日期字符串
5237
5213
  * @returns {number} 星期几(0-6,0表示星期日)
5238
- */
5239
- const getWeekday = function (date) {
5240
- if (!date) {
5241
- return new Date().getDay();
5242
- }
5243
- if (typeof date === 'string') {
5244
- date = new Date(date);
5245
- }
5246
- return date.getDay();
5247
- };
5248
-
5249
-
5214
+ */
5215
+ var getWeekday = function getWeekday(date) {
5216
+ if (!date) {
5217
+ return new Date().getDay();
5218
+ }
5219
+ if (typeof date === 'string') {
5220
+ date = new Date(date);
5221
+ }
5222
+ return date.getDay();
5223
+ };
5224
+
5250
5225
  /**
5251
5226
  * @desc 获取上午/下午/晚上
5252
5227
  * @author huangbo
5253
5228
  * @date 2022年5月7日
5254
5229
  * @param {String} [time] - 时间
5255
- **/
5256
- const timeCycle = function (time) {
5257
- let hour = 0;
5258
- if (!time) {
5259
- hour = new Date().getHours();
5260
- } else if (typeof time === 'string') {
5261
- // 从时间字符串中提取小时
5262
- const match = time.match(/^(\d{1,2})/);
5263
- if (match) {
5264
- hour = parseInt(match[1], 10);
5265
- }
5266
- } else if (typeof time === 'number') {
5267
- hour = time;
5268
- }
5269
- // 判断时间段
5270
- if (hour >= 5 && hour < 12) {
5271
- return '上午';
5272
- } else if (hour >= 12 && hour < 18) {
5273
- return '下午';
5274
- } else {
5275
- return '晚上';
5276
- }
5230
+ **/
5231
+ var timeCycle = function timeCycle(time) {
5232
+ var hour = 0;
5233
+ if (!time) {
5234
+ hour = new Date().getHours();
5235
+ } else if (typeof time === 'string') {
5236
+ // 从时间字符串中提取小时
5237
+ var match = time.match(/^(\d{1,2})/);
5238
+ if (match) {
5239
+ hour = parseInt(match[1], 10);
5240
+ }
5241
+ } else if (typeof time === 'number') {
5242
+ hour = time;
5243
+ }
5244
+ // 判断时间段
5245
+ if (hour >= 5 && hour < 12) {
5246
+ return '上午';
5247
+ } else if (hour >= 12 && hour < 18) {
5248
+ return '下午';
5249
+ } else {
5250
+ return '晚上';
5251
+ }
5277
5252
  };
5278
5253
 
5279
5254
  /***/ }),
@@ -6986,20 +6961,20 @@ module.exports = require("eoss/lib/radio-group");
6986
6961
  /***/ }),
6987
6962
  /* 45 */,
6988
6963
  /* 46 */,
6989
- /* 47 */
6964
+ /* 47 */,
6965
+ /* 48 */
6990
6966
  /***/ (function(module, exports) {
6991
6967
 
6992
6968
  module.exports = require("eoss/lib/data-table");
6993
6969
 
6994
6970
  /***/ }),
6995
- /* 48 */,
6996
- /* 49 */
6971
+ /* 49 */,
6972
+ /* 50 */
6997
6973
  /***/ (function(module, exports) {
6998
6974
 
6999
6975
  module.exports = require("eoss/lib/upload");
7000
6976
 
7001
6977
  /***/ }),
7002
- /* 50 */,
7003
6978
  /* 51 */,
7004
6979
  /* 52 */,
7005
6980
  /* 53 */,
@@ -7007,50 +6982,50 @@ module.exports = require("eoss/lib/upload");
7007
6982
  /* 55 */
7008
6983
  /***/ (function(module, exports) {
7009
6984
 
7010
- module.exports = require("eoss/lib/tabs");
6985
+ module.exports = require("sortablejs");
7011
6986
 
7012
6987
  /***/ }),
7013
- /* 56 */
6988
+ /* 56 */,
6989
+ /* 57 */
7014
6990
  /***/ (function(module, exports) {
7015
6991
 
7016
- module.exports = require("sortablejs");
6992
+ module.exports = require("eoss/lib/tabs");
7017
6993
 
7018
6994
  /***/ }),
7019
- /* 57 */
6995
+ /* 58 */
7020
6996
  /***/ (function(module, exports) {
7021
6997
 
7022
6998
  module.exports = require("eoss/lib/dropdown");
7023
6999
 
7024
7000
  /***/ }),
7025
- /* 58 */,
7026
- /* 59 */
7001
+ /* 59 */,
7002
+ /* 60 */
7027
7003
  /***/ (function(module, exports) {
7028
7004
 
7029
7005
  module.exports = require("eoss/lib/tab-pane");
7030
7006
 
7031
7007
  /***/ }),
7032
- /* 60 */,
7033
7008
  /* 61 */,
7034
- /* 62 */
7009
+ /* 62 */,
7010
+ /* 63 */
7035
7011
  /***/ (function(module, exports) {
7036
7012
 
7037
7013
  module.exports = require("eoss/lib/dropdown-menu");
7038
7014
 
7039
7015
  /***/ }),
7040
- /* 63 */
7016
+ /* 64 */
7041
7017
  /***/ (function(module, exports) {
7042
7018
 
7043
7019
  module.exports = require("eoss/lib/dropdown-item");
7044
7020
 
7045
7021
  /***/ }),
7046
- /* 64 */,
7047
- /* 65 */
7022
+ /* 65 */,
7023
+ /* 66 */
7048
7024
  /***/ (function(module, exports) {
7049
7025
 
7050
7026
  module.exports = require("eoss/lib/color-picker");
7051
7027
 
7052
7028
  /***/ }),
7053
- /* 66 */,
7054
7029
  /* 67 */,
7055
7030
  /* 68 */,
7056
7031
  /* 69 */,
@@ -7067,56 +7042,58 @@ module.exports = require("eoss/lib/color-picker");
7067
7042
  /* 80 */,
7068
7043
  /* 81 */,
7069
7044
  /* 82 */,
7070
- /* 83 */
7045
+ /* 83 */,
7046
+ /* 84 */,
7047
+ /* 85 */
7071
7048
  /***/ (function(module, exports) {
7072
7049
 
7073
7050
  module.exports = require("eoss/lib/wujie");
7074
7051
 
7075
7052
  /***/ }),
7076
- /* 84 */,
7077
- /* 85 */
7053
+ /* 86 */,
7054
+ /* 87 */
7078
7055
  /***/ (function(module, exports) {
7079
7056
 
7080
7057
  module.exports = require("eoss/lib/pagination");
7081
7058
 
7082
7059
  /***/ }),
7083
- /* 86 */,
7084
- /* 87 */,
7085
7060
  /* 88 */,
7086
7061
  /* 89 */,
7087
7062
  /* 90 */,
7088
7063
  /* 91 */,
7089
7064
  /* 92 */,
7090
- /* 93 */
7065
+ /* 93 */,
7066
+ /* 94 */,
7067
+ /* 95 */
7091
7068
  /***/ (function(module, exports) {
7092
7069
 
7093
7070
  module.exports = require("eoss/lib/drawer");
7094
7071
 
7095
7072
  /***/ }),
7096
- /* 94 */,
7097
- /* 95 */,
7098
7073
  /* 96 */,
7099
7074
  /* 97 */,
7100
- /* 98 */
7075
+ /* 98 */,
7076
+ /* 99 */,
7077
+ /* 100 */
7101
7078
  /***/ (function(module, exports) {
7102
7079
 
7103
7080
  module.exports = require("eoss/lib/card");
7104
7081
 
7105
7082
  /***/ }),
7106
- /* 99 */,
7107
- /* 100 */
7083
+ /* 101 */,
7084
+ /* 102 */
7108
7085
  /***/ (function(module, exports) {
7109
7086
 
7110
7087
  module.exports = require("eoss/lib/badge");
7111
7088
 
7112
7089
  /***/ }),
7113
- /* 101 */,
7114
- /* 102 */,
7115
7090
  /* 103 */,
7116
7091
  /* 104 */,
7117
7092
  /* 105 */,
7118
7093
  /* 106 */,
7119
- /* 107 */
7094
+ /* 107 */,
7095
+ /* 108 */,
7096
+ /* 109 */
7120
7097
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7121
7098
 
7122
7099
  "use strict";
@@ -7446,36 +7423,21 @@ var component = Object(componentNormalizer["a" /* default */])(
7446
7423
  /* harmony default export */ var tab_pane = __webpack_exports__["a"] = (component.exports);
7447
7424
 
7448
7425
  /***/ }),
7449
- /* 108 */,
7450
- /* 109 */,
7451
7426
  /* 110 */,
7452
7427
  /* 111 */,
7453
7428
  /* 112 */,
7454
7429
  /* 113 */,
7455
- /* 114 */
7430
+ /* 114 */,
7431
+ /* 115 */,
7432
+ /* 116 */
7456
7433
  /***/ (function(module, exports) {
7457
7434
 
7458
7435
  module.exports = require("eoss/lib/menu");
7459
7436
 
7460
7437
  /***/ }),
7461
- /* 115 */,
7462
- /* 116 */,
7463
7438
  /* 117 */,
7464
7439
  /* 118 */,
7465
- /* 119 */,
7466
- /* 120 */,
7467
- /* 121 */,
7468
- /* 122 */,
7469
- /* 123 */
7470
- /***/ (function(module, exports) {
7471
-
7472
- module.exports = require("eoss/lib/popover");
7473
-
7474
- /***/ }),
7475
- /* 124 */,
7476
- /* 125 */,
7477
- /* 126 */,
7478
- /* 127 */
7440
+ /* 119 */
7479
7441
  /***/ (function(module, exports, __webpack_require__) {
7480
7442
 
7481
7443
  "use strict";
@@ -7566,7 +7528,7 @@ function toComment(sourceMap) {
7566
7528
  }
7567
7529
 
7568
7530
  /***/ }),
7569
- /* 128 */
7531
+ /* 120 */
7570
7532
  /***/ (function(module, exports, __webpack_require__) {
7571
7533
 
7572
7534
  /*
@@ -7635,7 +7597,7 @@ var singleton = null;
7635
7597
  var singletonCounter = 0;
7636
7598
  var stylesInsertedAtTop = [];
7637
7599
 
7638
- var fixUrls = __webpack_require__(129);
7600
+ var fixUrls = __webpack_require__(131);
7639
7601
 
7640
7602
  module.exports = function(list, options) {
7641
7603
  if (typeof DEBUG !== "undefined" && DEBUG) {
@@ -7970,7 +7932,22 @@ function updateLink (link, options, obj) {
7970
7932
 
7971
7933
 
7972
7934
  /***/ }),
7973
- /* 129 */
7935
+ /* 121 */,
7936
+ /* 122 */,
7937
+ /* 123 */,
7938
+ /* 124 */,
7939
+ /* 125 */,
7940
+ /* 126 */,
7941
+ /* 127 */
7942
+ /***/ (function(module, exports) {
7943
+
7944
+ module.exports = require("eoss/lib/popover");
7945
+
7946
+ /***/ }),
7947
+ /* 128 */,
7948
+ /* 129 */,
7949
+ /* 130 */,
7950
+ /* 131 */
7974
7951
  /***/ (function(module, exports) {
7975
7952
 
7976
7953
 
@@ -8065,13 +8042,15 @@ module.exports = function (css) {
8065
8042
 
8066
8043
 
8067
8044
  /***/ }),
8068
- /* 130 */,
8069
- /* 131 */,
8070
- /* 132 */
8045
+ /* 132 */,
8046
+ /* 133 */,
8047
+ /* 134 */,
8048
+ /* 135 */,
8049
+ /* 136 */
8071
8050
  /***/ (function(module, exports, __webpack_require__) {
8072
8051
 
8073
8052
 
8074
- var content = __webpack_require__(168);
8053
+ var content = __webpack_require__(175);
8075
8054
 
8076
8055
  if(typeof content === 'string') content = [[module.i, content, '']];
8077
8056
 
@@ -8085,17 +8064,13 @@ var options = {"hmr":true}
8085
8064
  options.transform = transform
8086
8065
  options.insertInto = undefined;
8087
8066
 
8088
- var update = __webpack_require__(128)(content, options);
8067
+ var update = __webpack_require__(120)(content, options);
8089
8068
 
8090
8069
  if(content.locals) module.exports = content.locals;
8091
8070
 
8092
8071
  if(false) {}
8093
8072
 
8094
8073
  /***/ }),
8095
- /* 133 */,
8096
- /* 134 */,
8097
- /* 135 */,
8098
- /* 136 */,
8099
8074
  /* 137 */,
8100
8075
  /* 138 */,
8101
8076
  /* 139 */,
@@ -8104,40 +8079,44 @@ if(false) {}
8104
8079
  /* 142 */,
8105
8080
  /* 143 */,
8106
8081
  /* 144 */,
8107
- /* 145 */
8082
+ /* 145 */,
8083
+ /* 146 */,
8084
+ /* 147 */,
8085
+ /* 148 */,
8086
+ /* 149 */
8108
8087
  /***/ (function(module, exports) {
8109
8088
 
8110
8089
  module.exports = require("eoss/lib/avatar");
8111
8090
 
8112
8091
  /***/ }),
8113
- /* 146 */
8092
+ /* 150 */
8114
8093
  /***/ (function(module, exports) {
8115
8094
 
8116
8095
  module.exports = require("eoss/lib/image");
8117
8096
 
8118
8097
  /***/ }),
8119
- /* 147 */
8098
+ /* 151 */
8120
8099
  /***/ (function(module, exports) {
8121
8100
 
8122
8101
  module.exports = require("eoss/lib/radio-button");
8123
8102
 
8124
8103
  /***/ }),
8125
- /* 148 */
8104
+ /* 152 */
8126
8105
  /***/ (function(module, exports) {
8127
8106
 
8128
8107
  module.exports = require("sockjs-client");
8129
8108
 
8130
8109
  /***/ }),
8131
- /* 149 */
8110
+ /* 153 */
8132
8111
  /***/ (function(module, exports) {
8133
8112
 
8134
8113
  module.exports = require("stompjs");
8135
8114
 
8136
8115
  /***/ }),
8137
- /* 150 */,
8138
- /* 151 */,
8139
- /* 152 */,
8140
- /* 153 */
8116
+ /* 154 */,
8117
+ /* 155 */,
8118
+ /* 156 */,
8119
+ /* 157 */
8141
8120
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8142
8121
 
8143
8122
  "use strict";
@@ -8291,8 +8270,8 @@ render._withStripped = true
8291
8270
 
8292
8271
  // CONCATENATED MODULE: ./packages/main/src/components/user.vue?vue&type=template&id=32ca96cb&
8293
8272
 
8294
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/userinfo.vue?vue&type=template&id=cb6ca2ce&
8295
- var userinfovue_type_template_id_cb6ca2ce_render = function () {
8273
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/userinfo.vue?vue&type=template&id=4a832d3b&
8274
+ var userinfovue_type_template_id_4a832d3b_render = function () {
8296
8275
  var _vm = this
8297
8276
  var _h = _vm.$createElement
8298
8277
  var _c = _vm._self._c || _h
@@ -8315,11 +8294,11 @@ var userinfovue_type_template_id_cb6ca2ce_render = function () {
8315
8294
  2
8316
8295
  )
8317
8296
  }
8318
- var userinfovue_type_template_id_cb6ca2ce_staticRenderFns = []
8319
- userinfovue_type_template_id_cb6ca2ce_render._withStripped = true
8297
+ var userinfovue_type_template_id_4a832d3b_staticRenderFns = []
8298
+ userinfovue_type_template_id_4a832d3b_render._withStripped = true
8320
8299
 
8321
8300
 
8322
- // CONCATENATED MODULE: ./packages/main/src/components/userinfo.vue?vue&type=template&id=cb6ca2ce&
8301
+ // CONCATENATED MODULE: ./packages/main/src/components/userinfo.vue?vue&type=template&id=4a832d3b&
8323
8302
 
8324
8303
  // EXTERNAL MODULE: ./src/config/api.js
8325
8304
  var api = __webpack_require__(6);
@@ -8479,7 +8458,7 @@ var _props;
8479
8458
  password: [this.model.repassword || this.model.oldpassword ? {
8480
8459
  required: true,
8481
8460
  message: '请输入新密码'
8482
- } : {},, {
8461
+ } : {}, {
8483
8462
  pattern: this.checkPassword,
8484
8463
  message: this.checkPasswordMsg ? this.checkPasswordMsg : '密码格式不合法',
8485
8464
  trigger: 'blur'
@@ -8672,8 +8651,8 @@ var componentNormalizer = __webpack_require__(4);
8672
8651
 
8673
8652
  var component = Object(componentNormalizer["a" /* default */])(
8674
8653
  components_userinfovue_type_script_lang_js_,
8675
- userinfovue_type_template_id_cb6ca2ce_render,
8676
- userinfovue_type_template_id_cb6ca2ce_staticRenderFns,
8654
+ userinfovue_type_template_id_4a832d3b_render,
8655
+ userinfovue_type_template_id_4a832d3b_staticRenderFns,
8677
8656
  false,
8678
8657
  null,
8679
8658
  null,
@@ -8687,19 +8666,19 @@ var dialog_ = __webpack_require__(37);
8687
8666
  var dialog_default = /*#__PURE__*/__webpack_require__.n(dialog_);
8688
8667
 
8689
8668
  // EXTERNAL MODULE: external "eoss/lib/dropdown"
8690
- var dropdown_ = __webpack_require__(57);
8669
+ var dropdown_ = __webpack_require__(58);
8691
8670
  var dropdown_default = /*#__PURE__*/__webpack_require__.n(dropdown_);
8692
8671
 
8693
8672
  // EXTERNAL MODULE: external "eoss/lib/dropdown-item"
8694
- var dropdown_item_ = __webpack_require__(63);
8673
+ var dropdown_item_ = __webpack_require__(64);
8695
8674
  var dropdown_item_default = /*#__PURE__*/__webpack_require__.n(dropdown_item_);
8696
8675
 
8697
8676
  // EXTERNAL MODULE: external "eoss/lib/dropdown-menu"
8698
- var dropdown_menu_ = __webpack_require__(62);
8677
+ var dropdown_menu_ = __webpack_require__(63);
8699
8678
  var dropdown_menu_default = /*#__PURE__*/__webpack_require__.n(dropdown_menu_);
8700
8679
 
8701
8680
  // EXTERNAL MODULE: external "eoss/lib/image"
8702
- var image_ = __webpack_require__(146);
8681
+ var image_ = __webpack_require__(150);
8703
8682
  var image_default = /*#__PURE__*/__webpack_require__.n(image_);
8704
8683
 
8705
8684
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/user.vue?vue&type=script&lang=js&
@@ -8798,7 +8777,7 @@ var image_default = /*#__PURE__*/__webpack_require__.n(image_);
8798
8777
  },
8799
8778
  components: {
8800
8779
  avatar: function avatar() {
8801
- return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 154));
8780
+ return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 158));
8802
8781
  },
8803
8782
  userInfo: userinfo,
8804
8783
  EsDialog: dialog_default.a,
@@ -8959,7 +8938,7 @@ var user_component = Object(componentNormalizer["a" /* default */])(
8959
8938
  /* harmony default export */ var user = __webpack_exports__["default"] = (user_component.exports);
8960
8939
 
8961
8940
  /***/ }),
8962
- /* 154 */
8941
+ /* 158 */
8963
8942
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8964
8943
 
8965
8944
  "use strict";
@@ -9093,15 +9072,15 @@ var api = __webpack_require__(6);
9093
9072
  var storage = __webpack_require__(0);
9094
9073
 
9095
9074
  // EXTERNAL MODULE: external "eoss/lib/avatar"
9096
- var avatar_ = __webpack_require__(145);
9075
+ var avatar_ = __webpack_require__(149);
9097
9076
  var avatar_default = /*#__PURE__*/__webpack_require__.n(avatar_);
9098
9077
 
9099
9078
  // EXTERNAL MODULE: external "eoss/lib/popover"
9100
- var popover_ = __webpack_require__(123);
9079
+ var popover_ = __webpack_require__(127);
9101
9080
  var popover_default = /*#__PURE__*/__webpack_require__.n(popover_);
9102
9081
 
9103
9082
  // EXTERNAL MODULE: external "eoss/lib/upload"
9104
- var upload_ = __webpack_require__(49);
9083
+ var upload_ = __webpack_require__(50);
9105
9084
  var upload_default = /*#__PURE__*/__webpack_require__.n(upload_);
9106
9085
 
9107
9086
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/avatar.vue?vue&type=script&lang=js&
@@ -9172,7 +9151,7 @@ var _props;
9172
9151
  },
9173
9152
  components: {
9174
9153
  user: function user() {
9175
- return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 153));
9154
+ return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 157));
9176
9155
  },
9177
9156
  EsAvatar: avatar_default.a,
9178
9157
  EsPopover: popover_default.a,
@@ -9300,10 +9279,6 @@ var component = Object(componentNormalizer["a" /* default */])(
9300
9279
  /* harmony default export */ var avatar = __webpack_exports__["default"] = (component.exports);
9301
9280
 
9302
9281
  /***/ }),
9303
- /* 155 */,
9304
- /* 156 */,
9305
- /* 157 */,
9306
- /* 158 */,
9307
9282
  /* 159 */,
9308
9283
  /* 160 */,
9309
9284
  /* 161 */,
@@ -9312,33 +9287,33 @@ var component = Object(componentNormalizer["a" /* default */])(
9312
9287
  /* 164 */,
9313
9288
  /* 165 */,
9314
9289
  /* 166 */,
9315
- /* 167 */
9290
+ /* 167 */,
9291
+ /* 168 */,
9292
+ /* 169 */,
9293
+ /* 170 */,
9294
+ /* 171 */,
9295
+ /* 172 */,
9296
+ /* 173 */,
9297
+ /* 174 */
9316
9298
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9317
9299
 
9318
9300
  "use strict";
9319
- /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_settings_vue_vue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(132);
9320
- /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_settings_vue_vue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_settings_vue_vue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
9301
+ /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_settings_vue_vue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(136);
9302
+ /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_settings_vue_vue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_settings_vue_vue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
9321
9303
  /* unused harmony reexport * */
9322
9304
 
9323
9305
 
9324
9306
  /***/ }),
9325
- /* 168 */
9307
+ /* 175 */
9326
9308
  /***/ (function(module, exports, __webpack_require__) {
9327
9309
 
9328
- exports = module.exports = __webpack_require__(127)(false);
9310
+ exports = module.exports = __webpack_require__(119)(false);
9329
9311
  // Module
9330
- exports.push([module.i, "\n.es-setting-top-nav-side[data-v-316b1514]::before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n width: 8px;\n top: 10px;\n bottom: 0;\n z-index: 2;\n background-color: rgb(0, 80, 179);\n}\n", ""]);
9312
+ exports.push([module.i, ".es-setting-top-nav-side[data-v-316b1514]::before{content:\"\";display:block;position:absolute;left:0;width:8px;top:10px;bottom:0;z-index:2;background-color:#0050b3}", ""]);
9331
9313
 
9332
9314
 
9333
9315
 
9334
9316
  /***/ }),
9335
- /* 169 */,
9336
- /* 170 */,
9337
- /* 171 */,
9338
- /* 172 */,
9339
- /* 173 */,
9340
- /* 174 */,
9341
- /* 175 */,
9342
9317
  /* 176 */,
9343
9318
  /* 177 */,
9344
9319
  /* 178 */,
@@ -9346,7 +9321,14 @@ exports.push([module.i, "\n.es-setting-top-nav-side[data-v-316b1514]::before {\n
9346
9321
  /* 180 */,
9347
9322
  /* 181 */,
9348
9323
  /* 182 */,
9349
- /* 183 */
9324
+ /* 183 */,
9325
+ /* 184 */,
9326
+ /* 185 */,
9327
+ /* 186 */,
9328
+ /* 187 */,
9329
+ /* 188 */,
9330
+ /* 189 */,
9331
+ /* 190 */
9350
9332
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9351
9333
 
9352
9334
  "use strict";
@@ -10542,7 +10524,7 @@ var external_throttle_debounce_ = __webpack_require__(24);
10542
10524
  var api = __webpack_require__(6);
10543
10525
 
10544
10526
  // EXTERNAL MODULE: external "eoss/lib/badge"
10545
- var badge_ = __webpack_require__(100);
10527
+ var badge_ = __webpack_require__(102);
10546
10528
  var badge_default = /*#__PURE__*/__webpack_require__.n(badge_);
10547
10529
 
10548
10530
  // EXTERNAL MODULE: external "eoss/lib/icon"
@@ -10554,7 +10536,7 @@ var input_ = __webpack_require__(14);
10554
10536
  var input_default = /*#__PURE__*/__webpack_require__.n(input_);
10555
10537
 
10556
10538
  // EXTERNAL MODULE: external "eoss/lib/pagination"
10557
- var pagination_ = __webpack_require__(85);
10539
+ var pagination_ = __webpack_require__(87);
10558
10540
  var pagination_default = /*#__PURE__*/__webpack_require__.n(pagination_);
10559
10541
 
10560
10542
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/apps.vue?vue&type=script&lang=js&
@@ -11678,7 +11660,7 @@ set_menusvue_type_template_id_4b6c614e_render._withStripped = true
11678
11660
  // CONCATENATED MODULE: ./packages/main/src/components/set-menus.vue?vue&type=template&id=4b6c614e&
11679
11661
 
11680
11662
  // EXTERNAL MODULE: external "sortablejs"
11681
- var external_sortablejs_ = __webpack_require__(56);
11663
+ var external_sortablejs_ = __webpack_require__(55);
11682
11664
  var external_sortablejs_default = /*#__PURE__*/__webpack_require__.n(external_sortablejs_);
11683
11665
 
11684
11666
  // EXTERNAL MODULE: external "eoss/lib/button"
@@ -12042,7 +12024,7 @@ var set_menus_component = Object(componentNormalizer["a" /* default */])(
12042
12024
 
12043
12025
  /* harmony default export */ var set_menus = (set_menus_component.exports);
12044
12026
  // EXTERNAL MODULE: ./packages/main/src/components/avatar.vue + 4 modules
12045
- var avatar = __webpack_require__(154);
12027
+ var avatar = __webpack_require__(158);
12046
12028
 
12047
12029
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/ocupertino.vue?vue&type=template&id=1968698c&
12048
12030
  var ocupertinovue_type_template_id_1968698c_render = function () {
@@ -12102,15 +12084,15 @@ ocupertinovue_type_template_id_1968698c_render._withStripped = true
12102
12084
  // CONCATENATED MODULE: ./packages/main/src/components/ocupertino.vue?vue&type=template&id=1968698c&
12103
12085
 
12104
12086
  // EXTERNAL MODULE: external "eoss/lib/dropdown"
12105
- var dropdown_ = __webpack_require__(57);
12087
+ var dropdown_ = __webpack_require__(58);
12106
12088
  var dropdown_default = /*#__PURE__*/__webpack_require__.n(dropdown_);
12107
12089
 
12108
12090
  // EXTERNAL MODULE: external "eoss/lib/dropdown-item"
12109
- var dropdown_item_ = __webpack_require__(63);
12091
+ var dropdown_item_ = __webpack_require__(64);
12110
12092
  var dropdown_item_default = /*#__PURE__*/__webpack_require__.n(dropdown_item_);
12111
12093
 
12112
12094
  // EXTERNAL MODULE: external "eoss/lib/dropdown-menu"
12113
- var dropdown_menu_ = __webpack_require__(62);
12095
+ var dropdown_menu_ = __webpack_require__(63);
12114
12096
  var dropdown_menu_default = /*#__PURE__*/__webpack_require__.n(dropdown_menu_);
12115
12097
 
12116
12098
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/ocupertino.vue?vue&type=script&lang=js&
@@ -12250,7 +12232,7 @@ var clickoutside = __webpack_require__(43);
12250
12232
  // CONCATENATED MODULE: ./packages/main/src/icon.js
12251
12233
  var aiIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAYAAACO98lFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGkmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDIgNzkuYjdjNjRjY2Y5LCAyMDI0LzA3LzE2LTEyOjM5OjA0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjYuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjYtMDQtMTZUMTg6NDk6NTkrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI2LTA0LTE2VDE5OjA0OjM1KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI2LTA0LTE2VDE5OjA0OjM1KzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NGFjNzc2Ny1iZDQzLTQ0MjMtOTVlZS1jNDI1N2IyYWVkMjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MGZjN2IyZjAtNDExMC00YmE2LWIxNzgtMzczODMzZGFmZGIxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MGZjN2IyZjAtNDExMC00YmE2LWIxNzgtMzczODMzZGFmZGIxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZmM3YjJmMC00MTEwLTRiYTYtYjE3OC0zNzM4MzNkYWZkYjEiIHN0RXZ0OndoZW49IjIwMjYtMDQtMTZUMTg6NDk6NTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNi4wIChNYWNpbnRvc2gpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0YjY3YWViYi02ZWM0LTQwNjItYjIwMi1iYjFiMjRhN2Q4Y2IiIHN0RXZ0OndoZW49IjIwMjYtMDQtMTZUMTg6NTM6MjkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNi4wIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NGFjNzc2Ny1iZDQzLTQ0MjMtOTVlZS1jNDI1N2IyYWVkMjQiIHN0RXZ0OndoZW49IjIwMjYtMDQtMTZUMTk6MDQ6MzUrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNi4wIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrX5D74AABiWSURBVHic1Zt/kGVHdd8/p7vv+zVvZnZ2NPtLI+1oPSuhXX6JERAEEk/YUBgKqpxk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';
12252
12234
  // EXTERNAL MODULE: external "eoss/lib/drawer"
12253
- var drawer_ = __webpack_require__(93);
12235
+ var drawer_ = __webpack_require__(95);
12254
12236
  var drawer_default = /*#__PURE__*/__webpack_require__.n(drawer_);
12255
12237
 
12256
12238
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/application.vue?vue&type=script&lang=js&
@@ -13222,7 +13204,7 @@ sub_menuvue_type_template_id_03fedcf9_render._withStripped = true
13222
13204
  // CONCATENATED MODULE: ./packages/main/src/components/sub-menu.vue?vue&type=template&id=03fedcf9&
13223
13205
 
13224
13206
  // EXTERNAL MODULE: external "eoss/lib/menu"
13225
- var menu_ = __webpack_require__(114);
13207
+ var menu_ = __webpack_require__(116);
13226
13208
  var menu_default = /*#__PURE__*/__webpack_require__.n(menu_);
13227
13209
 
13228
13210
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/sub-menu.vue?vue&type=script&lang=js&
@@ -13409,7 +13391,7 @@ var sub_menu_component = Object(componentNormalizer["a" /* default */])(
13409
13391
 
13410
13392
  /* harmony default export */ var sub_menu = (sub_menu_component.exports);
13411
13393
  // EXTERNAL MODULE: ./packages/main/src/components/user.vue + 9 modules
13412
- var user = __webpack_require__(153);
13394
+ var user = __webpack_require__(157);
13413
13395
 
13414
13396
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/message.vue?vue&type=template&id=0f856ca2&
13415
13397
  var messagevue_type_template_id_0f856ca2_render = function () {
@@ -14931,19 +14913,19 @@ var router_page_component = Object(componentNormalizer["a" /* default */])(
14931
14913
 
14932
14914
  /* harmony default export */ var router_page = (router_page_component.exports);
14933
14915
  // EXTERNAL MODULE: external "eoss/lib/wujie"
14934
- var wujie_ = __webpack_require__(83);
14916
+ var wujie_ = __webpack_require__(85);
14935
14917
  var wujie_default = /*#__PURE__*/__webpack_require__.n(wujie_);
14936
14918
 
14937
14919
  // EXTERNAL MODULE: external "eoss/lib/card"
14938
- var card_ = __webpack_require__(98);
14920
+ var card_ = __webpack_require__(100);
14939
14921
  var card_default = /*#__PURE__*/__webpack_require__.n(card_);
14940
14922
 
14941
14923
  // EXTERNAL MODULE: external "eoss/lib/tab-pane"
14942
- var tab_pane_ = __webpack_require__(59);
14924
+ var tab_pane_ = __webpack_require__(60);
14943
14925
  var tab_pane_default = /*#__PURE__*/__webpack_require__.n(tab_pane_);
14944
14926
 
14945
14927
  // EXTERNAL MODULE: external "eoss/lib/tabs"
14946
- var tabs_ = __webpack_require__(55);
14928
+ var tabs_ = __webpack_require__(57);
14947
14929
  var tabs_default = /*#__PURE__*/__webpack_require__.n(tabs_);
14948
14930
 
14949
14931
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/pages.vue?vue&type=script&lang=js&
@@ -15719,11 +15701,11 @@ settingsvue_type_template_id_316b1514_scoped_true_render._withStripped = true
15719
15701
  // CONCATENATED MODULE: ./packages/main/src/public/settings.vue?vue&type=template&id=316b1514&scoped=true&
15720
15702
 
15721
15703
  // EXTERNAL MODULE: external "eoss/lib/color-picker"
15722
- var color_picker_ = __webpack_require__(65);
15704
+ var color_picker_ = __webpack_require__(66);
15723
15705
  var color_picker_default = /*#__PURE__*/__webpack_require__.n(color_picker_);
15724
15706
 
15725
15707
  // EXTERNAL MODULE: external "eoss/lib/radio-button"
15726
- var radio_button_ = __webpack_require__(147);
15708
+ var radio_button_ = __webpack_require__(151);
15727
15709
  var radio_button_default = /*#__PURE__*/__webpack_require__.n(radio_button_);
15728
15710
 
15729
15711
  // EXTERNAL MODULE: external "eoss/lib/radio-group"
@@ -15904,7 +15886,7 @@ var radio_group_default = /*#__PURE__*/__webpack_require__.n(radio_group_);
15904
15886
  // CONCATENATED MODULE: ./packages/main/src/public/settings.vue?vue&type=script&lang=js&
15905
15887
  /* harmony default export */ var public_settingsvue_type_script_lang_js_ = (settingsvue_type_script_lang_js_);
15906
15888
  // EXTERNAL MODULE: ./packages/main/src/public/settings.vue?vue&type=style&index=0&id=316b1514&prod&scoped=true&lang=css&
15907
- var settingsvue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css_ = __webpack_require__(167);
15889
+ var settingsvue_type_style_index_0_id_316b1514_prod_scoped_true_lang_css_ = __webpack_require__(174);
15908
15890
 
15909
15891
  // CONCATENATED MODULE: ./packages/main/src/public/settings.vue
15910
15892
 
@@ -15943,7 +15925,7 @@ onlinevue_type_template_id_722570d0_render._withStripped = true
15943
15925
  // CONCATENATED MODULE: ./packages/main/src/public/online.vue?vue&type=template&id=722570d0&
15944
15926
 
15945
15927
  // EXTERNAL MODULE: external "eoss/lib/data-table"
15946
- var data_table_ = __webpack_require__(47);
15928
+ var data_table_ = __webpack_require__(48);
15947
15929
  var data_table_default = /*#__PURE__*/__webpack_require__.n(data_table_);
15948
15930
 
15949
15931
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/public/online.vue?vue&type=script&lang=js&
@@ -16459,7 +16441,7 @@ searchvue_type_template_id_75674dd5_render._withStripped = true
16459
16441
  // CONCATENATED MODULE: ./packages/main/src/public/search.vue?vue&type=template&id=75674dd5&
16460
16442
 
16461
16443
  // EXTERNAL MODULE: ./packages/tabs/src/tab-pane.vue + 4 modules
16462
- var tab_pane = __webpack_require__(107);
16444
+ var tab_pane = __webpack_require__(109);
16463
16445
 
16464
16446
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/public/search.vue?vue&type=script&lang=js&
16465
16447
  var searchvue_type_script_lang_js_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
@@ -16972,11 +16954,11 @@ var search_component = Object(componentNormalizer["a" /* default */])(
16972
16954
 
16973
16955
  /* harmony default export */ var search = (search_component.exports);
16974
16956
  // EXTERNAL MODULE: external "sockjs-client"
16975
- var external_sockjs_client_ = __webpack_require__(148);
16957
+ var external_sockjs_client_ = __webpack_require__(152);
16976
16958
  var external_sockjs_client_default = /*#__PURE__*/__webpack_require__.n(external_sockjs_client_);
16977
16959
 
16978
16960
  // EXTERNAL MODULE: external "stompjs"
16979
- var external_stompjs_ = __webpack_require__(149);
16961
+ var external_stompjs_ = __webpack_require__(153);
16980
16962
  var external_stompjs_default = /*#__PURE__*/__webpack_require__.n(external_stompjs_);
16981
16963
 
16982
16964
  // CONCATENATED MODULE: ./src/utils/websocket.js