@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,110 @@
1
+ import { isNumber } from '@opentiny/vue-renderless/common/type';
2
+ export var computedShowHeader = function computedShowHeader(_ref) {
3
+ var constants = _ref.constants,
4
+ props = _ref.props;
5
+ return function () {
6
+ return props.pattern !== constants.SIMPLE;
7
+ };
8
+ };
9
+ export var computedShowFooter = function computedShowFooter(_ref2) {
10
+ var constants = _ref2.constants,
11
+ props = _ref2.props;
12
+ return function () {
13
+ return props.pattern === constants.LEGEND || props.pattern === constants.CLASSIC;
14
+ };
15
+ };
16
+ export var computedShowAside = function computedShowAside(_ref3) {
17
+ var constants = _ref3.constants,
18
+ props = _ref3.props;
19
+ return function () {
20
+ return props.pattern !== constants.CLASSIC;
21
+ };
22
+ };
23
+ var transferWidthOrHeight = function transferWidthOrHeight(value) {
24
+ return isNumber(value) ? value + 'px' : value;
25
+ };
26
+ export var computedHeaderStyle = function computedHeaderStyle(_ref4) {
27
+ var constants = _ref4.constants,
28
+ props = _ref4.props;
29
+ return function () {
30
+ if (props.pattern === constants.FASHION) {
31
+ return {
32
+ height: transferWidthOrHeight(props.headerHeight),
33
+ left: transferWidthOrHeight(props.asideWidth)
34
+ };
35
+ }
36
+ return {
37
+ height: transferWidthOrHeight(props.headerHeight)
38
+ };
39
+ };
40
+ };
41
+ export var computedAsideStyle = function computedAsideStyle(_ref5) {
42
+ var constants = _ref5.constants,
43
+ props = _ref5.props;
44
+ return function () {
45
+ if (props.pattern === constants.SIMPLE || props.pattern === constants.FASHION) {
46
+ return {
47
+ top: transferWidthOrHeight(0),
48
+ width: transferWidthOrHeight(props.asideWidth)
49
+ };
50
+ }
51
+ return {
52
+ width: transferWidthOrHeight(props.asideWidth),
53
+ top: transferWidthOrHeight(props.headerHeight)
54
+ };
55
+ };
56
+ };
57
+ export var computedMainStyle = function computedMainStyle(_ref6) {
58
+ var constants = _ref6.constants,
59
+ props = _ref6.props;
60
+ return function () {
61
+ if (props.pattern === constants.DEFAULT || props.pattern === constants.FASHION) {
62
+ return {
63
+ top: transferWidthOrHeight(props.headerHeight),
64
+ left: transferWidthOrHeight(props.asideWidth),
65
+ bottom: transferWidthOrHeight(0)
66
+ };
67
+ }
68
+ if (props.pattern === constants.LEGEND) {
69
+ return {
70
+ top: transferWidthOrHeight(props.headerHeight),
71
+ left: transferWidthOrHeight(props.asideWidth),
72
+ bottom: transferWidthOrHeight(props.footerHeight)
73
+ };
74
+ }
75
+ if (props.pattern === constants.SIMPLE) {
76
+ return {
77
+ top: transferWidthOrHeight(0),
78
+ left: transferWidthOrHeight(props.asideWidth),
79
+ bottom: transferWidthOrHeight(0)
80
+ };
81
+ }
82
+ if (props.pattern === constants.CLASSIC) {
83
+ return {
84
+ top: transferWidthOrHeight(props.headerHeight),
85
+ left: transferWidthOrHeight(0),
86
+ bottom: transferWidthOrHeight(props.footerHeight)
87
+ };
88
+ }
89
+ };
90
+ };
91
+ export var computedFooterStyle = function computedFooterStyle(_ref7) {
92
+ var constants = _ref7.constants,
93
+ props = _ref7.props;
94
+ return function () {
95
+ if (props.pattern === constants.CLASSIC) {
96
+ return {
97
+ height: transferWidthOrHeight(props.footerHeight),
98
+ left: transferWidthOrHeight(0)
99
+ };
100
+ } else if (props.pattern === constants.LEGEND) {
101
+ return {
102
+ height: transferWidthOrHeight(props.footerHeight),
103
+ left: transferWidthOrHeight(props.asideWidth)
104
+ };
105
+ }
106
+ return {
107
+ height: transferWidthOrHeight(props.footerHeight)
108
+ };
109
+ };
110
+ };
@@ -0,0 +1,63 @@
1
+ import { computedShowHeader, computedShowAside, computedShowFooter, computedHeaderStyle, computedAsideStyle, computedMainStyle, computedFooterStyle } from './index';
2
+ export var api = ['state'];
3
+ export var renderless = function renderless(props, _ref, _ref2) {
4
+ var computed = _ref.computed,
5
+ reactive = _ref.reactive;
6
+ var constants = _ref2.constants;
7
+ var api = {};
8
+ var state = reactive({
9
+ showAside: computed(function () {
10
+ return api.computedShowAside();
11
+ }),
12
+ showHeader: computed(function () {
13
+ return api.computedShowHeader();
14
+ }),
15
+ showFooter: computed(function () {
16
+ return api.computedShowFooter();
17
+ }),
18
+ mainStyle: computed(function () {
19
+ return api.computedMainStyle();
20
+ }),
21
+ asideStyle: computed(function () {
22
+ return api.computedAsideStyle();
23
+ }),
24
+ headerStyle: computed(function () {
25
+ return api.computedHeaderStyle();
26
+ }),
27
+ footerStyle: computed(function () {
28
+ return api.computedFooterStyle();
29
+ })
30
+ });
31
+ Object.assign(api, {
32
+ state: state,
33
+ computedShowAside: computedShowAside({
34
+ constants: constants,
35
+ props: props
36
+ }),
37
+ computedShowHeader: computedShowHeader({
38
+ constants: constants,
39
+ props: props
40
+ }),
41
+ computedShowFooter: computedShowFooter({
42
+ constants: constants,
43
+ props: props
44
+ }),
45
+ computedMainStyle: computedMainStyle({
46
+ constants: constants,
47
+ props: props
48
+ }),
49
+ computedAsideStyle: computedAsideStyle({
50
+ constants: constants,
51
+ props: props
52
+ }),
53
+ computedHeaderStyle: computedHeaderStyle({
54
+ constants: constants,
55
+ props: props
56
+ }),
57
+ computedFooterStyle: computedFooterStyle({
58
+ constants: constants,
59
+ props: props
60
+ })
61
+ });
62
+ return api;
63
+ };
@@ -0,0 +1,107 @@
1
+ export var cardType = function cardType(number) {
2
+ if (/^4/.test(number)) {
3
+ return 'visa';
4
+ }
5
+ if (/^(34|37)/.test(number)) {
6
+ return 'amex';
7
+ }
8
+ if (/^5[1-5]/.test(number)) {
9
+ return 'mastercard';
10
+ }
11
+ if (/^6011/.test(number)) {
12
+ return 'discover';
13
+ }
14
+ if (/^62/.test(number)) {
15
+ return 'unionpay';
16
+ }
17
+ if (/^9792/.test(number)) {
18
+ return 'troy';
19
+ }
20
+ if (/^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/.test(number)) {
21
+ return 'dinersclub';
22
+ }
23
+ if (/^35(2[89]|[3-8])/.test(number)) {
24
+ return 'jcb';
25
+ }
26
+ return '';
27
+ };
28
+ export var changeFocus = function changeFocus(_ref) {
29
+ var refs = _ref.refs,
30
+ state = _ref.state;
31
+ return function () {
32
+ var target = refs[state.currentFocus];
33
+ if (target) {
34
+ var transform = "translateX(".concat(target.offsetLeft, "px) translateY(").concat(target.offsetTop, "px)");
35
+ state.focusElementStyle = {
36
+ transform: transform,
37
+ width: "".concat(target.offsetWidth, "px"),
38
+ height: "".concat(target.offsetHeight, "px")
39
+ };
40
+ } else {
41
+ state.focusElementStyle = null;
42
+ }
43
+ };
44
+ };
45
+ export var getIsNumberMasked = function getIsNumberMasked(props) {
46
+ return function (index, n) {
47
+ return index > 4 && index < 14 && props.labels.cardNumber.length > index && n.trim() !== '' && props.isCardNumberMasked;
48
+ };
49
+ };
50
+ export var changePlaceholder = function changePlaceholder(_ref2) {
51
+ var api = _ref2.api,
52
+ nextTick = _ref2.nextTick,
53
+ state = _ref2.state;
54
+ return function () {
55
+ if (state.cardType === 'amex') {
56
+ state.currentPlaceholder = state.amexCardPlaceholder;
57
+ } else if (state.cardType === 'dinersclub') {
58
+ state.currentPlaceholder = state.dinersCardPlaceholder;
59
+ } else {
60
+ state.currentPlaceholder = state.defaultCardPlaceholder;
61
+ }
62
+ nextTick(function () {
63
+ api.changeFocus();
64
+ });
65
+ };
66
+ };
67
+ export var focus = function focus(_ref3) {
68
+ var props = _ref3.props,
69
+ state = _ref3.state;
70
+ return function (event) {
71
+ var element = event.target;
72
+ state.isFocused = true;
73
+ if (element.id === props.fields.cardYear || element.id === props.fields.cardMonth) {
74
+ state.currentFocus = 'cardDate';
75
+ } else {
76
+ state.currentFocus = element.id;
77
+ }
78
+ state.isCardFlipped = element.id === props.fields.cardCvv;
79
+ };
80
+ };
81
+ export var blur = function blur(_ref4) {
82
+ var props = _ref4.props,
83
+ state = _ref4.state;
84
+ return function (event) {
85
+ var element = event.target;
86
+ state.isCardFlipped = !element.id === props.fields.cardCvv;
87
+ setTimeout(function () {
88
+ if (!state.isFocused) {
89
+ state.currentFocus = null;
90
+ }
91
+ }, 300);
92
+ state.isFocused = false;
93
+ };
94
+ };
95
+ export var toggleEvent = function toggleEvent(_ref5) {
96
+ var api = _ref5.api,
97
+ fieldsEls = _ref5.fieldsEls,
98
+ type = _ref5.type;
99
+ if (fieldsEls) {
100
+ for (var i = 0; i < fieldsEls.length; i++) {
101
+ var element = fieldsEls[i];
102
+ var eventType = "".concat(type, "EventListener");
103
+ element[eventType]('focus', api.focus);
104
+ element[eventType]('blur', api.blur);
105
+ }
106
+ }
107
+ };
@@ -0,0 +1,117 @@
1
+ import { cardType, changeFocus, getIsNumberMasked, changePlaceholder, focus, blur, toggleEvent } from './index';
2
+ export var api = ['state', 'changeFocus', 'getIsNumberMasked', 'changePlaceholder'];
3
+ var initState = function initState(_ref) {
4
+ var reactive = _ref.reactive,
5
+ props = _ref.props,
6
+ computed = _ref.computed;
7
+ var state = reactive({
8
+ isFocused: false,
9
+ currentFocus: null,
10
+ isCardFlipped: false,
11
+ focusElementStyle: null,
12
+ currentPlaceholder: '',
13
+ amexCardPlaceholder: '#### ###### #####',
14
+ dinersCardPlaceholder: '#### ###### ####',
15
+ defaultCardPlaceholder: '#### #### #### ####',
16
+ cardType: computed(function () {
17
+ return cardType(props.labels.cardNumber);
18
+ })
19
+ });
20
+ return state;
21
+ };
22
+ var initApi = function initApi(_ref2) {
23
+ var api = _ref2.api,
24
+ state = _ref2.state,
25
+ props = _ref2.props,
26
+ refs = _ref2.refs,
27
+ nextTick = _ref2.nextTick;
28
+ Object.assign(api, {
29
+ state: state,
30
+ blur: blur({
31
+ props: props,
32
+ state: state
33
+ }),
34
+ focus: focus({
35
+ props: props,
36
+ state: state
37
+ }),
38
+ changeFocus: changeFocus({
39
+ refs: refs,
40
+ state: state
41
+ }),
42
+ getIsNumberMasked: getIsNumberMasked(props),
43
+ changePlaceholder: changePlaceholder({
44
+ api: api,
45
+ nextTick: nextTick,
46
+ state: state
47
+ })
48
+ });
49
+ };
50
+ var initWatch = function initWatch(_ref3) {
51
+ var watch = _ref3.watch,
52
+ state = _ref3.state,
53
+ api = _ref3.api;
54
+ watch(function () {
55
+ return state.currentFocus;
56
+ }, function () {
57
+ if (state.currentFocus) {
58
+ api.changeFocus();
59
+ } else {
60
+ state.focusElementStyle = null;
61
+ }
62
+ }, {
63
+ immediate: true
64
+ });
65
+ watch(function () {
66
+ return state.cardType;
67
+ }, api.changePlaceholder, {
68
+ immediate: true
69
+ });
70
+ };
71
+ export var renderless = function renderless(props, _ref4, _ref5) {
72
+ var computed = _ref4.computed,
73
+ onMounted = _ref4.onMounted,
74
+ reactive = _ref4.reactive,
75
+ watch = _ref4.watch,
76
+ onBeforeUnmount = _ref4.onBeforeUnmount;
77
+ var refs = _ref5.refs,
78
+ nextTick = _ref5.nextTick,
79
+ parent = _ref5.parent;
80
+ var api = {};
81
+ var state = initState({
82
+ reactive: reactive,
83
+ props: props,
84
+ computed: computed
85
+ });
86
+ initApi({
87
+ api: api,
88
+ state: state,
89
+ props: props,
90
+ refs: refs,
91
+ nextTick: nextTick
92
+ });
93
+ initWatch({
94
+ watch: watch,
95
+ state: state,
96
+ api: api
97
+ });
98
+ var fieldsEls;
99
+ onMounted(function () {
100
+ api.changePlaceholder();
101
+ fieldsEls = parent.$parent.$el.querySelectorAll('[data-credit-card-field]');
102
+ toggleEvent({
103
+ api: api,
104
+ fieldsEls: fieldsEls,
105
+ type: 'add'
106
+ });
107
+ });
108
+ onBeforeUnmount(function () {
109
+ toggleEvent({
110
+ api: api,
111
+ fieldsEls: fieldsEls,
112
+ type: 'remove'
113
+ });
114
+ fieldsEls = null;
115
+ });
116
+ return api;
117
+ };
@@ -0,0 +1,143 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ export var generateMonthValue = function generateMonthValue(month) {
5
+ return month < 10 ? "0".concat(month) : month;
6
+ };
7
+ export var changeName = function changeName(_ref) {
8
+ var emit = _ref.emit,
9
+ state = _ref.state;
10
+ return function (event) {
11
+ state.formData.cardName = event.target.value;
12
+ emit('input-card-name', state.formData.cardName);
13
+ };
14
+ };
15
+ export var changeNumber = function changeNumber(_ref2) {
16
+ var emit = _ref2.emit,
17
+ state = _ref2.state;
18
+ return function (event) {
19
+ state.formData.cardNumber = event.target.value;
20
+ var value = state.formData.cardNumber.replace(/\D/g, '');
21
+ if (/^3[47]\d{0,13}$/.test(value)) {
22
+ state.formData.cardNumber = value.replace(/^(\d{4})(?=\d)/, '$1 ').replace(/^(\d{4}) (\d{6})(?=\d)/, '$1 $2 ');
23
+ state.cardNumberMaxLength = 17;
24
+ } else if (/^3(?:0[0-5]|[68]\d)\d{0,11}$/.test(value)) {
25
+ state.formData.cardNumber = value.replace(/^(\d{4})(?=\d)/, '$1 ').replace(/^(\d{4}) (\d{6})(?=\d)/, '$1 $2 ');
26
+ state.cardNumberMaxLength = 16;
27
+ } else if (/^\d{0,16}$/.test(value)) {
28
+ state.formData.cardNumber = value.replace(/^(\d{4})(?=\d)/, '$1 ').replace(/^(\d{4}) (\d{4})(?=\d)/, '$1 $2 ').replace(/^(\d{4}) (\d{4}) (\d{4})(?=\d)/, '$1 $2 $3 ');
29
+ state.cardNumberMaxLength = 19;
30
+ }
31
+ emit('input-card-number', state.formData.cardNumber);
32
+ };
33
+ };
34
+ export var changeMonth = function changeMonth(_ref3) {
35
+ var emit = _ref3.emit,
36
+ state = _ref3.state;
37
+ return function () {
38
+ emit('input-card-month', state.cardMonth);
39
+ };
40
+ };
41
+ export var changeYear = function changeYear(_ref4) {
42
+ var emit = _ref4.emit,
43
+ state = _ref4.state;
44
+ return function () {
45
+ emit('input-card-year', state.cardYear);
46
+ };
47
+ };
48
+ export var changeCvv = function changeCvv(_ref5) {
49
+ var emit = _ref5.emit,
50
+ state = _ref5.state;
51
+ return function (event) {
52
+ state.formData.cardCvv = event.target.value;
53
+ emit('input-card-cvv', state.formData.cardCvv);
54
+ };
55
+ };
56
+ export var invaildCard = function invaildCard(props) {
57
+ return function () {
58
+ var number = props.formData.cardNumber;
59
+ var sum = 0;
60
+ var isOdd = true;
61
+ if (!number) {
62
+ return true;
63
+ }
64
+ for (var i = number.length - 1; i >= 0; i--) {
65
+ var code = number.charAt(i);
66
+ if (isOdd) {
67
+ sum += code;
68
+ } else {
69
+ code = code * 2;
70
+ if (code > 9) {
71
+ code = code.toString().split('').join('+');
72
+ }
73
+ sum += code;
74
+ }
75
+ isOdd = !isOdd;
76
+ }
77
+ if (sum % 10 !== 0) {
78
+ return true;
79
+ }
80
+ return false;
81
+ };
82
+ };
83
+ export var handleSubmit = function handleSubmit(_ref6) {
84
+ var api = _ref6.api,
85
+ emit = _ref6.emit,
86
+ props = _ref6.props,
87
+ state = _ref6.state;
88
+ return function () {
89
+ var invaildCard = api.invaildCard();
90
+ emit('submit', _objectSpread(_objectSpread({
91
+ invaildCard: invaildCard
92
+ }, props.formData), {}, {
93
+ cardNumber: state.mainCardNumber.replace(/ /g, '')
94
+ }));
95
+ };
96
+ };
97
+ export var blurCardNumber = function blurCardNumber(_ref7) {
98
+ var api = _ref7.api,
99
+ state = _ref7.state;
100
+ return function () {
101
+ if (state.isCardNumberMasked) {
102
+ api.maskCardNumber();
103
+ }
104
+ };
105
+ };
106
+ export var maskCardNumber = function maskCardNumber(_ref8) {
107
+ var props = _ref8.props,
108
+ state = _ref8.state;
109
+ return function () {
110
+ state.mainCardNumber = props.formData.cardNumber;
111
+ var arr = props.formData.cardNumber.split('');
112
+ arr.forEach(function (element, index) {
113
+ if (index > 4 && index < 14 && element.trim() !== '') {
114
+ arr[index] = '*';
115
+ }
116
+ });
117
+ props.formData.cardNumber = arr.join('');
118
+ };
119
+ };
120
+ export var unMaskCardNumber = function unMaskCardNumber(_ref9) {
121
+ var props = _ref9.props,
122
+ state = _ref9.state;
123
+ return function () {
124
+ props.formData.cardNumber = state.mainCardNumber;
125
+ };
126
+ };
127
+ export var focusCardNumber = function focusCardNumber(api) {
128
+ return function () {
129
+ api.unMaskCardNumber();
130
+ };
131
+ };
132
+ export var toggleMask = function toggleMask(_ref10) {
133
+ var api = _ref10.api,
134
+ state = _ref10.state;
135
+ return function () {
136
+ state.isCardNumberMasked = !state.isCardNumberMasked;
137
+ if (state.isCardNumberMasked) {
138
+ api.maskCardNumber();
139
+ } else {
140
+ api.unMaskCardNumber();
141
+ }
142
+ };
143
+ };
@@ -0,0 +1,150 @@
1
+ import { generateMonthValue, changeName, changeNumber, changeMonth, changeYear, changeCvv, invaildCard, blurCardNumber, maskCardNumber, unMaskCardNumber, focusCardNumber, toggleMask, handleSubmit } from './index';
2
+ export var api = ['state', 'generateMonthValue', 'changeName', 'changeNumber', 'changeMonth', 'changeYear', 'changeCvv', 'invaildCard', 'blurCardNumber', 'maskCardNumber', 'unMaskCardNumber', 'focusCardNumber', 'toggleMask', 'handleSubmit'];
3
+ var initState = function initState(_ref) {
4
+ var reactive = _ref.reactive,
5
+ props = _ref.props,
6
+ computed = _ref.computed;
7
+ var state = reactive({
8
+ fields: {
9
+ cardCvv: 'v-card-cvv',
10
+ cardName: 'v-card-name',
11
+ cardYear: 'v-card-year',
12
+ cardMonth: 'v-card-month',
13
+ cardNumber: 'v-card-number'
14
+ },
15
+ minCardYear: new Date().getFullYear(),
16
+ isCardNumberMasked: true,
17
+ mainCardNumber: props.formData.cardNumber,
18
+ cardNumberMaxLength: 19,
19
+ cardMonth: props.formData.cardMonth,
20
+ cardYear: props.formData.cardYear,
21
+ formData: props.formData,
22
+ minCardMonth: computed(function () {
23
+ return props.formData.cardYear === state.minCardYear ? new Date().getMonth() + 1 : 1;
24
+ })
25
+ });
26
+ return state;
27
+ };
28
+ var initApi = function initApi(_ref2) {
29
+ var api = _ref2.api,
30
+ state = _ref2.state,
31
+ emit = _ref2.emit,
32
+ props = _ref2.props;
33
+ Object.assign(api, {
34
+ state: state,
35
+ generateMonthValue: generateMonthValue,
36
+ changeCvv: changeCvv({
37
+ emit: emit,
38
+ state: state
39
+ }),
40
+ changeYear: changeYear({
41
+ emit: emit,
42
+ state: state
43
+ }),
44
+ changeName: changeName({
45
+ emit: emit,
46
+ state: state
47
+ }),
48
+ invaildCard: invaildCard(props),
49
+ changeMonth: changeMonth({
50
+ emit: emit,
51
+ state: state
52
+ }),
53
+ changeNumber: changeNumber({
54
+ emit: emit,
55
+ state: state
56
+ }),
57
+ maskCardNumber: maskCardNumber({
58
+ props: props,
59
+ state: state
60
+ }),
61
+ unMaskCardNumber: unMaskCardNumber({
62
+ props: props,
63
+ state: state
64
+ }),
65
+ toggleMask: toggleMask({
66
+ api: api,
67
+ state: state
68
+ }),
69
+ handleSubmit: handleSubmit({
70
+ api: api,
71
+ emit: emit,
72
+ props: props,
73
+ state: state
74
+ }),
75
+ blurCardNumber: blurCardNumber({
76
+ api: api,
77
+ state: state
78
+ }),
79
+ focusCardNumber: focusCardNumber(api)
80
+ });
81
+ };
82
+ var initWatch = function initWatch(_ref3) {
83
+ var watch = _ref3.watch,
84
+ state = _ref3.state,
85
+ props = _ref3.props,
86
+ emit = _ref3.emit;
87
+ watch(function () {
88
+ return state.cardYear;
89
+ }, function (value) {
90
+ state.formData.cardYear = value;
91
+ emit('update:formData', state.formData);
92
+ });
93
+ watch(function () {
94
+ return state.formData.cardNumber;
95
+ }, function () {
96
+ return emit('update:formData', state.formData);
97
+ });
98
+ watch(function () {
99
+ return state.formData.cardName;
100
+ }, function () {
101
+ return emit('update:formData', state.formData);
102
+ });
103
+ watch(function () {
104
+ return state.formData.cardCvv;
105
+ }, function () {
106
+ return emit('update:formData', state.formData);
107
+ });
108
+ watch(function () {
109
+ return state.cardMonth;
110
+ }, function (value) {
111
+ state.formData.cardMonth = value;
112
+ emit('update:formData', state.formData);
113
+ });
114
+ watch(function () {
115
+ return props.formData.cardYear;
116
+ }, function () {
117
+ if (props.formData.cardMonth < state.minCardMonth) {
118
+ state.cardMonth = '';
119
+ }
120
+ }, {
121
+ immediate: true
122
+ });
123
+ };
124
+ export var renderless = function renderless(props, _ref4, _ref5) {
125
+ var computed = _ref4.computed,
126
+ onMounted = _ref4.onMounted,
127
+ reactive = _ref4.reactive,
128
+ watch = _ref4.watch;
129
+ var emit = _ref5.emit;
130
+ var api = {};
131
+ var state = initState({
132
+ reactive: reactive,
133
+ props: props,
134
+ computed: computed
135
+ });
136
+ initApi({
137
+ api: api,
138
+ state: state,
139
+ emit: emit,
140
+ props: props
141
+ });
142
+ onMounted(api.maskCardNumber);
143
+ initWatch({
144
+ watch: watch,
145
+ state: state,
146
+ props: props,
147
+ emit: emit
148
+ });
149
+ return api;
150
+ };