cy-element-ui 1.0.4 → 1.0.5

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 (415) hide show
  1. package/README.md +22 -13
  2. package/lib/alert.js +211 -203
  3. package/lib/aside.js +29 -29
  4. package/lib/autocomplete.js +4615 -483
  5. package/lib/avatar.js +152 -126
  6. package/lib/backtop.js +117 -125
  7. package/lib/badge.js +128 -134
  8. package/lib/breadcrumb-item.js +146 -122
  9. package/lib/breadcrumb.js +97 -96
  10. package/lib/button-group.js +68 -65
  11. package/lib/button.js +67 -87
  12. package/lib/calendar.js +2475 -603
  13. package/lib/card.js +101 -100
  14. package/lib/carousel-item.js +854 -210
  15. package/lib/carousel.js +575 -408
  16. package/lib/cascader-panel.js +3546 -1153
  17. package/lib/cascader.js +7376 -970
  18. package/lib/checkbox-button.js +337 -290
  19. package/lib/checkbox-group.js +176 -105
  20. package/lib/checkbox.js +240 -220
  21. package/lib/col.js +113 -68
  22. package/lib/collapse-item.js +1228 -225
  23. package/lib/collapse.js +163 -123
  24. package/lib/color-picker.js +5223 -1251
  25. package/lib/container.js +98 -88
  26. package/lib/date-picker.js +8396 -3945
  27. package/lib/descriptions-item.js +53 -32
  28. package/lib/descriptions.js +697 -334
  29. package/lib/dialog.js +1725 -247
  30. package/lib/directives/mousewheel.js +14 -20
  31. package/lib/directives/repeat-click.js +27 -30
  32. package/lib/divider.js +38 -45
  33. package/lib/drawer.js +1032 -238
  34. package/lib/dropdown-item.js +159 -111
  35. package/lib/dropdown-menu.js +2445 -117
  36. package/lib/dropdown.js +1675 -366
  37. package/lib/element-ui.common.js +49110 -39985
  38. package/lib/empty.js +1084 -203
  39. package/lib/fileUpload.js +3900 -0
  40. package/lib/footer.js +29 -29
  41. package/lib/form-item.js +1236 -467
  42. package/lib/form.js +326 -258
  43. package/lib/header.js +80 -80
  44. package/lib/icon.js +71 -68
  45. package/lib/image.js +2389 -743
  46. package/lib/index.js +1 -1
  47. package/lib/infinite-scroll.js +814 -150
  48. package/lib/input-number.js +2181 -444
  49. package/lib/input.js +1197 -517
  50. package/lib/link.js +117 -135
  51. package/lib/loading.js +1130 -363
  52. package/lib/locale/format.js +38 -49
  53. package/lib/locale/index.js +38 -52
  54. package/lib/locale/lang/af-ZA.js +130 -123
  55. package/lib/locale/lang/ar.js +123 -122
  56. package/lib/locale/lang/az.js +122 -121
  57. package/lib/locale/lang/bg.js +133 -123
  58. package/lib/locale/lang/bn.js +121 -121
  59. package/lib/locale/lang/ca.js +123 -122
  60. package/lib/locale/lang/cs-CZ.js +127 -125
  61. package/lib/locale/lang/da.js +124 -122
  62. package/lib/locale/lang/de.js +126 -124
  63. package/lib/locale/lang/ee.js +125 -123
  64. package/lib/locale/lang/el.js +125 -123
  65. package/lib/locale/lang/en.js +127 -123
  66. package/lib/locale/lang/eo.js +125 -123
  67. package/lib/locale/lang/es.js +123 -122
  68. package/lib/locale/lang/eu.js +128 -123
  69. package/lib/locale/lang/fa.js +125 -123
  70. package/lib/locale/lang/fi.js +125 -123
  71. package/lib/locale/lang/fr.js +125 -122
  72. package/lib/locale/lang/he.js +130 -123
  73. package/lib/locale/lang/hr.js +128 -123
  74. package/lib/locale/lang/hu.js +124 -122
  75. package/lib/locale/lang/hy-AM.js +125 -123
  76. package/lib/locale/lang/id.js +124 -123
  77. package/lib/locale/lang/is.js +124 -123
  78. package/lib/locale/lang/it.js +123 -122
  79. package/lib/locale/lang/ja.js +125 -123
  80. package/lib/locale/lang/kg.js +125 -123
  81. package/lib/locale/lang/km.js +124 -123
  82. package/lib/locale/lang/ko.js +125 -123
  83. package/lib/locale/lang/ku.js +125 -123
  84. package/lib/locale/lang/kz.js +125 -123
  85. package/lib/locale/lang/lo-LA.js +121 -121
  86. package/lib/locale/lang/lt.js +125 -123
  87. package/lib/locale/lang/lv.js +125 -123
  88. package/lib/locale/lang/mn.js +125 -123
  89. package/lib/locale/lang/ms.js +123 -122
  90. package/lib/locale/lang/nb-NO.js +123 -122
  91. package/lib/locale/lang/nl.js +125 -123
  92. package/lib/locale/lang/pl.js +125 -123
  93. package/lib/locale/lang/pt-br.js +124 -123
  94. package/lib/locale/lang/pt.js +133 -123
  95. package/lib/locale/lang/ro.js +125 -123
  96. package/lib/locale/lang/ru-RU.js +124 -123
  97. package/lib/locale/lang/si.js +127 -123
  98. package/lib/locale/lang/sk.js +126 -125
  99. package/lib/locale/lang/sl.js +125 -123
  100. package/lib/locale/lang/sr-Latn.js +124 -123
  101. package/lib/locale/lang/sr.js +128 -123
  102. package/lib/locale/lang/sv-SE.js +128 -123
  103. package/lib/locale/lang/sw.js +127 -123
  104. package/lib/locale/lang/ta.js +130 -122
  105. package/lib/locale/lang/th.js +127 -123
  106. package/lib/locale/lang/tk.js +129 -123
  107. package/lib/locale/lang/tr-TR.js +125 -123
  108. package/lib/locale/lang/ua.js +124 -123
  109. package/lib/locale/lang/ug-CN.js +124 -123
  110. package/lib/locale/lang/uz-UZ.js +124 -123
  111. package/lib/locale/lang/vi.js +124 -123
  112. package/lib/locale/lang/zh-CN.js +124 -123
  113. package/lib/locale/lang/zh-TW.js +128 -123
  114. package/lib/main.js +23 -21
  115. package/lib/menu-item-group.js +105 -111
  116. package/lib/menu-item.js +3558 -253
  117. package/lib/menu.js +1680 -528
  118. package/lib/message-box.js +3427 -684
  119. package/lib/message.js +1677 -229
  120. package/lib/mixins/emitter.js +28 -30
  121. package/lib/mixins/focus.js +10 -11
  122. package/lib/mixins/locale.js +12 -14
  123. package/lib/mixins/migrating.js +38 -45
  124. package/lib/notification.js +1707 -269
  125. package/lib/option-group.js +190 -139
  126. package/lib/option.js +949 -196
  127. package/lib/page-header.js +964 -42
  128. package/lib/pagination.js +6947 -641
  129. package/lib/popconfirm.js +3951 -223
  130. package/lib/popover.js +3247 -369
  131. package/lib/progress.js +254 -244
  132. package/lib/radio-button.js +259 -226
  133. package/lib/radio-group.js +249 -186
  134. package/lib/radio.js +263 -253
  135. package/lib/rate.js +1399 -420
  136. package/lib/result.js +183 -227
  137. package/lib/row.js +58 -41
  138. package/lib/scrollbar.js +1331 -278
  139. package/lib/select.js +5816 -1428
  140. package/lib/skeleton-item.js +133 -145
  141. package/lib/skeleton.js +82 -91
  142. package/lib/slider.js +5157 -702
  143. package/lib/spinner.js +113 -101
  144. package/lib/statistic.js +10205 -254
  145. package/lib/step.js +274 -311
  146. package/lib/steps.js +854 -117
  147. package/lib/subTitle.js +292 -0
  148. package/lib/submenu.js +2867 -429
  149. package/lib/switch.js +1051 -291
  150. package/lib/tab-pane.js +125 -135
  151. package/lib/tabDialog.js +2658 -0
  152. package/lib/table-column.js +1975 -751
  153. package/lib/table.js +8019 -3979
  154. package/lib/tabs.js +1455 -605
  155. package/lib/tag.js +73 -68
  156. package/lib/theme-chalk/src/index.scss +3 -0
  157. package/lib/time-picker.js +6821 -1944
  158. package/lib/time-select.js +6297 -1186
  159. package/lib/timeline-item.js +43 -84
  160. package/lib/timeline.js +43 -39
  161. package/lib/tooltip.js +3185 -287
  162. package/lib/transfer.js +2943 -625
  163. package/lib/transitions/collapse-transition.js +69 -87
  164. package/lib/tree.js +3312 -1791
  165. package/lib/treeSelect.js +4436 -0
  166. package/lib/umd/locale/af-ZA.js +145 -138
  167. package/lib/umd/locale/ar.js +138 -137
  168. package/lib/umd/locale/az.js +139 -137
  169. package/lib/umd/locale/bg.js +148 -138
  170. package/lib/umd/locale/bn.js +138 -137
  171. package/lib/umd/locale/ca.js +138 -137
  172. package/lib/umd/locale/cs-CZ.js +142 -140
  173. package/lib/umd/locale/da.js +139 -137
  174. package/lib/umd/locale/de.js +141 -139
  175. package/lib/umd/locale/ee.js +140 -138
  176. package/lib/umd/locale/el.js +140 -138
  177. package/lib/umd/locale/en.js +142 -138
  178. package/lib/umd/locale/eo.js +140 -138
  179. package/lib/umd/locale/es.js +138 -137
  180. package/lib/umd/locale/eu.js +143 -138
  181. package/lib/umd/locale/fa.js +140 -138
  182. package/lib/umd/locale/fi.js +140 -138
  183. package/lib/umd/locale/fr.js +140 -137
  184. package/lib/umd/locale/he.js +145 -138
  185. package/lib/umd/locale/hr.js +143 -138
  186. package/lib/umd/locale/hu.js +139 -137
  187. package/lib/umd/locale/hy-AM.js +140 -138
  188. package/lib/umd/locale/id.js +139 -138
  189. package/lib/umd/locale/is.js +139 -138
  190. package/lib/umd/locale/it.js +138 -137
  191. package/lib/umd/locale/ja.js +140 -138
  192. package/lib/umd/locale/kg.js +140 -138
  193. package/lib/umd/locale/km.js +139 -138
  194. package/lib/umd/locale/ko.js +140 -138
  195. package/lib/umd/locale/ku.js +140 -138
  196. package/lib/umd/locale/kz.js +140 -138
  197. package/lib/umd/locale/lo-LA.js +138 -137
  198. package/lib/umd/locale/lt.js +140 -138
  199. package/lib/umd/locale/lv.js +140 -138
  200. package/lib/umd/locale/mn.js +140 -138
  201. package/lib/umd/locale/ms.js +138 -137
  202. package/lib/umd/locale/nb-NO.js +138 -137
  203. package/lib/umd/locale/nl.js +140 -138
  204. package/lib/umd/locale/pl.js +140 -138
  205. package/lib/umd/locale/pt-br.js +139 -138
  206. package/lib/umd/locale/pt.js +148 -138
  207. package/lib/umd/locale/ro.js +140 -138
  208. package/lib/umd/locale/ru-RU.js +139 -138
  209. package/lib/umd/locale/si.js +142 -138
  210. package/lib/umd/locale/sk.js +141 -140
  211. package/lib/umd/locale/sl.js +140 -138
  212. package/lib/umd/locale/sr-Latn.js +139 -138
  213. package/lib/umd/locale/sr.js +143 -138
  214. package/lib/umd/locale/sv-SE.js +143 -138
  215. package/lib/umd/locale/sw.js +142 -138
  216. package/lib/umd/locale/ta.js +145 -137
  217. package/lib/umd/locale/th.js +142 -138
  218. package/lib/umd/locale/tk.js +144 -138
  219. package/lib/umd/locale/tr-TR.js +140 -138
  220. package/lib/umd/locale/ua.js +139 -138
  221. package/lib/umd/locale/ug-CN.js +139 -138
  222. package/lib/umd/locale/uz-UZ.js +139 -138
  223. package/lib/umd/locale/vi.js +139 -138
  224. package/lib/umd/locale/zh-CN.js +139 -138
  225. package/lib/umd/locale/zh-TW.js +143 -138
  226. package/lib/upload.js +2377 -987
  227. package/lib/utils/after-leave.js +36 -33
  228. package/lib/utils/aria-dialog.js +55 -73
  229. package/lib/utils/aria-utils.js +67 -76
  230. package/lib/utils/clickoutside.js +52 -60
  231. package/lib/utils/date-util.js +198 -241
  232. package/lib/utils/date.js +6 -368
  233. package/lib/utils/date_source.js +349 -0
  234. package/lib/utils/dom.js +167 -183
  235. package/lib/utils/lodash.js +13 -9421
  236. package/lib/utils/lodash_source.js +9421 -0
  237. package/lib/utils/menu/aria-menubar.js +13 -18
  238. package/lib/utils/menu/aria-menuitem.js +43 -54
  239. package/lib/utils/menu/aria-submenu.js +50 -59
  240. package/lib/utils/merge.js +15 -17
  241. package/lib/utils/popper.js +1141 -1170
  242. package/lib/utils/popup/index.js +186 -230
  243. package/lib/utils/popup/popup-manager.js +159 -191
  244. package/lib/utils/resize-event.js +29 -44
  245. package/lib/utils/scroll-into-view.js +25 -33
  246. package/lib/utils/scrollbar-width.js +25 -36
  247. package/lib/utils/shared.js +3 -3
  248. package/lib/utils/types.js +19 -32
  249. package/lib/utils/util.js +187 -221
  250. package/lib/utils/vdom.js +5 -9
  251. package/lib/utils/vue-popper.js +166 -188
  252. package/package.json +20 -19
  253. package/packages/alert/src/main.vue +63 -63
  254. package/packages/aside/src/main.vue +9 -9
  255. package/packages/autocomplete/src/autocomplete-suggestions.vue +46 -46
  256. package/packages/autocomplete/src/autocomplete.vue +198 -198
  257. package/packages/avatar/src/main.vue +5 -5
  258. package/packages/backtop/src/main.vue +3 -3
  259. package/packages/badge/src/main.vue +1 -1
  260. package/packages/breadcrumb/src/breadcrumb-item.vue +26 -26
  261. package/packages/breadcrumb/src/breadcrumb.vue +22 -22
  262. package/packages/button/src/button-group.vue +3 -3
  263. package/packages/button/src/button.vue +44 -44
  264. package/packages/calendar/src/date-table.vue +3 -3
  265. package/packages/calendar/src/main.vue +7 -7
  266. package/packages/card/src/main.vue +9 -9
  267. package/packages/carousel/src/item.vue +98 -98
  268. package/packages/carousel/src/main.vue +2 -2
  269. package/packages/cascader/src/cascader.vue +4 -4
  270. package/packages/cascader-panel/src/cascader-menu.vue +4 -4
  271. package/packages/cascader-panel/src/cascader-node.vue +232 -232
  272. package/packages/cascader-panel/src/cascader-panel.vue +3 -3
  273. package/packages/cascader-panel/src/node.js +2 -3
  274. package/packages/cascader-panel/src/store.js +0 -1
  275. package/packages/checkbox/src/checkbox-button.vue +139 -139
  276. package/packages/checkbox/src/checkbox-group.vue +33 -33
  277. package/packages/checkbox/src/checkbox.vue +140 -140
  278. package/packages/col/src/col.js +5 -5
  279. package/packages/collapse/src/collapse-item.vue +55 -55
  280. package/packages/collapse/src/collapse.vue +54 -54
  281. package/packages/color-picker/src/color.js +4 -4
  282. package/packages/color-picker/src/components/alpha-slider.vue +100 -100
  283. package/packages/color-picker/src/components/hue-slider.vue +91 -91
  284. package/packages/color-picker/src/components/picker-dropdown.vue +64 -64
  285. package/packages/color-picker/src/components/predefine.vue +43 -43
  286. package/packages/color-picker/src/components/sv-panel.vue +70 -70
  287. package/packages/color-picker/src/main.vue +141 -141
  288. package/packages/container/src/main.vue +20 -20
  289. package/packages/date-picker/src/basic/date-table.vue +360 -360
  290. package/packages/date-picker/src/basic/month-table.vue +222 -223
  291. package/packages/date-picker/src/basic/time-spinner.vue +174 -174
  292. package/packages/date-picker/src/basic/year-table.vue +91 -91
  293. package/packages/date-picker/src/panel/date-range.vue +415 -415
  294. package/packages/date-picker/src/panel/date.vue +423 -423
  295. package/packages/date-picker/src/panel/month-range.vue +177 -177
  296. package/packages/date-picker/src/panel/time-range.vue +173 -173
  297. package/packages/date-picker/src/panel/time-select.vue +131 -131
  298. package/packages/date-picker/src/panel/time.vue +131 -131
  299. package/packages/date-picker/src/picker.vue +7 -7
  300. package/packages/descriptions/src/descriptions-row.js +3 -3
  301. package/packages/descriptions/src/index.js +1 -1
  302. package/packages/dialog/src/component.vue +155 -155
  303. package/packages/divider/src/main.vue +1 -1
  304. package/packages/drawer/src/main.vue +2 -2
  305. package/packages/dropdown/src/dropdown-item.vue +15 -15
  306. package/packages/dropdown/src/dropdown-menu.vue +47 -47
  307. package/packages/dropdown/src/dropdown.vue +260 -260
  308. package/packages/empty/src/index.vue +1 -1
  309. package/packages/fileUpload/index.js +8 -0
  310. package/packages/fileUpload/src/main.vue +430 -0
  311. package/packages/footer/src/main.vue +9 -9
  312. package/packages/form/src/form-item.vue +245 -245
  313. package/packages/form/src/form.vue +154 -154
  314. package/packages/header/src/main.vue +9 -9
  315. package/packages/icon/src/icon.vue +6 -6
  316. package/packages/image/src/image-viewer.vue +9 -9
  317. package/packages/image/src/main.vue +206 -206
  318. package/packages/infinite-scroll/src/main.js +1 -2
  319. package/packages/input/src/calcTextareaHeight.js +2 -2
  320. package/packages/input/src/input.vue +311 -311
  321. package/packages/input-number/src/input-number.vue +205 -205
  322. package/packages/loading/src/loading.vue +19 -19
  323. package/packages/main/src/main.vue +4 -4
  324. package/packages/menu/src/menu-item-group.vue +27 -27
  325. package/packages/menu/src/menu-item.vue +69 -69
  326. package/packages/menu/src/menu.vue +284 -284
  327. package/packages/menu/src/submenu.vue +308 -309
  328. package/packages/message/src/main.js +1 -1
  329. package/packages/message/src/main.vue +72 -72
  330. package/packages/message-box/src/main.vue +216 -216
  331. package/packages/notification/src/main.js +1 -1
  332. package/packages/notification/src/main.vue +93 -93
  333. package/packages/pagination/src/pager.vue +99 -99
  334. package/packages/popconfirm/src/main.vue +28 -28
  335. package/packages/popover/src/main.vue +6 -6
  336. package/packages/progress/src/progress.vue +174 -174
  337. package/packages/radio/src/radio-button.vue +64 -64
  338. package/packages/radio/src/radio-group.vue +88 -88
  339. package/packages/radio/src/radio.vue +74 -74
  340. package/packages/rate/src/main.vue +270 -270
  341. package/packages/row/src/row.js +3 -3
  342. package/packages/scrollbar/src/main.js +2 -2
  343. package/packages/scrollbar/src/util.js +1 -1
  344. package/packages/select/src/option-group.vue +46 -46
  345. package/packages/select/src/option.vue +122 -122
  346. package/packages/select/src/select-dropdown.vue +49 -49
  347. package/packages/select/src/select.vue +676 -676
  348. package/packages/skeleton/src/item.vue +12 -12
  349. package/packages/slider/src/button.vue +191 -191
  350. package/packages/slider/src/main.vue +314 -314
  351. package/packages/spinner/src/spinner.vue +16 -16
  352. package/packages/statistic/src/main.vue +5 -6
  353. package/packages/steps/src/step.vue +2 -2
  354. package/packages/steps/src/steps.vue +4 -4
  355. package/packages/subTitle/index.js +8 -0
  356. package/packages/subTitle/src/main.vue +33 -0
  357. package/packages/switch/src/component.vue +123 -123
  358. package/packages/tabDialog/index.js +23 -0
  359. package/packages/tabDialog/src/dialog/drag.js +63 -0
  360. package/packages/tabDialog/src/dialog/dragHeight.js +34 -0
  361. package/packages/tabDialog/src/dialog/dragWidth.js +30 -0
  362. package/packages/tabDialog/src/main.vue +277 -0
  363. package/packages/table/src/filter-panel.vue +128 -128
  364. package/packages/table/src/store/index.js +1 -1
  365. package/packages/table/src/table-body.js +2 -2
  366. package/packages/table/src/table-column.js +1 -1
  367. package/packages/table/src/table-header.js +1 -1
  368. package/packages/table/src/table-layout.js +1 -1
  369. package/packages/table/src/table.vue +416 -416
  370. package/packages/tabs/src/tab-bar.vue +43 -43
  371. package/packages/tabs/src/tab-nav.vue +250 -250
  372. package/packages/tabs/src/tab-pane.vue +34 -34
  373. package/packages/tabs/src/tabs.vue +165 -165
  374. package/packages/tag/src/tag.vue +52 -52
  375. package/packages/theme-cy/lib/element.css +1 -0
  376. package/packages/theme-cy/lib/fileUpload.css +1 -0
  377. package/packages/theme-cy/lib/index.css +1 -1
  378. package/packages/theme-cy/lib/subTitle.css +1 -0
  379. package/packages/theme-cy/lib/tabDialog.css +1 -0
  380. package/packages/theme-cy/lib/treeselect.css +1 -1
  381. package/packages/theme-cy/src/element.scss +45 -0
  382. package/packages/theme-cy/src/fileUpload.scss +30 -0
  383. package/packages/theme-cy/src/index.scss +4 -0
  384. package/packages/theme-cy/src/subTitle.scss +26 -0
  385. package/packages/theme-cy/src/tabDialog.scss +43 -0
  386. package/packages/theme-cy/src/treeselect.scss +20 -14
  387. package/packages/timeline/src/item.vue +24 -24
  388. package/packages/timeline/src/main.vue +27 -27
  389. package/packages/tooltip/src/main.js +1 -1
  390. package/packages/transfer/src/main.vue +169 -169
  391. package/packages/transfer/src/transfer-panel.vue +164 -164
  392. package/packages/tree/src/tree-node.vue +169 -169
  393. package/packages/tree/src/tree.vue +408 -408
  394. package/packages/treeSelect/index.js +8 -0
  395. package/packages/{treeselect → treeSelect}/src/main.vue +19 -19
  396. package/packages/upload/src/ajax.js +3 -3
  397. package/packages/upload/src/upload-dragger.vue +50 -50
  398. package/packages/upload/src/upload-list.vue +33 -33
  399. package/packages/upload/src/upload.vue +1 -1
  400. package/src/index.js +13 -5
  401. package/src/locale/format.js +0 -1
  402. package/src/mixins/migrating.js +2 -2
  403. package/src/utils/date.js +2 -368
  404. package/src/utils/date_source.js +368 -0
  405. package/src/utils/lodash.js +9 -18075
  406. package/src/utils/lodash_source.js +18075 -0
  407. package/src/utils/types.js +1 -1
  408. package/types/element-ui.d.ts +16 -3
  409. package/types/fileUpload.d.ts +5 -0
  410. package/types/subTitle.d.ts +5 -0
  411. package/types/tabDialog.d.ts +5 -0
  412. package/types/treeSelect.d.ts +5 -0
  413. package/lib/treeselect.js +0 -682
  414. package/packages/treeselect/index.js +0 -8
  415. package/types/treeselect.d.ts +0 -5
