eoss 0.1.0-alpha.24 → 0.1.0-alpha.26

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 (309) 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 +1554 -1437
  83. package/lib/alert.js +2 -2
  84. package/lib/aside.js +2 -2
  85. package/lib/audit-trajectory.js +928 -0
  86. package/lib/autocomplete.js +1506 -1506
  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 +9 -9
  93. package/lib/button.js +2 -2
  94. package/lib/ca-login.js +1290 -1290
  95. package/lib/calendar.js +999 -999
  96. package/lib/card.js +2 -2
  97. package/lib/carousel-item.js +1275 -1275
  98. package/lib/carousel.js +515 -515
  99. package/lib/cascader-panel.js +1302 -1302
  100. package/lib/cascader.js +1561 -1561
  101. package/lib/checkbox-button.js +2 -2
  102. package/lib/checkbox-group.js +1694 -1610
  103. package/lib/checkbox.js +9 -42
  104. package/lib/col.js +2 -2
  105. package/lib/collapse-item.js +1117 -1054
  106. package/lib/collapse.js +1122 -1054
  107. package/lib/color-picker.js +11 -11
  108. package/lib/config/api.js +80 -1
  109. package/lib/container.js +2 -2
  110. package/lib/cron.js +2 -2
  111. package/lib/data-table.js +1446 -1319
  112. package/lib/date-picker.js +1515 -1515
  113. package/lib/dialog.js +1796 -1794
  114. package/lib/divider.js +2 -2
  115. package/lib/drawer.js +4 -4
  116. package/lib/dropdown-item.js +4 -4
  117. package/lib/dropdown-menu.js +6 -6
  118. package/lib/dropdown.js +1477 -1477
  119. package/lib/email-login.js +1544 -1427
  120. package/lib/empty.js +2 -2
  121. package/lib/eoss.common.js +52567 -41727
  122. package/lib/flip.js +2 -2
  123. package/lib/flow-group.js +1278 -1278
  124. package/lib/flow.js +1716 -1599
  125. package/lib/flows.js +1561 -1444
  126. package/lib/footer.js +2 -2
  127. package/lib/form-item.js +1285 -1285
  128. package/lib/form.js +1144 -1067
  129. package/lib/guide.js +620 -0
  130. package/lib/header.js +2 -2
  131. package/lib/icon.js +1505 -1388
  132. package/lib/icons.js +2 -2
  133. package/lib/image-viewer.js +1376 -1376
  134. package/lib/image.js +73 -73
  135. package/lib/index.js +1 -1
  136. package/lib/infinite-scroll.js +71 -71
  137. package/lib/input-number.js +6 -6
  138. package/lib/input.js +1284 -1284
  139. package/lib/link.js +2 -2
  140. package/lib/loading.js +5 -5
  141. package/lib/login.js +1749 -1619
  142. package/lib/lowcode.js +12381 -5094
  143. package/lib/main.js +4049 -3653
  144. package/lib/marquee.js +1279 -1279
  145. package/lib/menu-item-group.js +2 -2
  146. package/lib/menu-item.js +2 -2
  147. package/lib/menu.js +1796 -1796
  148. package/lib/message-box.js +2993 -2993
  149. package/lib/message.js +1389 -1389
  150. package/lib/notification.js +1487 -1487
  151. package/lib/option-group.js +2 -2
  152. package/lib/option.js +1392 -1392
  153. package/lib/page-header.js +2 -2
  154. package/lib/pagination.js +1301 -1301
  155. package/lib/phone-login.js +1529 -1412
  156. package/lib/popconfirm.js +6 -6
  157. package/lib/popover.js +1425 -1425
  158. package/lib/process-config.js +7674 -0
  159. package/lib/process-module.js +7080 -0
  160. package/lib/process-rule.js +8246 -0
  161. package/lib/progress.js +5 -5
  162. package/lib/qr-code.js +7 -7
  163. package/lib/qrcode-login.js +1609 -1492
  164. package/lib/radio-button.js +10 -21
  165. package/lib/radio-group.js +1714 -1626
  166. package/lib/radio.js +10 -25
  167. package/lib/rate.js +1387 -1387
  168. package/lib/row.js +2 -2
  169. package/lib/scrollbar.js +1374 -1374
  170. package/lib/select.js +2376 -2257
  171. package/lib/selector-panel.js +1706 -1651
  172. package/lib/selector.js +1241 -1134
  173. package/lib/slider.js +2 -2
  174. package/lib/step.js +1119 -1051
  175. package/lib/steps.js +1276 -1276
  176. package/lib/submenu.js +530 -530
  177. package/lib/switch.js +1277 -1277
  178. package/lib/tab-pane.js +2 -2
  179. package/lib/table-column.js +1278 -1278
  180. package/lib/table.js +1953 -1836
  181. package/lib/tabs.js +1283 -1283
  182. package/lib/tag.js +2 -2
  183. package/lib/theme-chalk/audit-trajectory.css +0 -0
  184. package/lib/theme-chalk/base.css +1 -1
  185. package/lib/theme-chalk/button-group.css +1 -1
  186. package/lib/theme-chalk/calendar.css +1 -1
  187. package/lib/theme-chalk/guide.css +1 -0
  188. package/lib/theme-chalk/icon.css +1 -1
  189. package/lib/theme-chalk/icons.css +1 -1
  190. package/lib/theme-chalk/index.css +1 -1
  191. package/lib/theme-chalk/lowcode-view.css +1 -0
  192. package/lib/theme-chalk/lowcode.css +1 -1
  193. package/lib/theme-chalk/main.css +1 -1
  194. package/lib/theme-chalk/pagination.css +1 -1
  195. package/lib/theme-chalk/process-config.css +0 -0
  196. package/lib/theme-chalk/process-module.css +0 -0
  197. package/lib/theme-chalk/process-rule.css +1 -0
  198. package/lib/theme-chalk/select-dropdown.css +1 -1
  199. package/lib/theme-chalk/select.css +1 -1
  200. package/lib/theme-chalk/tree.css +1 -1
  201. package/lib/theme-chalk/update-history.css +0 -0
  202. package/lib/theme-chalk/wujie.css +1 -0
  203. package/lib/time-picker.js +1302 -1302
  204. package/lib/time-select.js +1298 -1298
  205. package/lib/timeline-item.js +2 -2
  206. package/lib/timeline.js +2 -2
  207. package/lib/tips.js +1613 -1496
  208. package/lib/toolbar.js +6 -6
  209. package/lib/tooltip.js +1363 -1363
  210. package/lib/transfer.js +1293 -1293
  211. package/lib/tree-group.js +1505 -1388
  212. package/lib/tree.js +1637 -1520
  213. package/lib/update-history.js +883 -0
  214. package/lib/upload.js +1689 -1572
  215. package/lib/utils/ajax.js +3 -5
  216. package/lib/utils/frame.js +133 -0
  217. package/lib/wujie.js +5037 -0
  218. package/package.json +3 -2
  219. package/packages/audit-trajectory/index.js +5 -0
  220. package/packages/audit-trajectory/src/main.vue +99 -0
  221. package/packages/button/src/button-group.vue +1 -1
  222. package/packages/cascader/src/cascader.vue +1 -1
  223. package/packages/checkbox/src/checkbox.vue +9 -14
  224. package/packages/data-table/src/data-table.vue +13 -4
  225. package/packages/date-picker/src/picker.vue +1 -1
  226. package/packages/dialog/src/dialog.vue +2 -0
  227. package/packages/form/src/form-item-render.vue +14 -6
  228. package/packages/form/src/form.vue +2 -2
  229. package/packages/guide/index.js +8 -0
  230. package/packages/guide/src/directive.js +47 -0
  231. package/packages/guide/src/guide.vue +89 -0
  232. package/packages/guide/src/manager.js +133 -0
  233. package/packages/input/src/input.vue +1 -1
  234. package/packages/login/src/login.vue +47 -46
  235. package/packages/lowcode/src/aside.vue +43 -8
  236. package/packages/lowcode/src/attribute/bind.vue +447 -236
  237. package/packages/lowcode/src/attribute/dependency.vue +474 -267
  238. package/packages/lowcode/src/attribute/function.vue +389 -51
  239. package/packages/lowcode/src/attribute/javascript.vue +311 -0
  240. package/packages/lowcode/src/attribute/property.vue +257 -166
  241. package/packages/lowcode/src/attribute/styles.vue +116 -15
  242. package/packages/lowcode/src/attribute.vue +654 -46
  243. package/packages/lowcode/src/canvas.vue +361 -60
  244. package/packages/lowcode/src/editor.vue +15 -2
  245. package/packages/lowcode/src/iframe.vue +60 -0
  246. package/packages/lowcode/src/lowcode.vue +233 -21
  247. package/packages/lowcode/src/mixins/history.js +132 -0
  248. package/packages/lowcode/src/pages.vue +1 -53
  249. package/packages/lowcode/src/render.vue +381 -56
  250. package/packages/lowcode/src/source.vue +12 -5
  251. package/packages/lowcode/src/toolbar.vue +43 -20
  252. package/packages/lowcode/src/util/source-generator.js +531 -0
  253. package/packages/lowcode/src/{source-parser.js → util/source-parser.js} +86 -32
  254. package/packages/lowcode-view/index.js +5 -0
  255. package/packages/lowcode-view/src/Iframe.vue +55 -0
  256. package/packages/lowcode-view/src/Modulels.vue +239 -0
  257. package/packages/lowcode-view/src/render.vue +337 -0
  258. package/packages/lowcode-view/src/view.vue +763 -0
  259. package/packages/main/src/components/pages.vue +11 -2
  260. package/packages/main/src/event-center.js +160 -0
  261. package/packages/main/src/minxs.js +60 -90
  262. package/packages/process-config/index.js +5 -0
  263. package/packages/process-config/src/FormList.vue +180 -0
  264. package/packages/process-config/src/NodeConfig.vue +212 -0
  265. package/packages/process-config/src/NodeForm.vue +237 -0
  266. package/packages/process-config/src/main.vue +257 -0
  267. package/packages/process-module/index.js +5 -0
  268. package/packages/process-module/src/FormList.vue +177 -0
  269. package/packages/process-module/src/main.vue +233 -0
  270. package/packages/process-rule/index.js +5 -0
  271. package/packages/process-rule/src/FormList.vue +614 -0
  272. package/packages/process-rule/src/companyReportDetail.vue +92 -0
  273. package/packages/process-rule/src/main.vue +749 -0
  274. package/packages/progress/src/progress.vue +1 -1
  275. package/packages/radio/src/radio-button.vue +12 -9
  276. package/packages/radio/src/radio-group.vue +10 -14
  277. package/packages/radio/src/radio.vue +12 -11
  278. package/packages/select/src/option-tree.vue +4 -4
  279. package/packages/select/src/option.vue +2 -2
  280. package/packages/select/src/select.vue +34 -37
  281. package/packages/selector/src/selector.vue +10 -12
  282. package/packages/theme-chalk/src/audit-trajectory.scss +0 -0
  283. package/packages/theme-chalk/src/button-group.scss +7 -0
  284. package/packages/theme-chalk/src/common/var.scss +34 -10
  285. package/packages/theme-chalk/src/guide.scss +93 -0
  286. package/packages/theme-chalk/src/icon.scss +425 -426
  287. package/packages/theme-chalk/src/icons.scss +1 -1
  288. package/packages/theme-chalk/src/index.scss +7 -0
  289. package/packages/theme-chalk/src/lowcode-view.scss +288 -0
  290. package/packages/theme-chalk/src/lowcode.scss +59 -2
  291. package/packages/theme-chalk/src/process-config.scss +0 -0
  292. package/packages/theme-chalk/src/process-module.scss +0 -0
  293. package/packages/theme-chalk/src/process-rule.scss +57 -0
  294. package/packages/theme-chalk/src/select-dropdown.scss +1 -1
  295. package/packages/theme-chalk/src/tree.scss +1 -0
  296. package/packages/theme-chalk/src/update-history.scss +0 -0
  297. package/packages/theme-chalk/src/wujie.scss +5 -0
  298. package/packages/update-history/index.js +5 -0
  299. package/packages/update-history/src/main.vue +54 -0
  300. package/packages/wujie/index.js +10 -0
  301. package/packages/wujie/src/wujie.vue +205 -0
  302. package/src/components/field-render.vue +5 -0
  303. package/src/config/api.js +80 -0
  304. package/src/index.js +23 -2
  305. package/src/utils/ajax.js +2 -2
  306. package/src/utils/frame.js +102 -0
  307. package/packages/lowcode/src/source-generator.js +0 -316
  308. /package/packages/lowcode/src/{json-repair.js → util/json-repair.js} +0 -0
  309. /package/packages/lowcode/src/{monaco-vue-completions.js → util/monaco-vue-completions.js} +0 -0
package/lib/dropdown.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 = 198);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 212);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -91,32 +91,32 @@ module.exports =
91
91
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
92
92
 
93
93
  "use strict";
94
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return noop; });
95
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return hasOwn; });
96
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "W", function() { return toObject; });
97
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return getValueByPath; });
98
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return getPropByPath; });
94
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return noop; });
95
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return hasOwn; });
96
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V", function() { return toObject; });
97
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return getValueByPath; });
98
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return getPropByPath; });
99
99
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return generateId; });
100
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ab", function() { return valueEquals; });
100
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Z", function() { return valueEquals; });
101
101
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return escapeRegexpString; });
102
102
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return arrayFindIndex; });
103
103
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return arrayFind; });
104
104
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return coerceTruthyValueToArray; });
105
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return isIE; });
106
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return isEdge; });
107
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return isFirefox; });
105
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return isIE; });
106
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return isEdge; });
107
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return isFirefox; });
108
108
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return autoprefixer; });
109
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return kebabCase; });
109
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return kebabCase; });
110
110
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return capitalize; });
111
111
  /* unused harmony export looseEqual */
112
112
  /* unused harmony export arrayEquals */
113
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return isEqual; });
114
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "O", function() { return rafThrottle; });
113
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return isEqual; });
114
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return rafThrottle; });
115
115
  /* unused harmony export objToArray */
116
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Q", function() { return requestAnimationFrame; });
116
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "P", function() { return requestAnimationFrame; });
117
117
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return cancelAnimationFrame; });
118
118
  /* unused harmony export debounce */
119
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "T", function() { return throttle; });
119
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return throttle; });
120
120
  /* unused harmony export guid */
121
121
  /* unused harmony export uid */
122
122
  /* unused harmony export get */
@@ -124,7 +124,7 @@ module.exports =
124
124
  /* unused harmony export cloneDeep */
125
125
  /* unused harmony export grouping */
126
126
  /* unused harmony export pager */
127
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return getWinTop; });
127
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return getWinTop; });
128
128
  /* unused harmony export getFileType */
129
129
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrUnique; });
130
130
  /* unused harmony export average */
@@ -142,60 +142,60 @@ module.exports =
142
142
  /* unused harmony export exportXls */
143
143
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return extend; });
144
144
  /* unused harmony export getObjectType */
145
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return getParams; });
145
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return getParams; });
146
146
  /* unused harmony export getScript */
147
147
  /* unused harmony export getStyle */
148
148
  /* unused harmony export getTypeName */
149
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return getTypePrefix; });
149
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return getTypePrefix; });
150
150
  /* unused harmony export getValues */
151
151
  /* unused harmony export getZoom */
152
152
  /* unused harmony export getLength */
153
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return timestampUrl; });
153
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "T", function() { return timestampUrl; });
154
154
  /* unused harmony export hasChars */
155
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return identical; });
156
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return indexOfObj; });
157
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return isEmpty; });
158
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return isExist; });
155
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return identical; });
156
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return indexOfObj; });
157
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return isEmpty; });
158
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return isExist; });
159
159
  /* unused harmony export isFunction */
160
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return isObjectEqual; });
161
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return joinUrl; });
162
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return getHorizontalMargin; });
163
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return layoutWaterfall; });
160
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return isObjectEqual; });
161
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return joinUrl; });
162
+ /* unused harmony export getHorizontalMargin */
163
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return layoutWaterfall; });
164
164
  /* unused harmony export loadJs */
