@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
@@ -0,0 +1,206 @@
1
+ import throttle from '@opentiny/vue-renderless/common/deps/throttle';
2
+ import { POSITION } from '@opentiny/vue-renderless/common';
3
+ export var handleMouseEnter = function handleMouseEnter(_ref) {
4
+ var api = _ref.api,
5
+ state = _ref.state;
6
+ return function () {
7
+ state.hover = true;
8
+ api.pauseTimer();
9
+ };
10
+ };
11
+ export var handleMouseLeave = function handleMouseLeave(_ref2) {
12
+ var api = _ref2.api,
13
+ state = _ref2.state;
14
+ return function () {
15
+ state.hover = false;
16
+ api.startTimer();
17
+ };
18
+ };
19
+ export var itemInStage = function itemInStage(state) {
20
+ return function (_ref3) {
21
+ var item = _ref3.item,
22
+ index = _ref3.index;
23
+ var length = state.items.length;
24
+ var arr = state.items;
25
+ if (index === length - 1 && item.inStage && arr[0].active || item.inStage && arr[index + 1] && arr[index + 1].active) {
26
+ return POSITION.Left;
27
+ } else if (index === 0 && item.inStage && arr[length - 1].active || item.inStage && arr[index - 1] && arr[index - 1].active) {
28
+ return POSITION.Right;
29
+ }
30
+ return false;
31
+ };
32
+ };
33
+ export var handleButtonEnter = function handleButtonEnter(_ref4) {
34
+ var api = _ref4.api,
35
+ state = _ref4.state;
36
+ return function (arrow) {
37
+ state.items.forEach(function (item, index) {
38
+ if (arrow === api.itemInStage({
39
+ item: item,
40
+ index: index
41
+ })) {
42
+ item.hover = true;
43
+ }
44
+ });
45
+ };
46
+ };
47
+ export var handleButtonLeave = function handleButtonLeave(state) {
48
+ return function () {
49
+ state.items.forEach(function (item) {
50
+ item.hover = false;
51
+ });
52
+ };
53
+ };
54
+ export var resetItemPosition = function resetItemPosition(state) {
55
+ return function (oldIndex) {
56
+ if (state.completed) {
57
+ state.items.forEach(function (item, index) {
58
+ item.translateItem({
59
+ activeIndex: state.activeIndex,
60
+ index: index,
61
+ oldIndex: oldIndex
62
+ });
63
+ });
64
+ }
65
+ };
66
+ };
67
+ export var playSlides = function playSlides(_ref5) {
68
+ var props = _ref5.props,
69
+ state = _ref5.state;
70
+ return function () {
71
+ if (state.activeIndex < state.items.length - 1) {
72
+ state.activeIndex++;
73
+ } else if (props.loop) {
74
+ state.activeIndex = 0;
75
+ }
76
+ };
77
+ };
78
+ export var pauseTimer = function pauseTimer(state) {
79
+ return function () {
80
+ return clearInterval(state.timer);
81
+ };
82
+ };
83
+ export var startTimer = function startTimer(_ref6) {
84
+ var api = _ref6.api,
85
+ props = _ref6.props,
86
+ state = _ref6.state;
87
+ return function () {
88
+ if (props.interval <= 0 || !props.autoplay) {
89
+ return;
90
+ }
91
+ state.timer = setInterval(api.playSlides, props.interval);
92
+ };
93
+ };
94
+ export var setActiveItem = function setActiveItem(_ref7) {
95
+ var api = _ref7.api,
96
+ props = _ref7.props,
97
+ state = _ref7.state;
98
+ return function (index) {
99
+ if (typeof index === 'string') {
100
+ var filteredItems = state.items.filter(function (item) {
101
+ return item.name === index;
102
+ });
103
+ if (filteredItems.length > 0) {
104
+ index = state.items.indexOf(filteredItems[0]);
105
+ }
106
+ }
107
+ index = Number(index);
108
+ if (isNaN(index) || index !== Math.floor(index)) {
109
+ return;
110
+ }
111
+ var length = state.items.length;
112
+ var oldIndex = state.activeIndex;
113
+ if (index < 0) {
114
+ state.activeIndex = props.loop ? length - 1 : 0;
115
+ } else if (index >= length) {
116
+ state.activeIndex = props.loop ? 0 : length - 1;
117
+ } else {
118
+ state.activeIndex = index;
119
+ }
120
+ if (oldIndex === state.activeIndex) {
121
+ api.resetItemPosition(oldIndex);
122
+ }
123
+ };
124
+ };
125
+ export var prev = function prev(_ref8) {
126
+ var api = _ref8.api,
127
+ state = _ref8.state;
128
+ return function () {
129
+ return api.setActiveItem(state.activeIndex - 1);
130
+ };
131
+ };
132
+ export var next = function next(_ref9) {
133
+ var api = _ref9.api,
134
+ state = _ref9.state;
135
+ return function () {
136
+ return api.setActiveItem(state.activeIndex + 1);
137
+ };
138
+ };
139
+ export var handleIndicatorClick = function handleIndicatorClick(state) {
140
+ return function (index) {
141
+ state.activeIndex = index;
142
+ };
143
+ };
144
+ export var handleIndicatorHover = function handleIndicatorHover(_ref10) {
145
+ var props = _ref10.props,
146
+ state = _ref10.state;
147
+ return function (index) {
148
+ if (props.trigger === 'hover' && index !== state.activeIndex) {
149
+ state.activeIndex = index;
150
+ }
151
+ };
152
+ };
153
+ export var watchItems = function watchItems(_ref11) {
154
+ var props = _ref11.props,
155
+ api = _ref11.api;
156
+ return function (value) {
157
+ if (value.length) {
158
+ api.setActiveItem(props.initialIndex);
159
+ }
160
+ };
161
+ };
162
+ export var watchActiveIndex = function watchActiveIndex(_ref12) {
163
+ var emit = _ref12.emit,
164
+ api = _ref12.api;
165
+ return function (_ref13) {
166
+ var value = _ref13.value,
167
+ oldValue = _ref13.oldValue;
168
+ api.resetItemPosition(oldValue);
169
+ emit('change', value, oldValue);
170
+ };
171
+ };
172
+ export var watchAutoplay = function watchAutoplay(api) {
173
+ return function (value) {
174
+ return value ? api.startTimer() : api.pauseTimer();
175
+ };
176
+ };
177
+ export var throttledArrowClick = function throttledArrowClick(api) {
178
+ return throttle(300, true, function (index) {
179
+ return api.setActiveItem(index);
180
+ });
181
+ };
182
+ export var throttledIndicatorHover = function throttledIndicatorHover(api) {
183
+ return throttle(300, function (index) {
184
+ return api.handleIndicatorHover(index);
185
+ });
186
+ };
187
+ export var computedHasLable = function computedHasLable(items) {
188
+ return items.some(function (item) {
189
+ return item.label.toString().length > 0;
190
+ });
191
+ };
192
+ export var onComplete = function onComplete(_ref14) {
193
+ var count = _ref14.count,
194
+ emit = _ref14.emit,
195
+ props = _ref14.props,
196
+ state = _ref14.state;
197
+ return function (total) {
198
+ if (count++ === total) {
199
+ state.completed = true;
200
+ if (props.initialIndex < state.items.length && props.initialIndex >= 0) {
201
+ state.activeIndex = props.initialIndex;
202
+ }
203
+ emit('complete');
204
+ }
205
+ };
206
+ };
@@ -0,0 +1,222 @@
1
+ import { onComplete, handleMouseEnter, handleMouseLeave, itemInStage, handleButtonEnter, handleButtonLeave, resetItemPosition, playSlides, pauseTimer, startTimer, setActiveItem, prev, next, handleIndicatorClick, handleIndicatorHover, watchItems, watchActiveIndex, watchAutoplay, throttledArrowClick, throttledIndicatorHover, computedHasLable } from './index';
2
+ import { addResizeListener, removeResizeListener } from '@opentiny/vue-renderless/common/deps/resize-event';
3
+ export var api = ['state', 'items', 'activeIndex', 'containerWidth', 'hover', 'hasLabel', 'onComplete', 'handleMouseEnter', 'handleMouseLeave', 'itemInStage', 'handleButtonEnter', 'handleButtonLeave', 'updateItems', 'resetItemPosition', 'playSlides', 'pauseTimer', 'startTimer', 'setActiveItem', 'prev', 'next', 'handleIndicatorClick', 'handleIndicatorHover', 'throttledArrowClick', 'throttledIndicatorHover'];
4
+ var initState = function initState(_ref) {
5
+ var reactive = _ref.reactive,
6
+ computed = _ref.computed,
7
+ api = _ref.api;
8
+ var state = reactive({
9
+ items: [],
10
+ timer: null,
11
+ hover: false,
12
+ activeIndex: -1,
13
+ completed: false,
14
+ containerWidth: 0,
15
+ hasLabel: computed(function () {
16
+ return api.computedHasLable(state.items);
17
+ })
18
+ });
19
+ return state;
20
+ };
21
+ var initApi = function initApi(_ref2) {
22
+ var api = _ref2.api,
23
+ state = _ref2.state,
24
+ props = _ref2.props,
25
+ emit = _ref2.emit;
26
+ Object.assign(api, {
27
+ state: state,
28
+ computedHasLable: computedHasLable,
29
+ playSlides: playSlides({
30
+ props: props,
31
+ state: state
32
+ }),
33
+ pauseTimer: pauseTimer(state),
34
+ onComplete: onComplete({
35
+ count: 0,
36
+ emit: emit,
37
+ props: props,
38
+ state: state
39
+ }),
40
+ itemInStage: itemInStage(state),
41
+ resetItemPosition: resetItemPosition(state),
42
+ handleButtonLeave: handleButtonLeave(state),
43
+ handleIndicatorClick: handleIndicatorClick(state),
44
+ handleIndicatorHover: handleIndicatorHover({
45
+ props: props,
46
+ state: state
47
+ }),
48
+ watchItems: watchItems({
49
+ api: api,
50
+ props: props
51
+ }),
52
+ watchActiveIndex: watchActiveIndex({
53
+ api: api,
54
+ emit: emit
55
+ }),
56
+ watchAutoplay: watchAutoplay(api),
57
+ startTimer: startTimer({
58
+ api: api,
59
+ props: props,
60
+ state: state
61
+ }),
62
+ prev: prev({
63
+ api: api,
64
+ state: state
65
+ }),
66
+ next: next({
67
+ api: api,
68
+ state: state
69
+ }),
70
+ setActiveItem: setActiveItem({
71
+ api: api,
72
+ props: props,
73
+ state: state
74
+ }),
75
+ handleMouseEnter: handleMouseEnter({
76
+ api: api,
77
+ state: state
78
+ }),
79
+ handleMouseLeave: handleMouseLeave({
80
+ api: api,
81
+ state: state
82
+ }),
83
+ handleButtonEnter: handleButtonEnter({
84
+ api: api,
85
+ state: state
86
+ }),
87
+ throttledArrowClick: throttledArrowClick(api),
88
+ throttledIndicatorHover: throttledIndicatorHover(api)
89
+ });
90
+ };
91
+ var initWatch = function initWatch(_ref3) {
92
+ var watch = _ref3.watch,
93
+ props = _ref3.props,
94
+ api = _ref3.api,
95
+ state = _ref3.state;
96
+ watch(function () {
97
+ return props.autoplay;
98
+ }, api.watchAutoplay);
99
+ watch(function () {
100
+ return props.loop;
101
+ }, function () {
102
+ api.setActiveItem(state.activeIndex);
103
+ });
104
+ };
105
+ export var useItems = function useItems(_ref4) {
106
+ var api = _ref4.api,
107
+ onMounted = _ref4.onMounted,
108
+ state = _ref4.state,
109
+ watch = _ref4.watch,
110
+ constants = _ref4.constants,
111
+ childrenHandler = _ref4.childrenHandler;
112
+ var updateItems = function updateItems() {
113
+ var $children = [];
114
+ childrenHandler(function (_ref5) {
115
+ var options = _ref5.options,
116
+ vm = _ref5.vm;
117
+ options.name === constants.CHILD_NAME && $children.push(vm);
118
+ });
119
+ state.items = $children;
120
+ };
121
+ watch(function () {
122
+ return state.items;
123
+ }, function (value) {
124
+ return state.completed && api.watchItems(value);
125
+ });
126
+ onMounted(updateItems);
127
+ return {
128
+ updateItems: updateItems
129
+ };
130
+ };
131
+ export var useActiveIndex = function useActiveIndex(_ref6) {
132
+ var api = _ref6.api,
133
+ state = _ref6.state,
134
+ watch = _ref6.watch;
135
+ watch(function () {
136
+ return state.activeIndex;
137
+ }, function (value, oldValue) {
138
+ return api.watchActiveIndex({
139
+ value: value,
140
+ oldValue: oldValue
141
+ });
142
+ }, {
143
+ immediate: true
144
+ });
145
+ };
146
+ export var useResizeListener = function useResizeListener(_ref7) {
147
+ var api = _ref7.api,
148
+ onBeforeUnmount = _ref7.onBeforeUnmount,
149
+ onMounted = _ref7.onMounted,
150
+ parent = _ref7.parent;
151
+ onMounted(function () {
152
+ addResizeListener(parent.$el, api.resetItemPosition);
153
+ });
154
+ onBeforeUnmount(function () {
155
+ if (parent.$el) {
156
+ removeResizeListener(parent.$el, api.resetItemPosition);
157
+ }
158
+ });
159
+ };
160
+ export var renderless = function renderless(props, _ref8, _ref9) {
161
+ var computed = _ref8.computed,
162
+ onMounted = _ref8.onMounted,
163
+ onBeforeUnmount = _ref8.onBeforeUnmount,
164
+ reactive = _ref8.reactive,
165
+ watch = _ref8.watch;
166
+ var vm = _ref9.vm,
167
+ parent = _ref9.parent,
168
+ constants = _ref9.constants,
169
+ emit = _ref9.emit,
170
+ childrenHandler = _ref9.childrenHandler;
171
+ var api = {};
172
+ var state = initState({
173
+ reactive: reactive,
174
+ computed: computed,
175
+ api: api
176
+ });
177
+ initApi({
178
+ api: api,
179
+ state: state,
180
+ props: props,
181
+ emit: emit
182
+ });
183
+ var _useItems = useItems({
184
+ api: api,
185
+ vm: vm,
186
+ onMounted: onMounted,
187
+ state: state,
188
+ watch: watch,
189
+ constants: constants,
190
+ childrenHandler: childrenHandler
191
+ }),
192
+ updateItems = _useItems.updateItems;
193
+ api.updateItems = updateItems;
194
+ useActiveIndex({
195
+ api: api,
196
+ parent: parent,
197
+ props: props,
198
+ state: state,
199
+ watch: watch
200
+ });
201
+ useResizeListener({
202
+ api: api,
203
+ onBeforeUnmount: onBeforeUnmount,
204
+ onMounted: onMounted,
205
+ parent: parent
206
+ });
207
+ initWatch({
208
+ watch: watch,
209
+ props: props,
210
+ api: api,
211
+ state: state
212
+ });
213
+ onMounted(function () {
214
+ api.startTimer();
215
+ api.onComplete(state.items.length);
216
+ });
217
+ parent.$on('updateItems', api.updateItems);
218
+ parent.$on('complete', function () {
219
+ api.onComplete(state.items.length);
220
+ });
221
+ return api;
222
+ };
@@ -0,0 +1,93 @@
1
+ export var processIndex = function processIndex(_ref) {
2
+ var activeIndex = _ref.activeIndex,
3
+ index = _ref.index,
4
+ length = _ref.length;
5
+ if (activeIndex === 0 && index === length - 1) {
6
+ return -1;
7
+ } else if (activeIndex === length - 1 && index === 0) {
8
+ return length;
9
+ } else if (index < activeIndex - 1 && activeIndex - index >= length / 2) {
10
+ return length + 1;
11
+ } else if (index > activeIndex + 1 && index - activeIndex >= length / 2) {
12
+ return -2;
13
+ }
14
+ return index;
15
+ };
16
+ export var calculateTranslate = function calculateTranslate(_ref2) {
17
+ var CARD_SCALE = _ref2.CARD_SCALE,
18
+ state = _ref2.state;
19
+ return function (_ref3) {
20
+ var activeIndex = _ref3.activeIndex,
21
+ index = _ref3.index,
22
+ parentWidth = _ref3.parentWidth;
23
+ if (state.inStage) {
24
+ return parentWidth * ((2 - CARD_SCALE) * (index - activeIndex) + 1) / 4;
25
+ } else if (index < activeIndex) {
26
+ return -(1 + CARD_SCALE) * parentWidth / 4;
27
+ }
28
+ return (3 + CARD_SCALE) * parentWidth / 4;
29
+ };
30
+ };
31
+ export var translateItem = function translateItem(_ref4) {
32
+ var api = _ref4.api,
33
+ CARD_SCALE = _ref4.CARD_SCALE,
34
+ parent = _ref4.parent,
35
+ state = _ref4.state;
36
+ return function (_ref5) {
37
+ var activeIndex = _ref5.activeIndex,
38
+ index = _ref5.index,
39
+ oldIndex = _ref5.oldIndex;
40
+ var parentHeight = parent.$parent.$el.offsetHeight;
41
+ var parentWidth = parent.$parent.$el.offsetWidth;
42
+ var vnode = parent.$parent;
43
+ var length = vnode.state.items.length;
44
+ var _parent$$constants = parent.$constants,
45
+ TYPE_CARD = _parent$$constants.TYPE_CARD,
46
+ TYPE_VERTICAL = _parent$$constants.TYPE_VERTICAL;
47
+ if (vnode.type !== TYPE_CARD && oldIndex !== undefined) {
48
+ state.animating = index === activeIndex || index === oldIndex;
49
+ }
50
+ if (index !== activeIndex && length > 2 && vnode.loop) {
51
+ index = api.processIndex({
52
+ index: index,
53
+ activeIndex: activeIndex,
54
+ length: length
55
+ });
56
+ }
57
+ if (vnode.type === TYPE_CARD) {
58
+ state.inStage = Math.round(Math.abs(index - activeIndex)) <= 1;
59
+ state.active = index === activeIndex;
60
+ state.translate = api.calculateTranslate({
61
+ index: index,
62
+ activeIndex: activeIndex,
63
+ parentWidth: parentWidth
64
+ });
65
+ state.scale = state.active ? 1 : CARD_SCALE;
66
+ } else {
67
+ state.active = index === activeIndex;
68
+ state.translate = vnode.type === TYPE_VERTICAL ? parentHeight * (index - activeIndex) : parentWidth * (index - activeIndex);
69
+ }
70
+ state.ready = true;
71
+ };
72
+ };
73
+ export var handleItemClick = function handleItemClick(parent) {
74
+ return function () {
75
+ var vnode = parent.$parent;
76
+ if (vnode && vnode.type === parent.$constants.TYPE_CARD) {
77
+ var index = vnode.state.items.indexOf(parent);
78
+ vnode.setActiveItem(index);
79
+ }
80
+ };
81
+ };
82
+ export var computedTransform = function computedTransform(_ref6) {
83
+ var parent = _ref6.parent,
84
+ TYPE_VERTICAL = _ref6.TYPE_VERTICAL;
85
+ return function (state) {
86
+ var TRANSLATE = parent.$parent.type === TYPE_VERTICAL ? "translateY(".concat(state.translate, "px) scale(").concat(state.scale, ")") : "translateX(".concat(state.translate, "px) scale(").concat(state.scale, ")");
87
+ return {
88
+ msTransform: TRANSLATE,
89
+ webkitTransform: TRANSLATE,
90
+ transform: TRANSLATE
91
+ };
92
+ };
93
+ };
@@ -0,0 +1,57 @@
1
+ import { processIndex, calculateTranslate, translateItem, handleItemClick, computedTransform } from './index';
2
+ export var api = ['state', 'hover', 'translate', 'scale', 'active', 'ready', 'inStage', 'animating', 'isOblique', 'hasTitle', 'getTransform', 'processIndex', 'calculateTranslate', 'translateItem', 'handleItemClick'];
3
+ export var renderless = function renderless(props, _ref, _ref2) {
4
+ var computed = _ref.computed,
5
+ onMounted = _ref.onMounted,
6
+ onUnmounted = _ref.onUnmounted,
7
+ reactive = _ref.reactive;
8
+ var parent = _ref2.parent,
9
+ dispatch = _ref2.dispatch;
10
+ var api = {};
11
+ var CARD_SCALE = parent.$constants.CARD_SCALE;
12
+ var TYPE_VERTICAL = parent.$constants.TYPE_VERTICAL;
13
+ var state = reactive({
14
+ scale: 1,
15
+ translate: 0,
16
+ hover: false,
17
+ ready: false,
18
+ active: false,
19
+ inStage: false,
20
+ animating: false,
21
+ isOblique: false,
22
+ carouselParent: parent.$parent,
23
+ hasTitle: computed(function () {
24
+ return !!props.title;
25
+ }),
26
+ getTransform: computed(function () {
27
+ return api.computedTransform(state);
28
+ })
29
+ });
30
+ Object.assign(api, {
31
+ state: state,
32
+ processIndex: processIndex,
33
+ handleItemClick: handleItemClick(parent),
34
+ computedTransform: computedTransform({
35
+ parent: parent,
36
+ TYPE_VERTICAL: TYPE_VERTICAL
37
+ }),
38
+ calculateTranslate: calculateTranslate({
39
+ CARD_SCALE: CARD_SCALE,
40
+ state: state
41
+ }),
42
+ translateItem: translateItem({
43
+ api: api,
44
+ CARD_SCALE: CARD_SCALE,
45
+ parent: parent,
46
+ state: state
47
+ })
48
+ });
49
+ onMounted(function () {
50
+ dispatch('Carousel', 'updateItems', []);
51
+ dispatch('Carousel', 'complete', []);
52
+ });
53
+ onUnmounted(function () {
54
+ parent.$parent && parent.$parent.updateItems();
55
+ });
56
+ return api;
57
+ };