package/lib/tooltip.js CHANGED
@@ -82,344 +82,3242 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 139);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 97);
86
86
  /******/ })
87
87
  /************************************************************************/
88
- /******/ ({
88
+ /******/ ([
89
+ /* 0 */
90
+ /***/ (function(module, exports) {
91
+
92
+ module.exports = require("vue");
89
93
 
90
- /***/ 139:
94
+ /***/ }),
95
+ /* 1 */
91
96
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
92
97
 
93
98
  "use strict";
94
- // ESM COMPAT FLAG
95
- __webpack_require__.r(__webpack_exports__);
99
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return on; });
100
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return off; });
101
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return once; });
102
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasClass; });
103
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; });
104
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return removeClass; });
105
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getStyle; });
106
+ /* unused harmony export setStyle */
107
+ /* unused harmony export isScroll */
108
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollContainer; });
109
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isInContainer; });
110
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
111
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__);
112
+ /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53);
113
+ /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_1__);
114
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
115
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);
116
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
117
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);
118
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
119
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4__);
120
+ /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
121
+ /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_5__);
122
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
123
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__);
124
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);
125
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_7__);
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ /* istanbul ignore next */
134
+
135
+
136
+ var isServer = vue__WEBPACK_IMPORTED_MODULE_7___default.a.prototype.$isServer;
137
+ var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
138
+ var MOZ_HACK_REGEXP = /^moz([A-Z])/;
139
+ var ieVersion = isServer ? 0 : Number(document.documentMode);
140
+
141
+ /* istanbul ignore next */
142
+ var trim = function trim(string) {
143
+ return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
144
+ };
145
+ /* istanbul ignore next */
146
+ var camelCase = function camelCase(name) {
147
+ return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
148
+ return offset ? letter.toUpperCase() : letter;
149
+ }).replace(MOZ_HACK_REGEXP, 'Moz$1');
150
+ };
151
+
152
+ /* istanbul ignore next */
153
+ var on = function () {
154
+ if (!isServer && document.addEventListener) {
155
+ return function (element, event, handler) {
156
+ if (element && event && handler) {
157
+ element.addEventListener(event, handler, false);
158
+ }
159
+ };
160
+ } else {
161
+ return function (element, event, handler) {
162
+ if (element && event && handler) {
163
+ element.attachEvent('on' + event, handler);
164
+ }
165
+ };
166
+ }
167
+ }();
168
+
169
+ /* istanbul ignore next */
170
+ var off = function () {
171
+ if (!isServer && document.removeEventListener) {
172
+ return function (element, event, handler) {
173
+ if (element && event) {
174
+ element.removeEventListener(event, handler, false);
175
+ }
176
+ };
177
+ } else {
178
+ return function (element, event, handler) {
179
+ if (element && event) {
180
+ element.detachEvent('on' + event, handler);
181
+ }
182
+ };
183
+ }
184
+ }();
185
+
186
+ /* istanbul ignore next */
187
+ var once = function once(el, event, fn) {
188
+ var _listener = function listener() {
189
+ if (fn) {
190
+ fn.apply(this, arguments);
191
+ }
192
+ off(el, event, _listener);
193
+ };
194
+ on(el, event, _listener);
195
+ };
196
+
197
+ /* istanbul ignore next */
198
+ function hasClass(el, cls) {
199
+ if (!el || !cls) return false;
200
+ if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
201
+ if (el.classList) {
202
+ return el.classList.contains(cls);
203
+ } else {
204
+ return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
205
+ }
206
+ }
207
+ ;
208
+
209
+ /* istanbul ignore next */
210
+ function addClass(el, cls) {
211
+ if (!el) return;
212
+ var curClass = el.className;
213
+ var classes = (cls || '').split(' ');
214
+ for (var i = 0, j = classes.length; i < j; i++) {
215
+ var clsName = classes[i];
216
+ if (!clsName) continue;
217
+ if (el.classList) {
218
+ el.classList.add(clsName);
219
+ } else if (!hasClass(el, clsName)) {
220
+ curClass += ' ' + clsName;
221
+ }
222
+ }
223
+ if (!el.classList) {
224
+ el.setAttribute('class', curClass);
225
+ }
226
+ }
227
+ ;
228
+
229
+ /* istanbul ignore next */
230
+ function removeClass(el, cls) {
231
+ if (!el || !cls) return;
232
+ var classes = cls.split(' ');
233
+ var curClass = ' ' + el.className + ' ';
234
+ for (var i = 0, j = classes.length; i < j; i++) {
235
+ var clsName = classes[i];
236
+ if (!clsName) continue;
237
+ if (el.classList) {
238
+ el.classList.remove(clsName);
239
+ } else if (hasClass(el, clsName)) {
240
+ curClass = curClass.replace(' ' + clsName + ' ', ' ');
241
+ }
242
+ }
243
+ if (!el.classList) {
244
+ el.setAttribute('class', trim(curClass));
245
+ }
246
+ }
247
+ ;
248
+
249
+ /* istanbul ignore next */
250
+ var getStyle = ieVersion < 9 ? function (element, styleName) {
251
+ if (isServer) return;
252
+ if (!element || !styleName) return null;
253
+ styleName = camelCase(styleName);
254
+ if (styleName === 'float') {
255
+ styleName = 'styleFloat';
256
+ }
257
+ try {
258
+ switch (styleName) {
259
+ case 'opacity':
260
+ try {
261
+ return element.filters.item('alpha').opacity / 100;
262
+ } catch (e) {
263
+ return 1.0;
264
+ }
265
+ default:
266
+ return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;
267
+ }
268
+ } catch (e) {
269
+ return element.style[styleName];
270
+ }
271
+ } : function (element, styleName) {
272
+ if (isServer) return;
273
+ if (!element || !styleName) return null;
274
+ styleName = camelCase(styleName);
275
+ if (styleName === 'float') {
276
+ styleName = 'cssFloat';
277
+ }
278
+ try {
279
+ var computed = document.defaultView.getComputedStyle(element, '');
280
+ return element.style[styleName] || computed ? computed[styleName] : null;
281
+ } catch (e) {
282
+ return element.style[styleName];
283
+ }
284
+ };
285
+
286
+ /* istanbul ignore next */
287
+ function setStyle(element, styleName, value) {
288
+ if (!element || !styleName) return;
289
+ if (typeof styleName === 'object') {
290
+ for (var prop in styleName) {
291
+ if (styleName.hasOwnProperty(prop)) {
292
+ setStyle(element, prop, styleName[prop]);
293
+ }
294
+ }
295
+ } else {
296
+ styleName = camelCase(styleName);
297
+ if (styleName === 'opacity' && ieVersion < 9) {
298
+ element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
299
+ } else {
300
+ element.style[styleName] = value;
301
+ }
302
+ }
303
+ }
304
+ ;
305
+ var isScroll = function isScroll(el, vertical) {
306
+ if (isServer) return;
307
+ var determinedDirection = vertical !== null && vertical !== undefined;
308
+ var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow');
309
+ return overflow.match(/(scroll|auto|overlay)/);
310
+ };
311
+ var getScrollContainer = function getScrollContainer(el, vertical) {
312
+ if (isServer) return;
313
+ var parent = el;
314
+ while (parent) {
315
+ if ([window, document, document.documentElement].includes(parent)) {
316
+ return window;
317
+ }
318
+ if (isScroll(parent, vertical)) {
319
+ return parent;
320
+ }
321
+ parent = parent.parentNode;
322
+ }
323
+ return parent;
324
+ };
325
+ var isInContainer = function isInContainer(el, container) {
326
+ if (isServer || !el || !container) return false;
327
+ var elRect = el.getBoundingClientRect();
328
+ var containerRect;
329
+ if ([window, document, document.documentElement, null, undefined].includes(container)) {
330
+ containerRect = {
331
+ top: 0,
332
+ right: window.innerWidth,
333
+ bottom: window.innerHeight,
334
+ left: 0
335
+ };
336
+ } else {
337
+ containerRect = container.getBoundingClientRect();
338
+ }
339
+ return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
340
+ };
341
+
342
+ /***/ }),
343
+ /* 2 */,
344
+ /* 3 */
345
+ /***/ (function(module, exports) {
346
+
347
+ module.exports = require("core-js/modules/es.object.to-string.js");
348
+
349
+ /***/ }),
350
+ /* 4 */
351
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
352
+
353
+ "use strict";
354
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return noop; });
355
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return hasOwn; });
356
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return toObject; });
357
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getValueByPath; });
358
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getPropByPath; });
359
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return generateId; });
360
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return valueEquals; });
361
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return escapeRegexpString; });
362
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return arrayFindIndex; });
363
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrayFind; });
364
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return coerceTruthyValueToArray; });
365
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return isIE; });
366
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return isEdge; });
367
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return isFirefox; });
368
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return autoprefixer; });
369
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return kebabCase; });
370
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return capitalize; });
371
+ /* unused harmony export looseEqual */
372
+ /* unused harmony export arrayEquals */
373
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return isEqual; });
374
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return isEmpty; });
375
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return rafThrottle; });
376
+ /* unused harmony export objToArray */
377
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return isMac; });
378
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
379
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0__);
380
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
381
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);
382
+ /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
383
+ /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__);
384
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
385
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);
386
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
387
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4__);
388
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);
389
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__);
390
+ /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
391
+ /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_6__);
392
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12);
393
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__);
394
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(0);
395
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_8__);
396
+ /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8);
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
408
+ function noop() {}
409
+ ;
410
+ function hasOwn(obj, key) {
411
+ return hasOwnProperty.call(obj, key);
412
+ }
413
+ ;
414
+ function extend(to, _from) {
415
+ for (var key in _from) {
416
+ to[key] = _from[key];
417
+ }
418
+ return to;
419
+ }
420
+ ;
421
+ function toObject(arr) {
422
+ var res = {};
423
+ for (var i = 0; i < arr.length; i++) {
424
+ if (arr[i]) {
425
+ extend(res, arr[i]);
426
+ }
427
+ }
428
+ return res;
429
+ }
430
+ ;
431
+ var getValueByPath = function getValueByPath(object, prop) {
432
+ prop = prop || '';
433
+ var paths = prop.split('.');
434
+ var current = object;
435
+ var result = null;
436
+ for (var i = 0, j = paths.length; i < j; i++) {
437
+ var path = paths[i];
438
+ if (!current) break;
439
+ if (i === j - 1) {
440
+ result = current[path];
441
+ break;
442
+ }
443
+ current = current[path];
444
+ }
445
+ return result;
446
+ };
447
+ function getPropByPath(obj, path, strict) {
448
+ var tempObj = obj;
449
+ path = path.replace(/\[(\w+)\]/g, '.$1');
450
+ path = path.replace(/^\./, '');
451
+ var keyArr = path.split('.');
452
+ var i = 0;
453
+ for (var len = keyArr.length; i < len - 1; ++i) {
454
+ if (!tempObj && !strict) break;
455
+ var key = keyArr[i];
456
+ if (key in tempObj) {
457
+ tempObj = tempObj[key];
458
+ } else {
459
+ if (strict) {
460
+ throw new Error('please transfer a valid prop path to form item!');
461
+ }
462
+ break;
463
+ }
464
+ }
465
+ return {
466
+ o: tempObj,
467
+ k: keyArr[i],
468
+ v: tempObj ? tempObj[keyArr[i]] : null
469
+ };
470
+ }
471
+ ;
472
+ var generateId = function generateId() {
473
+ return Math.floor(Math.random() * 10000);
474
+ };
475
+ var valueEquals = function valueEquals(a, b) {
476
+ // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript
477
+ if (a === b) return true;
478
+ if (!(a instanceof Array)) return false;
479
+ if (!(b instanceof Array)) return false;
480
+ if (a.length !== b.length) return false;
481
+ for (var i = 0; i !== a.length; ++i) {
482
+ if (a[i] !== b[i]) return false;
483
+ }
484
+ return true;
485
+ };
486
+ var escapeRegexpString = function escapeRegexpString(value) {
487
+ if (value === void 0) {
488
+ value = '';
489
+ }
490
+ return String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
491
+ };
492
+
493
+ // TODO: use native Array.find, Array.findIndex when IE support is dropped
494
+ var arrayFindIndex = function arrayFindIndex(arr, pred) {
495
+ for (var i = 0; i !== arr.length; ++i) {
496
+ if (pred(arr[i])) {
497
+ return i;
498
+ }
499
+ }
500
+ return -1;
501
+ };
502
+ var arrayFind = function arrayFind(arr, pred) {
503
+ var idx = arrayFindIndex(arr, pred);
504
+ return idx !== -1 ? arr[idx] : undefined;
505
+ };
506
+
507
+ // coerce truthy value to array
508
+ var coerceTruthyValueToArray = function coerceTruthyValueToArray(val) {
509
+ if (Array.isArray(val)) {
510
+ return val;
511
+ } else if (val) {
512
+ return [val];
513
+ } else {
514
+ return [];
515
+ }
516
+ };
517
+ var isIE = function isIE() {
518
+ return !vue__WEBPACK_IMPORTED_MODULE_8___default.a.prototype.$isServer && !isNaN(Number(document.documentMode));
519
+ };
520
+ var isEdge = function isEdge() {
521
+ return !vue__WEBPACK_IMPORTED_MODULE_8___default.a.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;
522
+ };
523
+ var isFirefox = function isFirefox() {
524
+ return !vue__WEBPACK_IMPORTED_MODULE_8___default.a.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);
525
+ };
526
+ var autoprefixer = function autoprefixer(style) {
527
+ if (typeof style !== 'object') return style;
528
+ var rules = ['transform', 'transition', 'animation'];
529
+ var prefixes = ['ms-', 'webkit-'];
530
+ rules.forEach(function (rule) {
531
+ var value = style[rule];
532
+ if (rule && value) {
533
+ prefixes.forEach(function (prefix) {
534
+ style[prefix + rule] = value;
535
+ });
536
+ }
537
+ });
538
+ return style;
539
+ };
540
+ var kebabCase = function kebabCase(str) {
541
+ var hyphenateRE = /([^-])([A-Z])/g;
542
+ return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();
543
+ };
544
+ var capitalize = function capitalize(str) {
545
+ if (!Object(_types__WEBPACK_IMPORTED_MODULE_9__[/* isString */ "e"])(str)) return str;
546
+ return str.charAt(0).toUpperCase() + str.slice(1);
547
+ };
548
+ var looseEqual = function looseEqual(a, b) {
549
+ var isObjectA = Object(_types__WEBPACK_IMPORTED_MODULE_9__[/* isObject */ "d"])(a);
550
+ var isObjectB = Object(_types__WEBPACK_IMPORTED_MODULE_9__[/* isObject */ "d"])(b);
551
+ if (isObjectA && isObjectB) {
552
+ return JSON.stringify(a) === JSON.stringify(b);
553
+ } else if (!isObjectA && !isObjectB) {
554
+ return String(a) === String(b);
555
+ } else {
556
+ return false;
557
+ }
558
+ };
559
+ var arrayEquals = function arrayEquals(arrayA, arrayB) {
560
+ arrayA = arrayA || [];
561
+ arrayB = arrayB || [];
562
+ if (arrayA.length !== arrayB.length) {
563
+ return false;
564
+ }
565
+ for (var i = 0; i < arrayA.length; i++) {
566
+ if (!looseEqual(arrayA[i], arrayB[i])) {
567
+ return false;
568
+ }
569
+ }
570
+ return true;
571
+ };
572
+ var isEqual = function isEqual(value1, value2) {
573
+ if (Array.isArray(value1) && Array.isArray(value2)) {
574
+ return arrayEquals(value1, value2);
575
+ }
576
+ return looseEqual(value1, value2);
577
+ };
578
+ var isEmpty = function isEmpty(val) {
579
+ // null or undefined
580
+ if (val == null) return true;
581
+ if (typeof val === 'boolean') return false;
582
+ if (typeof val === 'number') return !val;
583
+ if (val instanceof Error) return val.message === '';
584
+ switch (Object.prototype.toString.call(val)) {
585
+ // String or Array
586
+ case '[object String]':
587
+ case '[object Array]':
588
+ return !val.length;
589
+
590
+ // Map or Set or File
591
+ case '[object File]':
592
+ case '[object Map]':
593
+ case '[object Set]':
594
+ {
595
+ return !val.size;
596
+ }
597
+ // Plain Object
598
+ case '[object Object]':
599
+ {
600
+ return !Object.keys(val).length;
601
+ }
602
+ }
603
+ return false;
604
+ };
605
+ function rafThrottle(fn) {
606
+ var locked = false;
607
+ return function () {
608
+ var _this = this;
609
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
610
+ args[_key] = arguments[_key];
611
+ }
612
+ if (locked) return;
613
+ locked = true;
614
+ window.requestAnimationFrame(function (_) {
615
+ fn.apply(_this, args);
616
+ locked = false;
617
+ });
618
+ };
619
+ }
620
+ function objToArray(obj) {
621
+ if (Array.isArray(obj)) {
622
+ return obj;
623
+ }
624
+ return isEmpty(obj) ? [] : [obj];
625
+ }
626
+ var isMac = function isMac() {
627
+ return !vue__WEBPACK_IMPORTED_MODULE_8___default.a.prototype.$isServer && /macintosh|mac os x/i.test(navigator.userAgent);
628
+ };
629
+
630
+ /***/ }),
631
+ /* 5 */
632
+ /***/ (function(module, exports) {
633
+
634
+ module.exports = require("core-js/modules/es.function.name.js");
635
+
636
+ /***/ }),
637
+ /* 6 */
638
+ /***/ (function(module, exports) {
639
+
640
+ module.exports = require("core-js/modules/es.number.constructor.js");
641
+
642
+ /***/ }),
643
+ /* 7 */
644
+ /***/ (function(module, exports) {
645
+
646
+ module.exports = require("core-js/modules/es.regexp.exec.js");
647
+
648
+ /***/ }),
649
+ /* 8 */
650
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
651
+
652
+ "use strict";
653
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isString; });
654
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isObject; });
655
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isHtmlElement; });
656
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isFunction; });
657
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isUndefined; });
658
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isDefined; });
659
+ /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
660
+ /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_0__);
661
+ /* harmony import */ var core_js_modules_es_array_buffer_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
662
+ /* harmony import */ var core_js_modules_es_array_buffer_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_buffer_constructor_js__WEBPACK_IMPORTED_MODULE_1__);
663
+ /* harmony import */ var core_js_modules_es_array_buffer_slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
664
+ /* harmony import */ var core_js_modules_es_array_buffer_slice_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_buffer_slice_js__WEBPACK_IMPORTED_MODULE_2__);
665
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
666
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);
667
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);
668
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4__);
669
+ /* harmony import */ var core_js_modules_es_typed_array_int8_array_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27);
670
+ /* harmony import */ var core_js_modules_es_typed_array_int8_array_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_int8_array_js__WEBPACK_IMPORTED_MODULE_5__);
671
+ /* harmony import */ var core_js_modules_es_typed_array_copy_within_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28);
672
+ /* harmony import */ var core_js_modules_es_typed_array_copy_within_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_copy_within_js__WEBPACK_IMPORTED_MODULE_6__);
673
+ /* harmony import */ var core_js_modules_es_typed_array_every_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29);
674
+ /* harmony import */ var core_js_modules_es_typed_array_every_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_every_js__WEBPACK_IMPORTED_MODULE_7__);
675
+ /* harmony import */ var core_js_modules_es_typed_array_fill_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(30);
676
+ /* harmony import */ var core_js_modules_es_typed_array_fill_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_fill_js__WEBPACK_IMPORTED_MODULE_8__);
677
+ /* harmony import */ var core_js_modules_es_typed_array_filter_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31);
678
+ /* harmony import */ var core_js_modules_es_typed_array_filter_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_filter_js__WEBPACK_IMPORTED_MODULE_9__);
679
+ /* harmony import */ var core_js_modules_es_typed_array_find_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(32);
680
+ /* harmony import */ var core_js_modules_es_typed_array_find_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_find_js__WEBPACK_IMPORTED_MODULE_10__);
681
+ /* harmony import */ var core_js_modules_es_typed_array_find_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33);
682
+ /* harmony import */ var core_js_modules_es_typed_array_find_index_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_find_index_js__WEBPACK_IMPORTED_MODULE_11__);
683
+ /* harmony import */ var core_js_modules_es_typed_array_for_each_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(34);
684
+ /* harmony import */ var core_js_modules_es_typed_array_for_each_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_for_each_js__WEBPACK_IMPORTED_MODULE_12__);
685
+ /* harmony import */ var core_js_modules_es_typed_array_includes_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(35);
686
+ /* harmony import */ var core_js_modules_es_typed_array_includes_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_includes_js__WEBPACK_IMPORTED_MODULE_13__);
687
+ /* harmony import */ var core_js_modules_es_typed_array_index_of_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(36);
688
+ /* harmony import */ var core_js_modules_es_typed_array_index_of_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_index_of_js__WEBPACK_IMPORTED_MODULE_14__);
689
+ /* harmony import */ var core_js_modules_es_typed_array_iterator_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(37);
690
+ /* harmony import */ var core_js_modules_es_typed_array_iterator_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_iterator_js__WEBPACK_IMPORTED_MODULE_15__);
691
+ /* harmony import */ var core_js_modules_es_typed_array_join_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(38);
692
+ /* harmony import */ var core_js_modules_es_typed_array_join_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_join_js__WEBPACK_IMPORTED_MODULE_16__);
693
+ /* harmony import */ var core_js_modules_es_typed_array_last_index_of_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(39);
694
+ /* harmony import */ var core_js_modules_es_typed_array_last_index_of_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_last_index_of_js__WEBPACK_IMPORTED_MODULE_17__);
695
+ /* harmony import */ var core_js_modules_es_typed_array_map_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(40);
696
+ /* harmony import */ var core_js_modules_es_typed_array_map_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_map_js__WEBPACK_IMPORTED_MODULE_18__);
697
+ /* harmony import */ var core_js_modules_es_typed_array_reduce_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(41);
698
+ /* harmony import */ var core_js_modules_es_typed_array_reduce_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_reduce_js__WEBPACK_IMPORTED_MODULE_19__);
699
+ /* harmony import */ var core_js_modules_es_typed_array_reduce_right_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(42);
700
+ /* harmony import */ var core_js_modules_es_typed_array_reduce_right_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_reduce_right_js__WEBPACK_IMPORTED_MODULE_20__);
701
+ /* harmony import */ var core_js_modules_es_typed_array_reverse_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(43);
702
+ /* harmony import */ var core_js_modules_es_typed_array_reverse_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_reverse_js__WEBPACK_IMPORTED_MODULE_21__);
703
+ /* harmony import */ var core_js_modules_es_typed_array_set_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(44);
704
+ /* harmony import */ var core_js_modules_es_typed_array_set_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_set_js__WEBPACK_IMPORTED_MODULE_22__);
705
+ /* harmony import */ var core_js_modules_es_typed_array_slice_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(45);
706
+ /* harmony import */ var core_js_modules_es_typed_array_slice_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_slice_js__WEBPACK_IMPORTED_MODULE_23__);
707
+ /* harmony import */ var core_js_modules_es_typed_array_some_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(46);
708
+ /* harmony import */ var core_js_modules_es_typed_array_some_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_some_js__WEBPACK_IMPORTED_MODULE_24__);
709
+ /* harmony import */ var core_js_modules_es_typed_array_sort_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(47);
710
+ /* harmony import */ var core_js_modules_es_typed_array_sort_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_sort_js__WEBPACK_IMPORTED_MODULE_25__);
711
+ /* harmony import */ var core_js_modules_es_typed_array_subarray_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(48);
712
+ /* harmony import */ var core_js_modules_es_typed_array_subarray_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_subarray_js__WEBPACK_IMPORTED_MODULE_26__);
713
+ /* harmony import */ var core_js_modules_es_typed_array_to_locale_string_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(49);
714
+ /* harmony import */ var core_js_modules_es_typed_array_to_locale_string_js__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_locale_string_js__WEBPACK_IMPORTED_MODULE_27__);
715
+ /* harmony import */ var core_js_modules_es_typed_array_to_string_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(50);
716
+ /* harmony import */ var core_js_modules_es_typed_array_to_string_js__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_string_js__WEBPACK_IMPORTED_MODULE_28__);
717
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(0);
718
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_29__);
719
+
720
+
721
+
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
96
730
 
