@opentiny/vue-renderless 3.10.7 → 3.11.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 (800) hide show
  1. package/action-menu/index.js +1 -1
  2. package/action-menu/vue.js +7 -9
  3. package/action-sheet/index.js +4 -1
  4. package/action-sheet/vue.js +1 -1
  5. package/alert/index.js +1 -1
  6. package/alert/vue.js +1 -1
  7. package/amount/index.js +1 -1
  8. package/amount/vue.js +1 -1
  9. package/anchor/index.js +39 -28
  10. package/anchor/vue.js +38 -10
  11. package/area/index.js +1 -1
  12. package/area/vue.js +1 -1
  13. package/async-flowchart/index.js +66 -0
  14. package/async-flowchart/vue.js +40 -0
  15. package/autocomplete/index.js +1 -1
  16. package/autocomplete/vue.js +1 -1
  17. package/autonavi-map/index.js +1 -1
  18. package/avatar/index.js +1 -1
  19. package/avatar/vue.js +1 -1
  20. package/badge/index.js +1 -1
  21. package/badge/vue.js +1 -1
  22. package/baidu-map/index.js +1 -1
  23. package/breadcrumb/index.js +2 -2
  24. package/breadcrumb/vue.js +2 -1
  25. package/breadcrumb-item/index.js +1 -1
  26. package/breadcrumb-item/vue.js +1 -1
  27. package/bulletin-board/index.js +1 -1
  28. package/bulletin-board/vue.js +1 -1
  29. package/button/index.js +2 -2
  30. package/button/vue.js +2 -2
  31. package/button-group/index.js +2 -2
  32. package/button-group/vue.js +1 -1
  33. package/calendar/index.js +15 -15
  34. package/calendar/vue.js +1 -1
  35. package/calendar-bar/index.js +4 -4
  36. package/calendar-bar/vue.js +1 -1
  37. package/calendar-view/index.js +600 -0
  38. package/calendar-view/vue.js +289 -0
  39. package/card/index.js +1 -1
  40. package/card/vue.js +1 -1
  41. package/card-group/index.js +1 -1
  42. package/card-group/vue.js +1 -1
  43. package/card-template/index.js +1 -1
  44. package/card-template/vue.js +1 -1
  45. package/carousel/index.js +1 -1
  46. package/carousel/vue.js +1 -1
  47. package/carousel-item/index.js +1 -1
  48. package/carousel-item/vue.js +1 -1
  49. package/cascader/index.js +3 -5
  50. package/cascader/vue.js +2 -1
  51. package/cascader-menu/index.js +11 -3
  52. package/cascader-menu/vue.js +1 -1
  53. package/cascader-mobile/index.js +1 -1
  54. package/cascader-mobile/vue.js +1 -1
  55. package/cascader-node/index.js +2 -2
  56. package/cascader-node/vue.js +1 -1
  57. package/cascader-panel/index.js +22 -17
  58. package/cascader-panel/node.js +14 -5
  59. package/cascader-panel/store.js +18 -1
  60. package/cascader-panel/vue.js +16 -3
  61. package/cascader-select/index.js +1 -1
  62. package/cascader-select/vue.js +1 -1
  63. package/cell/vue.js +1 -1
  64. package/chart-bar/index.js +1 -1
  65. package/chart-boxplot/index.js +2 -1
  66. package/chart-candle/index.js +1 -1
  67. package/chart-core/deps/constants.js +1 -1
  68. package/chart-core/deps/numerify.js +1 -1
  69. package/chart-core/deps/utils.js +1 -1
  70. package/chart-core/index.js +1 -1
  71. package/chart-core/modules/animation.js +1 -1
  72. package/chart-core/modules/extend.js +1 -1
  73. package/chart-core/modules/mark.js +1 -1
  74. package/chart-core/vue.js +1 -1
  75. package/chart-funnel/index.js +1 -1
  76. package/chart-gauge/index.js +1 -1
  77. package/chart-graph/index.js +1 -1
  78. package/chart-heatmap/index.js +1 -1
  79. package/chart-line/index.js +1 -1
  80. package/chart-liquidfill/index.js +1 -1
  81. package/chart-map/index.js +1 -1
  82. package/chart-pie/index.js +1 -1
  83. package/chart-radar/index.js +1 -1
  84. package/chart-sankey/index.js +1 -1
  85. package/chart-scatter/index.js +1 -1
  86. package/chart-sunburst/index.js +1 -1
  87. package/chart-tree/index.js +1 -1
  88. package/chart-waterfall/index.js +1 -1
  89. package/chart-wordcloud/index.js +1 -1
  90. package/checkbox/index.js +23 -6
  91. package/checkbox/vue.js +15 -2
  92. package/checkbox-button/index.js +1 -1
  93. package/checkbox-button/vue.js +1 -1
  94. package/checkbox-group/index.js +1 -1
  95. package/checkbox-group/vue.js +1 -1
  96. package/col/index.js +8 -7
  97. package/col/vue.js +1 -1
  98. package/collapse/index.js +1 -1
  99. package/collapse/vue.js +2 -2
  100. package/collapse-item/index.js +1 -1
  101. package/collapse-item/vue.js +1 -1
  102. package/color-picker/alpha-select/index.js +24 -0
  103. package/color-picker/alpha-select/vue.js +58 -0
  104. package/color-picker/color-select/index.js +73 -0
  105. package/color-picker/color-select/vue.js +67 -0
  106. package/color-picker/index.js +52 -0
  107. package/color-picker/utils/color.js +96 -0
  108. package/color-picker/utils/use-drag.js +38 -0
  109. package/color-picker/vue.js +63 -0
  110. package/color-select-panel/alpha-select/index.js +24 -0
  111. package/color-select-panel/alpha-select/vue.js +59 -0
  112. package/color-select-panel/hue-select/index.js +73 -0
  113. package/color-select-panel/hue-select/vue.js +67 -0
  114. package/color-select-panel/index.js +74 -0
  115. package/color-select-panel/utils/color.js +97 -0
  116. package/color-select-panel/utils/use-drag.js +38 -0
  117. package/color-select-panel/vue.js +92 -0
  118. package/column-list-group/vue.js +1 -1
  119. package/column-list-item/index.js +1 -1
  120. package/column-list-item/vue.js +1 -1
  121. package/common/array.js +1 -1
  122. package/common/bigInt.js +12 -3
  123. package/common/browser.js +1 -1
  124. package/common/calendar/calendar.js +97 -0
  125. package/common/dataset/index.js +1 -1
  126. package/common/date.js +3 -3
  127. package/common/decimal.js +1 -1
  128. package/common/deps/ResizeObserver.js +1 -1
  129. package/common/deps/after-leave.js +1 -1
  130. package/common/deps/clickoutside.js +1 -1
  131. package/common/deps/date-util.js +1 -1
  132. package/common/deps/date.js +3 -3
  133. package/common/deps/debounce.js +1 -1
  134. package/common/deps/dom.js +21 -70
  135. package/common/deps/eSpaceCtrl.js +1 -1
  136. package/common/deps/fastdom/async.js +1 -1
  137. package/common/deps/fastdom/index.js +1 -1
  138. package/common/deps/fastdom/sandbox.js +1 -1
  139. package/common/deps/fastdom/singleton.js +2 -2
  140. package/common/deps/fullscreen/apis.js +1 -1
  141. package/common/deps/fullscreen/screenfull.js +1 -1
  142. package/common/deps/infinite-scroll.js +1 -1
  143. package/common/deps/letter-only.js +1 -1
  144. package/common/deps/memorize.js +4 -4
  145. package/common/deps/modal-queue.js +1 -1
  146. package/common/deps/number-only.js +1 -1
  147. package/common/deps/observe-visibility.js +1 -1
  148. package/common/deps/popper.js +344 -449
  149. package/common/deps/popup-manager.js +56 -37
  150. package/common/deps/repeat-click.js +1 -1
  151. package/common/deps/requestAnimationFrame.js +1 -1
  152. package/common/deps/resize-event.js +1 -1
  153. package/common/deps/scroll-into-view.js +1 -1
  154. package/common/deps/scrollbar-width.js +1 -1
  155. package/common/deps/throttle.js +3 -3
  156. package/common/deps/touch.js +2 -1
  157. package/common/deps/tree-model/node.js +1 -1
  158. package/common/deps/tree-model/tree-store.js +1 -1
  159. package/common/deps/tree-model/util.js +1 -1
  160. package/common/deps/upload-ajax.js +1 -1
  161. package/common/deps/vue-emitter.js +1 -1
  162. package/common/deps/vue-popper.js +89 -220
  163. package/common/deps/vue-popup.js +65 -81
  164. package/common/event.js +9 -2
  165. package/common/index.js +2 -2
  166. package/common/object.js +20 -22
  167. package/common/runtime.js +2 -2
  168. package/common/string.js +14 -4
  169. package/common/type.js +2 -2
  170. package/common/validate/index.js +1 -1
  171. package/common/validate/messages.js +1 -1
  172. package/common/validate/rules/enum.js +1 -1
  173. package/common/validate/rules/index.js +1 -1
  174. package/common/validate/rules/pattern.js +1 -1
  175. package/common/validate/rules/range.js +1 -1
  176. package/common/validate/rules/required.js +1 -1
  177. package/common/validate/rules/type.js +1 -1
  178. package/common/validate/rules/whitespace.js +1 -1
  179. package/common/validate/schema.js +8 -1
  180. package/common/validate/util.js +4 -4
  181. package/common/validate/validations/array.js +1 -1
  182. package/common/validate/validations/date.js +1 -1
  183. package/common/validate/validations/enum.js +1 -1
  184. package/common/validate/validations/float.js +1 -1
  185. package/common/validate/validations/index.js +1 -1
  186. package/common/validate/validations/integer.js +1 -1
  187. package/common/validate/validations/method.js +1 -1
  188. package/common/validate/validations/number.js +1 -1
  189. package/common/validate/validations/pattern.js +1 -1
  190. package/common/validate/validations/required.js +1 -1
  191. package/common/validate/validations/string.js +1 -1
  192. package/common/validate/validations/type.js +1 -1
  193. package/common/xss.js +4 -156
  194. package/company/index.js +1 -1
  195. package/company/vue.js +1 -1
  196. package/container/index.js +1 -1
  197. package/container/vue.js +1 -1
  198. package/country/index.js +1 -1
  199. package/country/vue.js +1 -1
  200. package/credit-card/index.js +1 -1
  201. package/credit-card/vue.js +1 -1
  202. package/credit-card-form/index.js +1 -1
  203. package/credit-card-form/vue.js +3 -3
  204. package/crop/index.js +1 -1
  205. package/crop/vue.js +1 -1
  206. package/currency/index.js +1 -1
  207. package/currency/vue.js +1 -1
  208. package/date-panel/index.js +4 -4
  209. package/date-panel/vue.js +3 -3
  210. package/date-picker/index.js +1 -1
  211. package/date-picker/vue.js +1 -1
  212. package/date-picker-mobile/index.js +127 -85
  213. package/date-picker-mobile/vue.js +42 -23
  214. package/date-picker-mobile/year-month.js +53 -0
  215. package/date-range/index.js +7 -7
  216. package/date-range/vue.js +3 -3
  217. package/date-table/index.js +2 -2
  218. package/date-table/vue.js +1 -1
  219. package/dept/index.js +1 -1
  220. package/dept/vue.js +1 -1
  221. package/detail-page/index.js +1 -1
  222. package/detail-page/vue.js +1 -1
  223. package/dialog-box/index.js +28 -8
  224. package/dialog-box/vue.js +12 -16
  225. package/dialog-select/index.js +1 -1
  226. package/dialog-select/vue.js +1 -1
  227. package/divider/vue.js +9 -0
  228. package/drawer/index.js +2 -2
  229. package/drawer/vue.js +1 -1
  230. package/drop-roles/index.js +1 -1
  231. package/drop-roles/vue.js +1 -1
  232. package/drop-times/index.js +1 -1
  233. package/drop-times/vue.js +1 -1
  234. package/dropdown/index.js +33 -24
  235. package/dropdown/vue.js +8 -8
  236. package/dropdown-item/index.js +1 -1
  237. package/dropdown-item/mf.js +1 -1
  238. package/dropdown-item/vue.js +3 -3
  239. package/dropdown-menu/index.js +7 -5
  240. package/dropdown-menu/vue.js +3 -3
  241. package/dynamic-scroller/index.js +1 -1
  242. package/dynamic-scroller/vue.js +1 -1
  243. package/dynamic-scroller-item/index.js +1 -1
  244. package/dynamic-scroller-item/vue.js +1 -1
  245. package/espace/index.js +1 -1
  246. package/espace/vue.js +1 -1
  247. package/exception/index.js +1 -1
  248. package/exception/vue.js +1 -1
  249. package/fall-menu/index.js +1 -1
  250. package/fall-menu/vue.js +1 -1
  251. package/file-upload/index.js +213 -31
  252. package/file-upload/vue.js +13 -7
  253. package/filter/index.js +1 -1
  254. package/filter/tag-group.js +1 -1
  255. package/filter/vue.js +1 -1
  256. package/filter-bar/index.js +1 -1
  257. package/filter-bar/vue.js +1 -1
  258. package/filter-box/index.js +1 -1
  259. package/filter-box/vue.js +1 -1
  260. package/filter-panel/index.js +1 -1
  261. package/filter-panel/vue.js +1 -1
  262. package/floatbar/index.js +1 -1
  263. package/floatbar/vue.js +1 -1
  264. package/floating-button/index.js +1 -1
  265. package/floating-button/vue.js +1 -1
  266. package/flowchart/index.js +648 -227
  267. package/flowchart/node.js +52 -0
  268. package/flowchart/vue.js +25 -9
  269. package/form/index.js +37 -5
  270. package/form/vue.js +16 -3
  271. package/form-item/index.js +56 -27
  272. package/form-item/vue.js +25 -9
  273. package/fullscreen/index.js +1 -1
  274. package/fullscreen/vue.js +2 -1
  275. package/grid/core/index.js +1 -1
  276. package/grid/core/interceptor.js +1 -1
  277. package/grid/core/storeMap.js +1 -1
  278. package/grid/plugins/export.js +1 -1
  279. package/grid/plugins/exportExcel.js +4 -1
  280. package/grid/plugins/header.js +1 -1
  281. package/grid/plugins/resize.js +1 -1
  282. package/grid/static/array/arrayEach.js +1 -1
  283. package/grid/static/array/arrayIndexOf.js +1 -1
  284. package/grid/static/array/eachTree.js +1 -1
  285. package/grid/static/array/every.js +1 -1
  286. package/grid/static/array/filterTree.js +1 -1
  287. package/grid/static/array/find.js +1 -1
  288. package/grid/static/array/findTree.js +1 -1
  289. package/grid/static/array/helperCreateIterateHandle.js +1 -1
  290. package/grid/static/array/helperCreateTreeFunc.js +1 -1
  291. package/grid/static/array/includes.js +1 -1
  292. package/grid/static/array/lastArrayEach.js +1 -1
  293. package/grid/static/array/map.js +1 -1
  294. package/grid/static/array/mapTree.js +1 -1
  295. package/grid/static/array/slice.js +1 -1
  296. package/grid/static/array/sortBy.js +1 -1
  297. package/grid/static/array/sum.js +1 -1
  298. package/grid/static/array/toArray.js +1 -1
  299. package/grid/static/array/toTreeArray.js +1 -1
  300. package/grid/static/base/clear.js +1 -1
  301. package/grid/static/base/clone.js +1 -1
  302. package/grid/static/base/destructuring.js +1 -1
  303. package/grid/static/base/each.js +1 -1
  304. package/grid/static/base/eqNull.js +1 -1
  305. package/grid/static/base/findIndexOf.js +1 -1
  306. package/grid/static/base/get.js +1 -1
  307. package/grid/static/base/has.js +1 -1
  308. package/grid/static/base/hasOwnProp.js +1 -1
  309. package/grid/static/base/helperCreateGetObjects.js +1 -1
  310. package/grid/static/base/helperCreateInInObjectString.js +1 -1
  311. package/grid/static/base/helperCreateInTypeof.js +1 -1
  312. package/grid/static/base/helperCreateIndexOf.js +1 -1
  313. package/grid/static/base/helperCreateiterateIndexOf.js +1 -1
  314. package/grid/static/base/helperDefaultCompare.js +1 -1
  315. package/grid/static/base/helperDeleteProperty.js +1 -1
  316. package/grid/static/base/helperEqualCompare.js +1 -1
  317. package/grid/static/base/helperGetHGSKeys.js +5 -2
  318. package/grid/static/base/indexOf.js +1 -1
  319. package/grid/static/base/isArray.js +1 -1
  320. package/grid/static/base/isBoolean.js +1 -1
  321. package/grid/static/base/isDate.js +1 -1
  322. package/grid/static/base/isEmpty.js +1 -1
  323. package/grid/static/base/isEqual.js +1 -1
  324. package/grid/static/base/isFunction.js +1 -1
  325. package/grid/static/base/isNaN.js +1 -1
  326. package/grid/static/base/isNull.js +1 -1
  327. package/grid/static/base/isNumber.js +1 -1
  328. package/grid/static/base/isObject.js +1 -1
  329. package/grid/static/base/isPlainObject.js +1 -1
  330. package/grid/static/base/isRegExp.js +1 -1
  331. package/grid/static/base/isSet.js +1 -1
  332. package/grid/static/base/isString.js +1 -1
  333. package/grid/static/base/isUndefined.js +1 -1
  334. package/grid/static/base/keys.js +1 -1
  335. package/grid/static/base/lastEach.js +1 -1
  336. package/grid/static/base/remove.js +1 -1
  337. package/grid/static/base/set.js +1 -1
  338. package/grid/static/base/toJSONString.js +1 -1
  339. package/grid/static/base/toStringJSON.js +1 -1
  340. package/grid/static/base/uniqueId.js +1 -1
  341. package/grid/static/browse/browse.js +1 -1
  342. package/grid/static/function/property.js +1 -1
  343. package/grid/static/function/throttle.js +1 -1
  344. package/grid/static/index.js +1 -1
  345. package/grid/static/number/helperCreateToNumber.js +1 -1
  346. package/grid/static/number/toNumber.js +1 -1
  347. package/grid/static/object/assign.js +1 -1
  348. package/grid/static/object/extend.js +1 -1
  349. package/grid/static/object/lastObjectEach.js +1 -1
  350. package/grid/static/object/objectEach.js +1 -1
  351. package/grid/static/object/objectMap.js +1 -1
  352. package/grid/static/object/values.js +1 -1
  353. package/grid/static/static/staticDocument.js +1 -1
  354. package/grid/static/static/staticHGKeyRE.js +1 -1
  355. package/grid/static/static/staticParseInt.js +1 -1
  356. package/grid/static/static/staticStrUndefined.js +1 -1
  357. package/grid/static/static/staticWindow.js +1 -1
  358. package/grid/static/string/template.js +1 -1
  359. package/grid/static/string/toString.js +1 -1
  360. package/grid/utils/column.js +1 -1
  361. package/grid/utils/common.js +1 -1
  362. package/grid/utils/dom.js +3 -2
  363. package/grid/utils/event.js +1 -1
  364. package/grid/utils/index.js +1 -1
  365. package/guide/index.js +4 -3
  366. package/guide/vue.js +1 -1
  367. package/hrapprover/index.js +1 -1
  368. package/hrapprover/vue.js +1 -1
  369. package/image/index.js +6 -3
  370. package/image/vue.js +19 -3
  371. package/image-viewer/index.js +327 -42
  372. package/image-viewer/vue.js +64 -19
  373. package/index-bar/index.js +1 -2
  374. package/index-bar/vue.js +1 -1
  375. package/index-bar-anchor/vue.js +1 -1
  376. package/input/index.js +19 -6
  377. package/input/vue.js +43 -5
  378. package/ip-address/index.js +1 -1
  379. package/ip-address/vue.js +1 -1
  380. package/layout/vue.js +1 -1
  381. package/link/index.js +1 -1
  382. package/link/vue.js +1 -1
  383. package/link-menu/index.js +1 -1
  384. package/link-menu/vue.js +1 -1
  385. package/list/index.js +1 -1
  386. package/list/vue.js +1 -1
  387. package/loading/index.js +1 -1
  388. package/loading/vue.js +1 -1
  389. package/locales/index.js +2 -2
  390. package/locales/vue.js +1 -1
  391. package/logon-user/index.js +1 -1
  392. package/logon-user/vue.js +1 -1
  393. package/logout/index.js +1 -1
  394. package/logout/vue.js +1 -1
  395. package/milestone/index.js +3 -3
  396. package/milestone/vue.js +4 -4
  397. package/mini-picker/index.js +1 -1
  398. package/mini-picker/vue.js +1 -1
  399. package/modal/index.js +210 -107
  400. package/modal/vue.js +10 -7
  401. package/month-range/index.js +2 -2
  402. package/month-range/vue.js +3 -3
  403. package/month-table/index.js +3 -3
  404. package/month-table/vue.js +1 -1
  405. package/multi-select/index.js +1 -1
  406. package/multi-select/vue.js +1 -1
  407. package/nav-menu/index.js +103 -20
  408. package/nav-menu/vue.js +19 -9
  409. package/notify/index.js +1 -1
  410. package/notify/vue.js +1 -1
  411. package/numeric/index.js +28 -5
  412. package/numeric/vue.js +21 -11
  413. package/option/index.js +1 -1
  414. package/option/vue.js +1 -1
  415. package/option-group/index.js +1 -1
  416. package/option-group/vue.js +1 -1
  417. package/package.json +5 -4
  418. package/pager/vue.js +1 -1
  419. package/pager-item/index.js +1 -1
  420. package/pager-item/vue.js +1 -1
  421. package/panel/index.js +1 -1
  422. package/panel/vue.js +1 -1
  423. package/picker/index.js +8 -19
  424. package/picker/timezone.js +1 -1
  425. package/picker/vue.js +25 -30
  426. package/picker-column/index.js +1 -1
  427. package/picker-column/vue.js +1 -1
  428. package/pop-upload/index.js +1 -1
  429. package/pop-upload/vue.js +1 -1
  430. package/popconfirm/index.js +1 -1
  431. package/popconfirm/vue.js +1 -1
  432. package/popeditor/index.js +4 -1
  433. package/popeditor/vue.js +1 -1
  434. package/popover/index.js +21 -9
  435. package/popover/vue.js +49 -9
  436. package/popup/index.js +1 -1
  437. package/popup/vue.js +1 -1
  438. package/progress/index.js +1 -1
  439. package/progress/vue.js +1 -1
  440. package/pull-refresh/index.js +1 -3
  441. package/pull-refresh/vue.js +1 -1
  442. package/query-builder/index.js +1 -1
  443. package/query-builder/vue.js +1 -1
  444. package/radio/index.js +29 -6
  445. package/radio/vue.js +2 -2
  446. package/radio-button/index.js +26 -12
  447. package/radio-button/vue.js +14 -6
  448. package/radio-group/index.js +3 -3
  449. package/radio-group/vue.js +2 -2
  450. package/rate/index.js +1 -1
  451. package/rate/vue.js +1 -1
  452. package/record/index.js +1 -1
  453. package/record/vue.js +1 -1
  454. package/recycle-scroller/index.js +2 -1
  455. package/recycle-scroller/vue.js +1 -1
  456. package/rich-text-edtior/index.js +254 -0
  457. package/rich-text-edtior/vue.js +320 -0
  458. package/river/index.js +1 -1
  459. package/river/river.js +1 -1
  460. package/river/vue.js +1 -1
  461. package/roles/index.js +1 -1
  462. package/roles/vue.js +1 -1
  463. package/row/index.js +1 -1
  464. package/row/vue.js +1 -1
  465. package/scroll-text/index.js +1 -1
  466. package/scroll-text/vue.js +1 -1
  467. package/scrollbar/index.js +1 -1
  468. package/scrollbar/vue-bar.js +1 -1
  469. package/scrollbar/vue.js +1 -1
  470. package/search/index.js +12 -9
  471. package/search/vue.js +7 -7
  472. package/select/index.js +42 -22
  473. package/select/vue.js +7 -4
  474. package/select-dropdown/index.js +3 -3
  475. package/select-dropdown/vue.js +1 -1
  476. package/select-mobile/index.js +1 -1
  477. package/select-mobile/vue.js +1 -1
  478. package/select-view/index.js +1 -1
  479. package/select-view/vue.js +1 -1
  480. package/selected-box/index.js +1 -1
  481. package/selected-box/vue.js +1 -1
  482. package/slide-bar/index.js +1 -1
  483. package/slide-bar/vue.js +1 -1
  484. package/slider/index.js +36 -13
  485. package/slider/vue.js +5 -2
  486. package/slider-button/index.js +1 -1
  487. package/slider-button/vue.js +1 -1
  488. package/slider-button-group/slide-button.js +1 -1
  489. package/slider-button-group/vue.js +1 -1
  490. package/split/index.js +65 -22
  491. package/split/vue.js +48 -41
  492. package/standard-list-item/index.js +1 -1
  493. package/standard-list-item/vue.js +1 -1
  494. package/steps/index.js +1 -1
  495. package/steps/slide-bar.js +2 -1
  496. package/steps/vue.js +3 -2
  497. package/switch/index.js +4 -10
  498. package/switch/vue.js +4 -6
  499. package/tab-bar/index.js +33 -31
  500. package/tab-bar/vue.js +1 -1
  501. package/tab-dropdown/index.js +1 -1
  502. package/tab-dropdown/vue.js +1 -1
  503. package/tab-item/index.js +1 -1
  504. package/tab-item/vue.js +1 -1
  505. package/tab-item-mf/vue.js +1 -1
  506. package/tab-nav/index.js +19 -8
  507. package/tab-nav/vue.js +3 -2
  508. package/tabbar/index.js +36 -3
  509. package/tabbar/vue.js +34 -9
  510. package/tabbar-item/index.js +11 -6
  511. package/tabbar-item/vue.js +13 -8
  512. package/table/index.js +1 -1
  513. package/table/vue.js +1 -1
  514. package/tabs/index.js +22 -8
  515. package/tabs/vue.js +9 -2
  516. package/tabs-mf/index.js +1 -1
  517. package/tabs-mf/vue-bar.js +1 -1
  518. package/tabs-mf/vue-nav-item.js +1 -1
  519. package/tabs-mf/vue-nav.js +1 -1
  520. package/tabs-mf/vue.js +1 -1
  521. package/tabs-mf/wheel.js +1 -1
  522. package/tag/index.js +2 -2
  523. package/tag/vue.js +1 -1
  524. package/tag-group/index.js +1 -1
  525. package/tag-group/vue.js +1 -1
  526. package/tall-storage/index.js +1 -1
  527. package/tall-storage/vue-storage-box.js +1 -1
  528. package/tall-storage/vue.js +1 -1
  529. package/text-popup/index.js +1 -1
  530. package/text-popup/vue.js +1 -1
  531. package/time/index.js +2 -2
  532. package/time/vue.js +4 -4
  533. package/time-line/index.js +2 -2
  534. package/time-line/vue.js +5 -4
  535. package/time-panel/index.js +1 -1
  536. package/time-panel/scrollIntoView.js +1 -1
  537. package/time-panel/vue.js +1 -1
  538. package/time-picker-mobile/index.js +1 -1
  539. package/time-picker-mobile/vue.js +1 -1
  540. package/time-range/index.js +5 -5
  541. package/time-range/vue.js +4 -4
  542. package/time-spinner/index.js +1 -1
  543. package/time-spinner/vue.js +3 -3
  544. package/timeline-item/index.js +14 -15
  545. package/timeline-item/vue.js +7 -6
  546. package/toggle-menu/index.js +1 -1
  547. package/toggle-menu/vue.js +2 -1
  548. package/tooltip/index.js +6 -11
  549. package/tooltip/vue.js +5 -10
  550. package/top-box/index.js +1 -1
  551. package/top-box/vue.js +1 -1
  552. package/transfer/index.js +1 -1
  553. package/transfer/vue.js +1 -1
  554. package/transfer-panel/index.js +1 -1
  555. package/transfer-panel/vue.js +1 -1
  556. package/tree/index.js +2 -1
  557. package/tree/vue.js +1 -1
  558. package/tree-menu/index.js +6 -6
  559. package/tree-menu/vue.js +3 -3
  560. package/tree-node/index.js +5 -3
  561. package/tree-node/vue.js +6 -6
  562. package/types/action-menu.type.d.mts +88 -0
  563. package/types/action-sheet.type.d.mts +2 -0
  564. package/types/alert.type.d.mts +112 -0
  565. package/types/amount.type.d.mts +2 -0
  566. package/types/anchor.type.d.mts +87 -0
  567. package/types/area.type.d.mts +2 -0
  568. package/types/autocomplete.type.d.mts +2 -0
  569. package/types/autonavi-map.type.d.mts +2 -0
  570. package/types/avatar.type.d.mts +2 -0
  571. package/types/badge.type.d.mts +82 -0
  572. package/types/baidu-map.type.d.mts +2 -0
  573. package/types/breadcrumb-item.type.d.mts +31 -0
  574. package/types/breadcrumb.type.d.mts +57 -0
  575. package/types/bulletin-board.type.d.mts +2 -0
  576. package/types/button-group.type.d.mts +87 -0
  577. package/types/button.type.d.mts +90 -0
  578. package/types/calendar-bar.type.d.mts +2 -0
  579. package/types/calendar.type.d.mts +2 -0
  580. package/types/card-group.type.d.mts +2 -0
  581. package/types/card-template.type.d.mts +2 -0
  582. package/types/card.type.d.mts +2 -0
  583. package/types/carousel-item.type.d.mts +2 -0
  584. package/types/carousel.type.d.mts +2 -0
  585. package/types/cascader-menu.type.d.mts +49 -0
  586. package/types/cascader-mobile.type.d.mts +2 -0
  587. package/types/cascader-node.type.d.mts +53 -0
  588. package/types/cascader-panel.type.d.mts +241 -0
  589. package/types/cascader-select.type.d.mts +2 -0
  590. package/types/cascader.type.d.mts +2 -0
  591. package/types/cell.type.d.mts +2 -0
  592. package/types/chart-bar.type.d.mts +2 -0
  593. package/types/chart-boxplot.type.d.mts +2 -0
  594. package/types/chart-candle.type.d.mts +2 -0
  595. package/types/chart-core.type.d.mts +2 -0
  596. package/types/chart-funnel.type.d.mts +2 -0
  597. package/types/chart-gauge.type.d.mts +2 -0
  598. package/types/chart-graph.type.d.mts +2 -0
  599. package/types/chart-heatmap.type.d.mts +2 -0
  600. package/types/chart-line.type.d.mts +2 -0
  601. package/types/chart-liquidfill.type.d.mts +2 -0
  602. package/types/chart-map.type.d.mts +2 -0
  603. package/types/chart-pie.type.d.mts +2 -0
  604. package/types/chart-radar.type.d.mts +2 -0
  605. package/types/chart-sankey.type.d.mts +2 -0
  606. package/types/chart-scatter.type.d.mts +2 -0
  607. package/types/chart-sunburst.type.d.mts +2 -0
  608. package/types/chart-tree.type.d.mts +2 -0
  609. package/types/chart-waterfall.type.d.mts +2 -0
  610. package/types/chart-wordcloud.type.d.mts +2 -0
  611. package/types/checkbox-button.type.d.mts +2 -0
  612. package/types/checkbox-group.type.d.mts +2 -0
  613. package/types/checkbox.type.d.mts +154 -0
  614. package/types/col.type.d.mts +2 -0
  615. package/types/collapse-item.type.d.mts +60 -0
  616. package/types/collapse.type.d.mts +56 -0
  617. package/types/color-picker.type.d.mts +5 -0
  618. package/types/color-select-panel.type.d.mts +5 -0
  619. package/types/column-list-group.type.d.mts +2 -0
  620. package/types/column-list-item.type.d.mts +2 -0
  621. package/types/common.type.d.mts +2 -0
  622. package/types/company.type.d.mts +2 -0
  623. package/types/container.type.d.mts +2 -0
  624. package/types/country.type.d.mts +2 -0
  625. package/types/credit-card-form.type.d.mts +2 -0
  626. package/types/credit-card.type.d.mts +2 -0
  627. package/types/crop.type.d.mts +2 -0
  628. package/types/currency.type.d.mts +2 -0
  629. package/types/date-panel.type.d.mts +2 -0
  630. package/types/date-picker-mobile.type.d.mts +2 -0
  631. package/types/date-picker.type.d.mts +212 -0
  632. package/types/date-range.type.d.mts +2 -0
  633. package/types/date-table.type.d.mts +138 -0
  634. package/types/dept.type.d.mts +2 -0
  635. package/types/detail-page.type.d.mts +2 -0
  636. package/types/dialog-box.type.d.mts +250 -0
  637. package/types/dialog-select.type.d.mts +2 -0
  638. package/types/drawer.type.d.mts +2 -0
  639. package/types/drop-roles.type.d.mts +2 -0
  640. package/types/drop-times.type.d.mts +2 -0
  641. package/types/dropdown-item.type-e59174b8.d.ts +336 -0
  642. package/types/dropdown-item.type.d.mts +4 -0
  643. package/types/dropdown-menu.type.d.mts +4 -0
  644. package/types/dropdown.type.d.mts +142 -0
  645. package/types/dynamic-scroller-item.type.d.mts +2 -0
  646. package/types/dynamic-scroller.type.d.mts +2 -0
  647. package/types/espace.type.d.mts +2 -0
  648. package/types/exception.type.d.mts +2 -0
  649. package/types/fall-menu.type.d.mts +2 -0
  650. package/types/file-upload.type.d.mts +3 -0
  651. package/types/filter-bar.type.d.mts +2 -0
  652. package/types/filter-box.type.d.mts +2 -0
  653. package/types/filter-panel.type.d.mts +2 -0
  654. package/types/filter.type.d.mts +2 -0
  655. package/types/floatbar.type.d.mts +45 -0
  656. package/types/floating-button.type.d.mts +2 -0
  657. package/types/flowchart.type.d.mts +2 -0
  658. package/types/form-item.type.d.mts +3 -0
  659. package/types/form.type-004ecf93.d.ts +394 -0
  660. package/types/form.type.d.mts +3 -0
  661. package/types/fullscreen.type.d.mts +2 -0
  662. package/types/grid.type.d.mts +2 -0
  663. package/types/guide.type.d.mts +2 -0
  664. package/types/hrapprover.type.d.mts +2 -0
  665. package/types/image-viewer.type.d.mts +2 -0
  666. package/types/image.type.d.mts +176 -0
  667. package/types/index-bar-anchor.type.d.mts +2 -0
  668. package/types/index-bar.type.d.mts +2 -0
  669. package/types/index-e0250f63.d.ts +43 -0
  670. package/types/input.type.d.mts +294 -0
  671. package/types/ip-address.type.d.mts +2 -0
  672. package/types/layout.type.d.mts +2 -0
  673. package/types/link-menu.type.d.mts +2 -0
  674. package/types/link.type.d.mts +40 -0
  675. package/types/list.type.d.mts +2 -0
  676. package/types/loading.type.d.mts +90 -0
  677. package/types/locales.type.d.mts +2 -0
  678. package/types/logon-user.type.d.mts +2 -0
  679. package/types/logout.type.d.mts +2 -0
  680. package/types/milestone.type.d.mts +144 -0
  681. package/types/mini-picker.type.d.mts +2 -0
  682. package/types/modal.type.d.mts +264 -0
  683. package/types/month-range.type.d.mts +2 -0
  684. package/types/month-table.type.d.mts +2 -0
  685. package/types/multi-select.type.d.mts +2 -0
  686. package/types/nav-menu.type.d.mts +124 -0
  687. package/types/notify.type.d.mts +2 -0
  688. package/types/numeric.type.d.mts +275 -0
  689. package/types/option-group.type.d.mts +2 -0
  690. package/types/option.type.d.mts +2 -0
  691. package/types/pager-item.type.d.mts +2 -0
  692. package/types/pager.type.d.mts +2 -0
  693. package/types/panel.type.d.mts +2 -0
  694. package/types/picker-column.type.d.mts +2 -0
  695. package/types/picker.type.d.mts +191 -0
  696. package/types/pop-upload.type.d.mts +2 -0
  697. package/types/popconfirm.type.d.mts +2 -0
  698. package/types/popeditor.type.d.mts +275 -0
  699. package/types/popover.type.d.mts +164 -0
  700. package/types/popup.type.d.mts +2 -0
  701. package/types/progress.type.d.mts +216 -0
  702. package/types/pull-refresh.type.d.mts +2 -0
  703. package/types/query-builder.type.d.mts +2 -0
  704. package/types/radio-button.type.d.mts +90 -0
  705. package/types/radio-group.type.d.mts +67 -0
  706. package/types/radio.type.d.mts +103 -0
  707. package/types/rate.type.d.mts +2 -0
  708. package/types/record.type.d.mts +2 -0
  709. package/types/recycle-scroller.type.d.mts +2 -0
  710. package/types/river.type.d.mts +2 -0
  711. package/types/roles.type.d.mts +2 -0
  712. package/types/row.type.d.mts +2 -0
  713. package/types/scroll-text.type.d.mts +2 -0
  714. package/types/scrollbar.type.d.mts +2 -0
  715. package/types/search.type.d.mts +40 -0
  716. package/types/select-dropdown.type.d.mts +2 -0
  717. package/types/select-mobile.type.d.mts +2 -0
  718. package/types/select-view.type.d.mts +2 -0
  719. package/types/select.type.d.mts +2 -0
  720. package/types/selected-box.type.d.mts +2 -0
  721. package/types/shared.type.d.mts +178 -0
  722. package/types/slide-bar.type.d.mts +2 -0
  723. package/types/slider-button-group.type.d.mts +2 -0
  724. package/types/slider-button.type.d.mts +2 -0
  725. package/types/slider.type.d.mts +199 -0
  726. package/types/split.type.d.mts +2 -0
  727. package/types/standard-list-item.type.d.mts +2 -0
  728. package/types/steps.type.d.mts +78 -0
  729. package/types/switch.type.d.mts +113 -0
  730. package/types/tab-bar.type.d.mts +42 -0
  731. package/types/tab-dropdown.type.d.mts +2 -0
  732. package/types/tab-item-mf.type.d.mts +2 -0
  733. package/types/tab-item.type.d.mts +71 -0
  734. package/types/tab-nav.type.d.mts +106 -0
  735. package/types/tabbar-item.type.d.mts +2 -0
  736. package/types/tabbar.type.d.mts +2 -0
  737. package/types/table.type.d.mts +2 -0
  738. package/types/tabs-mf.type.d.mts +2 -0
  739. package/types/tabs.type.d.mts +148 -0
  740. package/types/tag-group.type.d.mts +2 -0
  741. package/types/tag.type.d.mts +51 -0
  742. package/types/tall-storage.type.d.mts +2 -0
  743. package/types/text-popup.type.d.mts +2 -0
  744. package/types/time-line.type-4a01d597.d.ts +280 -0
  745. package/types/time-line.type.d.mts +3 -0
  746. package/types/time-panel.type.d.mts +2 -0
  747. package/types/time-picker-mobile.type.d.mts +2 -0
  748. package/types/time-range.type.d.mts +2 -0
  749. package/types/time-spinner.type.d.mts +2 -0
  750. package/types/time.type.d.mts +2 -0
  751. package/types/timeline-item.type.d.mts +3 -0
  752. package/types/toggle-menu.type.d.mts +2 -0
  753. package/types/tooltip.type.d.mts +189 -0
  754. package/types/top-box.type.d.mts +2 -0
  755. package/types/transfer-panel.type.d.mts +2 -0
  756. package/types/transfer.type.d.mts +2 -0
  757. package/types/tree-menu.type.d.mts +2 -0
  758. package/types/tree-node.type.d.mts +2 -0
  759. package/types/tree.type.d.mts +2 -0
  760. package/types/upload-dragger.type.d.mts +50 -0
  761. package/types/upload-list.type-aa21a42e.d.ts +1130 -0
  762. package/types/upload-list.type.d.mts +3 -0
  763. package/types/upload.type.d.mts +3 -0
  764. package/types/user-account.type.d.mts +2 -0
  765. package/types/user-contact.type.d.mts +2 -0
  766. package/types/user-head-group.type.d.mts +2 -0
  767. package/types/user-head.type.d.mts +2 -0
  768. package/types/user-link.type.d.mts +2 -0
  769. package/types/user.type.d.mts +2 -0
  770. package/types/wheel.type.d.mts +2 -0
  771. package/types/wizard.type.d.mts +95 -0
  772. package/types/year-range.type.d.mts +2 -0
  773. package/types/year-table.type.d.mts +2 -0
  774. package/upload/index.js +103 -25
  775. package/upload/vue.js +4 -1
  776. package/upload-dragger/index.js +3 -2
  777. package/upload-dragger/vue.js +1 -1
  778. package/upload-list/index.js +7 -5
  779. package/upload-list/vue.js +3 -2
  780. package/user/index.js +5 -3
  781. package/user/vue.js +2 -2
  782. package/user-account/index.js +1 -1
  783. package/user-account/vue.js +1 -1
  784. package/user-contact/index.js +1 -1
  785. package/user-contact/vue.js +1 -1
  786. package/user-head/index.js +26 -31
  787. package/user-head/vue.js +16 -13
  788. package/user-head-group/index.js +20 -0
  789. package/user-head-group/vue.js +18 -5
  790. package/user-link/index.js +1 -1
  791. package/user-link/vue.js +1 -1
  792. package/wheel/index.js +1 -1
  793. package/wheel/vue.js +1 -1
  794. package/wizard/index.js +1 -1
  795. package/wizard/vue.js +1 -2
  796. package/year-range/index.js +2 -2
  797. package/year-range/vue.js +4 -4
  798. package/year-table/index.js +3 -3
  799. package/year-table/vue.js +1 -1
  800. /package/{chunk-PKUHTIDK.js → chunk-G2ADBYYC.js} +0 -0
