@opentiny/vue-renderless 3.1.0-alpha.0

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 (397) hide show
  1. package/action-sheet/index.js +28 -0
  2. package/action-sheet/vue.js +29 -0
  3. package/alert/index.js +23 -0
  4. package/alert/vue.js +37 -0
  5. package/autocomplete/index.js +175 -0
  6. package/autocomplete/vue.js +171 -0
  7. package/avatar/index.js +29 -0
  8. package/avatar/vue.js +24 -0
  9. package/badge/index.js +16 -0
  10. package/badge/vue.js +30 -0
  11. package/breadcrumb/vue.js +4 -0
  12. package/breadcrumb-item/vue.js +24 -0
  13. package/bulletin-board/index.js +21 -0
  14. package/bulletin-board/vue.js +36 -0
  15. package/button/index.js +19 -0
  16. package/button/vue.js +43 -0
  17. package/button-group/index.js +25 -0
  18. package/button-group/vue.js +51 -0
  19. package/calendar/index.js +279 -0
  20. package/calendar/vue.js +124 -0
  21. package/card-template/index.js +39 -0
  22. package/card-template/vue.js +34 -0
  23. package/carousel/index.js +206 -0
  24. package/carousel/vue.js +222 -0
  25. package/carousel-item/index.js +93 -0
  26. package/carousel-item/vue.js +57 -0
  27. package/cascader/index.js +511 -0
  28. package/cascader/vue.js +342 -0
  29. package/cascader-menu/index.js +41 -0
  30. package/cascader-menu/vue.js +36 -0
  31. package/cascader-node/index.js +63 -0
  32. package/cascader-node/vue.js +62 -0
  33. package/cascader-panel/index.js +359 -0
  34. package/cascader-panel/node.js +199 -0
  35. package/cascader-panel/store.js +80 -0
  36. package/cascader-panel/vue.js +217 -0
  37. package/checkbox/index.js +145 -0
  38. package/checkbox/vue.js +139 -0
  39. package/checkbox-button/index.js +102 -0
  40. package/checkbox-button/vue.js +150 -0
  41. package/checkbox-group/index.js +12 -0
  42. package/checkbox-group/vue.js +33 -0
  43. package/col/index.js +132 -0
  44. package/col/vue.js +34 -0
  45. package/collapse/index.js +45 -0
  46. package/collapse/vue.js +35 -0
  47. package/collapse-item/index.js +38 -0
  48. package/collapse-item/vue.js +48 -0
  49. package/common/array.js +120 -0
  50. package/common/bigInt.js +352 -0
  51. package/common/browser.js +69 -0
  52. package/common/dataset/index.js +135 -0
  53. package/common/date.js +352 -0
  54. package/common/decimal.js +203 -0
  55. package/common/deps/ResizeObserver.js +474 -0
  56. package/common/deps/after-leave.js +25 -0
  57. package/common/deps/clickoutside.js +61 -0
  58. package/common/deps/date-util.js +262 -0
  59. package/common/deps/date.js +308 -0
  60. package/common/deps/debounce.js +4 -0
  61. package/common/deps/dom.js +190 -0
  62. package/common/deps/fullscreen/apis.js +157 -0
  63. package/common/deps/fullscreen/screenfull.js +106 -0
  64. package/common/deps/letter-only.js +15 -0
  65. package/common/deps/memorize.js +149 -0
  66. package/common/deps/number-only.js +16 -0
  67. package/common/deps/popper.js +713 -0
  68. package/common/deps/popup-manager.js +179 -0
  69. package/common/deps/repeat-click.js +24 -0
  70. package/common/deps/requestAnimationFrame.js +25 -0
  71. package/common/deps/resize-event.js +29 -0
  72. package/common/deps/scroll-into-view.js +29 -0
  73. package/common/deps/scrollbar-width.js +25 -0
  74. package/common/deps/throttle.js +34 -0
  75. package/common/deps/touch.js +33 -0
  76. package/common/deps/tree-model/node.js +586 -0
  77. package/common/deps/tree-model/tree-store.js +377 -0
  78. package/common/deps/tree-model/util.js +14 -0
  79. package/common/deps/upload-ajax.js +71 -0
  80. package/common/deps/vue-emitter.js +30 -0
  81. package/common/deps/vue-popper.js +291 -0
  82. package/common/deps/vue-popup.js +211 -0
  83. package/common/event.js +17 -0
  84. package/common/index.js +288 -0
  85. package/common/object.js +228 -0
  86. package/common/runtime.js +52 -0
  87. package/common/string.js +446 -0
  88. package/common/type.js +65 -0
  89. package/common/validate/index.js +6 -0
  90. package/common/validate/messages.js +68 -0
  91. package/common/validate/rules/enum.js +8 -0
  92. package/common/validate/rules/index.js +14 -0
  93. package/common/validate/rules/pattern.js +16 -0
  94. package/common/validate/rules/range.js +62 -0
  95. package/common/validate/rules/required.js +13 -0
  96. package/common/validate/rules/type.js +110 -0
  97. package/common/validate/rules/whitespace.js +6 -0
  98. package/common/validate/schema.js +323 -0
  99. package/common/validate/util.js +198 -0
  100. package/common/validate/validations/array.js +25 -0
  101. package/common/validate/validations/date.js +35 -0
  102. package/common/validate/validations/enum.js +24 -0
  103. package/common/validate/validations/float.js +24 -0
  104. package/common/validate/validations/index.js +42 -0
  105. package/common/validate/validations/integer.js +24 -0
  106. package/common/validate/validations/method.js +23 -0
  107. package/common/validate/validations/number.js +27 -0
  108. package/common/validate/validations/pattern.js +23 -0
  109. package/common/validate/validations/required.js +15 -0
  110. package/common/validate/validations/string.js +29 -0
  111. package/common/validate/validations/type.js +25 -0
  112. package/common/xss.js +325 -0
  113. package/container/index.js +110 -0
  114. package/container/vue.js +63 -0
  115. package/credit-card/index.js +107 -0
  116. package/credit-card/vue.js +117 -0
  117. package/credit-card-form/index.js +143 -0
  118. package/credit-card-form/vue.js +150 -0
  119. package/crop/index.js +297 -0
  120. package/crop/vue.js +191 -0
  121. package/date-panel/index.js +584 -0
  122. package/date-panel/vue.js +319 -0
  123. package/date-picker/index.js +301 -0
  124. package/date-picker/vue.js +169 -0
  125. package/date-range/index.js +463 -0
  126. package/date-range/vue.js +297 -0
  127. package/date-table/index.js +457 -0
  128. package/date-table/vue.js +151 -0
  129. package/detail-page/index.js +135 -0
  130. package/detail-page/vue.js +145 -0
  131. package/dialog-box/index.js +268 -0
  132. package/dialog-box/vue.js +226 -0
  133. package/drop-times/index.js +23 -0
  134. package/drop-times/vue.js +28 -0
  135. package/dropdown/index.js +259 -0
  136. package/dropdown/vue.js +107 -0
  137. package/dropdown-item/index.js +155 -0
  138. package/dropdown-item/vue.js +124 -0
  139. package/dropdown-menu/index.js +148 -0
  140. package/dropdown-menu/vue.js +44 -0
  141. package/exception/index.js +13 -0
  142. package/exception/vue.js +25 -0
  143. package/fall-menu/index.js +121 -0
  144. package/fall-menu/vue.js +90 -0
  145. package/file-upload/index.js +1940 -0
  146. package/file-upload/vue.js +458 -0
  147. package/floatbar/index.js +10 -0
  148. package/floatbar/vue.js +17 -0
  149. package/form/index.js +186 -0
  150. package/form/vue.js +69 -0
  151. package/form-item/index.js +364 -0
  152. package/form-item/vue.js +210 -0
  153. package/fullscreen/index.js +138 -0
  154. package/fullscreen/vue.js +77 -0
  155. package/grid/core/index.js +3 -0
  156. package/grid/core/interceptor.js +38 -0
  157. package/grid/core/storeMap.js +19 -0
  158. package/grid/plugins/export.js +169 -0
  159. package/grid/plugins/exportExcel.js +749 -0
  160. package/grid/plugins/header.js +58 -0
  161. package/grid/plugins/resize.js +82 -0
  162. package/grid/static/array/arrayEach.js +12 -0
  163. package/grid/static/array/arrayIndexOf.js +11 -0
  164. package/grid/static/array/eachTree.js +32 -0
  165. package/grid/static/array/every.js +2 -0
  166. package/grid/static/array/filterTree.js +16 -0
  167. package/grid/static/array/find.js +3 -0
  168. package/grid/static/array/findTree.js +46 -0
  169. package/grid/static/array/helperCreateIterateHandle.js +59 -0
  170. package/grid/static/array/helperCreateTreeFunc.js +18 -0
  171. package/grid/static/array/includes.js +5 -0
  172. package/grid/static/array/lastArrayEach.js +6 -0
  173. package/grid/static/array/map.js +23 -0
  174. package/grid/static/array/mapTree.js +33 -0
  175. package/grid/static/array/slice.js +10 -0
  176. package/grid/static/array/sortBy.js +69 -0
  177. package/grid/static/array/sum.js +28 -0
  178. package/grid/static/array/toArray.js +7 -0
  179. package/grid/static/array/toTreeArray.js +24 -0
  180. package/grid/static/base/clear.js +44 -0
  181. package/grid/static/base/clone.js +18 -0
  182. package/grid/static/base/destructuring.js +18 -0
  183. package/grid/static/base/each.js +9 -0
  184. package/grid/static/base/eqNull.js +6 -0
  185. package/grid/static/base/findIndexOf.js +10 -0
  186. package/grid/static/base/get.js +42 -0
  187. package/grid/static/base/has.js +60 -0
  188. package/grid/static/base/hasOwnProp.js +4 -0
  189. package/grid/static/base/helperCreateGetObjects.js +26 -0
  190. package/grid/static/base/helperCreateInInObjectString.js +7 -0
  191. package/grid/static/base/helperCreateInTypeof.js +6 -0
  192. package/grid/static/base/helperCreateIndexOf.js +21 -0
  193. package/grid/static/base/helperCreateiterateIndexOf.js +21 -0
  194. package/grid/static/base/helperDefaultCompare.js +4 -0
  195. package/grid/static/base/helperDeleteProperty.js +8 -0
  196. package/grid/static/base/helperEqualCompare.js +60 -0
  197. package/grid/static/base/helperGetHGSKeys.js +4 -0
  198. package/grid/static/base/indexOf.js +3 -0
  199. package/grid/static/base/isArray.js +3 -0
  200. package/grid/static/base/isBoolean.js +4 -0
  201. package/grid/static/base/isDate.js +3 -0
  202. package/grid/static/base/isEmpty.js +8 -0
  203. package/grid/static/base/isEqual.js +11 -0
  204. package/grid/static/base/isFunction.js +4 -0
  205. package/grid/static/base/isNaN.js +5 -0
  206. package/grid/static/base/isNull.js +4 -0
  207. package/grid/static/base/isNumber.js +4 -0
  208. package/grid/static/base/isObject.js +5 -0
  209. package/grid/static/base/isPlainObject.js +2 -0
  210. package/grid/static/base/isRegExp.js +3 -0
  211. package/grid/static/base/isSet.js +5 -0
  212. package/grid/static/base/isString.js +4 -0
  213. package/grid/static/base/isUndefined.js +4 -0
  214. package/grid/static/base/keys.js +3 -0
  215. package/grid/static/base/lastEach.js +9 -0
  216. package/grid/static/base/remove.js +44 -0
  217. package/grid/static/base/set.js +43 -0
  218. package/grid/static/base/toJSONString.js +4 -0
  219. package/grid/static/base/toStringJSON.js +13 -0
  220. package/grid/static/base/uniqueId.js +5 -0
  221. package/grid/static/browse/browse.js +54 -0
  222. package/grid/static/function/property.js +7 -0
  223. package/grid/static/function/throttle.js +43 -0
  224. package/grid/static/index.js +55 -0
  225. package/grid/static/number/helperCreateToNumber.js +12 -0
  226. package/grid/static/number/toNumber.js +3 -0
  227. package/grid/static/object/assign.js +41 -0
  228. package/grid/static/object/extend.js +3 -0
  229. package/grid/static/object/lastObjectEach.js +8 -0
  230. package/grid/static/object/objectEach.js +11 -0
  231. package/grid/static/object/objectMap.js +20 -0
  232. package/grid/static/object/values.js +9 -0
  233. package/grid/static/static/staticDocument.js +4 -0
  234. package/grid/static/static/staticHGKeyRE.js +2 -0
  235. package/grid/static/static/staticParseInt.js +2 -0
  236. package/grid/static/static/staticStrUndefined.js +2 -0
  237. package/grid/static/static/staticWindow.js +4 -0
  238. package/grid/static/string/template.js +12 -0
  239. package/grid/static/string/toString.js +12 -0
  240. package/grid/utils/column.js +72 -0
  241. package/grid/utils/common.js +155 -0
  242. package/grid/utils/dom.js +213 -0
  243. package/grid/utils/event.js +40 -0
  244. package/grid/utils/index.js +5 -0
  245. package/image/index.js +187 -0
  246. package/image/vue.js +142 -0
  247. package/image-viewer/index.js +469 -0
  248. package/image-viewer/vue.js +243 -0
  249. package/input/index.js +319 -0
  250. package/input/vue.js +319 -0
  251. package/ip-address/index.js +370 -0
  252. package/ip-address/vue.js +185 -0
  253. package/layout/vue.js +4 -0
  254. package/link/index.js +10 -0
  255. package/link/vue.js +26 -0
  256. package/link-menu/index.js +146 -0
  257. package/link-menu/vue.js +138 -0
  258. package/list/index.js +13 -0
  259. package/list/vue.js +17 -0
  260. package/loading/index.js +29 -0
  261. package/loading/vue.js +28 -0
  262. package/milestone/index.js +92 -0
  263. package/milestone/vue.js +31 -0
  264. package/mini-picker/index.js +227 -0
  265. package/mini-picker/vue.js +142 -0
  266. package/modal/index.js +866 -0
  267. package/modal/vue.js +130 -0
  268. package/month-range/index.js +169 -0
  269. package/month-range/vue.js +104 -0
  270. package/month-table/index.js +232 -0
  271. package/month-table/vue.js +72 -0
  272. package/nav-menu/index.js +457 -0
  273. package/nav-menu/vue.js +187 -0
  274. package/notify/index.js +91 -0
  275. package/notify/vue.js +67 -0
  276. package/numeric/index.js +419 -0
  277. package/numeric/vue.js +218 -0
  278. package/option/index.js +79 -0
  279. package/option/vue.js +219 -0
  280. package/option-group/index.js +18 -0
  281. package/option-group/vue.js +37 -0
  282. package/package.json +179 -0
  283. package/pager-item/index.js +122 -0
  284. package/pager-item/vue.js +52 -0
  285. package/panel/index.js +30 -0
  286. package/panel/vue.js +26 -0
  287. package/picker/index.js +1039 -0
  288. package/picker/timezone.js +974 -0
  289. package/picker/vue.js +415 -0
  290. package/picker-column/index.js +261 -0
  291. package/picker-column/vue.js +163 -0
  292. package/pop-upload/index.js +324 -0
  293. package/pop-upload/vue.js +292 -0
  294. package/popeditor/index.js +884 -0
  295. package/popeditor/vue.js +368 -0
  296. package/popover/index.js +203 -0
  297. package/popover/vue.js +174 -0
  298. package/popup/index.js +139 -0
  299. package/popup/vue.js +129 -0
  300. package/progress/index.js +174 -0
  301. package/progress/vue.js +118 -0
  302. package/pull-refresh/index.js +104 -0
  303. package/pull-refresh/vue.js +64 -0
  304. package/radio/index.js +83 -0
  305. package/radio/vue.js +99 -0
  306. package/radio-button/index.js +58 -0
  307. package/radio-button/vue.js +70 -0
  308. package/radio-group/index.js +51 -0
  309. package/radio-group/vue.js +34 -0
  310. package/rate/index.js +254 -0
  311. package/rate/vue.js +158 -0
  312. package/row/index.js +19 -0
  313. package/row/vue.js +24 -0
  314. package/scroll-text/index.js +24 -0
  315. package/scroll-text/vue.js +31 -0
  316. package/scrollbar/index.js +127 -0
  317. package/scrollbar/vue-bar.js +49 -0
  318. package/scrollbar/vue.js +43 -0
  319. package/search/index.js +110 -0
  320. package/search/vue.js +110 -0
  321. package/select/index.js +1766 -0
  322. package/select/vue.js +693 -0
  323. package/select-dropdown/index.js +23 -0
  324. package/select-dropdown/vue.js +122 -0
  325. package/slide-bar/index.js +94 -0
  326. package/slide-bar/vue.js +58 -0
  327. package/slider/index.js +434 -0
  328. package/slider/vue.js +172 -0
  329. package/split/index.js +122 -0
  330. package/split/vue.js +131 -0
  331. package/steps/vue.js +4 -0
  332. package/switch/index.js +45 -0
  333. package/switch/vue.js +62 -0
  334. package/tab-bar/index.js +51 -0
  335. package/tab-bar/vue.js +16 -0
  336. package/tab-dropdown/index.js +11 -0
  337. package/tab-dropdown/vue.js +17 -0
  338. package/tab-item/index.js +37 -0
  339. package/tab-item/vue.js +49 -0
  340. package/tab-nav/index.js +247 -0
  341. package/tab-nav/vue.js +106 -0
  342. package/tabbar/index.js +32 -0
  343. package/tabbar/vue.js +54 -0
  344. package/tabbar-item/index.js +55 -0
  345. package/tabbar-item/vue.js +53 -0
  346. package/table/index.js +111 -0
  347. package/table/vue.js +66 -0
  348. package/tabs/index.js +174 -0
  349. package/tabs/vue.js +141 -0
  350. package/tag/index.js +14 -0
  351. package/tag/vue.js +13 -0
  352. package/tall-storage/index.js +161 -0
  353. package/tall-storage/vue-storage-box.js +25 -0
  354. package/tall-storage/vue.js +38 -0
  355. package/text-popup/index.js +75 -0
  356. package/text-popup/vue.js +64 -0
  357. package/time/index.js +121 -0
  358. package/time/vue.js +124 -0
  359. package/time-line/index.js +60 -0
  360. package/time-line/vue.js +49 -0
  361. package/time-panel/index.js +189 -0
  362. package/time-panel/scrollIntoView.js +23 -0
  363. package/time-panel/vue.js +110 -0
  364. package/time-range/index.js +199 -0
  365. package/time-range/vue.js +129 -0
  366. package/time-spinner/index.js +175 -0
  367. package/time-spinner/vue.js +122 -0
  368. package/toggle-menu/index.js +104 -0
  369. package/toggle-menu/vue.js +74 -0
  370. package/tooltip/index.js +171 -0
  371. package/tooltip/vue.js +133 -0
  372. package/top-box/index.js +81 -0
  373. package/top-box/vue.js +77 -0
  374. package/transfer/index.js +296 -0
  375. package/transfer/vue.js +138 -0
  376. package/transfer-panel/index.js +364 -0
  377. package/transfer-panel/vue.js +258 -0
  378. package/tree/index.js +642 -0
  379. package/tree/vue.js +268 -0
  380. package/tree-menu/index.js +124 -0
  381. package/tree-menu/vue.js +60 -0
  382. package/tree-node/index.js +271 -0
  383. package/tree-node/vue.js +211 -0
  384. package/upload/index.js +324 -0
  385. package/upload/vue.js +93 -0
  386. package/upload-dragger/index.js +50 -0
  387. package/upload-dragger/vue.js +27 -0
  388. package/upload-list/index.js +55 -0
  389. package/upload-list/vue.js +48 -0
  390. package/user-contact/index.js +13 -0
  391. package/user-contact/vue.js +20 -0
  392. package/user-head/index.js +71 -0
  393. package/user-head/vue.js +47 -0
  394. package/wizard/index.js +123 -0
  395. package/wizard/vue.js +45 -0
  396. package/year-table/index.js +40 -0
  397. package/year-table/vue.js +23 -0