165
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return loading; });
165
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return loading; });
166
166
  /* unused harmony export lowerCase */
167
167
  /* unused harmony export overbrim */
168
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return queryParams; });
168
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return queryParams; });
169
169
  /* unused harmony export receiveMessage */
170
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "P", function() { return renderIcon; });
170
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "O", function() { return renderIcon; });
171
171
  /* unused harmony export replenish */
172
172
  /* unused harmony export rmbToCapital */
173
173
  /* unused harmony export setScale */
174
174
  /* unused harmony export sendMessage */
175
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "R", function() { return setFavicon; });
175
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Q", function() { return setFavicon; });
176
176
  /* unused harmony export sum */
177
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return startWith; });
177
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "R", function() { return startWith; });
178
178
  /* unused harmony export takeLeft */
179
179
  /* unused harmony export takeRight */
180
180
  /* unused harmony export trimWhitespace */
181
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "V", function() { return toFixed; });
181
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return toFixed; });
182
182
  /* unused harmony export toFunction */
183
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "X", function() { return updateTheme; });
183
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "W", function() { return updateTheme; });
184
184
  /* unused harmony export upperType */
185
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Y", function() { return urlJoinParams; });
186
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Z", function() { return uuid; });
187
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cb", function() { return watermark; });
185
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "X", function() { return urlJoinParams; });
186
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Y", function() { return uuid; });
187
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bb", function() { return watermark; });
188
188
  /* unused harmony export winTopOpen */
189
189
  /* unused harmony export confirm */
190
190
  /* unused harmony export success */