97
- // EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper"
98
- var vue_popper_ = __webpack_require__(5);
99
- var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);
100
731
 
101
- // EXTERNAL MODULE: external "throttle-debounce/debounce"
102
- var debounce_ = __webpack_require__(19);
103
- var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);
104
732
 
105
- // EXTERNAL MODULE: external "element-ui/lib/utils/dom"
106
- var dom_ = __webpack_require__(2);
107
733
 
108
- // EXTERNAL MODULE: external "element-ui/lib/utils/util"
109
- var util_ = __webpack_require__(3);
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+ function isString(obj) {
750
+ return Object.prototype.toString.call(obj) === '[object String]';
751
+ }
752
+ function isObject(obj) {
753
+ return Object.prototype.toString.call(obj) === '[object Object]';
754
+ }
755
+ function isHtmlElement(node) {
756
+ return node && node.nodeType === Node.ELEMENT_NODE;
757
+ }
758
+
759
+ /**
760
+ * - Inspired:
761
+ * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
762
+ */
763
+ var isFunction = function isFunction(functionToCheck) {
764
+ var getType = {};
765
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
766
+ };
767
+ if ( true && typeof Int8Array !== 'object' && (vue__WEBPACK_IMPORTED_MODULE_29___default.a.prototype.$isServer || typeof document.childNodes !== 'function')) {
768
+ isFunction = function isFunction(obj) {
769
+ return typeof obj === 'function' || false;
770
+ };
771
+ }
772
+
773
+ var isUndefined = function isUndefined(val) {
774
+ return val === void 0;
775
+ };
776
+ var isDefined = function isDefined(val) {
777
+ return val !== undefined && val !== null;
778
+ };
779
+
780
+ /***/ }),
781
+ /* 9 */,
782
+ /* 10 */
783
+ /***/ (function(module, exports) {
784
+
785
+ module.exports = require("core-js/modules/web.dom-collections.for-each.js");
786
+
787
+ /***/ }),
788
+ /* 11 */
789
+ /***/ (function(module, exports) {
790
+
791
+ module.exports = require("core-js/modules/es.regexp.to-string.js");
792
+
793
+ /***/ }),
794
+ /* 12 */
795
+ /***/ (function(module, exports) {
796
+
797
+ module.exports = require("core-js/modules/es.string.replace.js");
798
+
799
+ /***/ }),
800
+ /* 13 */
801
+ /***/ (function(module, exports) {
802
+
803
+ module.exports = require("core-js/modules/es.array.slice.js");
804
+
805
+ /***/ }),
806
+ /* 14 */,
807
+ /* 15 */
808
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
809
+
810
+ "use strict";
811
+ /* harmony default export */ __webpack_exports__["a"] = (function (target) {
812
+ for (var i = 1, j = arguments.length; i < j; i++) {
813
+ var source = arguments[i] || {};
814
+ for (var prop in source) {
815
+ if (source.hasOwnProperty(prop)) {
816
+ var value = source[prop];
817
+ if (value !== undefined) {
818
+ target[prop] = value;
819
+ }
820
+ }
821
+ }
822
+ }
823
+ return target;
824
+ });
825
+ ;
826
+
827
+ /***/ }),
828
+ /* 16 */
829
+ /***/ (function(module, exports) {
830
+
831
+ module.exports = require("core-js/modules/es.string.match.js");
832
+
833
+ /***/ }),
834
+ /* 17 */
835
+ /***/ (function(module, exports) {
836
+
837
+ module.exports = require("core-js/modules/es.object.keys.js");
838
+
839
+ /***/ }),
840
+ /* 18 */
841
+ /***/ (function(module, exports) {
842
+
843
+ module.exports = require("core-js/modules/es.array.filter.js");
844
+
845
+ /***/ }),
846
+ /* 19 */
847
+ /***/ (function(module, exports) {
848
+
849
+ module.exports = require("core-js/modules/es.array.iterator.js");
850
+
851
+ /***/ }),
852
+ /* 20 */
853
+ /***/ (function(module, exports) {
854
+
855
+ module.exports = require("core-js/modules/es.array.map.js");
856
+
857
+ /***/ }),
858
+ /* 21 */,
859
+ /* 22 */
860
+ /***/ (function(module, exports) {
861
+
862
+ module.exports = require("core-js/modules/es.array.splice.js");
863
+
864
+ /***/ }),
865
+ /* 23 */
866
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
867
+
868
+ "use strict";
869
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
870
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
871
+
872
+ var scrollBarWidth;
873
+ /* harmony default export */ __webpack_exports__["a"] = (function () {
874
+ if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return 0;
875
+ if (scrollBarWidth !== undefined) return scrollBarWidth;
876
+ var outer = document.createElement('div');
877
+ outer.className = 'el-scrollbar__wrap';
878
+ outer.style.visibility = 'hidden';
879
+ outer.style.width = '100px';
880
+ outer.style.position = 'absolute';
881
+ outer.style.top = '-9999px';
882
+ document.body.appendChild(outer);
883
+ var widthNoScroll = outer.offsetWidth;
884
+ outer.style.overflow = 'scroll';
885
+ var inner = document.createElement('div');
886
+ inner.style.width = '100%';
887
+ outer.appendChild(inner);
888
+ var widthWithScroll = inner.offsetWidth;
889
+ outer.parentNode.removeChild(outer);
890
+ scrollBarWidth = widthNoScroll - widthWithScroll;
891
+ return scrollBarWidth;
892
+ });
893
+ ;
894
+
895
+ /***/ }),
896
+ /* 24 */
897
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
898
+
899
+ "use strict";
900
+
901
+ // EXPORTS
902
+ __webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ popup_manager; });
903
+
904
+ // EXTERNAL MODULE: external "core-js/modules/es.number.constructor.js"
905
+ var es_number_constructor_js_ = __webpack_require__(6);
110
906
 
111
907
  // EXTERNAL MODULE: external "vue"
112
- var external_vue_ = __webpack_require__(7);
908
+ var external_vue_ = __webpack_require__(0);
113
909
  var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
114
910
 
115
- // CONCATENATED MODULE: ./packages/tooltip/src/main.js
911
+ // EXTERNAL MODULE: ./src/utils/merge.js
912
+ var merge = __webpack_require__(15);
116
913
 
914
+ // EXTERNAL MODULE: external "core-js/modules/es.array.splice.js"
915
+ var es_array_splice_js_ = __webpack_require__(22);
117
916
 
917
+ // EXTERNAL MODULE: external "core-js/modules/es.object.to-string.js"
918
+ var es_object_to_string_js_ = __webpack_require__(3);
118
919
 
920
+ // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec.js"
921
+ var es_regexp_exec_js_ = __webpack_require__(7);
119
922
 
923
+ // EXTERNAL MODULE: external "core-js/modules/es.string.split.js"
924
+ var es_string_split_js_ = __webpack_require__(59);
120
925
 
926
+ // EXTERNAL MODULE: external "core-js/modules/es.string.trim.js"
927
+ var es_string_trim_js_ = __webpack_require__(55);
121
928
 
