@opentiny/vue-renderless 3.6.0 → 3.6.1-alpha.2

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 (482) hide show
  1. package/README.md +7 -26
  2. package/action-menu/index.js +15 -15
  3. package/action-menu/vue.js +17 -22
  4. package/action-sheet/index.js +53 -68
  5. package/action-sheet/vue.js +28 -54
  6. package/alert/index.js +10 -21
  7. package/alert/vue.js +19 -33
  8. package/amount/index.js +205 -308
  9. package/amount/vue.js +113 -187
  10. package/anchor/index.js +102 -173
  11. package/anchor/vue.js +26 -47
  12. package/area/index.js +93 -153
  13. package/area/vue.js +26 -62
  14. package/autocomplete/index.js +115 -157
  15. package/autocomplete/vue.js +84 -159
  16. package/autonavi-map/index.js +12 -22
  17. package/avatar/index.js +28 -31
  18. package/avatar/vue.js +16 -19
  19. package/badge/index.js +11 -15
  20. package/badge/vue.js +19 -27
  21. package/baidu-map/index.js +12 -22
  22. package/breadcrumb/index.js +8 -7
  23. package/breadcrumb/vue.js +15 -22
  24. package/breadcrumb-item/index.js +14 -26
  25. package/breadcrumb-item/vue.js +20 -28
  26. package/bulletin-board/index.js +19 -22
  27. package/bulletin-board/vue.js +26 -33
  28. package/button/index.js +14 -18
  29. package/button/vue.js +26 -38
  30. package/button-group/index.js +19 -24
  31. package/button-group/vue.js +32 -45
  32. package/calendar/index.js +168 -203
  33. package/calendar/vue.js +89 -100
  34. package/card-template/index.js +29 -37
  35. package/card-template/vue.js +18 -30
  36. package/carousel/index.js +125 -198
  37. package/carousel/vue.js +132 -188
  38. package/carousel-item/index.js +55 -80
  39. package/carousel-item/vue.js +42 -42
  40. package/cascader/index.js +329 -460
  41. package/cascader/vue.js +159 -319
  42. package/cascader-menu/index.js +32 -39
  43. package/cascader-menu/vue.js +21 -30
  44. package/cascader-node/index.js +41 -60
  45. package/cascader-node/vue.js +27 -59
  46. package/cascader-panel/index.js +229 -311
  47. package/cascader-panel/node.js +118 -190
  48. package/cascader-panel/store.js +49 -76
  49. package/cascader-panel/vue.js +125 -197
  50. package/chart-bar/index.js +129 -439
  51. package/chart-boxplot/index.js +78 -219
  52. package/chart-candle/index.js +134 -379
  53. package/chart-core/deps/constants.js +70 -49
  54. package/chart-core/deps/numerify.js +106 -147
  55. package/chart-core/deps/utils.js +118 -121
  56. package/chart-core/index.js +302 -469
  57. package/chart-core/modules/animation.js +7 -5
  58. package/chart-core/modules/extend.js +18 -19
  59. package/chart-core/modules/mark.js +7 -3
  60. package/chart-core/vue.js +81 -120
  61. package/chart-funnel/index.js +47 -126
  62. package/chart-gauge/index.js +54 -128
  63. package/chart-graph/index.js +22 -35
  64. package/chart-heatmap/index.js +116 -362
  65. package/chart-line/index.js +98 -289
  66. package/chart-liquidfill/index.js +35 -100
  67. package/chart-map/index.js +64 -217
  68. package/chart-pie/index.js +93 -274
  69. package/chart-radar/index.js +59 -135
  70. package/chart-sankey/index.js +51 -137
  71. package/chart-scatter/index.js +118 -313
  72. package/chart-sunburst/index.js +25 -33
  73. package/chart-tree/index.js +43 -85
  74. package/chart-waterfall/index.js +77 -210
  75. package/chart-wordcloud/index.js +36 -85
  76. package/checkbox/index.js +82 -133
  77. package/checkbox/vue.js +62 -132
  78. package/checkbox-button/index.js +60 -96
  79. package/checkbox-button/vue.js +53 -135
  80. package/checkbox-group/index.js +6 -11
  81. package/checkbox-group/vue.js +22 -27
  82. package/chunk-PKUHTIDK.js +37 -0
  83. package/col/index.js +89 -119
  84. package/col/vue.js +21 -31
  85. package/collapse/index.js +31 -40
  86. package/collapse/vue.js +24 -32
  87. package/collapse-item/index.js +22 -36
  88. package/collapse-item/vue.js +22 -42
  89. package/common/array.js +51 -56
  90. package/common/bigInt.js +187 -243
  91. package/common/browser.js +35 -31
  92. package/common/dataset/index.js +74 -110
  93. package/common/date.js +199 -201
  94. package/common/decimal.js +94 -142
  95. package/common/deps/ResizeObserver.js +188 -208
  96. package/common/deps/after-leave.js +12 -10
  97. package/common/deps/clickoutside.js +32 -36
  98. package/common/deps/date-util.js +139 -166
  99. package/common/deps/date.js +206 -241
  100. package/common/deps/debounce.js +8 -4
  101. package/common/deps/dom.js +75 -68
  102. package/common/deps/eSpaceCtrl.js +170 -153
  103. package/common/deps/fullscreen/apis.js +51 -65
  104. package/common/deps/fullscreen/screenfull.js +61 -45
  105. package/common/deps/letter-only.js +12 -8
  106. package/common/deps/memorize.js +100 -125
  107. package/common/deps/modal-queue.js +6 -2
  108. package/common/deps/number-only.js +13 -9
  109. package/common/deps/popper.js +280 -372
  110. package/common/deps/popup-manager.js +71 -75
  111. package/common/deps/repeat-click.js +14 -10
  112. package/common/deps/requestAnimationFrame.js +13 -13
  113. package/common/deps/resize-event.js +15 -10
  114. package/common/deps/scroll-into-view.js +13 -13
  115. package/common/deps/scrollbar-width.js +22 -18
  116. package/common/deps/throttle.js +15 -11
  117. package/common/deps/touch.js +24 -22
  118. package/common/deps/tree-model/node.js +374 -524
  119. package/common/deps/tree-model/tree-store.js +251 -352
  120. package/common/deps/tree-model/util.js +10 -4
  121. package/common/deps/upload-ajax.js +28 -24
  122. package/common/deps/vue-emitter.js +15 -11
  123. package/common/deps/vue-popper.js +181 -214
  124. package/common/deps/vue-popup.js +118 -168
  125. package/common/event.js +10 -9
  126. package/common/index.js +180 -194
  127. package/common/object.js +92 -91
  128. package/common/runtime.js +78 -51
  129. package/common/string.js +194 -266
  130. package/common/type.js +49 -51
  131. package/common/validate/index.js +8 -4
  132. package/common/validate/messages.js +64 -67
  133. package/common/validate/rules/enum.js +10 -6
  134. package/common/validate/rules/index.js +18 -14
  135. package/common/validate/rules/pattern.js +9 -5
  136. package/common/validate/rules/range.js +26 -39
  137. package/common/validate/rules/required.js +8 -10
  138. package/common/validate/rules/type.js +67 -79
  139. package/common/validate/rules/whitespace.js +8 -4
  140. package/common/validate/schema.js +159 -199
  141. package/common/validate/util.js +95 -82
  142. package/common/validate/validations/array.js +14 -17
  143. package/common/validate/validations/date.js +16 -20
  144. package/common/validate/validations/enum.js +14 -16
  145. package/common/validate/validations/float.js +13 -15
  146. package/common/validate/validations/index.js +28 -24
  147. package/common/validate/validations/integer.js +13 -15
  148. package/common/validate/validations/method.js +13 -15
  149. package/common/validate/validations/number.js +15 -17
  150. package/common/validate/validations/pattern.js +14 -16
  151. package/common/validate/validations/required.js +10 -14
  152. package/common/validate/validations/string.js +19 -15
  153. package/common/validate/validations/type.js +17 -13
  154. package/common/xss.js +202 -184
  155. package/company/index.js +34 -49
  156. package/company/vue.js +23 -29
  157. package/container/index.js +72 -98
  158. package/container/vue.js +36 -61
  159. package/country/index.js +33 -47
  160. package/country/vue.js +24 -29
  161. package/credit-card/index.js +72 -86
  162. package/credit-card/vue.js +49 -104
  163. package/credit-card-form/index.js +97 -129
  164. package/credit-card-form/vue.js +102 -133
  165. package/crop/index.js +175 -294
  166. package/crop/vue.js +132 -144
  167. package/currency/index.js +49 -67
  168. package/currency/vue.js +25 -34
  169. package/date-panel/index.js +384 -524
  170. package/date-panel/vue.js +178 -289
  171. package/date-picker/index.js +198 -260
  172. package/date-picker/vue.js +97 -155
  173. package/date-range/index.js +324 -435
  174. package/date-range/vue.js +154 -273
  175. package/date-table/index.js +279 -391
  176. package/date-table/vue.js +63 -139
  177. package/dept/index.js +196 -291
  178. package/dept/vue.js +74 -144
  179. package/detail-page/index.js +72 -131
  180. package/detail-page/vue.js +53 -128
  181. package/dialog-box/index.js +178 -248
  182. package/dialog-box/vue.js +111 -201
  183. package/drop-roles/index.js +44 -65
  184. package/drop-roles/vue.js +23 -31
  185. package/drop-times/index.js +21 -22
  186. package/drop-times/vue.js +19 -23
  187. package/dropdown/index.js +182 -253
  188. package/dropdown/vue.js +55 -101
  189. package/dropdown-item/index.js +113 -167
  190. package/dropdown-item/vue.js +73 -121
  191. package/dropdown-menu/index.js +85 -111
  192. package/dropdown-menu/vue.js +23 -36
  193. package/espace/index.js +86 -106
  194. package/espace/vue.js +26 -48
  195. package/exception/index.js +9 -12
  196. package/exception/vue.js +15 -22
  197. package/fall-menu/index.js +81 -110
  198. package/fall-menu/vue.js +32 -78
  199. package/file-upload/index.js +1081 -1713
  200. package/file-upload/vue.js +175 -417
  201. package/floatbar/index.js +8 -5
  202. package/floatbar/vue.js +13 -16
  203. package/form/index.js +124 -165
  204. package/form/vue.js +54 -66
  205. package/form-item/index.js +255 -328
  206. package/form-item/vue.js +97 -198
  207. package/fullscreen/index.js +95 -127
  208. package/fullscreen/vue.js +36 -72
  209. package/grid/core/index.js +7 -3
  210. package/grid/core/interceptor.js +28 -20
  211. package/grid/core/storeMap.js +11 -7
  212. package/grid/plugins/export.js +72 -95
  213. package/grid/plugins/exportExcel.js +244 -561
  214. package/grid/plugins/header.js +22 -21
  215. package/grid/plugins/resize.js +45 -62
  216. package/grid/static/array/arrayEach.js +7 -3
  217. package/grid/static/array/arrayIndexOf.js +7 -3
  218. package/grid/static/array/eachTree.js +17 -21
  219. package/grid/static/array/every.js +6 -2
  220. package/grid/static/array/filterTree.js +17 -12
  221. package/grid/static/array/find.js +7 -3
  222. package/grid/static/array/findTree.js +19 -30
  223. package/grid/static/array/helperCreateIterateHandle.js +31 -39
  224. package/grid/static/array/helperCreateTreeFunc.js +18 -16
  225. package/grid/static/array/includes.js +6 -4
  226. package/grid/static/array/lastArrayEach.js +7 -3
  227. package/grid/static/array/map.js +11 -10
  228. package/grid/static/array/mapTree.js +19 -23
  229. package/grid/static/array/slice.js +7 -3
  230. package/grid/static/array/sortBy.js +32 -34
  231. package/grid/static/array/sum.js +14 -13
  232. package/grid/static/array/toArray.js +6 -6
  233. package/grid/static/array/toTreeArray.js +13 -15
  234. package/grid/static/base/clear.js +18 -14
  235. package/grid/static/base/clone.js +11 -17
  236. package/grid/static/base/destructuring.js +14 -10
  237. package/grid/static/base/each.js +8 -4
  238. package/grid/static/base/eqNull.js +7 -5
  239. package/grid/static/base/findIndexOf.js +8 -4
  240. package/grid/static/base/get.js +21 -17
  241. package/grid/static/base/has.js +21 -20
  242. package/grid/static/base/hasOwnProp.js +5 -3
  243. package/grid/static/base/helperCreateGetObjects.js +13 -9
  244. package/grid/static/base/helperCreateInInObjectString.js +8 -4
  245. package/grid/static/base/helperCreateInTypeof.js +8 -5
  246. package/grid/static/base/helperCreateIndexOf.js +19 -18
  247. package/grid/static/base/helperCreateiterateIndexOf.js +20 -19
  248. package/grid/static/base/helperDefaultCompare.js +5 -1
  249. package/grid/static/base/helperDeleteProperty.js +7 -3
  250. package/grid/static/base/helperEqualCompare.js +27 -29
  251. package/grid/static/base/helperGetHGSKeys.js +5 -3
  252. package/grid/static/base/indexOf.js +7 -3
  253. package/grid/static/base/isArray.js +7 -3
  254. package/grid/static/base/isBoolean.js +5 -3
  255. package/grid/static/base/isDate.js +7 -3
  256. package/grid/static/base/isEmpty.js +7 -3
  257. package/grid/static/base/isEqual.js +10 -10
  258. package/grid/static/base/isFunction.js +5 -3
  259. package/grid/static/base/isNaN.js +6 -4
  260. package/grid/static/base/isNull.js +5 -3
  261. package/grid/static/base/isNumber.js +5 -3
  262. package/grid/static/base/isObject.js +5 -4
  263. package/grid/static/base/isPlainObject.js +6 -2
  264. package/grid/static/base/isRegExp.js +7 -3
  265. package/grid/static/base/isSet.js +6 -4
  266. package/grid/static/base/isString.js +5 -3
  267. package/grid/static/base/isUndefined.js +5 -3
  268. package/grid/static/base/keys.js +7 -3
  269. package/grid/static/base/lastEach.js +8 -4
  270. package/grid/static/base/remove.js +20 -20
  271. package/grid/static/base/set.js +22 -18
  272. package/grid/static/base/toJSONString.js +5 -3
  273. package/grid/static/base/toStringJSON.js +10 -5
  274. package/grid/static/base/uniqueId.js +6 -4
  275. package/grid/static/browse/browse.js +25 -22
  276. package/grid/static/function/property.js +6 -6
  277. package/grid/static/function/throttle.js +18 -14
  278. package/grid/static/index.js +111 -55
  279. package/grid/static/number/helperCreateToNumber.js +12 -10
  280. package/grid/static/number/toNumber.js +7 -3
  281. package/grid/static/object/assign.js +20 -20
  282. package/grid/static/object/extend.js +7 -3
  283. package/grid/static/object/lastObjectEach.js +9 -5
  284. package/grid/static/object/objectEach.js +8 -4
  285. package/grid/static/object/objectMap.js +11 -7
  286. package/grid/static/object/values.js +15 -7
  287. package/grid/static/static/staticDocument.js +7 -4
  288. package/grid/static/static/staticHGKeyRE.js +6 -2
  289. package/grid/static/static/staticParseInt.js +6 -2
  290. package/grid/static/static/staticStrUndefined.js +6 -2
  291. package/grid/static/static/staticWindow.js +7 -4
  292. package/grid/static/string/template.js +10 -8
  293. package/grid/static/string/toString.js +12 -8
  294. package/grid/utils/column.js +11 -14
  295. package/grid/utils/common.js +84 -102
  296. package/grid/utils/dom.js +104 -117
  297. package/grid/utils/event.js +23 -28
  298. package/grid/utils/index.js +8 -5
  299. package/hrapprover/index.js +80 -105
  300. package/hrapprover/vue.js +45 -90
  301. package/image/index.js +107 -175
  302. package/image/vue.js +56 -126
  303. package/image-viewer/index.js +328 -416
  304. package/image-viewer/vue.js +131 -206
  305. package/index-bar/index.js +42 -51
  306. package/index-bar/vue.js +53 -74
  307. package/index-bar-anchor/vue.js +14 -18
  308. package/input/index.js +232 -302
  309. package/input/vue.js +181 -284
  310. package/ip-address/index.js +168 -335
  311. package/ip-address/vue.js +95 -160
  312. package/layout/vue.js +7 -4
  313. package/link/index.js +9 -10
  314. package/link/vue.js +15 -23
  315. package/link-menu/index.js +86 -128
  316. package/link-menu/vue.js +55 -118
  317. package/list/index.js +12 -12
  318. package/list/vue.js +15 -15
  319. package/loading/index.js +22 -21
  320. package/loading/vue.js +15 -18
  321. package/locales/index.js +72 -104
  322. package/locales/vue.js +23 -41
  323. package/logon-user/index.js +14 -19
  324. package/logon-user/vue.js +17 -20
  325. package/logout/index.js +58 -96
  326. package/logout/vue.js +15 -19
  327. package/milestone/index.js +53 -76
  328. package/milestone/vue.js +28 -26
  329. package/mini-picker/index.js +155 -219
  330. package/mini-picker/vue.js +98 -118
  331. package/modal/index.js +386 -735
  332. package/modal/vue.js +81 -117
  333. package/month-range/index.js +108 -143
  334. package/month-range/vue.js +57 -85
  335. package/month-table/index.js +157 -202
  336. package/month-table/vue.js +42 -64
  337. package/multi-select/index.js +150 -214
  338. package/multi-select/vue.js +58 -102
  339. package/nav-menu/index.js +276 -410
  340. package/nav-menu/vue.js +110 -174
  341. package/notify/index.js +59 -81
  342. package/notify/vue.js +42 -57
  343. package/numeric/index.js +231 -363
  344. package/numeric/vue.js +78 -202
  345. package/option/index.js +44 -72
  346. package/option/vue.js +66 -179
  347. package/option-group/index.js +12 -17
  348. package/option-group/vue.js +25 -30
  349. package/package.json +32 -84
  350. package/pager-item/index.js +91 -103
  351. package/pager-item/vue.js +36 -48
  352. package/panel/index.js +22 -28
  353. package/panel/vue.js +17 -23
  354. package/picker/index.js +689 -963
  355. package/picker/timezone.js +1174 -974
  356. package/picker/vue.js +187 -389
  357. package/picker-column/index.js +182 -232
  358. package/picker-column/vue.js +71 -130
  359. package/pop-upload/index.js +162 -321
  360. package/pop-upload/vue.js +143 -273
  361. package/popeditor/index.js +528 -807
  362. package/popeditor/vue.js +165 -334
  363. package/popover/index.js +160 -219
  364. package/popover/vue.js +76 -162
  365. package/popup/index.js +90 -128
  366. package/popup/vue.js +39 -112
  367. package/progress/index.js +108 -171
  368. package/progress/vue.js +65 -115
  369. package/pull-refresh/index.js +118 -132
  370. package/pull-refresh/vue.js +38 -66
  371. package/radio/index.js +41 -77
  372. package/radio/vue.js +35 -92
  373. package/radio-button/index.js +35 -54
  374. package/radio-button/vue.js +28 -61
  375. package/radio-group/index.js +46 -48
  376. package/radio-group/vue.js +26 -30
  377. package/rate/index.js +158 -197
  378. package/rate/vue.js +90 -138
  379. package/roles/index.js +48 -77
  380. package/roles/vue.js +20 -32
  381. package/row/index.js +15 -16
  382. package/row/vue.js +20 -19
  383. package/scroll-text/index.js +17 -22
  384. package/scroll-text/vue.js +18 -27
  385. package/scrollbar/index.js +87 -115
  386. package/scrollbar/vue-bar.js +23 -46
  387. package/scrollbar/vue.js +25 -33
  388. package/search/index.js +67 -95
  389. package/search/vue.js +80 -100
  390. package/select/index.js +1094 -1584
  391. package/select/vue.js +342 -672
  392. package/select-dropdown/index.js +18 -23
  393. package/select-dropdown/vue.js +56 -112
  394. package/slide-bar/index.js +58 -85
  395. package/slide-bar/vue.js +21 -47
  396. package/slider/index.js +276 -373
  397. package/slider/vue.js +94 -144
  398. package/split/index.js +74 -123
  399. package/split/vue.js +63 -116
  400. package/steps/vue.js +8 -3
  401. package/switch/index.js +35 -43
  402. package/switch/vue.js +32 -58
  403. package/tab-bar/index.js +48 -46
  404. package/tab-bar/vue.js +14 -12
  405. package/tab-dropdown/index.js +11 -10
  406. package/tab-dropdown/vue.js +14 -11
  407. package/tab-item/index.js +20 -35
  408. package/tab-item/vue.js +22 -42
  409. package/tab-nav/index.js +194 -227
  410. package/tab-nav/vue.js +62 -83
  411. package/tabbar/index.js +23 -30
  412. package/tabbar/vue.js +22 -45
  413. package/tabbar-item/index.js +39 -51
  414. package/tabbar-item/vue.js +23 -48
  415. package/table/index.js +69 -103
  416. package/table/vue.js +37 -61
  417. package/tabs/index.js +125 -174
  418. package/tabs/vue.js +98 -143
  419. package/tag/index.js +13 -18
  420. package/tag/vue.js +11 -16
  421. package/tall-storage/index.js +87 -106
  422. package/tall-storage/vue-storage-box.js +14 -20
  423. package/tall-storage/vue.js +27 -35
  424. package/text-popup/index.js +48 -70
  425. package/text-popup/vue.js +27 -60
  426. package/time/index.js +71 -113
  427. package/time/vue.js +65 -108
  428. package/time-line/index.js +30 -56
  429. package/time-line/vue.js +23 -46
  430. package/time-panel/index.js +112 -175
  431. package/time-panel/scrollIntoView.js +12 -10
  432. package/time-panel/vue.js +64 -94
  433. package/time-range/index.js +123 -184
  434. package/time-range/vue.js +63 -115
  435. package/time-spinner/index.js +139 -179
  436. package/time-spinner/vue.js +72 -110
  437. package/toggle-menu/index.js +68 -98
  438. package/toggle-menu/vue.js +64 -54
  439. package/tooltip/index.js +127 -168
  440. package/tooltip/vue.js +81 -134
  441. package/top-box/index.js +46 -79
  442. package/top-box/vue.js +34 -62
  443. package/transfer/index.js +184 -263
  444. package/transfer/vue.js +65 -134
  445. package/transfer-panel/index.js +240 -329
  446. package/transfer-panel/vue.js +127 -232
  447. package/tree/index.js +422 -591
  448. package/tree/vue.js +163 -249
  449. package/tree-menu/index.js +97 -122
  450. package/tree-menu/vue.js +57 -39
  451. package/tree-node/index.js +180 -248
  452. package/tree-node/vue.js +107 -202
  453. package/upload/index.js +201 -276
  454. package/upload/vue.js +51 -82
  455. package/upload-dragger/index.js +38 -49
  456. package/upload-dragger/vue.js +16 -24
  457. package/upload-list/index.js +41 -50
  458. package/upload-list/vue.js +21 -27
  459. package/user/index.js +356 -510
  460. package/user/vue.js +50 -97
  461. package/user-account/index.js +16 -21
  462. package/user-account/vue.js +20 -23
  463. package/user-contact/index.js +11 -10
  464. package/user-contact/vue.js +15 -15
  465. package/user-head/index.js +69 -84
  466. package/user-head/vue.js +24 -45
  467. package/user-link/index.js +31 -41
  468. package/user-link/vue.js +23 -46
  469. package/wheel/index.js +136 -161
  470. package/wheel/vue.js +64 -95
  471. package/wizard/index.js +83 -102
  472. package/wizard/vue.js +19 -34
  473. package/year-table/index.js +31 -37
  474. package/year-table/vue.js +17 -21
  475. package/rich-text/clipboard.js +0 -77
  476. package/rich-text/index.js +0 -176
  477. package/rich-text/module/file-upload.js +0 -118
  478. package/rich-text/module/image-drop.js +0 -54
  479. package/rich-text/module/image-upload.js +0 -84
  480. package/rich-text/options.js +0 -187
  481. package/rich-text/table-module.js +0 -557
  482. package/rich-text/vue.js +0 -149