package/common/date.js ADDED
@@ -0,0 +1,352 @@
1
+ import { isDate, isNumber, isNumeric } from '@opentiny/vue-renderless/common/type';
2
+ import { fillChar } from '@opentiny/vue-renderless/common/string';
3
+ var daysInMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
4
+ var yyyymmddReg = new RegExp('^(\\d{4})(/|-)(((0)?[1-9])|(1[0-2]))((/|-)(((0)?[1-9])|([1-2][0-9])|(3[0-1])))' + '?( ((0)?[0-9]|1[0-9]|20|21|22|23):([0-5]?[0-9])((:([0-5]?[0-9]))?(.([0-9]{1,6}))?)?)?$');
5
+ var mmddyyyyReg = new RegExp('^(((0)?[1-9])|(1[0-2]))(/|-)(((0)?[1-9])|([1-2][0-9])|(3[0-1]))?(/|-)?(\\d{4})' + '( ((0)?[0-9]|1[0-9]|20|21|22|23):([0-5]?[0-9])((:([0-5]?[0-9]))?(.([0-9]{1,6}))?)?)?$');
6
+ var iso8601Reg = new RegExp('^(\\d{4})-(((0)?[1-9])|(1[0-2]))-(((0)?[1-9])|([1-2][0-9])|(3[0-1]))T' + '(((0)?[0-9]|1[0-9]|20|21|22|23):([0-5]?[0-9])((:([0-5]?[0-9]))?(.([0-9]{1,6}))?)?)?(Z|([+-])' + '((0)?[0-9]|1[0-9]|20|21|22|23):?([0-5]?[0-9]))$');
7
+ var dateFormatRegs = {
8
+ 'y{1,4}': /y{1,4}/,
9
+ 'M{1,2}': /M{1,2}/,
10
+ 'd{1,2}': /d{1,2}/,
11
+ 'h{1,2}': /h{1,2}/,
12
+ 'm{1,2}': /m{1,2}/,
13
+ 's{1,2}': /s{1,2}/,
14
+ 'S{1,3}': /S{1,3}/,
15
+ 'Z{1,1}': /Z{1,1}/
16
+ };
17
+ var maxDateValues = {
18
+ YEAR: 9999,
19
+ MONTH: 11,
20
+ DATE: 31,
21
+ HOUR: 23,
22
+ MINUTE: 59,
23
+ SECOND: 59,
24
+ MILLISECOND: 999
25
+ };
26
+ var timezone1 = '-12:00,-11:00,-10:00,-09:30,-08:00,-07:00,-06:00,-05:00,-04:30,-04:00,-03:30,-02:00,-01:00';
27
+ var timezone2 = '-00:00,+00:00,+01:00,+02:00,+03:00,+03:30,+04:00,+04:30,+05:00,+05:30,+05:45,+06:00';
28
+ var timezone3 = '+06:30,+07:00,+08:00,+09:00,+10:00,+10:30,+11:00,+11:30,+12:00,+12:45,+13:00,+14:00';
29
+ var timezones = [].concat(timezone1.split(','), timezone2.split(','), timezone3.split(','));
30
+ var getTimezone = function getTimezone(date) {
31
+ var timezoneoffset = 0 - date.getTimezoneOffset() / 60;
32
+ var timezone;
33
+ if (timezoneoffset === 0) {
34
+ timezone = 'Z';
35
+ } else if (timezoneoffset > 0) {
36
+ timezone = '+' + (timezoneoffset > 10 ? timezoneoffset : '0' + timezoneoffset) + '00';
37
+ } else {
38
+ timezone = (timezoneoffset < -10 ? timezoneoffset : '-0' + -timezoneoffset) + '00';
39
+ }
40
+ return timezone;
41
+ };
42
+ export var isLeapYear = function isLeapYear(year) {
43
+ return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
44
+ };
45
+ var getDateFromData = function getDateFromData(_ref) {
46
+ var year = _ref.year,
47
+ month = _ref.month,
48
+ date = _ref.date,
49
+ hours = _ref.hours,
50
+ minutes = _ref.minutes,
51
+ seconds = _ref.seconds,
52
+ milliseconds = _ref.milliseconds;
53
+ var daysInMonth = daysInMonths[month];
54
+ if (isLeapYear(year) && month === 1) {
55
+ daysInMonth += 1;
56
+ }
57
+ if (date <= daysInMonth) {
58
+ return new Date(year, month, date, hours, minutes, seconds, milliseconds);
59
+ }
60
+ };
61
+ var yyyymmddDateParser = function yyyymmddDateParser(m) {
62
+ if (m.length === 23) {
63
+ var year = m[1] * 1;
64
+ var month = m[3] - 1;
65
+ var date = (m[9] || 1) * 1;
66
+ var hours = m[15] || 0;
67
+ var minutes = m[17] || 0;
68
+ var seconds = m[20] || 0;
69
+ var milliseconds = m[22] || 0;
70
+ return getDateFromData({
71
+ date: date,
72
+ year: year,
73
+ hours: hours,
74
+ month: month,
75
+ seconds: seconds,
76
+ minutes: minutes,
77
+ milliseconds: milliseconds
78
+ });
79
+ }
80
+ };
81
+ var mmddyyyyDateParser = function mmddyyyyDateParser(m) {
82
+ if (m.length === 22) {
83
+ var year = m[12] * 1;
84
+ var month = m[1] - 1;
85
+ var date = (m[6] || 1) * 1;
86
+ var hours = m[14] || 0;
87
+ var minutes = m[16] || 0;
88
+ var seconds = m[19] || 0;
89
+ var milliseconds = m[21] || 0;
90
+ return getDateFromData({
91
+ year: year,
92
+ month: month,
93
+ date: date,
94
+ hours: hours,
95
+ minutes: minutes,
96
+ seconds: seconds,
97
+ milliseconds: milliseconds
98
+ });
99
+ }
100
+ };
101
+ var iso8601DateParser = function iso8601DateParser(m) {
102
+ if (m.length !== 25) {
103
+ return;
104
+ }
105
+ var year = m[1] * 1;
106
+ var month = m[2] - 1;
107
+ var date = m[6] * 1;
108
+ var offset = new Date(year, month, date).getTimezoneOffset();
109
+ var hours = m[12] || 0;
110
+ var minutes = m[14] || 0;
111
+ var seconds = m[17] || 0;
112
+ var milliseconds = m[19] || 0;
113
+ var timeZone = m[20];
114
+ var sign = m[21];
115
+ var offsetHours = m[22] || 0;
116
+ var offsetMinutes = m[24] || 0;
117
+ var daysInMonth = daysInMonths[month];
118
+ var actHours;
119
+ var actMinutes;
120
+ if (isLeapYear(year) && month === 1) {
121
+ daysInMonth += 1;
122
+ }
123
+ if (date <= daysInMonth) {
124
+ if (timeZone === 'Z') {
125
+ actHours = hours - offset / 60;
126
+ actMinutes = minutes;
127
+ } else {
128
+ if (timeZone.indexOf(':') === -1) {
129
+ timeZone = timeZone.substr(0, 3) + ':' + timeZone.substr(3);
130
+ }
131
+ if (timezones.indexOf(timeZone) === -1) {
132
+ return;
133
+ }
134
+ actHours = sign === '+' ? hours - offsetHours - offset / 60 : hours * 1 + offsetHours * 1 - offset / 60;
135
+ actMinutes = sign === '+' ? minutes - offsetMinutes : minutes * 1 + offsetMinutes * 1;
136
+ }
137
+ return new Date(year, month, date, actHours, actMinutes, seconds, milliseconds);
138
+ }
139
+ };
140
+ var dateParsers = [[yyyymmddReg, yyyymmddDateParser], [mmddyyyyReg, mmddyyyyDateParser], [iso8601Reg, iso8601DateParser]];
141
+ var parseDate = function parseDate(str) {
142
+ for (var i = 0, len = dateParsers.length; i < len; i++) {
143
+ var m = dateParsers[i][0].exec(str);
144
+ if (m && m.length > 0) {
145
+ return dateParsers[i][1](m);
146
+ }
147
+ }
148
+ };
149
+ var matchDateArray = function matchDateArray(arr, value, text) {
150
+ if (text) {
151
+ switch (text) {
152
+ case 'yyyy':
153
+ case 'yy':
154
+ arr[0] = value;
155
+ break;
156
+ case 'M':
157
+ case 'MM':
158
+ arr[1] = value - 1;
159
+ break;
160
+ case 'd':
161
+ case 'dd':
162
+ arr[2] = value;
163
+ break;
164
+ case 'h':
165
+ case 'hh':
166
+ arr[3] = value;
167
+ break;
168
+ case 'm':
169
+ case 'mm':
170
+ arr[4] = value;
171
+ break;
172
+ case 's':
173
+ case 'ss':
174
+ arr[5] = value;
175
+ break;
176
+ case 'S':
177
+ case 'SS':
178
+ case 'SSS':
179
+ arr[6] = value;
180
+ break;
181
+ default:
182
+ break;
183
+ }
184
+ }
185
+ };
186
+ var getDateArray = function getDateArray(str, dateFormat) {
187
+ var arr = [0, -1, 0, 0, 0, 0];
188
+ if (str.length !== dateFormat.length) {
189
+ return arr;
190
+ }
191
+ var valuePos = 0;
192
+ var textPos = 0;
193
+ for (var i = 0, len = str.length; i < len; i++) {
194
+ var charValue = str.substr(i, 1);
195
+ var notNum = isNaN(charValue * 1) || charValue.trim() === '';
196
+ if (notNum && charValue === dateFormat.substr(i, 1) || i === len - 1) {
197
+ var value = void 0;
198
+ var text = void 0;
199
+ if (notNum) {
200
+ value = str.substring(valuePos, i);
201
+ valuePos = i + 1;
202
+ var end = dateFormat.indexOf(charValue, textPos);
203
+ text = dateFormat.substring(textPos, end === -1 ? dateFormat.length : end);
204
+ textPos = end + 1;
205
+ } else {
206
+ value = str.substring(valuePos, len);
207
+ text = dateFormat.substring(textPos, len);
208
+ }
209
+ if (value.length === text.length || value) {
210
+ matchDateArray(arr, value, text);
211
+ }
212
+ }
213
+ }
214
+ return arr;
215
+ };
216
+ var invalideTime = function invalideTime(time, min, max) {
217
+ return isNaN(time) || time < min || time > max;
218
+ };
219
+ var invalideValue = function invalideValue(_ref2) {
220
+ var year = _ref2.year,
221
+ month = _ref2.month,
222
+ date = _ref2.date,
223
+ hours = _ref2.hours,
224
+ minutes = _ref2.minutes,
225
+ seconds = _ref2.seconds,
226
+ milliseconds = _ref2.milliseconds;
227
+ return invalideTime(year, 0, maxDateValues.YEAR) || invalideTime(month, 0, maxDateValues.MONTH) || invalideTime(date, 0, maxDateValues.DATE) || invalideTime(hours, 0, maxDateValues.HOUR) || invalideTime(minutes, 0, maxDateValues.MINUTE) || invalideTime(seconds, 0, maxDateValues.SECOND) || invalideTime(milliseconds, 0, maxDateValues.MILLISECOND);
228
+ };
229
+ var innerParse = function innerParse(value, dateFormat) {
230
+ if (typeof dateFormat === 'string') {
231
+ var arr = getDateArray(value, dateFormat);
232
+ var year = arr[0] * 1;
233
+ var month = arr[1] * 1;
234
+ var date = (arr[2] || 1) * 1;
235
+ var hours = (arr[3] || 0) * 1;
236
+ var minutes = (arr[4] || 0) * 1;
237
+ var seconds = (arr[5] || 0) * 1;
238
+ var milliseconds = (arr[6] || 0) * 1;
239
+ if (invalideValue({
240
+ year: year,
241
+ month: month,
242
+ date: date,
243
+ hours: hours,
244
+ minutes: minutes,
245
+ seconds: seconds,
246
+ milliseconds: milliseconds
247
+ })) {
248
+ return;
249
+ }
250
+ return getDateFromData({
251
+ year: year,
252
+ date: date,
253
+ month: month,
254
+ minutes: minutes,
255
+ hours: hours,
256
+ milliseconds: milliseconds,
257
+ seconds: seconds
258
+ });
259
+ } else {
260
+ return parseDate(value);
261
+ }
262
+ };
263
+ export var toDate = function toDate(value, dateFormat, minDate) {
264
+ var date;
265
+ if (isNumber(value)) {
266
+ date = new Date(value);
267
+ } else if (typeof value === 'string') {
268
+ date = innerParse(value, dateFormat);
269
+ }
270
+ if (minDate) {
271
+ var min = minDate && toDate(minDate) || new Date(1, 1, 1, 0, 0, 0);
272
+ return date && date < min ? min : date;
273
+ }
274
+ return date;
275
+ };
276
+ export var format = function format(date) {
277
+ var dateFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy/MM/dd hh:mm:ss';
278
+ if (isDate(date)) {
279
+ if (typeof dateFormat === 'string') {
280
+ var o = {
281
+ 'y{1,4}': date.getFullYear(),
282
+ 'M{1,2}': date.getMonth() + 1,
283
+ 'd{1,2}': date.getDate(),
284
+ 'h{1,2}': date.getHours(),
285
+ 'm{1,2}': date.getMinutes(),
286
+ 's{1,2}': date.getSeconds(),
287
+ 'S{1,3}': date.getMilliseconds(),
288
+ 'Z{1,1}': getTimezone(date)
289
+ };
290
+ Object.keys(o).forEach(function (k) {
291
+ var m = dateFormat.match(dateFormatRegs[k]);
292
+ if (k && m && m.length) {
293
+ dateFormat = dateFormat.replace(m[0], k === 'Z{1,1}' ? o[k] : fillChar(o[k].toString(), m[0].length));
294
+ }
295
+ });
296
+ return dateFormat;
297
+ }
298
+ } else if (typeof date === 'string' && arguments.length >= 2) {
299
+ var afterFormat = dateFormat;
300
+ if (arguments.length === 2) {
301
+ dateFormat = undefined;
302
+ } else {
303
+ afterFormat = arguments[2];
304
+ }
305
+ var dateValue = toDate(date, dateFormat);
306
+ return dateValue ? format(dateValue, afterFormat) : '';
307
+ }
308
+ };
309
+ export var getDateWithNewTimezone = function getDateWithNewTimezone(date, otz, ntz) {
310
+ if (!isDate(date) || !isNumeric(otz) || !isNumeric(ntz)) {
311
+ return;
312
+ }
313
+ var otzOffset = -otz * 60;
314
+ var ntzOffset = -ntz * 60;
315
+ var utc = date.getTime() + otzOffset * 60000;
316
+ return new Date(utc - ntzOffset * 60000);
317
+ };
318
+ export var toDateStr = function toDateStr(date, dateFormat, timezone) {
319
+ if (date && isNumeric(timezone)) {
320
+ timezone = parseFloat(parseFloat(timezone).toFixed(2));
321
+ date = getDateWithNewTimezone(isDate(date) ? date : new Date(toDate(date)), 0, timezone);
322
+ }
323
+ return format(date, dateFormat);
324
+ };
325
+ export var getWeekOfFirstDay = function getWeekOfFirstDay(date, isSunFirst) {
326
+ typeof date === 'boolean' && (isSunFirst = date);
327
+ isDate(date) || (date = new Date());
328
+ var day = date.getDay();
329
+ var dayOfMonth = date.getDate();
330
+ if (day === 0) {
331
+ !isSunFirst && (dayOfMonth -= 6);
332
+ } else {
333
+ dayOfMonth = dayOfMonth - day + (!isSunFirst && 1);
334
+ }
335
+ return new Date(date.getFullYear(), date.getMonth(), dayOfMonth);
336
+ };
337
+ var TZRE = /(-|\+)(\d{2}):?(\d{2})$/;
338
+ export var getLocalTimezone = function getLocalTimezone() {
339
+ return 0 - new Date().getTimezoneOffset() / 60;
340
+ };
341
+ export var getStrTimezone = function getStrTimezone(value) {
342
+ var localTimeZone = getLocalTimezone();
343
+ var match = typeof value === 'string' && value.match(TZRE);
344
+ if (match) {
345
+ var minoffset = match[2] * 1 + match[3] * 1 / 60;
346
+ value = minoffset * "".concat(match[1], "1");
347
+ }
348
+ if (isNumber(value) && value >= -12 && value <= 12) {
349
+ return value;
350
+ }
351
+ return localTimeZone;
352
+ };
@@ -0,0 +1,203 @@
1
+ import { getMiniDecimal, toFixed as roundFixed } from './bigInt';
2
+ export { roundFixed };
3
+ var DECIMAL_SEPARATOR = '.';
4
+ var asInteger = function asInteger(number) {
5
+ var tokens = number.split(DECIMAL_SEPARATOR);
6
+ var integer = tokens[0];
7
+ var fractional = tokens[1];
8
+ var value;
9
+ var exp;
10
+ if (fractional) {
11
+ value = parseInt(number.split(DECIMAL_SEPARATOR).join(''), 10);
12
+ exp = fractional.length * -1;
13
+ } else {
14
+ var trailingZeros = integer.match(/0+$/);
15
+ if (trailingZeros) {
16
+ var length = trailingZeros[0].length;
17
+ value = integer.substr(0, integer.length - length);
18
+ exp = length;
19
+ } else {
20
+ value = integer;
21
+ exp = 0;
22
+ }
23
+ }
24
+ return {
25
+ value: value,
26
+ exp: exp
27
+ };
28
+ };
29
+ var zero = function zero(exp) {
30
+ var result;
31
+ if (exp <= 0) {
32
+ result = '';
33
+ } else if (String.prototype.repeat) {
34
+ result = '0'.repeat(exp);
35
+ } else {
36
+ result = function (times) {
37
+ var zeros = [];
38
+ for (var i = 0; i < times; i++) {
39
+ zeros.push(0);
40
+ }
41
+ return zeros.join('');
42
+ }(exp);
43
+ }
44
+ return result;
45
+ };
46
+ var negExp = function negExp(str, position) {
47
+ position = Math.abs(position);
48
+ var offset = position - str.length;
49
+ var sep = DECIMAL_SEPARATOR;
50
+ if (offset >= 0) {
51
+ str = zero(offset) + str;
52
+ sep = '0.';
53
+ }
54
+ var length = str.length;
55
+ var dif = length - position;
56
+ var head = str.substr(0, dif);
57
+ var tail = str.substring(dif, length);
58
+ return head + sep + tail;
59
+ };
60
+ var posExp = function posExp(str, exp) {
61
+ return String(str + zero(exp));
62
+ };
63
+ var format = function format(num, exp) {
64
+ return (exp >= 0 ? posExp : negExp)(String(num), exp);
65
+ };
66
+ export function Decimal(num) {
67
+ var _this = this;
68
+ if (!this || this.constructor !== Decimal) {
69
+ return new Decimal(num);
70
+ }
71
+ if (num instanceof Decimal) {
72
+ return num;
73
+ }
74
+ this.internal = String(num);
75
+ this.asInt = asInteger(this.internal);
76
+ this.add = function (target) {
77
+ var operands = [_this, new Decimal(target)];
78
+ operands.sort(function (x, y) {
79
+ return x.asInt.exp - y.asInt.exp;
80
+ });
81
+ var smallest = operands[0].asInt.exp;
82
+ var biggest = operands[1].asInt.exp;
83
+ var x = Number(format(operands[1].asInt.value, biggest - smallest));
84
+ var y = Number(operands[0].asInt.value);
85
+ return new Decimal(format(String(x + y), smallest));
86
+ };
87
+ this.sub = function (target) {
88
+ return new Decimal(_this.add(target * -1));
89
+ };
90
+ this.mul = function (target) {
91
+ target = new Decimal(target);
92
+ var result = String(_this.asInt.value * target.asInt.value);
93
+ var exp = _this.asInt.exp + target.asInt.exp;
94
+ return new Decimal(format(result, exp));
95
+ };
96
+ this.div = function (target) {
97
+ target = new Decimal(target);
98
+ var smallest = Math.min(_this.asInt.exp, target.asInt.exp);
99
+ var absSmallest = Math.pow(10, Math.abs(smallest));
100
+ var x = Decimal.mul(absSmallest, _this);
101
+ var y = Decimal.mul(absSmallest, target);
102
+ return new Decimal(x / y);
103
+ };
104
+ this.toString = function () {
105
+ return _this.internal;
106
+ };
107
+ this.toNumber = function () {
108
+ return Number(_this.internal);
109
+ };
110
+ }
111
+ Decimal.add = function (a, b) {
112
+ return new Decimal(a).add(b);
113
+ };
114
+ Decimal.mul = function (a, b) {
115
+ return new Decimal(a).mul(b);
116
+ };
117
+ Decimal.sub = function (a, b) {
118
+ return new Decimal(a).sub(b);
119
+ };
120
+ Decimal.div = function (a, b) {
121
+ return new Decimal(a).div(b);
122
+ };
123
+ export var toFixed = function toFixed(num) {
124
+ var fraction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
125
+ var sign = num < 0 ? '-' : '';
126
+ num = Math.abs(num);
127
+ var npmPow = num.toString().length < Math.pow(2, 53).toString().length - 1 ? Math.pow(10, fraction) : Math.pow(10, fraction - 1);
128
+ var result = new Decimal(Math.round(new Decimal(num).mul(npmPow))).div(npmPow).toString();
129
+ var numResult = Number(result);
130
+ return numResult ? sign + numResult.toFixed(fraction) : numResult.toFixed(fraction);
131
+ };
132
+ var formatInteger = function formatInteger(value, _ref) {
133
+ var _ref$secondaryGroupSi = _ref.secondaryGroupSize,
134
+ secondaryGroupSize = _ref$secondaryGroupSi === void 0 ? 3 : _ref$secondaryGroupSi,
135
+ _ref$groupSize = _ref.groupSize,
136
+ groupSize = _ref$groupSize === void 0 ? 0 : _ref$groupSize,
137
+ _ref$groupSeparator = _ref.groupSeparator,
138
+ groupSeparator = _ref$groupSeparator === void 0 ? ',' : _ref$groupSeparator;
139
+ var negative = /^-\d+/.test(value);
140
+ var result = negative ? value.slice(1) : value;
141
+ var secSize = secondaryGroupSize || groupSize;
142
+ if (groupSize && result.length > groupSize) {
143
+ var left = result.slice(0, 0 - groupSize);
144
+ var right = result.slice(0 - groupSize);
145
+ left = left.replace(new RegExp("\\B(?=(\\d{".concat(secSize, "})+(?!\\d))"), 'g'), groupSeparator);
146
+ result = "".concat(left).concat(groupSeparator).concat(right);
147
+ }
148
+ return "".concat(negative ? '-' : '').concat(result);
149
+ };
150
+ var reverseString = function reverseString(str) {
151
+ var arr = [];
152
+ for (var i = 0; i < str.length; i++) {
153
+ arr.push(str[i]);
154
+ }
155
+ return arr.reverse().join('');
156
+ };
157
+ var formatDecimal = function formatDecimal(num, _ref2) {
158
+ var _ref2$fractionGroupSi = _ref2.fractionGroupSize,
159
+ fractionGroupSize = _ref2$fractionGroupSi === void 0 ? 0 : _ref2$fractionGroupSi,
160
+ _ref2$fractionGroupSe = _ref2.fractionGroupSeparator,
161
+ fractionGroupSeparator = _ref2$fractionGroupSe === void 0 ? '\xA0' : _ref2$fractionGroupSe;
162
+ var RE = new RegExp("\\B(?=(\\d{".concat(fractionGroupSize, "})+(?!\\d))"), 'g');
163
+ return reverseString(reverseString(num).replace(RE, fractionGroupSeparator));
164
+ };
165
+ export var formatNumber = function formatNumber(value) {
166
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
167
+ var fraction = format.fraction,
168
+ rounding = format.rounding,
169
+ _format$prefix = format.prefix,
170
+ prefix = _format$prefix === void 0 ? '' : _format$prefix,
171
+ _format$decimalSepara = format.decimalSeparator,
172
+ decimalSeparator = _format$decimalSepara === void 0 ? '.' : _format$decimalSepara,
173
+ _format$suffix = format.suffix,
174
+ suffix = _format$suffix === void 0 ? '' : _format$suffix;
175
+ var reslut = getMiniDecimal(value);
176
+ if (reslut.isNaN() || !reslut.toString()) {
177
+ return value;
178
+ }
179
+ reslut = roundFixed(reslut.toString(), fraction, rounding);
180
+ format.zeroize === false && reslut.match(/\./) && (reslut = reslut.replace(/\.?0+$/g, ''));
181
+ var number = reslut.toString().split('.').slice(0, 2).map(function (str, index) {
182
+ return index ? formatDecimal(str, format) : formatInteger(str, format);
183
+ }).join(decimalSeparator);
184
+ return "".concat(prefix).concat(number).concat(suffix);
185
+ };
186
+ export var recoverNumber = function recoverNumber(number) {
187
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
188
+ var _format$prefix2 = format.prefix,
189
+ prefix = _format$prefix2 === void 0 ? '' : _format$prefix2,
190
+ _format$suffix2 = format.suffix,
191
+ suffix = _format$suffix2 === void 0 ? '' : _format$suffix2,
192
+ _format$decimalSepara2 = format.decimalSeparator,
193
+ decimalSeparator = _format$decimalSepara2 === void 0 ? '.' : _format$decimalSepara2;
194
+ var result = number;
195
+ if (typeof number === 'string') {
196
+ result = number.replace(new RegExp("^".concat(prefix, "(.+)").concat(suffix, "$")), function ($1, $2) {
197
+ return $2;
198
+ }).split(decimalSeparator).map(function (s) {
199
+ return s.replace(/[^\d]/g, '');
200
+ }).join('.');
201
+ }
202
+ return Number(result);
203
+ };