122
- /* harmony default export */ var main = ({
123
- name: 'ElTooltip',
124
-
125
- mixins: [vue_popper_default.a],
126
-
127
- props: {
128
- openDelay: {
129
- type: Number,
130
- default: 0
131
- },
132
- disabled: Boolean,
133
- manual: Boolean,
134
- effect: {
135
- type: String,
136
- default: 'dark'
137
- },
138
- arrowOffset: {
139
- type: Number,
140
- default: 0
141
- },
142
- popperClass: String,
143
- content: String,
144
- visibleArrow: {
145
- default: true
146
- },
147
- transition: {
148
- type: String,
149
- default: 'el-fade-in-linear'
150
- },
151
- popperOptions: {
152
- default: function _default() {
153
- return {
154
- boundariesPadding: 10,
155
- gpuAcceleration: false
156
- };
157
- }
158
- },
159
- enterable: {
160
- type: Boolean,
161
- default: true
162
- },
163
- hideAfter: {
164
- type: Number,
165
- default: 0
166
- },
167
- tabindex: {
168
- type: Number,
169
- default: 0
170
- }
171
- },
172
-
173
- data: function data() {
174
- return {
175
- tooltipId: 'el-tooltip-' + Object(util_["generateId"])(),
176
- timeoutPending: null,
177
- focusing: false
178
- };
179
- },
180
- beforeCreate: function beforeCreate() {
181
- var _this = this;
182
-
183
- if (this.$isServer) return;
184
-
185
- this.popperVM = new external_vue_default.a({
186
- data: { node: '' },
187
- render: function render(h) {
188
- return this.node;
189
- }
190
- }).$mount();
929
+ // EXTERNAL MODULE: external "core-js/modules/web.dom-collections.for-each.js"
930
+ var web_dom_collections_for_each_js_ = __webpack_require__(10);
191
931
 
192
- this.debounceClose = debounce_default()(200, function () {
193
- return _this.handleClosePopper();
194
- });
195
- },
196
- render: function render(h) {
197
- var _this2 = this;
198
-
199
- if (this.popperVM) {
200
- this.popperVM.node = h(
201
- 'transition',
202
- {
203
- attrs: {
204
- name: this.transition
205
- },
206
- on: {
207
- 'afterLeave': this.doDestroy
208
- }
209
- },
210
- [h(
211
- 'div',
212
- {
213
- on: {
214
- 'mouseleave': function mouseleave() {
215
- _this2.setExpectedState(false);_this2.debounceClose();
216
- },
217
- 'mouseenter': function mouseenter() {
218
- _this2.setExpectedState(true);
219
- }
220
- },
221
-
222
- ref: 'popper',
223
- attrs: { role: 'tooltip',
224
- id: this.tooltipId,
225
- 'aria-hidden': this.disabled || !this.showPopper ? 'true' : 'false'
226
- },
227
- directives: [{
228
- name: 'show',
229
- value: !this.disabled && this.showPopper
230
- }],
231
-
232
- 'class': ['el-tooltip__popper', 'is-' + this.effect, this.popperClass] },
233
- [this.$slots.content || this.content]
234
- )]
235
- );
236
- }
237
-
238
- var firstElement = this.getFirstElement();
239
- if (!firstElement) return null;
240
-
241
- var data = firstElement.data = firstElement.data || {};
242
- data.staticClass = this.addTooltipClass(data.staticClass);
243
-
244
- return firstElement;
245
- },
246
- mounted: function mounted() {
247
- var _this3 = this;
248
-
249
- this.referenceElm = this.$el;
250
- if (this.$el.nodeType === 1) {
251
- this.$el.setAttribute('aria-describedby', this.tooltipId);
252
- this.$el.setAttribute('tabindex', this.tabindex);
253
- Object(dom_["on"])(this.referenceElm, 'mouseenter', this.show);
254
- Object(dom_["on"])(this.referenceElm, 'mouseleave', this.hide);
255
- Object(dom_["on"])(this.referenceElm, 'focus', function () {
256
- if (!_this3.$slots.default || !_this3.$slots.default.length) {
257
- _this3.handleFocus();
258
- return;
259
- }
260
- var instance = _this3.$slots.default[0].componentInstance;
261
- if (instance && instance.focus) {
262
- instance.focus();
263
- } else {
264
- _this3.handleFocus();
265
- }
266
- });
267
- Object(dom_["on"])(this.referenceElm, 'blur', this.handleBlur);
268
- Object(dom_["on"])(this.referenceElm, 'click', this.removeFocusing);
269
- }
270
- // fix issue https://github.com/ElemeFE/element/issues/14424
271
- if (this.value && this.popperVM) {
272
- this.popperVM.$nextTick(function () {
273
- if (_this3.value) {
274
- _this3.updatePopper();
275
- }
276
- });
277
- }
278
- },
279
-
280
- watch: {
281
- focusing: function focusing(val) {
282
- if (val) {
283
- Object(dom_["addClass"])(this.referenceElm, 'focusing');
284
- } else {
285
- Object(dom_["removeClass"])(this.referenceElm, 'focusing');
286
- }
287
- }
288
- },
289
- methods: {
290
- show: function show() {
291
- this.setExpectedState(true);
292
- this.handleShowPopper();
293
- },
294
- hide: function hide() {
295
- this.setExpectedState(false);
296
- this.debounceClose();
297
- },
298
- handleFocus: function handleFocus() {
299
- this.focusing = true;
300
- this.show();
301
- },
302
- handleBlur: function handleBlur() {
303
- this.focusing = false;
304
- this.hide();
305
- },
306
- removeFocusing: function removeFocusing() {
307
- this.focusing = false;
308
- },
309
- addTooltipClass: function addTooltipClass(prev) {
310
- if (!prev) {
311
- return 'el-tooltip';
312
- } else {
313
- return 'el-tooltip ' + prev.replace('el-tooltip', '');
314
- }
315
- },
316
- handleShowPopper: function handleShowPopper() {
317
- var _this4 = this;
318
-
319
- if (!this.expectedState || this.manual) return;
320
- clearTimeout(this.timeout);
321
- this.timeout = setTimeout(function () {
322
- _this4.showPopper = true;
323
- }, this.openDelay);
324
-
325
- if (this.hideAfter > 0) {
326
- this.timeoutPending = setTimeout(function () {
327
- _this4.showPopper = false;
328
- }, this.hideAfter);
329
- }
330
- },
331
- handleClosePopper: function handleClosePopper() {
332
- if (this.enterable && this.expectedState || this.manual) return;
333
- clearTimeout(this.timeout);
932
+ // EXTERNAL MODULE: ./src/utils/dom.js
933
+ var utils_dom = __webpack_require__(1);
334
934
 
335
- if (this.timeoutPending) {
336
- clearTimeout(this.timeoutPending);
337
- }
338
- this.showPopper = false;
935
+ // CONCATENATED MODULE: ./src/utils/popup/popup-manager.js
339
936
 
340
- if (this.disabled) {
341
- this.doDestroy();
342
- }
343
- },
344
- setExpectedState: function setExpectedState(expectedState) {
345
- if (expectedState === false) {
346
- clearTimeout(this.timeoutPending);
347
- }
348
- this.expectedState = expectedState;
349
- },
350
- getFirstElement: function getFirstElement() {
351
- var slots = this.$slots.default;
352
- if (!Array.isArray(slots)) return null;
353
- var element = null;
354
- for (var index = 0; index < slots.length; index++) {
355
- if (slots[index] && slots[index].tag) {
356
- element = slots[index];
357
- break;
358
- };
359
- }
360
- return element;
361
- }
362
- },
363
-
364
- beforeDestroy: function beforeDestroy() {
365
- this.popperVM && this.popperVM.$destroy();
366
- },
367
- destroyed: function destroyed() {
368
- var reference = this.referenceElm;
369
- if (reference.nodeType === 1) {
370
- Object(dom_["off"])(reference, 'mouseenter', this.show);
371
- Object(dom_["off"])(reference, 'mouseleave', this.hide);
372
- Object(dom_["off"])(reference, 'focus', this.handleFocus);
373
- Object(dom_["off"])(reference, 'blur', this.handleBlur);
374
- Object(dom_["off"])(reference, 'click', this.removeFocusing);
375
- }
376
- }
377
- });
378
- // CONCATENATED MODULE: ./packages/tooltip/index.js
379
937
 
380
938
 
381
- /* istanbul ignore next */
382
- main.install = function (Vue) {
383
- Vue.component(main.name, main);
939
+
940
+
941
+
942
+
943
+
944
+ var hasModal = false;
945
+ var hasInitZIndex = false;
946
+ var popup_manager_zIndex;
947
+ var popup_manager_getModal = function getModal() {
948
+ if (external_vue_default.a.prototype.$isServer) return;
949
+ var modalDom = PopupManager.modalDom;
950
+ if (modalDom) {
951
+ hasModal = true;
952
+ } else {
953
+ hasModal = false;
954
+ modalDom = document.createElement('div');
955
+ PopupManager.modalDom = modalDom;
956
+ modalDom.addEventListener('touchmove', function (event) {
957
+ event.preventDefault();
958
+ event.stopPropagation();
959
+ });
960
+ modalDom.addEventListener('click', function () {
961
+ PopupManager.doOnModalClick && PopupManager.doOnModalClick();
962
+ });
963
+ }
964
+ return modalDom;
965
+ };
966
+ var instances = {};
967
+ var PopupManager = {
968
+ modalFade: true,
969
+ getInstance: function getInstance(id) {
970
+ return instances[id];
971
+ },
972
+ register: function register(id, instance) {
973
+ if (id && instance) {
974
+ instances[id] = instance;
975
+ }
976
+ },
977
+ deregister: function deregister(id) {
978
+ if (id) {
979
+ instances[id] = null;
980
+ delete instances[id];
981
+ }
982
+ },
983
+ nextZIndex: function nextZIndex() {
984
+ return PopupManager.zIndex++;
985
+ },
986
+ modalStack: [],
987
+ doOnModalClick: function doOnModalClick() {
988
+ var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
989
+ if (!topItem) return;
990
+ var instance = PopupManager.getInstance(topItem.id);
991
+ if (instance && instance.closeOnClickModal) {
992
+ instance.close();
993
+ }
994
+ },
995
+ openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {
996
+ if (external_vue_default.a.prototype.$isServer) return;
997
+ if (!id || zIndex === undefined) return;
998
+ this.modalFade = modalFade;
999
+ var modalStack = this.modalStack;
1000
+ for (var i = 0, j = modalStack.length; i < j; i++) {
1001
+ var item = modalStack[i];
1002
+ if (item.id === id) {
1003
+ return;
1004
+ }
1005
+ }
1006
+ var modalDom = popup_manager_getModal();
1007
+ Object(utils_dom["a" /* addClass */])(modalDom, 'v-modal');
1008
+ if (this.modalFade && !hasModal) {
1009
+ Object(utils_dom["a" /* addClass */])(modalDom, 'v-modal-enter');
1010
+ }
1011
+ if (modalClass) {
1012
+ var classArr = modalClass.trim().split(/\s+/);
1013
+ classArr.forEach(function (item) {
1014
+ return Object(utils_dom["a" /* addClass */])(modalDom, item);
1015
+ });
1016
+ }
1017
+ setTimeout(function () {
1018
+ Object(utils_dom["i" /* removeClass */])(modalDom, 'v-modal-enter');
1019
+ }, 200);
1020
+ if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {
1021
+ dom.parentNode.appendChild(modalDom);
1022
+ } else {
1023
+ document.body.appendChild(modalDom);
1024
+ }
1025
+ if (zIndex) {
1026
+ modalDom.style.zIndex = zIndex;
1027
+ }
1028
+ modalDom.tabIndex = 0;
1029
+ modalDom.style.display = '';
1030
+ this.modalStack.push({
1031
+ id: id,
1032
+ zIndex: zIndex,
1033
+ modalClass: modalClass
1034
+ });
1035
+ },
1036
+ closeModal: function closeModal(id) {
1037
+ var modalStack = this.modalStack;
1038
+ var modalDom = popup_manager_getModal();
1039
+ if (modalStack.length > 0) {
1040
+ var topItem = modalStack[modalStack.length - 1];
1041
+ if (topItem.id === id) {
1042
+ if (topItem.modalClass) {
1043
+ var classArr = topItem.modalClass.trim().split(/\s+/);
1044
+ classArr.forEach(function (item) {
1045
+ return Object(utils_dom["i" /* removeClass */])(modalDom, item);
1046
+ });
1047
+ }
1048
+ modalStack.pop();
1049
+ if (modalStack.length > 0) {
1050
+ modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;
1051
+ }
1052
+ } else {
1053
+ for (var i = modalStack.length - 1; i >= 0; i--) {
1054
+ if (modalStack[i].id === id) {
1055
+ modalStack.splice(i, 1);
1056
+ break;
1057
+ }
1058
+ }
1059
+ }
1060
+ }
1061
+ if (modalStack.length === 0) {
1062
+ if (this.modalFade) {
1063
+ Object(utils_dom["a" /* addClass */])(modalDom, 'v-modal-leave');
1064
+ }
1065
+ setTimeout(function () {
1066
+ if (modalStack.length === 0) {
1067
+ if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);
1068
+ modalDom.style.display = 'none';
1069
+ PopupManager.modalDom = undefined;
1070
+ }
1071
+ Object(utils_dom["i" /* removeClass */])(modalDom, 'v-modal-leave');
1072
+ }, 200);
1073
+ }
1074
+ }
1075
+ };
1076
+ Object.defineProperty(PopupManager, 'zIndex', {
1077
+ configurable: true,
1078
+ get: function get() {
1079
+ if (!hasInitZIndex) {
1080
+ popup_manager_zIndex = popup_manager_zIndex || (external_vue_default.a.prototype.$ELEMENT || {}).zIndex || 2000;
1081
+ hasInitZIndex = true;
1082
+ }
1083
+ return popup_manager_zIndex;
1084
+ },
1085
+ set: function set(value) {
1086
+ popup_manager_zIndex = value;
1087
+ }
1088
+ });
1089
+ var popup_manager_getTopPopup = function getTopPopup() {
1090
+ if (external_vue_default.a.prototype.$isServer) return;
1091
+ if (PopupManager.modalStack.length > 0) {
1092
+ var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];
1093
+ if (!topPopup) return;
1094
+ var instance = PopupManager.getInstance(topPopup.id);
1095
+ return instance;
1096
+ }
384
1097
  };
1098
+ if (!external_vue_default.a.prototype.$isServer) {
1099
+ // handle `esc` key when the popup is shown
1100
+ window.addEventListener('keydown', function (event) {
1101
+ if (event.keyCode === 27) {
1102
+ var topPopup = popup_manager_getTopPopup();
1103
+ if (topPopup && topPopup.closeOnPressEscape) {
1104
+ topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();
1105
+ }
1106
+ }
1107
+ });
1108
+ }
1109
+ /* harmony default export */ var popup_manager = (PopupManager);
1110
+ // EXTERNAL MODULE: ./src/utils/scrollbar-width.js
1111
+ var scrollbar_width = __webpack_require__(23);
1112
+
1113
+ // CONCATENATED MODULE: ./src/utils/popup/index.js
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+ var idSeed = 1;
1121
+ var scrollBarWidth;
1122
+ /* harmony default export */ var popup = __webpack_exports__["b"] = ({
1123
+ props: {
1124
+ visible: {
1125
+ type: Boolean,
1126
+ default: false
1127
+ },
1128
+ openDelay: {},
1129
+ closeDelay: {},
1130
+ zIndex: {},
1131
+ modal: {
1132
+ type: Boolean,
1133
+ default: false
1134
+ },
1135
+ modalFade: {
1136
+ type: Boolean,
1137
+ default: true
1138
+ },
1139
+ modalClass: {},
1140
+ modalAppendToBody: {
1141
+ type: Boolean,
1142
+ default: false
1143
+ },
1144
+ lockScroll: {
1145
+ type: Boolean,
1146
+ default: true
1147
+ },
1148
+ closeOnPressEscape: {
1149
+ type: Boolean,
1150
+ default: false
1151
+ },
1152
+ closeOnClickModal: {
1153
+ type: Boolean,
1154
+ default: false
1155
+ }
1156
+ },
1157
+ beforeMount: function beforeMount() {
1158
+ this._popupId = 'popup-' + idSeed++;
1159
+ popup_manager.register(this._popupId, this);
1160
+ },
1161
+ beforeDestroy: function beforeDestroy() {
1162
+ popup_manager.deregister(this._popupId);
1163
+ popup_manager.closeModal(this._popupId);
1164
+ this.restoreBodyStyle();
1165
+ },
1166
+ data: function data() {
1167
+ return {
1168
+ opened: false,
1169
+ bodyPaddingRight: null,
1170
+ computedBodyPaddingRight: 0,
1171
+ withoutHiddenClass: true,
1172
+ rendered: false
1173
+ };
1174
+ },
1175
+ watch: {
1176
+ visible: function visible(val) {
1177
+ var _this = this;
1178
+ if (val) {
1179
+ if (this._opening) return;
1180
+ if (!this.rendered) {
1181
+ this.rendered = true;
1182
+ external_vue_default.a.nextTick(function () {
1183
+ _this.open();
1184
+ });
1185
+ } else {
1186
+ this.open();
1187
+ }
1188
+ } else {
1189
+ this.close();
1190
+ }
1191
+ }
1192
+ },
1193
+ methods: {
1194
+ open: function open(options) {
1195
+ var _this2 = this;
1196
+ if (!this.rendered) {
1197
+ this.rendered = true;
1198
+ }
1199
+ var props = Object(merge["a" /* default */])({}, this.$props || this, options);
1200
+ if (this._closeTimer) {
1201
+ clearTimeout(this._closeTimer);
1202
+ this._closeTimer = null;
1203
+ }
1204
+ clearTimeout(this._openTimer);
1205
+ var openDelay = Number(props.openDelay);
1206
+ if (openDelay > 0) {
1207
+ this._openTimer = setTimeout(function () {
1208
+ _this2._openTimer = null;
1209
+ _this2.doOpen(props);
1210
+ }, openDelay);
1211
+ } else {
1212
+ this.doOpen(props);
1213
+ }
1214
+ },
1215
+ doOpen: function doOpen(props) {
1216
+ if (this.$isServer) return;
1217
+ if (this.willOpen && !this.willOpen()) return;
1218
+ if (this.opened) return;
1219
+ this._opening = true;
1220
+ var dom = this.$el;
1221
+ var modal = props.modal;
1222
+ var zIndex = props.zIndex;
1223
+ if (zIndex) {
1224
+ popup_manager.zIndex = zIndex;
1225
+ }
1226
+ if (modal) {
1227
+ if (this._closing) {
1228
+ popup_manager.closeModal(this._popupId);
1229
+ this._closing = false;
1230
+ }
1231
+ popup_manager.openModal(this._popupId, popup_manager.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);
1232
+ if (props.lockScroll) {
1233
+ this.withoutHiddenClass = !Object(utils_dom["d" /* hasClass */])(document.body, 'el-popup-parent--hidden');
1234
+ if (this.withoutHiddenClass) {
1235
+ this.bodyPaddingRight = document.body.style.paddingRight;
1236
+ this.computedBodyPaddingRight = parseInt(Object(utils_dom["c" /* getStyle */])(document.body, 'paddingRight'), 10);
1237
+ }
1238
+ scrollBarWidth = Object(scrollbar_width["a" /* default */])();
1239
+ var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
1240
+ var bodyOverflowY = Object(utils_dom["c" /* getStyle */])(document.body, 'overflowY');
1241
+ if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {
1242
+ document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';
1243
+ }
1244
+ Object(utils_dom["a" /* addClass */])(document.body, 'el-popup-parent--hidden');
1245
+ }
1246
+ }
1247
+ if (getComputedStyle(dom).position === 'static') {
1248
+ dom.style.position = 'absolute';
1249
+ }
1250
+ dom.style.zIndex = popup_manager.nextZIndex();
1251
+ this.opened = true;
1252
+ this.onOpen && this.onOpen();
1253
+ this.doAfterOpen();
1254
+ },
1255
+ doAfterOpen: function doAfterOpen() {
1256
+ this._opening = false;
1257
+ },
1258
+ close: function close() {
1259
+ var _this3 = this;
1260
+ if (this.willClose && !this.willClose()) return;
1261
+ if (this._openTimer !== null) {
1262
+ clearTimeout(this._openTimer);
1263
+ this._openTimer = null;
1264
+ }
1265
+ clearTimeout(this._closeTimer);
1266
+ var closeDelay = Number(this.closeDelay);
1267
+ if (closeDelay > 0) {
1268
+ this._closeTimer = setTimeout(function () {
1269
+ _this3._closeTimer = null;
1270
+ _this3.doClose();
1271
+ }, closeDelay);
1272
+ } else {
1273
+ this.doClose();
1274
+ }
1275
+ },
1276
+ doClose: function doClose() {
1277
+ this._closing = true;
1278
+ this.onClose && this.onClose();
1279
+ if (this.lockScroll) {
1280
+ setTimeout(this.restoreBodyStyle, 200);
1281
+ }
1282
+ this.opened = false;
1283
+ this.doAfterClose();
1284
+ },
1285
+ doAfterClose: function doAfterClose() {
1286
+ popup_manager.closeModal(this._popupId);
1287
+ this._closing = false;
1288
+ },
1289
+ restoreBodyStyle: function restoreBodyStyle() {
1290
+ if (this.modal && this.withoutHiddenClass) {
1291
+ document.body.style.paddingRight = this.bodyPaddingRight;
1292
+ Object(utils_dom["i" /* removeClass */])(document.body, 'el-popup-parent--hidden');
1293
+ }
1294
+ this.withoutHiddenClass = true;
1295
+ }
1296
+ }
1297
+ });
385
1298
 