package/tree/index.js CHANGED
@@ -1,147 +1,103 @@
1
- import { getNodeKey as innerGetNodekey } from '@opentiny/vue-renderless/common/deps/tree-model/util';
2
- import { KEY_CODE } from '@opentiny/vue-renderless/common';
3
- import TreeStore from '@opentiny/vue-renderless/common/deps/tree-model/tree-store';
4
- import { addClass, removeClass } from '@opentiny/vue-renderless/common/deps/dom';
5
- import { on, off } from '@opentiny/vue-renderless/common/deps/dom';
6
- import { getDataset } from '@opentiny/vue-renderless/common/dataset';
7
- export var setChildren = function setChildren(props) {
8
- return function (data) {
9
- return props.data = data;
10
- };
11
- };
12
- export var getChildren = function getChildren() {
13
- return function (props) {
14
- return props.data;
15
- };
16
- };
17
- export var computedTreeItemArray = function computedTreeItemArray() {
18
- return function (props, state) {
19
- return Array.prototype.slice.call(state.treeItems);
20
- };
21
- };
22
- export var computedShowEmptyText = function computedShowEmptyText(_ref) {
23
- var constants = _ref.constants,
24
- t = _ref.t;
25
- return function (props) {
26
- return props.emptyText || t(constants.EMPTY_TEXT_LOCAL);
27
- };
28
- };
29
- export var computedIsEmpty = function computedIsEmpty() {
30
- return function (props, state) {
31
- var childNodes = state.root.childNodes;
32
- return !childNodes || childNodes.length === 0 || childNodes.every(function (_ref2) {
33
- var visible = _ref2.visible;
34
- return !visible;
35
- });
36
- };
37
- };
38
- export var watchDefaultCheckedKeys = function watchDefaultCheckedKeys(state) {
39
- return function (value) {
40
- state.store.setDefaultCheckedKey(value);
41
- };
42
- };
43
- export var watchDefaultExpandedKeys = function watchDefaultExpandedKeys(_ref3) {
44
- var state = _ref3.state,
45
- api = _ref3.api,
46
- nextTick = _ref3.nextTick;
47
- return function (value) {
48
- api.expandAllNodes(false);
49
- nextTick(function () {
50
- state.store.defaultExpandedKeys = value;
51
- state.store.setDefaultExpandedKeys(value);
52
- api.initIsCurrent();
53
- });
54
- };
1
+ import "../chunk-PKUHTIDK.js";
2
+ import { getNodeKey as innerGetNodekey } from "@opentiny/vue-renderless/common/deps/tree-model/util";
3
+ import { KEY_CODE } from "@opentiny/vue-renderless/common";
4
+ import TreeStore from "@opentiny/vue-renderless/common/deps/tree-model/tree-store";
5
+ import { addClass, removeClass } from "@opentiny/vue-renderless/common/deps/dom";
6
+ import { on, off } from "@opentiny/vue-renderless/common/deps/dom";
7
+ import { getDataset } from "@opentiny/vue-renderless/common/dataset";
8
+ const setChildren = (props) => (data) => props.data = data;
9
+ const getChildren = () => (props) => props.data;
10
+ const computedTreeItemArray = () => (props, state) => Array.prototype.slice.call(state.treeItems);
11
+ const computedShowEmptyText = ({ constants, t }) => (props) => props.emptyText || t(constants.EMPTY_TEXT_LOCAL);
12
+ const computedIsEmpty = () => (props, state) => {
13
+ const { childNodes } = state.root;
14
+ return !childNodes || childNodes.length === 0 || childNodes.every(({ visible }) => !visible);
15
+ };
16
+ const watchDefaultCheckedKeys = (state) => (value) => {
17
+ state.store.setDefaultCheckedKey(value);
18
+ };
19
+ const watchDefaultExpandedKeys = ({ state, api, nextTick }) => (value) => {
20
+ api.expandAllNodes(false);
21
+ nextTick(() => {
22
+ state.store.defaultExpandedKeys = value;
23
+ state.store.setDefaultExpandedKeys(value);
24
+ api.initIsCurrent();
25
+ });
55
26
  };
56
- export var watchData = function watchData(state) {
57
- return function (value) {
58
- state.store.setData(value);
59
- };
27
+ const watchData = (state) => (value) => {
28
+ state.store.setData(value);
60
29
  };
61
- export var watchCheckboxItems = function watchCheckboxItems() {
62
- return function (value) {
63
- Array.prototype.forEach.call(value, function (checkbox) {
64
- checkbox.setAttribute('tabindex', -1);
65
- });
66
- };
67
- };
68
- export var watchCheckStrictly = function watchCheckStrictly(state) {
69
- return function (value) {
70
- state.store.checkStrictly = value;
71
- };
72
- };
73
- export var dragStart = function dragStart(_ref4) {
74
- var props = _ref4.props,
75
- state = _ref4.state,
76
- emit = _ref4.emit;
77
- return function (event, treeNode) {
78
- if (typeof props.allowDrag === 'function' && !props.allowDrag(treeNode.node)) {
79
- event.preventDefault();
80
- return false;
81
- }
82
- if (!event.dataTransfer) {
83
- return false;
84
- }
85
- event.dataTransfer.effectAllowed = 'copy';
86
- try {
87
- event.dataTransfer.setData('text/plain', '');
88
- } catch (e) {}
89
- state.dragState.draggingNode = treeNode;
90
- emit('node-drag-start', treeNode.node, event);
91
- };
92
- };
93
- var getDropType = function getDropType(dropPrev, dropInner, dropNext, dropNode) {
94
- var dropType;
95
- var targetPosition = dropNode.$el.getBoundingClientRect();
96
- var prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;
97
- var nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;
98
- var distance = event.clientY - targetPosition.top;
30
+ const watchCheckboxItems = () => (value) => {
31
+ Array.prototype.forEach.call(value, (checkbox) => {
32
+ checkbox.setAttribute("tabindex", -1);
33
+ });
34
+ };
35
+ const watchCheckStrictly = (state) => (value) => {
36
+ state.store.checkStrictly = value;
37
+ };
38
+ const dragStart = ({ props, state, emit }) => (event2, treeNode) => {
39
+ if (typeof props.allowDrag === "function" && !props.allowDrag(treeNode.node)) {
40
+ event2.preventDefault();
41
+ return false;
42
+ }
43
+ if (!event2.dataTransfer) {
44
+ return false;
45
+ }
46
+ event2.dataTransfer.effectAllowed = "copy";
47
+ try {
48
+ event2.dataTransfer.setData("text/plain", "");
49
+ } catch (e) {
50
+ }
51
+ state.dragState.draggingNode = treeNode;
52
+ emit("node-drag-start", treeNode.node, event2);
53
+ };
54
+ const getDropType = (dropPrev, dropInner, dropNext, dropNode) => {
55
+ let dropType;
56
+ const targetPosition = dropNode.$el.getBoundingClientRect();
57
+ const prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;
58
+ const nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;
59
+ const distance = event.clientY - targetPosition.top;
99
60
  if (distance < targetPosition.height * prevPercent) {
100
- dropType = 'before';
61
+ dropType = "before";
101
62
  } else if (distance > targetPosition.height * nextPercent) {
102
- dropType = 'after';
63
+ dropType = "after";
103
64
  } else if (dropInner) {
104
- dropType = 'inner';
65
+ dropType = "inner";
105
66
  } else {
106
- dropType = 'none';
67
+ dropType = "none";
107
68
  }
108
69
  return dropType;
109
70
  };
110
- var setDropIndicatorTop = function setDropIndicatorTop(dropNode, dropIndicator, parent, dropType) {
111
- var iconElement = dropNode.$el.querySelector('.tiny-tree-node');
71
+ const setDropIndicatorTop = (dropNode, dropIndicator, parent, dropType) => {
72
+ const iconElement = dropNode.$el.querySelector(".tiny-tree-node");
112
73
  if (iconElement) {
113
- var treePosition = parent.$el.getBoundingClientRect();
114
- var iconPosition = iconElement.getBoundingClientRect();
115
- var indicatorTop = -9999;
116
- if (dropType === 'before') {
74
+ const treePosition = parent.$el.getBoundingClientRect();
75
+ const iconPosition = iconElement.getBoundingClientRect();
76
+ let indicatorTop = -9999;
77
+ if (dropType === "before") {
117
78
  indicatorTop = iconPosition.top - treePosition.top;
118
- } else if (dropType === 'after') {
79
+ } else if (dropType === "after") {
119
80
  indicatorTop = iconPosition.bottom - treePosition.top;
120
81
  }
121
- dropIndicator.style.top = indicatorTop + 'px';
122
- }
123
- dropType === 'inner' ? addClass(dropNode.$el, 'is-drop-inner') : removeClass(dropNode.$el, 'is-drop-inner');
124
- };
125
- var getDragDir = function getDragDir(_ref5) {
126
- var draggingNode = _ref5.draggingNode,
127
- dropNode = _ref5.dropNode,
128
- allowDrop = _ref5.allowDrop,
129
- emit = _ref5.emit,
130
- dragState = _ref5.dragState;
131
- var dropPrev = true;
132
- var dropInner = true;
133
- var dropNext = true;
134
- var userAllowDropInner = true;
135
- var oldDropNode = dragState.dropNode;
136
- if (typeof allowDrop === 'function') {
137
- dropPrev = allowDrop(draggingNode.node, dropNode.node, 'prev');
138
- userAllowDropInner = dropInner = allowDrop(draggingNode.node, dropNode.node, 'inner');
139
- dropNext = allowDrop(draggingNode.node, dropNode.node, 'next');
140
- }
141
- event.dataTransfer.dropEffect = dropInner ? 'copy' : 'none';
82
+ dropIndicator.style.top = indicatorTop + "px";
83
+ }
84
+ dropType === "inner" ? addClass(dropNode.$el, "is-drop-inner") : removeClass(dropNode.$el, "is-drop-inner");
85
+ };
86
+ const getDragDir = ({ draggingNode, dropNode, allowDrop, emit, dragState }) => {
87
+ let dropPrev = true;
88
+ let dropInner = true;
89
+ let dropNext = true;
90
+ let userAllowDropInner = true;
91
+ const oldDropNode = dragState.dropNode;
92
+ if (typeof allowDrop === "function") {
93
+ dropPrev = allowDrop(draggingNode.node, dropNode.node, "prev");
94
+ userAllowDropInner = dropInner = allowDrop(draggingNode.node, dropNode.node, "inner");
95
+ dropNext = allowDrop(draggingNode.node, dropNode.node, "next");
96
+ }
97
+ event.dataTransfer.dropEffect = dropInner ? "copy" : "none";
142
98
  if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) {
143
- oldDropNode && emit('node-drag-leave', draggingNode.node, oldDropNode.node, event);
144
- emit('node-drag-enter', draggingNode.node, dropNode.node, event);
99
+ oldDropNode && emit("node-drag-leave", draggingNode.node, oldDropNode.node, event);
100
+ emit("node-drag-enter", draggingNode.node, dropNode.node, event);
145
101
  }
146
102
  if (dropPrev || dropInner || dropNext) {
147
103
  dragState.dropNode = dropNode;
@@ -160,142 +116,102 @@ var getDragDir = function getDragDir(_ref5) {
160
116
  dropInner = false;
161
117
  dropNext = false;
162
118
  }
163
- return {
164
- dropPrev: dropPrev,
165
- dropInner: dropInner,
166
- dropNext: dropNext,
167
- userAllowDropInner: userAllowDropInner
168
- };
169
- };
170
- export var dragOver = function dragOver(_ref6) {
171
- var state = _ref6.state,
172
- emit = _ref6.emit,
173
- props = _ref6.props,
174
- refs = _ref6.refs,
175
- vm = _ref6.vm;
176
- return function (event, dropNode) {
177
- var dragState = state.dragState;
178
- var oldDropNode = dragState.dropNode;
179
- if (oldDropNode && oldDropNode !== dropNode) {
180
- removeClass(oldDropNode.$el, 'is-drop-inner');
181
- }
182
- var draggingNode = dragState.draggingNode;
183
- if (!draggingNode || !dropNode) {
184
- return;
185
- }
186
- var _getDragDir = getDragDir({
187
- draggingNode: draggingNode,
188
- dropNode: dropNode,
189
- allowDrop: props.allowDrop,
190
- emit: emit,
191
- dragState: dragState
192
- }),
193
- dropPrev = _getDragDir.dropPrev,
194
- dropInner = _getDragDir.dropInner,
195
- dropNext = _getDragDir.dropNext,
196
- userAllowDropInner = _getDragDir.userAllowDropInner;
197
- var dropType = getDropType(dropPrev, dropInner, dropNext, dropNode);
198
- setDropIndicatorTop(dropNode, refs.dropIndicator, vm, dropType);
199
- dragState.showDropIndicator = dropType === 'before' || dropType === 'after';
200
- dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner;
201
- dragState.dropType = dropType;
202
- emit('node-drag-over', draggingNode.node, dropNode.node, event);
203
- };
204
- };
205
- export var dragEnd = function dragEnd(_ref7) {
206
- var state = _ref7.state,
207
- emit = _ref7.emit;
208
- return function (event) {
209
- var dragState = state.dragState;
210
- var draggingNode = dragState.draggingNode,
211
- dropType = dragState.dropType,
212
- dropNode = dragState.dropNode;
213
- event.preventDefault();
214
- if (!event.dataTransfer) {
215
- return;
216
- }
217
- event.dataTransfer.dropEffect = 'copy';
218
- if (draggingNode && dropNode) {
219
- var draggingNodeCopy = {
220
- data: draggingNode.node.data
221
- };
222
- var normalType = dropType !== 'none';
223
- normalType && draggingNode.node.remove();
224
- if (dropType === 'before') {
225
- dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);
226
- } else if (dropType === 'after') {
227
- dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);
228
- } else if (dropType === 'inner') {
229
- dropNode.node.insertChild(draggingNodeCopy);
230
- }
231
- normalType && state.store.registerNode(draggingNodeCopy);
232
- removeClass(dropNode.$el, 'is-drop-inner');
233
- emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event);
234
- normalType && emit('node-drop', draggingNode.node, dropNode.node, dropType, event);
235
- }
236
- if (draggingNode && !dropNode) {
237
- emit('node-drag-end', draggingNode.node, null, dropType, event);
238
- }
239
- dragState.draggingNode = null;
240
- dragState.dropNode = null;
241
- dragState.allowDrop = true;
242
- dragState.showDropIndicator = false;
243
- };
244
- };
245
- export var created = function created(_ref8) {
246
- var api = _ref8.api,
247
- props = _ref8.props,
248
- state = _ref8.state;
249
- return function () {
250
- state.isTree = true;
251
- var nodeKey = props.nodeKey,
252
- data = props.data,
253
- lazy = props.lazy,
254
- load = props.load,
255
- currentNodeKey = props.currentNodeKey,
256
- checkStrictly = props.checkStrictly,
257
- checkDescendants = props.checkDescendants;
258
- var defaultCheckedKeys = props.defaultCheckedKeys,
259
- defaultExpandedKeys = props.defaultExpandedKeys,
260
- autoExpandParent = props.autoExpandParent,
261
- defaultExpandAll = props.defaultExpandAll,
262
- filterNodeMethod = props.filterNodeMethod;
263
- state.store = new TreeStore({
264
- key: nodeKey,
265
- data: data,
266
- lazy: lazy,
267
- props: props.props,
268
- load: load,
269
- currentNodeKey: currentNodeKey,
270
- checkStrictly: checkStrictly,
271
- checkDescendants: checkDescendants,
272
- defaultCheckedKeys: defaultCheckedKeys,
273
- defaultExpandedKeys: defaultExpandedKeys,
274
- autoExpandParent: autoExpandParent,
275
- defaultExpandAll: defaultExpandAll,
276
- filterNodeMethod: filterNodeMethod
277
- });
278
- state.root = state.store.root;
279
- api.initIsCurrent();
280
- state.emitter.on('tree-node-drag-start', api.dragStart);
281
- state.emitter.on('tree-node-drag-over', api.dragOver);
282
- state.emitter.on('tree-node-drag-end', api.dragEnd);
283
- };
119
+ return { dropPrev, dropInner, dropNext, userAllowDropInner };
120
+ };
121
+ const dragOver = ({ state, emit, props, refs, vm }) => (event2, dropNode) => {
122
+ const dragState = state.dragState;
123
+ const oldDropNode = dragState.dropNode;
124
+ if (oldDropNode && oldDropNode !== dropNode) {
125
+ removeClass(oldDropNode.$el, "is-drop-inner");
126
+ }
127
+ const draggingNode = dragState.draggingNode;
128
+ if (!draggingNode || !dropNode) {
129
+ return;
130
+ }
131
+ const { dropPrev, dropInner, dropNext, userAllowDropInner } = getDragDir({
132
+ draggingNode,
133
+ dropNode,
134
+ allowDrop: props.allowDrop,
135
+ emit,
136
+ dragState
137
+ });
138
+ const dropType = getDropType(dropPrev, dropInner, dropNext, dropNode);
139
+ setDropIndicatorTop(dropNode, refs.dropIndicator, vm, dropType);
140
+ dragState.showDropIndicator = dropType === "before" || dropType === "after";
141
+ dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner;
142
+ dragState.dropType = dropType;
143
+ emit("node-drag-over", draggingNode.node, dropNode.node, event2);
144
+ };
145
+ const dragEnd = ({ state, emit }) => (event2) => {
146
+ const dragState = state.dragState;
147
+ const { draggingNode, dropType, dropNode } = dragState;
148
+ event2.preventDefault();
149
+ if (!event2.dataTransfer) {
150
+ return;
151
+ }
152
+ event2.dataTransfer.dropEffect = "copy";
153
+ if (draggingNode && dropNode) {
154
+ const draggingNodeCopy = { data: draggingNode.node.data };
155
+ const normalType = dropType !== "none";
156
+ normalType && draggingNode.node.remove();
157
+ if (dropType === "before") {
158
+ dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);
159
+ } else if (dropType === "after") {
160
+ dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);
161
+ } else if (dropType === "inner") {
162
+ dropNode.node.insertChild(draggingNodeCopy);
163
+ }
164
+ normalType && state.store.registerNode(draggingNodeCopy);
165
+ removeClass(dropNode.$el, "is-drop-inner");
166
+ emit("node-drag-end", draggingNode.node, dropNode.node, dropType, event2);
167
+ normalType && emit("node-drop", draggingNode.node, dropNode.node, dropType, event2);
168
+ }
169
+ if (draggingNode && !dropNode) {
170
+ emit("node-drag-end", draggingNode.node, null, dropType, event2);
171
+ }
172
+ dragState.draggingNode = null;
173
+ dragState.dropNode = null;
174
+ dragState.allowDrop = true;
175
+ dragState.showDropIndicator = false;
176
+ };
177
+ const created = ({ api, props, state }) => () => {
178
+ state.isTree = true;
179
+ const { nodeKey, data, lazy, load, currentNodeKey, checkStrictly, checkDescendants } = props;
180
+ const { defaultCheckedKeys, defaultExpandedKeys, autoExpandParent, defaultExpandAll, filterNodeMethod } = props;
181
+ state.store = new TreeStore({
182
+ key: nodeKey,
183
+ data,
184
+ lazy,
185
+ props: props.props,
186
+ load,
187
+ currentNodeKey,
188
+ checkStrictly,
189
+ checkDescendants,
190
+ defaultCheckedKeys,
191
+ defaultExpandedKeys,
192
+ autoExpandParent,
193
+ defaultExpandAll,
194
+ filterNodeMethod
195
+ });
196
+ state.root = state.store.root;
197
+ api.initIsCurrent();
198
+ state.emitter.on("tree-node-drag-start", api.dragStart);
199
+ state.emitter.on("tree-node-drag-over", api.dragOver);
200
+ state.emitter.on("tree-node-drag-end", api.dragEnd);
284
201
  };