191
191
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return error; });
192
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bb", function() { return warning; });
192
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ab", function() { return warning; });
193
193
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
194
194
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
195
195
  /* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
196
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
197
- /* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
198
- /* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);
196
+ /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
197
+ /* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);
198
+ /* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);
199
199
  var _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; };
200
200
 
201
201
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
@@ -205,9 +205,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
205
205
 
206
206
 
207
207
 
208
- var _get = __webpack_require__(20);
209
- var _set = __webpack_require__(21);
210
- var _cloneDeep = __webpack_require__(22);
208
+ var _get = __webpack_require__(19);
209
+ var _set = __webpack_require__(20);
210
+ var _cloneDeep = __webpack_require__(21);
211
211
  var hasOwnProperty = Object.prototype.hasOwnProperty;
212
212
 
213
213
  // 导入date中的formatDate函数
@@ -2172,7 +2172,7 @@ var loadJs = function loadJs(url, callback) {
2172
2172
  var loading = function loading() {
2173
2173
  var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '请求中...';
2174
2174
 
2175
- var Loading = __webpack_require__(18).default;
2175
+ var Loading = __webpack_require__(17).default;
2176
2176
  return Loading.service({
2177
2177
  text: text,
2178
2178
  spinner: 'es-icon-jiazai',
@@ -3040,988 +3040,236 @@ var warning = function warning(content, _callback3) {
3040
3040
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3041
3041
 
3042
3042
  "use strict";
3043
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return fecha; });
3044
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return getSettings; });
3045
- /* unused harmony export toDate */
3046
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return isDate; });
3047
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return isDateObject; });
3048
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return formatDate; });
3049
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return parseDate; });
3050
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getDayCountOfMonth; });
3051
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getDayCountOfYear; });
3052
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return getFirstDayOfMonth; });
3053
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return prevDate; });
3054
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return nextDate; });
3055
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return getStartDateOfMonth; });
3056
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return getWeekNumber; });
3057
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return getRangeHours; });
3058
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return getPrevMonthLastDays; });
3059
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return getMonthDays; });
3060
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return getRangeMinutes; });
3061
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return range; });
3062
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return modifyDate; });
3063
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return modifyTime; });
3064
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return modifyWithTimeString; });
3065
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return clearTime; });
3066
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return clearMilliseconds; });
3067
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return limitTimeRange; });
3068
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return timeWithinRange; });
3069
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return changeYearMonthAndClampDate; });
3070
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return prevMonth; });
3071
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return nextMonth; });
3072
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return prevYear; });
3073
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return nextYear; });
3074
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return extractDateFormat; });
3075
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return extractTimeFormat; });
3076
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return validateRangeInOneMonth; });
3077
- /* unused harmony export calculateNetworkDays */
3078
- /* unused harmony export dateAddDays */
3079
- /* unused harmony export dateDiff */
3080
- /* unused harmony export dayOfMonth */
3081
- /* unused harmony export getCurrentDate */
3082
- /* unused harmony export getCurrentDateTime */
3083
- /* unused harmony export getHour */
3084
- /* unused harmony export getMinute */
3085
- /* unused harmony export getMonth */
3086
- /* unused harmony export getSecond */
3087
- /* unused harmony export getWeekday */
3088
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return timeCycle; });
3089
- /* Modified from https://github.com/taylorhakes/fecha
3090
- *
3091
- * The MIT License (MIT)
3092
- *
3093
- * Copyright (c) 2015 Taylor Hakes
3094
- *
3095
- * Permission is hereby granted, free of charge, to any person obtaining a copy
3096
- * of this software and associated documentation files (the "Software"), to deal
3097
- * in the Software without restriction, including without limitation the rights
3098
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3099
- * copies of the Software, and to permit persons to whom the Software is
3100
- * furnished to do so, subject to the following conditions:
3101
- *
3102
- * The above copyright notice and this permission notice shall be included in all
3103
- * copies or substantial portions of the Software.
3104
- *
3105
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3106
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3107
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3108
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3109
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3110
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3111
- * SOFTWARE.
3112
- */
3113
-
3114
- /*eslint-disable*/
3115
- // 把 YYYY-MM-DD 改成了 yyyy-MM-dd
3116
-
3117
-
3118
- /**
3119
- * Parse or format dates
3120
- * @class fecha
3121
- */
3122
- const fecha = {};
3123
- const token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
3124
- const twoDigits = '\\d\\d?';
3125
- const threeDigits = '\\d{3}';
3126
- const fourDigits = '\\d{4}';
3127
- const word = '[^\\s]+';
3128
- const literal = /\[([^]*?)\]/gm;
3129
- const noop = function () {};
3130
-
3131
- function regexEscape(str) {
3132
- return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
3133
- }
3134
-
3135
- function shorten(arr, sLen) {
3136
- const newArr = [];
3137
- for (let i = 0, len = arr.length; i < len; i++) {
3138
- newArr.push(arr[i].substr(0, sLen));
3139
- }
3140
- return newArr;
3141
- }
3142
-
3143
- function monthUpdate() {
3144
- return function (d, v) {
3145
- const index = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'].indexOf(v.toLowerCase());
3146
- if (~index) {
3147
- d.month = index;
3148
- }
3149
- };
3150
- }
3151
-
3152
- function pad(val, len) {
3153
- val = String(val);
3154
- len = len || 2;
3155
- while (val.length < len) {
3156
- val = '0' + val;
3157
- }
3158
- return val;
3159
- }
3160
-
3161
- // 直接使用中文日期名称常量
3162
- const dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
3163
- const monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
3164
- const monthNamesShort = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
3165
- const dayNamesShort = ['日', '一', '二', '三', '四', '五', '六'];
3166
- const amPm = ['上午', '下午'];
3167
- const DoFn = function DoFn(D) {
3168
- return D + '日';
3169
- };
3170
-
3171
- const formatFlags = {
3172
- D: function(dateObj) {
3173
- return dateObj.getDay();
3174
- },
3175
- DD: function(dateObj) {
3176
- return pad(dateObj.getDay());
3177
- },
3178
- Do: function(dateObj) {
3179
- return DoFn(dateObj.getDate());
3180
- },
3181
- d: function(dateObj) {
3182
- return dateObj.getDate();
3183
- },
3184
- dd: function(dateObj) {
3185
- return pad(dateObj.getDate());
3186
- },
3187
- ddd: function(dateObj) {
3188
- return dayNamesShort[dateObj.getDay()];
3189
- },
3190
- dddd: function(dateObj) {
3191
- return dayNames[dateObj.getDay()];
3192
- },
3193
- M: function(dateObj) {
3194
- return dateObj.getMonth() + 1;
3195
- },
3196
- MM: function(dateObj) {
3197
- return pad(dateObj.getMonth() + 1);
3198
- },
3199
- MMM: function(dateObj) {
3200
- return monthNamesShort[dateObj.getMonth()];
3201
- },
3202
- MMMM: function(dateObj) {
3203
- return monthNames[dateObj.getMonth()];
3204
- },
3205
- yy: function(dateObj) {
3206
- return pad(String(dateObj.getFullYear()), 4).substr(2);
3207
- },
3208
- yyyy: function(dateObj) {
3209
- return pad(dateObj.getFullYear(), 4);
3210
- },
3211
- h: function(dateObj) {
3212
- return dateObj.getHours() % 12 || 12;
3213
- },
3214
- hh: function(dateObj) {
3215
- return pad(dateObj.getHours() % 12 || 12);
3216
- },
3217
- H: function(dateObj) {
3218
- return dateObj.getHours();
3219
- },
3220
- HH: function(dateObj) {
3221
- return pad(dateObj.getHours());
3222
- },
3223
- m: function(dateObj) {
3224
- return dateObj.getMinutes();
3225
- },
3226
- mm: function(dateObj) {
3227
- return pad(dateObj.getMinutes());
3228
- },
3229
- s: function(dateObj) {
3230
- return dateObj.getSeconds();
3231
- },
3232
- ss: function(dateObj) {
3233
- return pad(dateObj.getSeconds());
3234
- },
3235
- S: function(dateObj) {
3236
- return Math.round(dateObj.getMilliseconds() / 100);
3237
- },
3238
- SS: function(dateObj) {
3239
- return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
3240
- },
3241
- SSS: function(dateObj) {
3242
- return pad(dateObj.getMilliseconds(), 3);
3243
- },
3244
- a: function(dateObj) {
3245
- return dateObj.getHours() < 12 ? '上午' : '下午';
3246
- },
3247
- A: function(dateObj) {
3248
- return dateObj.getHours() < 12 ? '上午' : '下午';
3249
- },
3250
- ZZ: function(dateObj) {
3251
- const o = dateObj.getTimezoneOffset();
3252
- return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
3253
- }
3254
- };
3255
-
3256
- const parseFlags = {
3257
- d: [twoDigits, function (d, v) {
3258
- d.day = v;
3259
- }],
3260
- Do: [twoDigits + word, function (d, v) {
3261
- d.day = parseInt(v, 10);
3262
- }],
3263
- M: [twoDigits, function (d, v) {
3264
- d.month = v - 1;
3265
- }],
3266
- yy: [twoDigits, function (d, v) {
3267
- const da = new Date(), cent = +('' + da.getFullYear()).substr(0, 2);
3268
- d.year = '' + (v > 68 ? cent - 1 : cent) + v;
3269
- }],
3270
- h: [twoDigits, function (d, v) {
3271
- d.hour = v;
3272
- }],
3273
- m: [twoDigits, function (d, v) {
3274
- d.minute = v;
3275
- }],
3276
- s: [twoDigits, function (d, v) {
3277
- d.second = v;
3278
- }],
3279
- yyyy: [fourDigits, function (d, v) {
3280
- d.year = v;
3281
- }],
3282
- S: ['\\d', function (d, v) {
3283
- d.millisecond = v * 100;
3284
- }],
3285
- SS: ['\\d{2}', function (d, v) {
3286
- d.millisecond = v * 10;
3287
- }],
3288
- SSS: [threeDigits, function (d, v) {
3289
- d.millisecond = v;
3290
- }],
3291
- D: [twoDigits, noop],
3292
- ddd: [word, noop],
3293
- MMM: [word, monthUpdate('monthNamesShort')],
3294
- MMMM: [word, monthUpdate('monthNames')],
3295
- a: [word, function (d, v) {
3296
- const val = v.toLowerCase();
3297
- if (val === '上午') {
3298
- d.isPm = false;
3299
- } else if (val === '下午') {
3300
- d.isPm = true;
3301
- }
3302
- }],
3303
- ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
3304
- let parts = (v + '').match(/([+-]|\d\d)/gi), minutes;
3305
-
3306
- if (parts) {
3307
- minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
3308
- d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
3309
- }
3310
- }]
3311
- };
3312
- parseFlags.dd = parseFlags.d;
3313
- parseFlags.dddd = parseFlags.ddd;
3314
- parseFlags.DD = parseFlags.D;
3315
- parseFlags.mm = parseFlags.m;
3316
- parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
3317
- parseFlags.MM = parseFlags.M;
3318
- parseFlags.ss = parseFlags.s;
3319
- parseFlags.A = parseFlags.a;
3320
-
3321
-
3322
- // Some common format strings
3323
- fecha.masks = {
3324
- default: 'ddd MMM dd yyyy HH:mm:ss',
3325
- shortDate: 'M/D/yy',
3326
- mediumDate: 'MMM d, yyyy',
3327
- longDate: 'MMMM d, yyyy',
3328
- fullDate: 'dddd, MMMM d, yyyy',
3329
- shortTime: 'HH:mm',
3330
- mediumTime: 'HH:mm:ss',
3331
- longTime: 'HH:mm:ss.SSS'
3332
- };
3333
-
3334
- /***
3335
- * Format a date
3336
- * @method format
3337
- * @param {Date|number} dateObj
3338
- * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
3339
- */
3340
- fecha.format = function (dateObj, mask) {
3341
- if (typeof dateObj === 'number') {
3342
- dateObj = new Date(dateObj);
3343
- }
3344
-
3345
- if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
3346
- throw new Error('Invalid Date in fecha.format');
3347
- }
3348
-
3349
- mask = fecha.masks[mask] || mask || fecha.masks['default'];
3350
-
3351
- const literals = [];
3352
-
3353
- // Make literals inactive by replacing them with ??
3354
- mask = mask.replace(literal, function($0, $1) {
3355
- literals.push($1);
3356
- return '@@@';
3357
- });
3358
- // Apply formatting rules
3359
- mask = mask.replace(token, function ($0) {
3360
- return $0 in formatFlags ? formatFlags[$0](dateObj) : $0.slice(1, $0.length - 1);
3361
- });
3362
- // Inline literal values back into the formatted value
3363
- return mask.replace(/@@@/g, function() {
3364
- return literals.shift();
3365
- });
3366
- };
3367
-
3368
- /**
3369
- * Parse a date string into an object, changes - into /
3370
- * @method parse
3371
- * @param {string} dateStr Date string
3372
- * @param {string} format Date parse format
3373
- * @returns {Date|boolean}
3374
- */
3375
- fecha.parse = function (dateStr, format) {
3376
- if (typeof format !== 'string') {
3377
- throw new Error('Invalid format in fecha.parse');
3378
- }
3379
-
3380
- format = fecha.masks[format] || format;
3381
-
3382
- // Avoid regular expression denial of service, fail early for really long strings
3383
- // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
3384
- if (dateStr.length > 1000) {
3385
- return null;
3386
- }
3387
-
3388
- const dateInfo = {};
3389
- const parseInfo = [];
3390
- const literals = [];
3391
- format = format.replace(literal, function($0, $1) {
3392
- literals.push($1);
3393
- return '@@@';
3394
- });
3395
- let newFormat = regexEscape(format).replace(token, function ($0) {
3396
- if (parseFlags[$0]) {
3397
- const info = parseFlags[$0];
3398
- parseInfo.push(info[1]);
3399
- return '(' + info[0] + ')';
3400
- }
3401
-
3402
- return $0;
3403
- });
3404
- newFormat = newFormat.replace(/@@@/g, function() {
3405
- return literals.shift();
3406
- });
3407
- const matches = dateStr.match(new RegExp(newFormat, 'i'));
3408
- if (!matches) {
3409
- return null;
3410
- }
3411
-
3412
- for (let i = 1; i < matches.length; i++) {
3413
- parseInfo[i - 1](dateInfo, matches[i]);
3414
- }
3415
-
3416
- const today = new Date();
3417
- if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
3418
- dateInfo.hour = +dateInfo.hour + 12;
3419
- } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
3420
- dateInfo.hour = 0;
3421
- }
3422
-
3423
- let date;
3424
- if (dateInfo.timezoneOffset != null) {
3425
- dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
3426
- date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
3427
- dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
3428
- } else {
3429
- date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
3430
- dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
3431
- }
3432
- return date;
3433
- };
3434
-
3435
- // 导出fecha对象
3436
-
3437
-
3438
- // 以下是从date-util.js合并的函数
3439
- const newArray = function(start, end) {
3440
- let result = [];
3441
- for (let i = start; i <= end; i++) {
3442
- result.push(i);
3443
- }
3444
- return result;
3445
- };
3446
-
3447
- const getSettings = () => {
3448
- return {
3449
- dayNamesShort: ['日', '一', '二', '三', '四', '五', '六'],
3450
- dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
3451
- monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
3452
- monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
3453
- amPm: ['上午', '下午']
3454
- };
3455
- };
3456
-
3457
- const toDate = function(date) {
3458
- return isDate(date) ? new Date(date) : null;
3459
- };
3460
-
3461
- const isDate = function(date) {
3462
- if (date === null || date === undefined) return false;
3463
- if (isNaN(new Date(date).getTime())) return false;
3464
- if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
3465
- return true;
3466
- };
3467
-
3468
- const isDateObject = function(val) {
3469
- return val instanceof Date;
3470
- };
3471
-
3472
- const formatDate = function (date, format = 'yyyy-MM-dd') {
3473
- // 处理多种输入类型
3474
- if (!date) return '';
3475
-
3476
- // 如果是时间戳,转成日期对象
3477
- if (typeof date === 'number') {
3478
- date = new Date(date);
3479
- }
3480
- // 如果是字符串,转成日期对象
3481
- if (typeof date === 'string') {
3482
- date = new Date(date);
3483
- }
3484
-
3485
- // 调用toDate进一步验证和转换
3486
- date = toDate(date);
3487
- if (!date) return '';
3488
-
3489
- // 兼容大写和小写的格式标记
3490
- // 将大写的YYYY/MM/DD/HH/mm/ss转换为小写的yyyy/mm/dd/hh/mm/ss
3491
- const lowercaseFormat = format
3492
- .replace(/YYYY/g, 'yyyy')
3493
- .replace(/D/g, 'd')
3494
-
3495
- // 使用fecha库进行格式化,支持中文配置
3496
- const str = fecha.format(date, lowercaseFormat, getSettings());
3497
- return str;
3498
- };
3499
-
3500
- const parseDate = function(string, format) {
3501
- return fecha.parse(string, format || 'yyyy-MM-dd', getSettings());
3502
- };
3503
-
3504
- const getDayCountOfMonth = function(year, month) {
3505
- if (month === 3 || month === 5 || month === 8 || month === 10) {
3506
- return 30;
3507
- }
3508
-
3509
- if (month === 1) {
3510
- if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
3511
- return 29;
3512
- } else {
3513
- return 28;
3514
- }
3515
- }
3516
-
3517
- return 31;
3518
- };
3519
-
3520
- const getDayCountOfYear = function(year) {
3521
- const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
3522
- return isLeapYear ? 366 : 365;
3523
- };
3524
-
3525
- const getFirstDayOfMonth = function(date) {
3526
- const temp = new Date(date.getTime());
3527
- temp.setDate(1);
3528
- return temp.getDay();
3529
- };
3530
-
3531
- // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
3532
- // {prev, next} Date should work for Daylight Saving Time
3533
- // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
3534
- const prevDate = function(date, amount = 1) {
3535
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
3536
- };
3537
-
3538
- const nextDate = function(date, amount = 1) {
3539
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
3540
- };
3541
-
3542
- const getStartDateOfMonth = function(year, month) {
3543
- const result = new Date(year, month, 1);
3544
- const day = result.getDay();
3545
-
3546
- if (day === 0) {
3547
- return prevDate(result, 7);
3548
- } else {
3549
- return prevDate(result, day);
3550
- }
3551
- };
3552
-
3553
- const getWeekNumber = function(date) {
3554
- // 支持多种输入类型
3555
- if (!date||!isDate(date)) {
3556
- date = new Date();
3557
- }
3558
- if (typeof date === 'string') {
3559
- date = new Date(date);
3560
- }
3561
-
3562
- // 验证日期有效性
3563
- if (!isDate(date)) return null;
3564
-
3565
- const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
3566
- // 设置为最近的星期四:当前日期 + 4 - 当前星期数
3567
- // 将星期日的星期数设为7
3568
- d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
3569
- // 获取当年的第一天
3570
- const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
3571
- // 计算到最近的星期四的完整周数
3572
- const weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
3573
- // 返回周数
3574
- return weekNo;
3575
- };
3576
-
3577
- const getRangeHours = function(ranges) {
3578
- const hours = [];
3579
- let disabledHours = [];
3580
-
3581
- (ranges || []).forEach(range => {
3582
- const value = range.map(date => date.getHours());
3583
-
3584
- disabledHours = disabledHours.concat(newArray(value[0], value[1]));
3585
- });
3586
-
3587
- if (disabledHours.length) {
3588
- for (let i = 0; i < 24; i++) {
3589
- hours[i] = disabledHours.indexOf(i) === -1;
3590
- }
3591
- } else {
3592
- for (let i = 0; i < 24; i++) {
3593
- hours[i] = false;
3594
- }
3595
- }
3596
-
3597
- return hours;
3598
- };
3599
-
3600
- const getPrevMonthLastDays = (date, amount) => {
3601
- if (amount <= 0) return [];
3602
- const temp = new Date(date.getTime());
3603
- temp.setDate(0);
3604
- const lastDay = temp.getDate();
3605
- return range(amount).map((_, index) => lastDay - (amount - index - 1));
3606
- };
3607
-
3608
- const getMonthDays = (date) => {
3609
- const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
3610
- const days = temp.getDate();
3611
- return range(days).map((_, index) => index + 1);
3612
- };
3613
-
3614
- function setRangeData(arr, start, end, value) {
3615
- for (let i = start; i < end; i++) {
3616
- arr[i] = value;
3617
- }
3618
- }
3619
-
3620
- const getRangeMinutes = function(ranges, hour) {
3621
- const minutes = new Array(60);
3622
-
3623
- if (ranges.length > 0) {
3624
- ranges.forEach(range => {
3625
- const start = range[0];
3626
- const end = range[1];
3627
- const startHour = start.getHours();
3628
- const startMinute = start.getMinutes();
3629
- const endHour = end.getHours();
3630
- const endMinute = end.getMinutes();
3631
- if (startHour === hour && endHour !== hour) {
3632
- setRangeData(minutes, startMinute, 60, true);
3633
- } else if (startHour === hour && endHour === hour) {
3634
- setRangeData(minutes, startMinute, endMinute + 1, true);
3635
- } else if (startHour !== hour && endHour === hour) {
3636
- setRangeData(minutes, 0, endMinute + 1, true);
3637
- } else if (startHour < hour && endHour > hour) {
3638
- setRangeData(minutes, 0, 60, true);
3639
- }
3640
- });
3641
- } else {
3642
- setRangeData(minutes, 0, 60, true);
3643
- }
3644
- return minutes;
3645
- };
3646
-
3647
- const range = function(n) {
3648
- // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
3649
- return Array.apply(null, {length: n}).map((_, n) => n);
3650
- };
3651
-
3652
- const modifyDate = function(date, y, m, d) {
3653
- return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
3654
- };
3655
-
3656
- const modifyTime = function(date, h, m, s) {
3657
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
3658
- };
3659
-
3660
- const modifyWithTimeString = (date, time) => {
3661
- if (date == null || !time) {
3662
- return date;
3663
- }
3664
- time = parseDate(time, 'HH:mm:ss');
3665
- return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
3666
- };
3667
-
3668
- const clearTime = function(date) {
3669
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
3670
- };
3671
-
3672
- const clearMilliseconds = function(date) {
3673
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
3674
- };
3675
-
3676
- const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
3677
- // TODO: refactory a more elegant solution
3678
- if (ranges.length === 0) return date;
3679
- const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
3680
- const ndate = normalizeDate(date);
3681
- const nranges = ranges.map(range => range.map(normalizeDate));
3682
- if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
3683
-
3684
- let minDate = nranges[0][0];
3685
- let maxDate = nranges[0][0];
3686
-
3687
- nranges.forEach(nrange => {
3688
- minDate = new Date(Math.min(nrange[0], minDate));
3689
- maxDate = new Date(Math.max(nrange[1], minDate));
3690
- });
3691
-
3692
- const ret = ndate < minDate ? minDate : maxDate;
3693
- // preserve Year/Month/Date
3694
- return modifyDate(
3695
- ret,
3696
- date.getFullYear(),
3697
- date.getMonth(),
3698
- date.getDate()
3699
- );
3700
- };
3701
-
3702
- const timeWithinRange = function(date, selectableRange, format) {
3703
- const limitedDate = limitTimeRange(date, selectableRange, format);
3704
- return limitedDate.getTime() === date.getTime();
3705
- };
3706
-
3707
- const changeYearMonthAndClampDate = function(date, year, month) {
3708
- // clamp date to the number of days in `year`, `month`
3709
- // eg: (2010-1-31, 2010, 2) => 2010-2-28
3710
- const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
3711
- return modifyDate(date, year, month, monthDate);
3712
- };
3713
-
3714
- const prevMonth = function(date) {
3715
- const year = date.getFullYear();
3716
- const month = date.getMonth();
3717
- return month === 0
3718
- ? changeYearMonthAndClampDate(date, year - 1, 11)
3719
- : changeYearMonthAndClampDate(date, year, month - 1);
3720
- };
3721
-
3722
- const nextMonth = function(date) {
3723
- const year = date.getFullYear();
3724
- const month = date.getMonth();
3725
- return month === 11
3726
- ? changeYearMonthAndClampDate(date, year + 1, 0)
3727
- : changeYearMonthAndClampDate(date, year, month + 1);
3728
- };
3729
-
3730
- const prevYear = function(date, amount = 1) {
3731
- const year = date.getFullYear();
3732
- const month = date.getMonth();
3733
- return changeYearMonthAndClampDate(date, year - amount, month);
3734
- };
3735
-
3736
- const nextYear = function(date, amount = 1) {
3737
- const year = date.getFullYear();
3738
- const month = date.getMonth();
3739
- return changeYearMonthAndClampDate(date, year + amount, month);
3740
- };
3741
-
3742
- const extractDateFormat = function(format) {
3743
- return format
3744
- .replace(/\W?m{1,2}|\W?ZZ/g, '')
3745
- .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
3746
- .trim();
3747
- };
3748
-
3749
- const extractTimeFormat = function(format) {
3750
- return format
3751
- .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
3752
- .trim();
3753
- };
3754
-
3755
- const validateRangeInOneMonth = function(start, end) {
3756
- return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
3757
- };
3758
-
3759
- /**
3760
- * 计算两个日期之间的工作日数量(不包括周末和节假日)
3761
- * @param {string} start_date - 开始日期字符串,格式为 "YYYY-MM-DD"
3762
- * @param {string} end_date - 结束日期字符串,格式为 "YYYY-MM-DD"
3763
- * @param {Array<string>} holidays - 假期日期字符串数组,格式为 "YYYY-MM-DD"
3764
- * @returns {number} 工作日数量
3765
- */
3766
- const calculateNetworkDays = function (start_date, end_date, holidays = []) {
3767
- if (typeof start_date !== 'string' || typeof end_date !== 'string') {
3768
- throw new Error(
3769
- "Invalid input. Please provide valid date strings in the format 'YYYY-MM-DD'."
3770
- );
3771
- }
3772
-
3773
- const startDateObj = new Date(start_date);
3774
- const endDateObj = new Date(end_date);
3775
-
3776
- if (isNaN(startDateObj.getTime()) || isNaN(endDateObj.getTime())) {
3777
- throw new Error(
3778
- "Invalid date format. Please provide valid date strings in the format 'YYYY-MM-DD'."
3779
- );
3780
- }
3781
-
3782
- if (startDateObj > endDateObj) {
3783
- throw new Error('Start date should be earlier than or equal to end date.');
3784
- }
3785
-
3786
- let workdays = 0;
3787
-
3788
- // Iterate through each day in the date range
3789
- for (
3790
- let currentDate = new Date(startDateObj);
3791
- currentDate <= endDateObj;
3792
- currentDate.setDate(currentDate.getDate() + 1)
3793
- ) {
3794
- // Check if the current day is a weekend (Saturday or Sunday)
3795
- const isWeekend = currentDate.getDay() === 0 || currentDate.getDay() === 6;
3796
-
3797
- // Check if the current day is a holiday
3798
- const isHoliday = holidays.some((holiday) => {
3799
- const holidayDate = new Date(holiday);
3800
- return currentDate.toDateString() === holidayDate.toDateString();
3801
- });
3802
-
3803
- // If it's a workday (not a weekend or holiday), increment the workdays count
3804
- if (!isWeekend && !isHoliday) {
3805
- workdays++;
3806
- }
3807
- }
3808
-
3809
- return workdays;
3810
- };
3811
-
3812
- /**
3813
- * 日期加减天数
3814
- * @param {string} start_date - 起始日期字符串,格式为 "YYYY-MM-DD"
3815
- * @param {number} days - 要加上或减去的天数,正数表示加,负数表示减
3816
- * @returns {string} 结果日期,格式为 "YYYY-MM-DD"
3817
- */
3818
- const dateAddDays = function (start_date, days) {
3819
- if (typeof start_date !== 'string' || !Number.isInteger(days)) {
3820
- throw new Error(
3821
- "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD' and a valid integer for the number of days."
3822
- );
3823
- }
3824
-
3825
- const startDateObj = new Date(start_date);
3826
- if (isNaN(startDateObj.getTime())) {
3827
- throw new Error(
3828
- "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
3829
- );
3830
- }
3831
-
3832
- const resultDateObj = new Date(startDateObj);
3833
- resultDateObj.setDate(resultDateObj.getDate() + days);
3834
-
3835
- const resultYear = resultDateObj.getFullYear();
3836
- const resultMonth = String(resultDateObj.getMonth() + 1).padStart(2, '0');
3837
- const resultDay = String(resultDateObj.getDate()).padStart(2, '0');
3838
-
3839
- return `${resultYear}-${resultMonth}-${resultDay}`;
3840
- };
3841
-
3842
- /**
3843
- * 计算两个日期之间的差值
3844
- * @date 2023年12月14日
3845
- * @param {String} start_date - 起始日期字符串
3846
- * @param {String} end_date - 结束日期字符串
3847
- * @param {String} unit - 单位:year/month/day
3848
- * @returns {Number} 差值
3849
- */
3850
- const dateDiff = function (start_date, end_date, unit = 'day') {
3851
- // Assuming date strings are in "YYYY-MM-DD" format
3852
- var startDate = new Date(start_date);
3853
- var endDate = new Date(end_date);
3854
-
3855
- // If the date is invalid, return 0
3856
- if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
3857
- return 0;
3858
- }
3859
-
3860
- if (unit === 'year') {
3861
- return endDate.getFullYear() - startDate.getFullYear();
3862
- } else if (unit === 'month') {
3863
- return (
3864
- (endDate.getFullYear() - startDate.getFullYear()) * 12 +
3865
- (endDate.getMonth() - startDate.getMonth())
3866
- );
3867
- } else {
3868
- // Default to day
3869
- var timeDifference = endDate - startDate;
3870
- // Calculate days (86400000 milliseconds per day)
3871
- return Math.floor(timeDifference / 86400000);
3872
- }
3873
- };
3874
-
3875
- /**
3876
- * 获取月份中的日期
3877
- * @param {string} date - 日期字符串,格式为 "YYYY-MM-DD"
3878
- * @returns {number} 月份中的日期(1-31)
3879
- */
3880
- const dayOfMonth = function (date) {
3881
- if (typeof date !== 'string') {
3882
- throw new Error(
3883
- "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD'."
3884
- );
3885
- }
3886
-
3887
- const dateObj = new Date(date);
3888
- if (isNaN(dateObj.getTime())) {
3889
- throw new Error(
3890
- "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
3891
- );
3892
- }
3893
-
3894
- return dateObj.getDate();
3895
- };
3896
-
3897
- /**
3898
- * 获取当前日期
3899
- * @date 2022年5月7日
3900
- * @param {string} format - 日期格式,默认为'YYYY-MM-DD'
3901
- * @returns {string} 当前日期的格式化字符串
3902
- */
3903
- const getCurrentDate = function (format = 'YYYY-MM-DD') {
3904
- return formatDate(new Date(), format);
3905
- };
3906
-
3907
- /**
3908
- * 获取当前日期时间
3909
- * @date 2022年5月7日
3910
- * @param {string} format - 日期时间格式,默认为'YYYY-MM-DD HH:mm:ss'
3911
- * @returns {string} 当前日期时间的格式化字符串
3912
- */
3913
- const getCurrentDateTime = function (format = 'YYYY-MM-DD HH:mm:ss') {
3914
- return formatDate(new Date(), format);
3915
- };
3916
-
3917
- /**
3918
- * 获取小时
3919
- * @date 2022年5月7日
3920
- * @param {Date|string} [date] - 日期对象或日期字符串
3921
- * @returns {number} 小时数(0-23)
3922
- */
3923
- const getHour = function (date) {
3924
- if (!date) {
3925
- return new Date().getHours();
3926
- }
3927
- if (typeof date === 'string') {
3928
- date = new Date(date);
3929
- }
3930
- return date.getHours();
3931
- };
3932
-
3933
- /**
3934
- * 获取分钟
3935
- * @date 2022年5月7日
3936
- * @param {Date|string} [date] - 日期对象或日期字符串
3937
- * @returns {number} 分钟数(0-59)
3938
- */
3939
- const getMinute = function (date) {
3940
- if (!date) {
3941
- return new Date().getMinutes();
3942
- }
3943
- if (typeof date === 'string') {
3944
- date = new Date(date);
3945
- }
3946
- return date.getMinutes();
3947
- };
3948
-
3949
- /**
3950
- * 获取月份
3951
- * @date 2022年5月7日
3952
- * @param {Date|string} [date] - 日期对象或日期字符串
3953
- * @returns {number} 月份数(1-12)
3954
- */
3955
- const getMonth = function (date) {
3956
- if (!date) {
3957
- return new Date().getMonth() + 1;
3958
- }
3959
- if (typeof date === 'string') {
3960
- date = new Date(date);
3961
- }
3962
- return date.getMonth() + 1;
3963
- };
3964
-
3965
- /**
3966
- * 获取秒
3967
- * @date 2022年5月7日
3968
- * @param {Date|string} [date] - 日期对象或日期字符串
3969
- * @returns {number} 秒数(0-59)
3970
- */
3971
- const getSecond = function (date) {
3972
- if (!date) {
3973
- return new Date().getSeconds();
3974
- }
3975
- if (typeof date === 'string') {
3976
- date = new Date(date);
3977
- }
3978
- return date.getSeconds();
3979
- };
3980
-
3981
- /**
3982
- * 获取星期几
3983
- * @date 2022年5月7日
3984
- * @param {Date|string} [date] - 日期对象或日期字符串
3985
- * @returns {number} 星期几(0-6,0表示星期日)
3986
- */
3987
- const getWeekday = function (date) {
3988
- if (!date) {
3989
- return new Date().getDay();
3990
- }
3991
- if (typeof date === 'string') {
3992
- date = new Date(date);
3993
- }
3994
- return date.getDay();
3995
- };
3996
-
3997
-
3998
- /**
3999
- * @desc 获取上午/下午/晚上
4000
- * @author huangbo
4001
- * @date 2022年5月7日
4002
- * @param {String} [time] - 时间
4003
- **/
4004
- const timeCycle = function (time) {
4005
- let hour = 0;
4006
- if (!time) {
4007
- hour = new Date().getHours();
4008
- } else if (typeof time === 'string') {
4009
- // 从时间字符串中提取小时
4010
- const match = time.match(/^(\d{1,2})/);
4011
- if (match) {
4012
- hour = parseInt(match[1], 10);
4013
- }
4014
- } else if (typeof time === 'number') {
4015
- hour = time;
4016
- }
4017
- // 判断时间段
4018
- if (hour >= 5 && hour < 12) {
4019
- return '上午';
4020
- } else if (hour >= 12 && hour < 18) {
4021
- return '下午';
4022
- } else {
4023
- return '晚上';
4024
- }
3043
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return setStorage; });
3044
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getStorage; });
3045
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return removeStorage; });
3046
+ /* unused harmony export setCookie */
3047
+ /* unused harmony export getCookie */
3048
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
3049
+
3050
+ /**
3051
+ * setStorage
3052
+ * @desc:设置本地储存数据
3053
+ * @author huangbo
3054
+ * @date 2022年5月7日
3055
+ * @param {String|Object} [key] - 数据的名称或包含type、key、value的对象
3056
+ * @param {String} [value] - 数据的值(当第一个参数为字符串时使用)
3057
+ **/
3058
+ var setStorage = function setStorage(key, value) {
3059
+ // 解析参数,支持两种调用方式:setStorage(key, value) 和 setStorage({type, key, value})
3060
+ var type = void 0,
3061
+ finalKey = void 0,
3062
+ finalValue = void 0;
3063
+
3064
+ if ((typeof key === 'undefined' ? 'undefined' : _typeof(key)) === 'object' && key !== null) {
3065
+ // 对象调用方式:setStorage({type, key, value})
3066
+ type = key.type;
3067
+ finalKey = key.key;
3068
+ finalValue = key.value;
3069
+ } else {
3070
+ // 字符串调用方式:setStorage(key, value)
3071
+ type = getStorage('storageType');
3072
+ finalKey = key;
3073
+ finalValue = value;
3074
+ }
3075
+
3076
+ // 使用默认存储类型如果未指定
3077
+ type = type || getStorage('storageType');
3078
+
3079
+ // 获取存储对象
3080
+ var storage = type === 'localStorage' ? localStorage : sessionStorage;
3081
+
3082
+ // 处理不同类型的key
3083
+ if (typeof finalKey === 'string') {
3084
+ // 单个字符串key
3085
+ var storedValue = (typeof finalValue === 'undefined' ? 'undefined' : _typeof(finalValue)) === 'object' ? JSON.stringify(finalValue) : finalValue;
3086
+ storage.setItem(finalKey, storedValue);
3087
+ if (finalKey === 'token') {
3088
+ setCookie('token', storedValue);
3089
+ }
3090
+ } else if (Array.isArray(finalKey)) {
3091
+ // 数组key,为多个key设置同一个value
3092
+ var _storedValue = (typeof finalValue === 'undefined' ? 'undefined' : _typeof(finalValue)) === 'object' ? JSON.stringify(finalValue) : finalValue;
3093
+ for (var i = 0; i < finalKey.length; i++) {
3094
+ storage.setItem(finalKey[i], _storedValue);
3095
+ if (finalKey[i] === 'token') {
3096
+ setCookie('token', _storedValue);
3097
+ }
3098
+ }
3099
+ } else if ((typeof finalKey === 'undefined' ? 'undefined' : _typeof(finalKey)) === 'object' && finalKey !== null) {
3100
+ // 对象key,对象的属性名称作为key,属性值作为value
3101
+ for (var k in finalKey) {
3102
+ if (Object.prototype.hasOwnProperty.call(finalKey, k)) {
3103
+ var _storedValue2 = _typeof(finalKey[k]) === 'object' ? JSON.stringify(finalKey[k]) : finalKey[k];
3104
+ storage.setItem(k, _storedValue2);
3105
+ if (k === 'token') {
3106
+ setCookie('token', _storedValue2);
3107
+ }
3108
+ }
3109
+ }
3110
+ }
3111
+ };
3112
+
3113
+ /**
3114
+ * getStorage
3115
+ * @desc:获取本地储存数据
3116
+ * @author huangbo
3117
+ * @date 2022年5月7日
3118
+ * @param {String} [key] - 获取的名称
3119
+ **/
3120
+ var getStorage = function getStorage(key) {
3121
+ if (key) {
3122
+ var res = sessionStorage.getItem(key) || localStorage.getItem(key);
3123
+ if (!res && key === 'token') {
3124
+ res = getCookie('token');
3125
+ }
3126
+ if (key === 'host' && !res) {
3127
+ res = '';
3128
+ }
3129
+ return res;
3130
+ }
3131
+ var defaults = {};
3132
+ var token = sessionStorage.getItem('token') || localStorage.getItem('token') || getCookie('token');
3133
+ var ssId = sessionStorage.getItem('ssId') || localStorage.getItem('ssId') || getCookie('ssId');
3134
+
3135
+ var deviceUnique = sessionStorage.getItem('deviceUnique') || localStorage.getItem('deviceUnique') || getCookie('deviceUnique');
3136
+ if (token) {
3137
+ defaults.Authorization = token;
3138
+ }
3139
+ if (ssId) {
3140
+ defaults.ssId = ssId;
3141
+ }
3142
+ if (deviceUnique) {
3143
+ defaults.deviceUnique = deviceUnique;
3144
+ }
3145
+ return defaults;
3146
+ };
3147
+
3148
+ /**
3149
+ * removeStorage
3150
+ * @desc:删除本地储存数据
3151
+ * @author huangbo
3152
+ * @date 2022年5月7日
3153
+ * @param {String, Array} [key] - 获取的名称
3154
+ **/
3155
+ var removeStorage = function removeStorage(key) {
3156
+ if (Array.isArray(key)) {
3157
+ for (var i = 0; i < key.length; i++) {
3158
+ sessionStorage.removeItem(key[i]);
3159
+ localStorage.removeItem(key[i]);
3160
+ if (key[i] === 'token') {
3161
+ removeCookie('token');
3162
+ }
3163
+ }
3164
+ } else if (key) {
3165
+ sessionStorage.removeItem(key);
3166
+ localStorage.removeItem(key);
3167
+ if (key === 'token') {
3168
+ removeCookie('token');
3169
+ }
3170
+ } else {
3171
+ sessionStorage.clear();
3172
+ localStorage.clear();
3173
+ removeCookie('token');
3174
+ }
3175
+ };
3176
+
3177
+ /**
3178
+ * setCookie
3179
+ * @desc 设置cookie
3180
+ * @author huangbo
3181
+ * @param {string} [name] cookie名称
3182
+ * @param {string} [value] cookie值
3183
+ * @param {boolean} [isSession] 是否是会话cookie
3184
+ **/
3185
+ var setCookie = function setCookie(name, value) {
3186
+ var isSession = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
3187
+ var time = arguments[3];
3188
+
3189
+ try {
3190
+ var cookieParts = [encodeURIComponent(name) + '=' + encodeURIComponent(value), 'path=/' // 仅保留path设置,确保全站访问
3191
+ ];
3192
+ // 会话/持久Cookie设置
3193
+ if (!isSession) {
3194
+ if (/MSIE|Trident/.test(navigator.userAgent)) {
3195
+ // IE使用expires
3196
+ var date = new Date();
3197
+ date.setTime(date.getTime() + (time || 7 * 24 * 60 * 60 * 1000));
3198
+ cookieParts.push('expires=' + date.toUTCString());
3199
+ } else {
3200
+ // 其他浏览器使用max-age
3201
+ cookieParts.push('max-age=' + (time || 7 * 24 * 60 * 60));
3202
+ }
3203
+ }
3204
+ // 内核兼容处理
3205
+ if (/MSIE|Trident/.test(navigator.userAgent)) {
3206
+ // IE特殊处理:添加P3P协议头
3207
+ cookieParts.push('P3P=CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
3208
+ } else {
3209
+ // 现代浏览器设置
3210
+ cookieParts.push('samesite=lax');
3211
+ if (window.location.protocol === 'https:') {
3212
+ cookieParts.push('secure');
3213
+ }
3214
+ }
3215
+
3216
+ // 设置Cookie
3217
+ document.cookie = cookieParts.join('; ');
3218
+ return true;
3219
+ } catch (e) {
3220
+ console.error('Cookie设置失败:', e);
3221
+ return false;
3222
+ }
3223
+ };
3224
+
3225
+ /**
3226
+ * getCookie
3227
+ * @desc 获取cookie中指定名称的值
3228
+ * @author huangbo
3229
+ * @param {string} [name] cookie名称
3230
+ **/
3231
+ var getCookie = function getCookie(name) {
3232
+ var cookies = document.cookie.split(';');
3233
+ for (var _iterator = cookies, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
3234
+ var _ref;
3235
+
3236
+ if (_isArray) {
3237
+ if (_i >= _iterator.length) break;
3238
+ _ref = _iterator[_i++];
3239
+ } else {
3240
+ _i = _iterator.next();
3241
+ if (_i.done) break;
3242
+ _ref = _i.value;
3243
+ }
3244
+
3245
+ var cookie = _ref;
3246
+
3247
+ var _cookie$trim$split = cookie.trim().split('='),
3248
+ cookieName = _cookie$trim$split[0],
3249
+ cookieValue = _cookie$trim$split[1];
3250
+
3251
+ if (decodeURIComponent(cookieName) === name) {
3252
+ return decodeURIComponent(cookieValue);
3253
+ }
3254
+ }
3255
+ return null;
3256
+ };
3257
+
3258
+ /**
3259
+ * removeCookie
3260
+ * @desc:删除cookie
3261
+ * @author huangbo
3262
+ * @date 2022年5月7日
3263
+ * @param {String, Array} [key] - 获取的名称
3264
+ **/
3265
+ var removeCookie = function removeCookie(key) {
3266
+ if (Array.isArray(key)) {
3267
+ for (var i = 0; i < key.length; i++) {
3268
+ document.cookie = encodeURIComponent(key[i]) + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
3269
+ }
3270
+ } else {
3271
+ document.cookie = encodeURIComponent(key) + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
3272
+ }
4025
3273
  };
4026
3274
 
4027
3275
  /***/ }),
