@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,122 @@
1
+ import { getArrowHourList, getArrowMinuteList, bindScrollEvent, typeItemHeight, scrollBarHeight, amPm, scrollDown, adjustSpinners, adjustSpinner, adjustCurrentSpinner, handleScroll, getArrowSecondList, increase, decrease, modifyDateField, handleClick, emitSelectRange } from './index';
2
+ import { getRangeHours, getRangeMinutes } from '@opentiny/vue-renderless/common/deps/date-util';
3
+ export var api = ['state', 'emitSelectRange', 'adjustCurrentSpinner', 'handleClick', 'decrease', 'increase', 'amPm', 'adjustSpinners'];
4
+ var initState = function initState(_ref) {
5
+ var reactive = _ref.reactive,
6
+ computed = _ref.computed,
7
+ props = _ref.props,
8
+ api = _ref.api;
9
+ var state = reactive({
10
+ selectableRange: [],
11
+ currentScrollbar: null,
12
+ hours: computed(function () {
13
+ return props.date.getHours();
14
+ }),
15
+ minutes: computed(function () {
16
+ return props.date.getMinutes();
17
+ }),
18
+ seconds: computed(function () {
19
+ return props.date.getSeconds();
20
+ }),
21
+ hoursList: computed(function () {
22
+ return getRangeHours(state.selectableRange);
23
+ }),
24
+ minutesList: computed(function () {
25
+ return getRangeMinutes(state.selectableRange, state.hours);
26
+ }),
27
+ arrowHourList: computed(function () {
28
+ return api.getArrowHourList();
29
+ }),
30
+ arrowMinuteList: computed(function () {
31
+ return api.getArrowMinuteList();
32
+ }),
33
+ arrowSecondList: computed(function () {
34
+ return api.getArrowSecondList();
35
+ }),
36
+ animationName: ''
37
+ });
38
+ return state;
39
+ };
40
+ export var renderless = function renderless(props, _ref2, _ref3) {
41
+ var computed = _ref2.computed,
42
+ onMounted = _ref2.onMounted,
43
+ reactive = _ref2.reactive,
44
+ watch = _ref2.watch,
45
+ nextTick = _ref2.nextTick;
46
+ var emit = _ref3.emit,
47
+ refs = _ref3.refs,
48
+ constants = _ref3.constants;
49
+ var api = {};
50
+ var state = initState({
51
+ reactive: reactive,
52
+ computed: computed,
53
+ props: props,
54
+ api: api
55
+ });
56
+ onMounted(function () {
57
+ !props.arrowControl && api.bindScrollEvent();
58
+ });
59
+ Object.assign(api, {
60
+ state: state,
61
+ amPm: amPm(props),
62
+ typeItemHeight: typeItemHeight({
63
+ refs: refs
64
+ }),
65
+ scrollBarHeight: scrollBarHeight(refs),
66
+ getArrowHourList: getArrowHourList(state),
67
+ getArrowSecondList: getArrowSecondList(state),
68
+ getArrowMinuteList: getArrowMinuteList(state),
69
+ emitSelectRange: emitSelectRange({
70
+ emit: emit,
71
+ state: state
72
+ }),
73
+ modifyDateField: modifyDateField({
74
+ emit: emit,
75
+ props: props,
76
+ state: state
77
+ }),
78
+ bindScrollEvent: bindScrollEvent({
79
+ api: api,
80
+ refs: refs
81
+ }),
82
+ adjustSpinners: adjustSpinners({
83
+ api: api,
84
+ state: state
85
+ }),
86
+ adjustSpinner: adjustSpinner({
87
+ api: api,
88
+ props: props,
89
+ refs: refs
90
+ }),
91
+ increase: increase(api),
92
+ decrease: decrease(api),
93
+ handleClick: handleClick(api),
94
+ scrollDown: scrollDown({
95
+ api: api,
96
+ state: state
97
+ }),
98
+ handleScroll: handleScroll({
99
+ api: api,
100
+ refs: refs
101
+ }),
102
+ adjustCurrentSpinner: adjustCurrentSpinner({
103
+ api: api,
104
+ state: state
105
+ })
106
+ });
107
+ watch(function () {
108
+ return props.date;
109
+ }, function () {
110
+ nextTick(api.adjustSpinners);
111
+ }, {
112
+ immediate: true
113
+ });
114
+ watch(function () {
115
+ return state.hoursList;
116
+ }, function () {
117
+ state.animationName = constants.ANIMATIONNAME;
118
+ }, {
119
+ immediate: true
120
+ });
121
+ return api;
122
+ };
@@ -0,0 +1,104 @@
1
+ import { xss } from '@opentiny/vue-renderless/common/xss.js';
2
+ export var filterNode = function filterNode(props) {
3
+ return function (value, data) {
4
+ var node = data[props.props.label || 'label'] || '';
5
+ return node.indexOf(value) !== -1;
6
+ };
7
+ };
8
+ export var searchNodeText = function searchNodeText(_ref) {
9
+ var state = _ref.state,
10
+ refs = _ref.refs,
11
+ nextTick = _ref.nextTick;
12
+ return function () {
13
+ nextTick(function () {
14
+ return refs.tree.filter(state.filterText);
15
+ });
16
+ };
17
+ };
18
+ export var hideNodeText = function hideNodeText(state) {
19
+ return function () {
20
+ if (state.toggleIcon && state.showNode) {
21
+ state.toggleIcon = false;
22
+ state.showNode = false;
23
+ } else {
24
+ state.toggleIcon = true;
25
+ state.showNode = true;
26
+ }
27
+ };
28
+ };
29
+ export var initData = function initData(_ref2) {
30
+ var state = _ref2.state,
31
+ props = _ref2.props,
32
+ service = _ref2.service,
33
+ api = _ref2.api;
34
+ return function () {
35
+ if (props.data) {
36
+ state.datas = props.data;
37
+ return;
38
+ }
39
+ if (typeof service.getMenuDataSync === 'function') {
40
+ var menuData = service.getMenuDataSync();
41
+ state.datas = api.setMenuKey({
42
+ newData: [],
43
+ menuData: menuData
44
+ });
45
+ }
46
+ };
47
+ };
48
+ export var computedPlaceholder = function computedPlaceholder(_ref3) {
49
+ var constants = _ref3.constants,
50
+ props = _ref3.props,
51
+ t = _ref3.t;
52
+ return function () {
53
+ return props.placeholder || t(constants.LOCALE_PLACEHOLDER);
54
+ };
55
+ };
56
+ export var nodeClick = function nodeClick(emit) {
57
+ return function (nodeData, node) {
58
+ emit('node-click', nodeData, node);
59
+ };
60
+ };
61
+ export var nodeExpand = function nodeExpand(emit) {
62
+ return function (nodeData, node, instance) {
63
+ emit('node-expand', nodeData, node, instance);
64
+ };
65
+ };
66
+ export var nodeDragStart = function nodeDragStart(emit) {
67
+ return function (node, event) {
68
+ emit('node-drag-start', node, event);
69
+ };
70
+ };
71
+ export var nodeCollapse = function nodeCollapse(emit) {
72
+ return function (nodeData, node) {
73
+ emit('node-collapse', nodeData, node);
74
+ };
75
+ };
76
+ export var nodeDragEnter = function nodeDragEnter(emit) {
77
+ return function (dragNode, dropNode, event) {
78
+ emit('node-drag-enter', dragNode, dropNode, event);
79
+ };
80
+ };
81
+ export var nodeDragOver = function nodeDragOver(emit) {
82
+ return function (dragNode, dropNode, event) {
83
+ emit('node-drag-over', dragNode, dropNode, event);
84
+ };
85
+ };
86
+ export var nodeDragLeave = function nodeDragLeave(emit) {
87
+ return function (dragNode, dropNode, event) {
88
+ emit('node-drag-leave', dragNode, dropNode, event);
89
+ };
90
+ };
91
+ export var nodeDragEnd = function nodeDragEnd(emit) {
92
+ return function (dragNode, dropNode, dropType, event) {
93
+ emit('node-drag-end', dragNode, dropNode, dropType, event);
94
+ };
95
+ };
96
+ export var nodeDrop = function nodeDrop(emit) {
97
+ return function (dragNode, dropNode, dropType, event) {
98
+ emit('node-drop', dragNode, dropNode, dropType, event);
99
+ };
100
+ };
101
+ export var clickA = function clickA(href) {
102
+ href = xss.filterUrl(href);
103
+ return href && (location.href = href);
104
+ };
@@ -0,0 +1,74 @@
1
+ import { initData, computedPlaceholder, hideNodeText, filterNode, searchNodeText, nodeClick, nodeExpand, nodeCollapse, nodeDragEnd, nodeDragEnter, nodeDragLeave, nodeDragOver, nodeDragStart, nodeDrop, clickA } from './index';
2
+ import { setMenuKey } from '@opentiny/vue-renderless/tree-menu';
3
+ export var api = ['state', 'setMenuKey', 'initData', 'hideNodeText', 'filterNode', 'searchNodeText', 'nodeClick', 'nodeExpand', 'nodeCollapse', 'nodeDragEnd', 'nodeDragEnter', 'nodeDragLeave', 'nodeDragOver', 'nodeDragStart', 'nodeDrop', 'clickA'];
4
+ export var renderless = function renderless(props, _ref, _ref2) {
5
+ var reactive = _ref.reactive,
6
+ watch = _ref.watch,
7
+ computed = _ref.computed,
8
+ onMounted = _ref.onMounted;
9
+ var t = _ref2.t,
10
+ service = _ref2.service,
11
+ nextTick = _ref2.nextTick,
12
+ constants = _ref2.constants,
13
+ emit = _ref2.emit,
14
+ refs = _ref2.refs;
15
+ var api = {};
16
+ var state = reactive({
17
+ datas: [],
18
+ toggleIcon: true,
19
+ showNode: true,
20
+ filterText: '',
21
+ placeholder: computed(function () {
22
+ return api.computedPlaceholder();
23
+ })
24
+ });
25
+ service = service || {
26
+ base: {}
27
+ };
28
+ service = {
29
+ getMenuDataSync: props.getMenuDataSync || service.base.getMenuDataSync
30
+ };
31
+ Object.assign(api, {
32
+ state: state,
33
+ clickA: clickA,
34
+ nodeDrop: nodeDrop(emit),
35
+ filterNode: filterNode(props),
36
+ nodeClick: nodeClick(emit),
37
+ nodeExpand: nodeExpand(emit),
38
+ nodeDragEnd: nodeDragEnd(emit),
39
+ hideNodeText: hideNodeText(state),
40
+ nodeDragOver: nodeDragOver(emit),
41
+ nodeCollapse: nodeCollapse(emit),
42
+ nodeDragStart: nodeDragStart(emit),
43
+ nodeDragLeave: nodeDragLeave(emit),
44
+ nodeDragEnter: nodeDragEnter(emit),
45
+ searchNodeText: searchNodeText({
46
+ state: state,
47
+ refs: refs,
48
+ nextTick: nextTick
49
+ }),
50
+ computedPlaceholder: computedPlaceholder({
51
+ constants: constants,
52
+ props: props,
53
+ t: t
54
+ }),
55
+ setMenuKey: setMenuKey(api),
56
+ initData: initData({
57
+ state: state,
58
+ props: props,
59
+ service: service,
60
+ api: api
61
+ })
62
+ });
63
+ watch(function () {
64
+ return state.filterText;
65
+ }, function (value) {
66
+ if (props.automaticFiltering) {
67
+ nextTick(function () {
68
+ return refs.tree.filter(value);
69
+ });
70
+ }
71
+ });
72
+ onMounted(api.initData);
73
+ return api;
74
+ };
@@ -0,0 +1,171 @@
1
+ import debounce from '@opentiny/vue-renderless/common/deps/debounce';
2
+ import { on, off, addClass, removeClass } from '@opentiny/vue-renderless/common/deps/dom';
3
+ export var show = function show(api) {
4
+ return function () {
5
+ api.setExpectedState(true);
6
+ api.handleShowPopper();
7
+ };
8
+ };
9
+ export var hide = function hide(api) {
10
+ return function () {
11
+ api.setExpectedState(false);
12
+ api.debounceClose();
13
+ };
14
+ };
15
+ export var handleFocus = function handleFocus(_ref) {
16
+ var api = _ref.api,
17
+ state = _ref.state;
18
+ return function () {
19
+ state.focusing = true;
20
+ api.show();
21
+ };
22
+ };
23
+ export var handleBlur = function handleBlur(_ref2) {
24
+ var api = _ref2.api,
25
+ state = _ref2.state;
26
+ return function () {
27
+ state.focusing = false;
28
+ api.hide();
29
+ };
30
+ };
31
+ export var removeFocusing = function removeFocusing(state) {
32
+ return function () {
33
+ state.focusing = false;
34
+ };
35
+ };
36
+ export var handleShowPopper = function handleShowPopper(_ref3) {
37
+ var props = _ref3.props,
38
+ state = _ref3.state;
39
+ return function () {
40
+ if (!state.expectedState || props.manual) {
41
+ return;
42
+ }
43
+ clearTimeout(state.timeout);
44
+ state.timeout = setTimeout(function () {
45
+ state.showPopper = true;
46
+ }, props.openDelay);
47
+ if (props.hideAfter > 0) {
48
+ state.timeoutPending = setTimeout(function () {
49
+ state.showPopper = false;
50
+ }, props.hideAfter);
51
+ }
52
+ };
53
+ };
54
+ export var handleClosePopper = function handleClosePopper(_ref4) {
55
+ var api = _ref4.api,
56
+ props = _ref4.props,
57
+ state = _ref4.state;
58
+ return function () {
59
+ if (props.enterable && state.expectedState || props.manual) {
60
+ return;
61
+ }
62
+ clearTimeout(state.timeout);
63
+ if (state.timeoutPending) {
64
+ clearTimeout(state.timeoutPending);
65
+ }
66
+ state.showPopper = false;
67
+ if (props.disabled) {
68
+ api.doDestroy();
69
+ }
70
+ };
71
+ };
72
+ export var setExpectedState = function setExpectedState(_ref5) {
73
+ var api = _ref5.api,
74
+ state = _ref5.state;
75
+ return function (value) {
76
+ if (state.expectedState === false) {
77
+ clearTimeout(api.timeoutPending);
78
+ }
79
+ state.expectedState = value;
80
+ };
81
+ };
82
+ export var destroyed = function destroyed(_ref6) {
83
+ var state = _ref6.state,
84
+ api = _ref6.api;
85
+ return function () {
86
+ var reference = state.referenceElm;
87
+ state.showPopper = false;
88
+ if (reference && reference.nodeType === 1) {
89
+ off(reference, 'mouseenter', api.show);
90
+ off(reference, 'mouseleave', api.hide);
91
+ off(reference, 'focus', api.focusHandler);
92
+ off(reference, 'blur', api.handleBlur);
93
+ off(reference, 'click', api.removeFocusing);
94
+ }
95
+ };
96
+ };
97
+ export var debounceClose = function debounceClose(_ref7) {
98
+ var api = _ref7.api,
99
+ props = _ref7.props;
100
+ return debounce(props.closeDelay, function () {
101
+ api.handleClosePopper();
102
+ });
103
+ };
104
+ export var watchFocusing = function watchFocusing(state) {
105
+ return function (value) {
106
+ if (value) {
107
+ addClass(state.referenceElm, 'focusing');
108
+ } else {
109
+ removeClass(state.referenceElm, 'focusing');
110
+ }
111
+ };
112
+ };
113
+ export var focusHandler = function focusHandler(_ref8) {
114
+ var slots = _ref8.slots,
115
+ api = _ref8.api;
116
+ return function () {
117
+ if (!slots["default"] || !slots["default"]().length) {
118
+ api.handleFocus();
119
+ return;
120
+ }
121
+ var instance = slots["default"]()[0];
122
+ instance = instance.elm || instance.el;
123
+ if (instance && instance.focus) {
124
+ instance.focus();
125
+ } else {
126
+ api.handleFocus();
127
+ }
128
+ };
129
+ };
130
+ export var bindEvent = function bindEvent(_ref9) {
131
+ var api = _ref9.api,
132
+ state = _ref9.state,
133
+ vm = _ref9.vm;
134
+ return function (reference) {
135
+ var referenceElm = null;
136
+ if (vm.$el.nodeType === 8) {
137
+ referenceElm = reference;
138
+ } else if (vm.$el.nodeType === 1) {
139
+ referenceElm = vm.$el;
140
+ }
141
+ if (!referenceElm || referenceElm.nodeType === 8 || state.referenceElm) {
142
+ return;
143
+ }
144
+ state.referenceElm = referenceElm;
145
+ referenceElm.setAttribute('aria-describedby', state.tooltipId);
146
+ referenceElm.setAttribute('tabindex', state.tabindex);
147
+ on(referenceElm, 'mouseenter', api.show);
148
+ on(referenceElm, 'mouseleave', api.hide);
149
+ on(referenceElm, 'focus', api.focusHandler);
150
+ on(referenceElm, 'blur', api.handleBlur);
151
+ on(referenceElm, 'click', api.removeFocusing);
152
+ };
153
+ };
154
+ export var bindPopper = function bindPopper(_ref10) {
155
+ var vm = _ref10.vm,
156
+ refs = _ref10.refs,
157
+ nextTick = _ref10.nextTick;
158
+ return function (el) {
159
+ nextTick(function () {
160
+ return vm.bindEvent(el);
161
+ });
162
+ if (vm.popperVM) {
163
+ refs['popper'] || (refs['popper'] = vm.popperVM.$el);
164
+ nextTick(function () {
165
+ if (vm.modelValue) {
166
+ vm.updatePopper();
167
+ }
168
+ });
169
+ }
170
+ };
171
+ };
package/tooltip/vue.js ADDED
@@ -0,0 +1,133 @@
1
+ import { bindEvent, show, hide, handleFocus, handleBlur, removeFocusing, handleShowPopper, handleClosePopper, setExpectedState, destroyed, debounceClose, watchFocusing, bindPopper, focusHandler } from './index';
2
+ import userPopper from '@opentiny/vue-renderless/common/deps/vue-popper';
3
+ import { guid } from '@opentiny/vue-renderless/common/string';
4
+ export var api = ['state', 'bindEvent', 'hide', 'show', 'doDestroy', 'handleFocus', 'setExpectedState', 'debounceClose', 'handleShowPopper', 'handleClosePopper', 'setExpectedState', 'updatePopper', 'focusHandler'];
5
+ var initState = function initState(_ref) {
6
+ var reactive = _ref.reactive,
7
+ showPopper = _ref.showPopper,
8
+ popperElm = _ref.popperElm,
9
+ referenceElm = _ref.referenceElm,
10
+ props = _ref.props;
11
+ return reactive({
12
+ showPopper: showPopper,
13
+ popperElm: popperElm,
14
+ referenceElm: referenceElm,
15
+ timeout: null,
16
+ focusing: false,
17
+ expectedState: undefined,
18
+ mounted: false,
19
+ tooltipId: guid('tiny-tooltip-', 4),
20
+ tabindex: props.tabindex
21
+ });
22
+ };
23
+ export var renderless = function renderless(props, _ref2, _ref3) {
24
+ var watch = _ref2.watch,
25
+ toRefs = _ref2.toRefs,
26
+ reactive = _ref2.reactive,
27
+ onBeforeUnmount = _ref2.onBeforeUnmount,
28
+ onDeactivated = _ref2.onDeactivated,
29
+ onMounted = _ref2.onMounted,
30
+ onUnmounted = _ref2.onUnmounted;
31
+ var vm = _ref3.vm,
32
+ emit = _ref3.emit,
33
+ refs = _ref3.refs,
34
+ slots = _ref3.slots,
35
+ nextTick = _ref3.nextTick,
36
+ parent = _ref3.parent;
37
+ var api = {};
38
+ var popperParam = {
39
+ emit: emit,
40
+ props: props,
41
+ nextTick: nextTick,
42
+ toRefs: toRefs,
43
+ reactive: reactive,
44
+ parent: parent,
45
+ refs: refs
46
+ };
47
+ Object.assign(popperParam, {
48
+ slots: slots,
49
+ onBeforeUnmount: onBeforeUnmount,
50
+ onDeactivated: onDeactivated,
51
+ watch: watch
52
+ });
53
+ var _userPopper = userPopper(popperParam),
54
+ showPopper = _userPopper.showPopper,
55
+ updatePopper = _userPopper.updatePopper,
56
+ popperElm = _userPopper.popperElm,
57
+ referenceElm = _userPopper.referenceElm,
58
+ doDestroy = _userPopper.doDestroy;
59
+ var state = initState({
60
+ reactive: reactive,
61
+ showPopper: showPopper,
62
+ popperElm: popperElm,
63
+ referenceElm: referenceElm,
64
+ props: props
65
+ });
66
+ Object.assign(api, {
67
+ state: state,
68
+ doDestroy: doDestroy,
69
+ updatePopper: updatePopper,
70
+ show: show(api),
71
+ hide: hide(api),
72
+ destroyed: destroyed({
73
+ state: state,
74
+ api: api
75
+ }),
76
+ bindPopper: bindPopper({
77
+ vm: vm,
78
+ refs: refs,
79
+ state: state,
80
+ nextTick: nextTick
81
+ }),
82
+ watchFocusing: watchFocusing(state),
83
+ removeFocusing: removeFocusing(state),
84
+ handleBlur: handleBlur({
85
+ api: api,
86
+ state: state
87
+ }),
88
+ handleFocus: handleFocus({
89
+ api: api,
90
+ state: state
91
+ }),
92
+ debounceClose: debounceClose({
93
+ api: api,
94
+ props: props
95
+ }),
96
+ setExpectedState: setExpectedState({
97
+ api: api,
98
+ state: state
99
+ }),
100
+ handleShowPopper: handleShowPopper({
101
+ props: props,
102
+ state: state
103
+ }),
104
+ handleClosePopper: handleClosePopper({
105
+ api: api,
106
+ props: props,
107
+ state: state
108
+ }),
109
+ bindEvent: bindEvent({
110
+ api: api,
111
+ state: state,
112
+ vm: vm
113
+ }),
114
+ focusHandler: focusHandler({
115
+ slots: slots,
116
+ api: api
117
+ })
118
+ });
119
+ watch(function () {
120
+ return state.focusing;
121
+ }, api.watchFocusing);
122
+ watch(function () {
123
+ return props.modelValue;
124
+ }, function (val) {
125
+ return nextTick(function () {
126
+ return props.manual && (state.showPopper = val);
127
+ });
128
+ });
129
+ onMounted(api.bindPopper);
130
+ vm.$on('tooltip-update', api.bindPopper);
131
+ onUnmounted(api.destroyed);
132
+ return api;
133
+ };
@@ -0,0 +1,81 @@
1
+ import { KEY_CODE } from '@opentiny/vue-renderless/common';
2
+ import { on, off } from '@opentiny/vue-renderless/common/deps/dom';
3
+ import PopupManager from '@opentiny/vue-renderless/common/deps/popup-manager';
4
+ export var handleAfterLeave = function handleAfterLeave(api) {
5
+ return function () {
6
+ return api.destroy();
7
+ };
8
+ };
9
+ export var destroy = function destroy(parent) {
10
+ return function () {
11
+ parent.$el.parentNode.removeChild(parent.$el);
12
+ };
13
+ };
14
+ export var bindKeyDown = function bindKeyDown(_ref) {
15
+ var api = _ref.api,
16
+ state = _ref.state;
17
+ return function (event) {
18
+ if (event.keyCode === KEY_CODE.Escape) {
19
+ !state.closed && api.close();
20
+ }
21
+ };
22
+ };
23
+ export var bindEvent = function bindEvent(_ref2) {
24
+ var api = _ref2.api;
25
+ return function () {
26
+ return on(document, 'keydown', api.bindKeyDown);
27
+ };
28
+ };
29
+ export var unBindEvent = function unBindEvent(_ref3) {
30
+ var api = _ref3.api;
31
+ return function () {
32
+ return off(document, 'keydown', api.bindKeyDown);
33
+ };
34
+ };
35
+ export var startTimer = function startTimer(_ref4) {
36
+ var api = _ref4.api,
37
+ state = _ref4.state;
38
+ return function () {
39
+ if (state.duration > 0) {
40
+ state.timer = setTimeout(function () {
41
+ !state.closed && api.close();
42
+ }, state.duration);
43
+ }
44
+ };
45
+ };
46
+ export var clearTimer = function clearTimer(state) {
47
+ return function () {
48
+ return clearTimeout(state.timer);
49
+ };
50
+ };
51
+ export var close = function close(state) {
52
+ return function () {
53
+ state.closed = true;
54
+ typeof state.onClose === 'function' && state.onClose(state);
55
+ };
56
+ };
57
+ export var watchClosed = function watchClosed(_ref5) {
58
+ var state = _ref5.state;
59
+ return function (value) {
60
+ return value && (state.visible = false);
61
+ };
62
+ };
63
+ export var getZindex = function getZindex() {
64
+ return PopupManager.nextZIndex();
65
+ };
66
+ export var getTypeClass = function getTypeClass(_ref6) {
67
+ var constants = _ref6.constants,
68
+ state = _ref6.state;
69
+ return function () {
70
+ var typeClass = constants[(state.type || '').toUpperCase()];
71
+ return state.type && !state.iconClass && typeClass ? "".concat(typeClass) : '';
72
+ };
73
+ };
74
+ export var getOffsetStyle = function getOffsetStyle(_ref7) {
75
+ var state = _ref7.state;
76
+ return function () {
77
+ return {
78
+ top: "".concat(state.verticalOffset, "px")
79
+ };
80
+ };
81
+ };