386
- /* harmony default export */ var tooltip = __webpack_exports__["default"] = (main);
387
1299
 
388
1300
  /***/ }),
1301
+ /* 25 */
1302
+ /***/ (function(module, exports) {
1303
+
1304
+ module.exports = require("core-js/modules/es.array-buffer.constructor.js");
389
1305
 
390
- /***/ 19:
1306
+ /***/ }),
1307
+ /* 26 */
391
1308
  /***/ (function(module, exports) {
392
1309
 
393
- module.exports = require("throttle-debounce/debounce");
1310
+ module.exports = require("core-js/modules/es.array-buffer.slice.js");
394
1311
 
395
1312
  /***/ }),
1313
+ /* 27 */
1314
+ /***/ (function(module, exports) {
1315
+
1316
+ module.exports = require("core-js/modules/es.typed-array.int8-array.js");
396
1317
 
397
- /***/ 2:
1318
+ /***/ }),
1319
+ /* 28 */
398
1320
  /***/ (function(module, exports) {
399
1321
 
400
- module.exports = require("element-ui/lib/utils/dom");
1322
+ module.exports = require("core-js/modules/es.typed-array.copy-within.js");
401
1323
 
402
1324
  /***/ }),
1325
+ /* 29 */
1326
+ /***/ (function(module, exports) {
403
1327
 
404
- /***/ 3:
1328
+ module.exports = require("core-js/modules/es.typed-array.every.js");
1329
+
1330
+ /***/ }),
1331
+ /* 30 */
405
1332
  /***/ (function(module, exports) {
406
1333
 
407
- module.exports = require("element-ui/lib/utils/util");
1334
+ module.exports = require("core-js/modules/es.typed-array.fill.js");
408
1335
 
409
1336
  /***/ }),
1337
+ /* 31 */
1338
+ /***/ (function(module, exports) {
1339
+
1340
+ module.exports = require("core-js/modules/es.typed-array.filter.js");
410
1341
 
411
- /***/ 5:
1342
+ /***/ }),
1343
+ /* 32 */
412
1344
  /***/ (function(module, exports) {
413
1345
 
414
- module.exports = require("element-ui/lib/utils/vue-popper");
1346
+ module.exports = require("core-js/modules/es.typed-array.find.js");
415
1347
 
416
1348
  /***/ }),