@@ -1,10 +1,9 @@
1
1
  import {
2
2
  __spreadValues
3
- } from "../../chunk-PKUHTIDK.js";
3
+ } from "../../chunk-G2ADBYYC.js";
4
4
  import { on, off } from "./dom";
5
5
  import PopupManager from "./popup-manager";
6
6
  import { typeOf } from "../type";
7
- import { xss } from "../xss";
8
7
  const positions = ["left", "right", "top", "bottom"];
9
8
  const modifiers = ["shift", "offset", "preventOverflow", "keepTogether", "arrow", "flip", "applyStyle"];
10
9
  const DEFAULTS = {
@@ -13,16 +12,16 @@ const DEFAULTS = {
13
12
  boundariesElement: "viewport",
14
13
  boundariesPadding: 5,
15
14
  flipBehavior: "flip",
15
+ // 全局没有修改过它,所以它一直是flip
16
16
  forceAbsolute: false,
17
17
  gpuAcceleration: true,
18
+ // 这个用不到了,默认使用tranform3d
18
19
  offset: 0,
19
20
  placement: "bottom",
20
21
  preventOverflowOrder: positions,
21
- modifiers,
22
- modifiersIgnored: []
22
+ modifiers
23
+ // 此处是string数组, 构造函数调用之后转为函数数组
23
24
  };
24
- const getRealWindow = () => window.tinyGetRealWindow ? window.tinyGetRealWindow() : window;
25
- const getRealElement = (el) => el.jquery ? el[0] : el;
26
25
  const setStyle = (el, styles) => {
27
26
  const isNumeric = (n) => n !== "" && !isNaN(parseFloat(n)) && isFinite(n);
28
27
  Object.keys(styles).forEach((prop) => {
@@ -33,28 +32,6 @@ const setStyle = (el, styles) => {
33
32
  el.style[prop] = styles[prop] + unit;
34
33
  });
35
34
  };
36
- const getSupportedPropertyName = (property) => {
37
- let prefixes = ["", "ms", "webkit", "moz", "o"];
38
- let bodyEl = window.document.body;
39
- for (let i = 0; i < prefixes.length; i++) {
40
- let toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;
41
- if (typeof bodyEl.style[toCheck] !== "undefined") {
42
- return toCheck;
43
- }
44
- }
45
- return null;
46
- };
47
- const addClassNames = (el, classNames) => {
48
- classNames.forEach((className) => {
49
- el.classList.add(className);
50
- });
51
- };
52
- const addAttributes = (el, attributes) => {
53
- attributes.forEach((attribute) => {
54
- const attrs = attribute.split(":");
55
- el.setAttribute(attrs[0], attrs[1] || "");
56
- });
57
- };
58
35
  const getOffsetParent = (el) => {
59
36
  let offsetParent = el.offsetParent;
60
37
  return offsetParent === window.document.body || !offsetParent ? window.document.documentElement : offsetParent;
@@ -76,16 +53,14 @@ const isFixed = (el) => {
76
53
  return el.parentNode ? isFixed(el.parentNode) : false;
77
54
  };
78
55
  const getBoundingClientRect = (el) => {
79
- let rectObj = el.getBoundingClientRect();
80
- let isIE = navigator.userAgent.includes("MSIE");
81
- let rectTop = isIE && el.tagName === "HTML" ? -el.scrollTop : rectObj.top;
56
+ let rect = el.getBoundingClientRect();
82
57
  return {
83
- left: rectObj.left,
84
- top: rectTop,
85
- right: rectObj.right,
86
- bottom: rectObj.bottom,
87
- width: rectObj.right - rectObj.left,
88
- height: rectObj.bottom - rectTop
58
+ left: rect.left,
59
+ top: rect.top,
60
+ right: rect.right,
61
+ bottom: rect.bottom,
62
+ width: rect.right - rect.left,
63
+ height: rect.bottom - rect.top
89
64
  };
90
65
  };
91
66
  const isScrollElement = (el) => {
@@ -106,7 +81,7 @@ const getScrollParent = (el) => {
106
81
  if (isScrollElement(parent)) {
107
82
  return parent;
108
83
  }
109
- return getScrollParent(el.parentNode);
84
+ return getScrollParent(parent);
110
85
  };
111
86
  const getOffsetRectRelativeToCustomParent = (el, parent, fixed) => {
112
87
  let { top, left, width, height } = getBoundingClientRect(el);
@@ -161,16 +136,6 @@ const getPopperClientRect = (popperOffsets) => {
161
136
  offsets.bottom = offsets.top + offsets.height;
162
137
  return offsets;
163
138
  };
164
- const getArrayKeyIndex = (arr, keyToFind) => {
165
- let i = 0;
166
- for (let value of arr) {
167
- if (value === keyToFind) {
168
- return i;
169
- }
170
- i++;
171
- }
172
- return null;
173
- };
174
139
  const getAllScrollParents = (el, parents = []) => {
175
140
  const parent = el.parentNode;
176
141
  if (parent) {
@@ -183,446 +148,376 @@ const getAllScrollParents = (el, parents = []) => {
183
148
  return parents;
184
149
  };
185
150
  const getOffsetRect = (el) => {
186
- let elementRect = {
151
+ const elementRect = {
187
152
  width: el.offsetWidth,
188
153
  height: el.offsetHeight,
189
154
  left: el.offsetLeft,
190
- top: el.offsetTop
155
+ top: el.offsetTop,
156
+ right: 0,
157
+ bottom: 0
191
158
  };
192
159
  elementRect.right = elementRect.left + elementRect.width;
193
160
  elementRect.bottom = elementRect.top + elementRect.height;
194
161
  return elementRect;
195
162
  };
196
- function Popper(reference, popper, options) {
197
- this._reference = getRealElement(reference);
198
- this.state = {};
199
- let isNotDefined = typeof popper === "undefined" || popper === null;
200
- let isConfig = popper && Object.prototype.toString.call(popper) === "[object Object]";
201
- if (isNotDefined || isConfig) {
202
- this._popper = this.parse(isConfig ? popper : {});
203
- } else {
204
- this._popper = getRealElement(popper);
205
- }
206
- this._options = __spreadValues(__spreadValues({}, DEFAULTS), options);
207
- this._options.modifiers = this._options.modifiers.map((modifier) => {
208
- if (~this._options.modifiersIgnored.indexOf(modifier)) {
209
- return void 0;
163
+ class Popper {
164
+ constructor(reference, popper, options) {
165
+ this.modifiers = {};
166
+ /** 每次update, 计算popper的大小并缓存 */
167
+ this.popperOuterSize = null;
168
+ this._reference = reference;
169
+ this._popper = popper;
170
+ this.state = {};
171
+ this._options = __spreadValues(__spreadValues({}, DEFAULTS), options);
172
+ this._options.modifierFns = modifiers.map((modifier) => {
173
+ return this[modifier];
174
+ });
175
+ this._popper.setAttribute("x-placement", this._options.placement);
176
+ this.state.position = this._getPopperPositionByRefernce(this._reference);
177
+ setStyle(this._popper, { position: this.state.position, top: 0 });
178
+ this.update();
179
+ this._setupEventListeners();
180
+ }
181
+ destroy() {
182
+ this._popper.removeAttribute("x-placement");
183
+ this._popper.style.display = "none";
184
+ this._removeEventListeners();
185
+ this._options.removeOnDestroy && this._popper.remove();
186
+ return this;
187
+ }
188
+ onUpdate(callback) {
189
+ this.state.updateCallback = callback;
190
+ return this;
191
+ }
192
+ update() {
193
+ let data = { instance: this, styles: {} };
194
+ this.popperOuterSize = null;
195
+ data.placement = data._originalPlacement = this._options.placement;
196
+ data.offsets = this._getRefPopOffsets(this._popper, this._reference, data.placement);
197
+ data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);
198
+ data = this.runModifiers(data, this._options.modifierFns);
199
+ typeof this.state.updateCallback === "function" && this.state.updateCallback(data);
200
+ }
201
+ /** 按顺序执行Modifiers, 如果传入终点modifier,则执行到指定位置 */
202
+ runModifiers(data, modifiers2, ends) {
203
+ let modifiersToRun = modifiers2.slice();
204
+ const _options = this._options;
205
+ if (ends !== void 0) {
206
+ modifiersToRun = this._options.modifierFns.slice(
207
+ 0,
208
+ _options.modifierFns.findIndex((m) => m == ends)
209
+ );
210
210
  }
211
- if (modifier === "applyStyle") {
212
- this._popper.setAttribute("x-placement", this._options.placement);
213
- }
214
- return this.modifiers[modifier] || modifier;
215
- });
216
- this.state.position = this._getPosition(this._popper, this._reference);
217
- setStyle(this._popper, { position: this.state.position, top: 0 });
218
- this.update();
219
- this._setupEventListeners();
220
- this._oldreference = this._reference;
221
- this._oldreference._popper = this._popper.style || {};
222
- return this;
223
- }
224
- Popper.prototype.destroy = function() {
225
- this._popper.removeAttribute("x-placement");
226
- const popperStyle = this._reference === this._oldreference && this._oldreference._popper || {};
227
- this._popper.style.display = "none";
228
- this._popper.style.position = "";
229
- this._popper.style.top = popperStyle.top || "";
230
- this._popper.style.left = popperStyle.left || "";
231
- this._popper.style[getSupportedPropertyName("transform")] = "";
232
- this._removeEventListeners();
233
- this._options.removeOnDestroy && this._popper.remove();
234
- return this;
235
- };
236
- Popper.prototype.onCreate = function(callback) {
237
- callback(this);
238
- return this;
239
- };
240
- Popper.prototype.onUpdate = function(callback) {
241
- this.state.updateCallback = callback;
242
- return this;
243
- };
244
- Popper.prototype.update = function() {
245
- let data = { instance: this, styles: {} };
246
- this.popperOuterSize = null;
247
- data.placement = data._originalPlacement = this._options.placement;
248
- data.offsets = this._getOffsets(this._popper, this._reference, data.placement);
249
- data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);
250
- data = this.runModifiers(data, this._options.modifiers);
251
- typeof this.state.updateCallback === "function" && this.state.updateCallback(data);
252
- };
253
- Popper.prototype.parse = function(config) {
254
- let defaultConfig = {
255
- attributes: [],
256
- arrowTagName: "div",
257
- arrowClassNames: ["popper__arrow"],
258
- arrowAttributes: ["x-arrow"],
259
- classNames: ["popper"],
260
- content: "",
261
- contentType: "text",
262
- parent: window.document.body,
263
- tagName: "div"
264
- };
265
- config = __spreadValues(__spreadValues({}, defaultConfig), config);
266
- const { tagName, classNames, attributes, contentType, content, arrowTagName } = config;
267
- let docEl = window.document;
268
- let popper = docEl.createElement(tagName);
269
- addClassNames(popper, classNames);
270
- addAttributes(popper, attributes);
271
- if (contentType === "node") {
272
- popper.appendChild(getRealElement(content));
273
- } else if (contentType === "html") {
274
- popper.innerHTML = xss.filterHtml(content);
275
- } else {
276
- popper.textContent = content;
277
- }
278
- if (arrowTagName) {
279
- let arrow = docEl.createElement(arrowTagName);
280
- addClassNames(arrow, config.arrowClassNames);
281
- addAttributes(arrow, config.arrowAttributes);
282
- popper.appendChild(arrow);
211
+ modifiersToRun.forEach((modifier) => {
212
+ if (typeOf(modifier) === "function") {
213
+ data = modifier.call(this, data);
214
+ }
215
+ });
216
+ return data;
283
217
  }
284
- let parent = getRealElement(config.parent);
285
- if (typeof parent === "string") {
286
- parent = docEl.querySelectorAll(config.parent);
287
- if (parent && parent.length) {
288
- parent = parent[0];
289
- } else {
290
- throw new Error("ERROR: the given `parent` does not exists!");
218
+ // 此时才把offsets.popper 赋值给popper dom, offsets.array赋值给array dom
219
+ applyStyle(data) {
220
+ let styles = { position: data.offsets.popper.position };
221
+ let left = Math.round(data.offsets.popper.left);
222
+ let top = Math.round(data.offsets.popper.top);
223
+ styles.transform = `translate3d(${left}px, ${top}px, 0)`;
224
+ Object.assign(styles, { top: 0, left: 0 });
225
+ Object.assign(styles, data.styles);
226
+ setStyle(this._popper, styles);
227
+ this._popper.setAttribute("x-placement", data.placement);
228
+ if (data.offsets.arrow) {
229
+ setStyle(data.arrowElement, data.offsets.arrow);
291
230
  }
231
+ return data;
292
232
  }
293
- if (parent.length > 1 && parent instanceof Element === false) {
294
- parent = parent[0];
233
+ // 判断 placement是不是2段式的,是则处理一下偏移。 修改data.offsets.popper的值
234
+ shift(data) {
235
+ let placement = data.placement;
236
+ let basePlacement = placement.split("-")[0];
237
+ let shiftVariation = placement.split("-")[1];
238
+ if (shiftVariation) {
239
+ let { top, left, height, width } = data.offsets.reference;
240
+ let popper = getPopperClientRect(data.offsets.popper);
241
+ let shiftOffsets = {
242
+ y: {
243
+ start: { top },
244
+ end: { top: top + height - popper.height }
245
+ },
246
+ x: {
247
+ start: { left },
248
+ end: { left: left + width - popper.width }
249
+ }
250
+ };
251
+ let axis = ~["bottom", "top"].indexOf(basePlacement) ? "x" : "y";
252
+ data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);
253
+ }
254
+ return data;
295
255
  }
296
- parent.appendChild(popper);
297
- return popper;
298
- };
299
- Popper.prototype._getPosition = function(popper, reference) {
300
- if (this._options.forceAbsolute) {
301
- return "absolute";
256
+ // 校正popper的位置在boundaries 的内部
257
+ preventOverflow(data) {
258
+ let order = this._options.preventOverflowOrder;
259
+ let popper = getPopperClientRect(data.offsets.popper);
260
+ let check = {
261
+ top: () => {
262
+ let { top } = popper;
263
+ if (top < data.boundaries.top) {
264
+ top = Math.max(top, data.boundaries.top);
265
+ }
266
+ return { top };
267
+ },
268
+ right: () => {
269
+ let { left } = popper;
270
+ if (popper.right > data.boundaries.right) {
271
+ left = Math.min(left, data.boundaries.right - popper.width);
272
+ }
273
+ return { left };
274
+ },
275
+ bottom: () => {
276
+ let { top } = popper;
277
+ if (popper.bottom > data.boundaries.bottom) {
278
+ top = Math.min(top, data.boundaries.bottom - popper.height);
279
+ }
280
+ return { top };
281
+ },
282
+ left: () => {
283
+ let { left } = popper;
284
+ if (popper.left < data.boundaries.left) {
285
+ left = Math.max(left, data.boundaries.left);
286
+ }
287
+ return { left };
288
+ }
289
+ };
290
+ order.forEach((direction) => {
291
+ data.offsets.popper = Object.assign(popper, check[direction]());
292
+ });
293
+ return data;
302
294
  }
303
- let isParentFixed = isFixed(reference);
304
- return isParentFixed ? "fixed" : "absolute";
305
- };
306
- Popper.prototype._getOffsets = function(popper, reference, placement) {
307
- placement = placement.split("-")[0];
308
- let popperOffsets = {};
309
- popperOffsets.position = this.state.position;
310
- let isParentFixed = popperOffsets.position === "fixed";
311
- let referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);
312
- let { width, height } = this.popperOuterSize ? this.popperOuterSize : this.popperOuterSize = getOuterSizes(popper);
313
- if (~["right", "left"].indexOf(placement)) {
314
- popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - height / 2;
315
- if (placement === "left") {
316
- popperOffsets.left = referenceOffsets.left - width;
317
- } else {
318
- popperOffsets.left = referenceOffsets.right;
295
+ // 校正popper的位置在reference的边上。 如果2个分离了,重新调整popper的位置。 可能是担心 modifiers.offset 带来的副作用吧
296
+ keepTogether(data) {
297
+ let popper = getPopperClientRect(data.offsets.popper);
298
+ let reference = data.offsets.reference;
299
+ if (popper.right < Math.floor(reference.left)) {
300
+ data.offsets.popper.left = Math.floor(reference.left) - popper.width;
319
301
  }
320
- } else {
321
- popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - width / 2;
322
- if (placement === "top") {
323
- popperOffsets.top = referenceOffsets.top - height;
324
- } else {
325
- popperOffsets.top = referenceOffsets.bottom;
302
+ if (popper.left > Math.floor(reference.right)) {
303
+ data.offsets.popper.left = Math.floor(reference.right);
326
304
  }
327
- }
328
- popperOffsets.width = width;
329
- popperOffsets.height = height;
330
- return {
331
- popper: popperOffsets,
332
- reference: referenceOffsets
333
- };
334
- };
335
- Popper.prototype._setupEventListeners = function() {
336
- this.state.updateBound = this.update.bind(this);
337
- on(window, "resize", this.state.updateBound);
338
- if (this._options.boundariesElement !== "window") {
339
- let target = getScrollParent(this._reference);
340
- if (target === window.document.body || target === window.document.documentElement) {
341
- target = window;
305
+ if (popper.bottom < Math.floor(reference.top)) {
306
+ data.offsets.popper.top = Math.floor(reference.top) - popper.height;
342
307
  }
343
- this.state.scrollTarget = target;
344
- if (this._options.bubbling || PopupManager.globalScroll) {
345
- let targets = getAllScrollParents(this._reference);
346
- this.state.scrollTargets = targets || [];
347
- targets.forEach((target2) => {
348
- on(target2, "scroll", this.state.updateBound);
349
- });
350
- } else {
351
- on(target, "scroll", this.state.updateBound);
308
+ if (popper.top > Math.floor(reference.bottom)) {
309
+ data.offsets.popper.top = Math.floor(reference.bottom);
352
310
  }
311
+ return data;
353
312
  }
354
- };
355
- Popper.prototype._removeEventListeners = function() {
356
- off(window, "resize", this.state.updateBound);
357
- if (this._options.boundariesElement !== "window" && this.state.scrollTarget) {
358
- off(this.state.scrollTarget, "scroll", this.state.updateBound);
359
- this.state.scrollTarget = null;
360
- if (this._options.bubbling || PopupManager.globalScroll) {
361
- let targets = this.state.scrollTargets || [];
362
- targets.forEach((target) => {
363
- off(target, "scroll", this.state.updateBound);
364
- });
365
- this.state.scrollTargets = null;
313
+ // 根据flip的策略,计算当前应该显示的位置。 空间不够要计算出flip的位置。 可能是担心preventOverflow 时,造成pop, reference会重叠。 重叠了就要flip一下
314
+ flip(data) {
315
+ if (data.flipped && data.placement === data._originalPlacement) {
316
+ return data;
366
317
  }
318
+ const placements = data.placement.split("-");
319
+ let placement = placements[0];
320
+ let placementOpposite = getOppositePlacement(placement);
321
+ let variation = placements[1] || "";
322
+ let flipOrderArr = [placement, placementOpposite];
323
+ flipOrderArr.forEach((step, index) => {
324
+ if (placement !== step || flipOrderArr.length === index + 1) {
325
+ return;
326
+ }
327
+ placement = data.placement.split("-")[0];
328
+ placementOpposite = getOppositePlacement(placement);
329
+ let popperOffsets = getPopperClientRect(data.offsets.popper);
330
+ let a = ~["right", "bottom"].indexOf(placement);
331
+ let p = Math.floor(data.offsets.reference[placement]);
332
+ let po = Math.floor(popperOffsets[placementOpposite]);
333
+ if (a && p > po || !a && p < po) {
334
+ data.flipped = true;
335
+ data.placement = flipOrderArr[index + 1];
336
+ if (variation) {
337
+ data.placement += `-${variation}`;
338
+ }
339
+ data.offsets.popper = this._getRefPopOffsets(this._popper, this._reference, data.placement).popper;
340
+ data = this.runModifiers(data, this._options.modifierFns, this.flip);
341
+ }
342
+ });
343
+ return data;
367
344
  }
368
- this.state.updateBound = null;
369
- };
370
- Popper.prototype._getBoundaries = function(data, padding, boundariesElement) {
371
- let boundaries = {};
372
- if (boundariesElement === "window") {
373
- let body = window.document.body;
374
- let html = window.document.documentElement;
375
- let { width, height } = getMaxWH(body, html);
376
- boundaries = { top: 0, right: width, bottom: height, left: 0 };
377
- } else if (boundariesElement === "viewport") {
378
- let offsetParent = getOffsetParent(this._popper);
379
- let scrollParent = getScrollParent(this._popper);
380
- let offsetParentRect = getOffsetRect(offsetParent);
381
- let isFixed2 = data.offsets.popper.position === "fixed";
382
- let scrollTop = isFixed2 ? 0 : getScrollTopValue(scrollParent);
383
- let scrollLeft = isFixed2 ? 0 : getScrollLeftValue(scrollParent);
384
- const viewportWindow = getRealWindow();
385
- boundaries = {
386
- top: 0 - (offsetParentRect.top - scrollTop),
387
- right: viewportWindow.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),
388
- bottom: viewportWindow.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),
389
- left: 0 - (offsetParentRect.left - scrollLeft)
390
- };
391
- } else {
392
- if (getOffsetParent(this._popper) === boundariesElement) {
393
- const { clientWidth, clientHeight } = boundariesElement;
394
- boundaries = {
395
- right: clientWidth,
396
- bottom: clientHeight,
397
- top: 0,
398
- left: 0
399
- };
400
- } else {
401
- boundaries = getOffsetRect(boundariesElement);
345
+ // 根据入参option上的offset, 给data.offset.popper进行校正
346
+ offset(data) {
347
+ let offset = this._options.offset;
348
+ let popper = data.offsets.popper;
349
+ if (~data.placement.indexOf("left")) {
350
+ popper.top -= offset;
351
+ } else if (~data.placement.indexOf("right")) {
352
+ popper.top += offset;
353
+ } else if (~data.placement.indexOf("top")) {
354
+ popper.left -= offset;
355
+ } else if (~data.placement.indexOf("bottom")) {
356
+ popper.left += offset;
402
357
  }
358
+ return data;
403
359
  }
404
- boundaries.right -= padding;
405
- boundaries.left += padding;
406
- boundaries.bottom = boundaries.bottom - padding;
407
- boundaries.top = boundaries.top + padding;
408
- return boundaries;
409
- };
410
- Popper.prototype.isModifierRequired = function(requesting, requested) {
411
- let index = getArrayKeyIndex(this._options.modifiers, requesting);
412
- return !!this._options.modifiers.slice(0, index).filter((modifier) => modifier === requested).length;
413
- };
414
- Popper.prototype.runModifiers = function(data, modifiers2, ends) {
415
- let modifiersToRun = modifiers2.slice();
416
- const _options = this._options;
417
- if (ends !== void 0) {
418
- modifiersToRun = _options.modifiers.slice(0, getArrayKeyIndex(_options.modifiers, ends));
419
- }
420
- modifiersToRun.forEach((modifier) => {
421
- if (typeOf(modifier) === "function") {
422
- data = modifier.call(this, data);
360
+ // 计算arrow的位置,保存在data.offsets.arrow ={top,left}
361
+ arrow(data) {
362
+ let arrow = this._options.arrowElement;
363
+ let arrowOffset = this._options.arrowOffset;
364
+ if (typeof arrow === "string") {
365
+ arrow = this._popper.querySelector(arrow);
423
366
  }
424
- });
425
- return data;
426
- };
427
- Popper.prototype.modifiers = {};
428
- Popper.prototype.modifiers.applyStyle = function(data) {
429
- let styles = { position: data.offsets.popper.position };
430
- let left = Math.round(data.offsets.popper.left);
431
- let top = Math.round(data.offsets.popper.top);
432
- let prefixedProperty;
433
- if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName("transform"))) {
434
- styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;
435
- Object.assign(styles, { top: 0, left: 0 });
436
- } else {
437
- Object.assign(styles, { top, left });
438
- }
439
- Object.assign(styles, data.styles);
440
- setStyle(this._popper, styles);
441
- this._popper.setAttribute("x-placement", data.placement);
442
- const modifiers2 = this.modifiers;
443
- if (this.isModifierRequired(modifiers2.applyStyle, modifiers2.arrow) && data.offsets.arrow) {
444
- setStyle(data.arrowElement, data.offsets.arrow);
445
- }
446
- return data;
447
- };
448
- Popper.prototype.modifiers.shift = function(data) {
449
- let placement = data.placement;
450
- let basePlacement = placement.split("-")[0];
451
- let shiftVariation = placement.split("-")[1];
452
- if (shiftVariation) {
453
- let { top, left, height, width } = data.offsets.reference;
367
+ if (!arrow || !this._popper.contains(arrow)) {
368
+ return data;
369
+ }
370
+ let arrowStyle = {};
371
+ let placement = data.placement.split("-")[0];
454
372
  let popper = getPopperClientRect(data.offsets.popper);
455
- let shiftOffsets = {
456
- y: {
457
- start: { top },
458
- end: { top: top + height - popper.height }
459
- },
460
- x: {
461
- start: { left },
462
- end: { left: left + width - popper.width }
373
+ let reference = data.offsets.reference;
374
+ let isVertical = ~["left", "right"].indexOf(placement);
375
+ let calcProp = isVertical ? "height" : "width";
376
+ let opSide = isVertical ? "bottom" : "right";
377
+ let altSide = isVertical ? "left" : "top";
378
+ let side = isVertical ? "top" : "left";
379
+ let popperRect = this.popperOuterSize ? this.popperOuterSize : this.popperOuterSize = getOuterSizes(this._popper);
380
+ let arrowRect = getOuterSizes(arrow);
381
+ let arrowSize = arrowRect[calcProp];
382
+ if (reference[opSide] - arrowSize < popper[side]) {
383
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);
384
+ }
385
+ if (reference[side] + arrowSize > popper[opSide]) {
386
+ data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];
387
+ }
388
+ let center = reference[side] + (arrowOffset || reference[calcProp] / 2 - arrowSize / 2);
389
+ let sideValue = center - popper[side];
390
+ sideValue = Math.max(Math.min(popper[calcProp] - arrowSize - 8, sideValue), 8);
391
+ arrowStyle[side] = sideValue;
392
+ arrowStyle[altSide] = "";
393
+ const params = this._options.placement.split("-");
394
+ if (this._options.adjustArrow && ~["top", "bottom"].indexOf(params[0]) && side === "left") {
395
+ if (params[1] === "start") {
396
+ arrowStyle.left = 8;
397
+ } else if (!params[1]) {
398
+ arrowStyle.left = (popperRect.width - arrowRect.width) / 2;
463
399
  }
464
- };
465
- let axis = ~["bottom", "top"].indexOf(basePlacement) ? "x" : "y";
466
- data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);
400
+ }
401
+ data.offsets.arrow = arrowStyle;
402
+ data.arrowElement = arrow;
403
+ return data;
467
404
  }
468
- return data;
469
- };
470
- Popper.prototype.modifiers.preventOverflow = function(data) {
471
- let order = this._options.preventOverflowOrder;
472
- let popper = getPopperClientRect(data.offsets.popper);
473
- let check = {
474
- top: () => {
475
- let { top } = popper;
476
- if (top < data.boundaries.top) {
477
- top = Math.max(top, data.boundaries.top);
405
+ /** 判断 reference 的 offsetParent 元素是fix还是abs, 这个值会赋值给popper 的dom */
406
+ _getPopperPositionByRefernce(reference) {
407
+ if (this._options.forceAbsolute) {
408
+ return "absolute";
409
+ }
410
+ let isParentFixed = isFixed(reference);
411
+ return isParentFixed ? "fixed" : "absolute";
412
+ }
413
+ /** 实时计算一下popper, reference的 位置信息, 用于 */
414
+ _getRefPopOffsets(popper, reference, placement) {
415
+ placement = placement.split("-")[0];
416
+ let popperOffsets = { position: this.state.position };
417
+ let isParentFixed = popperOffsets.position === "fixed";
418
+ let referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);
419
+ const { width, height } = this.popperOuterSize ? this.popperOuterSize : this.popperOuterSize = getOuterSizes(popper);
420
+ if (~["right", "left"].indexOf(placement)) {
421
+ popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - height / 2;
422
+ if (placement === "left") {
423
+ popperOffsets.left = referenceOffsets.left - width;
424
+ } else {
425
+ popperOffsets.left = referenceOffsets.right;
478
426
  }
479
- return { top };
480
- },
481
- right: () => {
482
- let { left } = popper;
483
- if (popper.right > data.boundaries.right) {
484
- left = Math.min(left, data.boundaries.right - popper.width);
427
+ } else {
428
+ popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - width / 2;
429
+ if (placement === "top") {
430
+ popperOffsets.top = referenceOffsets.top - height;
431
+ } else {
432
+ popperOffsets.top = referenceOffsets.bottom;
485
433
  }
486
- return { left };
487
- },
488
- bottom: () => {
489
- let { top } = popper;
490
- if (popper.bottom > data.boundaries.bottom) {
491
- top = Math.min(top, data.boundaries.bottom - popper.height);
434
+ }
435
+ popperOffsets.width = width;
436
+ popperOffsets.height = height;
437
+ return {
438
+ popper: popperOffsets,
439
+ reference: referenceOffsets
440
+ };
441
+ }
442
+ _setupEventListeners() {
443
+ this.state.updateBoundFn = this.update.bind(this);
444
+ on(window, "resize", this.state.updateBoundFn);
445
+ if (this._options.boundariesElement !== "window") {
446
+ let target = getScrollParent(this._reference);
447
+ if (target === window.document.body || target === window.document.documentElement) {
448
+ target = window;
492
449
  }
493
- return { top };
494
- },
495
- left: () => {
496
- let { left } = popper;
497
- if (popper.left < data.boundaries.left) {
498
- left = Math.max(left, data.boundaries.left);
450
+ this.state.scrollTarget = target;
451
+ if (this._options.bubbling || PopupManager.globalScroll) {
452
+ let targets = getAllScrollParents(this._reference);
453
+ this.state.scrollTargets = targets || [];
454
+ targets.forEach((target2) => {
455
+ on(target2, "scroll", this.state.updateBoundFn);
456
+ });
457
+ } else {
458
+ on(target, "scroll", this.state.updateBoundFn);
499
459
  }
500
- return { left };
501
460
  }
502
- };
503
- order.forEach((direction) => {
504
- data.offsets.popper = Object.assign(popper, check[direction]());
505
- });
506
- return data;
507
- };
508
- Popper.prototype.modifiers.keepTogether = function(data) {
509
- let popper = getPopperClientRect(data.offsets.popper);
510
- let reference = data.offsets.reference;
511
- if (popper.right < Math.floor(reference.left)) {
512
- data.offsets.popper.left = Math.floor(reference.left) - popper.width;
513
- }
514
- if (popper.left > Math.floor(reference.right)) {
515
- data.offsets.popper.left = Math.floor(reference.right);
516
- }
517
- if (popper.bottom < Math.floor(reference.top)) {
518
- data.offsets.popper.top = Math.floor(reference.top) - popper.height;
519
- }
520
- if (popper.top > Math.floor(reference.bottom)) {
521
- data.offsets.popper.top = Math.floor(reference.bottom);
522
- }
523
- return data;
524
- };
525
- Popper.prototype.modifiers.flip = function(data) {
526
- if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {
527
- return data;
528
461
  }
529
- if (data.flipped && data.placement === data._originalPlacement) {
530
- return data;
531
- }
532
- const placements = data.placement.split("-");
533
- let placement = placements[0];
534
- let placementOpposite = getOppositePlacement(placement);
535
- let variation = placements[1] || "";
536
- let flipOrderArr = [];
537
- if (this._options.flipBehavior === "flip") {
538
- flipOrderArr = [placement, placementOpposite];
539
- } else {
540
- flipOrderArr = this._options.flipBehavior;
541
- }
542
- flipOrderArr.forEach((step, index) => {
543
- if (placement !== step || flipOrderArr.length === index + 1) {
544
- return;
545
- }
546
- placement = data.placement.split("-")[0];
547
- placementOpposite = getOppositePlacement(placement);
548
- let popperOffsets = getPopperClientRect(data.offsets.popper);
549
- let a = ~["right", "bottom"].indexOf(placement);
550
- let p = Math.floor(data.offsets.reference[placement]);
551
- let po = Math.floor(popperOffsets[placementOpposite]);
552
- if (a && p > po || !a && p < po) {
553
- data.flipped = true;
554
- data.placement = flipOrderArr[index + 1];
555
- if (variation) {
556
- data.placement += `-${variation}`;
462
+ _removeEventListeners() {
463
+ off(window, "resize", this.state.updateBoundFn);
464
+ if (this._options.boundariesElement !== "window" && this.state.scrollTarget) {
465
+ off(this.state.scrollTarget, "scroll", this.state.updateBoundFn);
466
+ this.state.scrollTarget = null;
467
+ if (this._options.bubbling || PopupManager.globalScroll) {
468
+ let targets = this.state.scrollTargets || [];
469
+ targets.forEach((target) => {
470
+ off(target, "scroll", this.state.updateBoundFn);
471
+ });
472
+ this.state.scrollTargets = null;
557
473
  }
558
- data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;
559
- data = this.runModifiers(data, this._options.modifiers, this._flip);
560
474
  }
561
- });
562
- return data;
563
- };
564
- Popper.prototype.modifiers.offset = function(data) {
565
- let offset = this._options.offset;
566
- let popper = data.offsets.popper;
567
- if (~data.placement.indexOf("left")) {
568
- popper.top -= offset;
569
- } else if (~data.placement.indexOf("right")) {
570
- popper.top += offset;
571
- } else if (~data.placement.indexOf("top")) {
572
- popper.left -= offset;
573
- } else if (~data.placement.indexOf("bottom")) {
574
- popper.left += offset;
575
- }
576
- return data;
577
- };
578
- Popper.prototype.modifiers.arrow = function(data) {
579
- let arrow = this._options.arrowElement;
580
- let arrowOffset = this._options.arrowOffset;
581
- if (typeof arrow === "string") {
582
- arrow = this._popper.querySelector(arrow);
583
- }
584
- if (!arrow || !this._popper.contains(arrow) || !this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {
585
- return data;
586
- }
587
- let arrowStyle = {};
588
- let placement = data.placement.split("-")[0];
589
- let popper = getPopperClientRect(data.offsets.popper);
590
- let reference = data.offsets.reference;
591
- let isVertical = ~["left", "right"].indexOf(placement);
592
- let calcProp = isVertical ? "height" : "width";
593
- let opSide = isVertical ? "bottom" : "right";
594
- let altSide = isVertical ? "left" : "top";
595
- let side = isVertical ? "top" : "left";
596
- let popperRect = this.popperOuterSize ? this.popperOuterSize : this.popperOuterSize = getOuterSizes(this._popper);
597
- let arrowRect = getOuterSizes(arrow);
598
- let arrowSize = arrowRect[calcProp];
599
- if (reference[opSide] - arrowSize < popper[side]) {
600
- data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);
601
- }
602
- if (reference[side] + arrowSize > popper[opSide]) {
603
- data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];
604
- }
605
- let center = reference[side] + (arrowOffset || reference[calcProp] / 2 - arrowSize / 2);
606
- let sideValue = center - popper[side];
607
- sideValue = Math.max(Math.min(popper[calcProp] - arrowSize - 8, sideValue), 8);
608
- arrowStyle[side] = sideValue;
609
- arrowStyle[altSide] = "";
610
- const popperOptions = this._options;
611
- const params = popperOptions.placement.split("-");
612
- if (popperOptions.adjustArrow && ~["top", "bottom"].indexOf(params[0]) && side === "left") {
613
- if (params[1] === "start") {
614
- arrowStyle.left = 8;
615
- } else if (!params[1]) {
616
- arrowStyle.left = (popperRect.width - arrowRect.width) / 2;
475
+ this.state.updateBoundFn = null;
476
+ }
477
+ /** 实时计算一下Boundary的位置 */
478
+ _getBoundaries(data, padding, boundariesElement) {
479
+ let boundaries = { right: 0, left: 0, top: 0, bottom: 0 };
480
+ if (boundariesElement === "window" || boundariesElement === "body") {
481
+ let body = window.document.body;
482
+ let html = window.document.documentElement;
483
+ let { width, height } = getMaxWH(body, html);
484
+ boundaries = { top: 0, right: width, bottom: height, left: 0 };
485
+ } else if (boundariesElement === "viewport") {
486
+ let offsetParent = getOffsetParent(this._popper);
487
+ let scrollParent = getScrollParent(this._popper);
488
+ let offsetParentRect = getOffsetRect(offsetParent);
489
+ let isFixed2 = data.offsets.popper.position === "fixed";
490
+ let scrollTop = isFixed2 ? 0 : getScrollTopValue(scrollParent);
491
+ let scrollLeft = isFixed2 ? 0 : getScrollLeftValue(scrollParent);
492
+ const viewportWindow = PopupManager.viewportWindow || window;
493
+ boundaries = {
494
+ top: 0 - (offsetParentRect.top - scrollTop),
495
+ right: viewportWindow.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),
496
+ bottom: viewportWindow.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),
497
+ left: 0 - (offsetParentRect.left - scrollLeft)
498
+ };
499
+ } else {
500
+ if (getOffsetParent(this._popper) === boundariesElement) {
501
+ const { clientWidth, clientHeight } = boundariesElement;
502
+ boundaries = {
503
+ right: clientWidth,
504
+ bottom: clientHeight,
505
+ top: 0,
506
+ left: 0
507
+ };
508
+ } else {
509
+ boundaries = getOffsetRect(boundariesElement);
510
+ }
617
511
  }
512
+ boundaries.right -= padding;
513
+ boundaries.left += padding;
514
+ boundaries.bottom = boundaries.bottom - padding;
515
+ boundaries.top = boundaries.top + padding;
516
+ return boundaries;
618
517
  }
619
- data.offsets.arrow = arrowStyle;
620
- data.arrowElement = arrow;
621
- return data;
622
- };
518
+ }
623
519
  var popper_default = Popper;
624
520
  export {
625
521
  popper_default as default,
626
- getAllScrollParents,
627
522
  getScrollParent
628
523
  };