@@ -4129,7 +3377,7 @@ var getColor = function getColor($color, $n) {
4129
3377
  var getLightness = function getLightness($v, $i, $isLight) {
4130
3378
  var $value = $isLight ? $v + $brightnessStep1 * $i : $v - $brightnessStep2 * $i;
4131
3379
  $value = $value < 1 ? $value : 1;
4132
- return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "V"])($value, 2);
3380
+ return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "U"])($value, 2);
4133
3381
  };
4134
3382
 
4135
3383
  /**
@@ -4153,7 +3401,7 @@ var getSaturation = function getSaturation($s, $i, $isLight) {
4153
3401
  $saturation = 0.1;
4154
3402
  }
4155
3403
  $saturation = $saturation > 0.06 ? $saturation : 0.06;
4156
- return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "V"])($saturation, 2);
3404
+ return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "U"])($saturation, 2);
4157
3405
  };
4158
3406
 
4159
3407
  /**
@@ -4256,146 +3504,1036 @@ var getRgb = function getRgb($color) {
4256
3504
  $color = colorNew;
4257
3505
  }
4258
3506
  // 处理六位的颜色值,转为RGB
4259
- for (var _i = 1; _i < 7; _i += 2) {
4260
- rgb.push(parseInt('0x' + $color.slice(_i, _i + 2), 16));
4261
- }
4262
- } else {
4263
- rgb = $color.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',');
4264
- }
4265
- return rgb;
4266
- };
4267
-
4268
- /***/ }),
4269
-
4270
- /***/ 18:
4271
- /***/ (function(module, exports) {
4272
-
4273
- module.exports = require("eoss/lib/loading");
4274
-
4275
- /***/ }),
4276
-
4277
- /***/ 19:
4278
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
4279
-
4280
- "use strict";
4281
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
4282
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
4283
- /* harmony import */ var eoss_src_utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
4284
-
4285
-
4286
-
4287
- var nodeList = [];
4288
- var ctx = '@@clickoutsideContext';
4289
-
4290
- var startClick = void 0;
4291
- var seed = 0;
4292
-
4293
- !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && Object(eoss_src_utils_dom__WEBPACK_IMPORTED_MODULE_1__[/* on */ "g"])(document, 'mousedown', function (e) {
4294
- return startClick = e;
4295
- });
4296
-
4297
- !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && Object(eoss_src_utils_dom__WEBPACK_IMPORTED_MODULE_1__[/* on */ "g"])(document, 'mouseup', function (e) {
4298
- nodeList.forEach(function (node) {
4299
- return node[ctx].documentHandler(e, startClick);
4300
- });
4301
- });
4302
-
4303
- function createDocumentHandler(el, binding, vnode) {
4304
- return function () {
4305
- var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4306
- var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4307
-
4308
- if (!vnode || !vnode.context || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || el.contains(mousedown.target) || el === mouseup.target) {
4309
- return;
4310
- }
4311
-
4312
- var context = vnode.context;
4313
-
4314
- // 检查点击是否在 popperElm 内部,即使它已经被添加到 document.body 中
4315
- if (context.popperElm) {
4316
- try {
4317
- if (context.popperElm.contains(mouseup.target) || context.popperElm.contains(mousedown.target)) {
4318
- return;
4319
- }
4320
- } catch (e) {
4321
- // 如果 popperElm 已经被销毁,忽略错误
4322
- }
4323
- }
4324
-
4325
- // 检查是否有其他相关的 popper 元素
4326
- if (context.popper) {
4327
- try {
4328
- if (context.popper.contains(mouseup.target) || context.popper.contains(mousedown.target)) {
4329
- return;
4330
- }
4331
- } catch (e) {
4332
- // 如果 popper 已经被销毁,忽略错误
4333
- }
4334
- }
4335
-
4336
- // 检查是否有其他相关的弹出元素(如 autocomplete 的建议列表)
4337
- if (context.suggestions && context.suggestions.length > 0) {
4338
- // 尝试找到建议列表的 DOM 元素
4339
- var suggestionsElm = document.querySelector('.es-autocomplete-suggestion');
4340
- if (suggestionsElm) {
4341
- try {
4342
- if (suggestionsElm.contains(mouseup.target) || suggestionsElm.contains(mousedown.target)) {
4343
- return;
4344
- }
4345
- } catch (e) {
4346
- // 如果元素已经被销毁,忽略错误
4347
- }
4348
- }
3507
+ for (var _i = 1; _i < 7; _i += 2) {
3508
+ rgb.push(parseInt('0x' + $color.slice(_i, _i + 2), 16));
4349
3509
  }
3510
+ } else {
3511
+ rgb = $color.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',');
3512
+ }
3513
+ return rgb;
3514
+ };
4350
3515
 