285
- var doClearCurrentStore = function doClearCurrentStore(state) {
202
+ const doClearCurrentStore = (state) => {
286
203
  if (state.currentStore.node) {
287
204
  state.currentStore.node.isCurrent = false;
288
205
  }
289
206
  state.currentStore.node = null;
290
207
  state.currentStore.flag = false;
291
208
  };
292
- var setIsCurrent = function setIsCurrent(root, defaultExpandedKeys, defaultExpandedKeysHighlight, currentStore) {
293
- var nodeKey = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'id';
209
+ const setIsCurrent = (root, defaultExpandedKeys, defaultExpandedKeysHighlight, currentStore, nodeKey = "id") => {
294
210
  if (currentStore.flag || !Array.isArray(root.childNodes)) {
295
211
  return;
296
212
  }
297
- for (var i = 0; i < root.childNodes.length; i++) {
298
- var child = root.childNodes[i];
213
+ for (let i = 0; i < root.childNodes.length; i++) {
214
+ const child = root.childNodes[i];
299
215
  if (child.data && child.data[nodeKey] && child.data[nodeKey] === defaultExpandedKeysHighlight) {
300
216
  child.isCurrent = true;
301
217
  currentStore.flag = true;
@@ -305,289 +221,176 @@ var setIsCurrent = function setIsCurrent(root, defaultExpandedKeys, defaultExpan
305
221
  setIsCurrent(child, defaultExpandedKeys, defaultExpandedKeysHighlight, currentStore, nodeKey);
306
222
  }
307
223
  };
308
- export var initIsCurrent = function initIsCurrent(_ref9) {
309
- var props = _ref9.props,
310
- state = _ref9.state;
311
- return function () {
312
- if (state.currentStore.flag) {
313
- doClearCurrentStore(state);
314
- }
315
- if (state.store.getCurrentNode() && props.defaultExpandedKeysHighlight) {
316
- state.store.setCurrentNode(null);
317
- }
318
- if (props.defaultExpandedKeysHighlight && Array.isArray(props.defaultExpandedKeys) && ~props.defaultExpandedKeys.indexOf(props.defaultExpandedKeysHighlight)) {
319
- setIsCurrent(state.root, props.defaultExpandedKeys, props.defaultExpandedKeysHighlight, state.currentStore, props.nodeKey);
320
- }
321
- };
322
- };
323
- export var mounted = function mounted(_ref10) {
324
- var api = _ref10.api,
325
- vm = _ref10.vm;
326
- return function () {
327
- api.initTabIndex();
328
- on(vm.$el, 'keydown', api.handleKeydown);
329
- };
330
- };
331
- export var beforeUnmount = function beforeUnmount(_ref11) {
332
- var api = _ref11.api,
333
- vm = _ref11.vm;
334
- return function () {
335
- off(vm.$el, 'keydown', api.handleKeydown);
336
- };
337
- };
338
- export var wrapMounted = function wrapMounted(_ref12) {
339
- var api = _ref12.api,
340
- props = _ref12.props,
341
- service = _ref12.service;
342
- return function () {
343
- var data = props.data,
344
- key = props.nodeKey,
345
- parentKey = props.parentKey;
346
- if (!data && props.dataset) {
347
- var dataset = {
348
- service: service,
349
- dataset: props.dataset,
350
- tree: {
351
- key: key,
352
- parentKey: parentKey
353
- }
354
- };
355
- getDataset(dataset).then(api.watchData);
356
- }
357
- api.mounted();
358
- };
359
- };
360
- export var updated = function updated(_ref13) {
361
- var vm = _ref13.vm,
362
- state = _ref13.state;
363
- return function () {
364
- state.treeItems = vm.$el.querySelectorAll('[role=treeitem]');
365
- state.checkboxItems = vm.$el.querySelectorAll('input[type=checkbox]');
366
- };
367
- };
368
- export var filter = function filter(_ref14) {
369
- var props = _ref14.props,
370
- state = _ref14.state;
371
- return function (value) {
372
- if (!props.filterNodeMethod) {
373
- throw new Error('[Tree] filterNodeMethod is required when filter');
374
- }
375
- state.store.filter(value);
376
- };
377
- };
378
- export var getNodeKey = function getNodeKey(props) {
379
- return function (node) {
380
- return innerGetNodekey(props.nodekey, node.data);
381
- };
382
- };
383
- export var getNodePath = function getNodePath(_ref15) {
384
- var props = _ref15.props,
385
- state = _ref15.state;
386
- return function (data) {
387
- if (!props.nodeKey) {
388
- throw new Error('[Tree] nodeKey is required in getNodePath');
389
- }
390
- var node = state.store.getNode(data);
391
- if (!node) {
392
- return [];
393
- }
394
- var path = [node.data];
395
- var parent = node.parent;
396
- while (parent && parent !== state.root) {
397
- path.push(parent.data);
398
- parent = parent.parent;
399
- }
400
- return path.reverse();
401
- };
402
- };
403
- export var getCheckedNodes = function getCheckedNodes(state) {
404
- return function (leafOnly, includeHalfChecked) {
405
- return state.store.getCheckedNodes(leafOnly, includeHalfChecked);
406
- };
407
- };
408
- export var getCheckedKeys = function getCheckedKeys(state) {
409
- return function (leafOnly) {
410
- return state.store.getCheckedKeys(leafOnly);
411
- };
412
- };
413
- export var getCurrentNode = function getCurrentNode(state) {
414
- return function () {
415
- var currentNode = state.store.getCurrentNode();
416
- return currentNode ? currentNode.data : null;
417
- };
418
- };
419
- export var getCurrentKey = function getCurrentKey(_ref16) {
420
- var api = _ref16.api,
421
- props = _ref16.props;
422
- return function () {
423
- if (!props.nodeKey) {
424
- throw new Error('[Tree] nodeKey is required in getCurrentKey');
425
- }
426
- var currentNode = api.getCurrentNode();
427
- return currentNode ? currentNode[props.nodeKey] : null;
428
- };
429
- };
430
- export var setCheckedNodes = function setCheckedNodes(_ref17) {
431
- var props = _ref17.props,
432
- state = _ref17.state;
433
- return function (nodes, leafOnly) {
434
- if (!props.nodeKey) {
435
- throw new Error('[Tree] nodeKey is required in setCheckedNodes');
436
- }
437
- state.store.setCheckedNodes(nodes, leafOnly);
438
- };
439
- };
440
- export var setCheckedKeys = function setCheckedKeys(_ref18) {
441
- var props = _ref18.props,
442
- state = _ref18.state;
443
- return function (keys, leafOnly) {
444
- if (!props.nodeKey) {
445
- throw new Error('[Tree] nodeKey is required in setCheckedKeys');
446
- }
447
- state.store.setCheckedKeys(keys, leafOnly);
448
- };
449
- };
450
- export var setChecked = function setChecked(state) {
451
- return function (data, checked, deep) {
452
- state.store.setChecked(data, checked, deep);
453
- };
454
- };
455
- export var getHalfCheckedNodes = function getHalfCheckedNodes(state) {
456
- return function () {
457
- return state.store.getHalfCheckedNodes();
458
- };
459
- };
460
- export var getHalfCheckedKeys = function getHalfCheckedKeys(state) {
461
- return function () {
462
- return state.store.getHalfCheckedKeys();
463
- };
464
- };
465
- export var setCurrentNode = function setCurrentNode(_ref19) {
466
- var props = _ref19.props,
467
- state = _ref19.state;
468
- return function (node) {
469
- if (!props.nodeKey) {
470
- throw new Error('[Tree] nodeKey is required in setCurrentNode');
471
- }
472
- state.store.setUserCurrentNode(node);
473
- };
474
- };
475
- export var setCurrentKey = function setCurrentKey(_ref20) {
476
- var props = _ref20.props,
477
- state = _ref20.state;
478
- return function (key) {
479
- if (!props.nodeKey) {
480
- throw new Error('[Tree] nodeKey is required in setCurrentKey');
481
- }
482
- state.store.setCurrentNodeKey(key);
483
- };
484
- };
485
- export var getNode = function getNode(state) {
486
- return function (data) {
487
- return state.store.getNode(data);
488
- };
489
- };
490
- export var remove = function remove(state) {
491
- return function (data) {
492
- state.store.remove(data);
493
- };
494
- };
495
- export var append = function append(state) {
496
- return function (data, parentNode) {
497
- state.store.append(data, parentNode);
498
- };
499
- };
500
- export var insertBefore = function insertBefore(state) {
501
- return function (data, refNode) {
502
- state.store.insertBefore(data, refNode);
503
- };
504
- };
505
- export var insertAfter = function insertAfter(state) {
506
- return function (data, refNode) {
507
- state.store.insertAfter(data, refNode);
508
- };
509
- };
510
- export var handleNodeExpand = function handleNodeExpand(emit) {
511
- return function (nodeData, node, instance) {
512
- emit('node-expand', nodeData, node, instance);
513
- };
514
- };
515
- export var updateKeyChildren = function updateKeyChildren(_ref21) {
516
- var props = _ref21.props,
517
- state = _ref21.state;
518
- return function (key, data) {
519
- if (!props.nodeKey) {
520
- throw new Error('[Tree] nodeKey is required in updateKeyChild');
521
- }
522
- state.store.updateChildren(key, data);
523
- };
524
- };
525
- export var initTabIndex = function initTabIndex(_ref22) {
526
- var vm = _ref22.vm,
527
- state = _ref22.state;
528
- return function () {
529
- state.treeItems = vm.$el.querySelectorAll('.is-focusable[role=treeitem]');
530
- state.checkboxItems = vm.$el.querySelectorAll('input[type=checkbox]');
531
- var checkedItem = vm.$el.querySelectorAll('.is-checked[role=treeitem]');
532
- if (checkedItem.length) {
533
- checkedItem[0].setAttribute('tabindex', 0);
534
- return;
535
- }
536
- state.treeItems[0] && state.treeItems[0].setAttribute('tabindex', 0);
537
- };
538
- };
539
- export var handleKeydown = function handleKeydown(_ref23) {
540
- var vm = _ref23.vm,
541
- state = _ref23.state;
542
- return function (event) {
543
- var currentItem = event.target;
544
- if (currentItem.className.indexOf('tiny-tree-node') === -1) {
545
- return;
546
- }
547
- var keyCode = event.keyCode;
548
- state.treeItems = vm.$el.querySelectorAll('.is-focusable[role=treeitem]');
549
- if ([KEY_CODE.ArrowUp, KEY_CODE.ArrowDown].indexOf(keyCode) > -1) {
550
- var nextIndex;
551
- var currentIndex = state.treeItemArray.indexOf(currentItem);
552
- event.preventDefault();
553
- if (keyCode === KEY_CODE.ArrowUp) {
554
- nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;
555
- } else {
556
- nextIndex = currentIndex < state.treeItemArray.length - 1 ? currentIndex + 1 : 0;
557
- }
558
- state.treeItemArray[nextIndex].focus();
559
- } else if ([KEY_CODE.ArrowLeft, KEY_CODE.ArrowRight].indexOf(keyCode) > -1) {
560
- event.preventDefault();
561
- currentItem.click();
562
- } else if ([KEY_CODE.NumpadEnter, KEY_CODE.Space].indexOf(keyCode) > -1) {
563
- var hasInput = currentItem.querySelector('[type="checkbox"]');
564
- if (hasInput) {
565
- event.preventDefault();
566
- hasInput.click();
567
- }
224
+ const initIsCurrent = ({ props, state }) => () => {
225
+ if (state.currentStore.flag) {
226
+ doClearCurrentStore(state);
227
+ }
228
+ if (state.store.getCurrentNode() && props.defaultExpandedKeysHighlight) {
229
+ state.store.setCurrentNode(null);
230
+ }
231
+ if (props.defaultExpandedKeysHighlight && Array.isArray(props.defaultExpandedKeys) && ~props.defaultExpandedKeys.indexOf(props.defaultExpandedKeysHighlight)) {
232
+ setIsCurrent(state.root, props.defaultExpandedKeys, props.defaultExpandedKeysHighlight, state.currentStore, props.nodeKey);
233
+ }
234
+ };
235
+ const mounted = ({ api, vm }) => () => {
236
+ api.initTabIndex();
237
+ on(vm.$el, "keydown", api.handleKeydown);
238
+ };
239
+ const beforeUnmount = ({ api, vm }) => () => {
240
+ off(vm.$el, "keydown", api.handleKeydown);
241
+ };
242
+ const wrapMounted = ({ api, props, service }) => () => {
243
+ const { data, nodeKey: key, parentKey } = props;
244
+ if (!data && props.dataset) {
245
+ const dataset = {
246
+ service,
247
+ dataset: props.dataset,
248
+ tree: { key, parentKey }
249
+ };
250
+ getDataset(dataset).then(api.watchData);
251
+ }
252
+ api.mounted();
253
+ };
254
+ const updated = ({ vm, state }) => () => {
255
+ state.treeItems = vm.$el.querySelectorAll("[role=treeitem]");
256
+ state.checkboxItems = vm.$el.querySelectorAll("input[type=checkbox]");
257
+ };
258
+ const filter = ({ props, state }) => (value) => {
259
+ if (!props.filterNodeMethod) {
260
+ throw new Error("[Tree] filterNodeMethod is required when filter");
261
+ }
262
+ state.store.filter(value);
263
+ };
264
+ const getNodeKey = (props) => (node) => innerGetNodekey(props.nodekey, node.data);
265
+ const getNodePath = ({ props, state }) => (data) => {
266
+ if (!props.nodeKey) {
267
+ throw new Error("[Tree] nodeKey is required in getNodePath");
268
+ }
269
+ const node = state.store.getNode(data);
270
+ if (!node) {
271
+ return [];
272
+ }
273
+ const path = [node.data];
274
+ let parent = node.parent;
275
+ while (parent && parent !== state.root) {
276
+ path.push(parent.data);
277
+ parent = parent.parent;
278
+ }
279
+ return path.reverse();
280
+ };
281
+ const getCheckedNodes = (state) => (leafOnly, includeHalfChecked) => state.store.getCheckedNodes(leafOnly, includeHalfChecked);
282
+ const getCheckedKeys = (state) => (leafOnly) => state.store.getCheckedKeys(leafOnly);
283
+ const getCurrentNode = (state) => () => {
284
+ const currentNode = state.store.getCurrentNode();
285
+ return currentNode ? currentNode.data : null;
286
+ };
287
+ const getCurrentKey = ({ api, props }) => () => {
288
+ if (!props.nodeKey) {
289
+ throw new Error("[Tree] nodeKey is required in getCurrentKey");
290
+ }
291
+ const currentNode = api.getCurrentNode();
292
+ return currentNode ? currentNode[props.nodeKey] : null;
293
+ };
294
+ const setCheckedNodes = ({ props, state }) => (nodes, leafOnly) => {
295
+ if (!props.nodeKey) {
296
+ throw new Error("[Tree] nodeKey is required in setCheckedNodes");
297
+ }
298
+ state.store.setCheckedNodes(nodes, leafOnly);
299
+ };
300
+ const setCheckedKeys = ({ props, state }) => (keys, leafOnly) => {
301
+ if (!props.nodeKey) {
302
+ throw new Error("[Tree] nodeKey is required in setCheckedKeys");
303
+ }
304
+ state.store.setCheckedKeys(keys, leafOnly);
305
+ };
306
+ const setChecked = (state) => (data, checked, deep) => {
307
+ state.store.setChecked(data, checked, deep);
308
+ };
309
+ const getHalfCheckedNodes = (state) => () => state.store.getHalfCheckedNodes();
310
+ const getHalfCheckedKeys = (state) => () => state.store.getHalfCheckedKeys();
311
+ const setCurrentNode = ({ props, state }) => (node) => {
312
+ if (!props.nodeKey) {
313
+ throw new Error("[Tree] nodeKey is required in setCurrentNode");
314
+ }
315
+ state.store.setUserCurrentNode(node);
316
+ };
317
+ const setCurrentKey = ({ props, state }) => (key) => {
318
+ if (!props.nodeKey) {
319
+ throw new Error("[Tree] nodeKey is required in setCurrentKey");
320
+ }
321
+ state.store.setCurrentNodeKey(key);
322
+ };
323
+ const getNode = (state) => (data) => state.store.getNode(data);
324
+ const remove = (state) => (data) => {
325
+ state.store.remove(data);
326
+ };
327
+ const append = (state) => (data, parentNode) => {
328
+ state.store.append(data, parentNode);
329
+ };
330
+ const insertBefore = (state) => (data, refNode) => {
331
+ state.store.insertBefore(data, refNode);
332
+ };
333
+ const insertAfter = (state) => (data, refNode) => {
334
+ state.store.insertAfter(data, refNode);
335
+ };
336
+ const handleNodeExpand = (emit) => (nodeData, node, instance) => {
337
+ emit("node-expand", nodeData, node, instance);
338
+ };
339
+ const updateKeyChildren = ({ props, state }) => (key, data) => {
340
+ if (!props.nodeKey) {
341
+ throw new Error("[Tree] nodeKey is required in updateKeyChild");
342
+ }
343
+ state.store.updateChildren(key, data);
344
+ };
345
+ const initTabIndex = ({ vm, state }) => () => {
346
+ state.treeItems = vm.$el.querySelectorAll(".is-focusable[role=treeitem]");
347
+ state.checkboxItems = vm.$el.querySelectorAll("input[type=checkbox]");
348
+ const checkedItem = vm.$el.querySelectorAll(".is-checked[role=treeitem]");
349
+ if (checkedItem.length) {
350
+ checkedItem[0].setAttribute("tabindex", 0);
351
+ return;
352
+ }
353
+ state.treeItems[0] && state.treeItems[0].setAttribute("tabindex", 0);
354
+ };
355
+ const handleKeydown = ({ vm, state }) => (event2) => {
356
+ const currentItem = event2.target;
357
+ if (!currentItem.className.includes("tiny-tree-node")) {
358
+ return;
359
+ }
360
+ const keyCode = event2.keyCode;
361
+ state.treeItems = vm.$el.querySelectorAll(".is-focusable[role=treeitem]");
362
+ if ([KEY_CODE.ArrowUp, KEY_CODE.ArrowDown].includes(keyCode)) {
363
+ let nextIndex;
364
+ const currentIndex = state.treeItemArray.indexOf(currentItem);
365
+ event2.preventDefault();
366
+ if (keyCode === KEY_CODE.ArrowUp) {
367
+ nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;
368
+ } else {
369
+ nextIndex = currentIndex < state.treeItemArray.length - 1 ? currentIndex + 1 : 0;
370
+ }
371
+ state.treeItemArray[nextIndex].focus();
372
+ } else if ([KEY_CODE.ArrowLeft, KEY_CODE.ArrowRight].includes(keyCode)) {
373
+ event2.preventDefault();
374
+ currentItem.click();
375
+ } else if ([KEY_CODE.NumpadEnter, KEY_CODE.Space].includes(keyCode)) {
376
+ const hasInput = currentItem.querySelector('[type="checkbox"]');
377
+ if (hasInput) {
378
+ event2.preventDefault();
379
+ hasInput.click();
568
380
  }
569
- };
570
- };
571
- var initRadio = function initRadio(_ref24) {
572
- var node = _ref24.node,
573
- nodeKey = _ref24.nodeKey,
574
- checkedKey = _ref24.checkedKey,
575
- state = _ref24.state;
576
- var isFound = false;
381
+ }
382
+ };
383
+ const initRadio = ({ node, nodeKey, checkedKey, state }) => {
384
+ let isFound = false;
577
385
  if (node.data[nodeKey] === checkedKey) {
578
386
  state.currentRadio.value = node.id;
579
387
  isFound = true;
580
388
  return isFound;
581
389
  }
582
390
  if (node.childNodes && node.childNodes.length) {
583
- var childNodes = node.childNodes;
584
- for (var i = 0; i < childNodes.length; i++) {
585
- isFound = initRadio({
586
- node: childNodes[i],
587
- nodeKey: nodeKey,
588
- checkedKey: checkedKey,
589
- state: state
590
- });
391
+ const childNodes = node.childNodes;
392
+ for (let i = 0; i < childNodes.length; i++) {
393
+ isFound = initRadio({ node: childNodes[i], nodeKey, checkedKey, state });
591
394
  if (isFound) {
592
395
  break;
593
396
  }
@@ -595,19 +398,16 @@ var initRadio = function initRadio(_ref24) {
595
398
  }
596
399
  return isFound;
597
400
  };
598
- var init = function init(_ref25) {
599
- var state = _ref25.state,
600
- nodeKey = _ref25.nodeKey,
601
- checkedKey = _ref25.checkedKey;
602
- var isFound = false;
401
+ const init = ({ state, nodeKey, checkedKey }) => {
402
+ let isFound = false;
603
403
  if (state.root && state.root.childNodes && state.root.childNodes.length) {
604
- var rootChildNodes = state.root.childNodes;
605
- for (var i = 0; i < rootChildNodes.length; i++) {
404
+ const rootChildNodes = state.root.childNodes;
405
+ for (let i = 0; i < rootChildNodes.length; i++) {
606
406
  isFound = initRadio({
607
407
  node: rootChildNodes[i],
608
- nodeKey: nodeKey,
609
- checkedKey: checkedKey,
610
- state: state
408
+ nodeKey,
409
+ checkedKey,
410
+ state
611
411
  });
612
412
  if (isFound) {
613
413
  break;
@@ -615,43 +415,29 @@ var init = function init(_ref25) {
615
415
  }
616
416
  }
617
417
  };
618
- export var setCurrentRadio = function setCurrentRadio(_ref26) {
619
- var props = _ref26.props,
620
- state = _ref26.state;
621
- return function () {
622
- if (!props.showRadio) {
623
- return;
624
- }
625
- if (!props.nodeKey) {
626
- throw new Error('[Tree] nodeKey is required in setCurrentRadio');
627
- }
628
- var nodeKey = props.nodeKey;
629
- var defaultCheckedKeys = props.defaultCheckedKeys || [];
630
- var checkedKey = defaultCheckedKeys.length ? defaultCheckedKeys[0] : null;
631
- if (!checkedKey) {
632
- return;
633
- }
634
- init({
635
- state: state,
636
- nodeKey: nodeKey,
637
- checkedKey: checkedKey
638
- });
639
- };
640
- };
641
- export var closeMenu = function closeMenu(state) {
642
- return function () {
643
- return state.emitter.emit('closeMenu');
644
- };
418
+ const setCurrentRadio = ({ props, state }) => () => {
419
+ if (!props.showRadio) {
420
+ return;
421
+ }
422
+ if (!props.nodeKey) {
423
+ throw new Error("[Tree] nodeKey is required in setCurrentRadio");
424
+ }
425
+ const nodeKey = props.nodeKey;
426
+ const defaultCheckedKeys = props.defaultCheckedKeys || [];
427
+ const checkedKey = defaultCheckedKeys.length ? defaultCheckedKeys[0] : null;
428
+ if (!checkedKey) {
429
+ return;
430
+ }
431
+ init({ state, nodeKey, checkedKey });
645
432
  };
646
- export var clearCurrentStore = function clearCurrentStore(state) {
647
- return function (node) {
648
- if (state.currentStore.flag && state.currentStore.node && state.currentStore.node.id !== node.id) {
649
- doClearCurrentStore(state);
650
- }
651
- };
433
+ const closeMenu = (state) => () => state.emitter.emit("closeMenu");
434
+ const clearCurrentStore = (state) => (node) => {
435
+ if (state.currentStore.flag && state.currentStore.node && state.currentStore.node.id !== node.id) {
436
+ doClearCurrentStore(state);
437
+ }
652
438
  };
653
- var innerExpandAllNodes = function innerExpandAllNodes(nodes, expandFlag) {
654
- nodes.forEach(function (node) {
439
+ const innerExpandAllNodes = (nodes, expandFlag) => {
440
+ nodes.forEach((node) => {
655
441
  if (expandFlag) {
656
442
  if (node.childNodes.length && node.level > 1) {
657
443
  node.expand();
@@ -662,17 +448,62 @@ var innerExpandAllNodes = function innerExpandAllNodes(nodes, expandFlag) {
662
448
  innerExpandAllNodes(node.childNodes, expandFlag);
663
449
  });
664
450
  };
665
- export var expandAllNodes = function expandAllNodes(_ref27) {
666
- var state = _ref27.state;
667
- return function (expandFlag) {
668
- var nodes = state.root.childNodes;
669
- if (Array.isArray(nodes) && nodes.length) {
670
- innerExpandAllNodes(nodes, expandFlag);
671
- nodes.forEach(function (node) {
672
- if (expandFlag && node.childNodes.length) {
673
- node.expand();
674
- }
675
- });
676
- }
677
- };
678
- };
451
+ const expandAllNodes = ({ state }) => (expandFlag) => {
452
+ const nodes = state.root.childNodes;
453
+ if (Array.isArray(nodes) && nodes.length) {
454
+ innerExpandAllNodes(nodes, expandFlag);
455
+ nodes.forEach((node) => {
456
+ if (expandFlag && node.childNodes.length) {
457
+ node.expand();
458
+ }
459
+ });
460
+ }
461
+ };
462
+ export {
463
+ append,
464
+ beforeUnmount,
465
+ clearCurrentStore,
466
+ closeMenu,
467
+ computedIsEmpty,
468
+ computedShowEmptyText,
469
+ computedTreeItemArray,
470
+ created,
471
+ dragEnd,
472
+ dragOver,
473
+ dragStart,
474
+ expandAllNodes,
475
+ filter,
476
+ getCheckedKeys,
477
+ getCheckedNodes,
478
+ getChildren,
479
+ getCurrentKey,
480
+ getCurrentNode,
481
+ getHalfCheckedKeys,
482
+ getHalfCheckedNodes,
483
+ getNode,
484
+ getNodeKey,
485
+ getNodePath,
486
+ handleKeydown,
487
+ handleNodeExpand,
488
+ initIsCurrent,
489
+ initTabIndex,
490
+ insertAfter,
491
+ insertBefore,
492
+ mounted,
493
+ remove,
494
+ setChecked,
495
+ setCheckedKeys,
496
+ setCheckedNodes,
497
+ setChildren,
498
+ setCurrentKey,
499
+ setCurrentNode,
500
+ setCurrentRadio,
501
+ updateKeyChildren,
502
+ updated,
503
+ watchCheckStrictly,
504
+ watchCheckboxItems,
505
+ watchData,
506
+ watchDefaultCheckedKeys,
507
+ watchDefaultExpandedKeys,
508
+ wrapMounted
509
+ };