@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,190 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import { hasOwn, isObject, isNull } from '@opentiny/vue-renderless/common/type';
3
+ var isServer = typeof window === 'undefined';
4
+ var SPECIAL_CHARS_REGEXP = /([:\-_]+(.))/g;
5
+ var MOZ_HACK_REGEXP = /^moz([A-Z])/;
6
+ var ieVersion = isServer ? 0 : Number(document.documentMode);
7
+ var trim = function trim(string) {
8
+ return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
9
+ };
10
+ var camelCase = function camelCase(name) {
11
+ return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
12
+ return offset ? letter.toUpperCase() : letter;
13
+ }).replace(MOZ_HACK_REGEXP, 'Moz$1');
14
+ };
15
+ export var on = function () {
16
+ if (!isServer) {
17
+ return function (el, event, handler) {
18
+ if (el && event && handler) {
19
+ el.addEventListener(event, handler, false);
20
+ }
21
+ };
22
+ } else {
23
+ return function (el, event, handler) {
24
+ if (el && event && handler) {
25
+ el.attachEvent('on' + event, handler);
26
+ }
27
+ };
28
+ }
29
+ }();
30
+ export var off = function () {
31
+ if (!isServer) {
32
+ return function (el, event, handler) {
33
+ if (el && event) {
34
+ el.removeEventListener(event, handler, false);
35
+ }
36
+ };
37
+ } else {
38
+ return function (el, event, handler) {
39
+ if (el && event) {
40
+ el.detachEvent('on' + event, handler);
41
+ }
42
+ };
43
+ }
44
+ }();
45
+ export var once = function once(el, event, fn) {
46
+ var listener = function listener() {
47
+ if (fn) {
48
+ fn.apply(this, arguments);
49
+ }
50
+ off(el, event, listener);
51
+ };
52
+ on(el, event, listener);
53
+ };
54
+ export var hasClass = function hasClass(el, clazz) {
55
+ if (!el || !clazz) return false;
56
+ if (clazz.indexOf(' ') !== -1) {
57
+ throw new Error('className should not contain space.');
58
+ }
59
+ if (el.classList) {
60
+ return el.classList.contains(clazz);
61
+ }
62
+ return (' ' + el.className + ' ').indexOf(' ' + clazz + ' ') > -1;
63
+ };
64
+ export var addClass = function addClass(el, clazz) {
65
+ if (!el) {
66
+ return;
67
+ }
68
+ var classes = (clazz || '').split(' ');
69
+ var curClass = el.className;
70
+ for (var i = 0, len = classes.length; i < len; i++) {
71
+ var clsName = classes[i];
72
+ if (clsName) {
73
+ if (el.classList) {
74
+ el.classList.add(clsName);
75
+ } else if (!hasClass(el, clsName)) {
76
+ curClass += ' ' + clsName;
77
+ }
78
+ }
79
+ }
80
+ if (!el.classList) {
81
+ el.className = curClass;
82
+ }
83
+ };
84
+ export var removeClass = function removeClass(el, clazz) {
85
+ if (!el || !clazz) {
86
+ return;
87
+ }
88
+ var classes = clazz.split(' ');
89
+ var curClass = ' ' + el.className + ' ';
90
+ for (var i = 0, len = classes.length; i < len; i++) {
91
+ var clsName = classes[i];
92
+ if (clsName) {
93
+ if (el.classList) {
94
+ el.classList.remove(clsName);
95
+ } else if (hasClass(el, clsName)) {
96
+ curClass = curClass.replace(' ' + clsName + ' ', ' ');
97
+ }
98
+ }
99
+ }
100
+ if (!el.classList) {
101
+ el.className = trim(curClass);
102
+ }
103
+ };
104
+ export var getStyle = function getStyle(el, styleName) {
105
+ if (isServer) return;
106
+ if (!el || !styleName) return null;
107
+ styleName = camelCase(styleName);
108
+ if (styleName === 'float') {
109
+ styleName = 'cssFloat';
110
+ }
111
+ try {
112
+ var computed = document.defaultView.getComputedStyle(el, '');
113
+ return el.style[styleName] || computed ? computed[styleName] : null;
114
+ } catch (e) {
115
+ return el.style[styleName];
116
+ }
117
+ };
118
+ export var setStyle = function setStyle(el, name, value) {
119
+ if (!el || !name) {
120
+ return;
121
+ }
122
+ if (_typeof(name) === 'object') {
123
+ for (var prop in name) {
124
+ if (hasOwn.call(name, prop)) {
125
+ setStyle(el, prop, name[prop]);
126
+ }
127
+ }
128
+ } else {
129
+ name = camelCase(name);
130
+ if (name === 'opacity' && ieVersion < 9) {
131
+ el.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
132
+ } else {
133
+ el.style[name] = value;
134
+ }
135
+ }
136
+ };
137
+ export var isScroll = function isScroll(el, vertical) {
138
+ if (isServer) return;
139
+ var determinedDirection = !isNull(vertical);
140
+ var overflow;
141
+ if (determinedDirection) {
142
+ overflow = vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x');
143
+ } else {
144
+ overflow = getStyle(el, 'overflow');
145
+ }
146
+ return overflow.match(/(scroll|auto)/);
147
+ };
148
+ export var getScrollContainer = function getScrollContainer(el, vertical) {
149
+ if (isServer) return;
150
+ var parent = el;
151
+ while (parent) {
152
+ if (~[window, document, document.documentElement].indexOf(parent)) {
153
+ return window;
154
+ }
155
+ if (isScroll(parent, vertical)) {
156
+ return parent;
157
+ }
158
+ parent = parent.parentNode;
159
+ }
160
+ return parent;
161
+ };
162
+ export var isInContainer = function isInContainer(el, container) {
163
+ if (isServer || !el || !container) return false;
164
+ var elRect = el.getBoundingClientRect();
165
+ var containerRect;
166
+ if (~[window, document, document.documentElement].indexOf(container) || isNull(container)) {
167
+ containerRect = {
168
+ top: 0,
169
+ right: window.innerWidth,
170
+ bottom: window.innerHeight,
171
+ left: 0
172
+ };
173
+ } else {
174
+ containerRect = container.getBoundingClientRect();
175
+ }
176
+ return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
177
+ };
178
+ export var isVNode = function isVNode(node) {
179
+ return node !== null && isObject(node) && hasOwn.call(node, 'componentOptions');
180
+ };
181
+ export var getDomNode = function getDomNode() {
182
+ var documentElement = document.documentElement;
183
+ var bodyElem = document.body;
184
+ return {
185
+ scrollTop: documentElement.scrollTop || bodyElem.scrollTop,
186
+ scrollLeft: documentElement.scrollLeft || bodyElem.scrollLeft,
187
+ visibleHeight: documentElement.clientHeight || bodyElem.clientHeight,
188
+ visibleWidth: documentElement.clientWidth || bodyElem.clientWidth
189
+ };
190
+ };
@@ -0,0 +1,157 @@
1
+ var _this = this;
2
+ import { extend } from '@opentiny/vue-renderless/common/object';
3
+ import { on, off } from '@opentiny/vue-renderless/common/deps/dom';
4
+ import screenfull from '@opentiny/vue-renderless/common/deps/fullscreen/screenfull';
5
+ var defaults = {
6
+ callback: function callback() {
7
+ return undefined;
8
+ },
9
+ fullscreenClass: 'fullscreen',
10
+ pageOnly: false,
11
+ teleport: false
12
+ };
13
+ var token;
14
+ var parentNode;
15
+ var setStyle = function setStyle(element, style) {
16
+ element.style.position = style.position;
17
+ element.style.left = style.left;
18
+ element.style.top = style.top;
19
+ element.style.width = style.width;
20
+ element.style.height = style.height;
21
+ element.style.zIndex = style.zIndex;
22
+ };
23
+ var resetElement = function resetElement(api) {
24
+ var targetEle = api.targetEle;
25
+ if (targetEle) {
26
+ targetEle.classList.remove(api.opts.fullscreenClass);
27
+ if (api.opts.teleport || api.opts.pageOnly) {
28
+ if (api.opts.teleport && parentNode) {
29
+ parentNode.insertBefore(targetEle, token);
30
+ parentNode.removeChild(token);
31
+ }
32
+ if (targetEle.__styleCache) {
33
+ setStyle(targetEle, targetEle.__styleCache);
34
+ }
35
+ }
36
+ }
37
+ };
38
+ var setTargetStyle = function setTargetStyle(target, options) {
39
+ var _target$style = target.style,
40
+ position = _target$style.position,
41
+ left = _target$style.left,
42
+ top = _target$style.top,
43
+ width = _target$style.width,
44
+ height = _target$style.height,
45
+ zIndex = _target$style.zIndex;
46
+ target.classList.add(options.fullscreenClass);
47
+ if (options.teleport || options.pageOnly) {
48
+ var style = {
49
+ position: 'fixed',
50
+ left: '0',
51
+ top: '0',
52
+ width: '100%',
53
+ height: '100%'
54
+ };
55
+ target.__styleCache = {
56
+ position: position,
57
+ left: left,
58
+ top: top,
59
+ width: width,
60
+ height: height,
61
+ zIndex: zIndex
62
+ };
63
+ options.zIndex && (style.zIndex = options.zIndex);
64
+ setStyle(target, style);
65
+ }
66
+ };
67
+ var getOptions = function getOptions(screenfull, options, target) {
68
+ options = extend({}, defaults, options);
69
+ if (target === document.body) {
70
+ options.teleport = false;
71
+ }
72
+ if (!screenfull.isEnabled) {
73
+ options.pageOnly = true;
74
+ }
75
+ return options;
76
+ };
77
+ var api = {
78
+ targetElement: null,
79
+ opts: null,
80
+ isEnabled: screenfull.isEnabled,
81
+ isFullScreen: false,
82
+ toggle: function toggle(target, options, force) {
83
+ if (force === undefined) {
84
+ return !_this.isFullScreen ? _this.request(target, options) : _this.exit();
85
+ }
86
+ return force ? _this.request(target, options) : _this.exit();
87
+ },
88
+ request: function request(targetEle, options) {
89
+ if (_this.isFullScreen) {
90
+ return Promise.resolve();
91
+ }
92
+ if (!targetEle) {
93
+ targetEle = document.body;
94
+ }
95
+ _this.opts = getOptions(screenfull, options, targetEle);
96
+ setTargetStyle(targetEle, _this.opts);
97
+ if (_this.opts.teleport) {
98
+ parentNode = targetEle.parentNode;
99
+ if (parentNode) {
100
+ token = document.createComment('fullscreen-token');
101
+ parentNode.insertBefore(token, targetEle);
102
+ document.body.appendChild(targetEle);
103
+ }
104
+ }
105
+ if (_this.opts.pageOnly) {
106
+ var keypressCallback = function keypressCallback(e) {
107
+ if (e.key === 'Escape') {
108
+ off(document, 'keyup', keypressCallback);
109
+ _this.exit();
110
+ }
111
+ };
112
+ _this.isFullScreen = true;
113
+ _this.targetElement = targetEle;
114
+ off(document, 'keyup', keypressCallback);
115
+ on(document, 'keyup', keypressCallback);
116
+ if (_this.opts.callback) {
117
+ _this.opts.callback(_this.isFullScreen);
118
+ }
119
+ return Promise.resolve();
120
+ } else {
121
+ var fullScreenCallback = function fullScreenCallback() {
122
+ if (!screenfull.isFullScreen) {
123
+ screenfull.off('change', fullScreenCallback);
124
+ resetElement(_this);
125
+ }
126
+ _this.isFullScreen = screenfull.isFullScreen;
127
+ _this.targetElement = !_this.opts.teleport ? screenfull.targetElement : targetEle || null;
128
+ if (_this.opts.callback) {
129
+ _this.opts.callback(screenfull.isFullScreen);
130
+ }
131
+ };
132
+ screenfull.on('change', fullScreenCallback);
133
+ return screenfull.request(_this.opts.teleport ? document.body : targetEle);
134
+ }
135
+ },
136
+ exit: function exit() {
137
+ if (!this.isFullScreen) {
138
+ return Promise.resolve();
139
+ }
140
+ if (this.opts.pageOnly) {
141
+ resetElement(this);
142
+ this.isFullScreen = false;
143
+ this.targetElement = null;
144
+ if (this.opts.callback) {
145
+ this.opts.callback(this.isFullScreen);
146
+ }
147
+ return Promise.resolve();
148
+ }
149
+ return screenfull.exit();
150
+ }
151
+ };
152
+ api.support = api.isEnabled;
153
+ api.getState = function () {
154
+ return api.isFullScreen;
155
+ };
156
+ api.enter = api.request;
157
+ export default api;
@@ -0,0 +1,106 @@
1
+ import { on as _on, off as _off } from '@opentiny/vue-renderless/common/deps/dom';
2
+ var fullscreenApi = ['fullscreenElement', 'fullscreenEnabled', 'requestFullscreen', 'exitFullscreen', 'fullscreenchange', 'fullscreenerror'];
3
+ var fullscreenApiMoz = ['mozFullScreenElement', 'mozFullScreenEnabled', 'mozRequestFullScreen', 'mozCancelFullScreen', 'mozfullscreenchange', 'mozfullscreenerror'];
4
+ var fullscreenApiWebkit = ['webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitfullscreenchange', 'webkitfullscreenerror'];
5
+ var fullscreenApiMs = ['msFullscreenElement', 'msFullscreenEnabled', 'msRequestFullscreen', 'msExitFullscreen', 'MSFullscreenChange', 'MSFullscreenError'];
6
+ var fullscreenApiMap = [fullscreenApi, fullscreenApiWebkit, fullscreenApiMoz, fullscreenApiMs];
7
+ var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};
8
+ var fullscreenEvents = null;
9
+ var getFullScreenEvents = function getFullScreenEvents() {
10
+ for (var i = 0, len = fullscreenApiMap.length; i < len; i++) {
11
+ var eventName = fullscreenApiMap[i];
12
+ if (eventName && eventName[1] in document) {
13
+ fullscreenEvents = {};
14
+ for (i = 0; i < eventName.length; i++) {
15
+ fullscreenEvents[fullscreenApiMap[0][i]] = eventName[i];
16
+ }
17
+ return;
18
+ }
19
+ }
20
+ };
21
+ getFullScreenEvents();
22
+ var eventNameMap = {
23
+ change: fullscreenEvents && fullscreenEvents.fullscreenchange,
24
+ error: fullscreenEvents && fullscreenEvents.fullscreenerror
25
+ };
26
+ var screenfull = {
27
+ request: function request(element, options) {
28
+ var _this = this;
29
+ return new Promise(function (resolve, reject) {
30
+ var onFullscreenEntered = function onFullscreenEntered() {
31
+ _this.off('change', onFullscreenEntered);
32
+ resolve();
33
+ };
34
+ _this.on('change', onFullscreenEntered);
35
+ element = element || document.documentElement;
36
+ if (element[fullscreenEvents && fullscreenEvents.requestFullscreen]) {
37
+ var promiseReturn = element[fullscreenEvents && fullscreenEvents.requestFullscreen](options);
38
+ if (promiseReturn instanceof Promise) {
39
+ promiseReturn.then(onFullscreenEntered)["catch"](reject);
40
+ }
41
+ }
42
+ });
43
+ },
44
+ exit: function exit() {
45
+ var _this2 = this;
46
+ return new Promise(function (resolve, reject) {
47
+ if (!_this2.isFullscreen) {
48
+ resolve();
49
+ return;
50
+ }
51
+ var onFullscreenExit = function onFullscreenExit() {
52
+ _this2.off('change', onFullscreenExit);
53
+ resolve();
54
+ };
55
+ _this2.on('change', onFullscreenExit);
56
+ if (document[fullscreenEvents && fullscreenEvents.exitFullscreen]) {
57
+ var promiseReturn = document[fullscreenEvents && fullscreenEvents.exitFullscreen]();
58
+ if (promiseReturn instanceof Promise) {
59
+ promiseReturn.then(onFullscreenExit)["catch"](reject);
60
+ }
61
+ }
62
+ });
63
+ },
64
+ toggle: function toggle(element, options) {
65
+ return this.isFullscreen ? this.exit() : this.request(element, options);
66
+ },
67
+ onchange: function onchange(callback) {
68
+ this.on('change', callback);
69
+ },
70
+ onerror: function onerror(callback) {
71
+ this.on('error', callback);
72
+ },
73
+ on: function on(event, callback) {
74
+ var eventName = eventNameMap[event];
75
+ if (eventName) {
76
+ _on(document, eventName, callback);
77
+ }
78
+ },
79
+ off: function off(event, callback) {
80
+ var eventName = eventNameMap[event];
81
+ if (eventName) {
82
+ _off(document, eventName, callback);
83
+ }
84
+ },
85
+ raw: fullscreenEvents
86
+ };
87
+ Object.defineProperties(screenfull, {
88
+ isFullscreen: {
89
+ get: function get() {
90
+ return !!document[fullscreenEvents && fullscreenEvents.fullscreenElement];
91
+ }
92
+ },
93
+ element: {
94
+ enumerable: true,
95
+ get: function get() {
96
+ return document[fullscreenEvents && fullscreenEvents.fullscreenElement];
97
+ }
98
+ },
99
+ isEnabled: {
100
+ enumerable: true,
101
+ get: function get() {
102
+ return !!document[fullscreenEvents && fullscreenEvents.fullscreenEnabled];
103
+ }
104
+ }
105
+ });
106
+ export default screenfull;
@@ -0,0 +1,15 @@
1
+ import { on, off } from '@opentiny/vue-renderless/common/deps/dom';
2
+ var checkValue = function checkValue(event) {
3
+ if (event.charCode >= 48 && event.charCode <= 57) {
4
+ event.preventDefault();
5
+ }
6
+ return true;
7
+ };
8
+ export default {
9
+ bind: function bind(element) {
10
+ on(element, 'keypress', checkValue);
11
+ },
12
+ unbind: function unbind(element) {
13
+ off(element, 'keypress', checkValue);
14
+ }
15
+ };
@@ -0,0 +1,149 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ var Memorize = function () {
5
+ function Memorize(value) {
6
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7
+ _classCallCheck(this, Memorize);
8
+ if (value && _typeof(value) === 'object') {
9
+ options = value;
10
+ } else {
11
+ value = [];
12
+ }
13
+ if (typeof options.key !== 'string' || !options.key) {
14
+ throw Error('Memorize Initialization error.');
15
+ }
16
+ this._prefix = 'tiny_memorize_';
17
+ this._customField1 = 'frequency';
18
+ this._customField2 = 'time';
19
+ this._sortBy = (options.sortBy || 'frequency').toUpperCase();
20
+ this._sort = (options.sort || 'desc').toUpperCase();
21
+ this._dataKey = options.dataKey || 'value';
22
+ this._highlightClass = options.highlightClass || 'memorize-highlight';
23
+ this._highlightNum = options.highlightNum || Infinity;
24
+ this._cacheNum = options.cacheNum || Infinity;
25
+ this._serialize = options.serialize || JSON.stringify;
26
+ this._deserialize = options.deserialize || JSON.parse;
27
+ this.setKey(options.key);
28
+ this.assemble(value);
29
+ }
30
+ _createClass(Memorize, [{
31
+ key: "setKey",
32
+ value: function setKey(storeKey) {
33
+ this._storeKey = this._prefix + (storeKey || +new Date());
34
+ }
35
+ }, {
36
+ key: "getValue",
37
+ value: function getValue() {
38
+ var isSort = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
39
+ var storeVlue = window.localStorage[this._storeKey] || '';
40
+ if (storeVlue) {
41
+ try {
42
+ var list = this._deserialize(storeVlue);
43
+ return isSort ? this.sort(list) : list;
44
+ } catch (e) {
45
+ return [];
46
+ }
47
+ }
48
+ return [];
49
+ }
50
+ }, {
51
+ key: "setValue",
52
+ value: function setValue(value) {
53
+ try {
54
+ window.localStorage.setItem(this._storeKey, this._serialize(value));
55
+ } catch (e) {
56
+ throw Error('Memorize set localStorage error.');
57
+ }
58
+ }
59
+ }, {
60
+ key: "clear",
61
+ value: function clear() {
62
+ window.localStorage.removeItem(this._storeKey);
63
+ }
64
+ }, {
65
+ key: "add",
66
+ value: function add(dataKey) {
67
+ var list = this.getValue(false);
68
+ var newData = {
69
+ key: dataKey
70
+ };
71
+ newData[this._customField1] = 1;
72
+ newData[this._customField2] = +new Date();
73
+ if (list.length < this._cacheNum) {
74
+ list.push(newData);
75
+ this.setValue(list);
76
+ }
77
+ }
78
+ }, {
79
+ key: "updateByKey",
80
+ value: function updateByKey(dataKey) {
81
+ var _this = this;
82
+ var isChanged = false;
83
+ var list = this.getValue(false);
84
+ list.some(function (item) {
85
+ if (item.key === dataKey) {
86
+ item[_this._customField1] = (item[_this._customField1] || 0) + 1;
87
+ item[_this._customField2] = +new Date();
88
+ isChanged = true;
89
+ return true;
90
+ }
91
+ return false;
92
+ });
93
+ isChanged ? this.setValue(list) : this.add(dataKey);
94
+ }
95
+ }, {
96
+ key: "sort",
97
+ value: function sort(list) {
98
+ var _this2 = this;
99
+ if (Array.isArray(list)) {
100
+ return list.sort(function (x, y) {
101
+ var isDesc = _this2._sort === 'DESC';
102
+ var compare = isDesc ? [-1, 1] : [1, -1];
103
+ var sortField = _this2._sortBy === 'FREQUENCY' ? _this2._customField1 : _this2._customField2;
104
+ var xField = x[sortField];
105
+ var yField = y[sortField];
106
+ if (isNaN(xField)) {
107
+ return isDesc ? -1 : 1;
108
+ } else if (isNaN(yField)) {
109
+ return -1;
110
+ }
111
+ return xField > yField ? compare[0] : compare[1];
112
+ });
113
+ } else {
114
+ return list;
115
+ }
116
+ }
117
+ }, {
118
+ key: "assemble",
119
+ value: function assemble(list) {
120
+ var _this3 = this;
121
+ var storeValue = this.getValue(true);
122
+ if (!(Array.isArray(list) && list.length) || !storeValue.length) {
123
+ return list;
124
+ }
125
+ var matchCount = 0;
126
+ var handler = function handler(storeItem) {
127
+ return function (listItem, index) {
128
+ if (listItem[_this3._dataKey] === storeItem.key) {
129
+ matchCount++;
130
+ list.splice(index, 1);
131
+ if (matchCount <= _this3._highlightNum) {
132
+ listItem._highlightClass = _this3._highlightClass;
133
+ }
134
+ list.unshift(listItem);
135
+ return true;
136
+ }
137
+ return false;
138
+ };
139
+ };
140
+ for (var i = storeValue.length - 1; i > -1; i--) {
141
+ var storeItem = storeValue[i];
142
+ list.some(handler(storeItem));
143
+ }
144
+ return list;
145
+ }
146
+ }]);
147
+ return Memorize;
148
+ }();
149
+ export default Memorize;
@@ -0,0 +1,16 @@
1
+ import { on, off } from '@opentiny/vue-renderless/common/deps/dom';
2
+ var checkValue = function checkValue(event) {
3
+ event.target.value = event.target.value.replace(/[^0-9]/g, '');
4
+ if (event.charCode >= 48 && event.charCode <= 57) {
5
+ return true;
6
+ }
7
+ event.preventDefault();
8
+ };
9
+ export default {
10
+ bind: function bind(element) {
11
+ on(element, 'keypress', checkValue);
12
+ },
13
+ unbind: function unbind(element) {
14
+ off(element, 'keypress', checkValue);
15
+ }
16
+ };