4351
- if (binding.expression && el[ctx].methodName && context[el[ctx].methodName]) {
4352
- context[el[ctx].methodName]();
4353
- } else {
4354
- el[ctx].bindingFn && el[ctx].bindingFn();
4355
- }
4356
- };
4357
- }
3516
+ /***/ }),
3517
+
3518
+ /***/ 17:
3519
+ /***/ (function(module, exports) {
3520
+
3521
+ module.exports = require("eoss/lib/loading");
3522
+
3523
+ /***/ }),
3524
+
3525
+ /***/ 19:
3526
+ /***/ (function(module, exports) {
4358
3527
 
3528
+ module.exports = require("lodash/get");
3529
+
3530
+ /***/ }),
3531
+
3532
+ /***/ 2:
3533
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3534
+
3535
+ "use strict";
3536
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return fecha; });
3537
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return getSettings; });
3538
+ /* unused harmony export toDate */
3539
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return isDate; });
3540
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return isDateObject; });
3541
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return formatDate; });
3542
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return parseDate; });
3543
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getDayCountOfMonth; });
3544
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getDayCountOfYear; });
3545
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return getFirstDayOfMonth; });
3546
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return prevDate; });
3547
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return nextDate; });
3548
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return getStartDateOfMonth; });
3549
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return getWeekNumber; });
3550
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return getRangeHours; });
3551
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return getPrevMonthLastDays; });
3552
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return getMonthDays; });
3553
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return getRangeMinutes; });
3554
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return range; });
3555
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return modifyDate; });
3556
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return modifyTime; });
3557
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return modifyWithTimeString; });
3558
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return clearTime; });
3559
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return clearMilliseconds; });
3560
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return limitTimeRange; });
3561
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return timeWithinRange; });
3562
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return changeYearMonthAndClampDate; });
3563
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return prevMonth; });
3564
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return nextMonth; });
3565
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return prevYear; });
3566
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return nextYear; });
3567
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return extractDateFormat; });
3568
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return extractTimeFormat; });
3569
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return validateRangeInOneMonth; });
3570
+ /* unused harmony export calculateNetworkDays */
3571
+ /* unused harmony export dateAddDays */
3572
+ /* unused harmony export dateDiff */
3573
+ /* unused harmony export dayOfMonth */
3574
+ /* unused harmony export getCurrentDate */
3575
+ /* unused harmony export getCurrentDateTime */
3576
+ /* unused harmony export getHour */
3577
+ /* unused harmony export getMinute */
3578
+ /* unused harmony export getMonth */
3579
+ /* unused harmony export getSecond */
3580
+ /* unused harmony export getWeekday */
3581
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return timeCycle; });
3582
+ /* Modified from https://github.com/taylorhakes/fecha
3583
+ *
3584
+ * The MIT License (MIT)
3585
+ *
3586
+ * Copyright (c) 2015 Taylor Hakes
3587
+ *
3588
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
3589
+ * of this software and associated documentation files (the "Software"), to deal
3590
+ * in the Software without restriction, including without limitation the rights
3591
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3592
+ * copies of the Software, and to permit persons to whom the Software is
3593
+ * furnished to do so, subject to the following conditions:
3594
+ *
3595
+ * The above copyright notice and this permission notice shall be included in all
3596
+ * copies or substantial portions of the Software.
3597
+ *
3598
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3599
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3600
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3601
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3602
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3603
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3604
+ * SOFTWARE.
3605
+ */
3606
+
3607
+ /*eslint-disable*/
3608
+ // 把 YYYY-MM-DD 改成了 yyyy-MM-dd
3609
+
3610
+
3611
+ /**
3612
+ * Parse or format dates
3613
+ * @class fecha
3614
+ */
3615
+ const fecha = {};
3616
+ const token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
3617
+ const twoDigits = '\\d\\d?';
3618
+ const threeDigits = '\\d{3}';
3619
+ const fourDigits = '\\d{4}';
3620
+ const word = '[^\\s]+';
3621
+ const literal = /\[([^]*?)\]/gm;
3622
+ const noop = function () {};
3623
+
3624
+ function regexEscape(str) {
3625
+ return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
3626
+ }
3627
+
3628
+ function shorten(arr, sLen) {
3629
+ const newArr = [];
3630
+ for (let i = 0, len = arr.length; i < len; i++) {
3631
+ newArr.push(arr[i].substr(0, sLen));
3632
+ }
3633
+ return newArr;
3634
+ }
3635
+
3636
+ function monthUpdate() {
3637
+ return function (d, v) {
3638
+ const index = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'].indexOf(v.toLowerCase());
3639
+ if (~index) {
3640
+ d.month = index;
3641
+ }
3642
+ };
3643
+ }
3644
+
3645
+ function pad(val, len) {
3646
+ val = String(val);
3647
+ len = len || 2;
3648
+ while (val.length < len) {
3649
+ val = '0' + val;
3650
+ }
3651
+ return val;
3652
+ }
3653
+
3654
+ // 直接使用中文日期名称常量
3655
+ const dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
3656
+ const monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
3657
+ const monthNamesShort = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
3658
+ const dayNamesShort = ['日', '一', '二', '三', '四', '五', '六'];
3659
+ const amPm = ['上午', '下午'];
3660
+ const DoFn = function DoFn(D) {
3661
+ return D + '日';
3662
+ };
3663
+
3664
+ const formatFlags = {
3665
+ D: function(dateObj) {
3666
+ return dateObj.getDay();
3667
+ },
3668
+ DD: function(dateObj) {
3669
+ return pad(dateObj.getDay());
3670
+ },
3671
+ Do: function(dateObj) {
3672
+ return DoFn(dateObj.getDate());
3673
+ },
3674
+ d: function(dateObj) {
3675
+ return dateObj.getDate();
3676
+ },
3677
+ dd: function(dateObj) {
3678
+ return pad(dateObj.getDate());
3679
+ },
3680
+ ddd: function(dateObj) {
3681
+ return dayNamesShort[dateObj.getDay()];
3682
+ },
3683
+ dddd: function(dateObj) {
3684
+ return dayNames[dateObj.getDay()];
3685
+ },
3686
+ M: function(dateObj) {
3687
+ return dateObj.getMonth() + 1;
3688
+ },
3689
+ MM: function(dateObj) {
3690
+ return pad(dateObj.getMonth() + 1);
3691
+ },
3692
+ MMM: function(dateObj) {
3693
+ return monthNamesShort[dateObj.getMonth()];
3694
+ },
3695
+ MMMM: function(dateObj) {
3696
+ return monthNames[dateObj.getMonth()];
3697
+ },
3698
+ yy: function(dateObj) {
3699
+ return pad(String(dateObj.getFullYear()), 4).substr(2);
3700
+ },
3701
+ yyyy: function(dateObj) {
3702
+ return pad(dateObj.getFullYear(), 4);
3703
+ },
3704
+ h: function(dateObj) {
3705
+ return dateObj.getHours() % 12 || 12;
3706
+ },
3707
+ hh: function(dateObj) {
3708
+ return pad(dateObj.getHours() % 12 || 12);
3709
+ },
3710
+ H: function(dateObj) {
3711
+ return dateObj.getHours();
3712
+ },
3713
+ HH: function(dateObj) {
3714
+ return pad(dateObj.getHours());
3715
+ },
3716
+ m: function(dateObj) {
3717
+ return dateObj.getMinutes();
3718
+ },
3719
+ mm: function(dateObj) {
3720
+ return pad(dateObj.getMinutes());
3721
+ },
3722
+ s: function(dateObj) {
3723
+ return dateObj.getSeconds();
3724
+ },
3725
+ ss: function(dateObj) {
3726
+ return pad(dateObj.getSeconds());
3727
+ },
3728
+ S: function(dateObj) {
3729
+ return Math.round(dateObj.getMilliseconds() / 100);
3730
+ },
3731
+ SS: function(dateObj) {
3732
+ return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
3733
+ },
3734
+ SSS: function(dateObj) {
3735
+ return pad(dateObj.getMilliseconds(), 3);
3736
+ },
3737
+ a: function(dateObj) {
3738
+ return dateObj.getHours() < 12 ? '上午' : '下午';
3739
+ },
3740
+ A: function(dateObj) {
3741
+ return dateObj.getHours() < 12 ? '上午' : '下午';
3742
+ },
3743
+ ZZ: function(dateObj) {
3744
+ const o = dateObj.getTimezoneOffset();
3745
+ return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
3746
+ }
3747
+ };
3748
+
3749
+ const parseFlags = {
3750
+ d: [twoDigits, function (d, v) {
3751
+ d.day = v;
3752
+ }],
3753
+ Do: [twoDigits + word, function (d, v) {
3754
+ d.day = parseInt(v, 10);
3755
+ }],
3756
+ M: [twoDigits, function (d, v) {
3757
+ d.month = v - 1;
3758
+ }],
3759
+ yy: [twoDigits, function (d, v) {
3760
+ const da = new Date(), cent = +('' + da.getFullYear()).substr(0, 2);
3761
+ d.year = '' + (v > 68 ? cent - 1 : cent) + v;
3762
+ }],
3763
+ h: [twoDigits, function (d, v) {
3764
+ d.hour = v;
3765
+ }],
3766
+ m: [twoDigits, function (d, v) {
3767
+ d.minute = v;
3768
+ }],
3769
+ s: [twoDigits, function (d, v) {
3770
+ d.second = v;
3771
+ }],
3772
+ yyyy: [fourDigits, function (d, v) {
3773
+ d.year = v;
3774
+ }],
3775
+ S: ['\\d', function (d, v) {
3776
+ d.millisecond = v * 100;
3777
+ }],
3778
+ SS: ['\\d{2}', function (d, v) {
3779
+ d.millisecond = v * 10;
3780
+ }],
3781
+ SSS: [threeDigits, function (d, v) {
3782
+ d.millisecond = v;
3783
+ }],
3784
+ D: [twoDigits, noop],
3785
+ ddd: [word, noop],
3786
+ MMM: [word, monthUpdate('monthNamesShort')],
3787
+ MMMM: [word, monthUpdate('monthNames')],
3788
+ a: [word, function (d, v) {
3789
+ const val = v.toLowerCase();
3790
+ if (val === '上午') {
3791
+ d.isPm = false;
3792
+ } else if (val === '下午') {
3793
+ d.isPm = true;
3794
+ }
3795
+ }],
3796
+ ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
3797
+ let parts = (v + '').match(/([+-]|\d\d)/gi), minutes;
3798
+
3799
+ if (parts) {
3800
+ minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
3801
+ d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
3802
+ }
3803
+ }]
3804
+ };
3805
+ parseFlags.dd = parseFlags.d;
3806
+ parseFlags.dddd = parseFlags.ddd;
3807
+ parseFlags.DD = parseFlags.D;
3808
+ parseFlags.mm = parseFlags.m;
3809
+ parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
3810
+ parseFlags.MM = parseFlags.M;
3811
+ parseFlags.ss = parseFlags.s;
3812
+ parseFlags.A = parseFlags.a;
3813
+
3814
+
3815
+ // Some common format strings
3816
+ fecha.masks = {
3817
+ default: 'ddd MMM dd yyyy HH:mm:ss',
3818
+ shortDate: 'M/D/yy',
3819
+ mediumDate: 'MMM d, yyyy',
3820
+ longDate: 'MMMM d, yyyy',
3821
+ fullDate: 'dddd, MMMM d, yyyy',
3822
+ shortTime: 'HH:mm',
3823
+ mediumTime: 'HH:mm:ss',
3824
+ longTime: 'HH:mm:ss.SSS'
3825
+ };
3826
+
3827
+ /***
3828
+ * Format a date
3829
+ * @method format
3830
+ * @param {Date|number} dateObj
3831
+ * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
3832
+ */
3833
+ fecha.format = function (dateObj, mask) {
3834
+ if (typeof dateObj === 'number') {
3835
+ dateObj = new Date(dateObj);
3836
+ }
3837
+
3838
+ if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
3839
+ throw new Error('Invalid Date in fecha.format');
3840
+ }
3841
+
3842
+ mask = fecha.masks[mask] || mask || fecha.masks['default'];
3843
+
3844
+ const literals = [];
3845
+
3846
+ // Make literals inactive by replacing them with ??
3847
+ mask = mask.replace(literal, function($0, $1) {
3848
+ literals.push($1);
3849
+ return '@@@';
3850
+ });
3851
+ // Apply formatting rules
3852
+ mask = mask.replace(token, function ($0) {
3853
+ return $0 in formatFlags ? formatFlags[$0](dateObj) : $0.slice(1, $0.length - 1);
3854
+ });
3855
+ // Inline literal values back into the formatted value
3856
+ return mask.replace(/@@@/g, function() {
3857
+ return literals.shift();
3858
+ });
3859
+ };
3860
+
3861
+ /**
3862
+ * Parse a date string into an object, changes - into /
3863
+ * @method parse
3864
+ * @param {string} dateStr Date string
3865
+ * @param {string} format Date parse format
3866
+ * @returns {Date|boolean}
3867
+ */
3868
+ fecha.parse = function (dateStr, format) {
3869
+ if (typeof format !== 'string') {
3870
+ throw new Error('Invalid format in fecha.parse');
3871
+ }
3872
+
3873
+ format = fecha.masks[format] || format;
3874
+
3875
+ // Avoid regular expression denial of service, fail early for really long strings
3876
+ // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
3877
+ if (dateStr.length > 1000) {
3878
+ return null;
3879
+ }
3880
+
3881
+ const dateInfo = {};
3882
+ const parseInfo = [];
3883
+ const literals = [];
3884
+ format = format.replace(literal, function($0, $1) {
3885
+ literals.push($1);
3886
+ return '@@@';
3887
+ });
3888
+ let newFormat = regexEscape(format).replace(token, function ($0) {
3889
+ if (parseFlags[$0]) {
3890
+ const info = parseFlags[$0];
3891
+ parseInfo.push(info[1]);
3892
+ return '(' + info[0] + ')';
3893
+ }
3894
+
3895
+ return $0;
3896
+ });
3897
+ newFormat = newFormat.replace(/@@@/g, function() {
3898
+ return literals.shift();
3899
+ });
3900
+ const matches = dateStr.match(new RegExp(newFormat, 'i'));
3901
+ if (!matches) {
3902
+ return null;
3903
+ }
3904
+
3905
+ for (let i = 1; i < matches.length; i++) {
3906
+ parseInfo[i - 1](dateInfo, matches[i]);
3907
+ }
3908
+
3909
+ const today = new Date();
3910
+ if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
3911
+ dateInfo.hour = +dateInfo.hour + 12;
3912
+ } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
3913
+ dateInfo.hour = 0;
3914
+ }
3915
+
3916
+ let date;
3917
+ if (dateInfo.timezoneOffset != null) {
3918
+ dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
3919
+ date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
3920
+ dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
3921
+ } else {
3922
+ date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
3923
+ dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
3924
+ }
3925
+ return date;
3926
+ };
3927
+
3928
+ // 导出fecha对象
3929
+
3930
+
3931
+ // 以下是从date-util.js合并的函数
3932
+ const newArray = function(start, end) {
3933
+ let result = [];
3934
+ for (let i = start; i <= end; i++) {
3935
+ result.push(i);
3936
+ }
3937
+ return result;
3938
+ };
3939
+
3940
+ const getSettings = () => {
3941
+ return {
3942
+ dayNamesShort: ['日', '一', '二', '三', '四', '五', '六'],
3943
+ dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
3944
+ monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
3945
+ monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
3946
+ amPm: ['上午', '下午']
3947
+ };
3948
+ };
3949
+
3950
+ const toDate = function(date) {
3951
+ return isDate(date) ? new Date(date) : null;
3952
+ };
3953
+
3954
+ const isDate = function(date) {
3955
+ if (date === null || date === undefined) return false;
3956
+ if (isNaN(new Date(date).getTime())) return false;
3957
+ if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
3958
+ return true;
3959
+ };
3960
+
3961
+ const isDateObject = function(val) {
3962
+ return val instanceof Date;
3963
+ };
3964
+
3965
+ const formatDate = function (date, format = 'yyyy-MM-dd') {
3966
+ // 处理多种输入类型
3967
+ if (!date) return '';
3968
+
3969
+ // 如果是时间戳,转成日期对象
3970
+ if (typeof date === 'number') {
3971
+ date = new Date(date);
3972
+ }
3973
+ // 如果是字符串,转成日期对象
3974
+ if (typeof date === 'string') {
3975
+ date = new Date(date);
3976
+ }
3977
+
3978
+ // 调用toDate进一步验证和转换
3979
+ date = toDate(date);
3980
+ if (!date) return '';
3981
+
3982
+ // 兼容大写和小写的格式标记
3983
+ // 将大写的YYYY/MM/DD/HH/mm/ss转换为小写的yyyy/mm/dd/hh/mm/ss
3984
+ const lowercaseFormat = format
3985
+ .replace(/YYYY/g, 'yyyy')
3986
+ .replace(/D/g, 'd')
3987
+
3988
+ // 使用fecha库进行格式化,支持中文配置
3989
+ const str = fecha.format(date, lowercaseFormat, getSettings());
3990
+ return str;
3991
+ };
3992
+
3993
+ const parseDate = function(string, format) {
3994
+ return fecha.parse(string, format || 'yyyy-MM-dd', getSettings());
3995
+ };
3996
+
3997
+ const getDayCountOfMonth = function(year, month) {
3998
+ if (month === 3 || month === 5 || month === 8 || month === 10) {
3999
+ return 30;
4000
+ }
4001
+
4002
+ if (month === 1) {
4003
+ if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
4004
+ return 29;
4005
+ } else {
4006
+ return 28;
4007
+ }
4008
+ }
4009
+
4010
+ return 31;
4011
+ };
4012
+
4013
+ const getDayCountOfYear = function(year) {
4014
+ const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
4015
+ return isLeapYear ? 366 : 365;
4016
+ };
4017
+
4018
+ const getFirstDayOfMonth = function(date) {
4019
+ const temp = new Date(date.getTime());
4020
+ temp.setDate(1);
4021
+ return temp.getDay();
4022
+ };
4023
+
4024
+ // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
4025
+ // {prev, next} Date should work for Daylight Saving Time
4026
+ // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
4027
+ const prevDate = function(date, amount = 1) {
4028
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
4029
+ };
4030
+
4031
+ const nextDate = function(date, amount = 1) {
4032
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
4033
+ };
4034
+
4035
+ const getStartDateOfMonth = function(year, month) {
4036
+ const result = new Date(year, month, 1);
4037
+ const day = result.getDay();
4038
+
4039
+ if (day === 0) {
4040
+ return prevDate(result, 7);
4041
+ } else {
4042
+ return prevDate(result, day);
4043
+ }
4044
+ };
4045
+
4046
+ const getWeekNumber = function(date) {
4047
+ // 支持多种输入类型
4048
+ if (!date||!isDate(date)) {
4049
+ date = new Date();
4050
+ }
4051
+ if (typeof date === 'string') {
4052
+ date = new Date(date);
4053
+ }
4054
+
4055
+ // 验证日期有效性
4056
+ if (!isDate(date)) return null;
4057
+
4058
+ const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
4059
+ // 设置为最近的星期四:当前日期 + 4 - 当前星期数
4060
+ // 将星期日的星期数设为7
4061
+ d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
4062
+ // 获取当年的第一天
4063
+ const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
4064
+ // 计算到最近的星期四的完整周数
4065
+ const weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
4066
+ // 返回周数
4067
+ return weekNo;
4068
+ };
4069
+
4070
+ const getRangeHours = function(ranges) {
4071
+ const hours = [];
4072
+ let disabledHours = [];
4073
+
4074
+ (ranges || []).forEach(range => {
4075
+ const value = range.map(date => date.getHours());
4076
+
4077
+ disabledHours = disabledHours.concat(newArray(value[0], value[1]));
4078
+ });
4079
+
4080
+ if (disabledHours.length) {
4081
+ for (let i = 0; i < 24; i++) {
4082
+ hours[i] = disabledHours.indexOf(i) === -1;
4083
+ }
4084
+ } else {
4085
+ for (let i = 0; i < 24; i++) {
4086
+ hours[i] = false;
4087
+ }
4088
+ }
4089
+
4090
+ return hours;
4091
+ };
4092
+
4093
+ const getPrevMonthLastDays = (date, amount) => {
4094
+ if (amount <= 0) return [];
4095
+ const temp = new Date(date.getTime());
4096
+ temp.setDate(0);
4097
+ const lastDay = temp.getDate();
4098
+ return range(amount).map((_, index) => lastDay - (amount - index - 1));
4099
+ };
4100
+
4101
+ const getMonthDays = (date) => {
4102
+ const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
4103
+ const days = temp.getDate();
4104
+ return range(days).map((_, index) => index + 1);
4105
+ };
4106
+
4107
+ function setRangeData(arr, start, end, value) {
4108
+ for (let i = start; i < end; i++) {
4109
+ arr[i] = value;
4110
+ }
4111
+ }
4112
+
4113
+ const getRangeMinutes = function(ranges, hour) {
4114
+ const minutes = new Array(60);
4115
+
4116
+ if (ranges.length > 0) {
4117
+ ranges.forEach(range => {
4118
+ const start = range[0];
4119
+ const end = range[1];
4120
+ const startHour = start.getHours();
4121
+ const startMinute = start.getMinutes();
4122
+ const endHour = end.getHours();
4123
+ const endMinute = end.getMinutes();
4124
+ if (startHour === hour && endHour !== hour) {
4125
+ setRangeData(minutes, startMinute, 60, true);
4126
+ } else if (startHour === hour && endHour === hour) {
4127
+ setRangeData(minutes, startMinute, endMinute + 1, true);
4128
+ } else if (startHour !== hour && endHour === hour) {
4129
+ setRangeData(minutes, 0, endMinute + 1, true);
4130
+ } else if (startHour < hour && endHour > hour) {
4131
+ setRangeData(minutes, 0, 60, true);
4132
+ }
4133
+ });
4134
+ } else {
4135
+ setRangeData(minutes, 0, 60, true);
4136
+ }
4137
+ return minutes;
4138
+ };
4139
+
4140
+ const range = function(n) {
4141
+ // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
4142
+ return Array.apply(null, {length: n}).map((_, n) => n);
4143
+ };
4144
+
4145
+ const modifyDate = function(date, y, m, d) {
4146
+ return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
4147
+ };
4148
+
4149
+ const modifyTime = function(date, h, m, s) {
4150
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
4151
+ };
4152
+
4153
+ const modifyWithTimeString = (date, time) => {
4154
+ if (date == null || !time) {
4155
+ return date;
4156
+ }
4157
+ time = parseDate(time, 'HH:mm:ss');
4158
+ return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
4159
+ };
4160
+
4161
+ const clearTime = function(date) {
4162
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
4163
+ };
4164
+
4165
+ const clearMilliseconds = function(date) {
4166
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
4167
+ };
4168
+
4169
+ const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
4170
+ // TODO: refactory a more elegant solution
4171
+ if (ranges.length === 0) return date;
4172
+ const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
4173
+ const ndate = normalizeDate(date);
4174
+ const nranges = ranges.map(range => range.map(normalizeDate));
4175
+ if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
4176
+
4177
+ let minDate = nranges[0][0];
4178
+ let maxDate = nranges[0][0];
4179
+
4180
+ nranges.forEach(nrange => {
4181
+ minDate = new Date(Math.min(nrange[0], minDate));
4182
+ maxDate = new Date(Math.max(nrange[1], minDate));
4183
+ });
4184
+
4185
+ const ret = ndate < minDate ? minDate : maxDate;
4186
+ // preserve Year/Month/Date
4187
+ return modifyDate(
4188
+ ret,
4189
+ date.getFullYear(),
4190
+ date.getMonth(),
4191
+ date.getDate()
4192
+ );
4193
+ };
4194
+
4195
+ const timeWithinRange = function(date, selectableRange, format) {
4196
+ const limitedDate = limitTimeRange(date, selectableRange, format);
4197
+ return limitedDate.getTime() === date.getTime();
4198
+ };
4199
+
4200
+ const changeYearMonthAndClampDate = function(date, year, month) {
4201
+ // clamp date to the number of days in `year`, `month`
4202
+ // eg: (2010-1-31, 2010, 2) => 2010-2-28
4203
+ const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
4204
+ return modifyDate(date, year, month, monthDate);
4205
+ };
4206
+
4207
+ const prevMonth = function(date) {
4208
+ const year = date.getFullYear();
4209
+ const month = date.getMonth();
4210
+ return month === 0
4211
+ ? changeYearMonthAndClampDate(date, year - 1, 11)
4212
+ : changeYearMonthAndClampDate(date, year, month - 1);
4213
+ };
4214
+
4215
+ const nextMonth = function(date) {
4216
+ const year = date.getFullYear();
4217
+ const month = date.getMonth();
4218
+ return month === 11
4219
+ ? changeYearMonthAndClampDate(date, year + 1, 0)
4220
+ : changeYearMonthAndClampDate(date, year, month + 1);
4221
+ };
4222
+
4223
+ const prevYear = function(date, amount = 1) {
4224
+ const year = date.getFullYear();
4225
+ const month = date.getMonth();
4226
+ return changeYearMonthAndClampDate(date, year - amount, month);
4227
+ };
4228
+
4229
+ const nextYear = function(date, amount = 1) {
4230
+ const year = date.getFullYear();
4231
+ const month = date.getMonth();
4232
+ return changeYearMonthAndClampDate(date, year + amount, month);
4233
+ };
4234
+
4235
+ const extractDateFormat = function(format) {
4236
+ return format
4237
+ .replace(/\W?m{1,2}|\W?ZZ/g, '')
4238
+ .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
4239
+ .trim();
4240
+ };
4241
+
4242
+ const extractTimeFormat = function(format) {
4243
+ return format
4244
+ .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
4245
+ .trim();
4246
+ };
4247
+
4248
+ const validateRangeInOneMonth = function(start, end) {
4249
+ return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
4250
+ };
4251
+
4252
+ /**
4253
+ * 计算两个日期之间的工作日数量(不包括周末和节假日)
4254
+ * @param {string} start_date - 开始日期字符串,格式为 "YYYY-MM-DD"
4255
+ * @param {string} end_date - 结束日期字符串,格式为 "YYYY-MM-DD"
4256
+ * @param {Array<string>} holidays - 假期日期字符串数组,格式为 "YYYY-MM-DD"
4257
+ * @returns {number} 工作日数量
4258
+ */
4259
+ const calculateNetworkDays = function (start_date, end_date, holidays = []) {
4260
+ if (typeof start_date !== 'string' || typeof end_date !== 'string') {
4261
+ throw new Error(
4262
+ "Invalid input. Please provide valid date strings in the format 'YYYY-MM-DD'."
4263
+ );
4264
+ }
4265
+
4266
+ const startDateObj = new Date(start_date);
4267
+ const endDateObj = new Date(end_date);
4268
+
4269
+ if (isNaN(startDateObj.getTime()) || isNaN(endDateObj.getTime())) {
4270
+ throw new Error(
4271
+ "Invalid date format. Please provide valid date strings in the format 'YYYY-MM-DD'."
4272
+ );
4273
+ }
4274
+
4275
+ if (startDateObj > endDateObj) {
4276
+ throw new Error('Start date should be earlier than or equal to end date.');
4277
+ }
4278
+
4279
+ let workdays = 0;
4280
+
4281
+ // Iterate through each day in the date range
4282
+ for (
4283
+ let currentDate = new Date(startDateObj);
4284
+ currentDate <= endDateObj;
4285
+ currentDate.setDate(currentDate.getDate() + 1)
4286
+ ) {
4287
+ // Check if the current day is a weekend (Saturday or Sunday)
4288
+ const isWeekend = currentDate.getDay() === 0 || currentDate.getDay() === 6;
4289
+
4290
+ // Check if the current day is a holiday
4291
+ const isHoliday = holidays.some((holiday) => {
4292
+ const holidayDate = new Date(holiday);
4293
+ return currentDate.toDateString() === holidayDate.toDateString();
4294
+ });
4295
+
4296
+ // If it's a workday (not a weekend or holiday), increment the workdays count
4297
+ if (!isWeekend && !isHoliday) {
4298
+ workdays++;
4299
+ }
4300
+ }
4301
+
4302
+ return workdays;
4303
+ };
4304
+
4359
4305
  /**
4360
- * v-clickoutside
4361
- * @desc 点击元素外面才会触发的事件
4362
- * @example
4363
- * ```vue
4364
- * <div v-element-clickoutside="handleClose">
4365
- * ```
4366
- */
4367
- /* harmony default export */ __webpack_exports__["a"] = ({
4368
- bind: function bind(el, binding, vnode) {
4369
- nodeList.push(el);
4370
- var id = seed++;
4371
- el[ctx] = {
4372
- id: id,
4373
- documentHandler: createDocumentHandler(el, binding, vnode),
4374
- methodName: binding.expression,
4375
- bindingFn: binding.value
4376
- };
4377
- },
4378
- update: function update(el, binding, vnode) {
4379
- el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);
4380
- el[ctx].methodName = binding.expression;
4381
- el[ctx].bindingFn = binding.value;
4382
- },
4383
- unbind: function unbind(el) {
4384
- var len = nodeList.length;
4306
+ * 日期加减天数
4307
+ * @param {string} start_date - 起始日期字符串,格式为 "YYYY-MM-DD"
4308
+ * @param {number} days - 要加上或减去的天数,正数表示加,负数表示减
4309
+ * @returns {string} 结果日期,格式为 "YYYY-MM-DD"
4310
+ */
4311
+ const dateAddDays = function (start_date, days) {
4312
+ if (typeof start_date !== 'string' || !Number.isInteger(days)) {
4313
+ throw new Error(
4314
+ "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD' and a valid integer for the number of days."
4315
+ );
4316
+ }
4317
+
4318
+ const startDateObj = new Date(start_date);
4319
+ if (isNaN(startDateObj.getTime())) {
4320
+ throw new Error(
4321
+ "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
4322
+ );
4323
+ }
4324
+
4325
+ const resultDateObj = new Date(startDateObj);
4326
+ resultDateObj.setDate(resultDateObj.getDate() + days);
4327
+
4328
+ const resultYear = resultDateObj.getFullYear();
4329
+ const resultMonth = String(resultDateObj.getMonth() + 1).padStart(2, '0');
4330
+ const resultDay = String(resultDateObj.getDate()).padStart(2, '0');
4331
+
4332
+ return `${resultYear}-${resultMonth}-${resultDay}`;
4333
+ };
4334
+
4335
+ /**
4336
+ * 计算两个日期之间的差值
4337
+ * @date 2023年12月14日
4338
+ * @param {String} start_date - 起始日期字符串
4339
+ * @param {String} end_date - 结束日期字符串
4340
+ * @param {String} unit - 单位:year/month/day
4341
+ * @returns {Number} 差值
4342
+ */
4343
+ const dateDiff = function (start_date, end_date, unit = 'day') {
4344
+ // Assuming date strings are in "YYYY-MM-DD" format
4345
+ var startDate = new Date(start_date);
4346
+ var endDate = new Date(end_date);
4347
+
4348
+ // If the date is invalid, return 0
4349
+ if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
4350
+ return 0;
4351
+ }
4352
+
4353
+ if (unit === 'year') {
4354
+ return endDate.getFullYear() - startDate.getFullYear();
4355
+ } else if (unit === 'month') {
4356
+ return (
4357
+ (endDate.getFullYear() - startDate.getFullYear()) * 12 +
4358
+ (endDate.getMonth() - startDate.getMonth())
4359
+ );
4360
+ } else {
4361
+ // Default to day
4362
+ var timeDifference = endDate - startDate;
4363
+ // Calculate days (86400000 milliseconds per day)
4364
+ return Math.floor(timeDifference / 86400000);
4365
+ }
4366
+ };
4367
+
4368
+ /**
4369
+ * 获取月份中的日期
4370
+ * @param {string} date - 日期字符串,格式为 "YYYY-MM-DD"
4371
+ * @returns {number} 月份中的日期(1-31)
4372
+ */
4373
+ const dayOfMonth = function (date) {
4374
+ if (typeof date !== 'string') {
4375
+ throw new Error(
4376
+ "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD'."
4377
+ );
4378
+ }
4379
+
4380
+ const dateObj = new Date(date);
4381
+ if (isNaN(dateObj.getTime())) {
4382
+ throw new Error(
4383
+ "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
4384
+ );
4385
+ }
4386
+
4387
+ return dateObj.getDate();
4388
+ };
4389
+
4390
+ /**
4391
+ * 获取当前日期
4392
+ * @date 2022年5月7日
4393
+ * @param {string} format - 日期格式,默认为'YYYY-MM-DD'
4394
+ * @returns {string} 当前日期的格式化字符串
4395
+ */
4396
+ const getCurrentDate = function (format = 'YYYY-MM-DD') {
4397
+ return formatDate(new Date(), format);
4398
+ };
4399
+
4400
+ /**
4401
+ * 获取当前日期时间
4402
+ * @date 2022年5月7日
4403
+ * @param {string} format - 日期时间格式,默认为'YYYY-MM-DD HH:mm:ss'
4404
+ * @returns {string} 当前日期时间的格式化字符串
4405
+ */
4406
+ const getCurrentDateTime = function (format = 'YYYY-MM-DD HH:mm:ss') {
4407
+ return formatDate(new Date(), format);
4408
+ };
4409
+
4410
+ /**
4411
+ * 获取小时
4412
+ * @date 2022年5月7日
4413
+ * @param {Date|string} [date] - 日期对象或日期字符串
4414
+ * @returns {number} 小时数(0-23)
4415
+ */
4416
+ const getHour = function (date) {
4417
+ if (!date) {
4418
+ return new Date().getHours();
4419
+ }
4420
+ if (typeof date === 'string') {
4421
+ date = new Date(date);
4422
+ }
4423
+ return date.getHours();
4424
+ };
4425
+
4426
+ /**
4427
+ * 获取分钟
4428
+ * @date 2022年5月7日
4429
+ * @param {Date|string} [date] - 日期对象或日期字符串
4430
+ * @returns {number} 分钟数(0-59)
4431
+ */
4432
+ const getMinute = function (date) {
4433
+ if (!date) {
4434
+ return new Date().getMinutes();
4435
+ }
4436
+ if (typeof date === 'string') {
4437
+ date = new Date(date);
4438
+ }
4439
+ return date.getMinutes();
4440
+ };
4441
+
4442
+ /**
4443
+ * 获取月份
4444
+ * @date 2022年5月7日
4445
+ * @param {Date|string} [date] - 日期对象或日期字符串
4446
+ * @returns {number} 月份数(1-12)
4447
+ */
4448
+ const getMonth = function (date) {
4449
+ if (!date) {
4450
+ return new Date().getMonth() + 1;
4451
+ }
4452
+ if (typeof date === 'string') {
4453
+ date = new Date(date);
4454
+ }
4455
+ return date.getMonth() + 1;
4456
+ };
4457
+
4458
+ /**
4459
+ * 获取秒
4460
+ * @date 2022年5月7日
4461
+ * @param {Date|string} [date] - 日期对象或日期字符串
4462
+ * @returns {number} 秒数(0-59)
4463
+ */
4464
+ const getSecond = function (date) {
4465
+ if (!date) {
4466
+ return new Date().getSeconds();
4467
+ }
4468
+ if (typeof date === 'string') {
4469
+ date = new Date(date);
4470
+ }
4471
+ return date.getSeconds();
4472
+ };
4473
+
4474
+ /**
4475
+ * 获取星期几
4476
+ * @date 2022年5月7日
4477
+ * @param {Date|string} [date] - 日期对象或日期字符串
4478
+ * @returns {number} 星期几(0-6,0表示星期日)
4479
+ */
4480
+ const getWeekday = function (date) {
4481
+ if (!date) {
4482
+ return new Date().getDay();
4483
+ }
4484
+ if (typeof date === 'string') {
4485
+ date = new Date(date);
4486
+ }
4487
+ return date.getDay();
4488
+ };
4489
+
4490
+
4491
+ /**
4492
+ * @desc 获取上午/下午/晚上
4493
+ * @author huangbo
4494
+ * @date 2022年5月7日
4495
+ * @param {String} [time] - 时间
4496
+ **/
4497
+ const timeCycle = function (time) {
4498
+ let hour = 0;
4499
+ if (!time) {
4500
+ hour = new Date().getHours();
4501
+ } else if (typeof time === 'string') {
4502
+ // 从时间字符串中提取小时
4503
+ const match = time.match(/^(\d{1,2})/);
4504
+ if (match) {
4505
+ hour = parseInt(match[1], 10);
4506
+ }
4507
+ } else if (typeof time === 'number') {
4508
+ hour = time;
4509
+ }
4510
+ // 判断时间段
4511
+ if (hour >= 5 && hour < 12) {
4512
+ return '上午';
4513
+ } else if (hour >= 12 && hour < 18) {
4514
+ return '下午';
4515
+ } else {
4516
+ return '晚上';
4517
+ }
4518
+ };
4385
4519
 
4386
- for (var i = 0; i < len; i++) {
4387
- if (nodeList[i][ctx].id === el[ctx].id) {
4388
- nodeList.splice(i, 1);
4389
- break;
4390
- }
4391
- }
4392
- delete el[ctx];
4393
- }
4394
- });
4520
+ /***/ }),
4521
+
4522
+ /***/ 20:
4523
+ /***/ (function(module, exports) {
4524
+
4525
+ module.exports = require("lodash/set");
4526
+
4527
+ /***/ }),
4528
+
4529
+ /***/ 21:
4530
+ /***/ (function(module, exports) {
4531
+
4532
+ module.exports = require("lodash/cloneDeep");
4395
4533
 
4396
4534
  /***/ }),