1349
+ /* 33 */
1350
+ /***/ (function(module, exports) {
417
1351
 
418
- /***/ 7:
1352
+ module.exports = require("core-js/modules/es.typed-array.find-index.js");
1353
+
1354
+ /***/ }),
1355
+ /* 34 */
419
1356
  /***/ (function(module, exports) {
420
1357
 
421
- module.exports = require("vue");
1358
+ module.exports = require("core-js/modules/es.typed-array.for-each.js");
422
1359
 
423
- /***/ })
1360
+ /***/ }),
1361
+ /* 35 */
1362
+ /***/ (function(module, exports) {
1363
+
1364
+ module.exports = require("core-js/modules/es.typed-array.includes.js");
1365
+
1366
+ /***/ }),
1367
+ /* 36 */
1368
+ /***/ (function(module, exports) {
1369
+
1370
+ module.exports = require("core-js/modules/es.typed-array.index-of.js");
1371
+
1372
+ /***/ }),
1373
+ /* 37 */
1374
+ /***/ (function(module, exports) {
1375
+
1376
+ module.exports = require("core-js/modules/es.typed-array.iterator.js");
424
1377
 
425
- /******/ });
1378
+ /***/ }),
1379
+ /* 38 */
1380
+ /***/ (function(module, exports) {
1381
+
1382
+ module.exports = require("core-js/modules/es.typed-array.join.js");
1383
+
1384
+ /***/ }),
1385
+ /* 39 */
1386
+ /***/ (function(module, exports) {
1387
+
1388
+ module.exports = require("core-js/modules/es.typed-array.last-index-of.js");
1389
+
1390
+ /***/ }),
1391
+ /* 40 */
1392
+ /***/ (function(module, exports) {
1393
+
1394
+ module.exports = require("core-js/modules/es.typed-array.map.js");
1395
+
1396
+ /***/ }),
1397
+ /* 41 */
1398
+ /***/ (function(module, exports) {
1399
+
1400
+ module.exports = require("core-js/modules/es.typed-array.reduce.js");
1401
+
1402
+ /***/ }),
1403
+ /* 42 */
1404
+ /***/ (function(module, exports) {
1405
+
1406
+ module.exports = require("core-js/modules/es.typed-array.reduce-right.js");
1407
+
1408
+ /***/ }),
1409
+ /* 43 */
1410
+ /***/ (function(module, exports) {
1411
+
1412
+ module.exports = require("core-js/modules/es.typed-array.reverse.js");
1413
+
1414
+ /***/ }),
1415
+ /* 44 */
1416
+ /***/ (function(module, exports) {
1417
+
1418
+ module.exports = require("core-js/modules/es.typed-array.set.js");
1419
+
1420
+ /***/ }),
1421
+ /* 45 */
1422
+ /***/ (function(module, exports) {
1423
+
1424
+ module.exports = require("core-js/modules/es.typed-array.slice.js");
1425
+
1426
+ /***/ }),
1427
+ /* 46 */
1428
+ /***/ (function(module, exports) {
1429
+
1430
+ module.exports = require("core-js/modules/es.typed-array.some.js");
1431
+
1432
+ /***/ }),
1433
+ /* 47 */
1434
+ /***/ (function(module, exports) {
1435
+
1436
+ module.exports = require("core-js/modules/es.typed-array.sort.js");
1437
+
1438
+ /***/ }),
1439
+ /* 48 */
1440
+ /***/ (function(module, exports) {
1441
+
1442
+ module.exports = require("core-js/modules/es.typed-array.subarray.js");
1443
+
1444
+ /***/ }),
1445
+ /* 49 */
1446
+ /***/ (function(module, exports) {
1447
+
1448
+ module.exports = require("core-js/modules/es.typed-array.to-locale-string.js");
1449
+
1450
+ /***/ }),
1451
+ /* 50 */
1452
+ /***/ (function(module, exports) {
1453
+
1454
+ module.exports = require("core-js/modules/es.typed-array.to-string.js");
1455
+
1456
+ /***/ }),
1457
+ /* 51 */
1458
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1459
+
1460
+ "use strict";
1461
+ /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
1462
+ /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__);
1463
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
1464
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);
1465
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
1466
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__);
1467
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
1468
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__);
1469
+ /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+ var PopperJS = vue__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.$isServer ? function () {} : __webpack_require__(73);
1476
+ var stop = function stop(e) {
1477
+ return e.stopPropagation();
1478
+ };
1479
+
1480
+ /**
1481
+ * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.
1482
+ * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.
1483
+ * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)
1484
+ * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).
1485
+ * @param {Boolean} [visible=false] Visibility of the popup element.
1486
+ * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.
1487
+ */
1488
+ /* harmony default export */ __webpack_exports__["a"] = ({
1489
+ props: {
1490
+ transformOrigin: {
1491
+ type: [Boolean, String],
1492
+ default: true
1493
+ },
1494
+ placement: {
1495
+ type: String,
1496
+ default: 'bottom'
1497
+ },
1498
+ boundariesPadding: {
1499
+ type: Number,
1500
+ default: 5
1501
+ },
1502
+ reference: {},
1503
+ popper: {},
1504
+ offset: {
1505
+ default: 0
1506
+ },
1507
+ value: Boolean,
1508
+ visibleArrow: Boolean,
1509
+ arrowOffset: {
1510
+ type: Number,
1511
+ default: 35
1512
+ },
1513
+ appendToBody: {
1514
+ type: Boolean,
1515
+ default: true
1516
+ },
1517
+ popperOptions: {
1518
+ type: Object,
1519
+ default: function _default() {
1520
+ return {
1521
+ gpuAcceleration: false
1522
+ };
1523
+ }
1524
+ }
1525
+ },
1526
+ data: function data() {
1527
+ return {
1528
+ showPopper: false,
1529
+ currentPlacement: ''
1530
+ };
1531
+ },
1532
+ watch: {
1533
+ value: {
1534
+ immediate: true,
1535
+ handler: function handler(val) {
1536
+ this.showPopper = val;
1537
+ this.$emit('input', val);
1538
+ }
1539
+ },
1540
+ showPopper: function showPopper(val) {
1541
+ if (this.disabled) return;
1542
+ val ? this.updatePopper() : this.destroyPopper();
1543
+ this.$emit('input', val);
1544
+ }
1545
+ },
1546
+ methods: {
1547
+ createPopper: function createPopper() {
1548
+ var _this = this;
1549
+ if (this.$isServer) return;
1550
+ this.currentPlacement = this.currentPlacement || this.placement;
1551
+ if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {
1552
+ return;
1553
+ }
1554
+ var options = this.popperOptions;
1555
+ var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;
1556
+ var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;
1557
+ if (!reference && this.$slots.reference && this.$slots.reference[0]) {
1558
+ reference = this.referenceElm = this.$slots.reference[0].elm;
1559
+ }
1560
+ if (!popper || !reference) return;
1561
+ if (this.visibleArrow) this.appendArrow(popper);
1562
+ if (this.appendToBody) document.body.appendChild(this.popperElm);
1563
+ if (this.popperJS && this.popperJS.destroy) {
1564
+ this.popperJS.destroy();
1565
+ }
1566
+ options.placement = this.currentPlacement;
1567
+ options.offset = this.offset;
1568
+ options.arrowOffset = this.arrowOffset;
1569
+ this.popperJS = new PopperJS(reference, popper, options);
1570
+ this.popperJS.onCreate(function (_) {
1571
+ _this.$emit('created', _this);
1572
+ _this.resetTransformOrigin();
1573
+ _this.$nextTick(_this.updatePopper);
1574
+ });
1575
+ if (typeof options.onUpdate === 'function') {
1576
+ this.popperJS.onUpdate(options.onUpdate);
1577
+ }
1578
+ this.popperJS._popper.style.zIndex = _popup__WEBPACK_IMPORTED_MODULE_4__[/* PopupManager */ "a"].nextZIndex();
1579
+ this.popperElm.addEventListener('click', stop);
1580
+ },
1581
+ updatePopper: function updatePopper() {
1582
+ var popperJS = this.popperJS;
1583
+ if (popperJS) {
1584
+ popperJS.update();
1585
+ if (popperJS._popper) {
1586
+ popperJS._popper.style.zIndex = _popup__WEBPACK_IMPORTED_MODULE_4__[/* PopupManager */ "a"].nextZIndex();
1587
+ }
1588
+ } else {
1589
+ this.createPopper();
1590
+ }
1591
+ },
1592
+ doDestroy: function doDestroy(forceDestroy) {
1593
+ /* istanbul ignore if */
1594
+ if (!this.popperJS || this.showPopper && !forceDestroy) return;
1595
+ this.popperJS.destroy();
1596
+ this.popperJS = null;
1597
+ },
1598
+ destroyPopper: function destroyPopper() {
1599
+ if (this.popperJS) {
1600
+ this.resetTransformOrigin();
1601
+ }
1602
+ },
1603
+ resetTransformOrigin: function resetTransformOrigin() {
1604
+ if (!this.transformOrigin) return;
1605
+ var placementMap = {
1606
+ top: 'bottom',
1607
+ bottom: 'top',
1608
+ left: 'right',
1609
+ right: 'left'
1610
+ };
1611
+ var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];
1612
+ var origin = placementMap[placement];
1613
+ this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string' ? this.transformOrigin : ['top', 'bottom'].indexOf(placement) > -1 ? "center " + origin : origin + " center";
1614
+ },
1615
+ appendArrow: function appendArrow(element) {
1616
+ var hash;
1617
+ if (this.appended) {
1618
+ return;
1619
+ }
1620
+ this.appended = true;
1621
+ for (var item in element.attributes) {
1622
+ if (/^_v-/.test(element.attributes[item].name)) {
1623
+ hash = element.attributes[item].name;
1624
+ break;
1625
+ }
1626
+ }
1627
+ var arrow = document.createElement('div');
1628
+ if (hash) {
1629
+ arrow.setAttribute(hash, '');
1630
+ }
1631
+ arrow.setAttribute('x-arrow', '');
1632
+ arrow.className = 'popper__arrow';
1633
+ element.appendChild(arrow);
1634
+ }
1635
+ },
1636
+ beforeDestroy: function beforeDestroy() {
1637
+ this.doDestroy(true);
1638
+ if (this.popperElm && this.popperElm.parentNode === document.body) {
1639
+ this.popperElm.removeEventListener('click', stop);
1640
+ document.body.removeChild(this.popperElm);
1641
+ }
1642
+ },
1643
+ // call destroy in keep-alive mode
1644
+ deactivated: function deactivated() {
1645
+ this.$options.beforeDestroy[0].call(this);
1646
+ }
1647
+ });
1648
+
1649
+ /***/ }),
1650
+ /* 52 */,
1651
+ /* 53 */
1652
+ /***/ (function(module, exports) {
1653
+
1654
+ module.exports = require("core-js/modules/es.array.includes.js");
1655
+
1656
+ /***/ }),
1657
+ /* 54 */,
1658
+ /* 55 */
1659
+ /***/ (function(module, exports) {
1660
+
1661
+ module.exports = require("core-js/modules/es.string.trim.js");
1662
+
1663
+ /***/ }),
1664
+ /* 56 */,
1665
+ /* 57 */,
1666
+ /* 58 */,
1667
+ /* 59 */
1668
+ /***/ (function(module, exports) {
1669
+
1670
+ module.exports = require("core-js/modules/es.string.split.js");
1671
+
1672
+ /***/ }),
1673
+ /* 60 */
1674
+ /***/ (function(module, exports) {
1675
+
1676
+ module.exports = require("core-js/modules/es.object.assign.js");
1677
+
1678
+ /***/ }),
1679
+ /* 61 */,
1680
+ /* 62 */,
1681
+ /* 63 */,
1682
+ /* 64 */,
1683
+ /* 65 */,
1684
+ /* 66 */
1685
+ /***/ (function(module, exports) {
1686
+
1687
+ /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */
1688
+ module.exports = __webpack_amd_options__;
1689
+
1690
+ /* WEBPACK VAR INJECTION */}.call(this, {}))
1691
+
1692
+ /***/ }),
1693
+ /* 67 */
1694
+ /***/ (function(module, exports) {
1695
+
1696
+ module.exports = function(originalModule) {
1697
+ if (!originalModule.webpackPolyfill) {
1698
+ var module = Object.create(originalModule);
1699
+ // module.parent = undefined by default
1700
+ if (!module.children) module.children = [];
1701
+ Object.defineProperty(module, "loaded", {
1702
+ enumerable: true,
1703
+ get: function() {
1704
+ return module.l;
1705
+ }
1706
+ });
1707
+ Object.defineProperty(module, "id", {
1708
+ enumerable: true,
1709
+ get: function() {
1710
+ return module.i;
1711
+ }
1712
+ });
1713
+ Object.defineProperty(module, "exports", {
1714
+ enumerable: true
1715
+ });
1716
+ module.webpackPolyfill = 1;
1717
+ }
1718
+ return module;
1719
+ };
1720
+
1721
+
1722
+ /***/ }),
1723
+ /* 68 */,
1724
+ /* 69 */,
1725
+ /* 70 */,
1726
+ /* 71 */,
1727
+ /* 72 */
1728
+ /***/ (function(module, exports) {
1729
+
1730
+ module.exports = require("throttle-debounce/debounce");
1731
+
1732
+ /***/ }),
1733
+ /* 73 */
1734
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1735
+
1736
+ "use strict";
1737
+ __webpack_require__.r(__webpack_exports__);
1738
+ /* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
1739
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__);
1740
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
1741
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__);
1742
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
1743
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_2__);
1744
+ /* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
1745
+ /* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3__);
1746
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74);
1747
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__);
1748
+ /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
1749
+ /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_5__);
1750
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3);
1751
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6__);
1752
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
1753
+ /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_7__);
1754
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);
1755
+ /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8__);
1756
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(12);
1757
+ /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_9__);
1758
+ /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(10);
1759
+ /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_10__);
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+ /**
1772
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
1773
+ * @version {{version}}
1774
+ * @license
1775
+ * Copyright (c) 2016 Federico Zivolo and contributors
1776
+ *
1777
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1778
+ * of this software and associated documentation files (the "Software"), to deal
1779
+ * in the Software without restriction, including without limitation the rights
1780
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1781
+ * copies of the Software, and to permit persons to whom the Software is
1782
+ * furnished to do so, subject to the following conditions:
1783
+ *
1784
+ * The above copyright notice and this permission notice shall be included in all
1785
+ * copies or substantial portions of the Software.
1786
+ *
1787
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1788
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1789
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1790
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1791
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1792
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1793
+ * SOFTWARE.
1794
+ */
1795
+
1796
+ //
1797
+ // Cross module loader
1798
+ // Supported: Node, AMD, Browser globals
1799
+ //
1800
+ ;
1801
+ (function (root, factory) {
1802
+ if (typeof define === 'function' && __webpack_require__(66)) {
1803
+ // AMD. Register as an anonymous module.
1804
+ define(factory);
1805
+ } else if ( true && module.exports) {
1806
+ // Node. Does not work with strict CommonJS, but
1807
+ // only CommonJS-like environments that support module.exports,
1808
+ // like Node.
1809
+ module.exports = factory();
1810
+ } else {
1811
+ // Browser globals (root is window)
1812
+ root.Popper = factory();
1813
+ }
1814
+ })(undefined, function () {
1815
+ 'use strict';
1816
+
1817
+ var root = window;
1818
+
1819
+ // default options
1820
+ var DEFAULTS = {
1821
+ // placement of the popper
1822
+ placement: 'bottom',
1823
+ gpuAcceleration: true,
1824
+ // shift popper from its origin by the given amount of pixels (can be negative)
1825
+ offset: 0,
1826
+ // the element which will act as boundary of the popper
1827
+ boundariesElement: 'viewport',
1828
+ // amount of pixel used to define a minimum distance between the boundaries and the popper
1829
+ boundariesPadding: 5,
1830
+ // popper will try to prevent overflow following this order,
1831
+ // by default, then, it could overflow on the left and on top of the boundariesElement
1832
+ preventOverflowOrder: ['left', 'right', 'top', 'bottom'],
1833
+ // the behavior used by flip to change the placement of the popper
1834
+ flipBehavior: 'flip',
1835
+ arrowElement: '[x-arrow]',
1836
+ arrowOffset: 0,
1837
+ // list of functions used to modify the offsets before they are applied to the popper
1838
+ modifiers: ['shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],
1839
+ modifiersIgnored: [],
1840
+ forceAbsolute: false
1841
+ };
1842
+
1843
+ /**
1844
+ * Create a new Popper.js instance
1845
+ * @constructor Popper
1846
+ * @param {HTMLElement} reference - The reference element used to position the popper
1847
+ * @param {HTMLElement|Object} popper
1848
+ * The HTML element used as popper, or a configuration used to generate the popper.
1849
+ * @param {String} [popper.tagName='div'] The tag name of the generated popper.
1850
+ * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.
1851
+ * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.
1852
+ * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.
1853
+ * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.
1854
+ * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.
1855
+ * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.
1856
+ * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.
1857
+ * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.
1858
+ * @param {Object} options
1859
+ * @param {String} [options.placement=bottom]
1860
+ * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),
1861
+ * left(-start, -end)`
1862
+ *
1863
+ * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']
1864
+ * The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of
1865
+ * its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its
1866
+ * reference element.
1867
+ * By default, it will look for a child node of the popper with the `x-arrow` attribute.
1868
+ *
1869
+ * @param {Boolean} [options.gpuAcceleration=true]
1870
+ * When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the
1871
+ * browser to use the GPU to accelerate the rendering.
1872
+ * If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.
1873
+ *
1874
+ * @param {Number} [options.offset=0]
1875
+ * Amount of pixels the popper will be shifted (can be negative).
1876
+ *
1877
+ * @param {String|Element} [options.boundariesElement='viewport']
1878
+ * The element which will define the boundaries of the popper position, the popper will never be placed outside
1879
+ * of the defined boundaries (except if `keepTogether` is enabled)
1880
+ *
1881
+ * @param {Number} [options.boundariesPadding=5]
1882
+ * Additional padding for the boundaries
1883
+ *
1884
+ * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]
1885
+ * Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,
1886
+ * this means that the last ones will never overflow
1887
+ *
1888
+ * @param {String|Array} [options.flipBehavior='flip']
1889
+ * The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to
1890
+ * overlap its reference element. Defining `flip` as value, the placement will be flipped on
1891
+ * its axis (`right - left`, `top - bottom`).
1892
+ * You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify
1893
+ * how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,
1894
+ * then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)
1895
+ *
1896
+ * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]
1897
+ * List of functions used to modify the data before they are applied to the popper, add your custom functions
1898
+ * to this array to edit the offsets and placement.
1899
+ * The function should reflect the @params and @returns of preventOverflow
1900
+ *
1901
+ * @param {Array} [options.modifiersIgnored=[]]
1902
+ * Put here any built-in modifier name you want to exclude from the modifiers list
1903
+ * The function should reflect the @params and @returns of preventOverflow
1904
+ *
1905
+ * @param {Boolean} [options.removeOnDestroy=false]
1906
+ * Set to true if you want to automatically remove the popper when you call the `destroy` method.
1907
+ */
1908
+ function Popper(reference, popper, options) {
1909
+ this._reference = reference.jquery ? reference[0] : reference;
1910
+ this.state = {};
1911
+
1912
+ // if the popper variable is a configuration object, parse it to generate an HTMLElement
1913
+ // generate a default popper if is not defined
1914
+ var isNotDefined = typeof popper === 'undefined' || popper === null;
1915
+ var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';
1916
+ if (isNotDefined || isConfig) {
1917
+ this._popper = this.parse(isConfig ? popper : {});
1918
+ }
1919
+ // otherwise, use the given HTMLElement as popper
1920
+ else {
1921
+ this._popper = popper.jquery ? popper[0] : popper;
1922
+ }
1923
+
1924
+ // with {} we create a new object with the options inside it
1925
+ this._options = Object.assign({}, DEFAULTS, options);
1926
+
1927
+ // refactoring modifiers' list
1928
+ this._options.modifiers = this._options.modifiers.map(function (modifier) {
1929
+ // remove ignored modifiers
1930
+ if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;
1931
+
1932
+ // set the x-placement attribute before everything else because it could be used to add margins to the popper
1933
+ // margins needs to be calculated to get the correct popper offsets
1934
+ if (modifier === 'applyStyle') {
1935
+ this._popper.setAttribute('x-placement', this._options.placement);
1936
+ }
1937
+
1938
+ // return predefined modifier identified by string or keep the custom one
1939
+ return this.modifiers[modifier] || modifier;
1940
+ }.bind(this));
1941
+
1942
+ // make sure to apply the popper position before any computation
1943
+ this.state.position = this._getPosition(this._popper, this._reference);
1944
+ setStyle(this._popper, {
1945
+ position: this.state.position,
1946
+ top: 0
1947
+ });
1948
+
1949
+ // fire the first update to position the popper in the right place
1950
+ this.update();
1951
+
1952
+ // setup event listeners, they will take care of update the position in specific situations
1953
+ this._setupEventListeners();
1954
+ return this;
1955
+ }
1956
+
1957
+ //
1958
+ // Methods
1959
+ //
1960
+ /**
1961
+ * Destroy the popper
1962
+ * @method
1963
+ * @memberof Popper
1964
+ */
1965
+ Popper.prototype.destroy = function () {
1966
+ this._popper.removeAttribute('x-placement');
1967
+ this._popper.style.left = '';
1968
+ this._popper.style.position = '';
1969
+ this._popper.style.top = '';
1970
+ this._popper.style[getSupportedPropertyName('transform')] = '';
1971
+ this._removeEventListeners();
1972
+
1973
+ // remove the popper if user explicity asked for the deletion on destroy
1974
+ if (this._options.removeOnDestroy) {
1975
+ this._popper.remove();
1976
+ }
1977
+ return this;
1978
+ };
1979
+
1980
+ /**
1981
+ * Updates the position of the popper, computing the new offsets and applying the new style
1982
+ * @method
1983
+ * @memberof Popper
1984
+ */
1985
+ Popper.prototype.update = function () {
1986
+ var data = {
1987
+ instance: this,
1988
+ styles: {}
1989
+ };
1990
+
1991
+ // store placement inside the data object, modifiers will be able to edit `placement` if needed
1992
+ // and refer to _originalPlacement to know the original value
1993
+ data.placement = this._options.placement;
1994
+ data._originalPlacement = this._options.placement;
1995
+
1996
+ // compute the popper and reference offsets and put them inside data.offsets
1997
+ data.offsets = this._getOffsets(this._popper, this._reference, data.placement);
1998
+
1999
+ // get boundaries
2000
+ data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);
2001
+ data = this.runModifiers(data, this._options.modifiers);
2002
+ if (typeof this.state.updateCallback === 'function') {
2003
+ this.state.updateCallback(data);
2004
+ }
2005
+ };
2006
+
2007
+ /**
2008
+ * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.
2009
+ * @method
2010
+ * @memberof Popper
2011
+ * @param {Function} callback
2012
+ */
2013
+ Popper.prototype.onCreate = function (callback) {
2014
+ // the createCallbacks return as first argument the popper instance
2015
+ callback(this);
2016
+ return this;
2017
+ };
2018
+
2019
+ /**
2020
+ * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations
2021
+ * used to style popper and its arrow.
2022
+ * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!
2023
+ * @method
2024
+ * @memberof Popper
2025
+ * @param {Function} callback
2026
+ */
2027
+ Popper.prototype.onUpdate = function (callback) {
2028
+ this.state.updateCallback = callback;
2029
+ return this;
2030
+ };
2031
+
2032
+ /**
2033
+ * Helper used to generate poppers from a configuration file
2034
+ * @method
2035
+ * @memberof Popper
2036
+ * @param config {Object} configuration
2037
+ * @returns {HTMLElement} popper
2038
+ */
2039
+ Popper.prototype.parse = function (config) {
2040
+ var defaultConfig = {
2041
+ tagName: 'div',
2042
+ classNames: ['popper'],
2043
+ attributes: [],
2044
+ parent: root.document.body,
2045
+ content: '',
2046
+ contentType: 'text',
2047
+ arrowTagName: 'div',
2048
+ arrowClassNames: ['popper__arrow'],
2049
+ arrowAttributes: ['x-arrow']
2050
+ };
2051
+ config = Object.assign({}, defaultConfig, config);
2052
+ var d = root.document;
2053
+ var popper = d.createElement(config.tagName);
2054
+ addClassNames(popper, config.classNames);
2055
+ addAttributes(popper, config.attributes);
2056
+ if (config.contentType === 'node') {
2057
+ popper.appendChild(config.content.jquery ? config.content[0] : config.content);
2058
+ } else if (config.contentType === 'html') {
2059
+ popper.innerHTML = config.content;
2060
+ } else {
2061
+ popper.textContent = config.content;
2062
+ }
2063
+ if (config.arrowTagName) {
2064
+ var arrow = d.createElement(config.arrowTagName);
2065
+ addClassNames(arrow, config.arrowClassNames);
2066
+ addAttributes(arrow, config.arrowAttributes);
2067
+ popper.appendChild(arrow);
2068
+ }
2069
+ var parent = config.parent.jquery ? config.parent[0] : config.parent;
2070
+
2071
+ // if the given parent is a string, use it to match an element
2072
+ // if more than one element is matched, the first one will be used as parent
2073
+ // if no elements are matched, the script will throw an error
2074
+ if (typeof parent === 'string') {
2075
+ parent = d.querySelectorAll(config.parent);
2076
+ if (parent.length > 1) {
2077
+ console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');
2078
+ }
2079
+ if (parent.length === 0) {
2080
+ throw 'ERROR: the given `parent` doesn\'t exists!';
2081
+ }
2082
+ parent = parent[0];
2083
+ }
2084
+ // if the given parent is a DOM nodes list or an array of nodes with more than one element,
2085
+ // the first one will be used as parent
2086
+ if (parent.length > 1 && parent instanceof Element === false) {
2087
+ console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');
2088
+ parent = parent[0];
2089
+ }
2090
+
2091
+ // append the generated popper to its parent
2092
+ parent.appendChild(popper);
2093
+ return popper;
2094
+
2095
+ /**
2096
+ * Adds class names to the given element
2097
+ * @function
2098
+ * @ignore
2099
+ * @param {HTMLElement} target
2100
+ * @param {Array} classes
2101
+ */
2102
+ function addClassNames(element, classNames) {
2103
+ classNames.forEach(function (className) {
2104
+ element.classList.add(className);
2105
+ });
2106
+ }
2107
+
2108
+ /**
2109
+ * Adds attributes to the given element
2110
+ * @function
2111
+ * @ignore
2112
+ * @param {HTMLElement} target
2113
+ * @param {Array} attributes
2114
+ * @example
2115
+ * addAttributes(element, [ 'data-info:foobar' ]);
2116
+ */
2117
+ function addAttributes(element, attributes) {
2118
+ attributes.forEach(function (attribute) {
2119
+ element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');
2120
+ });
2121
+ }
2122
+ };
2123
+
2124
+ /**
2125
+ * Helper used to get the position which will be applied to the popper
2126
+ * @method
2127
+ * @memberof Popper
2128
+ * @param config {HTMLElement} popper element
2129
+ * @param reference {HTMLElement} reference element
2130
+ * @returns {String} position
2131
+ */
2132
+ Popper.prototype._getPosition = function (popper, reference) {
2133
+ var container = getOffsetParent(reference);
2134
+ if (this._options.forceAbsolute) {
2135
+ return 'absolute';
2136
+ }
2137
+
2138
+ // Decide if the popper will be fixed
2139
+ // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together
2140
+ var isParentFixed = isFixed(reference, container);
2141
+ return isParentFixed ? 'fixed' : 'absolute';
2142
+ };
2143
+
2144
+ /**
2145
+ * Get offsets to the popper
2146
+ * @method
2147
+ * @memberof Popper
2148
+ * @access private
2149
+ * @param {Element} popper - the popper element
2150
+ * @param {Element} reference - the reference element (the popper will be relative to this)
2151
+ * @returns {Object} An object containing the offsets which will be applied to the popper
2152
+ */
2153
+ Popper.prototype._getOffsets = function (popper, reference, placement) {
2154
+ placement = placement.split('-')[0];
2155
+ var popperOffsets = {};
2156
+ popperOffsets.position = this.state.position;
2157
+ var isParentFixed = popperOffsets.position === 'fixed';
2158
+
2159
+ //
2160
+ // Get reference element position
2161
+ //
2162
+ var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);
2163
+
2164
+ //
2165
+ // Get popper sizes
2166
+ //
2167
+ var popperRect = getOuterSizes(popper);
2168
+
2169
+ //
2170
+ // Compute offsets of popper
2171
+ //
2172
+
2173
+ // depending by the popper placement we have to compute its offsets slightly differently
2174
+ if (['right', 'left'].indexOf(placement) !== -1) {
2175
+ popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;
2176
+ if (placement === 'left') {
2177
+ popperOffsets.left = referenceOffsets.left - popperRect.width;
2178
+ } else {
2179
+ popperOffsets.left = referenceOffsets.right;
2180
+ }
2181
+ } else {
2182
+ popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;
2183
+ if (placement === 'top') {
2184
+ popperOffsets.top = referenceOffsets.top - popperRect.height;
2185
+ } else {
2186
+ popperOffsets.top = referenceOffsets.bottom;
2187
+ }
2188
+ }
2189
+
2190
+ // Add width and height to our offsets object
2191
+ popperOffsets.width = popperRect.width;
2192
+ popperOffsets.height = popperRect.height;
2193
+ return {
2194
+ popper: popperOffsets,
2195
+ reference: referenceOffsets
2196
+ };
2197
+ };
2198
+
2199
+ /**
2200
+ * Setup needed event listeners used to update the popper position
2201
+ * @method
2202
+ * @memberof Popper
2203
+ * @access private
2204
+ */
2205
+ Popper.prototype._setupEventListeners = function () {
2206
+ // NOTE: 1 DOM access here
2207
+ this.state.updateBound = this.update.bind(this);
2208
+ root.addEventListener('resize', this.state.updateBound);
2209
+ // if the boundariesElement is window we don't need to listen for the scroll event
2210
+ if (this._options.boundariesElement !== 'window') {
2211
+ var target = getScrollParent(this._reference);
2212
+ // here it could be both `body` or `documentElement` thanks to Firefox, we then check both
2213
+ if (target === root.document.body || target === root.document.documentElement) {
2214
+ target = root;
2215
+ }
2216
+ target.addEventListener('scroll', this.state.updateBound);
2217
+ this.state.scrollTarget = target;
2218
+ }
2219
+ };
2220
+
2221
+ /**
2222
+ * Remove event listeners used to update the popper position
2223
+ * @method
2224
+ * @memberof Popper
2225
+ * @access private
2226
+ */
2227
+ Popper.prototype._removeEventListeners = function () {
2228
+ // NOTE: 1 DOM access here
2229
+ root.removeEventListener('resize', this.state.updateBound);
2230
+ if (this._options.boundariesElement !== 'window' && this.state.scrollTarget) {
2231
+ this.state.scrollTarget.removeEventListener('scroll', this.state.updateBound);
2232
+ this.state.scrollTarget = null;
2233
+ }
2234
+ this.state.updateBound = null;
2235
+ };
2236
+
2237
+ /**
2238
+ * Computed the boundaries limits and return them
2239
+ * @method
2240
+ * @memberof Popper
2241
+ * @access private
2242
+ * @param {Object} data - Object containing the property "offsets" generated by `_getOffsets`
2243
+ * @param {Number} padding - Boundaries padding
2244
+ * @param {Element} boundariesElement - Element used to define the boundaries
2245
+ * @returns {Object} Coordinates of the boundaries
2246
+ */
2247
+ Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {
2248
+ // NOTE: 1 DOM access here
2249
+ var boundaries = {};
2250
+ var width, height;
2251
+ if (boundariesElement === 'window') {
2252
+ var body = root.document.body,
2253
+ html = root.document.documentElement;
2254
+ height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
2255
+ width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);
2256
+ boundaries = {
2257
+ top: 0,
2258
+ right: width,
2259
+ bottom: height,
2260
+ left: 0
2261
+ };
2262
+ } else if (boundariesElement === 'viewport') {
2263
+ var offsetParent = getOffsetParent(this._popper);
2264
+ var scrollParent = getScrollParent(this._popper);
2265
+ var offsetParentRect = getOffsetRect(offsetParent);
2266
+
2267
+ // Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop`
2268
+ var getScrollTopValue = function getScrollTopValue(element) {
2269
+ return element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop;
2270
+ };
2271
+ var getScrollLeftValue = function getScrollLeftValue(element) {
2272
+ return element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft;
2273
+ };
2274
+
2275
+ // if the popper is fixed we don't have to substract scrolling from the boundaries
2276
+ var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent);
2277
+ var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent);
2278
+ boundaries = {
2279
+ top: 0 - (offsetParentRect.top - scrollTop),
2280
+ right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),
2281
+ bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),
2282
+ left: 0 - (offsetParentRect.left - scrollLeft)
2283
+ };
2284
+ } else {
2285
+ if (getOffsetParent(this._popper) === boundariesElement) {
2286
+ boundaries = {
2287
+ top: 0,
2288
+ left: 0,
2289
+ right: boundariesElement.clientWidth,
2290
+ bottom: boundariesElement.clientHeight
2291
+ };
2292
+ } else {
2293
+ boundaries = getOffsetRect(boundariesElement);
2294
+ }
2295
+ }
2296
+ boundaries.left += padding;
2297
+ boundaries.right -= padding;
2298
+ boundaries.top = boundaries.top + padding;
2299
+ boundaries.bottom = boundaries.bottom - padding;
2300
+ return boundaries;
2301
+ };
2302
+
2303
+ /**
2304
+ * Loop trough the list of modifiers and run them in order, each of them will then edit the data object
2305
+ * @method
2306
+ * @memberof Popper
2307
+ * @access public
2308
+ * @param {Object} data
2309
+ * @param {Array} modifiers
2310
+ * @param {Function} ends
2311
+ */
2312
+ Popper.prototype.runModifiers = function (data, modifiers, ends) {
2313
+ var modifiersToRun = modifiers.slice();
2314
+ if (ends !== undefined) {
2315
+ modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));
2316
+ }
2317
+ modifiersToRun.forEach(function (modifier) {
2318
+ if (isFunction(modifier)) {
2319
+ data = modifier.call(this, data);
2320
+ }
2321
+ }.bind(this));
2322
+ return data;
2323
+ };
2324
+
2325
+ /**
2326
+ * Helper used to know if the given modifier depends from another one.
2327
+ * @method
2328
+ * @memberof Popper
2329
+ * @param {String} requesting - name of requesting modifier
2330
+ * @param {String} requested - name of requested modifier
2331
+ * @returns {Boolean}
2332
+ */
2333
+ Popper.prototype.isModifierRequired = function (requesting, requested) {
2334
+ var index = getArrayKeyIndex(this._options.modifiers, requesting);
2335
+ return !!this._options.modifiers.slice(0, index).filter(function (modifier) {
2336
+ return modifier === requested;
2337
+ }).length;
2338
+ };
2339
+
2340
+ //
2341
+ // Modifiers
2342
+ //
2343
+
2344
+ /**
2345
+ * Modifiers list
2346
+ * @namespace Popper.modifiers
2347
+ * @memberof Popper
2348
+ * @type {Object}
2349
+ */
2350
+ Popper.prototype.modifiers = {};
2351
+
2352
+ /**
2353
+ * Apply the computed styles to the popper element
2354
+ * @method
2355
+ * @memberof Popper.modifiers
2356
+ * @argument {Object} data - The data object generated by `update` method
2357
+ * @returns {Object} The same data object
2358
+ */
2359
+ Popper.prototype.modifiers.applyStyle = function (data) {
2360
+ // apply the final offsets to the popper
2361
+ // NOTE: 1 DOM access here
2362
+ var styles = {
2363
+ position: data.offsets.popper.position
2364
+ };
2365
+
2366
+ // round top and left to avoid blurry text
2367
+ var left = Math.round(data.offsets.popper.left);
2368
+ var top = Math.round(data.offsets.popper.top);
2369
+
2370
+ // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper
2371
+ // we automatically use the supported prefixed version if needed
2372
+ var prefixedProperty;
2373
+ if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {
2374
+ styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
2375
+ styles.top = 0;
2376
+ styles.left = 0;
2377
+ }
2378
+ // othwerise, we use the standard `left` and `top` properties
2379
+ else {
2380
+ styles.left = left;
2381
+ styles.top = top;
2382
+ }
2383
+
2384
+ // any property present in `data.styles` will be applied to the popper,
2385
+ // in this way we can make the 3rd party modifiers add custom styles to it
2386
+ // Be aware, modifiers could override the properties defined in the previous
2387
+ // lines of this modifier!
2388
+ Object.assign(styles, data.styles);
2389
+ setStyle(this._popper, styles);
2390
+
2391
+ // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)
2392
+ // NOTE: 1 DOM access here
2393
+ this._popper.setAttribute('x-placement', data.placement);
2394
+
2395
+ // if the arrow modifier is required and the arrow style has been computed, apply the arrow style
2396
+ if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) {
2397
+ setStyle(data.arrowElement, data.offsets.arrow);
2398
+ }
2399
+ return data;
2400
+ };
2401
+
2402
+ /**
2403
+ * Modifier used to shift the popper on the start or end of its reference element side
2404
+ * @method
2405
+ * @memberof Popper.modifiers
2406
+ * @argument {Object} data - The data object generated by `update` method
2407
+ * @returns {Object} The data object, properly modified
2408
+ */
2409
+ Popper.prototype.modifiers.shift = function (data) {
2410
+ var placement = data.placement;
2411
+ var basePlacement = placement.split('-')[0];
2412
+ var shiftVariation = placement.split('-')[1];
2413
+
2414
+ // if shift shiftVariation is specified, run the modifier
2415
+ if (shiftVariation) {
2416
+ var reference = data.offsets.reference;
2417
+ var popper = getPopperClientRect(data.offsets.popper);
2418
+ var shiftOffsets = {
2419
+ y: {
2420
+ start: {
2421
+ top: reference.top
2422
+ },
2423
+ end: {
2424
+ top: reference.top + reference.height - popper.height
2425
+ }
2426
+ },
2427
+ x: {
2428
+ start: {
2429
+ left: reference.left
2430
+ },
2431
+ end: {
2432
+ left: reference.left + reference.width - popper.width
2433
+ }
2434
+ }
2435
+ };
2436
+ var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';
2437
+ data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);
2438
+ }
2439
+ return data;
2440
+ };
2441
+
2442
+ /**
2443
+ * Modifier used to make sure the popper does not overflows from it's boundaries
2444
+ * @method
2445
+ * @memberof Popper.modifiers
2446
+ * @argument {Object} data - The data object generated by `update` method
2447
+ * @returns {Object} The data object, properly modified
2448
+ */
2449
+ Popper.prototype.modifiers.preventOverflow = function (data) {
2450
+ var order = this._options.preventOverflowOrder;
2451
+ var popper = getPopperClientRect(data.offsets.popper);
2452
+ var check = {
2453
+ left: function left() {
2454
+ var left = popper.left;
2455
+ if (popper.left < data.boundaries.left) {
2456
+ left = Math.max(popper.left, data.boundaries.left);
2457
+ }
2458
+ return {
2459
+ left: left
2460
+ };
2461
+ },
2462
+ right: function right() {
2463
+ var left = popper.left;
2464
+ if (popper.right > data.boundaries.right) {
2465
+ left = Math.min(popper.left, data.boundaries.right - popper.width);
2466
+ }
2467
+ return {
2468
+ left: left
2469
+ };
2470
+ },
2471
+ top: function top() {
2472
+ var top = popper.top;
2473
+ if (popper.top < data.boundaries.top) {
2474
+ top = Math.max(popper.top, data.boundaries.top);
2475
+ }
2476
+ return {
2477
+ top: top
2478
+ };
2479
+ },
2480
+ bottom: function bottom() {
2481
+ var top = popper.top;
2482
+ if (popper.bottom > data.boundaries.bottom) {
2483
+ top = Math.min(popper.top, data.boundaries.bottom - popper.height);
2484
+ }
2485
+ return {
2486
+ top: top
2487
+ };
2488
+ }
2489
+ };
2490
+ order.forEach(function (direction) {
2491
+ data.offsets.popper = Object.assign(popper, check[direction]());
2492
+ });
2493
+ return data;
2494
+ };
2495
+
2496
+ /**
2497
+ * Modifier used to make sure the popper is always near its reference
2498
+ * @method
2499
+ * @memberof Popper.modifiers
2500
+ * @argument {Object} data - The data object generated by _update method
2501
+ * @returns {Object} The data object, properly modified
2502
+ */
2503
+ Popper.prototype.modifiers.keepTogether = function (data) {
2504
+ var popper = getPopperClientRect(data.offsets.popper);
2505
+ var reference = data.offsets.reference;
2506
+ var f = Math.floor;
2507
+ if (popper.right < f(reference.left)) {
2508
+ data.offsets.popper.left = f(reference.left) - popper.width;
2509
+ }
2510
+ if (popper.left > f(reference.right)) {
2511
+ data.offsets.popper.left = f(reference.right);
2512
+ }
2513
+ if (popper.bottom < f(reference.top)) {
2514
+ data.offsets.popper.top = f(reference.top) - popper.height;
2515
+ }
2516
+ if (popper.top > f(reference.bottom)) {
2517
+ data.offsets.popper.top = f(reference.bottom);
2518
+ }
2519
+ return data;
2520
+ };
2521
+
2522
+ /**
2523
+ * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.
2524
+ * Requires the `preventOverflow` modifier before it in order to work.
2525
+ * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!
2526
+ * @method
2527
+ * @memberof Popper.modifiers
2528
+ * @argument {Object} data - The data object generated by _update method
2529
+ * @returns {Object} The data object, properly modified
2530
+ */
2531
+ Popper.prototype.modifiers.flip = function (data) {
2532
+ // check if preventOverflow is in the list of modifiers before the flip modifier.
2533
+ // otherwise flip would not work as expected.
2534
+ if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {
2535
+ console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');
2536
+ return data;
2537
+ }
2538
+ if (data.flipped && data.placement === data._originalPlacement) {
2539
+ // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
2540
+ return data;
2541
+ }
2542
+ var placement = data.placement.split('-')[0];
2543
+ var placementOpposite = getOppositePlacement(placement);
2544
+ var variation = data.placement.split('-')[1] || '';
2545
+ var flipOrder = [];
2546
+ if (this._options.flipBehavior === 'flip') {
2547
+ flipOrder = [placement, placementOpposite];
2548
+ } else {
2549
+ flipOrder = this._options.flipBehavior;
2550
+ }
2551
+ flipOrder.forEach(function (step, index) {
2552
+ if (placement !== step || flipOrder.length === index + 1) {
2553
+ return;
2554
+ }
2555
+ placement = data.placement.split('-')[0];
2556
+ placementOpposite = getOppositePlacement(placement);
2557
+ var popperOffsets = getPopperClientRect(data.offsets.popper);
2558
+
2559
+ // this boolean is used to distinguish right and bottom from top and left
2560
+ // they need different computations to get flipped
2561
+ var a = ['right', 'bottom'].indexOf(placement) !== -1;
2562
+
2563
+ // using Math.floor because the reference offsets may contain decimals we are not going to consider here
2564
+ if (a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) || !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])) {
2565
+ // we'll use this boolean to detect any flip loop
2566
+ data.flipped = true;
2567
+ data.placement = flipOrder[index + 1];
2568
+ if (variation) {
2569
+ data.placement += '-' + variation;
2570
+ }
2571
+ data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;
2572
+ data = this.runModifiers(data, this._options.modifiers, this._flip);
2573
+ }
2574
+ }.bind(this));
2575
+ return data;
2576
+ };
2577
+
2578
+ /**
2579
+ * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.
2580
+ * The offsets will shift the popper on the side of its reference element.
2581
+ * @method
2582
+ * @memberof Popper.modifiers
2583
+ * @argument {Object} data - The data object generated by _update method
2584
+ * @returns {Object} The data object, properly modified
2585
+ */
2586
+ Popper.prototype.modifiers.offset = function (data) {
2587
+ var offset = this._options.offset;
2588
+ var popper = data.offsets.popper;
2589
+ if (data.placement.indexOf('left') !== -1) {
2590
+ popper.top -= offset;
2591
+ } else if (data.placement.indexOf('right') !== -1) {
2592
+ popper.top += offset;
2593
+ } else if (data.placement.indexOf('top') !== -1) {
2594
+ popper.left -= offset;
2595
+ } else if (data.placement.indexOf('bottom') !== -1) {
2596
+ popper.left += offset;
2597
+ }
2598
+ return data;
2599
+ };
2600
+
2601
+ /**
2602
+ * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element
2603
+ * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed
2604
+ * @method
2605
+ * @memberof Popper.modifiers
2606
+ * @argument {Object} data - The data object generated by _update method
2607
+ * @returns {Object} The data object, properly modified
2608
+ */
2609
+ Popper.prototype.modifiers.arrow = function (data) {
2610
+ var arrow = this._options.arrowElement;
2611
+ var arrowOffset = this._options.arrowOffset;
2612
+
2613
+ // if the arrowElement is a string, suppose it's a CSS selector
2614
+ if (typeof arrow === 'string') {
2615
+ arrow = this._popper.querySelector(arrow);
2616
+ }
2617
+
2618
+ // if arrow element is not found, don't run the modifier
2619
+ if (!arrow) {
2620
+ return data;
2621
+ }
2622
+
2623
+ // the arrow element must be child of its popper
2624
+ if (!this._popper.contains(arrow)) {
2625
+ console.warn('WARNING: `arrowElement` must be child of its popper element!');
2626
+ return data;
2627
+ }
2628
+
2629
+ // arrow depends on keepTogether in order to work
2630
+ if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {
2631
+ console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');
2632
+ return data;
2633
+ }
2634
+ var arrowStyle = {};
2635
+ var placement = data.placement.split('-')[0];
2636
+ var popper = getPopperClientRect(data.offsets.popper);
2637
+ var reference = data.offsets.reference;
2638
+ var isVertical = ['left', 'right'].indexOf(placement) !== -1;
2639
+ var len = isVertical ? 'height' : 'width';
2640
+ var side = isVertical ? 'top' : 'left';
2641
+ var translate = isVertical ? 'translateY' : 'translateX';
2642
+ var altSide = isVertical ? 'left' : 'top';
2643
+ var opSide = isVertical ? 'bottom' : 'right';
2644
+ var arrowSize = getOuterSizes(arrow)[len];
2645
+
2646
+ //
2647
+ // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction
2648
+ //
2649
+
2650
+ // top/left side
2651
+ if (reference[opSide] - arrowSize < popper[side]) {
2652
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);
2653
+ }
2654
+ // bottom/right side
2655
+ if (reference[side] + arrowSize > popper[opSide]) {
2656
+ data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];
2657
+ }
2658
+
2659
+ // compute center of the popper
2660
+ var center = reference[side] + (arrowOffset || reference[len] / 2 - arrowSize / 2);
2661
+ var sideValue = center - popper[side];
2662
+
2663
+ // prevent arrow from being placed not contiguously to its popper
2664
+ sideValue = Math.max(Math.min(popper[len] - arrowSize - 8, sideValue), 8);
2665
+ arrowStyle[side] = sideValue;
2666
+ arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow
2667
+
2668
+ data.offsets.arrow = arrowStyle;
2669
+ data.arrowElement = arrow;
2670
+ return data;
2671
+ };
2672
+
2673
+ //
2674
+ // Helpers
2675
+ //
2676
+
2677
+ /**
2678
+ * Get the outer sizes of the given element (offset size + margins)
2679
+ * @function
2680
+ * @ignore
2681
+ * @argument {Element} element
2682
+ * @returns {Object} object containing width and height properties
2683
+ */
2684
+ function getOuterSizes(element) {
2685
+ // NOTE: 1 DOM access here
2686
+ var _display = element.style.display,
2687
+ _visibility = element.style.visibility;
2688
+ element.style.display = 'block';
2689
+ element.style.visibility = 'hidden';
2690
+ var calcWidthToForceRepaint = element.offsetWidth;
2691
+
2692
+ // original method
2693
+ var styles = root.getComputedStyle(element);
2694
+ var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
2695
+ var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
2696
+ var result = {
2697
+ width: element.offsetWidth + y,
2698
+ height: element.offsetHeight + x
2699
+ };
2700
+
2701
+ // reset element styles
2702
+ element.style.display = _display;
2703
+ element.style.visibility = _visibility;
2704
+ return result;
2705
+ }
2706
+
2707
+ /**
2708
+ * Get the opposite placement of the given one/
2709
+ * @function
2710
+ * @ignore
2711
+ * @argument {String} placement
2712
+ * @returns {String} flipped placement
2713
+ */
2714
+ function getOppositePlacement(placement) {
2715
+ var hash = {
2716
+ left: 'right',
2717
+ right: 'left',
2718
+ bottom: 'top',
2719
+ top: 'bottom'
2720
+ };
2721
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
2722
+ return hash[matched];
2723
+ });
2724
+ }
2725
+
2726
+ /**
2727
+ * Given the popper offsets, generate an output similar to getBoundingClientRect
2728
+ * @function
2729
+ * @ignore
2730
+ * @argument {Object} popperOffsets
2731
+ * @returns {Object} ClientRect like output
2732
+ */
2733
+ function getPopperClientRect(popperOffsets) {
2734
+ var offsets = Object.assign({}, popperOffsets);
2735
+ offsets.right = offsets.left + offsets.width;
2736
+ offsets.bottom = offsets.top + offsets.height;
2737
+ return offsets;
2738
+ }
2739
+
2740
+ /**
2741
+ * Given an array and the key to find, returns its index
2742
+ * @function
2743
+ * @ignore
2744
+ * @argument {Array} arr
2745
+ * @argument keyToFind
2746
+ * @returns index or null
2747
+ */
2748
+ function getArrayKeyIndex(arr, keyToFind) {
2749
+ var i = 0,
2750
+ key;
2751
+ for (key in arr) {
2752
+ if (arr[key] === keyToFind) {
2753
+ return i;
2754
+ }
2755
+ i++;
2756
+ }
2757
+ return null;
2758
+ }
2759
+
2760
+ /**
2761
+ * Get CSS computed property of the given element
2762
+ * @function
2763
+ * @ignore
2764
+ * @argument {Eement} element
2765
+ * @argument {String} property
2766
+ */
2767
+ function getStyleComputedProperty(element, property) {
2768
+ // NOTE: 1 DOM access here
2769
+ var css = root.getComputedStyle(element, null);
2770
+ return css[property];
2771
+ }
2772
+
2773
+ /**
2774
+ * Returns the offset parent of the given element
2775
+ * @function
2776
+ * @ignore
2777
+ * @argument {Element} element
2778
+ * @returns {Element} offset parent
2779
+ */
2780
+ function getOffsetParent(element) {
2781
+ // NOTE: 1 DOM access here
2782
+ var offsetParent = element.offsetParent;
2783
+ return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;
2784
+ }
2785
+
2786
+ /**
2787
+ * Returns the scrolling parent of the given element
2788
+ * @function
2789
+ * @ignore
2790
+ * @argument {Element} element
2791
+ * @returns {Element} offset parent
2792
+ */
2793
+ function getScrollParent(element) {
2794
+ var parent = element.parentNode;
2795
+ if (!parent) {
2796
+ return element;
2797
+ }
2798
+ if (parent === root.document) {
2799
+ // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is
2800
+ // greater than 0 and return the proper element
2801
+ if (root.document.body.scrollTop || root.document.body.scrollLeft) {
2802
+ return root.document.body;
2803
+ } else {
2804
+ return root.document.documentElement;
2805
+ }
2806
+ }
2807
+
2808
+ // Firefox want us to check `-x` and `-y` variations as well
2809
+ if (['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-y')) !== -1) {
2810
+ // If the detected scrollParent is body, we perform an additional check on its parentNode
2811
+ // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise
2812
+ // fixes issue #65
2813
+ return parent;
2814
+ }
2815
+ return getScrollParent(element.parentNode);
2816
+ }
2817
+
2818
+ /**
2819
+ * Check if the given element is fixed or is inside a fixed parent
2820
+ * @function
2821
+ * @ignore
2822
+ * @argument {Element} element
2823
+ * @argument {Element} customContainer
2824
+ * @returns {Boolean} answer to "isFixed?"
2825
+ */
2826
+ function isFixed(element) {
2827
+ if (element === root.document.body) {
2828
+ return false;
2829
+ }
2830
+ if (getStyleComputedProperty(element, 'position') === 'fixed') {
2831
+ return true;
2832
+ }
2833
+ return element.parentNode ? isFixed(element.parentNode) : element;
2834
+ }
2835
+
2836
+ /**
2837
+ * Set the style to the given popper
2838
+ * @function
2839
+ * @ignore
2840
+ * @argument {Element} element - Element to apply the style to
2841
+ * @argument {Object} styles - Object with a list of properties and values which will be applied to the element
2842
+ */
2843
+ function setStyle(element, styles) {
2844
+ function is_numeric(n) {
2845
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
2846
+ }
2847
+ Object.keys(styles).forEach(function (prop) {
2848
+ var unit = '';
2849
+ // add unit if the value is numeric and is one of the following
2850
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {
2851
+ unit = 'px';
2852
+ }
2853
+ element.style[prop] = styles[prop] + unit;
2854
+ });
2855
+ }
2856
+
2857
+ /**
2858
+ * Check if the given variable is a function
2859
+ * @function
2860
+ * @ignore
2861
+ * @argument {*} functionToCheck - variable to check
2862
+ * @returns {Boolean} answer to: is a function?
2863
+ */
2864
+ function isFunction(functionToCheck) {
2865
+ var getType = {};
2866
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
2867
+ }
2868
+
2869
+ /**
2870
+ * Get the position of the given element, relative to its offset parent
2871
+ * @function
2872
+ * @ignore
2873
+ * @param {Element} element
2874
+ * @return {Object} position - Coordinates of the element and its `scrollTop`
2875
+ */
2876
+ function getOffsetRect(element) {
2877
+ var elementRect = {
2878
+ width: element.offsetWidth,
2879
+ height: element.offsetHeight,
2880
+ left: element.offsetLeft,
2881
+ top: element.offsetTop
2882
+ };
2883
+ elementRect.right = elementRect.left + elementRect.width;
2884
+ elementRect.bottom = elementRect.top + elementRect.height;
2885
+
2886
+ // position
2887
+ return elementRect;
2888
+ }
2889
+
2890
+ /**
2891
+ * Get bounding client rect of given element
2892
+ * @function
2893
+ * @ignore
2894
+ * @param {HTMLElement} element
2895
+ * @return {Object} client rect
2896
+ */
2897
+ function getBoundingClientRect(element) {
2898
+ var rect = element.getBoundingClientRect();
2899
+
2900
+ // whether the IE version is lower than 11
2901
+ var isIE = navigator.userAgent.indexOf("MSIE") != -1;
2902
+
2903
+ // fix ie document bounding top always 0 bug
2904
+ var rectTop = isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top;
2905
+ return {
2906
+ left: rect.left,
2907
+ top: rectTop,
2908
+ right: rect.right,
2909
+ bottom: rect.bottom,
2910
+ width: rect.right - rect.left,
2911
+ height: rect.bottom - rectTop
2912
+ };
2913
+ }
2914
+
2915
+ /**
2916
+ * Given an element and one of its parents, return the offset
2917
+ * @function
2918
+ * @ignore
2919
+ * @param {HTMLElement} element
2920
+ * @param {HTMLElement} parent
2921
+ * @return {Object} rect
2922
+ */
2923
+ function getOffsetRectRelativeToCustomParent(element, parent, fixed) {
2924
+ var elementRect = getBoundingClientRect(element);
2925
+ var parentRect = getBoundingClientRect(parent);
2926
+ if (fixed) {
2927
+ var scrollParent = getScrollParent(parent);
2928
+ parentRect.top += scrollParent.scrollTop;
2929
+ parentRect.bottom += scrollParent.scrollTop;
2930
+ parentRect.left += scrollParent.scrollLeft;
2931
+ parentRect.right += scrollParent.scrollLeft;
2932
+ }
2933
+ var rect = {
2934
+ top: elementRect.top - parentRect.top,
2935
+ left: elementRect.left - parentRect.left,
2936
+ bottom: elementRect.top - parentRect.top + elementRect.height,
2937
+ right: elementRect.left - parentRect.left + elementRect.width,
2938
+ width: elementRect.width,
2939
+ height: elementRect.height
2940
+ };
2941
+ return rect;
2942
+ }
2943
+
2944
+ /**
2945
+ * Get the prefixed supported property name
2946
+ * @function
2947
+ * @ignore
2948
+ * @argument {String} property (camelCase)
2949
+ * @returns {String} prefixed property (camelCase)
2950
+ */
2951
+ function getSupportedPropertyName(property) {
2952
+ var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];
2953
+ for (var i = 0; i < prefixes.length; i++) {
2954
+ var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;
2955
+ if (typeof root.document.body.style[toCheck] !== 'undefined') {
2956
+ return toCheck;
2957
+ }
2958
+ }
2959
+ return null;
2960
+ }
2961
+
2962
+ /**
2963
+ * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source
2964
+ * objects to a target object. It will return the target object.
2965
+ * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway
2966
+ * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
2967
+ * @function
2968
+ * @ignore
2969
+ */
2970
+ if (!Object.assign) {
2971
+ Object.defineProperty(Object, 'assign', {
2972
+ enumerable: false,
2973
+ configurable: true,
2974
+ writable: true,
2975
+ value: function value(target) {
2976
+ if (target === undefined || target === null) {
2977
+ throw new TypeError('Cannot convert first argument to object');
2978
+ }
2979
+ var to = Object(target);
2980
+ for (var i = 1; i < arguments.length; i++) {
2981
+ var nextSource = arguments[i];
2982
+ if (nextSource === undefined || nextSource === null) {
2983
+ continue;
2984
+ }
2985
+ nextSource = Object(nextSource);
2986
+ var keysArray = Object.keys(nextSource);
2987
+ for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
2988
+ var nextKey = keysArray[nextIndex];
2989
+ var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
2990
+ if (desc !== undefined && desc.enumerable) {
2991
+ to[nextKey] = nextSource[nextKey];
2992
+ }
2993
+ }
2994
+ }
2995
+ return to;
2996
+ }
2997
+ });
2998
+ }
2999
+ return Popper;
3000
+ });
3001
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(67)(module)))
3002
+
3003
+ /***/ }),
3004
+ /* 74 */
3005
+ /***/ (function(module, exports) {
3006
+
3007
+ module.exports = require("core-js/modules/es.object.get-own-property-descriptor.js");
3008
+
3009
+ /***/ }),
3010
+ /* 75 */,
3011
+ /* 76 */,
3012
+ /* 77 */,
3013
+ /* 78 */,
3014
+ /* 79 */,
3015
+ /* 80 */,
3016
+ /* 81 */,
3017
+ /* 82 */,
3018
+ /* 83 */,
3019
+ /* 84 */,
3020
+ /* 85 */,
3021
+ /* 86 */,
3022
+ /* 87 */,
3023
+ /* 88 */,
3024
+ /* 89 */,
3025
+ /* 90 */,
3026
+ /* 91 */,
3027
+ /* 92 */,
3028
+ /* 93 */,
3029
+ /* 94 */,
3030
+ /* 95 */,
3031
+ /* 96 */,
3032
+ /* 97 */
3033
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3034
+
3035
+ "use strict";
3036
+ // ESM COMPAT FLAG
3037
+ __webpack_require__.r(__webpack_exports__);
3038
+
3039
+ // EXTERNAL MODULE: external "core-js/modules/es.function.name.js"
3040
+ var es_function_name_js_ = __webpack_require__(5);
3041
+
3042
+ // EXTERNAL MODULE: external "core-js/modules/es.number.constructor.js"
3043
+ var es_number_constructor_js_ = __webpack_require__(6);
3044
+
3045
+ // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec.js"
3046
+ var es_regexp_exec_js_ = __webpack_require__(7);
3047
+
3048
+ // EXTERNAL MODULE: external "core-js/modules/es.string.replace.js"
3049
+ var es_string_replace_js_ = __webpack_require__(12);
3050
+
3051
+ // EXTERNAL MODULE: ./src/utils/vue-popper.js
3052
+ var vue_popper = __webpack_require__(51);
3053
+
3054
+ // EXTERNAL MODULE: external "throttle-debounce/debounce"
3055
+ var debounce_ = __webpack_require__(72);
3056
+ var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);
3057
+
3058
+ // EXTERNAL MODULE: ./src/utils/dom.js
3059
+ var dom = __webpack_require__(1);
3060
+
3061
+ // EXTERNAL MODULE: ./src/utils/util.js
3062
+ var util = __webpack_require__(4);
3063
+
3064
+ // EXTERNAL MODULE: external "vue"
3065
+ var external_vue_ = __webpack_require__(0);
3066
+ var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
3067
+
3068
+ // CONCATENATED MODULE: ./packages/tooltip/src/main.js
3069
+
3070
+
3071
+
3072
+
3073
+
3074
+
3075
+
3076
+
3077
+ /* harmony default export */ var main = ({
3078
+ name: 'ElTooltip',
3079
+ mixins: [vue_popper["a" /* default */]],
3080
+ props: {
3081
+ openDelay: {
3082
+ type: Number,
3083
+ default: 0
3084
+ },
3085
+ disabled: Boolean,
3086
+ manual: Boolean,
3087
+ effect: {
3088
+ type: String,
3089
+ default: 'dark'
3090
+ },
3091
+ arrowOffset: {
3092
+ type: Number,
3093
+ default: 0
3094
+ },
3095
+ popperClass: String,
3096
+ content: String,
3097
+ visibleArrow: {
3098
+ default: true
3099
+ },
3100
+ transition: {
3101
+ type: String,
3102
+ default: 'el-fade-in-linear'
3103
+ },
3104
+ popperOptions: {
3105
+ default: function _default() {
3106
+ return {
3107
+ boundariesPadding: 10,
3108
+ gpuAcceleration: false
3109
+ };
3110
+ }
3111
+ },
3112
+ enterable: {
3113
+ type: Boolean,
3114
+ default: true
3115
+ },
3116
+ hideAfter: {
3117
+ type: Number,
3118
+ default: 0
3119
+ },
3120
+ tabindex: {
3121
+ type: Number,
3122
+ default: 0
3123
+ }
3124
+ },
3125
+ data: function data() {
3126
+ return {
3127
+ tooltipId: "el-tooltip-" + Object(util["g" /* generateId */])(),
3128
+ timeoutPending: null,
3129
+ focusing: false
3130
+ };
3131
+ },
3132
+ beforeCreate: function beforeCreate() {
3133
+ var _this = this;
3134
+ if (this.$isServer) return;
3135
+ this.popperVM = new external_vue_default.a({
3136
+ data: {
3137
+ node: ''
3138
+ },
3139
+ render: function render(h) {
3140
+ return this.node;
3141
+ }
3142
+ }).$mount();
3143
+ this.debounceClose = debounce_default()(200, function () {
3144
+ return _this.handleClosePopper();
3145
+ });
3146
+ },
3147
+ render: function render(h) {
3148
+ var _this2 = this;
3149
+ if (this.popperVM) {
3150
+ this.popperVM.node = h("transition", {
3151
+ "attrs": {
3152
+ "name": this.transition
3153
+ },
3154
+ "on": {
3155
+ "afterLeave": this.doDestroy
3156
+ }
3157
+ }, [h("div", {
3158
+ "on": {
3159
+ "mouseleave": function mouseleave() {
3160
+ _this2.setExpectedState(false);
3161
+ _this2.debounceClose();
3162
+ },
3163
+ "mouseenter": function mouseenter() {
3164
+ _this2.setExpectedState(true);
3165
+ }
3166
+ },
3167
+ "ref": "popper",
3168
+ "attrs": {
3169
+ "role": "tooltip",
3170
+ "id": this.tooltipId,
3171
+ "aria-hidden": this.disabled || !this.showPopper ? 'true' : 'false'
3172
+ },
3173
+ "directives": [{
3174
+ name: "show",
3175
+ value: !this.disabled && this.showPopper
3176
+ }],
3177
+ "class": ['el-tooltip__popper', 'is-' + this.effect, this.popperClass]
3178
+ }, [this.$slots.content || this.content])]);
3179
+ }
3180
+ var firstElement = this.getFirstElement();
3181
+ if (!firstElement) return null;
3182
+ var data = firstElement.data = firstElement.data || {};
3183
+ data.staticClass = this.addTooltipClass(data.staticClass);
3184
+ return firstElement;
3185
+ },
3186
+ mounted: function mounted() {
3187
+ var _this3 = this;
3188
+ this.referenceElm = this.$el;
3189
+ if (this.$el.nodeType === 1) {
3190
+ this.$el.setAttribute('aria-describedby', this.tooltipId);
3191
+ this.$el.setAttribute('tabindex', this.tabindex);
3192
+ Object(dom["g" /* on */])(this.referenceElm, 'mouseenter', this.show);
3193
+ Object(dom["g" /* on */])(this.referenceElm, 'mouseleave', this.hide);
3194
+ Object(dom["g" /* on */])(this.referenceElm, 'focus', function () {
3195
+ if (!_this3.$slots.default || !_this3.$slots.default.length) {
3196
+ _this3.handleFocus();
3197
+ return;
3198
+ }
3199
+ var instance = _this3.$slots.default[0].componentInstance;
3200
+ if (instance && instance.focus) {
3201
+ instance.focus();
3202
+ } else {
3203
+ _this3.handleFocus();
3204
+ }
3205
+ });
3206
+ Object(dom["g" /* on */])(this.referenceElm, 'blur', this.handleBlur);
3207
+ Object(dom["g" /* on */])(this.referenceElm, 'click', this.removeFocusing);
3208
+ }
3209
+ // fix issue https://github.com/ElemeFE/element/issues/14424
3210
+ if (this.value && this.popperVM) {
3211
+ this.popperVM.$nextTick(function () {
3212
+ if (_this3.value) {
3213
+ _this3.updatePopper();
3214
+ }
3215
+ });
3216
+ }
3217
+ },
3218
+ watch: {
3219
+ focusing: function focusing(val) {
3220
+ if (val) {
3221
+ Object(dom["a" /* addClass */])(this.referenceElm, 'focusing');
3222
+ } else {
3223
+ Object(dom["i" /* removeClass */])(this.referenceElm, 'focusing');
3224
+ }
3225
+ }
3226
+ },
3227
+ methods: {
3228
+ show: function show() {
3229
+ this.setExpectedState(true);
3230
+ this.handleShowPopper();
3231
+ },
3232
+ hide: function hide() {
3233
+ this.setExpectedState(false);
3234
+ this.debounceClose();
3235
+ },
3236
+ handleFocus: function handleFocus() {
3237
+ this.focusing = true;
3238
+ this.show();
3239
+ },
3240
+ handleBlur: function handleBlur() {
3241
+ this.focusing = false;
3242
+ this.hide();
3243
+ },
3244
+ removeFocusing: function removeFocusing() {
3245
+ this.focusing = false;
3246
+ },
3247
+ addTooltipClass: function addTooltipClass(prev) {
3248
+ if (!prev) {
3249
+ return 'el-tooltip';
3250
+ } else {
3251
+ return 'el-tooltip ' + prev.replace('el-tooltip', '');
3252
+ }
3253
+ },
3254
+ handleShowPopper: function handleShowPopper() {
3255
+ var _this4 = this;
3256
+ if (!this.expectedState || this.manual) return;
3257
+ clearTimeout(this.timeout);
3258
+ this.timeout = setTimeout(function () {
3259
+ _this4.showPopper = true;
3260
+ }, this.openDelay);
3261
+ if (this.hideAfter > 0) {
3262
+ this.timeoutPending = setTimeout(function () {
3263
+ _this4.showPopper = false;
3264
+ }, this.hideAfter);
3265
+ }
3266
+ },
3267
+ handleClosePopper: function handleClosePopper() {
3268
+ if (this.enterable && this.expectedState || this.manual) return;
3269
+ clearTimeout(this.timeout);
3270
+ if (this.timeoutPending) {
3271
+ clearTimeout(this.timeoutPending);
3272
+ }
3273
+ this.showPopper = false;
3274
+ if (this.disabled) {
3275
+ this.doDestroy();
3276
+ }
3277
+ },
3278
+ setExpectedState: function setExpectedState(expectedState) {
3279
+ if (expectedState === false) {
3280
+ clearTimeout(this.timeoutPending);
3281
+ }
3282
+ this.expectedState = expectedState;
3283
+ },
3284
+ getFirstElement: function getFirstElement() {
3285
+ var slots = this.$slots.default;
3286
+ if (!Array.isArray(slots)) return null;
3287
+ var element = null;
3288
+ for (var index = 0; index < slots.length; index++) {
3289
+ if (slots[index] && slots[index].tag) {
3290
+ element = slots[index];
3291
+ break;
3292
+ }
3293
+ ;
3294
+ }
3295
+ return element;
3296
+ }
3297
+ },
3298
+ beforeDestroy: function beforeDestroy() {
3299
+ this.popperVM && this.popperVM.$destroy();
3300
+ },
3301
+ destroyed: function destroyed() {
3302
+ var reference = this.referenceElm;
3303
+ if (reference.nodeType === 1) {
3304
+ Object(dom["f" /* off */])(reference, 'mouseenter', this.show);
3305
+ Object(dom["f" /* off */])(reference, 'mouseleave', this.hide);
3306
+ Object(dom["f" /* off */])(reference, 'focus', this.handleFocus);
3307
+ Object(dom["f" /* off */])(reference, 'blur', this.handleBlur);
3308
+ Object(dom["f" /* off */])(reference, 'click', this.removeFocusing);
3309
+ }
3310
+ }
3311
+ });
3312
+ // CONCATENATED MODULE: ./packages/tooltip/index.js
3313
+
3314
+
3315
+
3316
+ /* istanbul ignore next */
3317
+ main.install = function (Vue) {
3318
+ Vue.component(main.name, main);
3319
+ };
3320
+ /* harmony default export */ var tooltip = __webpack_exports__["default"] = (main);
3321
+
3322
+ /***/ })
3323
+ /******/ ]);