@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/modal/vue.js ADDED
@@ -0,0 +1,130 @@
1
+ import { dragEvent, handleEvent, mousedownEvent, toggleZoomEvent, revert, maximize, getBox, handleGlobalKeydownEvent, close, updateStyle, addMsgQueue, removeMsgQueue, computedIsMsg, watchValue, created, mounted, beforeUnmouted, selfClickEvent, updateZindex, closeEvent, confirmEvent, cancelEvent, open } from './index';
2
+ export var api = ['state', 'dragEvent', 'mousedownEvent', 'toggleZoomEvent', 'revert', 'maximize', 'getBox', 'close', 'updateStyle', 'selfClickEvent', 'updateZindex', 'closeEvent', 'confirmEvent', 'cancelEvent', 'open', 'beforeUnmouted'];
3
+ export var renderless = function renderless(props, _ref, _ref2) {
4
+ var computed = _ref.computed,
5
+ onMounted = _ref.onMounted,
6
+ onBeforeUnmount = _ref.onBeforeUnmount,
7
+ reactive = _ref.reactive,
8
+ watch = _ref.watch;
9
+ var refs = _ref2.refs,
10
+ emit = _ref2.emit,
11
+ emitter = _ref2.emitter,
12
+ nextTick = _ref2.nextTick,
13
+ broadcast = _ref2.broadcast,
14
+ parent = _ref2.vm;
15
+ var api = {};
16
+ var state = reactive({
17
+ emitter: emitter(),
18
+ visible: false,
19
+ contentVisible: false,
20
+ cumsumZindex: 0,
21
+ modalTop: 0,
22
+ modalZindex: 0,
23
+ zoomLocat: null,
24
+ isMsg: computed(function () {
25
+ return api.computedIsMsg(props);
26
+ }),
27
+ prevEvent: null
28
+ });
29
+ Object.assign(api, {
30
+ state: state,
31
+ broadcast: broadcast,
32
+ computedIsMsg: computedIsMsg(),
33
+ updateStyle: updateStyle(nextTick),
34
+ getBox: getBox(refs),
35
+ watchValue: watchValue(api),
36
+ created: created({
37
+ api: api,
38
+ props: props,
39
+ state: state
40
+ }),
41
+ mounted: mounted({
42
+ api: api,
43
+ parent: parent,
44
+ props: props
45
+ }),
46
+ beforeUnmouted: beforeUnmouted({
47
+ api: api,
48
+ parent: parent
49
+ }),
50
+ selfClickEvent: selfClickEvent({
51
+ api: api,
52
+ parent: parent,
53
+ props: props
54
+ }),
55
+ updateZindex: updateZindex({
56
+ state: state,
57
+ props: props
58
+ }),
59
+ handleEvent: handleEvent({
60
+ api: api,
61
+ emit: emit,
62
+ parent: parent,
63
+ props: props
64
+ }),
65
+ closeEvent: closeEvent(api),
66
+ confirmEvent: confirmEvent(api),
67
+ cancelEvent: cancelEvent(api),
68
+ open: open({
69
+ api: api,
70
+ emit: emit,
71
+ nextTick: nextTick,
72
+ parent: parent,
73
+ props: props,
74
+ state: state
75
+ }),
76
+ addMsgQueue: addMsgQueue({
77
+ api: api,
78
+ parent: parent
79
+ }),
80
+ removeMsgQueue: removeMsgQueue({
81
+ api: api,
82
+ parent: parent
83
+ }),
84
+ close: close({
85
+ emit: emit,
86
+ parent: parent,
87
+ props: props,
88
+ state: state
89
+ }),
90
+ handleGlobalKeydownEvent: handleGlobalKeydownEvent(api),
91
+ maximize: maximize({
92
+ api: api,
93
+ nextTick: nextTick,
94
+ props: props,
95
+ state: state
96
+ }),
97
+ revert: revert({
98
+ api: api,
99
+ nextTick: nextTick,
100
+ state: state
101
+ }),
102
+ toggleZoomEvent: toggleZoomEvent({
103
+ api: api,
104
+ emit: emit,
105
+ parent: parent,
106
+ state: state
107
+ }),
108
+ mousedownEvent: mousedownEvent({
109
+ api: api,
110
+ nextTick: nextTick,
111
+ props: props,
112
+ state: state,
113
+ emit: emit
114
+ }),
115
+ dragEvent: dragEvent({
116
+ api: api,
117
+ emit: emit,
118
+ parent: parent,
119
+ props: props,
120
+ state: state
121
+ })
122
+ });
123
+ watch(function () {
124
+ return props.modelValue;
125
+ }, api.watchValue);
126
+ api.created();
127
+ onMounted(api.mounted);
128
+ onBeforeUnmount(api.beforeUnmouted);
129
+ return api;
130
+ };
@@ -0,0 +1,169 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { isDate, modifyWithTimeString, prevYear, nextYear, nextMonth } from '@opentiny/vue-renderless/common/deps/date-util';
3
+ export var calcDefaultValue = function calcDefaultValue(defaultValue) {
4
+ if (Array.isArray(defaultValue)) {
5
+ return [new Date(defaultValue[0]), new Date(defaultValue[1])];
6
+ } else if (defaultValue) {
7
+ return [new Date(defaultValue), nextMonth(new Date(defaultValue))];
8
+ }
9
+ return [new Date(), nextMonth(new Date())];
10
+ };
11
+ export var watchValue = function watchValue(_ref) {
12
+ var state = _ref.state;
13
+ return function (value) {
14
+ if (!value) {
15
+ state.maxDate = null;
16
+ state.minDate = null;
17
+ } else if (Array.isArray(value)) {
18
+ if (isDate(value[0])) {
19
+ state.minDate = new Date(value[0]);
20
+ } else {
21
+ state.minDate = null;
22
+ }
23
+ if (isDate(value[1])) {
24
+ state.maxDate = new Date(value[1]);
25
+ } else {
26
+ state.maxDate = null;
27
+ }
28
+ if (state.minDate) {
29
+ state.leftDate = state.minDate;
30
+ if (state.maxDate && state.unlinkPanels) {
31
+ var maxDateYear = state.maxDate.getFullYear();
32
+ var minDateYear = state.minDate.getFullYear();
33
+ state.rightDate = maxDateYear === minDateYear ? nextYear(state.maxDate) : state.maxDate;
34
+ } else {
35
+ state.rightDate = nextYear(state.leftDate);
36
+ }
37
+ } else {
38
+ state.leftDate = calcDefaultValue(state.defaultValue)[0];
39
+ state.rightDate = nextYear(state.leftDate);
40
+ }
41
+ }
42
+ };
43
+ };
44
+ export var watchDefaultValue = function watchDefaultValue(_ref2) {
45
+ var state = _ref2.state;
46
+ return function (value) {
47
+ if (!Array.isArray(state.value)) {
48
+ var _calcDefaultValue = calcDefaultValue(value),
49
+ _calcDefaultValue2 = _slicedToArray(_calcDefaultValue, 2),
50
+ left = _calcDefaultValue2[0],
51
+ right = _calcDefaultValue2[1];
52
+ state.leftDate = left;
53
+ state.rightDate = value && value[1] && left.getFullYear() !== right.getFullYear() && state.unlinkPanels ? right : nextYear(state.leftDate);
54
+ }
55
+ };
56
+ };
57
+ export var handleClear = function handleClear(_ref3) {
58
+ var emit = _ref3.emit,
59
+ state = _ref3.state;
60
+ return function () {
61
+ state.minDate = null;
62
+ state.maxDate = null;
63
+ state.leftDate = calcDefaultValue(state.defaultValue)[0];
64
+ state.rightDate = nextYear(state.leftDate);
65
+ emit('pick', null);
66
+ };
67
+ };
68
+ export var handleChangeRange = function handleChangeRange(state) {
69
+ return function (val) {
70
+ state.minDate = val.minDate;
71
+ state.maxDate = val.maxDate;
72
+ state.rangeState = val.rangeState;
73
+ };
74
+ };
75
+ export var handleRangePick = function handleRangePick(_ref4) {
76
+ var api = _ref4.api,
77
+ state = _ref4.state,
78
+ t = _ref4.t;
79
+ return function (val) {
80
+ var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
81
+ var defaultTime = state.defaultTime || [];
82
+ var maxDate = modifyWithTimeString(val.maxDate, defaultTime[1], t);
83
+ var minDate = modifyWithTimeString(val.minDate, defaultTime[0], t);
84
+ if (state.minDate === minDate && state.maxDate === maxDate) {
85
+ return;
86
+ }
87
+ if (state.onPick) {
88
+ state.onPick(val);
89
+ }
90
+ state.minDate = minDate;
91
+ state.maxDate = maxDate;
92
+ setTimeout(function () {
93
+ state.minDate = minDate;
94
+ state.maxDate = maxDate;
95
+ }, 10);
96
+ if (!close) {
97
+ return;
98
+ }
99
+ api.handleConfirm();
100
+ };
101
+ };
102
+ export var handleShortcutClick = function handleShortcutClick(api) {
103
+ return function (shortcut) {
104
+ if (shortcut.onClick) {
105
+ var choose = {
106
+ $emit: function $emit(type, _ref5) {
107
+ var _ref6 = _slicedToArray(_ref5, 2),
108
+ start = _ref6[0],
109
+ end = _ref6[1];
110
+ api.doPick(start, end);
111
+ }
112
+ };
113
+ shortcut.onClick(choose);
114
+ }
115
+ };
116
+ };
117
+ export var doPick = function doPick(emit) {
118
+ return function (begin, end) {
119
+ emit('pick', [begin, end], false);
120
+ };
121
+ };
122
+ export var leftPrevYear = function leftPrevYear(state) {
123
+ return function () {
124
+ state.leftDate = prevYear(state.leftDate);
125
+ if (!state.unlinkPanels) {
126
+ state.rightDate = prevYear(state.rightDate);
127
+ }
128
+ };
129
+ };
130
+ export var rightNextYear = function rightNextYear(state) {
131
+ return function () {
132
+ if (!state.unlinkPanels) {
133
+ state.leftDate = nextYear(state.leftDate);
134
+ }
135
+ state.rightDate = nextYear(state.rightDate);
136
+ };
137
+ };
138
+ export var leftNextYear = function leftNextYear(state) {
139
+ return function () {
140
+ return state.leftDate = nextYear(state.leftDate);
141
+ };
142
+ };
143
+ export var rightPrevYear = function rightPrevYear(state) {
144
+ return function () {
145
+ return state.rightDate = prevYear(state.rightDate);
146
+ };
147
+ };
148
+ export var handleConfirm = function handleConfirm(_ref7) {
149
+ var api = _ref7.api,
150
+ emit = _ref7.emit,
151
+ state = _ref7.state;
152
+ return function () {
153
+ var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
154
+ if (api.isValidValue([state.minDate, state.maxDate])) {
155
+ emit('pick', [state.minDate, state.maxDate], visible);
156
+ }
157
+ };
158
+ };
159
+ export var isValidValue = function isValidValue(state) {
160
+ return function (value) {
161
+ return Array.isArray(value) && value && value[1] && value[0] && isDate(value[1]) && isDate(value[0]) && value[0].getTime() <= value[1].getTime() && (typeof state.disabledDate === 'function' ? !state.disabledDate(value[1]) && !state.disabledDate(value[0]) : true);
162
+ };
163
+ };
164
+ export var resetView = function resetView(state) {
165
+ return function () {
166
+ state.minDate = state.value && isDate(state.value[0]) ? new Date(state.value[0]) : null;
167
+ state.maxDate = state.value && isDate(state.value[0]) ? new Date(state.value[1]) : null;
168
+ };
169
+ };
@@ -0,0 +1,104 @@
1
+ import { resetView, isValidValue, handleConfirm, rightPrevYear, leftNextYear, rightNextYear, leftPrevYear, handleClear, watchValue, watchDefaultValue, handleChangeRange, handleRangePick, handleShortcutClick, doPick } from './index';
2
+ import { nextYear } from '@opentiny/vue-renderless/common/deps/date-util';
3
+ export var api = ['state', 'rightNextYear', 'rightPrevYear', 'handleRangePick', 'handleShortcutClick', 'handleChangeRange', 'leftPrevYear', 'leftNextYear'];
4
+ var initState = function initState(_ref) {
5
+ var reactive = _ref.reactive,
6
+ computed = _ref.computed,
7
+ api = _ref.api,
8
+ t = _ref.t;
9
+ var state = reactive({
10
+ popperClass: '',
11
+ value: [],
12
+ defaultValue: null,
13
+ defaultTime: null,
14
+ minDate: '',
15
+ maxDate: '',
16
+ leftDate: new Date(),
17
+ rightDate: nextYear(new Date()),
18
+ rangeState: {
19
+ endDate: null,
20
+ selecting: false,
21
+ row: null,
22
+ column: null
23
+ },
24
+ shortcuts: '',
25
+ visible: '',
26
+ disabledDate: '',
27
+ format: '',
28
+ arrowControl: false,
29
+ unlinkPanels: false,
30
+ btnDisabled: computed(function () {
31
+ return !(state.minDate && state.maxDate && !state.selecting && api.isValidValue([state.minDate, state.maxDate]));
32
+ }),
33
+ leftLabel: computed(function () {
34
+ return state.leftDate.getFullYear() + ' ' + t('ui.datepicker.year');
35
+ }),
36
+ rightLabel: computed(function () {
37
+ return state.rightDate.getFullYear() + ' ' + t('ui.datepicker.year');
38
+ }),
39
+ leftYear: computed(function () {
40
+ return state.leftDate.getFullYear();
41
+ }),
42
+ rightYear: computed(function () {
43
+ return state.rightDate.getFullYear() === state.leftDate.getFullYear() ? state.leftDate.getFullYear() + 1 : state.rightDate.getFullYear();
44
+ }),
45
+ enableYearArrow: computed(function () {
46
+ return state.unlinkPanels && state.rightYear > state.leftYear + 1;
47
+ })
48
+ });
49
+ return state;
50
+ };
51
+ export var renderless = function renderless(props, _ref2, _ref3) {
52
+ var computed = _ref2.computed,
53
+ reactive = _ref2.reactive,
54
+ watch = _ref2.watch;
55
+ var t = _ref3.t,
56
+ $emit = _ref3.emit;
57
+ var api = {};
58
+ var emit = props.emitter ? props.emitter.emit : $emit;
59
+ var state = initState({
60
+ reactive: reactive,
61
+ computed: computed,
62
+ api: api,
63
+ t: t
64
+ });
65
+ Object.assign(api, {
66
+ state: state,
67
+ resetView: resetView(state),
68
+ handleChangeRange: handleChangeRange(state),
69
+ isValidValue: isValidValue(state),
70
+ leftNextYear: leftNextYear(state),
71
+ leftPrevYear: leftPrevYear(state),
72
+ doPick: doPick(emit),
73
+ rightNextYear: rightNextYear(state),
74
+ rightPrevYear: rightPrevYear(state),
75
+ watchValue: watchValue({
76
+ state: state
77
+ }),
78
+ handleClear: handleClear({
79
+ emit: emit,
80
+ state: state
81
+ }),
82
+ watchDefaultValue: watchDefaultValue({
83
+ state: state
84
+ }),
85
+ handleConfirm: handleConfirm({
86
+ api: api,
87
+ emit: emit,
88
+ state: state
89
+ }),
90
+ handleRangePick: handleRangePick({
91
+ api: api,
92
+ state: state,
93
+ t: t
94
+ }),
95
+ handleShortcutClick: handleShortcutClick(api)
96
+ });
97
+ watch(function () {
98
+ return state.value;
99
+ }, api.watchValue);
100
+ watch(function () {
101
+ return state.defaultValue;
102
+ }, api.watchDefaultValue);
103
+ return api;
104
+ };
@@ -0,0 +1,232 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import { toDate } from '@opentiny/vue-renderless/common/date';
3
+ import { hasClass } from '@opentiny/vue-renderless/common/deps/dom';
4
+ import { range as rangeDate, getDayCountOfMonth, nextDate } from '@opentiny/vue-renderless/common/deps/date-util';
5
+ import { arrayFindIndex, coerceTruthyValueToArray, arrayFind } from '@opentiny/vue-renderless/date-table';
6
+ import { DATEPICKER } from '@opentiny/vue-renderless/common';
7
+ export var datesInMonth = function datesInMonth(year, month) {
8
+ var numOfDays = getDayCountOfMonth(year, month);
9
+ var firstDay = new Date(year, month, 1);
10
+ return rangeDate(numOfDays).map(function (n) {
11
+ return nextDate(firstDay, n);
12
+ });
13
+ };
14
+ export var clearDate = function clearDate(date) {
15
+ return new Date(date.getFullYear(), date.getMonth());
16
+ };
17
+ export var getMonthTimestamp = function getMonthTimestamp(time) {
18
+ if (typeof time === 'number' || typeof time === 'string') {
19
+ return clearDate(new Date(time)).getTime();
20
+ } else if (time instanceof Date) {
21
+ return clearDate(time).getTime();
22
+ }
23
+ return NaN;
24
+ };
25
+ export var getRows = function getRows(_ref) {
26
+ var props = _ref.props,
27
+ state = _ref.state,
28
+ vm = _ref.vm;
29
+ return function () {
30
+ var tableRows = state.tableRows;
31
+ var disabledDate = state.disabledDate;
32
+ var selectedDate = [];
33
+ var now = getMonthTimestamp(new Date());
34
+ var date = props.date,
35
+ minDate = props.minDate,
36
+ maxDate = props.maxDate;
37
+ for (var i = 0; i < 3; i++) {
38
+ var row = tableRows[i];
39
+ var _loop = function _loop(j) {
40
+ var cell = row[j];
41
+ if (!cell) {
42
+ cell = {
43
+ type: DATEPICKER.Normal,
44
+ row: i,
45
+ column: j,
46
+ inRange: false,
47
+ start: false,
48
+ end: false
49
+ };
50
+ }
51
+ cell.type = DATEPICKER.Normal;
52
+ var index = i * 4 + j;
53
+ var time = new Date(date.getFullYear(), index).getTime();
54
+ cell.start = minDate && time === getMonthTimestamp(minDate);
55
+ cell.end = maxDate && time === getMonthTimestamp(maxDate);
56
+ cell.inRange = time >= getMonthTimestamp(minDate) && time <= getMonthTimestamp(maxDate);
57
+ var isToday = time === now;
58
+ if (isToday) {
59
+ cell.type = DATEPICKER.Today;
60
+ }
61
+ cell.text = index;
62
+ var cellDate = new Date(time);
63
+ cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);
64
+ cell.selected = arrayFind(selectedDate, function (selectDate) {
65
+ return selectDate.getTime() === cellDate.getTime();
66
+ });
67
+ vm.$set(row, j, cell);
68
+ };
69
+ for (var j = 0; j < 4; j++) {
70
+ _loop(j);
71
+ }
72
+ }
73
+ return tableRows;
74
+ };
75
+ };
76
+ export var markRange = function markRange(_ref2) {
77
+ var props = _ref2.props,
78
+ state = _ref2.state;
79
+ return function (minDate, maxDate) {
80
+ minDate = Math.min(getMonthTimestamp(minDate), getMonthTimestamp(maxDate));
81
+ maxDate = Math.max(getMonthTimestamp(minDate), getMonthTimestamp(maxDate));
82
+ var rows = state.rows;
83
+ for (var i = 0, len = rows.length; i < len; i++) {
84
+ var row = rows[i];
85
+ for (var j = 0, l = row.length; j < l; j++) {
86
+ var cell = row[j];
87
+ var index = i * 4 + j;
88
+ var time = new Date(props.date.getFullYear(), index).getTime();
89
+ cell.start = minDate && time === minDate;
90
+ cell.end = maxDate && time === maxDate;
91
+ cell.inRange = minDate && time >= minDate && time <= maxDate;
92
+ }
93
+ }
94
+ };
95
+ };
96
+ export var watchDate = function watchDate(_ref3) {
97
+ var api = _ref3.api,
98
+ props = _ref3.props;
99
+ return function (value, oldvalue) {
100
+ if (getMonthTimestamp(value) !== getMonthTimestamp(oldvalue)) {
101
+ api.markRange(props.minDate, props.maxDate);
102
+ }
103
+ };
104
+ };
105
+ var getTarget = function getTarget(event) {
106
+ var target = event.target;
107
+ if (target.tagName === 'A') {
108
+ target = target.parentNode.parentNode;
109
+ }
110
+ if (target.tagName === 'DIV') {
111
+ target = target.parentNode;
112
+ }
113
+ if (target.tagName !== 'TD') {
114
+ return;
115
+ }
116
+ return target;
117
+ };
118
+ export var handleMouseMove = function handleMouseMove(_ref4) {
119
+ var api = _ref4.api,
120
+ emit = _ref4.emit,
121
+ props = _ref4.props,
122
+ state = _ref4.state;
123
+ return function (event) {
124
+ if (!props.rangeState.selecting) {
125
+ return;
126
+ }
127
+ var target = getTarget(event);
128
+ if (!target) {
129
+ return;
130
+ }
131
+ var row = target.parentNode.rowIndex;
132
+ var colu = target.cellIndex;
133
+ if (state.rows[row][colu].disabled) {
134
+ return;
135
+ }
136
+ if (row !== state.lastRow || colu !== state.lastColumn) {
137
+ state.lastColumn = colu;
138
+ state.lastRow = row;
139
+ emit('changerange', {
140
+ maxDate: props.maxDate,
141
+ minDate: props.minDate,
142
+ rangeState: {
143
+ selecting: true,
144
+ endDate: api.getMonthOfCell(row * 4 + colu)
145
+ }
146
+ });
147
+ }
148
+ };
149
+ };
150
+ export var handleMonthTableClick = function handleMonthTableClick(_ref5) {
151
+ var api = _ref5.api,
152
+ emit = _ref5.emit,
153
+ props = _ref5.props;
154
+ return function (event) {
155
+ var target = getTarget(event);
156
+ if (!target) {
157
+ return;
158
+ }
159
+ if (hasClass(target, 'disabled')) {
160
+ return;
161
+ }
162
+ var column = target.cellIndex;
163
+ var row = target.parentNode.rowIndex;
164
+ var month = row * 4 + column;
165
+ var newDate = api.getMonthOfCell(month);
166
+ if (props.selectionMode === DATEPICKER.Range) {
167
+ if (props.rangeState.selecting) {
168
+ if (newDate < props.minDate) {
169
+ emit('pick', {
170
+ minDate: newDate,
171
+ maxDate: props.minDate
172
+ });
173
+ } else {
174
+ emit('pick', {
175
+ minDate: props.minDate,
176
+ maxDate: newDate
177
+ });
178
+ }
179
+ props.rangeState.selecting = false;
180
+ } else {
181
+ emit('pick', {
182
+ minDate: newDate,
183
+ maxDate: null
184
+ });
185
+ props.rangeState.selecting = true;
186
+ }
187
+ } else {
188
+ emit('pick', month);
189
+ }
190
+ };
191
+ };
192
+ export var cellMatchesDate = function cellMatchesDate(props) {
193
+ return function (cell, date) {
194
+ var value = new Date(date);
195
+ return props.date.getFullYear() === value.getFullYear() && Number(cell.text) === value.getMonth();
196
+ };
197
+ };
198
+ export var getCellStyle = function getCellStyle(_ref6) {
199
+ var api = _ref6.api,
200
+ props = _ref6.props;
201
+ return function (cell) {
202
+ var style = {};
203
+ var year = props.date.getFullYear();
204
+ var today = new Date();
205
+ var month = cell.text;
206
+ var defaultValue = props.defaultValue ? Array.isArray(props.defaultValue) ? props.defaultValue : [props.defaultValue] : [];
207
+ style.disabled = typeof props.disabledDate === 'function' ? datesInMonth(year, month).every(props.disabledDate) : false;
208
+ var execDate = _typeof(props.value) === 'object' ? props.value : toDate(props.value);
209
+ style.current = arrayFindIndex(coerceTruthyValueToArray(execDate), function (date) {
210
+ return date.getFullYear() === year && date.getMonth() === month;
211
+ }) >= 0;
212
+ style.today = today.getFullYear() === year && today.getMonth() === month;
213
+ style["default"] = defaultValue.some(function (date) {
214
+ return api.cellMatchesDate(cell, date);
215
+ });
216
+ if (cell.inRange) {
217
+ style[DATEPICKER.InRange] = true;
218
+ if (cell.start) {
219
+ style[DATEPICKER.StartDate] = true;
220
+ }
221
+ if (cell.end) {
222
+ style[DATEPICKER.EndDate] = true;
223
+ }
224
+ }
225
+ return style;
226
+ };
227
+ };
228
+ export var getMonthOfCell = function getMonthOfCell(props) {
229
+ return function (month) {
230
+ return new Date(props.date.getFullYear(), month, 1);
231
+ };
232
+ };
@@ -0,0 +1,72 @@
1
+ import { getRows, getMonthTimestamp, markRange, watchDate, handleMouseMove, handleMonthTableClick, cellMatchesDate, getCellStyle, getMonthOfCell } from './index';
2
+ import { DATEPICKER } from '@opentiny/vue-renderless/common';
3
+ export var api = ['state', 'handleMonthTableClick', 'handleMouseMove', 'getCellStyle'];
4
+ export var renderless = function renderless(props, _ref, _ref2) {
5
+ var computed = _ref.computed,
6
+ reactive = _ref.reactive,
7
+ watch = _ref.watch;
8
+ var t = _ref2.t,
9
+ vm = _ref2.vm,
10
+ emit = _ref2.emit;
11
+ var api = {};
12
+ var MonhtList = DATEPICKER.MonhtList;
13
+ var state = reactive({
14
+ months: MonhtList,
15
+ tableRows: [[], [], []],
16
+ lastRow: null,
17
+ lastColumn: null,
18
+ rows: computed(function () {
19
+ return api.getRows();
20
+ })
21
+ });
22
+ Object.assign(api, {
23
+ t: t,
24
+ state: state,
25
+ getMonthOfCell: getMonthOfCell(props),
26
+ cellMatchesDate: cellMatchesDate(props),
27
+ markRange: markRange({
28
+ api: api,
29
+ props: props,
30
+ state: state
31
+ }),
32
+ watchDate: watchDate({
33
+ api: api,
34
+ props: props
35
+ }),
36
+ getMonthTimestamp: getMonthTimestamp(api),
37
+ handleMouseMove: handleMouseMove({
38
+ api: api,
39
+ emit: emit,
40
+ props: props,
41
+ state: state
42
+ }),
43
+ handleMonthTableClick: handleMonthTableClick({
44
+ api: api,
45
+ emit: emit,
46
+ props: props
47
+ }),
48
+ getCellStyle: getCellStyle({
49
+ api: api,
50
+ props: props
51
+ }),
52
+ getRows: getRows({
53
+ props: props,
54
+ state: state,
55
+ vm: vm
56
+ })
57
+ });
58
+ watch(function () {
59
+ return props.rangeState;
60
+ }, function (value) {
61
+ return api.markRange(props.minDate, value.endDate);
62
+ }, {
63
+ deep: true
64
+ });
65
+ watch(function () {
66
+ return props.minDate;
67
+ }, api.watchDate);
68
+ watch(function () {
69
+ return props.maxDate;
70
+ }, api.watchDate);
71
+ return api;
72
+ };