4397
4535
 
4398
- /***/ 198:
4536
+ /***/ 212:
4399
4537
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4400
4538
 
4401
4539
  "use strict";
@@ -4506,24 +4644,24 @@ render._withStripped = true
4506
4644
  // CONCATENATED MODULE: ./packages/dropdown/src/dropdown.vue?vue&type=template&id=cf516038&
4507
4645
 
4508
4646
  // EXTERNAL MODULE: ./src/utils/clickoutside.js
4509
- var clickoutside = __webpack_require__(19);
4647
+ var clickoutside = __webpack_require__(22);
4510
4648
 
4511
4649
  // EXTERNAL MODULE: ./src/mixins/emitter.js
4512
4650
  var emitter = __webpack_require__(10);
4513
4651
 
4514
4652
  // EXTERNAL MODULE: ./src/mixins/migrating.js
4515
- var migrating = __webpack_require__(27);
4653
+ var migrating = __webpack_require__(28);
4516
4654
 
4517
4655
  // EXTERNAL MODULE: external "eoss/lib/button"
4518
- var button_ = __webpack_require__(28);
4656
+ var button_ = __webpack_require__(27);
4519
4657
  var button_default = /*#__PURE__*/__webpack_require__.n(button_);
4520
4658
 
4521
4659
  // EXTERNAL MODULE: external "eoss/lib/button-group"
4522
- var button_group_ = __webpack_require__(86);
4660
+ var button_group_ = __webpack_require__(87);
4523
4661
  var button_group_default = /*#__PURE__*/__webpack_require__.n(button_group_);
4524
4662
 
4525
4663
  // EXTERNAL MODULE: external "eoss/lib/dropdown-menu"
4526
- var dropdown_menu_ = __webpack_require__(93);
4664
+ var dropdown_menu_ = __webpack_require__(96);
4527
4665
  var dropdown_menu_default = /*#__PURE__*/__webpack_require__.n(dropdown_menu_);
4528
4666
 
4529
4667
  // EXTERNAL MODULE: ./src/utils/util.js
@@ -5234,266 +5372,135 @@ dropdown.install = function (Vue) {
5234
5372
 
5235
5373
  /***/ }),
5236
5374
 
5237
- /***/ 2:
5375
+ /***/ 22:
5238
5376
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5239
5377
 
5240
5378
  "use strict";
5241
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return setStorage; });
5242
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getStorage; });
5243
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return removeStorage; });
5244
- /* unused harmony export setCookie */
5245
- /* unused harmony export getCookie */
5246
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
5247
-
5248
- /**
5249
- * setStorage
5250
- * @desc:设置本地储存数据
5251
- * @author huangbo
5252
- * @date 2022年5月7日
5253
- * @param {String|Object} [key] - 数据的名称或包含type、key、value的对象
5254
- * @param {String} [value] - 数据的值(当第一个参数为字符串时使用)
5255
- **/
5256
- var setStorage = function setStorage(key, value) {
5257
- // 解析参数,支持两种调用方式:setStorage(key, value) 和 setStorage({type, key, value})
5258
- var type = void 0,
5259
- finalKey = void 0,
5260
- finalValue = void 0;
5261
-
5262
- if ((typeof key === 'undefined' ? 'undefined' : _typeof(key)) === 'object' && key !== null) {
5263
- // 对象调用方式:setStorage({type, key, value})
5264
- type = key.type;
5265
- finalKey = key.key;
5266
- finalValue = key.value;
5267
- } else {
5268
- // 字符串调用方式:setStorage(key, value)
5269
- type = getStorage('storageType');
5270
- finalKey = key;
5271
- finalValue = value;
5272
- }
5273
-
5274
- // 使用默认存储类型如果未指定
5275
- type = type || getStorage('storageType');
5276
-
5277
- // 获取存储对象
5278
- var storage = type === 'localStorage' ? localStorage : sessionStorage;
5279
-
5280
- // 处理不同类型的key
5281
- if (typeof finalKey === 'string') {
5282
- // 单个字符串key
5283
- var storedValue = (typeof finalValue === 'undefined' ? 'undefined' : _typeof(finalValue)) === 'object' ? JSON.stringify(finalValue) : finalValue;
5284
- storage.setItem(finalKey, storedValue);
5285
- if (finalKey === 'token') {
5286
- setCookie('token', storedValue);
5287
- }
5288
- } else if (Array.isArray(finalKey)) {
5289
- // 数组key,为多个key设置同一个value
5290
- var _storedValue = (typeof finalValue === 'undefined' ? 'undefined' : _typeof(finalValue)) === 'object' ? JSON.stringify(finalValue) : finalValue;
5291
- for (var i = 0; i < finalKey.length; i++) {
5292
- storage.setItem(finalKey[i], _storedValue);
5293
- if (finalKey[i] === 'token') {
5294
- setCookie('token', _storedValue);
5295
- }
5296
- }
5297
- } else if ((typeof finalKey === 'undefined' ? 'undefined' : _typeof(finalKey)) === 'object' && finalKey !== null) {
5298
- // 对象key,对象的属性名称作为key,属性值作为value
5299
- for (var k in finalKey) {
5300
- if (Object.prototype.hasOwnProperty.call(finalKey, k)) {
5301
- var _storedValue2 = _typeof(finalKey[k]) === 'object' ? JSON.stringify(finalKey[k]) : finalKey[k];
5302
- storage.setItem(k, _storedValue2);
5303
- if (k === 'token') {
5304
- setCookie('token', _storedValue2);
5305
- }
5306
- }
5307
- }
5308
- }
5309
- };
5310
-
5311
- /**
5312
- * getStorage
5313
- * @desc:获取本地储存数据
5314
- * @author huangbo
5315
- * @date 2022年5月7日
5316
- * @param {String} [key] - 获取的名称
5317
- **/
5318
- var getStorage = function getStorage(key) {
5319
- if (key) {
5320
- var res = sessionStorage.getItem(key) || localStorage.getItem(key);
5321
- if (!res && key === 'token') {
5322
- res = getCookie('token');
5323
- }
5324
- if (key === 'host' && !res) {
5325
- res = '';
5326
- }
5327
- return res;
5328
- }
5329
- var defaults = {};
5330
- var token = sessionStorage.getItem('token') || localStorage.getItem('token') || getCookie('token');
5331
- var ssId = sessionStorage.getItem('ssId') || localStorage.getItem('ssId') || getCookie('ssId');
5332
-
5333
- var deviceUnique = sessionStorage.getItem('deviceUnique') || localStorage.getItem('deviceUnique') || getCookie('deviceUnique');
5334
- if (token) {
5335
- defaults.Authorization = token;
5336
- }
5337
- if (ssId) {
5338
- defaults.ssId = ssId;
5339
- }
5340
- if (deviceUnique) {
5341
- defaults.deviceUnique = deviceUnique;
5342
- }
5343
- return defaults;
5344
- };
5345
-
5346
- /**
5347
- * removeStorage
5348
- * @desc:删除本地储存数据
5349
- * @author huangbo
5350
- * @date 2022年5月7日
5351
- * @param {String, Array} [key] - 获取的名称
5352
- **/
5353
- var removeStorage = function removeStorage(key) {
5354
- if (Array.isArray(key)) {
5355
- for (var i = 0; i < key.length; i++) {
5356
- sessionStorage.removeItem(key[i]);
5357
- localStorage.removeItem(key[i]);
5358
- if (key[i] === 'token') {
5359
- removeCookie('token');
5360
- }
5361
- }
5362
- } else if (key) {
5363
- sessionStorage.removeItem(key);
5364
- localStorage.removeItem(key);
5365
- if (key === 'token') {
5366
- removeCookie('token');
5367
- }
5368
- } else {
5369
- sessionStorage.clear();
5370
- localStorage.clear();
5371
- removeCookie('token');
5372
- }
5373
- };
5379
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
5380
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
5381
+ /* harmony import */ var eoss_src_utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
5374
5382
 
5375
- /**
5376
- * setCookie
5377
- * @desc 设置cookie
5378
- * @author huangbo
5379
- * @param {string} [name] cookie名称
5380
- * @param {string} [value] cookie值
5381
- * @param {boolean} [isSession] 是否是会话cookie
5382
- **/
5383
- var setCookie = function setCookie(name, value) {
5384
- var isSession = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
5385
- var time = arguments[3];
5386
5383
 
5387
- try {
5388
- var cookieParts = [encodeURIComponent(name) + '=' + encodeURIComponent(value), 'path=/' // 仅保留path设置,确保全站访问
5389
- ];
5390
- // 会话/持久Cookie设置
5391
- if (!isSession) {
5392
- if (/MSIE|Trident/.test(navigator.userAgent)) {
5393
- // IE使用expires
5394
- var date = new Date();
5395
- date.setTime(date.getTime() + (time || 7 * 24 * 60 * 60 * 1000));
5396
- cookieParts.push('expires=' + date.toUTCString());
5397
- } else {
5398
- // 其他浏览器使用max-age
5399
- cookieParts.push('max-age=' + (time || 7 * 24 * 60 * 60));
5400
- }
5401
- }
5402
- // 内核兼容处理
5403
- if (/MSIE|Trident/.test(navigator.userAgent)) {
5404
- // IE特殊处理:添加P3P协议头
5405
- cookieParts.push('P3P=CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
5406
- } else {
5407
- // 现代浏览器设置
5408
- cookieParts.push('samesite=lax');
5409
- if (window.location.protocol === 'https:') {
5410
- cookieParts.push('secure');
5411
- }
5412
- }
5413
5384
 
5414
- // 设置Cookie
5415
- document.cookie = cookieParts.join('; ');
5416
- return true;
5417
- } catch (e) {
5418
- console.error('Cookie设置失败:', e);
5419
- return false;
5420
- }
5421
- };
5385
+ var nodeList = [];
5386
+ var ctx = '@@clickoutsideContext';
5422
5387
 
5423
- /**
5424
- * getCookie
5425
- * @desc 获取cookie中指定名称的值
5426
- * @author huangbo
5427
- * @param {string} [name] cookie名称
5428
- **/
5429
- var getCookie = function getCookie(name) {
5430
- var cookies = document.cookie.split(';');
5431
- for (var _iterator = cookies, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
5432
- var _ref;
5388
+ var startClick = void 0;
5389
+ var seed = 0;
5433
5390
 
5434
- if (_isArray) {
5435
- if (_i >= _iterator.length) break;
5436
- _ref = _iterator[_i++];
5437
- } else {
5438
- _i = _iterator.next();
5439
- if (_i.done) break;
5440
- _ref = _i.value;
5441
- }
5391
+ !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && Object(eoss_src_utils_dom__WEBPACK_IMPORTED_MODULE_1__[/* on */ "g"])(document, 'mousedown', function (e) {
5392
+ return startClick = e;
5393
+ });
5442
5394
 
5443
- var cookie = _ref;
5395
+ !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && Object(eoss_src_utils_dom__WEBPACK_IMPORTED_MODULE_1__[/* on */ "g"])(document, 'mouseup', function (e) {
5396
+ nodeList.forEach(function (node) {
5397
+ return node[ctx].documentHandler(e, startClick);
5398
+ });
5399
+ });
5444
5400
 
5445
- var _cookie$trim$split = cookie.trim().split('='),
5446
- cookieName = _cookie$trim$split[0],
5447
- cookieValue = _cookie$trim$split[1];
5401
+ function createDocumentHandler(el, binding, vnode) {
5402
+ return function () {
5403
+ var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5404
+ var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5448
5405
 
5449
- if (decodeURIComponent(cookieName) === name) {
5450
- return decodeURIComponent(cookieValue);
5406
+ if (!vnode || !vnode.context || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || el.contains(mousedown.target) || el === mouseup.target) {
5407
+ return;
5451
5408
  }
5452
- }
5453
- return null;
5454
- };
5455
5409
 
5456
- /**
5457
- * removeCookie
5458
- * @desc:删除cookie
5459
- * @author huangbo
5460
- * @date 2022年5月7日
5461
- * @param {String, Array} [key] - 获取的名称
5462
- **/
5463
- var removeCookie = function removeCookie(key) {
5464
- if (Array.isArray(key)) {
5465
- for (var i = 0; i < key.length; i++) {
5466
- document.cookie = encodeURIComponent(key[i]) + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
5467
- }
5468
- } else {
5469
- document.cookie = encodeURIComponent(key) + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
5470
- }
5471
- };
5410
+ var context = vnode.context;
5472
5411
 
5473
- /***/ }),
5412
+ // 检查点击是否在 popperElm 内部,即使它已经被添加到 document.body 中
5413
+ if (context.popperElm) {
5414
+ try {
5415
+ if (context.popperElm.contains(mouseup.target) || context.popperElm.contains(mousedown.target)) {
5416
+ return;
5417
+ }
5418
+ } catch (e) {
5419
+ // 如果 popperElm 已经被销毁,忽略错误
5420
+ }
5421
+ }
5474
5422
 
5475
- /***/ 20:
5476
- /***/ (function(module, exports) {
5423
+ // 检查是否有其他相关的 popper 元素
5424
+ if (context.popper) {
5425
+ try {
5426
+ if (context.popper.contains(mouseup.target) || context.popper.contains(mousedown.target)) {
5427
+ return;
5428
+ }
5429
+ } catch (e) {
5430
+ // 如果 popper 已经被销毁,忽略错误
5431
+ }
5432
+ }
5477
5433
 
5478
- module.exports = require("lodash/get");
5434
+ // 检查是否有其他相关的弹出元素(如 autocomplete 的建议列表)
5435
+ if (context.suggestions && context.suggestions.length > 0) {
5436
+ // 尝试找到建议列表的 DOM 元素
5437
+ var suggestionsElm = document.querySelector('.es-autocomplete-suggestion');
5438
+ if (suggestionsElm) {
5439
+ try {
5440
+ if (suggestionsElm.contains(mouseup.target) || suggestionsElm.contains(mousedown.target)) {
5441
+ return;
5442
+ }
5443
+ } catch (e) {
5444
+ // 如果元素已经被销毁,忽略错误
5445
+ }
5446
+ }
5447
+ }
5479
5448
 
5480
- /***/ }),
5449
+ if (binding.expression && el[ctx].methodName && context[el[ctx].methodName]) {
5450
+ context[el[ctx].methodName]();
5451
+ } else {
5452
+ el[ctx].bindingFn && el[ctx].bindingFn();
5453
+ }
5454
+ };
5455
+ }
5481
5456
 
5482
- /***/ 21:
5483
- /***/ (function(module, exports) {
5457
+ /**
5458
+ * v-clickoutside
5459
+ * @desc 点击元素外面才会触发的事件
5460
+ * @example
5461
+ * ```vue
5462
+ * <div v-element-clickoutside="handleClose">
5463
+ * ```
5464
+ */
5465
+ /* harmony default export */ __webpack_exports__["a"] = ({
5466
+ bind: function bind(el, binding, vnode) {
5467
+ nodeList.push(el);
5468
+ var id = seed++;
5469
+ el[ctx] = {
5470
+ id: id,
5471
+ documentHandler: createDocumentHandler(el, binding, vnode),
5472
+ methodName: binding.expression,
5473
+ bindingFn: binding.value
5474
+ };
5475
+ },
5476
+ update: function update(el, binding, vnode) {
5477
+ el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);
5478
+ el[ctx].methodName = binding.expression;
5479
+ el[ctx].bindingFn = binding.value;
5480
+ },
5481
+ unbind: function unbind(el) {
5482
+ var len = nodeList.length;
5484
5483
 
5485
- module.exports = require("lodash/set");
5484
+ for (var i = 0; i < len; i++) {
5485
+ if (nodeList[i][ctx].id === el[ctx].id) {
5486
+ nodeList.splice(i, 1);
5487
+ break;
5488
+ }
5489
+ }
5490
+ delete el[ctx];
5491
+ }
5492
+ });
5486
5493
 
5487
5494
  /***/ }),
5488
5495
 
5489
- /***/ 22:
5496
+ /***/ 27:
5490
5497
  /***/ (function(module, exports) {
5491
5498
 
5492
- module.exports = require("lodash/cloneDeep");
5499
+ module.exports = require("eoss/lib/button");
5493
5500
 
5494
5501
  /***/ }),
5495
5502
 
5496
- /***/ 27:
5503
+ /***/ 28:
5497
5504
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5498
5505
 
5499
5506
  "use strict";
@@ -5539,14 +5546,14 @@ module.exports = require("lodash/cloneDeep");
5539
5546
  var definedEvents = componentOptions.listeners || {};
5540
5547
 
5541
5548
  for (var propName in definedProps) {
5542
- propName = Object(eoss_src_utils_util__WEBPACK_IMPORTED_MODULE_0__[/* kebabCase */ "J"])(propName); // compatible with camel case
5549
+ propName = Object(eoss_src_utils_util__WEBPACK_IMPORTED_MODULE_0__[/* kebabCase */ "I"])(propName); // compatible with camel case
5543
5550
  if (props[propName]) {
5544
5551
  console.warn('[Eoss Migrating][' + this.$options.name + '][Attribute]: ' + props[propName]);
5545
5552
  }
5546
5553
  }
5547
5554
 
5548
5555
  for (var eventName in definedEvents) {
5549
- eventName = Object(eoss_src_utils_util__WEBPACK_IMPORTED_MODULE_0__[/* kebabCase */ "J"])(eventName); // compatible with camel case
5556
+ eventName = Object(eoss_src_utils_util__WEBPACK_IMPORTED_MODULE_0__[/* kebabCase */ "I"])(eventName); // compatible with camel case
5550
5557
  if (events[eventName]) {
5551
5558
  console.warn('[Eoss Migrating][' + this.$options.name + '][Event]: ' + events[eventName]);
5552
5559
  }
@@ -5565,13 +5572,6 @@ module.exports = require("lodash/cloneDeep");
5565
5572
 
5566
5573
  /***/ }),
5567
5574
 
5568
- /***/ 28:
5569
- /***/ (function(module, exports) {
5570
-
5571
- module.exports = require("eoss/lib/button");
5572
-
5573
- /***/ }),
5574
-
5575
5575
  /***/ 3:
5576
5576
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5577
5577
 
@@ -5687,6 +5687,73 @@ module.exports = require("vue");
5687
5687
  /***/ 5:
5688
5688
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5689
5689
 
5690
+ "use strict";
5691
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isString; });
5692
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isObject; });
5693
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isHtmlElement; });
5694
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isFunction; });
5695
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isUndefined; });
5696
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isDefined; });
5697
+ /**
5698
+ * 检查一个值是否为字符串类型
5699
+ * @param {*} obj 要检查的值
5700
+ * @returns {boolean} 如果值为字符串则返回true,否则返回false
5701
+ */
5702
+ function isString(obj) {
5703
+ return Object.prototype.toString.call(obj) === '[object String]';
5704
+ }
5705
+
5706
+ /**
5707
+ * 检查一个值是否为对象类型
5708
+ * @param {*} obj 要检查的值
5709
+ * @returns {boolean} 如果值为对象则返回true,否则返回false
5710
+ */
5711
+ function isObject(obj) {
5712
+ return Object.prototype.toString.call(obj) === '[object Object]';
5713
+ }
5714
+
5715
+ /**
5716
+ * 检查一个节点是否为HTML元素
5717
+ * @param {Node} node 要检查的节点
5718
+ * @returns {boolean} 如果节点为HTML元素则返回true,否则返回false
5719
+ */
5720
+ function isHtmlElement(node) {
5721
+ return node && node.nodeType === Node.ELEMENT_NODE;
5722
+ }
5723
+
5724
+ /**
5725
+ * 检查一个值是否为函数类型
5726
+ * @param {*} functionToCheck 要检查的值
5727
+ * @returns {boolean} 如果值为函数则返回true,否则返回false
5728
+ */
5729
+ function isFunction(functionToCheck) {
5730
+ var getType = {};
5731
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
5732
+ }
5733
+
5734
+ /**
5735
+ * 检查一个值是否为undefined
5736
+ * @param {*} val 要检查的值
5737
+ * @returns {boolean} 如果值为undefined则返回true,否则返回false
5738
+ */
5739
+ function isUndefined(val) {
5740
+ return val === void 0;
5741
+ }
5742
+
5743
+ /**
5744
+ * 检查一个值是否已定义(不是undefined或null)
5745
+ * @param {*} val 要检查的值
5746
+ * @returns {boolean} 如果值已定义则返回true,否则返回false
5747
+ */
5748
+ function isDefined(val) {
5749
+ return val !== undefined && val !== null;
5750
+ }
5751
+
5752
+ /***/ }),
5753
+
5754
+ /***/ 6:
5755
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5756
+
5690
5757
  "use strict";
5691
5758
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return on; });
5692
5759
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return off; });
@@ -5943,73 +6010,6 @@ function insertAfter(newEl, targetEl) {
5943
6010
 
5944
6011
  /***/ }),
5945
6012
 
5946
- /***/ 6:
5947
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
5948
-
5949
- "use strict";
5950
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isString; });
5951
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isObject; });
5952
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isHtmlElement; });
5953
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isFunction; });
5954
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isUndefined; });
5955
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isDefined; });
5956
- /**
5957
- * 检查一个值是否为字符串类型
5958
- * @param {*} obj 要检查的值
5959
- * @returns {boolean} 如果值为字符串则返回true,否则返回false
5960
- */
5961
- function isString(obj) {
5962
- return Object.prototype.toString.call(obj) === '[object String]';
5963
- }
5964
-
5965
- /**
5966
- * 检查一个值是否为对象类型
5967
- * @param {*} obj 要检查的值
5968
- * @returns {boolean} 如果值为对象则返回true,否则返回false
5969
- */
5970
- function isObject(obj) {
5971
- return Object.prototype.toString.call(obj) === '[object Object]';
5972
- }
5973
-
5974
- /**
5975
- * 检查一个节点是否为HTML元素
5976
- * @param {Node} node 要检查的节点
5977
- * @returns {boolean} 如果节点为HTML元素则返回true,否则返回false
5978
- */
5979
- function isHtmlElement(node) {
5980
- return node && node.nodeType === Node.ELEMENT_NODE;
5981
- }
5982
-
5983
- /**
5984
- * 检查一个值是否为函数类型
5985
- * @param {*} functionToCheck 要检查的值
5986
- * @returns {boolean} 如果值为函数则返回true,否则返回false
5987
- */
5988
- function isFunction(functionToCheck) {
5989
- var getType = {};
5990
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
5991
- }
5992
-
5993
- /**
5994
- * 检查一个值是否为undefined
5995
- * @param {*} val 要检查的值
5996
- * @returns {boolean} 如果值为undefined则返回true,否则返回false
5997
- */
5998
- function isUndefined(val) {
5999
- return val === void 0;
6000
- }
6001
-
6002
- /**
6003
- * 检查一个值是否已定义(不是undefined或null)
6004
- * @param {*} val 要检查的值
6005
- * @returns {boolean} 如果值已定义则返回true,否则返回false
6006
- */
6007
- function isDefined(val) {
6008
- return val !== undefined && val !== null;
6009
- }
6010
-
6011
- /***/ }),
6012
-
6013
6013
  /***/ 8:
6014
6014
  /***/ (function(module, exports) {
6015
6015
 
@@ -6017,14 +6017,14 @@ module.exports = require("eoss/lib/message-box");
6017
6017
 
6018
6018
  /***/ }),
6019
6019
 
6020
- /***/ 86:
6020
+ /***/ 87:
6021
6021
  /***/ (function(module, exports) {
6022
6022
 
6023
6023
  module.exports = require("eoss/lib/button-group");
6024
6024
 
6025
6025
  /***/ }),
6026
6026
 
6027
- /***/ 93:
6027
+ /***/ 96:
6028
6028
  /***/ (function(module, exports) {
6029
6029
 
6030
6030
  module.exports = require("eoss/lib/dropdown-menu");