Booking Calendar - Version 9.1

Version Description

  • Changes in all versions:
    • New. Icons for UI elements at booking admin panel. (9.0.1.4)
    • New. Booking Calendar Icon for WordPress side menu. (9.0.1.7)
    • New. New tooltip and popover system based on Tippy.js and Popper (9.0.1.1)
    • New. Showing title of bookings in popover tooltip at Timeline and Calendar Overview page near specific booking details.
    • Improvement. Separate library for Modal windows (9.0.1.5)
    • Improvement. Removing Bootstrap library (9.0.1.1.1)
    • Fix. issue of showing "Warning! Number of check in !
Download this release

Release Info

Developer wpdevelop
Plugin Icon 128x128 Booking Calendar
Version 9.1
Comparing to
See all releases

Code changes from version 9.0 to 9.1

Files changed (41) hide show
  1. assets/libs/{bootstrap → bootstrap-css}/css/bootstrap-theme.css +0 -0
  2. assets/libs/{bootstrap → bootstrap-css}/css/bootstrap-theme.min.css +0 -0
  3. assets/libs/{bootstrap → bootstrap-css}/css/bootstrap.css +2 -4
  4. assets/libs/{bootstrap → bootstrap-css}/css/bootstrap.min.css +0 -0
  5. assets/libs/{bootstrap → bootstrap-css}/css/index.php +0 -0
  6. assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.eot +0 -0
  7. assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.svg +0 -0
  8. assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.ttf +0 -0
  9. assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.woff +0 -0
  10. assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.woff2 +0 -0
  11. assets/libs/{bootstrap → bootstrap-css}/fonts/index.php +0 -0
  12. assets/libs/{bootstrap → bootstrap-css}/index.php +0 -0
  13. assets/libs/bootstrap-icons/LICENSE.md +21 -0
  14. assets/libs/bootstrap-icons/bootstrap-icons.css +1704 -0
  15. assets/libs/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  16. assets/libs/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  17. assets/libs/bootstrap/js/bootstrap.js +0 -2366
  18. assets/libs/bootstrap/js/bootstrap.min.js +0 -12
  19. assets/libs/bootstrap/js/index.php +0 -2
  20. assets/libs/material-design-icons/fonts/google-material-design-icons.woff2 +0 -0
  21. assets/libs/material-design-icons/material-design-icons.css +2207 -0
  22. assets/libs/popper/enums.js +71 -0
  23. assets/libs/popper/enums.js.map +1 -0
  24. assets/libs/popper/enums.min.js +6 -0
  25. assets/libs/popper/enums.min.js.flow +3 -0
  26. assets/libs/popper/enums.min.js.map +1 -0
  27. assets/libs/popper/popper-base.js +1088 -0
  28. assets/libs/popper/popper-base.js.map +1 -0
  29. assets/libs/popper/popper-base.min.js +6 -0
  30. assets/libs/popper/popper-base.min.js.flow +3 -0
  31. assets/libs/popper/popper-base.min.js.map +1 -0
  32. assets/libs/popper/popper-lite.js +1421 -0
  33. assets/libs/popper/popper-lite.js.map +1 -0
  34. assets/libs/popper/popper-lite.min.js +6 -0
  35. assets/libs/popper/popper-lite.min.js.flow +3 -0
  36. assets/libs/popper/popper-lite.min.js.map +1 -0
  37. assets/libs/popper/popper.js +1993 -0
  38. assets/libs/popper/popper.js.map +1 -0
  39. assets/libs/popper/popper.min.js +6 -0
  40. assets/libs/popper/popper.min.js.flow +3 -0
  41. assets/libs/popper/popper.min.js.map +1 -0
assets/libs/{bootstrap → bootstrap-css}/css/bootstrap-theme.css RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/css/bootstrap-theme.min.css RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/css/bootstrap.css RENAMED
@@ -6582,10 +6582,8 @@
6582
  .wpdevelop .affix {
6583
  position: fixed;
6584
  }
6585
- @-ms-viewport {
6586
- .wpdevelop {
6587
- width: device-width;
6588
- }
6589
  }
6590
  .wpdevelop .visible-xs,
6591
  .wpdevelop .visible-sm,
6582
  .wpdevelop .affix {
6583
  position: fixed;
6584
  }
6585
+ @-ms-viewport .wpdevelop {
6586
+ width: device-width;
 
 
6587
  }
6588
  .wpdevelop .visible-xs,
6589
  .wpdevelop .visible-sm,
assets/libs/{bootstrap → bootstrap-css}/css/bootstrap.min.css RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/css/index.php RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.eot RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.svg RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.ttf RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.woff RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/fonts/glyphicons-halflings-regular.woff2 RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/fonts/index.php RENAMED
File without changes
assets/libs/{bootstrap → bootstrap-css}/index.php RENAMED
File without changes
assets/libs/bootstrap-icons/LICENSE.md ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019-2021 The Bootstrap Authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
assets/libs/bootstrap-icons/bootstrap-icons.css ADDED
@@ -0,0 +1,1704 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: "wpbc-bootstrap-icons";
3
+ src: url("./fonts/bootstrap-icons.woff2?524846017b983fc8ded9325d94ed40f3") format("woff2"),
4
+ url("./fonts/bootstrap-icons.woff?524846017b983fc8ded9325d94ed40f3") format("woff");
5
+ }
6
+
7
+ .bi::before,
8
+ [class^="wpbc-bi-"]::before,
9
+ [class*=" wpbc-bi-"]::before {
10
+ display: inline-block;
11
+ font-family: wpbc-bootstrap-icons !important;
12
+ font-style: normal;
13
+ font-weight: normal !important;
14
+ font-variant: normal;
15
+ text-transform: none;
16
+ line-height: 1;
17
+ vertical-align: -.125em;
18
+ -webkit-font-smoothing: antialiased;
19
+ -moz-osx-font-smoothing: grayscale;
20
+ }
21
+
22
+ .wpbc-bi-123::before { content: "\f67f"; }
23
+ .wpbc-bi-alarm-fill::before { content: "\f101"; }
24
+ .wpbc-bi-alarm::before { content: "\f102"; }
25
+ .wpbc-bi-align-bottom::before { content: "\f103"; }
26
+ .wpbc-bi-align-center::before { content: "\f104"; }
27
+ .wpbc-bi-align-end::before { content: "\f105"; }
28
+ .wpbc-bi-align-middle::before { content: "\f106"; }
29
+ .wpbc-bi-align-start::before { content: "\f107"; }
30
+ .wpbc-bi-align-top::before { content: "\f108"; }
31
+ .wpbc-bi-alt::before { content: "\f109"; }
32
+ .wpbc-bi-app-indicator::before { content: "\f10a"; }
33
+ .wpbc-bi-app::before { content: "\f10b"; }
34
+ .wpbc-bi-archive-fill::before { content: "\f10c"; }
35
+ .wpbc-bi-archive::before { content: "\f10d"; }
36
+ .wpbc-bi-arrow-90deg-down::before { content: "\f10e"; }
37
+ .wpbc-bi-arrow-90deg-left::before { content: "\f10f"; }
38
+ .wpbc-bi-arrow-90deg-right::before { content: "\f110"; }
39
+ .wpbc-bi-arrow-90deg-up::before { content: "\f111"; }
40
+ .wpbc-bi-arrow-bar-down::before { content: "\f112"; }
41
+ .wpbc-bi-arrow-bar-left::before { content: "\f113"; }
42
+ .wpbc-bi-arrow-bar-right::before { content: "\f114"; }
43
+ .wpbc-bi-arrow-bar-up::before { content: "\f115"; }
44
+ .wpbc-bi-arrow-clockwise::before { content: "\f116"; }
45
+ .wpbc-bi-arrow-counterclockwise::before { content: "\f117"; }
46
+ .wpbc-bi-arrow-down-circle-fill::before { content: "\f118"; }
47
+ .wpbc-bi-arrow-down-circle::before { content: "\f119"; }
48
+ .wpbc-bi-arrow-down-left-circle-fill::before { content: "\f11a"; }
49
+ .wpbc-bi-arrow-down-left-circle::before { content: "\f11b"; }
50
+ .wpbc-bi-arrow-down-left-square-fill::before { content: "\f11c"; }
51
+ .wpbc-bi-arrow-down-left-square::before { content: "\f11d"; }
52
+ .wpbc-bi-arrow-down-left::before { content: "\f11e"; }
53
+ .wpbc-bi-arrow-down-right-circle-fill::before { content: "\f11f"; }
54
+ .wpbc-bi-arrow-down-right-circle::before { content: "\f120"; }
55
+ .wpbc-bi-arrow-down-right-square-fill::before { content: "\f121"; }
56
+ .wpbc-bi-arrow-down-right-square::before { content: "\f122"; }
57
+ .wpbc-bi-arrow-down-right::before { content: "\f123"; }
58
+ .wpbc-bi-arrow-down-short::before { content: "\f124"; }
59
+ .wpbc-bi-arrow-down-square-fill::before { content: "\f125"; }
60
+ .wpbc-bi-arrow-down-square::before { content: "\f126"; }
61
+ .wpbc-bi-arrow-down-up::before { content: "\f127"; }
62
+ .wpbc-bi-arrow-down::before { content: "\f128"; }
63
+ .wpbc-bi-arrow-left-circle-fill::before { content: "\f129"; }
64
+ .wpbc-bi-arrow-left-circle::before { content: "\f12a"; }
65
+ .wpbc-bi-arrow-left-right::before { content: "\f12b"; }
66
+ .wpbc-bi-arrow-left-short::before { content: "\f12c"; }
67
+ .wpbc-bi-arrow-left-square-fill::before { content: "\f12d"; }
68
+ .wpbc-bi-arrow-left-square::before { content: "\f12e"; }
69
+ .wpbc-bi-arrow-left::before { content: "\f12f"; }
70
+ .wpbc-bi-arrow-repeat::before { content: "\f130"; }
71
+ .wpbc-bi-arrow-return-left::before { content: "\f131"; }
72
+ .wpbc-bi-arrow-return-right::before { content: "\f132"; }
73
+ .wpbc-bi-arrow-right-circle-fill::before { content: "\f133"; }
74
+ .wpbc-bi-arrow-right-circle::before { content: "\f134"; }
75
+ .wpbc-bi-arrow-right-short::before { content: "\f135"; }
76
+ .wpbc-bi-arrow-right-square-fill::before { content: "\f136"; }
77
+ .wpbc-bi-arrow-right-square::before { content: "\f137"; }
78
+ .wpbc-bi-arrow-right::before { content: "\f138"; }
79
+ .wpbc-bi-arrow-up-circle-fill::before { content: "\f139"; }
80
+ .wpbc-bi-arrow-up-circle::before { content: "\f13a"; }
81
+ .wpbc-bi-arrow-up-left-circle-fill::before { content: "\f13b"; }
82
+ .wpbc-bi-arrow-up-left-circle::before { content: "\f13c"; }
83
+ .wpbc-bi-arrow-up-left-square-fill::before { content: "\f13d"; }
84
+ .wpbc-bi-arrow-up-left-square::before { content: "\f13e"; }
85
+ .wpbc-bi-arrow-up-left::before { content: "\f13f"; }
86
+ .wpbc-bi-arrow-up-right-circle-fill::before { content: "\f140"; }
87
+ .wpbc-bi-arrow-up-right-circle::before { content: "\f141"; }
88
+ .wpbc-bi-arrow-up-right-square-fill::before { content: "\f142"; }
89
+ .wpbc-bi-arrow-up-right-square::before { content: "\f143"; }
90
+ .wpbc-bi-arrow-up-right::before { content: "\f144"; }
91
+ .wpbc-bi-arrow-up-short::before { content: "\f145"; }
92
+ .wpbc-bi-arrow-up-square-fill::before { content: "\f146"; }
93
+ .wpbc-bi-arrow-up-square::before { content: "\f147"; }
94
+ .wpbc-bi-arrow-up::before { content: "\f148"; }
95
+ .wpbc-bi-arrows-angle-contract::before { content: "\f149"; }
96
+ .wpbc-bi-arrows-angle-expand::before { content: "\f14a"; }
97
+ .wpbc-bi-arrows-collapse::before { content: "\f14b"; }
98
+ .wpbc-bi-arrows-expand::before { content: "\f14c"; }
99
+ .wpbc-bi-arrows-fullscreen::before { content: "\f14d"; }
100
+ .wpbc-bi-arrows-move::before { content: "\f14e"; }
101
+ .wpbc-bi-aspect-ratio-fill::before { content: "\f14f"; }
102
+ .wpbc-bi-aspect-ratio::before { content: "\f150"; }
103
+ .wpbc-bi-asterisk::before { content: "\f151"; }
104
+ .wpbc-bi-at::before { content: "\f152"; }
105
+ .wpbc-bi-award-fill::before { content: "\f153"; }
106
+ .wpbc-bi-award::before { content: "\f154"; }
107
+ .wpbc-bi-back::before { content: "\f155"; }
108
+ .wpbc-bi-backspace-fill::before { content: "\f156"; }
109
+ .wpbc-bi-backspace-reverse-fill::before { content: "\f157"; }
110
+ .wpbc-bi-backspace-reverse::before { content: "\f158"; }
111
+ .wpbc-bi-backspace::before { content: "\f159"; }
112
+ .wpbc-bi-badge-3d-fill::before { content: "\f15a"; }
113
+ .wpbc-bi-badge-3d::before { content: "\f15b"; }
114
+ .wpbc-bi-badge-4k-fill::before { content: "\f15c"; }
115
+ .wpbc-bi-badge-4k::before { content: "\f15d"; }
116
+ .wpbc-bi-badge-8k-fill::before { content: "\f15e"; }
117
+ .wpbc-bi-badge-8k::before { content: "\f15f"; }
118
+ .wpbc-bi-badge-ad-fill::before { content: "\f160"; }
119
+ .wpbc-bi-badge-ad::before { content: "\f161"; }
120
+ .wpbc-bi-badge-ar-fill::before { content: "\f162"; }
121
+ .wpbc-bi-badge-ar::before { content: "\f163"; }
122
+ .wpbc-bi-badge-cc-fill::before { content: "\f164"; }
123
+ .wpbc-bi-badge-cc::before { content: "\f165"; }
124
+ .wpbc-bi-badge-hd-fill::before { content: "\f166"; }
125
+ .wpbc-bi-badge-hd::before { content: "\f167"; }
126
+ .wpbc-bi-badge-tm-fill::before { content: "\f168"; }
127
+ .wpbc-bi-badge-tm::before { content: "\f169"; }
128
+ .wpbc-bi-badge-vo-fill::before { content: "\f16a"; }
129
+ .wpbc-bi-badge-vo::before { content: "\f16b"; }
130
+ .wpbc-bi-badge-vr-fill::before { content: "\f16c"; }
131
+ .wpbc-bi-badge-vr::before { content: "\f16d"; }
132
+ .wpbc-bi-badge-wc-fill::before { content: "\f16e"; }
133
+ .wpbc-bi-badge-wc::before { content: "\f16f"; }
134
+ .wpbc-bi-bag-check-fill::before { content: "\f170"; }
135
+ .wpbc-bi-bag-check::before { content: "\f171"; }
136
+ .wpbc-bi-bag-dash-fill::before { content: "\f172"; }
137
+ .wpbc-bi-bag-dash::before { content: "\f173"; }
138
+ .wpbc-bi-bag-fill::before { content: "\f174"; }
139
+ .wpbc-bi-bag-plus-fill::before { content: "\f175"; }
140
+ .wpbc-bi-bag-plus::before { content: "\f176"; }
141
+ .wpbc-bi-bag-x-fill::before { content: "\f177"; }
142
+ .wpbc-bi-bag-x::before { content: "\f178"; }
143
+ .wpbc-bi-bag::before { content: "\f179"; }
144
+ .wpbc-bi-bar-chart-fill::before { content: "\f17a"; }
145
+ .wpbc-bi-bar-chart-line-fill::before { content: "\f17b"; }
146
+ .wpbc-bi-bar-chart-line::before { content: "\f17c"; }
147
+ .wpbc-bi-bar-chart-steps::before { content: "\f17d"; }
148
+ .wpbc-bi-bar-chart::before { content: "\f17e"; }
149
+ .wpbc-bi-basket-fill::before { content: "\f17f"; }
150
+ .wpbc-bi-basket::before { content: "\f180"; }
151
+ .wpbc-bi-basket2-fill::before { content: "\f181"; }
152
+ .wpbc-bi-basket2::before { content: "\f182"; }
153
+ .wpbc-bi-basket3-fill::before { content: "\f183"; }
154
+ .wpbc-bi-basket3::before { content: "\f184"; }
155
+ .wpbc-bi-battery-charging::before { content: "\f185"; }
156
+ .wpbc-bi-battery-full::before { content: "\f186"; }
157
+ .wpbc-bi-battery-half::before { content: "\f187"; }
158
+ .wpbc-bi-battery::before { content: "\f188"; }
159
+ .wpbc-bi-bell-fill::before { content: "\f189"; }
160
+ .wpbc-bi-bell::before { content: "\f18a"; }
161
+ .wpbc-bi-bezier::before { content: "\f18b"; }
162
+ .wpbc-bi-bezier2::before { content: "\f18c"; }
163
+ .wpbc-bi-bicycle::before { content: "\f18d"; }
164
+ .wpbc-bi-binoculars-fill::before { content: "\f18e"; }
165
+ .wpbc-bi-binoculars::before { content: "\f18f"; }
166
+ .wpbc-bi-blockquote-left::before { content: "\f190"; }
167
+ .wpbc-bi-blockquote-right::before { content: "\f191"; }
168
+ .wpbc-bi-book-fill::before { content: "\f192"; }
169
+ .wpbc-bi-book-half::before { content: "\f193"; }
170
+ .wpbc-bi-book::before { content: "\f194"; }
171
+ .wpbc-bi-bookmark-check-fill::before { content: "\f195"; }
172
+ .wpbc-bi-bookmark-check::before { content: "\f196"; }
173
+ .wpbc-bi-bookmark-dash-fill::before { content: "\f197"; }
174
+ .wpbc-bi-bookmark-dash::before { content: "\f198"; }
175
+ .wpbc-bi-bookmark-fill::before { content: "\f199"; }
176
+ .wpbc-bi-bookmark-heart-fill::before { content: "\f19a"; }
177
+ .wpbc-bi-bookmark-heart::before { content: "\f19b"; }
178
+ .wpbc-bi-bookmark-plus-fill::before { content: "\f19c"; }
179
+ .wpbc-bi-bookmark-plus::before { content: "\f19d"; }
180
+ .wpbc-bi-bookmark-star-fill::before { content: "\f19e"; }
181
+ .wpbc-bi-bookmark-star::before { content: "\f19f"; }
182
+ .wpbc-bi-bookmark-x-fill::before { content: "\f1a0"; }
183
+ .wpbc-bi-bookmark-x::before { content: "\f1a1"; }
184
+ .wpbc-bi-bookmark::before { content: "\f1a2"; }
185
+ .wpbc-bi-bookmarks-fill::before { content: "\f1a3"; }
186
+ .wpbc-bi-bookmarks::before { content: "\f1a4"; }
187
+ .wpbc-bi-bookshelf::before { content: "\f1a5"; }
188
+ .wpbc-bi-bootstrap-fill::before { content: "\f1a6"; }
189
+ .wpbc-bi-bootstrap-reboot::before { content: "\f1a7"; }
190
+ .wpbc-bi-bootstrap::before { content: "\f1a8"; }
191
+ .wpbc-bi-border-all::before { content: "\f1a9"; }
192
+ .wpbc-bi-border-bottom::before { content: "\f1aa"; }
193
+ .wpbc-bi-border-center::before { content: "\f1ab"; }
194
+ .wpbc-bi-border-inner::before { content: "\f1ac"; }
195
+ .wpbc-bi-border-left::before { content: "\f1ad"; }
196
+ .wpbc-bi-border-middle::before { content: "\f1ae"; }
197
+ .wpbc-bi-border-outer::before { content: "\f1af"; }
198
+ .wpbc-bi-border-right::before { content: "\f1b0"; }
199
+ .wpbc-bi-border-style::before { content: "\f1b1"; }
200
+ .wpbc-bi-border-top::before { content: "\f1b2"; }
201
+ .wpbc-bi-border-width::before { content: "\f1b3"; }
202
+ .wpbc-bi-border::before { content: "\f1b4"; }
203
+ .wpbc-bi-bounding-box-circles::before { content: "\f1b5"; }
204
+ .wpbc-bi-bounding-box::before { content: "\f1b6"; }
205
+ .wpbc-bi-box-arrow-down-left::before { content: "\f1b7"; }
206
+ .wpbc-bi-box-arrow-down-right::before { content: "\f1b8"; }
207
+ .wpbc-bi-box-arrow-down::before { content: "\f1b9"; }
208
+ .wpbc-bi-box-arrow-in-down-left::before { content: "\f1ba"; }
209
+ .wpbc-bi-box-arrow-in-down-right::before { content: "\f1bb"; }
210
+ .wpbc-bi-box-arrow-in-down::before { content: "\f1bc"; }
211
+ .wpbc-bi-box-arrow-in-left::before { content: "\f1bd"; }
212
+ .wpbc-bi-box-arrow-in-right::before { content: "\f1be"; }
213
+ .wpbc-bi-box-arrow-in-up-left::before { content: "\f1bf"; }
214
+ .wpbc-bi-box-arrow-in-up-right::before { content: "\f1c0"; }
215
+ .wpbc-bi-box-arrow-in-up::before { content: "\f1c1"; }
216
+ .wpbc-bi-box-arrow-left::before { content: "\f1c2"; }
217
+ .wpbc-bi-box-arrow-right::before { content: "\f1c3"; }
218
+ .wpbc-bi-box-arrow-up-left::before { content: "\f1c4"; }
219
+ .wpbc-bi-box-arrow-up-right::before { content: "\f1c5"; }
220
+ .wpbc-bi-box-arrow-up::before { content: "\f1c6"; }
221
+ .wpbc-bi-box-seam::before { content: "\f1c7"; }
222
+ .wpbc-bi-box::before { content: "\f1c8"; }
223
+ .wpbc-bi-braces::before { content: "\f1c9"; }
224
+ .wpbc-bi-bricks::before { content: "\f1ca"; }
225
+ .wpbc-bi-briefcase-fill::before { content: "\f1cb"; }
226
+ .wpbc-bi-briefcase::before { content: "\f1cc"; }
227
+ .wpbc-bi-brightness-alt-high-fill::before { content: "\f1cd"; }
228
+ .wpbc-bi-brightness-alt-high::before { content: "\f1ce"; }
229
+ .wpbc-bi-brightness-alt-low-fill::before { content: "\f1cf"; }
230
+ .wpbc-bi-brightness-alt-low::before { content: "\f1d0"; }
231
+ .wpbc-bi-brightness-high-fill::before { content: "\f1d1"; }
232
+ .wpbc-bi-brightness-high::before { content: "\f1d2"; }
233
+ .wpbc-bi-brightness-low-fill::before { content: "\f1d3"; }
234
+ .wpbc-bi-brightness-low::before { content: "\f1d4"; }
235
+ .wpbc-bi-broadcast-pin::before { content: "\f1d5"; }
236
+ .wpbc-bi-broadcast::before { content: "\f1d6"; }
237
+ .wpbc-bi-brush-fill::before { content: "\f1d7"; }
238
+ .wpbc-bi-brush::before { content: "\f1d8"; }
239
+ .wpbc-bi-bucket-fill::before { content: "\f1d9"; }
240
+ .wpbc-bi-bucket::before { content: "\f1da"; }
241
+ .wpbc-bi-bug-fill::before { content: "\f1db"; }
242
+ .wpbc-bi-bug::before { content: "\f1dc"; }
243
+ .wpbc-bi-building::before { content: "\f1dd"; }
244
+ .wpbc-bi-bullseye::before { content: "\f1de"; }
245
+ .wpbc-bi-calculator-fill::before { content: "\f1df"; }
246
+ .wpbc-bi-calculator::before { content: "\f1e0"; }
247
+ .wpbc-bi-calendar-check-fill::before { content: "\f1e1"; }
248
+ .wpbc-bi-calendar-check::before { content: "\f1e2"; }
249
+ .wpbc-bi-calendar-date-fill::before { content: "\f1e3"; }
250
+ .wpbc-bi-calendar-date::before { content: "\f1e4"; }
251
+ .wpbc-bi-calendar-day-fill::before { content: "\f1e5"; }
252
+ .wpbc-bi-calendar-day::before { content: "\f1e6"; }
253
+ .wpbc-bi-calendar-event-fill::before { content: "\f1e7"; }
254
+ .wpbc-bi-calendar-event::before { content: "\f1e8"; }
255
+ .wpbc-bi-calendar-fill::before { content: "\f1e9"; }
256
+ .wpbc-bi-calendar-minus-fill::before { content: "\f1ea"; }
257
+ .wpbc-bi-calendar-minus::before { content: "\f1eb"; }
258
+ .wpbc-bi-calendar-month-fill::before { content: "\f1ec"; }
259
+ .wpbc-bi-calendar-month::before { content: "\f1ed"; }
260
+ .wpbc-bi-calendar-plus-fill::before { content: "\f1ee"; }
261
+ .wpbc-bi-calendar-plus::before { content: "\f1ef"; }
262
+ .wpbc-bi-calendar-range-fill::before { content: "\f1f0"; }
263
+ .wpbc-bi-calendar-range::before { content: "\f1f1"; }
264
+ .wpbc-bi-calendar-week-fill::before { content: "\f1f2"; }
265
+ .wpbc-bi-calendar-week::before { content: "\f1f3"; }
266
+ .wpbc-bi-calendar-x-fill::before { content: "\f1f4"; }
267
+ .wpbc-bi-calendar-x::before { content: "\f1f5"; }
268
+ .wpbc-bi-calendar::before { content: "\f1f6"; }
269
+ .wpbc-bi-calendar2-check-fill::before { content: "\f1f7"; }
270
+ .wpbc-bi-calendar2-check::before { content: "\f1f8"; }
271
+ .wpbc-bi-calendar2-date-fill::before { content: "\f1f9"; }
272
+ .wpbc-bi-calendar2-date::before { content: "\f1fa"; }
273
+ .wpbc-bi-calendar2-day-fill::before { content: "\f1fb"; }
274
+ .wpbc-bi-calendar2-day::before { content: "\f1fc"; }
275
+ .wpbc-bi-calendar2-event-fill::before { content: "\f1fd"; }
276
+ .wpbc-bi-calendar2-event::before { content: "\f1fe"; }
277
+ .wpbc-bi-calendar2-fill::before { content: "\f1ff"; }
278
+ .wpbc-bi-calendar2-minus-fill::before { content: "\f200"; }
279
+ .wpbc-bi-calendar2-minus::before { content: "\f201"; }
280
+ .wpbc-bi-calendar2-month-fill::before { content: "\f202"; }
281
+ .wpbc-bi-calendar2-month::before { content: "\f203"; }
282
+ .wpbc-bi-calendar2-plus-fill::before { content: "\f204"; }
283
+ .wpbc-bi-calendar2-plus::before { content: "\f205"; }
284
+ .wpbc-bi-calendar2-range-fill::before { content: "\f206"; }
285
+ .wpbc-bi-calendar2-range::before { content: "\f207"; }
286
+ .wpbc-bi-calendar2-week-fill::before { content: "\f208"; }
287
+ .wpbc-bi-calendar2-week::before { content: "\f209"; }
288
+ .wpbc-bi-calendar2-x-fill::before { content: "\f20a"; }
289
+ .wpbc-bi-calendar2-x::before { content: "\f20b"; }
290
+ .wpbc-bi-calendar2::before { content: "\f20c"; }
291
+ .wpbc-bi-calendar3-event-fill::before { content: "\f20d"; }
292
+ .wpbc-bi-calendar3-event::before { content: "\f20e"; }
293
+ .wpbc-bi-calendar3-fill::before { content: "\f20f"; }
294
+ .wpbc-bi-calendar3-range-fill::before { content: "\f210"; }
295
+ .wpbc-bi-calendar3-range::before { content: "\f211"; }
296
+ .wpbc-bi-calendar3-week-fill::before { content: "\f212"; }
297
+ .wpbc-bi-calendar3-week::before { content: "\f213"; }
298
+ .wpbc-bi-calendar3::before { content: "\f214"; }
299
+ .wpbc-bi-calendar4-event::before { content: "\f215"; }
300
+ .wpbc-bi-calendar4-range::before { content: "\f216"; }
301
+ .wpbc-bi-calendar4-week::before { content: "\f217"; }
302
+ .wpbc-bi-calendar4::before { content: "\f218"; }
303
+ .wpbc-bi-camera-fill::before { content: "\f219"; }
304
+ .wpbc-bi-camera-reels-fill::before { content: "\f21a"; }
305
+ .wpbc-bi-camera-reels::before { content: "\f21b"; }
306
+ .wpbc-bi-camera-video-fill::before { content: "\f21c"; }
307
+ .wpbc-bi-camera-video-off-fill::before { content: "\f21d"; }
308
+ .wpbc-bi-camera-video-off::before { content: "\f21e"; }
309
+ .wpbc-bi-camera-video::before { content: "\f21f"; }
310
+ .wpbc-bi-camera::before { content: "\f220"; }
311
+ .wpbc-bi-camera2::before { content: "\f221"; }
312
+ .wpbc-bi-capslock-fill::before { content: "\f222"; }
313
+ .wpbc-bi-capslock::before { content: "\f223"; }
314
+ .wpbc-bi-card-checklist::before { content: "\f224"; }
315
+ .wpbc-bi-card-heading::before { content: "\f225"; }
316
+ .wpbc-bi-card-image::before { content: "\f226"; }
317
+ .wpbc-bi-card-list::before { content: "\f227"; }
318
+ .wpbc-bi-card-text::before { content: "\f228"; }
319
+ .wpbc-bi-caret-down-fill::before { content: "\f229"; }
320
+ .wpbc-bi-caret-down-square-fill::before { content: "\f22a"; }
321
+ .wpbc-bi-caret-down-square::before { content: "\f22b"; }
322
+ .wpbc-bi-caret-down::before { content: "\f22c"; }
323
+ .wpbc-bi-caret-left-fill::before { content: "\f22d"; }
324
+ .wpbc-bi-caret-left-square-fill::before { content: "\f22e"; }
325
+ .wpbc-bi-caret-left-square::before { content: "\f22f"; }
326
+ .wpbc-bi-caret-left::before { content: "\f230"; }
327
+ .wpbc-bi-caret-right-fill::before { content: "\f231"; }
328
+ .wpbc-bi-caret-right-square-fill::before { content: "\f232"; }
329
+ .wpbc-bi-caret-right-square::before { content: "\f233"; }
330
+ .wpbc-bi-caret-right::before { content: "\f234"; }
331
+ .wpbc-bi-caret-up-fill::before { content: "\f235"; }
332
+ .wpbc-bi-caret-up-square-fill::before { content: "\f236"; }
333
+ .wpbc-bi-caret-up-square::before { content: "\f237"; }
334
+ .wpbc-bi-caret-up::before { content: "\f238"; }
335
+ .wpbc-bi-cart-check-fill::before { content: "\f239"; }
336
+ .wpbc-bi-cart-check::before { content: "\f23a"; }
337
+ .wpbc-bi-cart-dash-fill::before { content: "\f23b"; }
338
+ .wpbc-bi-cart-dash::before { content: "\f23c"; }
339
+ .wpbc-bi-cart-fill::before { content: "\f23d"; }
340
+ .wpbc-bi-cart-plus-fill::before { content: "\f23e"; }
341
+ .wpbc-bi-cart-plus::before { content: "\f23f"; }
342
+ .wpbc-bi-cart-x-fill::before { content: "\f240"; }
343
+ .wpbc-bi-cart-x::before { content: "\f241"; }
344
+ .wpbc-bi-cart::before { content: "\f242"; }
345
+ .wpbc-bi-cart2::before { content: "\f243"; }
346
+ .wpbc-bi-cart3::before { content: "\f244"; }
347
+ .wpbc-bi-cart4::before { content: "\f245"; }
348
+ .wpbc-bi-cash-stack::before { content: "\f246"; }
349
+ .wpbc-bi-cash::before { content: "\f247"; }
350
+ .wpbc-bi-cast::before { content: "\f248"; }
351
+ .wpbc-bi-chat-dots-fill::before { content: "\f249"; }
352
+ .wpbc-bi-chat-dots::before { content: "\f24a"; }
353
+ .wpbc-bi-chat-fill::before { content: "\f24b"; }
354
+ .wpbc-bi-chat-left-dots-fill::before { content: "\f24c"; }
355
+ .wpbc-bi-chat-left-dots::before { content: "\f24d"; }
356
+ .wpbc-bi-chat-left-fill::before { content: "\f24e"; }
357
+ .wpbc-bi-chat-left-quote-fill::before { content: "\f24f"; }
358
+ .wpbc-bi-chat-left-quote::before { content: "\f250"; }
359
+ .wpbc-bi-chat-left-text-fill::before { content: "\f251"; }
360
+ .wpbc-bi-chat-left-text::before { content: "\f252"; }
361
+ .wpbc-bi-chat-left::before { content: "\f253"; }
362
+ .wpbc-bi-chat-quote-fill::before { content: "\f254"; }
363
+ .wpbc-bi-chat-quote::before { content: "\f255"; }
364
+ .wpbc-bi-chat-right-dots-fill::before { content: "\f256"; }
365
+ .wpbc-bi-chat-right-dots::before { content: "\f257"; }
366
+ .wpbc-bi-chat-right-fill::before { content: "\f258"; }
367
+ .wpbc-bi-chat-right-quote-fill::before { content: "\f259"; }
368
+ .wpbc-bi-chat-right-quote::before { content: "\f25a"; }
369
+ .wpbc-bi-chat-right-text-fill::before { content: "\f25b"; }
370
+ .wpbc-bi-chat-right-text::before { content: "\f25c"; }
371
+ .wpbc-bi-chat-right::before { content: "\f25d"; }
372
+ .wpbc-bi-chat-square-dots-fill::before { content: "\f25e"; }
373
+ .wpbc-bi-chat-square-dots::before { content: "\f25f"; }
374
+ .wpbc-bi-chat-square-fill::before { content: "\f260"; }
375
+ .wpbc-bi-chat-square-quote-fill::before { content: "\f261"; }
376
+ .wpbc-bi-chat-square-quote::before { content: "\f262"; }
377
+ .wpbc-bi-chat-square-text-fill::before { content: "\f263"; }
378
+ .wpbc-bi-chat-square-text::before { content: "\f264"; }
379
+ .wpbc-bi-chat-square::before { content: "\f265"; }
380
+ .wpbc-bi-chat-text-fill::before { content: "\f266"; }
381
+ .wpbc-bi-chat-text::before { content: "\f267"; }
382
+ .wpbc-bi-chat::before { content: "\f268"; }
383
+ .wpbc-bi-check-all::before { content: "\f269"; }
384
+ .wpbc-bi-check-circle-fill::before { content: "\f26a"; }
385
+ .wpbc-bi-check-circle::before { content: "\f26b"; }
386
+ .wpbc-bi-check-square-fill::before { content: "\f26c"; }
387
+ .wpbc-bi-check-square::before { content: "\f26d"; }
388
+ .wpbc-bi-check::before { content: "\f26e"; }
389
+ .wpbc-bi-check2-all::before { content: "\f26f"; }
390
+ .wpbc-bi-check2-circle::before { content: "\f270"; }
391
+ .wpbc-bi-check2-square::before { content: "\f271"; }
392
+ .wpbc-bi-check2::before { content: "\f272"; }
393
+ .wpbc-bi-chevron-bar-contract::before { content: "\f273"; }
394
+ .wpbc-bi-chevron-bar-down::before { content: "\f274"; }
395
+ .wpbc-bi-chevron-bar-expand::before { content: "\f275"; }
396
+ .wpbc-bi-chevron-bar-left::before { content: "\f276"; }
397
+ .wpbc-bi-chevron-bar-right::before { content: "\f277"; }
398
+ .wpbc-bi-chevron-bar-up::before { content: "\f278"; }
399
+ .wpbc-bi-chevron-compact-down::before { content: "\f279"; }
400
+ .wpbc-bi-chevron-compact-left::before { content: "\f27a"; }
401
+ .wpbc-bi-chevron-compact-right::before { content: "\f27b"; }
402
+ .wpbc-bi-chevron-compact-up::before { content: "\f27c"; }
403
+ .wpbc-bi-chevron-contract::before { content: "\f27d"; }
404
+ .wpbc-bi-chevron-double-down::before { content: "\f27e"; }
405
+ .wpbc-bi-chevron-double-left::before { content: "\f27f"; }
406
+ .wpbc-bi-chevron-double-right::before { content: "\f280"; }
407
+ .wpbc-bi-chevron-double-up::before { content: "\f281"; }
408
+ .wpbc-bi-chevron-down::before { content: "\f282"; }
409
+ .wpbc-bi-chevron-expand::before { content: "\f283"; }
410
+ .wpbc-bi-chevron-left::before { content: "\f284"; }
411
+ .wpbc-bi-chevron-right::before { content: "\f285"; }
412
+ .wpbc-bi-chevron-up::before { content: "\f286"; }
413
+ .wpbc-bi-circle-fill::before { content: "\f287"; }
414
+ .wpbc-bi-circle-half::before { content: "\f288"; }
415
+ .wpbc-bi-circle-square::before { content: "\f289"; }
416
+ .wpbc-bi-circle::before { content: "\f28a"; }
417
+ .wpbc-bi-clipboard-check::before { content: "\f28b"; }
418
+ .wpbc-bi-clipboard-data::before { content: "\f28c"; }
419
+ .wpbc-bi-clipboard-minus::before { content: "\f28d"; }
420
+ .wpbc-bi-clipboard-plus::before { content: "\f28e"; }
421
+ .wpbc-bi-clipboard-x::before { content: "\f28f"; }
422
+ .wpbc-bi-clipboard::before { content: "\f290"; }
423
+ .wpbc-bi-clock-fill::before { content: "\f291"; }
424
+ .wpbc-bi-clock-history::before { content: "\f292"; }
425
+ .wpbc-bi-clock::before { content: "\f293"; }
426
+ .wpbc-bi-cloud-arrow-down-fill::before { content: "\f294"; }
427
+ .wpbc-bi-cloud-arrow-down::before { content: "\f295"; }
428
+ .wpbc-bi-cloud-arrow-up-fill::before { content: "\f296"; }
429
+ .wpbc-bi-cloud-arrow-up::before { content: "\f297"; }
430
+ .wpbc-bi-cloud-check-fill::before { content: "\f298"; }
431
+ .wpbc-bi-cloud-check::before { content: "\f299"; }
432
+ .wpbc-bi-cloud-download-fill::before { content: "\f29a"; }
433
+ .wpbc-bi-cloud-download::before { content: "\f29b"; }
434
+ .wpbc-bi-cloud-drizzle-fill::before { content: "\f29c"; }
435
+ .wpbc-bi-cloud-drizzle::before { content: "\f29d"; }
436
+ .wpbc-bi-cloud-fill::before { content: "\f29e"; }
437
+ .wpbc-bi-cloud-fog-fill::before { content: "\f29f"; }
438
+ .wpbc-bi-cloud-fog::before { content: "\f2a0"; }
439
+ .wpbc-bi-cloud-fog2-fill::before { content: "\f2a1"; }
440
+ .wpbc-bi-cloud-fog2::before { content: "\f2a2"; }
441
+ .wpbc-bi-cloud-hail-fill::before { content: "\f2a3"; }
442
+ .wpbc-bi-cloud-hail::before { content: "\f2a4"; }
443
+ .wpbc-bi-cloud-haze-1::before { content: "\f2a5"; }
444
+ .wpbc-bi-cloud-haze-fill::before { content: "\f2a6"; }
445
+ .wpbc-bi-cloud-haze::before { content: "\f2a7"; }
446
+ .wpbc-bi-cloud-haze2-fill::before { content: "\f2a8"; }
447
+ .wpbc-bi-cloud-lightning-fill::before { content: "\f2a9"; }
448
+ .wpbc-bi-cloud-lightning-rain-fill::before { content: "\f2aa"; }
449
+ .wpbc-bi-cloud-lightning-rain::before { content: "\f2ab"; }
450
+ .wpbc-bi-cloud-lightning::before { content: "\f2ac"; }
451
+ .wpbc-bi-cloud-minus-fill::before { content: "\f2ad"; }
452
+ .wpbc-bi-cloud-minus::before { content: "\f2ae"; }
453
+ .wpbc-bi-cloud-moon-fill::before { content: "\f2af"; }
454
+ .wpbc-bi-cloud-moon::before { content: "\f2b0"; }
455
+ .wpbc-bi-cloud-plus-fill::before { content: "\f2b1"; }
456
+ .wpbc-bi-cloud-plus::before { content: "\f2b2"; }
457
+ .wpbc-bi-cloud-rain-fill::before { content: "\f2b3"; }
458
+ .wpbc-bi-cloud-rain-heavy-fill::before { content: "\f2b4"; }
459
+ .wpbc-bi-cloud-rain-heavy::before { content: "\f2b5"; }
460
+ .wpbc-bi-cloud-rain::before { content: "\f2b6"; }
461
+ .wpbc-bi-cloud-slash-fill::before { content: "\f2b7"; }
462
+ .wpbc-bi-cloud-slash::before { content: "\f2b8"; }
463
+ .wpbc-bi-cloud-sleet-fill::before { content: "\f2b9"; }
464
+ .wpbc-bi-cloud-sleet::before { content: "\f2ba"; }
465
+ .wpbc-bi-cloud-snow-fill::before { content: "\f2bb"; }
466
+ .wpbc-bi-cloud-snow::before { content: "\f2bc"; }
467
+ .wpbc-bi-cloud-sun-fill::before { content: "\f2bd"; }
468
+ .wpbc-bi-cloud-sun::before { content: "\f2be"; }
469
+ .wpbc-bi-cloud-upload-fill::before { content: "\f2bf"; }
470
+ .wpbc-bi-cloud-upload::before { content: "\f2c0"; }
471
+ .wpbc-bi-cloud::before { content: "\f2c1"; }
472
+ .wpbc-bi-clouds-fill::before { content: "\f2c2"; }
473
+ .wpbc-bi-clouds::before { content: "\f2c3"; }
474
+ .wpbc-bi-cloudy-fill::before { content: "\f2c4"; }
475
+ .wpbc-bi-cloudy::before { content: "\f2c5"; }
476
+ .wpbc-bi-code-slash::before { content: "\f2c6"; }
477
+ .wpbc-bi-code-square::before { content: "\f2c7"; }
478
+ .wpbc-bi-code::before { content: "\f2c8"; }
479
+ .wpbc-bi-collection-fill::before { content: "\f2c9"; }
480
+ .wpbc-bi-collection-play-fill::before { content: "\f2ca"; }
481
+ .wpbc-bi-collection-play::before { content: "\f2cb"; }
482
+ .wpbc-bi-collection::before { content: "\f2cc"; }
483
+ .wpbc-bi-columns-gap::before { content: "\f2cd"; }
484
+ .wpbc-bi-columns::before { content: "\f2ce"; }
485
+ .wpbc-bi-command::before { content: "\f2cf"; }
486
+ .wpbc-bi-compass-fill::before { content: "\f2d0"; }
487
+ .wpbc-bi-compass::before { content: "\f2d1"; }
488
+ .wpbc-bi-cone-striped::before { content: "\f2d2"; }
489
+ .wpbc-bi-cone::before { content: "\f2d3"; }
490
+ .wpbc-bi-controller::before { content: "\f2d4"; }
491
+ .wpbc-bi-cpu-fill::before { content: "\f2d5"; }
492
+ .wpbc-bi-cpu::before { content: "\f2d6"; }
493
+ .wpbc-bi-credit-card-2-back-fill::before { content: "\f2d7"; }
494
+ .wpbc-bi-credit-card-2-back::before { content: "\f2d8"; }
495
+ .wpbc-bi-credit-card-2-front-fill::before { content: "\f2d9"; }
496
+ .wpbc-bi-credit-card-2-front::before { content: "\f2da"; }
497
+ .wpbc-bi-credit-card-fill::before { content: "\f2db"; }
498
+ .wpbc-bi-credit-card::before { content: "\f2dc"; }
499
+ .wpbc-bi-crop::before { content: "\f2dd"; }
500
+ .wpbc-bi-cup-fill::before { content: "\f2de"; }
501
+ .wpbc-bi-cup-straw::before { content: "\f2df"; }
502
+ .wpbc-bi-cup::before { content: "\f2e0"; }
503
+ .wpbc-bi-cursor-fill::before { content: "\f2e1"; }
504
+ .wpbc-bi-cursor-text::before { content: "\f2e2"; }
505
+ .wpbc-bi-cursor::before { content: "\f2e3"; }
506
+ .wpbc-bi-dash-circle-dotted::before { content: "\f2e4"; }
507
+ .wpbc-bi-dash-circle-fill::before { content: "\f2e5"; }
508
+ .wpbc-bi-dash-circle::before { content: "\f2e6"; }
509
+ .wpbc-bi-dash-square-dotted::before { content: "\f2e7"; }
510
+ .wpbc-bi-dash-square-fill::before { content: "\f2e8"; }
511
+ .wpbc-bi-dash-square::before { content: "\f2e9"; }
512
+ .wpbc-bi-dash::before { content: "\f2ea"; }
513
+ .wpbc-bi-diagram-2-fill::before { content: "\f2eb"; }
514
+ .wpbc-bi-diagram-2::before { content: "\f2ec"; }
515
+ .wpbc-bi-diagram-3-fill::before { content: "\f2ed"; }
516
+ .wpbc-bi-diagram-3::before { content: "\f2ee"; }
517
+ .wpbc-bi-diamond-fill::before { content: "\f2ef"; }
518
+ .wpbc-bi-diamond-half::before { content: "\f2f0"; }
519
+ .wpbc-bi-diamond::before { content: "\f2f1"; }
520
+ .wpbc-bi-dice-1-fill::before { content: "\f2f2"; }
521
+ .wpbc-bi-dice-1::before { content: "\f2f3"; }
522
+ .wpbc-bi-dice-2-fill::before { content: "\f2f4"; }
523
+ .wpbc-bi-dice-2::before { content: "\f2f5"; }
524
+ .wpbc-bi-dice-3-fill::before { content: "\f2f6"; }
525
+ .wpbc-bi-dice-3::before { content: "\f2f7"; }
526
+ .wpbc-bi-dice-4-fill::before { content: "\f2f8"; }
527
+ .wpbc-bi-dice-4::before { content: "\f2f9"; }
528
+ .wpbc-bi-dice-5-fill::before { content: "\f2fa"; }
529
+ .wpbc-bi-dice-5::before { content: "\f2fb"; }
530
+ .wpbc-bi-dice-6-fill::before { content: "\f2fc"; }
531
+ .wpbc-bi-dice-6::before { content: "\f2fd"; }
532
+ .wpbc-bi-disc-fill::before { content: "\f2fe"; }
533
+ .wpbc-bi-disc::before { content: "\f2ff"; }
534
+ .wpbc-bi-discord::before { content: "\f300"; }
535
+ .wpbc-bi-display-fill::before { content: "\f301"; }
536
+ .wpbc-bi-display::before { content: "\f302"; }
537
+ .wpbc-bi-distribute-horizontal::before { content: "\f303"; }
538
+ .wpbc-bi-distribute-vertical::before { content: "\f304"; }
539
+ .wpbc-bi-door-closed-fill::before { content: "\f305"; }
540
+ .wpbc-bi-door-closed::before { content: "\f306"; }
541
+ .wpbc-bi-door-open-fill::before { content: "\f307"; }
542
+ .wpbc-bi-door-open::before { content: "\f308"; }
543
+ .wpbc-bi-dot::before { content: "\f309"; }
544
+ .wpbc-bi-download::before { content: "\f30a"; }
545
+ .wpbc-bi-droplet-fill::before { content: "\f30b"; }
546
+ .wpbc-bi-droplet-half::before { content: "\f30c"; }
547
+ .wpbc-bi-droplet::before { content: "\f30d"; }
548
+ .wpbc-bi-earbuds::before { content: "\f30e"; }
549
+ .wpbc-bi-easel-fill::before { content: "\f30f"; }
550
+ .wpbc-bi-easel::before { content: "\f310"; }
551
+ .wpbc-bi-egg-fill::before { content: "\f311"; }
552
+ .wpbc-bi-egg-fried::before { content: "\f312"; }
553
+ .wpbc-bi-egg::before { content: "\f313"; }
554
+ .wpbc-bi-eject-fill::before { content: "\f314"; }
555
+ .wpbc-bi-eject::before { content: "\f315"; }
556
+ .wpbc-bi-emoji-angry-fill::before { content: "\f316"; }
557
+ .wpbc-bi-emoji-angry::before { content: "\f317"; }
558
+ .wpbc-bi-emoji-dizzy-fill::before { content: "\f318"; }
559
+ .wpbc-bi-emoji-dizzy::before { content: "\f319"; }
560
+ .wpbc-bi-emoji-expressionless-fill::before { content: "\f31a"; }
561
+ .wpbc-bi-emoji-expressionless::before { content: "\f31b"; }
562
+ .wpbc-bi-emoji-frown-fill::before { content: "\f31c"; }
563
+ .wpbc-bi-emoji-frown::before { content: "\f31d"; }
564
+ .wpbc-bi-emoji-heart-eyes-fill::before { content: "\f31e"; }
565
+ .wpbc-bi-emoji-heart-eyes::before { content: "\f31f"; }
566
+ .wpbc-bi-emoji-laughing-fill::before { content: "\f320"; }
567
+ .wpbc-bi-emoji-laughing::before { content: "\f321"; }
568
+ .wpbc-bi-emoji-neutral-fill::before { content: "\f322"; }
569
+ .wpbc-bi-emoji-neutral::before { content: "\f323"; }
570
+ .wpbc-bi-emoji-smile-fill::before { content: "\f324"; }
571
+ .wpbc-bi-emoji-smile-upside-down-fill::before { content: "\f325"; }
572
+ .wpbc-bi-emoji-smile-upside-down::before { content: "\f326"; }
573
+ .wpbc-bi-emoji-smile::before { content: "\f327"; }
574
+ .wpbc-bi-emoji-sunglasses-fill::before { content: "\f328"; }
575
+ .wpbc-bi-emoji-sunglasses::before { content: "\f329"; }
576
+ .wpbc-bi-emoji-wink-fill::before { content: "\f32a"; }
577
+ .wpbc-bi-emoji-wink::before { content: "\f32b"; }
578
+ .wpbc-bi-envelope-fill::before { content: "\f32c"; }
579
+ .wpbc-bi-envelope-open-fill::before { content: "\f32d"; }
580
+ .wpbc-bi-envelope-open::before { content: "\f32e"; }
581
+ .wpbc-bi-envelope::before { content: "\f32f"; }
582
+ .wpbc-bi-eraser-fill::before { content: "\f330"; }
583
+ .wpbc-bi-eraser::before { content: "\f331"; }
584
+ .wpbc-bi-exclamation-circle-fill::before { content: "\f332"; }
585
+ .wpbc-bi-exclamation-circle::before { content: "\f333"; }
586
+ .wpbc-bi-exclamation-diamond-fill::before { content: "\f334"; }
587
+ .wpbc-bi-exclamation-diamond::before { content: "\f335"; }
588
+ .wpbc-bi-exclamation-octagon-fill::before { content: "\f336"; }
589
+ .wpbc-bi-exclamation-octagon::before { content: "\f337"; }
590
+ .wpbc-bi-exclamation-square-fill::before { content: "\f338"; }
591
+ .wpbc-bi-exclamation-square::before { content: "\f339"; }
592
+ .wpbc-bi-exclamation-triangle-fill::before { content: "\f33a"; }
593
+ .wpbc-bi-exclamation-triangle::before { content: "\f33b"; }
594
+ .wpbc-bi-exclamation::before { content: "\f33c"; }
595
+ .wpbc-bi-exclude::before { content: "\f33d"; }
596
+ .wpbc-bi-eye-fill::before { content: "\f33e"; }
597
+ .wpbc-bi-eye-slash-fill::before { content: "\f33f"; }
598
+ .wpbc-bi-eye-slash::before { content: "\f340"; }
599
+ .wpbc-bi-eye::before { content: "\f341"; }
600
+ .wpbc-bi-eyedropper::before { content: "\f342"; }
601
+ .wpbc-bi-eyeglasses::before { content: "\f343"; }
602
+ .wpbc-bi-facebook::before { content: "\f344"; }
603
+ .wpbc-bi-file-arrow-down-fill::before { content: "\f345"; }
604
+ .wpbc-bi-file-arrow-down::before { content: "\f346"; }
605
+ .wpbc-bi-file-arrow-up-fill::before { content: "\f347"; }
606
+ .wpbc-bi-file-arrow-up::before { content: "\f348"; }
607
+ .wpbc-bi-file-bar-graph-fill::before { content: "\f349"; }
608
+ .wpbc-bi-file-bar-graph::before { content: "\f34a"; }
609
+ .wpbc-bi-file-binary-fill::before { content: "\f34b"; }
610
+ .wpbc-bi-file-binary::before { content: "\f34c"; }
611
+ .wpbc-bi-file-break-fill::before { content: "\f34d"; }
612
+ .wpbc-bi-file-break::before { content: "\f34e"; }
613
+ .wpbc-bi-file-check-fill::before { content: "\f34f"; }
614
+ .wpbc-bi-file-check::before { content: "\f350"; }
615
+ .wpbc-bi-file-code-fill::before { content: "\f351"; }
616
+ .wpbc-bi-file-code::before { content: "\f352"; }
617
+ .wpbc-bi-file-diff-fill::before { content: "\f353"; }
618
+ .wpbc-bi-file-diff::before { content: "\f354"; }
619
+ .wpbc-bi-file-earmark-arrow-down-fill::before { content: "\f355"; }
620
+ .wpbc-bi-file-earmark-arrow-down::before { content: "\f356"; }
621
+ .wpbc-bi-file-earmark-arrow-up-fill::before { content: "\f357"; }
622
+ .wpbc-bi-file-earmark-arrow-up::before { content: "\f358"; }
623
+ .wpbc-bi-file-earmark-bar-graph-fill::before { content: "\f359"; }
624
+ .wpbc-bi-file-earmark-bar-graph::before { content: "\f35a"; }
625
+ .wpbc-bi-file-earmark-binary-fill::before { content: "\f35b"; }
626
+ .wpbc-bi-file-earmark-binary::before { content: "\f35c"; }
627
+ .wpbc-bi-file-earmark-break-fill::before { content: "\f35d"; }
628
+ .wpbc-bi-file-earmark-break::before { content: "\f35e"; }
629
+ .wpbc-bi-file-earmark-check-fill::before { content: "\f35f"; }
630
+ .wpbc-bi-file-earmark-check::before { content: "\f360"; }
631
+ .wpbc-bi-file-earmark-code-fill::before { content: "\f361"; }
632
+ .wpbc-bi-file-earmark-code::before { content: "\f362"; }
633
+ .wpbc-bi-file-earmark-diff-fill::before { content: "\f363"; }
634
+ .wpbc-bi-file-earmark-diff::before { content: "\f364"; }
635
+ .wpbc-bi-file-earmark-easel-fill::before { content: "\f365"; }
636
+ .wpbc-bi-file-earmark-easel::before { content: "\f366"; }
637
+ .wpbc-bi-file-earmark-excel-fill::before { content: "\f367"; }
638
+ .wpbc-bi-file-earmark-excel::before { content: "\f368"; }
639
+ .wpbc-bi-file-earmark-fill::before { content: "\f369"; }
640
+ .wpbc-bi-file-earmark-font-fill::before { content: "\f36a"; }
641
+ .wpbc-bi-file-earmark-font::before { content: "\f36b"; }
642
+ .wpbc-bi-file-earmark-image-fill::before { content: "\f36c"; }
643
+ .wpbc-bi-file-earmark-image::before { content: "\f36d"; }
644
+ .wpbc-bi-file-earmark-lock-fill::before { content: "\f36e"; }
645
+ .wpbc-bi-file-earmark-lock::before { content: "\f36f"; }
646
+ .wpbc-bi-file-earmark-lock2-fill::before { content: "\f370"; }
647
+ .wpbc-bi-file-earmark-lock2::before { content: "\f371"; }
648
+ .wpbc-bi-file-earmark-medical-fill::before { content: "\f372"; }
649
+ .wpbc-bi-file-earmark-medical::before { content: "\f373"; }
650
+ .wpbc-bi-file-earmark-minus-fill::before { content: "\f374"; }
651
+ .wpbc-bi-file-earmark-minus::before { content: "\f375"; }
652
+ .wpbc-bi-file-earmark-music-fill::before { content: "\f376"; }
653
+ .wpbc-bi-file-earmark-music::before { content: "\f377"; }
654
+ .wpbc-bi-file-earmark-person-fill::before { content: "\f378"; }
655
+ .wpbc-bi-file-earmark-person::before { content: "\f379"; }
656
+ .wpbc-bi-file-earmark-play-fill::before { content: "\f37a"; }
657
+ .wpbc-bi-file-earmark-play::before { content: "\f37b"; }
658
+ .wpbc-bi-file-earmark-plus-fill::before { content: "\f37c"; }
659
+ .wpbc-bi-file-earmark-plus::before { content: "\f37d"; }
660
+ .wpbc-bi-file-earmark-post-fill::before { content: "\f37e"; }
661
+ .wpbc-bi-file-earmark-post::before { content: "\f37f"; }
662
+ .wpbc-bi-file-earmark-ppt-fill::before { content: "\f380"; }
663
+ .wpbc-bi-file-earmark-ppt::before { content: "\f381"; }
664
+ .wpbc-bi-file-earmark-richtext-fill::before { content: "\f382"; }
665
+ .wpbc-bi-file-earmark-richtext::before { content: "\f383"; }
666
+ .wpbc-bi-file-earmark-ruled-fill::before { content: "\f384"; }
667
+ .wpbc-bi-file-earmark-ruled::before { content: "\f385"; }
668
+ .wpbc-bi-file-earmark-slides-fill::before { content: "\f386"; }
669
+ .wpbc-bi-file-earmark-slides::before { content: "\f387"; }
670
+ .wpbc-bi-file-earmark-spreadsheet-fill::before { content: "\f388"; }
671
+ .wpbc-bi-file-earmark-spreadsheet::before { content: "\f389"; }
672
+ .wpbc-bi-file-earmark-text-fill::before { content: "\f38a"; }
673
+ .wpbc-bi-file-earmark-text::before { content: "\f38b"; }
674
+ .wpbc-bi-file-earmark-word-fill::before { content: "\f38c"; }
675
+ .wpbc-bi-file-earmark-word::before { content: "\f38d"; }
676
+ .wpbc-bi-file-earmark-x-fill::before { content: "\f38e"; }
677
+ .wpbc-bi-file-earmark-x::before { content: "\f38f"; }
678
+ .wpbc-bi-file-earmark-zip-fill::before { content: "\f390"; }
679
+ .wpbc-bi-file-earmark-zip::before { content: "\f391"; }
680
+ .wpbc-bi-file-earmark::before { content: "\f392"; }
681
+ .wpbc-bi-file-easel-fill::before { content: "\f393"; }
682
+ .wpbc-bi-file-easel::before { content: "\f394"; }
683
+ .wpbc-bi-file-excel-fill::before { content: "\f395"; }
684
+ .wpbc-bi-file-excel::before { content: "\f396"; }
685
+ .wpbc-bi-file-fill::before { content: "\f397"; }
686
+ .wpbc-bi-file-font-fill::before { content: "\f398"; }
687
+ .wpbc-bi-file-font::before { content: "\f399"; }
688
+ .wpbc-bi-file-image-fill::before { content: "\f39a"; }
689
+ .wpbc-bi-file-image::before { content: "\f39b"; }
690
+ .wpbc-bi-file-lock-fill::before { content: "\f39c"; }
691
+ .wpbc-bi-file-lock::before { content: "\f39d"; }
692
+ .wpbc-bi-file-lock2-fill::before { content: "\f39e"; }
693
+ .wpbc-bi-file-lock2::before { content: "\f39f"; }
694
+ .wpbc-bi-file-medical-fill::before { content: "\f3a0"; }
695
+ .wpbc-bi-file-medical::before { content: "\f3a1"; }
696
+ .wpbc-bi-file-minus-fill::before { content: "\f3a2"; }
697
+ .wpbc-bi-file-minus::before { content: "\f3a3"; }
698
+ .wpbc-bi-file-music-fill::before { content: "\f3a4"; }
699
+ .wpbc-bi-file-music::before { content: "\f3a5"; }
700
+ .wpbc-bi-file-person-fill::before { content: "\f3a6"; }
701
+ .wpbc-bi-file-person::before { content: "\f3a7"; }
702
+ .wpbc-bi-file-play-fill::before { content: "\f3a8"; }
703
+ .wpbc-bi-file-play::before { content: "\f3a9"; }
704
+ .wpbc-bi-file-plus-fill::before { content: "\f3aa"; }
705
+ .wpbc-bi-file-plus::before { content: "\f3ab"; }
706
+ .wpbc-bi-file-post-fill::before { content: "\f3ac"; }
707
+ .wpbc-bi-file-post::before { content: "\f3ad"; }
708
+ .wpbc-bi-file-ppt-fill::before { content: "\f3ae"; }
709
+ .wpbc-bi-file-ppt::before { content: "\f3af"; }
710
+ .wpbc-bi-file-richtext-fill::before { content: "\f3b0"; }
711
+ .wpbc-bi-file-richtext::before { content: "\f3b1"; }
712
+ .wpbc-bi-file-ruled-fill::before { content: "\f3b2"; }
713
+ .wpbc-bi-file-ruled::before { content: "\f3b3"; }
714
+ .wpbc-bi-file-slides-fill::before { content: "\f3b4"; }
715
+ .wpbc-bi-file-slides::before { content: "\f3b5"; }
716
+ .wpbc-bi-file-spreadsheet-fill::before { content: "\f3b6"; }
717
+ .wpbc-bi-file-spreadsheet::before { content: "\f3b7"; }
718
+ .wpbc-bi-file-text-fill::before { content: "\f3b8"; }
719
+ .wpbc-bi-file-text::before { content: "\f3b9"; }
720
+ .wpbc-bi-file-word-fill::before { content: "\f3ba"; }
721
+ .wpbc-bi-file-word::before { content: "\f3bb"; }
722
+ .wpbc-bi-file-x-fill::before { content: "\f3bc"; }
723
+ .wpbc-bi-file-x::before { content: "\f3bd"; }
724
+ .wpbc-bi-file-zip-fill::before { content: "\f3be"; }
725
+ .wpbc-bi-file-zip::before { content: "\f3bf"; }
726
+ .wpbc-bi-file::before { content: "\f3c0"; }
727
+ .wpbc-bi-files-alt::before { content: "\f3c1"; }
728
+ .wpbc-bi-files::before { content: "\f3c2"; }
729
+ .wpbc-bi-film::before { content: "\f3c3"; }
730
+ .wpbc-bi-filter-circle-fill::before { content: "\f3c4"; }
731
+ .wpbc-bi-filter-circle::before { content: "\f3c5"; }
732
+ .wpbc-bi-filter-left::before { content: "\f3c6"; }
733
+ .wpbc-bi-filter-right::before { content: "\f3c7"; }
734
+ .wpbc-bi-filter-square-fill::before { content: "\f3c8"; }
735
+ .wpbc-bi-filter-square::before { content: "\f3c9"; }
736
+ .wpbc-bi-filter::before { content: "\f3ca"; }
737
+ .wpbc-bi-flag-fill::before { content: "\f3cb"; }
738
+ .wpbc-bi-flag::before { content: "\f3cc"; }
739
+ .wpbc-bi-flower1::before { content: "\f3cd"; }
740
+ .wpbc-bi-flower2::before { content: "\f3ce"; }
741
+ .wpbc-bi-flower3::before { content: "\f3cf"; }
742
+ .wpbc-bi-folder-check::before { content: "\f3d0"; }
743
+ .wpbc-bi-folder-fill::before { content: "\f3d1"; }
744
+ .wpbc-bi-folder-minus::before { content: "\f3d2"; }
745
+ .wpbc-bi-folder-plus::before { content: "\f3d3"; }
746
+ .wpbc-bi-folder-symlink-fill::before { content: "\f3d4"; }
747
+ .wpbc-bi-folder-symlink::before { content: "\f3d5"; }
748
+ .wpbc-bi-folder-x::before { content: "\f3d6"; }
749
+ .wpbc-bi-folder::before { content: "\f3d7"; }
750
+ .wpbc-bi-folder2-open::before { content: "\f3d8"; }
751
+ .wpbc-bi-folder2::before { content: "\f3d9"; }
752
+ .wpbc-bi-fonts::before { content: "\f3da"; }
753
+ .wpbc-bi-forward-fill::before { content: "\f3db"; }
754
+ .wpbc-bi-forward::before { content: "\f3dc"; }
755
+ .wpbc-bi-front::before { content: "\f3dd"; }
756
+ .wpbc-bi-fullscreen-exit::before { content: "\f3de"; }
757
+ .wpbc-bi-fullscreen::before { content: "\f3df"; }
758
+ .wpbc-bi-funnel-fill::before { content: "\f3e0"; }
759
+ .wpbc-bi-funnel::before { content: "\f3e1"; }
760
+ .wpbc-bi-gear-fill::before { content: "\f3e2"; }
761
+ .wpbc-bi-gear-wide-connected::before { content: "\f3e3"; }
762
+ .wpbc-bi-gear-wide::before { content: "\f3e4"; }
763
+ .wpbc-bi-gear::before { content: "\f3e5"; }
764
+ .wpbc-bi-gem::before { content: "\f3e6"; }
765
+ .wpbc-bi-geo-alt-fill::before { content: "\f3e7"; }
766
+ .wpbc-bi-geo-alt::before { content: "\f3e8"; }
767
+ .wpbc-bi-geo-fill::before { content: "\f3e9"; }
768
+ .wpbc-bi-geo::before { content: "\f3ea"; }
769
+ .wpbc-bi-gift-fill::before { content: "\f3eb"; }
770
+ .wpbc-bi-gift::before { content: "\f3ec"; }
771
+ .wpbc-bi-github::before { content: "\f3ed"; }
772
+ .wpbc-bi-globe::before { content: "\f3ee"; }
773
+ .wpbc-bi-globe2::before { content: "\f3ef"; }
774
+ .wpbc-bi-google::before { content: "\f3f0"; }
775
+ .wpbc-bi-graph-down::before { content: "\f3f1"; }
776
+ .wpbc-bi-graph-up::before { content: "\f3f2"; }
777
+ .wpbc-bi-grid-1x2-fill::before { content: "\f3f3"; }
778
+ .wpbc-bi-grid-1x2::before { content: "\f3f4"; }
779
+ .wpbc-bi-grid-3x2-gap-fill::before { content: "\f3f5"; }
780
+ .wpbc-bi-grid-3x2-gap::before { content: "\f3f6"; }
781
+ .wpbc-bi-grid-3x2::before { content: "\f3f7"; }
782
+ .wpbc-bi-grid-3x3-gap-fill::before { content: "\f3f8"; }
783
+ .wpbc-bi-grid-3x3-gap::before { content: "\f3f9"; }
784
+ .wpbc-bi-grid-3x3::before { content: "\f3fa"; }
785
+ .wpbc-bi-grid-fill::before { content: "\f3fb"; }
786
+ .wpbc-bi-grid::before { content: "\f3fc"; }
787
+ .wpbc-bi-grip-horizontal::before { content: "\f3fd"; }
788
+ .wpbc-bi-grip-vertical::before { content: "\f3fe"; }
789
+ .wpbc-bi-hammer::before { content: "\f3ff"; }
790
+ .wpbc-bi-hand-index-fill::before { content: "\f400"; }
791
+ .wpbc-bi-hand-index-thumb-fill::before { content: "\f401"; }
792
+ .wpbc-bi-hand-index-thumb::before { content: "\f402"; }
793
+ .wpbc-bi-hand-index::before { content: "\f403"; }
794
+ .wpbc-bi-hand-thumbs-down-fill::before { content: "\f404"; }
795
+ .wpbc-bi-hand-thumbs-down::before { content: "\f405"; }
796
+ .wpbc-bi-hand-thumbs-up-fill::before { content: "\f406"; }
797
+ .wpbc-bi-hand-thumbs-up::before { content: "\f407"; }
798
+ .wpbc-bi-handbag-fill::before { content: "\f408"; }
799
+ .wpbc-bi-handbag::before { content: "\f409"; }
800
+ .wpbc-bi-hash::before { content: "\f40a"; }
801
+ .wpbc-bi-hdd-fill::before { content: "\f40b"; }
802
+ .wpbc-bi-hdd-network-fill::before { content: "\f40c"; }
803
+ .wpbc-bi-hdd-network::before { content: "\f40d"; }
804
+ .wpbc-bi-hdd-rack-fill::before { content: "\f40e"; }
805
+ .wpbc-bi-hdd-rack::before { content: "\f40f"; }
806
+ .wpbc-bi-hdd-stack-fill::before { content: "\f410"; }
807
+ .wpbc-bi-hdd-stack::before { content: "\f411"; }
808
+ .wpbc-bi-hdd::before { content: "\f412"; }
809
+ .wpbc-bi-headphones::before { content: "\f413"; }
810
+ .wpbc-bi-headset::before { content: "\f414"; }
811
+ .wpbc-bi-heart-fill::before { content: "\f415"; }
812
+ .wpbc-bi-heart-half::before { content: "\f416"; }
813
+ .wpbc-bi-heart::before { content: "\f417"; }
814
+ .wpbc-bi-heptagon-fill::before { content: "\f418"; }
815
+ .wpbc-bi-heptagon-half::before { content: "\f419"; }
816
+ .wpbc-bi-heptagon::before { content: "\f41a"; }
817
+ .wpbc-bi-hexagon-fill::before { content: "\f41b"; }
818
+ .wpbc-bi-hexagon-half::before { content: "\f41c"; }
819
+ .wpbc-bi-hexagon::before { content: "\f41d"; }
820
+ .wpbc-bi-hourglass-bottom::before { content: "\f41e"; }
821
+ .wpbc-bi-hourglass-split::before { content: "\f41f"; }
822
+ .wpbc-bi-hourglass-top::before { content: "\f420"; }
823
+ .wpbc-bi-hourglass::before { content: "\f421"; }
824
+ .wpbc-bi-house-door-fill::before { content: "\f422"; }
825
+ .wpbc-bi-house-door::before { content: "\f423"; }
826
+ .wpbc-bi-house-fill::before { content: "\f424"; }
827
+ .wpbc-bi-house::before { content: "\f425"; }
828
+ .wpbc-bi-hr::before { content: "\f426"; }
829
+ .wpbc-bi-hurricane::before { content: "\f427"; }
830
+ .wpbc-bi-image-alt::before { content: "\f428"; }
831
+ .wpbc-bi-image-fill::before { content: "\f429"; }
832
+ .wpbc-bi-image::before { content: "\f42a"; }
833
+ .wpbc-bi-images::before { content: "\f42b"; }
834
+ .wpbc-bi-inbox-fill::before { content: "\f42c"; }
835
+ .wpbc-bi-inbox::before { content: "\f42d"; }
836
+ .wpbc-bi-inboxes-fill::before { content: "\f42e"; }
837
+ .wpbc-bi-inboxes::before { content: "\f42f"; }
838
+ .wpbc-bi-info-circle-fill::before { content: "\f430"; }
839
+ .wpbc-bi-info-circle::before { content: "\f431"; }
840
+ .wpbc-bi-info-square-fill::before { content: "\f432"; }
841
+ .wpbc-bi-info-square::before { content: "\f433"; }
842
+ .wpbc-bi-info::before { content: "\f434"; }
843
+ .wpbc-bi-input-cursor-text::before { content: "\f435"; }
844
+ .wpbc-bi-input-cursor::before { content: "\f436"; }
845
+ .wpbc-bi-instagram::before { content: "\f437"; }
846
+ .wpbc-bi-intersect::before { content: "\f438"; }
847
+ .wpbc-bi-journal-album::before { content: "\f439"; }
848
+ .wpbc-bi-journal-arrow-down::before { content: "\f43a"; }
849
+ .wpbc-bi-journal-arrow-up::before { content: "\f43b"; }
850
+ .wpbc-bi-journal-bookmark-fill::before { content: "\f43c"; }
851
+ .wpbc-bi-journal-bookmark::before { content: "\f43d"; }
852
+ .wpbc-bi-journal-check::before { content: "\f43e"; }
853
+ .wpbc-bi-journal-code::before { content: "\f43f"; }
854
+ .wpbc-bi-journal-medical::before { content: "\f440"; }
855
+ .wpbc-bi-journal-minus::before { content: "\f441"; }
856
+ .wpbc-bi-journal-plus::before { content: "\f442"; }
857
+ .wpbc-bi-journal-richtext::before { content: "\f443"; }
858
+ .wpbc-bi-journal-text::before { content: "\f444"; }
859
+ .wpbc-bi-journal-x::before { content: "\f445"; }
860
+ .wpbc-bi-journal::before { content: "\f446"; }
861
+ .wpbc-bi-journals::before { content: "\f447"; }
862
+ .wpbc-bi-joystick::before { content: "\f448"; }
863
+ .wpbc-bi-justify-left::before { content: "\f449"; }
864
+ .wpbc-bi-justify-right::before { content: "\f44a"; }
865
+ .wpbc-bi-justify::before { content: "\f44b"; }
866
+ .wpbc-bi-kanban-fill::before { content: "\f44c"; }
867
+ .wpbc-bi-kanban::before { content: "\f44d"; }
868
+ .wpbc-bi-key-fill::before { content: "\f44e"; }
869
+ .wpbc-bi-key::before { content: "\f44f"; }
870
+ .wpbc-bi-keyboard-fill::before { content: "\f450"; }
871
+ .wpbc-bi-keyboard::before { content: "\f451"; }
872
+ .wpbc-bi-ladder::before { content: "\f452"; }
873
+ .wpbc-bi-lamp-fill::before { content: "\f453"; }
874
+ .wpbc-bi-lamp::before { content: "\f454"; }
875
+ .wpbc-bi-laptop-fill::before { content: "\f455"; }
876
+ .wpbc-bi-laptop::before { content: "\f456"; }
877
+ .wpbc-bi-layer-backward::before { content: "\f457"; }
878
+ .wpbc-bi-layer-forward::before { content: "\f458"; }
879
+ .wpbc-bi-layers-fill::before { content: "\f459"; }
880
+ .wpbc-bi-layers-half::before { content: "\f45a"; }
881
+ .wpbc-bi-layers::before { content: "\f45b"; }
882
+ .wpbc-bi-layout-sidebar-inset-reverse::before { content: "\f45c"; }
883
+ .wpbc-bi-layout-sidebar-inset::before { content: "\f45d"; }
884
+ .wpbc-bi-layout-sidebar-reverse::before { content: "\f45e"; }
885
+ .wpbc-bi-layout-sidebar::before { content: "\f45f"; }
886
+ .wpbc-bi-layout-split::before { content: "\f460"; }
887
+ .wpbc-bi-layout-text-sidebar-reverse::before { content: "\f461"; }
888
+ .wpbc-bi-layout-text-sidebar::before { content: "\f462"; }
889
+ .wpbc-bi-layout-text-window-reverse::before { content: "\f463"; }
890
+ .wpbc-bi-layout-text-window::before { content: "\f464"; }
891
+ .wpbc-bi-layout-three-columns::before { content: "\f465"; }
892
+ .wpbc-bi-layout-wtf::before { content: "\f466"; }
893
+ .wpbc-bi-life-preserver::before { content: "\f467"; }
894
+ .wpbc-bi-lightbulb-fill::before { content: "\f468"; }
895
+ .wpbc-bi-lightbulb-off-fill::before { content: "\f469"; }
896
+ .wpbc-bi-lightbulb-off::before { content: "\f46a"; }
897
+ .wpbc-bi-lightbulb::before { content: "\f46b"; }
898
+ .wpbc-bi-lightning-charge-fill::before { content: "\f46c"; }
899
+ .wpbc-bi-lightning-charge::before { content: "\f46d"; }
900
+ .wpbc-bi-lightning-fill::before { content: "\f46e"; }
901
+ .wpbc-bi-lightning::before { content: "\f46f"; }
902
+ .wpbc-bi-link-45deg::before { content: "\f470"; }
903
+ .wpbc-bi-link::before { content: "\f471"; }
904
+ .wpbc-bi-linkedin::before { content: "\f472"; }
905
+ .wpbc-bi-list-check::before { content: "\f473"; }
906
+ .wpbc-bi-list-nested::before { content: "\f474"; }
907
+ .wpbc-bi-list-ol::before { content: "\f475"; }
908
+ .wpbc-bi-list-stars::before { content: "\f476"; }
909
+ .wpbc-bi-list-task::before { content: "\f477"; }
910
+ .wpbc-bi-list-ul::before { content: "\f478"; }
911
+ .wpbc-bi-list::before { content: "\f479"; }
912
+ .wpbc-bi-lock-fill::before { content: "\f47a"; }
913
+ .wpbc-bi-lock::before { content: "\f47b"; }
914
+ .wpbc-bi-mailbox::before { content: "\f47c"; }
915
+ .wpbc-bi-mailbox2::before { content: "\f47d"; }
916
+ .wpbc-bi-map-fill::before { content: "\f47e"; }
917
+ .wpbc-bi-map::before { content: "\f47f"; }
918
+ .wpbc-bi-markdown-fill::before { content: "\f480"; }
919
+ .wpbc-bi-markdown::before { content: "\f481"; }
920
+ .wpbc-bi-mask::before { content: "\f482"; }
921
+ .wpbc-bi-megaphone-fill::before { content: "\f483"; }
922
+ .wpbc-bi-megaphone::before { content: "\f484"; }
923
+ .wpbc-bi-menu-app-fill::before { content: "\f485"; }
924
+ .wpbc-bi-menu-app::before { content: "\f486"; }
925
+ .wpbc-bi-menu-button-fill::before { content: "\f487"; }
926
+ .wpbc-bi-menu-button-wide-fill::before { content: "\f488"; }
927
+ .wpbc-bi-menu-button-wide::before { content: "\f489"; }
928
+ .wpbc-bi-menu-button::before { content: "\f48a"; }
929
+ .wpbc-bi-menu-down::before { content: "\f48b"; }
930
+ .wpbc-bi-menu-up::before { content: "\f48c"; }
931
+ .wpbc-bi-mic-fill::before { content: "\f48d"; }
932
+ .wpbc-bi-mic-mute-fill::before { content: "\f48e"; }
933
+ .wpbc-bi-mic-mute::before { content: "\f48f"; }
934
+ .wpbc-bi-mic::before { content: "\f490"; }
935
+ .wpbc-bi-minecart-loaded::before { content: "\f491"; }
936
+ .wpbc-bi-minecart::before { content: "\f492"; }
937
+ .wpbc-bi-moisture::before { content: "\f493"; }
938
+ .wpbc-bi-moon-fill::before { content: "\f494"; }
939
+ .wpbc-bi-moon-stars-fill::before { content: "\f495"; }
940
+ .wpbc-bi-moon-stars::before { content: "\f496"; }
941
+ .wpbc-bi-moon::before { content: "\f497"; }
942
+ .wpbc-bi-mouse-fill::before { content: "\f498"; }
943
+ .wpbc-bi-mouse::before { content: "\f499"; }
944
+ .wpbc-bi-mouse2-fill::before { content: "\f49a"; }
945
+ .wpbc-bi-mouse2::before { content: "\f49b"; }
946
+ .wpbc-bi-mouse3-fill::before { content: "\f49c"; }
947
+ .wpbc-bi-mouse3::before { content: "\f49d"; }
948
+ .wpbc-bi-music-note-beamed::before { content: "\f49e"; }
949
+ .wpbc-bi-music-note-list::before { content: "\f49f"; }
950
+ .wpbc-bi-music-note::before { content: "\f4a0"; }
951
+ .wpbc-bi-music-player-fill::before { content: "\f4a1"; }
952
+ .wpbc-bi-music-player::before { content: "\f4a2"; }
953
+ .wpbc-bi-newspaper::before { content: "\f4a3"; }
954
+ .wpbc-bi-node-minus-fill::before { content: "\f4a4"; }
955
+ .wpbc-bi-node-minus::before { content: "\f4a5"; }
956
+ .wpbc-bi-node-plus-fill::before { content: "\f4a6"; }
957
+ .wpbc-bi-node-plus::before { content: "\f4a7"; }
958
+ .wpbc-bi-nut-fill::before { content: "\f4a8"; }
959
+ .wpbc-bi-nut::before { content: "\f4a9"; }
960
+ .wpbc-bi-octagon-fill::before { content: "\f4aa"; }
961
+ .wpbc-bi-octagon-half::before { content: "\f4ab"; }
962
+ .wpbc-bi-octagon::before { content: "\f4ac"; }
963
+ .wpbc-bi-option::before { content: "\f4ad"; }
964
+ .wpbc-bi-outlet::before { content: "\f4ae"; }
965
+ .wpbc-bi-paint-bucket::before { content: "\f4af"; }
966
+ .wpbc-bi-palette-fill::before { content: "\f4b0"; }
967
+ .wpbc-bi-palette::before { content: "\f4b1"; }
968
+ .wpbc-bi-palette2::before { content: "\f4b2"; }
969
+ .wpbc-bi-paperclip::before { content: "\f4b3"; }
970
+ .wpbc-bi-paragraph::before { content: "\f4b4"; }
971
+ .wpbc-bi-patch-check-fill::before { content: "\f4b5"; }
972
+ .wpbc-bi-patch-check::before { content: "\f4b6"; }
973
+ .wpbc-bi-patch-exclamation-fill::before { content: "\f4b7"; }
974
+ .wpbc-bi-patch-exclamation::before { content: "\f4b8"; }
975
+ .wpbc-bi-patch-minus-fill::before { content: "\f4b9"; }
976
+ .wpbc-bi-patch-minus::before { content: "\f4ba"; }
977
+ .wpbc-bi-patch-plus-fill::before { content: "\f4bb"; }
978
+ .wpbc-bi-patch-plus::before { content: "\f4bc"; }
979
+ .wpbc-bi-patch-question-fill::before { content: "\f4bd"; }
980
+ .wpbc-bi-patch-question::before { content: "\f4be"; }
981
+ .wpbc-bi-pause-btn-fill::before { content: "\f4bf"; }
982
+ .wpbc-bi-pause-btn::before { content: "\f4c0"; }
983
+ .wpbc-bi-pause-circle-fill::before { content: "\f4c1"; }
984
+ .wpbc-bi-pause-circle::before { content: "\f4c2"; }
985
+ .wpbc-bi-pause-fill::before { content: "\f4c3"; }
986
+ .wpbc-bi-pause::before { content: "\f4c4"; }
987
+ .wpbc-bi-peace-fill::before { content: "\f4c5"; }
988
+ .wpbc-bi-peace::before { content: "\f4c6"; }
989
+ .wpbc-bi-pen-fill::before { content: "\f4c7"; }
990
+ .wpbc-bi-pen::before { content: "\f4c8"; }
991
+ .wpbc-bi-pencil-fill::before { content: "\f4c9"; }
992
+ .wpbc-bi-pencil-square::before { content: "\f4ca"; }
993
+ .wpbc-bi-pencil::before { content: "\f4cb"; }
994
+ .wpbc-bi-pentagon-fill::before { content: "\f4cc"; }
995
+ .wpbc-bi-pentagon-half::before { content: "\f4cd"; }
996
+ .wpbc-bi-pentagon::before { content: "\f4ce"; }
997
+ .wpbc-bi-people-fill::before { content: "\f4cf"; }
998
+ .wpbc-bi-people::before { content: "\f4d0"; }
999
+ .wpbc-bi-percent::before { content: "\f4d1"; }
1000
+ .wpbc-bi-person-badge-fill::before { content: "\f4d2"; }
1001
+ .wpbc-bi-person-badge::before { content: "\f4d3"; }
1002
+ .wpbc-bi-person-bounding-box::before { content: "\f4d4"; }
1003
+ .wpbc-bi-person-check-fill::before { content: "\f4d5"; }
1004
+ .wpbc-bi-person-check::before { content: "\f4d6"; }
1005
+ .wpbc-bi-person-circle::before { content: "\f4d7"; }
1006
+ .wpbc-bi-person-dash-fill::before { content: "\f4d8"; }
1007
+ .wpbc-bi-person-dash::before { content: "\f4d9"; }
1008
+ .wpbc-bi-person-fill::before { content: "\f4da"; }
1009
+ .wpbc-bi-person-lines-fill::before { content: "\f4db"; }
1010
+ .wpbc-bi-person-plus-fill::before { content: "\f4dc"; }
1011
+ .wpbc-bi-person-plus::before { content: "\f4dd"; }
1012
+ .wpbc-bi-person-square::before { content: "\f4de"; }
1013
+ .wpbc-bi-person-x-fill::before { content: "\f4df"; }
1014
+ .wpbc-bi-person-x::before { content: "\f4e0"; }
1015
+ .wpbc-bi-person::before { content: "\f4e1"; }
1016
+ .wpbc-bi-phone-fill::before { content: "\f4e2"; }
1017
+ .wpbc-bi-phone-landscape-fill::before { content: "\f4e3"; }
1018
+ .wpbc-bi-phone-landscape::before { content: "\f4e4"; }
1019
+ .wpbc-bi-phone-vibrate-fill::before { content: "\f4e5"; }
1020
+ .wpbc-bi-phone-vibrate::before { content: "\f4e6"; }
1021
+ .wpbc-bi-phone::before { content: "\f4e7"; }
1022
+ .wpbc-bi-pie-chart-fill::before { content: "\f4e8"; }
1023
+ .wpbc-bi-pie-chart::before { content: "\f4e9"; }
1024
+ .wpbc-bi-pin-angle-fill::before { content: "\f4ea"; }
1025
+ .wpbc-bi-pin-angle::before { content: "\f4eb"; }
1026
+ .wpbc-bi-pin-fill::before { content: "\f4ec"; }
1027
+ .wpbc-bi-pin::before { content: "\f4ed"; }
1028
+ .wpbc-bi-pip-fill::before { content: "\f4ee"; }
1029
+ .wpbc-bi-pip::before { content: "\f4ef"; }
1030
+ .wpbc-bi-play-btn-fill::before { content: "\f4f0"; }
1031
+ .wpbc-bi-play-btn::before { content: "\f4f1"; }
1032
+ .wpbc-bi-play-circle-fill::before { content: "\f4f2"; }
1033
+ .wpbc-bi-play-circle::before { content: "\f4f3"; }
1034
+ .wpbc-bi-play-fill::before { content: "\f4f4"; }
1035
+ .wpbc-bi-play::before { content: "\f4f5"; }
1036
+ .wpbc-bi-plug-fill::before { content: "\f4f6"; }
1037
+ .wpbc-bi-plug::before { content: "\f4f7"; }
1038
+ .wpbc-bi-plus-circle-dotted::before { content: "\f4f8"; }
1039
+ .wpbc-bi-plus-circle-fill::before { content: "\f4f9"; }
1040
+ .wpbc-bi-plus-circle::before { content: "\f4fa"; }
1041
+ .wpbc-bi-plus-square-dotted::before { content: "\f4fb"; }
1042
+ .wpbc-bi-plus-square-fill::before { content: "\f4fc"; }
1043
+ .wpbc-bi-plus-square::before { content: "\f4fd"; }
1044
+ .wpbc-bi-plus::before { content: "\f4fe"; }
1045
+ .wpbc-bi-power::before { content: "\f4ff"; }
1046
+ .wpbc-bi-printer-fill::before { content: "\f500"; }
1047
+ .wpbc-bi-printer::before { content: "\f501"; }
1048
+ .wpbc-bi-puzzle-fill::before { content: "\f502"; }
1049
+ .wpbc-bi-puzzle::before { content: "\f503"; }
1050
+ .wpbc-bi-question-circle-fill::before { content: "\f504"; }
1051
+ .wpbc-bi-question-circle::before { content: "\f505"; }
1052
+ .wpbc-bi-question-diamond-fill::before { content: "\f506"; }
1053
+ .wpbc-bi-question-diamond::before { content: "\f507"; }
1054
+ .wpbc-bi-question-octagon-fill::before { content: "\f508"; }
1055
+ .wpbc-bi-question-octagon::before { content: "\f509"; }
1056
+ .wpbc-bi-question-square-fill::before { content: "\f50a"; }
1057
+ .wpbc-bi-question-square::before { content: "\f50b"; }
1058
+ .wpbc-bi-question::before { content: "\f50c"; }
1059
+ .wpbc-bi-rainbow::before { content: "\f50d"; }
1060
+ .wpbc-bi-receipt-cutoff::before { content: "\f50e"; }
1061
+ .wpbc-bi-receipt::before { content: "\f50f"; }
1062
+ .wpbc-bi-reception-0::before { content: "\f510"; }
1063
+ .wpbc-bi-reception-1::before { content: "\f511"; }
1064
+ .wpbc-bi-reception-2::before { content: "\f512"; }
1065
+ .wpbc-bi-reception-3::before { content: "\f513"; }
1066
+ .wpbc-bi-reception-4::before { content: "\f514"; }
1067
+ .wpbc-bi-record-btn-fill::before { content: "\f515"; }
1068
+ .wpbc-bi-record-btn::before { content: "\f516"; }
1069
+ .wpbc-bi-record-circle-fill::before { content: "\f517"; }
1070
+ .wpbc-bi-record-circle::before { content: "\f518"; }
1071
+ .wpbc-bi-record-fill::before { content: "\f519"; }
1072
+ .wpbc-bi-record::before { content: "\f51a"; }
1073
+ .wpbc-bi-record2-fill::before { content: "\f51b"; }
1074
+ .wpbc-bi-record2::before { content: "\f51c"; }
1075
+ .wpbc-bi-reply-all-fill::before { content: "\f51d"; }
1076
+ .wpbc-bi-reply-all::before { content: "\f51e"; }
1077
+ .wpbc-bi-reply-fill::before { content: "\f51f"; }
1078
+ .wpbc-bi-reply::before { content: "\f520"; }
1079
+ .wpbc-bi-rss-fill::before { content: "\f521"; }
1080
+ .wpbc-bi-rss::before { content: "\f522"; }
1081
+ .wpbc-bi-rulers::before { content: "\f523"; }
1082
+ .wpbc-bi-save-fill::before { content: "\f524"; }
1083
+ .wpbc-bi-save::before { content: "\f525"; }
1084
+ .wpbc-bi-save2-fill::before { content: "\f526"; }
1085
+ .wpbc-bi-save2::before { content: "\f527"; }
1086
+ .wpbc-bi-scissors::before { content: "\f528"; }
1087
+ .wpbc-bi-screwdriver::before { content: "\f529"; }
1088
+ .wpbc-bi-search::before { content: "\f52a"; }
1089
+ .wpbc-bi-segmented-nav::before { content: "\f52b"; }
1090
+ .wpbc-bi-server::before { content: "\f52c"; }
1091
+ .wpbc-bi-share-fill::before { content: "\f52d"; }
1092
+ .wpbc-bi-share::before { content: "\f52e"; }
1093
+ .wpbc-bi-shield-check::before { content: "\f52f"; }
1094
+ .wpbc-bi-shield-exclamation::before { content: "\f530"; }
1095
+ .wpbc-bi-shield-fill-check::before { content: "\f531"; }
1096
+ .wpbc-bi-shield-fill-exclamation::before { content: "\f532"; }
1097
+ .wpbc-bi-shield-fill-minus::before { content: "\f533"; }
1098
+ .wpbc-bi-shield-fill-plus::before { content: "\f534"; }
1099
+ .wpbc-bi-shield-fill-x::before { content: "\f535"; }
1100
+ .wpbc-bi-shield-fill::before { content: "\f536"; }
1101
+ .wpbc-bi-shield-lock-fill::before { content: "\f537"; }
1102
+ .wpbc-bi-shield-lock::before { content: "\f538"; }
1103
+ .wpbc-bi-shield-minus::before { content: "\f539"; }
1104
+ .wpbc-bi-shield-plus::before { content: "\f53a"; }
1105
+ .wpbc-bi-shield-shaded::before { content: "\f53b"; }
1106
+ .wpbc-bi-shield-slash-fill::before { content: "\f53c"; }
1107
+ .wpbc-bi-shield-slash::before { content: "\f53d"; }
1108
+ .wpbc-bi-shield-x::before { content: "\f53e"; }
1109
+ .wpbc-bi-shield::before { content: "\f53f"; }
1110
+ .wpbc-bi-shift-fill::before { content: "\f540"; }
1111
+ .wpbc-bi-shift::before { content: "\f541"; }
1112
+ .wpbc-bi-shop-window::before { content: "\f542"; }
1113
+ .wpbc-bi-shop::before { content: "\f543"; }
1114
+ .wpbc-bi-shuffle::before { content: "\f544"; }
1115
+ .wpbc-bi-signpost-2-fill::before { content: "\f545"; }
1116
+ .wpbc-bi-signpost-2::before { content: "\f546"; }
1117
+ .wpbc-bi-signpost-fill::before { content: "\f547"; }
1118
+ .wpbc-bi-signpost-split-fill::before { content: "\f548"; }
1119
+ .wpbc-bi-signpost-split::before { content: "\f549"; }
1120
+ .wpbc-bi-signpost::before { content: "\f54a"; }
1121
+ .wpbc-bi-sim-fill::before { content: "\f54b"; }
1122
+ .wpbc-bi-sim::before { content: "\f54c"; }
1123
+ .wpbc-bi-skip-backward-btn-fill::before { content: "\f54d"; }
1124
+ .wpbc-bi-skip-backward-btn::before { content: "\f54e"; }
1125
+ .wpbc-bi-skip-backward-circle-fill::before { content: "\f54f"; }
1126
+ .wpbc-bi-skip-backward-circle::before { content: "\f550"; }
1127
+ .wpbc-bi-skip-backward-fill::before { content: "\f551"; }
1128
+ .wpbc-bi-skip-backward::before { content: "\f552"; }
1129
+ .wpbc-bi-skip-end-btn-fill::before { content: "\f553"; }
1130
+ .wpbc-bi-skip-end-btn::before { content: "\f554"; }
1131
+ .wpbc-bi-skip-end-circle-fill::before { content: "\f555"; }
1132
+ .wpbc-bi-skip-end-circle::before { content: "\f556"; }
1133
+ .wpbc-bi-skip-end-fill::before { content: "\f557"; }
1134
+ .wpbc-bi-skip-end::before { content: "\f558"; }
1135
+ .wpbc-bi-skip-forward-btn-fill::before { content: "\f559"; }
1136
+ .wpbc-bi-skip-forward-btn::before { content: "\f55a"; }
1137
+ .wpbc-bi-skip-forward-circle-fill::before { content: "\f55b"; }
1138
+ .wpbc-bi-skip-forward-circle::before { content: "\f55c"; }
1139
+ .wpbc-bi-skip-forward-fill::before { content: "\f55d"; }
1140
+ .wpbc-bi-skip-forward::before { content: "\f55e"; }
1141
+ .wpbc-bi-skip-start-btn-fill::before { content: "\f55f"; }
1142
+ .wpbc-bi-skip-start-btn::before { content: "\f560"; }
1143
+ .wpbc-bi-skip-start-circle-fill::before { content: "\f561"; }
1144
+ .wpbc-bi-skip-start-circle::before { content: "\f562"; }
1145
+ .wpbc-bi-skip-start-fill::before { content: "\f563"; }
1146
+ .wpbc-bi-skip-start::before { content: "\f564"; }
1147
+ .wpbc-bi-slack::before { content: "\f565"; }
1148
+ .wpbc-bi-slash-circle-fill::before { content: "\f566"; }
1149
+ .wpbc-bi-slash-circle::before { content: "\f567"; }
1150
+ .wpbc-bi-slash-square-fill::before { content: "\f568"; }
1151
+ .wpbc-bi-slash-square::before { content: "\f569"; }
1152
+ .wpbc-bi-slash::before { content: "\f56a"; }
1153
+ .wpbc-bi-sliders::before { content: "\f56b"; }
1154
+ .wpbc-bi-smartwatch::before { content: "\f56c"; }
1155
+ .wpbc-bi-snow::before { content: "\f56d"; }
1156
+ .wpbc-bi-snow2::before { content: "\f56e"; }
1157
+ .wpbc-bi-snow3::before { content: "\f56f"; }
1158
+ .wpbc-bi-sort-alpha-down-alt::before { content: "\f570"; }
1159
+ .wpbc-bi-sort-alpha-down::before { content: "\f571"; }
1160
+ .wpbc-bi-sort-alpha-up-alt::before { content: "\f572"; }
1161
+ .wpbc-bi-sort-alpha-up::before { content: "\f573"; }
1162
+ .wpbc-bi-sort-down-alt::before { content: "\f574"; }
1163
+ .wpbc-bi-sort-down::before { content: "\f575"; }
1164
+ .wpbc-bi-sort-numeric-down-alt::before { content: "\f576"; }
1165
+ .wpbc-bi-sort-numeric-down::before { content: "\f577"; }
1166
+ .wpbc-bi-sort-numeric-up-alt::before { content: "\f578"; }
1167
+ .wpbc-bi-sort-numeric-up::before { content: "\f579"; }
1168
+ .wpbc-bi-sort-up-alt::before { content: "\f57a"; }
1169
+ .wpbc-bi-sort-up::before { content: "\f57b"; }
1170
+ .wpbc-bi-soundwave::before { content: "\f57c"; }
1171
+ .wpbc-bi-speaker-fill::before { content: "\f57d"; }
1172
+ .wpbc-bi-speaker::before { content: "\f57e"; }
1173
+ .wpbc-bi-speedometer::before { content: "\f57f"; }
1174
+ .wpbc-bi-speedometer2::before { content: "\f580"; }
1175
+ .wpbc-bi-spellcheck::before { content: "\f581"; }
1176
+ .wpbc-bi-square-fill::before { content: "\f582"; }
1177
+ .wpbc-bi-square-half::before { content: "\f583"; }
1178
+ .wpbc-bi-square::before { content: "\f584"; }
1179
+ .wpbc-bi-stack::before { content: "\f585"; }
1180
+ .wpbc-bi-star-fill::before { content: "\f586"; }
1181
+ .wpbc-bi-star-half::before { content: "\f587"; }
1182
+ .wpbc-bi-star::before { content: "\f588"; }
1183
+ .wpbc-bi-stars::before { content: "\f589"; }
1184
+ .wpbc-bi-stickies-fill::before { content: "\f58a"; }
1185
+ .wpbc-bi-stickies::before { content: "\f58b"; }
1186
+ .wpbc-bi-sticky-fill::before { content: "\f58c"; }
1187
+ .wpbc-bi-sticky::before { content: "\f58d"; }
1188
+ .wpbc-bi-stop-btn-fill::before { content: "\f58e"; }
1189
+ .wpbc-bi-stop-btn::before { content: "\f58f"; }
1190
+ .wpbc-bi-stop-circle-fill::before { content: "\f590"; }
1191
+ .wpbc-bi-stop-circle::before { content: "\f591"; }
1192
+ .wpbc-bi-stop-fill::before { content: "\f592"; }
1193
+ .wpbc-bi-stop::before { content: "\f593"; }
1194
+ .wpbc-bi-stoplights-fill::before { content: "\f594"; }
1195
+ .wpbc-bi-stoplights::before { content: "\f595"; }
1196
+ .wpbc-bi-stopwatch-fill::before { content: "\f596"; }
1197
+ .wpbc-bi-stopwatch::before { content: "\f597"; }
1198
+ .wpbc-bi-subtract::before { content: "\f598"; }
1199
+ .wpbc-bi-suit-club-fill::before { content: "\f599"; }
1200
+ .wpbc-bi-suit-club::before { content: "\f59a"; }
1201
+ .wpbc-bi-suit-diamond-fill::before { content: "\f59b"; }
1202
+ .wpbc-bi-suit-diamond::before { content: "\f59c"; }
1203
+ .wpbc-bi-suit-heart-fill::before { content: "\f59d"; }
1204
+ .wpbc-bi-suit-heart::before { content: "\f59e"; }
1205
+ .wpbc-bi-suit-spade-fill::before { content: "\f59f"; }
1206
+ .wpbc-bi-suit-spade::before { content: "\f5a0"; }
1207
+ .wpbc-bi-sun-fill::before { content: "\f5a1"; }
1208
+ .wpbc-bi-sun::before { content: "\f5a2"; }
1209
+ .wpbc-bi-sunglasses::before { content: "\f5a3"; }
1210
+ .wpbc-bi-sunrise-fill::before { content: "\f5a4"; }
1211
+ .wpbc-bi-sunrise::before { content: "\f5a5"; }
1212
+ .wpbc-bi-sunset-fill::before { content: "\f5a6"; }
1213
+ .wpbc-bi-sunset::before { content: "\f5a7"; }
1214
+ .wpbc-bi-symmetry-horizontal::before { content: "\f5a8"; }
1215
+ .wpbc-bi-symmetry-vertical::before { content: "\f5a9"; }
1216
+ .wpbc-bi-table::before { content: "\f5aa"; }
1217
+ .wpbc-bi-tablet-fill::before { content: "\f5ab"; }
1218
+ .wpbc-bi-tablet-landscape-fill::before { content: "\f5ac"; }
1219
+ .wpbc-bi-tablet-landscape::before { content: "\f5ad"; }
1220
+ .wpbc-bi-tablet::before { content: "\f5ae"; }
1221
+ .wpbc-bi-tag-fill::before { content: "\f5af"; }
1222
+ .wpbc-bi-tag::before { content: "\f5b0"; }
1223
+ .wpbc-bi-tags-fill::before { content: "\f5b1"; }
1224
+ .wpbc-bi-tags::before { content: "\f5b2"; }
1225
+ .wpbc-bi-telegram::before { content: "\f5b3"; }
1226
+ .wpbc-bi-telephone-fill::before { content: "\f5b4"; }
1227
+ .wpbc-bi-telephone-forward-fill::before { content: "\f5b5"; }
1228
+ .wpbc-bi-telephone-forward::before { content: "\f5b6"; }
1229
+ .wpbc-bi-telephone-inbound-fill::before { content: "\f5b7"; }
1230
+ .wpbc-bi-telephone-inbound::before { content: "\f5b8"; }
1231
+ .wpbc-bi-telephone-minus-fill::before { content: "\f5b9"; }
1232
+ .wpbc-bi-telephone-minus::before { content: "\f5ba"; }
1233
+ .wpbc-bi-telephone-outbound-fill::before { content: "\f5bb"; }
1234
+ .wpbc-bi-telephone-outbound::before { content: "\f5bc"; }
1235
+ .wpbc-bi-telephone-plus-fill::before { content: "\f5bd"; }
1236
+ .wpbc-bi-telephone-plus::before { content: "\f5be"; }
1237
+ .wpbc-bi-telephone-x-fill::before { content: "\f5bf"; }
1238
+ .wpbc-bi-telephone-x::before { content: "\f5c0"; }
1239
+ .wpbc-bi-telephone::before { content: "\f5c1"; }
1240
+ .wpbc-bi-terminal-fill::before { content: "\f5c2"; }
1241
+ .wpbc-bi-terminal::before { content: "\f5c3"; }
1242
+ .wpbc-bi-text-center::before { content: "\f5c4"; }
1243
+ .wpbc-bi-text-indent-left::before { content: "\f5c5"; }
1244
+ .wpbc-bi-text-indent-right::before { content: "\f5c6"; }
1245
+ .wpbc-bi-text-left::before { content: "\f5c7"; }
1246
+ .wpbc-bi-text-paragraph::before { content: "\f5c8"; }
1247
+ .wpbc-bi-text-right::before { content: "\f5c9"; }
1248
+ .wpbc-bi-textarea-resize::before { content: "\f5ca"; }
1249
+ .wpbc-bi-textarea-t::before { content: "\f5cb"; }
1250
+ .wpbc-bi-textarea::before { content: "\f5cc"; }
1251
+ .wpbc-bi-thermometer-half::before { content: "\f5cd"; }
1252
+ .wpbc-bi-thermometer-high::before { content: "\f5ce"; }
1253
+ .wpbc-bi-thermometer-low::before { content: "\f5cf"; }
1254
+ .wpbc-bi-thermometer-snow::before { content: "\f5d0"; }
1255
+ .wpbc-bi-thermometer-sun::before { content: "\f5d1"; }
1256
+ .wpbc-bi-thermometer::before { content: "\f5d2"; }
1257
+ .wpbc-bi-three-dots-vertical::before { content: "\f5d3"; }
1258
+ .wpbc-bi-three-dots::before { content: "\f5d4"; }
1259
+ .wpbc-bi-toggle-off::before { content: "\f5d5"; }
1260
+ .wpbc-bi-toggle-on::before { content: "\f5d6"; }
1261
+ .wpbc-bi-toggle2-off::before { content: "\f5d7"; }
1262
+ .wpbc-bi-toggle2-on::before { content: "\f5d8"; }
1263
+ .wpbc-bi-toggles::before { content: "\f5d9"; }
1264
+ .wpbc-bi-toggles2::before { content: "\f5da"; }
1265
+ .wpbc-bi-tools::before { content: "\f5db"; }
1266
+ .wpbc-bi-tornado::before { content: "\f5dc"; }
1267
+ .wpbc-bi-trash-fill::before { content: "\f5dd"; }
1268
+ .wpbc-bi-trash::before { content: "\f5de"; }
1269
+ .wpbc-bi-trash2-fill::before { content: "\f5df"; }
1270
+ .wpbc-bi-trash2::before { content: "\f5e0"; }
1271
+ .wpbc-bi-tree-fill::before { content: "\f5e1"; }
1272
+ .wpbc-bi-tree::before { content: "\f5e2"; }
1273
+ .wpbc-bi-triangle-fill::before { content: "\f5e3"; }
1274
+ .wpbc-bi-triangle-half::before { content: "\f5e4"; }
1275
+ .wpbc-bi-triangle::before { content: "\f5e5"; }
1276
+ .wpbc-bi-trophy-fill::before { content: "\f5e6"; }
1277
+ .wpbc-bi-trophy::before { content: "\f5e7"; }
1278
+ .wpbc-bi-tropical-storm::before { content: "\f5e8"; }
1279
+ .wpbc-bi-truck-flatbed::before { content: "\f5e9"; }
1280
+ .wpbc-bi-truck::before { content: "\f5ea"; }
1281
+ .wpbc-bi-tsunami::before { content: "\f5eb"; }
1282
+ .wpbc-bi-tv-fill::before { content: "\f5ec"; }
1283
+ .wpbc-bi-tv::before { content: "\f5ed"; }
1284
+ .wpbc-bi-twitch::before { content: "\f5ee"; }
1285
+ .wpbc-bi-twitter::before { content: "\f5ef"; }
1286
+ .wpbc-bi-type-bold::before { content: "\f5f0"; }
1287
+ .wpbc-bi-type-h1::before { content: "\f5f1"; }
1288
+ .wpbc-bi-type-h2::before { content: "\f5f2"; }
1289
+ .wpbc-bi-type-h3::before { content: "\f5f3"; }
1290
+ .wpbc-bi-type-italic::before { content: "\f5f4"; }
1291
+ .wpbc-bi-type-strikethrough::before { content: "\f5f5"; }
1292
+ .wpbc-bi-type-underline::before { content: "\f5f6"; }
1293
+ .wpbc-bi-type::before { content: "\f5f7"; }
1294
+ .wpbc-bi-ui-checks-grid::before { content: "\f5f8"; }
1295
+ .wpbc-bi-ui-checks::before { content: "\f5f9"; }
1296
+ .wpbc-bi-ui-radios-grid::before { content: "\f5fa"; }
1297
+ .wpbc-bi-ui-radios::before { content: "\f5fb"; }
1298
+ .wpbc-bi-umbrella-fill::before { content: "\f5fc"; }
1299
+ .wpbc-bi-umbrella::before { content: "\f5fd"; }
1300
+ .wpbc-bi-union::before { content: "\f5fe"; }
1301
+ .wpbc-bi-unlock-fill::before { content: "\f5ff"; }
1302
+ .wpbc-bi-unlock::before { content: "\f600"; }
1303
+ .wpbc-bi-upc-scan::before { content: "\f601"; }
1304
+ .wpbc-bi-upc::before { content: "\f602"; }
1305
+ .wpbc-bi-upload::before { content: "\f603"; }
1306
+ .wpbc-bi-vector-pen::before { content: "\f604"; }
1307
+ .wpbc-bi-view-list::before { content: "\f605"; }
1308
+ .wpbc-bi-view-stacked::before { content: "\f606"; }
1309
+ .wpbc-bi-vinyl-fill::before { content: "\f607"; }
1310
+ .wpbc-bi-vinyl::before { content: "\f608"; }
1311
+ .wpbc-bi-voicemail::before { content: "\f609"; }
1312
+ .wpbc-bi-volume-down-fill::before { content: "\f60a"; }
1313
+ .wpbc-bi-volume-down::before { content: "\f60b"; }
1314
+ .wpbc-bi-volume-mute-fill::before { content: "\f60c"; }
1315
+ .wpbc-bi-volume-mute::before { content: "\f60d"; }
1316
+ .wpbc-bi-volume-off-fill::before { content: "\f60e"; }
1317
+ .wpbc-bi-volume-off::before { content: "\f60f"; }
1318
+ .wpbc-bi-volume-up-fill::before { content: "\f610"; }
1319
+ .wpbc-bi-volume-up::before { content: "\f611"; }
1320
+ .wpbc-bi-vr::before { content: "\f612"; }
1321
+ .wpbc-bi-wallet-fill::before { content: "\f613"; }
1322
+ .wpbc-bi-wallet::before { content: "\f614"; }
1323
+ .wpbc-bi-wallet2::before { content: "\f615"; }
1324
+ .wpbc-bi-watch::before { content: "\f616"; }
1325
+ .wpbc-bi-water::before { content: "\f617"; }
1326
+ .wpbc-bi-whatsapp::before { content: "\f618"; }
1327
+ .wpbc-bi-wifi-1::before { content: "\f619"; }
1328
+ .wpbc-bi-wifi-2::before { content: "\f61a"; }
1329
+ .wpbc-bi-wifi-off::before { content: "\f61b"; }
1330
+ .wpbc-bi-wifi::before { content: "\f61c"; }
1331
+ .wpbc-bi-wind::before { content: "\f61d"; }
1332
+ .wpbc-bi-window-dock::before { content: "\f61e"; }
1333
+ .wpbc-bi-window-sidebar::before { content: "\f61f"; }
1334
+ .wpbc-bi-window::before { content: "\f620"; }
1335
+ .wpbc-bi-wrench::before { content: "\f621"; }
1336
+ .wpbc-bi-x-circle-fill::before { content: "\f622"; }
1337
+ .wpbc-bi-x-circle::before { content: "\f623"; }
1338
+ .wpbc-bi-x-diamond-fill::before { content: "\f624"; }
1339
+ .wpbc-bi-x-diamond::before { content: "\f625"; }
1340
+ .wpbc-bi-x-octagon-fill::before { content: "\f626"; }
1341
+ .wpbc-bi-x-octagon::before { content: "\f627"; }
1342
+ .wpbc-bi-x-square-fill::before { content: "\f628"; }
1343
+ .wpbc-bi-x-square::before { content: "\f629"; }
1344
+ .wpbc-bi-x::before { content: "\f62a"; }
1345
+ .wpbc-bi-youtube::before { content: "\f62b"; }
1346
+ .wpbc-bi-zoom-in::before { content: "\f62c"; }
1347
+ .wpbc-bi-zoom-out::before { content: "\f62d"; }
1348
+ .wpbc-bi-bank::before { content: "\f62e"; }
1349
+ .wpbc-bi-bank2::before { content: "\f62f"; }
1350
+ .wpbc-bi-bell-slash-fill::before { content: "\f630"; }
1351
+ .wpbc-bi-bell-slash::before { content: "\f631"; }
1352
+ .wpbc-bi-cash-coin::before { content: "\f632"; }
1353
+ .wpbc-bi-check-lg::before { content: "\f633"; }
1354
+ .wpbc-bi-coin::before { content: "\f634"; }
1355
+ .wpbc-bi-currency-bitcoin::before { content: "\f635"; }
1356
+ .wpbc-bi-currency-dollar::before { content: "\f636"; }
1357
+ .wpbc-bi-currency-euro::before { content: "\f637"; }
1358
+ .wpbc-bi-currency-exchange::before { content: "\f638"; }
1359
+ .wpbc-bi-currency-pound::before { content: "\f639"; }
1360
+ .wpbc-bi-currency-yen::before { content: "\f63a"; }
1361
+ .wpbc-bi-dash-lg::before { content: "\f63b"; }
1362
+ .wpbc-bi-exclamation-lg::before { content: "\f63c"; }
1363
+ .wpbc-bi-file-earmark-pdf-fill::before { content: "\f63d"; }
1364
+ .wpbc-bi-file-earmark-pdf::before { content: "\f63e"; }
1365
+ .wpbc-bi-file-pdf-fill::before { content: "\f63f"; }
1366
+ .wpbc-bi-file-pdf::before { content: "\f640"; }
1367
+ .wpbc-bi-gender-ambiguous::before { content: "\f641"; }
1368
+ .wpbc-bi-gender-female::before { content: "\f642"; }
1369
+ .wpbc-bi-gender-male::before { content: "\f643"; }
1370
+ .wpbc-bi-gender-trans::before { content: "\f644"; }
1371
+ .wpbc-bi-headset-vr::before { content: "\f645"; }
1372
+ .wpbc-bi-info-lg::before { content: "\f646"; }
1373
+ .wpbc-bi-mastodon::before { content: "\f647"; }
1374
+ .wpbc-bi-messenger::before { content: "\f648"; }
1375
+ .wpbc-bi-piggy-bank-fill::before { content: "\f649"; }
1376
+ .wpbc-bi-piggy-bank::before { content: "\f64a"; }
1377
+ .wpbc-bi-pin-map-fill::before { content: "\f64b"; }
1378
+ .wpbc-bi-pin-map::before { content: "\f64c"; }
1379
+ .wpbc-bi-plus-lg::before { content: "\f64d"; }
1380
+ .wpbc-bi-question-lg::before { content: "\f64e"; }
1381
+ .wpbc-bi-recycle::before { content: "\f64f"; }
1382
+ .wpbc-bi-reddit::before { content: "\f650"; }
1383
+ .wpbc-bi-safe-fill::before { content: "\f651"; }
1384
+ .wpbc-bi-safe2-fill::before { content: "\f652"; }
1385
+ .wpbc-bi-safe2::before { content: "\f653"; }
1386
+ .wpbc-bi-sd-card-fill::before { content: "\f654"; }
1387
+ .wpbc-bi-sd-card::before { content: "\f655"; }
1388
+ .wpbc-bi-skype::before { content: "\f656"; }
1389
+ .wpbc-bi-slash-lg::before { content: "\f657"; }
1390
+ .wpbc-bi-translate::before { content: "\f658"; }
1391
+ .wpbc-bi-x-lg::before { content: "\f659"; }
1392
+ .wpbc-bi-safe::before { content: "\f65a"; }
1393
+ .wpbc-bi-apple::before { content: "\f65b"; }
1394
+ .wpbc-bi-microsoft::before { content: "\f65d"; }
1395
+ .wpbc-bi-windows::before { content: "\f65e"; }
1396
+ .wpbc-bi-behance::before { content: "\f65c"; }
1397
+ .wpbc-bi-dribbble::before { content: "\f65f"; }
1398
+ .wpbc-bi-line::before { content: "\f660"; }
1399
+ .wpbc-bi-medium::before { content: "\f661"; }
1400
+ .wpbc-bi-paypal::before { content: "\f662"; }
1401
+ .wpbc-bi-pinterest::before { content: "\f663"; }
1402
+ .wpbc-bi-signal::before { content: "\f664"; }
1403
+ .wpbc-bi-snapchat::before { content: "\f665"; }
1404
+ .wpbc-bi-spotify::before { content: "\f666"; }
1405
+ .wpbc-bi-stack-overflow::before { content: "\f667"; }
1406
+ .wpbc-bi-strava::before { content: "\f668"; }
1407
+ .wpbc-bi-wordpress::before { content: "\f669"; }
1408
+ .wpbc-bi-vimeo::before { content: "\f66a"; }
1409
+ .wpbc-bi-activity::before { content: "\f66b"; }
1410
+ .wpbc-bi-easel2-fill::before { content: "\f66c"; }
1411
+ .wpbc-bi-easel2::before { content: "\f66d"; }
1412
+ .wpbc-bi-easel3-fill::before { content: "\f66e"; }
1413
+ .wpbc-bi-easel3::before { content: "\f66f"; }
1414
+ .wpbc-bi-fan::before { content: "\f670"; }
1415
+ .wpbc-bi-fingerprint::before { content: "\f671"; }
1416
+ .wpbc-bi-graph-down-arrow::before { content: "\f672"; }
1417
+ .wpbc-bi-graph-up-arrow::before { content: "\f673"; }
1418
+ .wpbc-bi-hypnotize::before { content: "\f674"; }
1419
+ .wpbc-bi-magic::before { content: "\f675"; }
1420
+ .wpbc-bi-person-rolodex::before { content: "\f676"; }
1421
+ .wpbc-bi-person-video::before { content: "\f677"; }
1422
+ .wpbc-bi-person-video2::before { content: "\f678"; }
1423
+ .wpbc-bi-person-video3::before { content: "\f679"; }
1424
+ .wpbc-bi-person-workspace::before { content: "\f67a"; }
1425
+ .wpbc-bi-radioactive::before { content: "\f67b"; }
1426
+ .wpbc-bi-webcam-fill::before { content: "\f67c"; }
1427
+ .wpbc-bi-webcam::before { content: "\f67d"; }
1428
+ .wpbc-bi-yin-yang::before { content: "\f67e"; }
1429
+ .wpbc-bi-bandaid-fill::before { content: "\f680"; }
1430
+ .wpbc-bi-bandaid::before { content: "\f681"; }
1431
+ .wpbc-bi-bluetooth::before { content: "\f682"; }
1432
+ .wpbc-bi-body-text::before { content: "\f683"; }
1433
+ .wpbc-bi-boombox::before { content: "\f684"; }
1434
+ .wpbc-bi-boxes::before { content: "\f685"; }
1435
+ .wpbc-bi-dpad-fill::before { content: "\f686"; }
1436
+ .wpbc-bi-dpad::before { content: "\f687"; }
1437
+ .wpbc-bi-ear-fill::before { content: "\f688"; }
1438
+ .wpbc-bi-ear::before { content: "\f689"; }
1439
+ .wpbc-bi-envelope-check-1::before { content: "\f68a"; }
1440
+ .wpbc-bi-envelope-check-fill::before { content: "\f68b"; }
1441
+ .wpbc-bi-envelope-check::before { content: "\f68c"; }
1442
+ .wpbc-bi-envelope-dash-1::before { content: "\f68d"; }
1443
+ .wpbc-bi-envelope-dash-fill::before { content: "\f68e"; }
1444
+ .wpbc-bi-envelope-dash::before { content: "\f68f"; }
1445
+ .wpbc-bi-envelope-exclamation-1::before { content: "\f690"; }
1446
+ .wpbc-bi-envelope-exclamation-fill::before { content: "\f691"; }
1447
+ .wpbc-bi-envelope-exclamation::before { content: "\f692"; }
1448
+ .wpbc-bi-envelope-plus-fill::before { content: "\f693"; }
1449
+ .wpbc-bi-envelope-plus::before { content: "\f694"; }
1450
+ .wpbc-bi-envelope-slash-1::before { content: "\f695"; }
1451
+ .wpbc-bi-envelope-slash-fill::before { content: "\f696"; }
1452
+ .wpbc-bi-envelope-slash::before { content: "\f697"; }
1453
+ .wpbc-bi-envelope-x-1::before { content: "\f698"; }
1454
+ .wpbc-bi-envelope-x-fill::before { content: "\f699"; }
1455
+ .wpbc-bi-envelope-x::before { content: "\f69a"; }
1456
+ .wpbc-bi-explicit-fill::before { content: "\f69b"; }
1457
+ .wpbc-bi-explicit::before { content: "\f69c"; }
1458
+ .wpbc-bi-git::before { content: "\f69d"; }
1459
+ .wpbc-bi-infinity::before { content: "\f69e"; }
1460
+ .wpbc-bi-list-columns-reverse::before { content: "\f69f"; }
1461
+ .wpbc-bi-list-columns::before { content: "\f6a0"; }
1462
+ .wpbc-bi-meta::before { content: "\f6a1"; }
1463
+ .wpbc-bi-mortorboard-fill::before { content: "\f6a2"; }
1464
+ .wpbc-bi-mortorboard::before { content: "\f6a3"; }
1465
+ .wpbc-bi-nintendo-switch::before { content: "\f6a4"; }
1466
+ .wpbc-bi-pc-display-horizontal::before { content: "\f6a5"; }
1467
+ .wpbc-bi-pc-display::before { content: "\f6a6"; }
1468
+ .wpbc-bi-pc-horizontal::before { content: "\f6a7"; }
1469
+ .wpbc-bi-pc::before { content: "\f6a8"; }
1470
+ .wpbc-bi-playstation::before { content: "\f6a9"; }
1471
+ .wpbc-bi-plus-slash-minus::before { content: "\f6aa"; }
1472
+ .wpbc-bi-projector-fill::before { content: "\f6ab"; }
1473
+ .wpbc-bi-projector::before { content: "\f6ac"; }
1474
+ .wpbc-bi-qr-code-scan::before { content: "\f6ad"; }
1475
+ .wpbc-bi-qr-code::before { content: "\f6ae"; }
1476
+ .wpbc-bi-quora::before { content: "\f6af"; }
1477
+ .wpbc-bi-quote::before { content: "\f6b0"; }
1478
+ .wpbc-bi-robot::before { content: "\f6b1"; }
1479
+ .wpbc-bi-send-check-fill::before { content: "\f6b2"; }
1480
+ .wpbc-bi-send-check::before { content: "\f6b3"; }
1481
+ .wpbc-bi-send-dash-fill::before { content: "\f6b4"; }
1482
+ .wpbc-bi-send-dash::before { content: "\f6b5"; }
1483
+ .wpbc-bi-send-exclamation-1::before { content: "\f6b6"; }
1484
+ .wpbc-bi-send-exclamation-fill::before { content: "\f6b7"; }
1485
+ .wpbc-bi-send-exclamation::before { content: "\f6b8"; }
1486
+ .wpbc-bi-send-fill::before { content: "\f6b9"; }
1487
+ .wpbc-bi-send-plus-fill::before { content: "\f6ba"; }
1488
+ .wpbc-bi-send-plus::before { content: "\f6bb"; }
1489
+ .wpbc-bi-send-slash-fill::before { content: "\f6bc"; }
1490
+ .wpbc-bi-send-slash::before { content: "\f6bd"; }
1491
+ .wpbc-bi-send-x-fill::before { content: "\f6be"; }
1492
+ .wpbc-bi-send-x::before { content: "\f6bf"; }
1493
+ .wpbc-bi-send::before { content: "\f6c0"; }
1494
+ .wpbc-bi-steam::before { content: "\f6c1"; }
1495
+ .wpbc-bi-terminal-dash-1::before { content: "\f6c2"; }
1496
+ .wpbc-bi-terminal-dash::before { content: "\f6c3"; }
1497
+ .wpbc-bi-terminal-plus::before { content: "\f6c4"; }
1498
+ .wpbc-bi-terminal-split::before { content: "\f6c5"; }
1499
+ .wpbc-bi-ticket-detailed-fill::before { content: "\f6c6"; }
1500
+ .wpbc-bi-ticket-detailed::before { content: "\f6c7"; }
1501
+ .wpbc-bi-ticket-fill::before { content: "\f6c8"; }
1502
+ .wpbc-bi-ticket-perforated-fill::before { content: "\f6c9"; }
1503
+ .wpbc-bi-ticket-perforated::before { content: "\f6ca"; }
1504
+ .wpbc-bi-ticket::before { content: "\f6cb"; }
1505
+ .wpbc-bi-tiktok::before { content: "\f6cc"; }
1506
+ .wpbc-bi-window-dash::before { content: "\f6cd"; }
1507
+ .wpbc-bi-window-desktop::before { content: "\f6ce"; }
1508
+ .wpbc-bi-window-fullscreen::before { content: "\f6cf"; }
1509
+ .wpbc-bi-window-plus::before { content: "\f6d0"; }
1510
+ .wpbc-bi-window-split::before { content: "\f6d1"; }
1511
+ .wpbc-bi-window-stack::before { content: "\f6d2"; }
1512
+ .wpbc-bi-window-x::before { content: "\f6d3"; }
1513
+ .wpbc-bi-xbox::before { content: "\f6d4"; }
1514
+ .wpbc-bi-ethernet::before { content: "\f6d5"; }
1515
+ .wpbc-bi-hdmi-fill::before { content: "\f6d6"; }
1516
+ .wpbc-bi-hdmi::before { content: "\f6d7"; }
1517
+ .wpbc-bi-usb-c-fill::before { content: "\f6d8"; }
1518
+ .wpbc-bi-usb-c::before { content: "\f6d9"; }
1519
+ .wpbc-bi-usb-fill::before { content: "\f6da"; }
1520
+ .wpbc-bi-usb-plug-fill::before { content: "\f6db"; }
1521
+ .wpbc-bi-usb-plug::before { content: "\f6dc"; }
1522
+ .wpbc-bi-usb-symbol::before { content: "\f6dd"; }
1523
+ .wpbc-bi-usb::before { content: "\f6de"; }
1524
+ .wpbc-bi-boombox-fill::before { content: "\f6df"; }
1525
+ .wpbc-bi-displayport-1::before { content: "\f6e0"; }
1526
+ .wpbc-bi-displayport::before { content: "\f6e1"; }
1527
+ .wpbc-bi-gpu-card::before { content: "\f6e2"; }
1528
+ .wpbc-bi-memory::before { content: "\f6e3"; }
1529
+ .wpbc-bi-modem-fill::before { content: "\f6e4"; }
1530
+ .wpbc-bi-modem::before { content: "\f6e5"; }
1531
+ .wpbc-bi-motherboard-fill::before { content: "\f6e6"; }
1532
+ .wpbc-bi-motherboard::before { content: "\f6e7"; }
1533
+ .wpbc-bi-optical-audio-fill::before { content: "\f6e8"; }
1534
+ .wpbc-bi-optical-audio::before { content: "\f6e9"; }
1535
+ .wpbc-bi-pci-card::before { content: "\f6ea"; }
1536
+ .wpbc-bi-router-fill::before { content: "\f6eb"; }
1537
+ .wpbc-bi-router::before { content: "\f6ec"; }
1538
+ .wpbc-bi-ssd-fill::before { content: "\f6ed"; }
1539
+ .wpbc-bi-ssd::before { content: "\f6ee"; }
1540
+ .wpbc-bi-thunderbolt-fill::before { content: "\f6ef"; }
1541
+ .wpbc-bi-thunderbolt::before { content: "\f6f0"; }
1542
+ .wpbc-bi-usb-drive-fill::before { content: "\f6f1"; }
1543
+ .wpbc-bi-usb-drive::before { content: "\f6f2"; }
1544
+ .wpbc-bi-usb-micro-fill::before { content: "\f6f3"; }
1545
+ .wpbc-bi-usb-micro::before { content: "\f6f4"; }
1546
+ .wpbc-bi-usb-mini-fill::before { content: "\f6f5"; }
1547
+ .wpbc-bi-usb-mini::before { content: "\f6f6"; }
1548
+ .wpbc-bi-cloud-haze2::before { content: "\f6f7"; }
1549
+ .wpbc-bi-device-hdd-fill::before { content: "\f6f8"; }
1550
+ .wpbc-bi-device-hdd::before { content: "\f6f9"; }
1551
+ .wpbc-bi-device-ssd-fill::before { content: "\f6fa"; }
1552
+ .wpbc-bi-device-ssd::before { content: "\f6fb"; }
1553
+ .wpbc-bi-displayport-fill::before { content: "\f6fc"; }
1554
+ .wpbc-bi-mortarboard-fill::before { content: "\f6fd"; }
1555
+ .wpbc-bi-mortarboard::before { content: "\f6fe"; }
1556
+ .wpbc-bi-terminal-x::before { content: "\f6ff"; }
1557
+ .wpbc-bi-arrow-through-heart-fill::before { content: "\f700"; }
1558
+ .wpbc-bi-arrow-through-heart::before { content: "\f701"; }
1559
+ .wpbc-bi-badge-sd-fill::before { content: "\f702"; }
1560
+ .wpbc-bi-badge-sd::before { content: "\f703"; }
1561
+ .wpbc-bi-bag-heart-fill::before { content: "\f704"; }
1562
+ .wpbc-bi-bag-heart::before { content: "\f705"; }
1563
+ .wpbc-bi-balloon-fill::before { content: "\f706"; }
1564
+ .wpbc-bi-balloon-heart-fill::before { content: "\f707"; }
1565
+ .wpbc-bi-balloon-heart::before { content: "\f708"; }
1566
+ .wpbc-bi-balloon::before { content: "\f709"; }
1567
+ .wpbc-bi-box2-fill::before { content: "\f70a"; }
1568
+ .wpbc-bi-box2-heart-fill::before { content: "\f70b"; }
1569
+ .wpbc-bi-box2-heart::before { content: "\f70c"; }
1570
+ .wpbc-bi-box2::before { content: "\f70d"; }
1571
+ .wpbc-bi-braces-asterisk::before { content: "\f70e"; }
1572
+ .wpbc-bi-calendar-heart-fill::before { content: "\f70f"; }
1573
+ .wpbc-bi-calendar-heart::before { content: "\f710"; }
1574
+ .wpbc-bi-calendar2-heart-fill::before { content: "\f711"; }
1575
+ .wpbc-bi-calendar2-heart::before { content: "\f712"; }
1576
+ .wpbc-bi-chat-heart-fill::before { content: "\f713"; }
1577
+ .wpbc-bi-chat-heart::before { content: "\f714"; }
1578
+ .wpbc-bi-chat-left-heart-fill::before { content: "\f715"; }
1579
+ .wpbc-bi-chat-left-heart::before { content: "\f716"; }
1580
+ .wpbc-bi-chat-right-heart-fill::before { content: "\f717"; }
1581
+ .wpbc-bi-chat-right-heart::before { content: "\f718"; }
1582
+ .wpbc-bi-chat-square-heart-fill::before { content: "\f719"; }
1583
+ .wpbc-bi-chat-square-heart::before { content: "\f71a"; }
1584
+ .wpbc-bi-clipboard-check-fill::before { content: "\f71b"; }
1585
+ .wpbc-bi-clipboard-data-fill::before { content: "\f71c"; }
1586
+ .wpbc-bi-clipboard-fill::before { content: "\f71d"; }
1587
+ .wpbc-bi-clipboard-heart-fill::before { content: "\f71e"; }
1588
+ .wpbc-bi-clipboard-heart::before { content: "\f71f"; }
1589
+ .wpbc-bi-clipboard-minus-fill::before { content: "\f720"; }
1590
+ .wpbc-bi-clipboard-plus-fill::before { content: "\f721"; }
1591
+ .wpbc-bi-clipboard-pulse::before { content: "\f722"; }
1592
+ .wpbc-bi-clipboard-x-fill::before { content: "\f723"; }
1593
+ .wpbc-bi-clipboard2-check-fill::before { content: "\f724"; }
1594
+ .wpbc-bi-clipboard2-check::before { content: "\f725"; }
1595
+ .wpbc-bi-clipboard2-data-fill::before { content: "\f726"; }
1596
+ .wpbc-bi-clipboard2-data::before { content: "\f727"; }
1597
+ .wpbc-bi-clipboard2-fill::before { content: "\f728"; }
1598
+ .wpbc-bi-clipboard2-heart-fill::before { content: "\f729"; }
1599
+ .wpbc-bi-clipboard2-heart::before { content: "\f72a"; }
1600
+ .wpbc-bi-clipboard2-minus-fill::before { content: "\f72b"; }
1601
+ .wpbc-bi-clipboard2-minus::before { content: "\f72c"; }
1602
+ .wpbc-bi-clipboard2-plus-fill::before { content: "\f72d"; }
1603
+ .wpbc-bi-clipboard2-plus::before { content: "\f72e"; }
1604
+ .wpbc-bi-clipboard2-pulse-fill::before { content: "\f72f"; }
1605
+ .wpbc-bi-clipboard2-pulse::before { content: "\f730"; }
1606
+ .wpbc-bi-clipboard2-x-fill::before { content: "\f731"; }
1607
+ .wpbc-bi-clipboard2-x::before { content: "\f732"; }
1608
+ .wpbc-bi-clipboard2::before { content: "\f733"; }
1609
+ .wpbc-bi-emoji-kiss-fill::before { content: "\f734"; }
1610
+ .wpbc-bi-emoji-kiss::before { content: "\f735"; }
1611
+ .wpbc-bi-envelope-heart-fill::before { content: "\f736"; }
1612
+ .wpbc-bi-envelope-heart::before { content: "\f737"; }
1613
+ .wpbc-bi-envelope-open-heart-fill::before { content: "\f738"; }
1614
+ .wpbc-bi-envelope-open-heart::before { content: "\f739"; }
1615
+ .wpbc-bi-envelope-paper-fill::before { content: "\f73a"; }
1616
+ .wpbc-bi-envelope-paper-heart-fill::before { content: "\f73b"; }
1617
+ .wpbc-bi-envelope-paper-heart::before { content: "\f73c"; }
1618
+ .wpbc-bi-envelope-paper::before { content: "\f73d"; }
1619
+ .wpbc-bi-filetype-aac::before { content: "\f73e"; }
1620
+ .wpbc-bi-filetype-ai::before { content: "\f73f"; }
1621
+ .wpbc-bi-filetype-bmp::before { content: "\f740"; }
1622
+ .wpbc-bi-filetype-cs::before { content: "\f741"; }
1623
+ .wpbc-bi-filetype-css::before { content: "\f742"; }
1624
+ .wpbc-bi-filetype-csv::before { content: "\f743"; }
1625
+ .wpbc-bi-filetype-doc::before { content: "\f744"; }
1626
+ .wpbc-bi-filetype-docx::before { content: "\f745"; }
1627
+ .wpbc-bi-filetype-exe::before { content: "\f746"; }
1628
+ .wpbc-bi-filetype-gif::before { content: "\f747"; }
1629
+ .wpbc-bi-filetype-heic::before { content: "\f748"; }
1630
+ .wpbc-bi-filetype-html::before { content: "\f749"; }
1631
+ .wpbc-bi-filetype-java::before { content: "\f74a"; }
1632
+ .wpbc-bi-filetype-jpg::before { content: "\f74b"; }
1633
+ .wpbc-bi-filetype-js::before { content: "\f74c"; }
1634
+ .wpbc-bi-filetype-jsx::before { content: "\f74d"; }
1635
+ .wpbc-bi-filetype-key::before { content: "\f74e"; }
1636
+ .wpbc-bi-filetype-m4p::before { content: "\f74f"; }
1637
+ .wpbc-bi-filetype-md::before { content: "\f750"; }
1638
+ .wpbc-bi-filetype-mdx::before { content: "\f751"; }
1639
+ .wpbc-bi-filetype-mov::before { content: "\f752"; }
1640
+ .wpbc-bi-filetype-mp3::before { content: "\f753"; }
1641
+ .wpbc-bi-filetype-mp4::before { content: "\f754"; }
1642
+ .wpbc-bi-filetype-otf::before { content: "\f755"; }
1643
+ .wpbc-bi-filetype-pdf::before { content: "\f756"; }
1644
+ .wpbc-bi-filetype-php::before { content: "\f757"; }
1645
+ .wpbc-bi-filetype-png::before { content: "\f758"; }
1646
+ .wpbc-bi-filetype-ppt-1::before { content: "\f759"; }
1647
+ .wpbc-bi-filetype-ppt::before { content: "\f75a"; }
1648
+ .wpbc-bi-filetype-psd::before { content: "\f75b"; }
1649
+ .wpbc-bi-filetype-py::before { content: "\f75c"; }
1650
+ .wpbc-bi-filetype-raw::before { content: "\f75d"; }
1651
+ .wpbc-bi-filetype-rb::before { content: "\f75e"; }
1652
+ .wpbc-bi-filetype-sass::before { content: "\f75f"; }
1653
+ .wpbc-bi-filetype-scss::before { content: "\f760"; }
1654
+ .wpbc-bi-filetype-sh::before { content: "\f761"; }
1655
+ .wpbc-bi-filetype-svg::before { content: "\f762"; }
1656
+ .wpbc-bi-filetype-tiff::before { content: "\f763"; }
1657
+ .wpbc-bi-filetype-tsx::before { content: "\f764"; }
1658
+ .wpbc-bi-filetype-ttf::before { content: "\f765"; }
1659
+ .wpbc-bi-filetype-txt::before { content: "\f766"; }
1660
+ .wpbc-bi-filetype-wav::before { content: "\f767"; }
1661
+ .wpbc-bi-filetype-woff::before { content: "\f768"; }
1662
+ .wpbc-bi-filetype-xls-1::before { content: "\f769"; }
1663
+ .wpbc-bi-filetype-xls::before { content: "\f76a"; }
1664
+ .wpbc-bi-filetype-xml::before { content: "\f76b"; }
1665
+ .wpbc-bi-filetype-yml::before { content: "\f76c"; }
1666
+ .wpbc-bi-heart-arrow::before { content: "\f76d"; }
1667
+ .wpbc-bi-heart-pulse-fill::before { content: "\f76e"; }
1668
+ .wpbc-bi-heart-pulse::before { content: "\f76f"; }
1669
+ .wpbc-bi-heartbreak-fill::before { content: "\f770"; }
1670
+ .wpbc-bi-heartbreak::before { content: "\f771"; }
1671
+ .wpbc-bi-hearts::before { content: "\f772"; }
1672
+ .wpbc-bi-hospital-fill::before { content: "\f773"; }
1673
+ .wpbc-bi-hospital::before { content: "\f774"; }
1674
+ .wpbc-bi-house-heart-fill::before { content: "\f775"; }
1675
+ .wpbc-bi-house-heart::before { content: "\f776"; }
1676
+ .wpbc-bi-incognito::before { content: "\f777"; }
1677
+ .wpbc-bi-magnet-fill::before { content: "\f778"; }
1678
+ .wpbc-bi-magnet::before { content: "\f779"; }
1679
+ .wpbc-bi-person-heart::before { content: "\f77a"; }
1680
+ .wpbc-bi-person-hearts::before { content: "\f77b"; }
1681
+ .wpbc-bi-phone-flip::before { content: "\f77c"; }
1682
+ .wpbc-bi-plugin::before { content: "\f77d"; }
1683
+ .wpbc-bi-postage-fill::before { content: "\f77e"; }
1684
+ .wpbc-bi-postage-heart-fill::before { content: "\f77f"; }
1685
+ .wpbc-bi-postage-heart::before { content: "\f780"; }
1686
+ .wpbc-bi-postage::before { content: "\f781"; }
1687
+ .wpbc-bi-postcard-fill::before { content: "\f782"; }
1688
+ .wpbc-bi-postcard-heart-fill::before { content: "\f783"; }
1689
+ .wpbc-bi-postcard-heart::before { content: "\f784"; }
1690
+ .wpbc-bi-postcard::before { content: "\f785"; }
1691
+ .wpbc-bi-search-heart-fill::before { content: "\f786"; }
1692
+ .wpbc-bi-search-heart::before { content: "\f787"; }
1693
+ .wpbc-bi-sliders2-vertical::before { content: "\f788"; }
1694
+ .wpbc-bi-sliders2::before { content: "\f789"; }
1695
+ .wpbc-bi-trash3-fill::before { content: "\f78a"; }
1696
+ .wpbc-bi-trash3::before { content: "\f78b"; }
1697
+ .wpbc-bi-valentine::before { content: "\f78c"; }
1698
+ .wpbc-bi-valentine2::before { content: "\f78d"; }
1699
+ .wpbc-bi-wrench-adjustable-circle-fill::before { content: "\f78e"; }
1700
+ .wpbc-bi-wrench-adjustable-circle::before { content: "\f78f"; }
1701
+ .wpbc-bi-wrench-adjustable::before { content: "\f790"; }
1702
+ .wpbc-bi-filetype-json::before { content: "\f791"; }
1703
+ .wpbc-bi-filetype-pptx::before { content: "\f792"; }
1704
+ .wpbc-bi-filetype-xlsx::before { content: "\f793"; }
assets/libs/bootstrap-icons/fonts/bootstrap-icons.woff ADDED
Binary file
assets/libs/bootstrap-icons/fonts/bootstrap-icons.woff2 ADDED
Binary file
assets/libs/bootstrap/js/bootstrap.js DELETED
@@ -1,2366 +0,0 @@
1
- /*!
2
- * Bootstrap v3.3.5 (http://getbootstrap.com)
3
- * Copyright 2011-2015 Twitter, Inc.
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- */
6
-
7
- /*!
8
- * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=f4b4c9cb85df757ca08c)
9
- * Config saved to config.json and https://gist.github.com/f4b4c9cb85df757ca08c
10
- */
11
- if (typeof jQuery === 'undefined') {
12
- throw new Error('Bootstrap\'s JavaScript requires jQuery')
13
- }
14
- +function ($) {
15
- 'use strict';
16
- var version = $.fn.jquery.split(' ')[0].split('.')
17
- if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
18
- throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
19
- }
20
- }(jQuery);
21
-
22
- /* ========================================================================
23
- * Bootstrap: alert.js v3.3.5
24
- * http://getbootstrap.com/javascript/#alerts
25
- * ========================================================================
26
- * Copyright 2011-2015 Twitter, Inc.
27
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
28
- * ======================================================================== */
29
-
30
-
31
- +function ($) {
32
- 'use strict';
33
-
34
- // ALERT CLASS DEFINITION
35
- // ======================
36
-
37
- var dismiss = '[data-dismiss="alert"]'
38
- var Alert = function (el) {
39
- $(el).on('click', dismiss, this.close)
40
- }
41
-
42
- Alert.VERSION = '3.3.5'
43
-
44
- Alert.TRANSITION_DURATION = 150
45
-
46
- Alert.prototype.close = function (e) {
47
- var $this = $(this)
48
- var selector = $this.attr('data-target')
49
-
50
- if (!selector) {
51
- selector = $this.attr('href')
52
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
53
- }
54
-
55
- var $parent = $(selector)
56
-
57
- if (e) e.preventDefault()
58
-
59
- if (!$parent.length) {
60
- $parent = $this.closest('.alert')
61
- }
62
-
63
- $parent.trigger(e = $.Event('close.bs.alert'))
64
-
65
- if (e.isDefaultPrevented()) return
66
-
67
- $parent.removeClass('in')
68
-
69
- function removeElement() {
70
- // detach from parent, fire event then clean up data
71
- $parent.detach().trigger('closed.bs.alert').remove()
72
- }
73
-
74
- $.support.transition && $parent.hasClass('fade') ?
75
- $parent
76
- .one('bsTransitionEnd', removeElement)
77
- .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
78
- removeElement()
79
- }
80
-
81
-
82
- // ALERT PLUGIN DEFINITION
83
- // =======================
84
-
85
- function Plugin(option) {
86
- return this.each(function () {
87
- var $this = $(this)
88
- var data = $this.data('bs.alert')
89
-
90
- if (!data) $this.data('bs.alert', (data = new Alert(this)))
91
- if (typeof option == 'string') data[option].call($this)
92
- })
93
- }
94
-
95
- var old = $.fn.alert
96
-
97
- $.fn.alert = Plugin
98
- $.fn.alert.Constructor = Alert
99
-
100
-
101
- // ALERT NO CONFLICT
102
- // =================
103
-
104
- $.fn.alert.noConflict = function () {
105
- $.fn.alert = old
106
- return this
107
- }
108
-
109
-
110
- // ALERT DATA-API
111
- // ==============
112
-
113
- $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
114
-
115
- }(jQuery);
116
-
117
- /* ========================================================================
118
- * Bootstrap: button.js v3.3.5
119
- * http://getbootstrap.com/javascript/#buttons
120
- * ========================================================================
121
- * Copyright 2011-2015 Twitter, Inc.
122
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
123
- * ======================================================================== */
124
-
125
-
126
- +function ($) {
127
- 'use strict';
128
-
129
- // BUTTON PUBLIC CLASS DEFINITION
130
- // ==============================
131
-
132
- var Button = function (element, options) {
133
- this.$element = $(element)
134
- this.options = $.extend({}, Button.DEFAULTS, options)
135
- this.isLoading = false
136
- }
137
-
138
- Button.VERSION = '3.3.5'
139
-
140
- Button.DEFAULTS = {
141
- loadingText: 'loading...'
142
- }
143
-
144
- Button.prototype.setState = function (state) {
145
- var d = 'disabled'
146
- var $el = this.$element
147
- var val = $el.is('input') ? 'val' : 'html'
148
- var data = $el.data()
149
-
150
- state += 'Text'
151
-
152
- if (data.resetText == null) $el.data('resetText', $el[val]())
153
-
154
- // push to event loop to allow forms to submit
155
- setTimeout($.proxy(function () {
156
- $el[val](data[state] == null ? this.options[state] : data[state])
157
-
158
- if (state == 'loadingText') {
159
- this.isLoading = true
160
- $el.addClass(d).attr(d, d)
161
- } else if (this.isLoading) {
162
- this.isLoading = false
163
- $el.removeClass(d).removeAttr(d)
164
- }
165
- }, this), 0)
166
- }
167
-
168
- Button.prototype.toggle = function () {
169
- var changed = true
170
- var $parent = this.$element.closest('[data-toggle="buttons"]')
171
-
172
- if ($parent.length) {
173
- var $input = this.$element.find('input')
174
- if ($input.prop('type') == 'radio') {
175
- if ($input.prop('checked')) changed = false
176
- $parent.find('.active').removeClass('active')
177
- this.$element.addClass('active')
178
- } else if ($input.prop('type') == 'checkbox') {
179
- if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
180
- this.$element.toggleClass('active')
181
- }
182
- $input.prop('checked', this.$element.hasClass('active'))
183
- if (changed) $input.trigger('change')
184
- } else {
185
- this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
186
- this.$element.toggleClass('active')
187
- }
188
- }
189
-
190
-
191
- // BUTTON PLUGIN DEFINITION
192
- // ========================
193
-
194
- function Plugin(option) {
195
- return this.each(function () {
196
- var $this = $(this)
197
- var data = $this.data('bs.button')
198
- var options = typeof option == 'object' && option
199
-
200
- if (!data) $this.data('bs.button', (data = new Button(this, options)))
201
-
202
- if (option == 'toggle') data.toggle()
203
- else if (option) data.setState(option)
204
- })
205
- }
206
-
207
- var old = $.fn.button
208
-
209
- $.fn.button = Plugin
210
- $.fn.button.Constructor = Button
211
-
212
-
213
- // BUTTON NO CONFLICT
214
- // ==================
215
-
216
- $.fn.button.noConflict = function () {
217
- $.fn.button = old
218
- return this
219
- }
220
-
221
-
222
- // BUTTON DATA-API
223
- // ===============
224
-
225
- $(document)
226
- .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
227
- var $btn = $(e.target)
228
- if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
229
- Plugin.call($btn, 'toggle')
230
- if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
231
- })
232
- .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
233
- $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
234
- })
235
-
236
- }(jQuery);
237
-
238
- /* ========================================================================
239
- * Bootstrap: carousel.js v3.3.5
240
- * http://getbootstrap.com/javascript/#carousel
241
- * ========================================================================
242
- * Copyright 2011-2015 Twitter, Inc.
243
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
244
- * ======================================================================== */
245
-
246
-
247
- +function ($) {
248
- 'use strict';
249
-
250
- // CAROUSEL CLASS DEFINITION
251
- // =========================
252
-
253
- var Carousel = function (element, options) {
254
- this.$element = $(element)
255
- this.$indicators = this.$element.find('.carousel-indicators')
256
- this.options = options
257
- this.paused = null
258
- this.sliding = null
259
- this.interval = null
260
- this.$active = null
261
- this.$items = null
262
-
263
- this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
264
-
265
- this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
266
- .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
267
- .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
268
- }
269
-
270
- Carousel.VERSION = '3.3.5'
271
-
272
- Carousel.TRANSITION_DURATION = 600
273
-
274
- Carousel.DEFAULTS = {
275
- interval: 5000,
276
- pause: 'hover',
277
- wrap: true,
278
- keyboard: true
279
- }
280
-
281
- Carousel.prototype.keydown = function (e) {
282
- if (/input|textarea/i.test(e.target.tagName)) return
283
- switch (e.which) {
284
- case 37: this.prev(); break
285
- case 39: this.next(); break
286
- default: return
287
- }
288
-
289
- e.preventDefault()
290
- }
291
-
292
- Carousel.prototype.cycle = function (e) {
293
- e || (this.paused = false)
294
-
295
- this.interval && clearInterval(this.interval)
296
-
297
- this.options.interval
298
- && !this.paused
299
- && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
300
-
301
- return this
302
- }
303
-
304
- Carousel.prototype.getItemIndex = function (item) {
305
- this.$items = item.parent().children('.item')
306
- return this.$items.index(item || this.$active)
307
- }
308
-
309
- Carousel.prototype.getItemForDirection = function (direction, active) {
310
- var activeIndex = this.getItemIndex(active)
311
- var willWrap = (direction == 'prev' && activeIndex === 0)
312
- || (direction == 'next' && activeIndex == (this.$items.length - 1))
313
- if (willWrap && !this.options.wrap) return active
314
- var delta = direction == 'prev' ? -1 : 1
315
- var itemIndex = (activeIndex + delta) % this.$items.length
316
- return this.$items.eq(itemIndex)
317
- }
318
-
319
- Carousel.prototype.to = function (pos) {
320
- var that = this
321
- var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
322
-
323
- if (pos > (this.$items.length - 1) || pos < 0) return
324
-
325
- if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
326
- if (activeIndex == pos) return this.pause().cycle()
327
-
328
- return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
329
- }
330
-
331
- Carousel.prototype.pause = function (e) {
332
- e || (this.paused = true)
333
-
334
- if (this.$element.find('.next, .prev').length && $.support.transition) {
335
- this.$element.trigger($.support.transition.end)
336
- this.cycle(true)
337
- }
338
-
339
- this.interval = clearInterval(this.interval)
340
-
341
- return this
342
- }
343
-
344
- Carousel.prototype.next = function () {
345
- if (this.sliding) return
346
- return this.slide('next')
347
- }
348
-
349
- Carousel.prototype.prev = function () {
350
- if (this.sliding) return
351
- return this.slide('prev')
352
- }
353
-
354
- Carousel.prototype.slide = function (type, next) {
355
- var $active = this.$element.find('.item.active')
356
- var $next = next || this.getItemForDirection(type, $active)
357
- var isCycling = this.interval
358
- var direction = type == 'next' ? 'left' : 'right'
359
- var that = this
360
-
361
- if ($next.hasClass('active')) return (this.sliding = false)
362
-
363
- var relatedTarget = $next[0]
364
- var slideEvent = $.Event('slide.bs.carousel', {
365
- relatedTarget: relatedTarget,
366
- direction: direction
367
- })
368
- this.$element.trigger(slideEvent)
369
- if (slideEvent.isDefaultPrevented()) return
370
-
371
- this.sliding = true
372
-
373
- isCycling && this.pause()
374
-
375
- if (this.$indicators.length) {
376
- this.$indicators.find('.active').removeClass('active')
377
- var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
378
- $nextIndicator && $nextIndicator.addClass('active')
379
- }
380
-
381
- var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
382
- if ($.support.transition && this.$element.hasClass('slide')) {
383
- $next.addClass(type)
384
- $next[0].offsetWidth // force reflow
385
- $active.addClass(direction)
386
- $next.addClass(direction)
387
- $active
388
- .one('bsTransitionEnd', function () {
389
- $next.removeClass([type, direction].join(' ')).addClass('active')
390
- $active.removeClass(['active', direction].join(' '))
391
- that.sliding = false
392
- setTimeout(function () {
393
- that.$element.trigger(slidEvent)
394
- }, 0)
395
- })
396
- .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
397
- } else {
398
- $active.removeClass('active')
399
- $next.addClass('active')
400
- this.sliding = false
401
- this.$element.trigger(slidEvent)
402
- }
403
-
404
- isCycling && this.cycle()
405
-
406
- return this
407
- }
408
-
409
-
410
- // CAROUSEL PLUGIN DEFINITION
411
- // ==========================
412
-
413
- function Plugin(option) {
414
- return this.each(function () {
415
- var $this = $(this)
416
- var data = $this.data('bs.carousel')
417
- var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
418
- var action = typeof option == 'string' ? option : options.slide
419
-
420
- if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
421
- if (typeof option == 'number') data.to(option)
422
- else if (action) data[action]()
423
- else if (options.interval) data.pause().cycle()
424
- })
425
- }
426
-
427
- var old = $.fn.carousel
428
-
429
- $.fn.carousel = Plugin
430
- $.fn.carousel.Constructor = Carousel
431
-
432
-
433
- // CAROUSEL NO CONFLICT
434
- // ====================
435
-
436
- $.fn.carousel.noConflict = function () {
437
- $.fn.carousel = old
438
- return this
439
- }
440
-
441
-
442
- // CAROUSEL DATA-API
443
- // =================
444
-
445
- var clickHandler = function (e) {
446
- var href
447
- var $this = $(this)
448
- var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
449
- if (!$target.hasClass('carousel')) return
450
- var options = $.extend({}, $target.data(), $this.data())
451
- var slideIndex = $this.attr('data-slide-to')
452
- if (slideIndex) options.interval = false
453
-
454
- Plugin.call($target, options)
455
-
456
- if (slideIndex) {
457
- $target.data('bs.carousel').to(slideIndex)
458
- }
459
-
460
- e.preventDefault()
461
- }
462
-
463
- $(document)
464
- .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
465
- .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
466
-
467
- $(window).on('load', function () {
468
- $('[data-ride="carousel"]').each(function () {
469
- var $carousel = $(this)
470
- Plugin.call($carousel, $carousel.data())
471
- })
472
- })
473
-
474
- }(jQuery);
475
-
476
- /* ========================================================================
477
- * Bootstrap: dropdown.js v3.3.5
478
- * http://getbootstrap.com/javascript/#dropdowns
479
- * ========================================================================
480
- * Copyright 2011-2015 Twitter, Inc.
481
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
482
- * ======================================================================== */
483
-
484
-
485
- +function ($) {
486
- 'use strict';
487
-
488
- // DROPDOWN CLASS DEFINITION
489
- // =========================
490
-
491
- var backdrop = '.dropdown-backdrop'
492
- var toggle = '[data-toggle="dropdown"]'
493
- var Dropdown = function (element) {
494
- $(element).on('click.bs.dropdown', this.toggle)
495
- }
496
-
497
- Dropdown.VERSION = '3.3.5'
498
-
499
- function getParent($this) {
500
- var selector = $this.attr('data-target')
501
-
502
- if (!selector) {
503
- selector = $this.attr('href')
504
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
505
- }
506
-
507
- var $parent = selector && $(selector)
508
-
509
- return $parent && $parent.length ? $parent : $this.parent()
510
- }
511
-
512
- function clearMenus(e) {
513
- if (e && e.which === 3) return
514
- $(backdrop).remove()
515
- $(toggle).each(function () {
516
- var $this = $(this)
517
- var $parent = getParent($this)
518
- var relatedTarget = { relatedTarget: this }
519
-
520
- if (!$parent.hasClass('open')) return
521
-
522
- if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
523
-
524
- $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
525
-
526
- if (e.isDefaultPrevented()) return
527
-
528
- $this.attr('aria-expanded', 'false')
529
- $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
530
- })
531
- }
532
-
533
- Dropdown.prototype.toggle = function (e) {
534
- var $this = $(this)
535
-
536
- if ($this.is('.disabled, :disabled')) return
537
-
538
- var $parent = getParent($this)
539
- var isActive = $parent.hasClass('open')
540
-
541
- clearMenus()
542
-
543
- if (!isActive) {
544
- if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
545
- // if mobile we use a backdrop because click events don't delegate
546
- $(document.createElement('div'))
547
- .addClass('dropdown-backdrop')
548
- .insertAfter($(this))
549
- .on('click', clearMenus)
550
- }
551
-
552
- var relatedTarget = { relatedTarget: this }
553
- $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
554
-
555
- if (e.isDefaultPrevented()) return
556
-
557
- $this
558
- .trigger('focus')
559
- .attr('aria-expanded', 'true')
560
-
561
- $parent
562
- .toggleClass('open')
563
- .trigger('shown.bs.dropdown', relatedTarget)
564
- }
565
-
566
- return false
567
- }
568
-
569
- Dropdown.prototype.keydown = function (e) {
570
- if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
571
-
572
- var $this = $(this)
573
-
574
- e.preventDefault()
575
- e.stopPropagation()
576
-
577
- if ($this.is('.disabled, :disabled')) return
578
-
579
- var $parent = getParent($this)
580
- var isActive = $parent.hasClass('open')
581
-
582
- if (!isActive && e.which != 27 || isActive && e.which == 27) {
583
- if (e.which == 27) $parent.find(toggle).trigger('focus')
584
- return $this.trigger('click')
585
- }
586
-
587
- var desc = ' li:not(.disabled):visible a'
588
- var $items = $parent.find('.dropdown-menu' + desc)
589
-
590
- if (!$items.length) return
591
-
592
- var index = $items.index(e.target)
593
-
594
- if (e.which == 38 && index > 0) index-- // up
595
- if (e.which == 40 && index < $items.length - 1) index++ // down
596
- if (!~index) index = 0
597
-
598
- $items.eq(index).trigger('focus')
599
- }
600
-
601
-
602
- // DROPDOWN PLUGIN DEFINITION
603
- // ==========================
604
-
605
- function Plugin(option) {
606
- return this.each(function () {
607
- var $this = $(this)
608
- var data = $this.data('bs.dropdown')
609
-
610
- if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
611
- if (typeof option == 'string') data[option].call($this)
612
- })
613
- }
614
-
615
- var old = $.fn.dropdown
616
-
617
- $.fn.dropdown = Plugin
618
- $.fn.dropdown.Constructor = Dropdown
619
-
620
-
621
- // DROPDOWN NO CONFLICT
622
- // ====================
623
-
624
- $.fn.dropdown.noConflict = function () {
625
- $.fn.dropdown = old
626
- return this
627
- }
628
-
629
-
630
- // APPLY TO STANDARD DROPDOWN ELEMENTS
631
- // ===================================
632
-
633
- $(document)
634
- .on('click.bs.dropdown.data-api', clearMenus)
635
- .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
636
- .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
637
- .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
638
- .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
639
-
640
- }(jQuery);
641
-
642
- /* ========================================================================
643
- * Bootstrap: modal.js v3.3.5
644
- * http://getbootstrap.com/javascript/#modals
645
- * ========================================================================
646
- * Copyright 2011-2015 Twitter, Inc.
647
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
648
- * ======================================================================== */
649
-
650
-
651
- +function ($) {
652
- 'use strict';
653
-
654
- // MODAL CLASS DEFINITION
655
- // ======================
656
-
657
- var Modal = function (element, options) {
658
- this.options = options
659
- this.$body = $(document.body)
660
- this.$element = $(element)
661
- this.$dialog = this.$element.find('.modal-dialog')
662
- this.$backdrop = null
663
- this.isShown = null
664
- this.originalBodyPad = null
665
- this.scrollbarWidth = 0
666
- this.ignoreBackdropClick = false
667
-
668
- if (this.options.remote) {
669
- this.$element
670
- .find('.modal-content')
671
- .load(this.options.remote, $.proxy(function () {
672
- this.$element.trigger('loaded.bs.modal')
673
- }, this))
674
- }
675
- }
676
-
677
- Modal.VERSION = '3.3.5'
678
-
679
- Modal.TRANSITION_DURATION = 300
680
- Modal.BACKDROP_TRANSITION_DURATION = 150
681
-
682
- Modal.DEFAULTS = {
683
- backdrop: true,
684
- keyboard: true,
685
- show: true
686
- }
687
-
688
- Modal.prototype.toggle = function (_relatedTarget) {
689
- return this.isShown ? this.hide() : this.show(_relatedTarget)
690
- }
691
-
692
- Modal.prototype.show = function (_relatedTarget) {
693
- var that = this
694
- var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
695
-
696
- this.$element.trigger(e)
697
-
698
- if (this.isShown || e.isDefaultPrevented()) return
699
-
700
- this.isShown = true
701
-
702
- this.checkScrollbar()
703
- this.setScrollbar()
704
- this.$body.addClass('modal-open')
705
-
706
- this.escape()
707
- this.resize()
708
-
709
- this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
710
-
711
- this.$dialog.on('mousedown.dismiss.bs.modal', function () {
712
- that.$element.one('mouseup.dismiss.bs.modal', function (e) {
713
- if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
714
- })
715
- })
716
-
717
- this.backdrop(function () {
718
- var transition = $.support.transition && that.$element.hasClass('fade')
719
-
720
- if (!that.$element.parent().length) {
721
- that.$element.appendTo(that.$body) // don't move modals dom position
722
- }
723
-
724
- that.$element
725
- .show()
726
- .scrollTop(0)
727
-
728
- that.adjustDialog()
729
-
730
- if (transition) {
731
- that.$element[0].offsetWidth // force reflow
732
- }
733
-
734
- that.$element.addClass('in')
735
-
736
- that.enforceFocus()
737
-
738
- var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
739
-
740
- transition ?
741
- that.$dialog // wait for modal to slide in
742
- .one('bsTransitionEnd', function () {
743
- that.$element.trigger('focus').trigger(e)
744
- })
745
- .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
746
- that.$element.trigger('focus').trigger(e)
747
- })
748
- }
749
-
750
- Modal.prototype.hide = function (e) {
751
- if (e) e.preventDefault()
752
-
753
- e = $.Event('hide.bs.modal')
754
-
755
- this.$element.trigger(e)
756
-
757
- if (!this.isShown || e.isDefaultPrevented()) return
758
-
759
- this.isShown = false
760
-
761
- this.escape()
762
- this.resize()
763
-
764
- $(document).off('focusin.bs.modal')
765
-
766
- this.$element
767
- .removeClass('in')
768
- .off('click.dismiss.bs.modal')
769
- .off('mouseup.dismiss.bs.modal')
770
-
771
- this.$dialog.off('mousedown.dismiss.bs.modal')
772
-
773
- $.support.transition && this.$element.hasClass('fade') ?
774
- this.$element
775
- .one('bsTransitionEnd', $.proxy(this.hideModal, this))
776
- .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
777
- this.hideModal()
778
- }
779
-
780
- Modal.prototype.enforceFocus = function () {
781
- $(document)
782
- .off('focusin.bs.modal') // guard against infinite focus loop
783
- .on('focusin.bs.modal', $.proxy(function (e) {
784
- if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
785
- this.$element.trigger('focus')
786
- }
787
- }, this))
788
- }
789
-
790
- Modal.prototype.escape = function () {
791
- if (this.isShown && this.options.keyboard) {
792
- this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
793
- e.which == 27 && this.hide()
794
- }, this))
795
- } else if (!this.isShown) {
796
- this.$element.off('keydown.dismiss.bs.modal')
797
- }
798
- }
799
-
800
- Modal.prototype.resize = function () {
801
- if (this.isShown) {
802
- $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
803
- } else {
804
- $(window).off('resize.bs.modal')
805
- }
806
- }
807
-
808
- Modal.prototype.hideModal = function () {
809
- var that = this
810
- this.$element.hide()
811
- this.backdrop(function () {
812
- that.$body.removeClass('modal-open')
813
- that.resetAdjustments()
814
- that.resetScrollbar()
815
- that.$element.trigger('hidden.bs.modal')
816
- })
817
- }
818
-
819
- Modal.prototype.removeBackdrop = function () {
820
- this.$backdrop && this.$backdrop.remove()
821
- this.$backdrop = null
822
- }
823
-
824
- Modal.prototype.backdrop = function (callback) {
825
- var that = this
826
- var animate = this.$element.hasClass('fade') ? 'fade' : ''
827
-
828
- if (this.isShown && this.options.backdrop) {
829
- var doAnimate = $.support.transition && animate
830
-
831
- this.$backdrop = $(document.createElement('div'))
832
- .addClass('modal-backdrop ' + animate)
833
- .appendTo(this.$body)
834
-
835
- this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
836
- if (this.ignoreBackdropClick) {
837
- this.ignoreBackdropClick = false
838
- return
839
- }
840
- if (e.target !== e.currentTarget) return
841
- this.options.backdrop == 'static'
842
- ? this.$element[0].trigger( 'focus' )
843
- : this.hide()
844
- }, this))
845
-
846
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
847
-
848
- this.$backdrop.addClass('in')
849
-
850
- if (!callback) return
851
-
852
- doAnimate ?
853
- this.$backdrop
854
- .one('bsTransitionEnd', callback)
855
- .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
856
- callback()
857
-
858
- } else if (!this.isShown && this.$backdrop) {
859
- this.$backdrop.removeClass('in')
860
-
861
- var callbackRemove = function () {
862
- that.removeBackdrop()
863
- callback && callback()
864
- }
865
- $.support.transition && this.$element.hasClass('fade') ?
866
- this.$backdrop
867
- .one('bsTransitionEnd', callbackRemove)
868
- .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
869
- callbackRemove()
870
-
871
- } else if (callback) {
872
- callback()
873
- }
874
- }
875
-
876
- // these following methods are used to handle overflowing modals
877
-
878
- Modal.prototype.handleUpdate = function () {
879
- this.adjustDialog()
880
- }
881
-
882
- Modal.prototype.adjustDialog = function () {
883
- var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
884
-
885
- this.$element.css({
886
- paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
887
- paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
888
- })
889
- }
890
-
891
- Modal.prototype.resetAdjustments = function () {
892
- this.$element.css({
893
- paddingLeft: '',
894
- paddingRight: ''
895
- })
896
- }
897
-
898
- Modal.prototype.checkScrollbar = function () {
899
- var fullWindowWidth = window.innerWidth
900
- if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
901
- var documentElementRect = document.documentElement.getBoundingClientRect()
902
- fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
903
- }
904
- this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
905
- this.scrollbarWidth = this.measureScrollbar()
906
- }
907
-
908
- Modal.prototype.setScrollbar = function () {
909
- var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
910
- this.originalBodyPad = document.body.style.paddingRight || ''
911
- if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
912
- }
913
-
914
- Modal.prototype.resetScrollbar = function () {
915
- this.$body.css('padding-right', this.originalBodyPad)
916
- }
917
-
918
- Modal.prototype.measureScrollbar = function () { // thx walsh
919
- var scrollDiv = document.createElement('div')
920
- scrollDiv.className = 'modal-scrollbar-measure'
921
- this.$body.append(scrollDiv)
922
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
923
- this.$body[0].removeChild(scrollDiv)
924
- return scrollbarWidth
925
- }
926
-
927
-
928
- // MODAL PLUGIN DEFINITION
929
- // =======================
930
-
931
- function Plugin(option, _relatedTarget) {
932
- return this.each(function () {
933
- var $this = $(this)
934
- var data = $this.data('bs.modal')
935
- var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
936
-
937
- if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
938
- if (typeof option == 'string') data[option](_relatedTarget)
939
- else if (options.show) data.show(_relatedTarget)
940
- })
941
- }
942
-
943
- var old = $.fn.modal
944
-
945
- $.fn.modal = Plugin
946
- $.fn.modal.Constructor = Modal
947
-
948
-
949
- // MODAL NO CONFLICT
950
- // =================
951
-
952
- $.fn.modal.noConflict = function () {
953
- $.fn.modal = old
954
- return this
955
- }
956
-
957
-
958
- // MODAL DATA-API
959
- // ==============
960
-
961
- $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
962
- var $this = $(this)
963
- var href = $this.attr('href')
964
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
965
- var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
966
-
967
- if ($this.is('a')) e.preventDefault()
968
-
969
- $target.one('show.bs.modal', function (showEvent) {
970
- if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
971
- $target.one('hidden.bs.modal', function () {
972
- $this.is(':visible') && $this.trigger('focus')
973
- })
974
- })
975
- Plugin.call($target, option, this)
976
- })
977
-
978
- }(jQuery);
979
-
980
- /* ========================================================================
981
- * Bootstrap: tooltip.js v3.3.5
982
- * http://getbootstrap.com/javascript/#tooltip
983
- * Inspired by the original jQuery.tipsy by Jason Frame
984
- * ========================================================================
985
- * Copyright 2011-2015 Twitter, Inc.
986
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
987
- * ======================================================================== */
988
-
989
-
990
- +function ($) {
991
- 'use strict';
992
-
993
- // TOOLTIP PUBLIC CLASS DEFINITION
994
- // ===============================
995
-
996
- var Tooltip = function (element, options) {
997
- this.type = null
998
- this.options = null
999
- this.enabled = null
1000
- this.timeout = null
1001
- this.hoverState = null
1002
- this.$element = null
1003
- this.inState = null
1004
-
1005
- this.init('tooltip', element, options)
1006
- }
1007
-
1008
- Tooltip.VERSION = '3.3.5'
1009
-
1010
- Tooltip.TRANSITION_DURATION = 150
1011
-
1012
- Tooltip.DEFAULTS = {
1013
- animation: true,
1014
- placement: 'top',
1015
- selector: false,
1016
- template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
1017
- trigger: 'hover focus',
1018
- title: '',
1019
- delay: 0,
1020
- html: false,
1021
- container: false,
1022
- viewport: {
1023
- selector: 'body',
1024
- padding: 0
1025
- }
1026
- }
1027
-
1028
- Tooltip.prototype.init = function (type, element, options) {
1029
- this.enabled = true
1030
- this.type = type
1031
- this.$element = $(element)
1032
- this.options = this.getOptions(options)
1033
- this.$viewport = this.options.viewport && $(('function' === typeof(this.options.viewport)) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
1034
- this.inState = { click: false, hover: false, focus: false }
1035
-
1036
- if (this.$element[0] instanceof document.constructor && !this.options.selector) {
1037
- throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
1038
- }
1039
-
1040
- var triggers = this.options.trigger.split(' ')
1041
-
1042
- for (var i = triggers.length; i--;) {
1043
- var trigger = triggers[i]
1044
-
1045
- if (trigger == 'click') {
1046
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1047
- } else if (trigger != 'manual') {
1048
- var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
1049
- var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
1050
-
1051
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1052
- this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1053
- }
1054
- }
1055
-
1056
- this.options.selector ?
1057
- (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1058
- this.fixTitle()
1059
- }
1060
-
1061
- Tooltip.prototype.getDefaults = function () {
1062
- return Tooltip.DEFAULTS
1063
- }
1064
-
1065
- Tooltip.prototype.getOptions = function (options) {
1066
- options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1067
-
1068
- if (options.delay && typeof options.delay == 'number') {
1069
- options.delay = {
1070
- show: options.delay,
1071
- hide: options.delay
1072
- }
1073
- }
1074
-
1075
- return options
1076
- }
1077
-
1078
- Tooltip.prototype.getDelegateOptions = function () {
1079
- var options = {}
1080
- var defaults = this.getDefaults()
1081
-
1082
- this._options && $.each(this._options, function (key, value) {
1083
- if (defaults[key] != value) options[key] = value
1084
- })
1085
-
1086
- return options
1087
- }
1088
-
1089
- Tooltip.prototype.enter = function (obj) {
1090
- var self = obj instanceof this.constructor ?
1091
- obj : $(obj.currentTarget).data('bs.' + this.type)
1092
-
1093
- if (!self) {
1094
- self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1095
- $(obj.currentTarget).data('bs.' + this.type, self)
1096
- }
1097
-
1098
- if (obj instanceof $.Event) {
1099
- self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
1100
- }
1101
-
1102
- if (self.tip().hasClass('in') || self.hoverState == 'in') {
1103
- self.hoverState = 'in'
1104
- return
1105
- }
1106
-
1107
- clearTimeout(self.timeout)
1108
-
1109
- self.hoverState = 'in'
1110
-
1111
- if (!self.options.delay || !self.options.delay.show) return self.show()
1112
-
1113
- self.timeout = setTimeout(function () {
1114
- if (self.hoverState == 'in') self.show()
1115
- }, self.options.delay.show)
1116
- }
1117
-
1118
- Tooltip.prototype.isInStateTrue = function () {
1119
- for (var key in this.inState) {
1120
- if (this.inState[key]) return true
1121
- }
1122
-
1123
- return false
1124
- }
1125
-
1126
- Tooltip.prototype.leave = function (obj) {
1127
- var self = obj instanceof this.constructor ?
1128
- obj : $(obj.currentTarget).data('bs.' + this.type)
1129
-
1130
- if (!self) {
1131
- self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1132
- $(obj.currentTarget).data('bs.' + this.type, self)
1133
- }
1134
-
1135
- if (obj instanceof $.Event) {
1136
- self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
1137
- }
1138
-
1139
- if (self.isInStateTrue()) return
1140
-
1141
- clearTimeout(self.timeout)
1142
-
1143
- self.hoverState = 'out'
1144
-
1145
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
1146
-
1147
- self.timeout = setTimeout(function () {
1148
- if (self.hoverState == 'out') self.hide()
1149
- }, self.options.delay.hide)
1150
- }
1151
-
1152
- Tooltip.prototype.show = function () {
1153
- var e = $.Event('show.bs.' + this.type)
1154
-
1155
- if (this.hasContent() && this.enabled) {
1156
- this.$element.trigger(e)
1157
-
1158
- var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
1159
- if (e.isDefaultPrevented() || !inDom) return
1160
- var that = this
1161
-
1162
- var $tip = this.tip()
1163
-
1164
- var tipId = this.getUID(this.type)
1165
-
1166
- this.setContent()
1167
- $tip.attr('id', tipId)
1168
- this.$element.attr('aria-describedby', tipId)
1169
-
1170
- if (this.options.animation) $tip.addClass('fade')
1171
-
1172
- var placement = typeof this.options.placement == 'function' ?
1173
- this.options.placement.call(this, $tip[0], this.$element[0]) :
1174
- this.options.placement
1175
-
1176
- var autoToken = /\s?auto?\s?/i
1177
- var autoPlace = autoToken.test(placement)
1178
- if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1179
-
1180
- $tip
1181
- .detach()
1182
- .css({ top: 0, left: 0, display: 'block' })
1183
- .addClass(placement)
1184
- .data('bs.' + this.type, this)
1185
-
1186
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1187
- this.$element.trigger('inserted.bs.' + this.type)
1188
-
1189
- var pos = this.getPosition()
1190
- var actualWidth = $tip[0].offsetWidth
1191
- var actualHeight = $tip[0].offsetHeight
1192
-
1193
- if (autoPlace) {
1194
- var orgPlacement = placement
1195
- var viewportDim = this.getPosition(this.$viewport)
1196
-
1197
- placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
1198
- placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
1199
- placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
1200
- placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
1201
- placement
1202
-
1203
- $tip
1204
- .removeClass(orgPlacement)
1205
- .addClass(placement)
1206
- }
1207
-
1208
- var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1209
-
1210
- this.applyPlacement(calculatedOffset, placement)
1211
-
1212
- var complete = function () {
1213
- var prevHoverState = that.hoverState
1214
- that.$element.trigger('shown.bs.' + that.type)
1215
- that.hoverState = null
1216
-
1217
- if (prevHoverState == 'out') that.leave(that)
1218
- }
1219
-
1220
- $.support.transition && this.$tip.hasClass('fade') ?
1221
- $tip
1222
- .one('bsTransitionEnd', complete)
1223
- .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
1224
- complete()
1225
- }
1226
- }
1227
-
1228
- Tooltip.prototype.applyPlacement = function (offset, placement) {
1229
- var $tip = this.tip()
1230
- var width = $tip[0].offsetWidth
1231
- var height = $tip[0].offsetHeight
1232
-
1233
- // manually read margins because getBoundingClientRect includes difference
1234
- var marginTop = parseInt($tip.css('margin-top'), 10)
1235
- var marginLeft = parseInt($tip.css('margin-left'), 10)
1236
-
1237
- // we must check for NaN for ie 8/9
1238
- if (isNaN(marginTop)) marginTop = 0
1239
- if (isNaN(marginLeft)) marginLeft = 0
1240
-
1241
- offset.top += marginTop
1242
- offset.left += marginLeft
1243
-
1244
- // $.fn.offset doesn't round pixel values
1245
- // so we use setOffset directly with our own function B-0
1246
- $.offset.setOffset($tip[0], $.extend({
1247
- using: function (props) {
1248
- $tip.css({
1249
- top: Math.round(props.top),
1250
- left: Math.round(props.left)
1251
- })
1252
- }
1253
- }, offset), 0)
1254
-
1255
- $tip.addClass('in')
1256
-
1257
- // check to see if placing tip in new offset caused the tip to resize itself
1258
- var actualWidth = $tip[0].offsetWidth
1259
- var actualHeight = $tip[0].offsetHeight
1260
-
1261
- if (placement == 'top' && actualHeight != height) {
1262
- offset.top = offset.top + height - actualHeight
1263
- }
1264
-
1265
- var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
1266
-
1267
- if (delta.left) offset.left += delta.left
1268
- else offset.top += delta.top
1269
-
1270
- var isVertical = /top|bottom/.test(placement)
1271
- var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
1272
- var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
1273
-
1274
- $tip.offset(offset)
1275
- this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
1276
- }
1277
-
1278
- Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
1279
- this.arrow()
1280
- .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
1281
- .css(isVertical ? 'top' : 'left', '')
1282
- }
1283
-
1284
- Tooltip.prototype.setContent = function () {
1285
- var $tip = this.tip()
1286
- var title = this.getTitle()
1287
-
1288
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1289
- $tip.removeClass('fade in top bottom left right')
1290
- }
1291
-
1292
- Tooltip.prototype.hide = function (callback) {
1293
- var that = this
1294
- var $tip = $(this.$tip)
1295
- var e = $.Event('hide.bs.' + this.type)
1296
-
1297
- function complete() {
1298
- if (that.hoverState != 'in') $tip.detach()
1299
- that.$element
1300
- .removeAttr('aria-describedby')
1301
- .trigger('hidden.bs.' + that.type)
1302
- callback && callback()
1303
- }
1304
-
1305
- this.$element.trigger(e)
1306
-
1307
- if (e.isDefaultPrevented()) return
1308
-
1309
- $tip.removeClass('in')
1310
-
1311
- $.support.transition && $tip.hasClass('fade') ?
1312
- $tip
1313
- .one('bsTransitionEnd', complete)
1314
- .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
1315
- complete()
1316
-
1317
- this.hoverState = null
1318
-
1319
- return this
1320
- }
1321
-
1322
- Tooltip.prototype.fixTitle = function () {
1323
- var $e = this.$element
1324
- if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
1325
- $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1326
- }
1327
- }
1328
-
1329
- Tooltip.prototype.hasContent = function () {
1330
- return this.getTitle()
1331
- }
1332
-
1333
- Tooltip.prototype.getPosition = function ($element) {
1334
- $element = $element || this.$element
1335
-
1336
- var el = $element[0]
1337
- var isBody = el.tagName == 'BODY'
1338
-
1339
- var elRect = el.getBoundingClientRect()
1340
- if (elRect.width == null) {
1341
- // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
1342
- elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
1343
- }
1344
- var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
1345
- var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
1346
- var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
1347
-
1348
- return $.extend({}, elRect, scroll, outerDims, elOffset)
1349
- }
1350
-
1351
- Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1352
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1353
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1354
- placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1355
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1356
-
1357
- }
1358
-
1359
- Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
1360
- var delta = { top: 0, left: 0 }
1361
- if (!this.$viewport) return delta
1362
-
1363
- var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
1364
- var viewportDimensions = this.getPosition(this.$viewport)
1365
-
1366
- if (/right|left/.test(placement)) {
1367
- var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
1368
- var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
1369
- if (topEdgeOffset < viewportDimensions.top) { // top overflow
1370
- delta.top = viewportDimensions.top - topEdgeOffset
1371
- } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
1372
- delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
1373
- }
1374
- } else {
1375
- var leftEdgeOffset = pos.left - viewportPadding
1376
- var rightEdgeOffset = pos.left + viewportPadding + actualWidth
1377
- if (leftEdgeOffset < viewportDimensions.left) { // left overflow
1378
- delta.left = viewportDimensions.left - leftEdgeOffset
1379
- } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
1380
- delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
1381
- }
1382
- }
1383
-
1384
- return delta
1385
- }
1386
-
1387
- Tooltip.prototype.getTitle = function () {
1388
- var title
1389
- var $e = this.$element
1390
- var o = this.options
1391
-
1392
- title = $e.attr('data-original-title')
1393
- || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1394
-
1395
- return title
1396
- }
1397
-
1398
- Tooltip.prototype.getUID = function (prefix) {
1399
- do prefix += ~~(Math.random() * 1000000)
1400
- while (document.getElementById(prefix))
1401
- return prefix
1402
- }
1403
-
1404
- Tooltip.prototype.tip = function () {
1405
- if (!this.$tip) {
1406
- this.$tip = $(this.options.template)
1407
- if (this.$tip.length != 1) {
1408
- throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
1409
- }
1410
- }
1411
- return this.$tip
1412
- }
1413
-
1414
- Tooltip.prototype.arrow = function () {
1415
- return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
1416
- }
1417
-
1418
- Tooltip.prototype.enable = function () {
1419
- this.enabled = true
1420
- }
1421
-
1422
- Tooltip.prototype.disable = function () {
1423
- this.enabled = false
1424
- }
1425
-
1426
- Tooltip.prototype.toggleEnabled = function () {
1427
- this.enabled = !this.enabled
1428
- }
1429
-
1430
- Tooltip.prototype.toggle = function (e) {
1431
- var self = this
1432
- if (e) {
1433
- self = $(e.currentTarget).data('bs.' + this.type)
1434
- if (!self) {
1435
- self = new this.constructor(e.currentTarget, this.getDelegateOptions())
1436
- $(e.currentTarget).data('bs.' + this.type, self)
1437
- }
1438
- }
1439
-
1440
- if (e) {
1441
- self.inState.click = !self.inState.click
1442
- if (self.isInStateTrue()) self.enter(self)
1443
- else self.leave(self)
1444
- } else {
1445
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1446
- }
1447
- }
1448
-
1449
- Tooltip.prototype.destroy = function () {
1450
- var that = this
1451
- clearTimeout(this.timeout)
1452
- this.hide(function () {
1453
- that.$element.off('.' + that.type).removeData('bs.' + that.type)
1454
- if (that.$tip) {
1455
- that.$tip.detach()
1456
- }
1457
- that.$tip = null
1458
- that.$arrow = null
1459
- that.$viewport = null
1460
- })
1461
- }
1462
-
1463
-
1464
- // TOOLTIP PLUGIN DEFINITION
1465
- // =========================
1466
-
1467
- function Plugin(option) {
1468
- return this.each(function () {
1469
- var $this = $(this)
1470
- var data = $this.data('bs.tooltip')
1471
- var options = typeof option == 'object' && option
1472
-
1473
- if (!data && /destroy|hide/.test(option)) return
1474
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1475
- if (typeof option == 'string') data[option]()
1476
- })
1477
- }
1478
-
1479
- var old = $.fn.tooltip
1480
-
1481
- $.fn.tooltip = Plugin
1482
- $.fn.tooltip.Constructor = Tooltip
1483
-
1484
-
1485
- // TOOLTIP NO CONFLICT
1486
- // ===================
1487
-
1488
- $.fn.tooltip.noConflict = function () {
1489
- $.fn.tooltip = old
1490
- return this
1491
- }
1492
-
1493
- }(jQuery);
1494
-
1495
- /* ========================================================================
1496
- * Bootstrap: popover.js v3.3.5
1497
- * http://getbootstrap.com/javascript/#popovers
1498
- * ========================================================================
1499
- * Copyright 2011-2015 Twitter, Inc.
1500
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1501
- * ======================================================================== */
1502
-
1503
-
1504
- +function ($) {
1505
- 'use strict';
1506
-
1507
- // POPOVER PUBLIC CLASS DEFINITION
1508
- // ===============================
1509
-
1510
- var Popover = function (element, options) {
1511
- this.init('popover', element, options)
1512
- }
1513
-
1514
- if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1515
-
1516
- Popover.VERSION = '3.3.5'
1517
-
1518
- Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1519
- placement: 'right',
1520
- trigger: 'click',
1521
- content: '',
1522
- template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1523
- })
1524
-
1525
-
1526
- // NOTE: POPOVER EXTENDS tooltip.js
1527
- // ================================
1528
-
1529
- Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1530
-
1531
- Popover.prototype.constructor = Popover
1532
-
1533
- Popover.prototype.getDefaults = function () {
1534
- return Popover.DEFAULTS
1535
- }
1536
-
1537
- Popover.prototype.setContent = function () {
1538
- var $tip = this.tip()
1539
- var title = this.getTitle()
1540
- var content = this.getContent()
1541
-
1542
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1543
- $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
1544
- this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1545
- ](content)
1546
-
1547
- $tip.removeClass('fade top bottom left right in')
1548
-
1549
- // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1550
- // this manually by checking the contents.
1551
- if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1552
- }
1553
-
1554
- Popover.prototype.hasContent = function () {
1555
- return this.getTitle() || this.getContent()
1556
- }
1557
-
1558
- Popover.prototype.getContent = function () {
1559
- var $e = this.$element
1560
- var o = this.options
1561
-
1562
- return $e.attr('data-content')
1563
- || (typeof o.content == 'function' ?
1564
- o.content.call($e[0]) :
1565
- o.content)
1566
- }
1567
-
1568
- Popover.prototype.arrow = function () {
1569
- return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
1570
- }
1571
-
1572
-
1573
- // POPOVER PLUGIN DEFINITION
1574
- // =========================
1575
-
1576
- function Plugin(option) {
1577
- return this.each(function () {
1578
- var $this = $(this)
1579
- var data = $this.data('bs.popover')
1580
- var options = typeof option == 'object' && option
1581
-
1582
- if (!data && /destroy|hide/.test(option)) return
1583
- if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1584
- if (typeof option == 'string') data[option]()
1585
- })
1586
- }
1587
-
1588
- var old = $.fn.popover
1589
-
1590
- $.fn.popover = Plugin
1591
- $.fn.popover.Constructor = Popover
1592
-
1593
-
1594
- // POPOVER NO CONFLICT
1595
- // ===================
1596
-
1597
- $.fn.popover.noConflict = function () {
1598
- $.fn.popover = old
1599
- return this
1600
- }
1601
-
1602
- }(jQuery);
1603
-
1604
- /* ========================================================================
1605
- * Bootstrap: tab.js v3.3.5
1606
- * http://getbootstrap.com/javascript/#tabs
1607
- * ========================================================================
1608
- * Copyright 2011-2015 Twitter, Inc.
1609
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1610
- * ======================================================================== */
1611
-
1612
-
1613
- +function ($) {
1614
- 'use strict';
1615
-
1616
- // TAB CLASS DEFINITION
1617
- // ====================
1618
-
1619
- var Tab = function (element) {
1620
- // jscs:disable requireDollarBeforejQueryAssignment
1621
- this.element = $(element)
1622
- // jscs:enable requireDollarBeforejQueryAssignment
1623
- }
1624
-
1625
- Tab.VERSION = '3.3.5'
1626
-
1627
- Tab.TRANSITION_DURATION = 150
1628
-
1629
- Tab.prototype.show = function () {
1630
- var $this = this.element
1631
- var $ul = $this.closest('ul:not(.dropdown-menu)')
1632
- var selector = $this.data('target')
1633
-
1634
- if (!selector) {
1635
- selector = $this.attr('href')
1636
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
1637
- }
1638
-
1639
- if ($this.parent('li').hasClass('active')) return
1640
-
1641
- var $previous = $ul.find('.active:last a')
1642
- var hideEvent = $.Event('hide.bs.tab', {
1643
- relatedTarget: $this[0]
1644
- })
1645
- var showEvent = $.Event('show.bs.tab', {
1646
- relatedTarget: $previous[0]
1647
- })
1648
-
1649
- $previous.trigger(hideEvent)
1650
- $this.trigger(showEvent)
1651
-
1652
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
1653
-
1654
- var $target = $(selector)
1655
-
1656
- this.activate($this.closest('li'), $ul)
1657
- this.activate($target, $target.parent(), function () {
1658
- $previous.trigger({
1659
- type: 'hidden.bs.tab',
1660
- relatedTarget: $this[0]
1661
- })
1662
- $this.trigger({
1663
- type: 'shown.bs.tab',
1664
- relatedTarget: $previous[0]
1665
- })
1666
- })
1667
- }
1668
-
1669
- Tab.prototype.activate = function (element, container, callback) {
1670
- var $active = container.find('> .active')
1671
- var transition = callback
1672
- && $.support.transition
1673
- && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
1674
-
1675
- function next() {
1676
- $active
1677
- .removeClass('active')
1678
- .find('> .dropdown-menu > .active')
1679
- .removeClass('active')
1680
- .end()
1681
- .find('[data-toggle="tab"]')
1682
- .attr('aria-expanded', false)
1683
-
1684
- element
1685
- .addClass('active')
1686
- .find('[data-toggle="tab"]')
1687
- .attr('aria-expanded', true)
1688
-
1689
- if (transition) {
1690
- element[0].offsetWidth // reflow for transition
1691
- element.addClass('in')
1692
- } else {
1693
- element.removeClass('fade')
1694
- }
1695
-
1696
- if (element.parent('.dropdown-menu').length) {
1697
- element
1698
- .closest('li.dropdown')
1699
- .addClass('active')
1700
- .end()
1701
- .find('[data-toggle="tab"]')
1702
- .attr('aria-expanded', true)
1703
- }
1704
-
1705
- callback && callback()
1706
- }
1707
-
1708
- $active.length && transition ?
1709
- $active
1710
- .one('bsTransitionEnd', next)
1711
- .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
1712
- next()
1713
-
1714
- $active.removeClass('in')
1715
- }
1716
-
1717
-
1718
- // TAB PLUGIN DEFINITION
1719
- // =====================
1720
-
1721
- function Plugin(option) {
1722
- return this.each(function () {
1723
- var $this = $(this)
1724
- var data = $this.data('bs.tab')
1725
-
1726
- if (!data) $this.data('bs.tab', (data = new Tab(this)))
1727
- if (typeof option == 'string') data[option]()
1728
- })
1729
- }
1730
-
1731
- var old = $.fn.tab
1732
-
1733
- $.fn.tab = Plugin
1734
- $.fn.tab.Constructor = Tab
1735
-
1736
-
1737
- // TAB NO CONFLICT
1738
- // ===============
1739
-
1740
- $.fn.tab.noConflict = function () {
1741
- $.fn.tab = old
1742
- return this
1743
- }
1744
-
1745
-
1746
- // TAB DATA-API
1747
- // ============
1748
-
1749
- var clickHandler = function (e) {
1750
- e.preventDefault()
1751
- Plugin.call($(this), 'show')
1752
- }
1753
-
1754
- $(document)
1755
- .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
1756
- .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
1757
-
1758
- }(jQuery);
1759
-
1760
- /* ========================================================================
1761
- * Bootstrap: affix.js v3.3.5
1762
- * http://getbootstrap.com/javascript/#affix
1763
- * ========================================================================
1764
- * Copyright 2011-2015 Twitter, Inc.
1765
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1766
- * ======================================================================== */
1767
-
1768
-
1769
- +function ($) {
1770
- 'use strict';
1771
-
1772
- // AFFIX CLASS DEFINITION
1773
- // ======================
1774
-
1775
- var Affix = function (element, options) {
1776
- this.options = $.extend({}, Affix.DEFAULTS, options)
1777
-
1778
- this.$target = $(this.options.target)
1779
- .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1780
- .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1781
-
1782
- this.$element = $(element)
1783
- this.affixed = null
1784
- this.unpin = null
1785
- this.pinnedOffset = null
1786
-
1787
- this.checkPosition()
1788
- }
1789
-
1790
- Affix.VERSION = '3.3.5'
1791
-
1792
- Affix.RESET = 'affix affix-top affix-bottom'
1793
-
1794
- Affix.DEFAULTS = {
1795
- offset: 0,
1796
- target: window
1797
- }
1798
-
1799
- Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
1800
- var scrollTop = this.$target.scrollTop()
1801
- var position = this.$element.offset()
1802
- var targetHeight = this.$target.height()
1803
-
1804
- if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
1805
-
1806
- if (this.affixed == 'bottom') {
1807
- if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
1808
- return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
1809
- }
1810
-
1811
- var initializing = this.affixed == null
1812
- var colliderTop = initializing ? scrollTop : position.top
1813
- var colliderHeight = initializing ? targetHeight : height
1814
-
1815
- if (offsetTop != null && scrollTop <= offsetTop) return 'top'
1816
- if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
1817
-
1818
- return false
1819
- }
1820
-
1821
- Affix.prototype.getPinnedOffset = function () {
1822
- if (this.pinnedOffset) return this.pinnedOffset
1823
- this.$element.removeClass(Affix.RESET).addClass('affix')
1824
- var scrollTop = this.$target.scrollTop()
1825
- var position = this.$element.offset()
1826
- return (this.pinnedOffset = position.top - scrollTop)
1827
- }
1828
-
1829
- Affix.prototype.checkPositionWithEventLoop = function () {
1830
- setTimeout($.proxy(this.checkPosition, this), 1)
1831
- }
1832
-
1833
- Affix.prototype.checkPosition = function () {
1834
- if (!this.$element.is(':visible')) return
1835
-
1836
- var height = this.$element.height()
1837
- var offset = this.options.offset
1838
- var offsetTop = offset.top
1839
- var offsetBottom = offset.bottom
1840
- var scrollHeight = Math.max($(document).height(), $(document.body).height())
1841
-
1842
- if (typeof offset != 'object') offsetBottom = offsetTop = offset
1843
- if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
1844
- if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
1845
-
1846
- var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
1847
-
1848
- if (this.affixed != affix) {
1849
- if (this.unpin != null) this.$element.css('top', '')
1850
-
1851
- var affixType = 'affix' + (affix ? '-' + affix : '')
1852
- var e = $.Event(affixType + '.bs.affix')
1853
-
1854
- this.$element.trigger(e)
1855
-
1856
- if (e.isDefaultPrevented()) return
1857
-
1858
- this.affixed = affix
1859
- this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
1860
-
1861
- this.$element
1862
- .removeClass(Affix.RESET)
1863
- .addClass(affixType)
1864
- .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
1865
- }
1866
-
1867
- if (affix == 'bottom') {
1868
- this.$element.offset({
1869
- top: scrollHeight - height - offsetBottom
1870
- })
1871
- }
1872
- }
1873
-
1874
-
1875
- // AFFIX PLUGIN DEFINITION
1876
- // =======================
1877
-
1878
- function Plugin(option) {
1879
- return this.each(function () {
1880
- var $this = $(this)
1881
- var data = $this.data('bs.affix')
1882
- var options = typeof option == 'object' && option
1883
-
1884
- if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
1885
- if (typeof option == 'string') data[option]()
1886
- })
1887
- }
1888
-
1889
- var old = $.fn.affix
1890
-
1891
- $.fn.affix = Plugin
1892
- $.fn.affix.Constructor = Affix
1893
-
1894
-
1895
- // AFFIX NO CONFLICT
1896
- // =================
1897
-
1898
- $.fn.affix.noConflict = function () {
1899
- $.fn.affix = old
1900
- return this
1901
- }
1902
-
1903
-
1904
- // AFFIX DATA-API
1905
- // ==============
1906
-
1907
- $(window).on('load', function () {
1908
- $('[data-spy="affix"]').each(function () {
1909
- var $spy = $(this)
1910
- var data = $spy.data()
1911
-
1912
- data.offset = data.offset || {}
1913
-
1914
- if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
1915
- if (data.offsetTop != null) data.offset.top = data.offsetTop
1916
-
1917
- Plugin.call($spy, data)
1918
- })
1919
- })
1920
-
1921
- }(jQuery);
1922
-
1923
- /* ========================================================================
1924
- * Bootstrap: collapse.js v3.3.5
1925
- * http://getbootstrap.com/javascript/#collapse
1926
- * ========================================================================
1927
- * Copyright 2011-2015 Twitter, Inc.
1928
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1929
- * ======================================================================== */
1930
-
1931
-
1932
- +function ($) {
1933
- 'use strict';
1934
-
1935
- // COLLAPSE PUBLIC CLASS DEFINITION
1936
- // ================================
1937
-
1938
- var Collapse = function (element, options) {
1939
- this.$element = $(element)
1940
- this.options = $.extend({}, Collapse.DEFAULTS, options)
1941
- this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
1942
- '[data-toggle="collapse"][data-target="#' + element.id + '"]')
1943
- this.transitioning = null
1944
-
1945
- if (this.options.parent) {
1946
- this.$parent = this.getParent()
1947
- } else {
1948
- this.addAriaAndCollapsedClass(this.$element, this.$trigger)
1949
- }
1950
-
1951
- if (this.options.toggle) this.toggle()
1952
- }
1953
-
1954
- Collapse.VERSION = '3.3.5'
1955
-
1956
- Collapse.TRANSITION_DURATION = 350
1957
-
1958
- Collapse.DEFAULTS = {
1959
- toggle: true
1960
- }
1961
-
1962
- Collapse.prototype.dimension = function () {
1963
- var hasWidth = this.$element.hasClass('width')
1964
- return hasWidth ? 'width' : 'height'
1965
- }
1966
-
1967
- Collapse.prototype.show = function () {
1968
- if (this.transitioning || this.$element.hasClass('in')) return
1969
-
1970
- var activesData
1971
- var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
1972
-
1973
- if (actives && actives.length) {
1974
- activesData = actives.data('bs.collapse')
1975
- if (activesData && activesData.transitioning) return
1976
- }
1977
-
1978
- var startEvent = $.Event('show.bs.collapse')
1979
- this.$element.trigger(startEvent)
1980
- if (startEvent.isDefaultPrevented()) return
1981
-
1982
- if (actives && actives.length) {
1983
- Plugin.call(actives, 'hide')
1984
- activesData || actives.data('bs.collapse', null)
1985
- }
1986
-
1987
- var dimension = this.dimension()
1988
-
1989
- this.$element
1990
- .removeClass('collapse')
1991
- .addClass('collapsing')[dimension](0)
1992
- .attr('aria-expanded', true)
1993
-
1994
- this.$trigger
1995
- .removeClass('collapsed')
1996
- .attr('aria-expanded', true)
1997
-
1998
- this.transitioning = 1
1999
-
2000
- var complete = function () {
2001
- this.$element
2002
- .removeClass('collapsing')
2003
- .addClass('collapse in')[dimension]('')
2004
- this.transitioning = 0
2005
- this.$element
2006
- .trigger('shown.bs.collapse')
2007
- }
2008
-
2009
- if (!$.support.transition) return complete.call(this)
2010
-
2011
- var scrollSize = $.camelCase(['scroll', dimension].join('-'))
2012
-
2013
- this.$element
2014
- .one('bsTransitionEnd', $.proxy(complete, this))
2015
- .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
2016
- }
2017
-
2018
- Collapse.prototype.hide = function () {
2019
- if (this.transitioning || !this.$element.hasClass('in')) return
2020
-
2021
- var startEvent = $.Event('hide.bs.collapse')
2022
- this.$element.trigger(startEvent)
2023
- if (startEvent.isDefaultPrevented()) return
2024
-
2025
- var dimension = this.dimension()
2026
-
2027
- this.$element[dimension](this.$element[dimension]())[0].offsetHeight
2028
-
2029
- this.$element
2030
- .addClass('collapsing')
2031
- .removeClass('collapse in')
2032
- .attr('aria-expanded', false)
2033
-
2034
- this.$trigger
2035
- .addClass('collapsed')
2036
- .attr('aria-expanded', false)
2037
-
2038
- this.transitioning = 1
2039
-
2040
- var complete = function () {
2041
- this.transitioning = 0
2042
- this.$element
2043
- .removeClass('collapsing')
2044
- .addClass('collapse')
2045
- .trigger('hidden.bs.collapse')
2046
- }
2047
-
2048
- if (!$.support.transition) return complete.call(this)
2049
-
2050
- this.$element
2051
- [dimension](0)
2052
- .one('bsTransitionEnd', $.proxy(complete, this))
2053
- .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
2054
- }
2055
-
2056
- Collapse.prototype.toggle = function () {
2057
- this[this.$element.hasClass('in') ? 'hide' : 'show']()
2058
- }
2059
-
2060
- Collapse.prototype.getParent = function () {
2061
- return $(this.options.parent)
2062
- .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
2063
- .each($.proxy(function (i, element) {
2064
- var $element = $(element)
2065
- this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
2066
- }, this))
2067
- .end()
2068
- }
2069
-
2070
- Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
2071
- var isOpen = $element.hasClass('in')
2072
-
2073
- $element.attr('aria-expanded', isOpen)
2074
- $trigger
2075
- .toggleClass('collapsed', !isOpen)
2076
- .attr('aria-expanded', isOpen)
2077
- }
2078
-
2079
- function getTargetFromTrigger($trigger) {
2080
- var href
2081
- var target = $trigger.attr('data-target')
2082
- || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
2083
-
2084
- return $(target)
2085
- }
2086
-
2087
-
2088
- // COLLAPSE PLUGIN DEFINITION
2089
- // ==========================
2090
-
2091
- function Plugin(option) {
2092
- return this.each(function () {
2093
- var $this = $(this)
2094
- var data = $this.data('bs.collapse')
2095
- var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
2096
-
2097
- if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
2098
- if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
2099
- if (typeof option == 'string') data[option]()
2100
- })
2101
- }
2102
-
2103
- var old = $.fn.collapse
2104
-
2105
- $.fn.collapse = Plugin
2106
- $.fn.collapse.Constructor = Collapse
2107
-
2108
-
2109
- // COLLAPSE NO CONFLICT
2110
- // ====================
2111
-
2112
- $.fn.collapse.noConflict = function () {
2113
- $.fn.collapse = old
2114
- return this
2115
- }
2116
-
2117
-
2118
- // COLLAPSE DATA-API
2119
- // =================
2120
-
2121
- $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
2122
- var $this = $(this)
2123
-
2124
- if (!$this.attr('data-target')) e.preventDefault()
2125
-
2126
- var $target = getTargetFromTrigger($this)
2127
- var data = $target.data('bs.collapse')
2128
- var option = data ? 'toggle' : $this.data()
2129
-
2130
- Plugin.call($target, option)
2131
- })
2132
-
2133
- }(jQuery);
2134
-
2135
- /* ========================================================================
2136
- * Bootstrap: scrollspy.js v3.3.5
2137
- * http://getbootstrap.com/javascript/#scrollspy
2138
- * ========================================================================
2139
- * Copyright 2011-2015 Twitter, Inc.
2140
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2141
- * ======================================================================== */
2142
-
2143
-
2144
- +function ($) {
2145
- 'use strict';
2146
-
2147
- // SCROLLSPY CLASS DEFINITION
2148
- // ==========================
2149
-
2150
- function ScrollSpy(element, options) {
2151
- this.$body = $(document.body)
2152
- this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
2153
- this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
2154
- this.selector = (this.options.target || '') + ' .nav li > a'
2155
- this.offsets = []
2156
- this.targets = []
2157
- this.activeTarget = null
2158
- this.scrollHeight = 0
2159
-
2160
- this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
2161
- this.refresh()
2162
- this.process()
2163
- }
2164
-
2165
- ScrollSpy.VERSION = '3.3.5'
2166
-
2167
- ScrollSpy.DEFAULTS = {
2168
- offset: 10
2169
- }
2170
-
2171
- ScrollSpy.prototype.getScrollHeight = function () {
2172
- return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
2173
- }
2174
-
2175
- ScrollSpy.prototype.refresh = function () {
2176
- var that = this
2177
- var offsetMethod = 'offset'
2178
- var offsetBase = 0
2179
-
2180
- this.offsets = []
2181
- this.targets = []
2182
- this.scrollHeight = this.getScrollHeight()
2183
-
2184
- if (!$.isWindow(this.$scrollElement[0])) {
2185
- offsetMethod = 'position'
2186
- offsetBase = this.$scrollElement.scrollTop()
2187
- }
2188
-
2189
- this.$body
2190
- .find(this.selector)
2191
- .map(function () {
2192
- var $el = $(this)
2193
- var href = $el.data('target') || $el.attr('href')
2194
- var $href = /^#./.test(href) && $(href)
2195
-
2196
- return ($href
2197
- && $href.length
2198
- && $href.is(':visible')
2199
- && [[$href[offsetMethod]().top + offsetBase, href]]) || null
2200
- })
2201
- .sort(function (a, b) { return a[0] - b[0] })
2202
- .each(function () {
2203
- that.offsets.push(this[0])
2204
- that.targets.push(this[1])
2205
- })
2206
- }
2207
-
2208
- ScrollSpy.prototype.process = function () {
2209
- var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
2210
- var scrollHeight = this.getScrollHeight()
2211
- var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
2212
- var offsets = this.offsets
2213
- var targets = this.targets
2214
- var activeTarget = this.activeTarget
2215
- var i
2216
-
2217
- if (this.scrollHeight != scrollHeight) {
2218
- this.refresh()
2219
- }
2220
-
2221
- if (scrollTop >= maxScroll) {
2222
- return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
2223
- }
2224
-
2225
- if (activeTarget && scrollTop < offsets[0]) {
2226
- this.activeTarget = null
2227
- return this.clear()
2228
- }
2229
-
2230
- for (i = offsets.length; i--;) {
2231
- activeTarget != targets[i]
2232
- && scrollTop >= offsets[i]
2233
- && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
2234
- && this.activate(targets[i])
2235
- }
2236
- }
2237
-
2238
- ScrollSpy.prototype.activate = function (target) {
2239
- this.activeTarget = target
2240
-
2241
- this.clear()
2242
-
2243
- var selector = this.selector +
2244
- '[data-target="' + target + '"],' +
2245
- this.selector + '[href="' + target + '"]'
2246
-
2247
- var active = $(selector)
2248
- .parents('li')
2249
- .addClass('active')
2250
-
2251
- if (active.parent('.dropdown-menu').length) {
2252
- active = active
2253
- .closest('li.dropdown')
2254
- .addClass('active')
2255
- }
2256
-
2257
- active.trigger('activate.bs.scrollspy')
2258
- }
2259
-
2260
- ScrollSpy.prototype.clear = function () {
2261
- $(this.selector)
2262
- .parentsUntil(this.options.target, '.active')
2263
- .removeClass('active')
2264
- }
2265
-
2266
-
2267
- // SCROLLSPY PLUGIN DEFINITION
2268
- // ===========================
2269
-
2270
- function Plugin(option) {
2271
- return this.each(function () {
2272
- var $this = $(this)
2273
- var data = $this.data('bs.scrollspy')
2274
- var options = typeof option == 'object' && option
2275
-
2276
- if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
2277
- if (typeof option == 'string') data[option]()
2278
- })
2279
- }
2280
-
2281
- var old = $.fn.scrollspy
2282
-
2283
- $.fn.scrollspy = Plugin
2284
- $.fn.scrollspy.Constructor = ScrollSpy
2285
-
2286
-
2287
- // SCROLLSPY NO CONFLICT
2288
- // =====================
2289
-
2290
- $.fn.scrollspy.noConflict = function () {
2291
- $.fn.scrollspy = old
2292
- return this
2293
- }
2294
-
2295
-
2296
- // SCROLLSPY DATA-API
2297
- // ==================
2298
-
2299
- $(window).on('load.bs.scrollspy.data-api', function () {
2300
- $('[data-spy="scroll"]').each(function () {
2301
- var $spy = $(this)
2302
- Plugin.call($spy, $spy.data())
2303
- })
2304
- })
2305
-
2306
- }(jQuery);
2307
-
2308
- /* ========================================================================
2309
- * Bootstrap: transition.js v3.3.5
2310
- * http://getbootstrap.com/javascript/#transitions
2311
- * ========================================================================
2312
- * Copyright 2011-2015 Twitter, Inc.
2313
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2314
- * ======================================================================== */
2315
-
2316
-
2317
- +function ($) {
2318
- 'use strict';
2319
-
2320
- // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
2321
- // ============================================================
2322
-
2323
- function transitionEnd() {
2324
- var el = document.createElement('bootstrap')
2325
-
2326
- var transEndEventNames = {
2327
- WebkitTransition : 'webkitTransitionEnd',
2328
- MozTransition : 'transitionend',
2329
- OTransition : 'oTransitionEnd otransitionend',
2330
- transition : 'transitionend'
2331
- }
2332
-
2333
- for (var name in transEndEventNames) {
2334
- if (el.style[name] !== undefined) {
2335
- return { end: transEndEventNames[name] }
2336
- }
2337
- }
2338
-
2339
- return false // explicit for ie8 ( ._.)
2340
- }
2341
-
2342
- // http://blog.alexmaccaw.com/css-transitions
2343
- $.fn.emulateTransitionEnd = function (duration) {
2344
- var called = false
2345
- var $el = this
2346
- $(this).one('bsTransitionEnd', function () { called = true })
2347
- var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
2348
- setTimeout(callback, duration)
2349
- return this
2350
- }
2351
-
2352
- $(function () {
2353
- $.support.transition = transitionEnd()
2354
-
2355
- if (!$.support.transition) return
2356
-
2357
- $.event.special.bsTransitionEnd = {
2358
- bindType: $.support.transition.end,
2359
- delegateType: $.support.transition.end,
2360
- handle: function (e) {
2361
- if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
2362
- }
2363
- }
2364
- })
2365
-
2366
- }(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/libs/bootstrap/js/bootstrap.min.js DELETED
@@ -1,12 +0,0 @@
1
- /*!
2
- * Bootstrap v3.3.5 (http://getbootstrap.com)
3
- * Copyright 2011-2015 Twitter, Inc.
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- */
6
-
7
- /*!
8
- * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=f4b4c9cb85df757ca08c)
9
- * Config saved to config.json and https://gist.github.com/f4b4c9cb85df757ca08c
10
- */
11
- if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.5",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t(s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.3.5",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target);o.hasClass("btn")||(o=o.closest(".btn")),e.call(o,"toggle"),t(i.target).is('input[type="radio"]')||t(i.target).is('input[type="checkbox"]')||i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s.data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger("hidden.bs.dropdown",s))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.5",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",r)}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("click");var r=" li:not(.disabled):visible a",l=n.find(".dropdown-menu"+r);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].trigger( 'focus' ):this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var o=t(this),n=o.attr("href"),s=t(o.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),a=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},s.data(),o.data());o.is("a")&&i.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(s,a,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.tooltip",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(('function' === typeof(this.options.viewport))?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),i.isInStateTrue()?void 0:(clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide())},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(r);h&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var d=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(h){var f=r,u=this.getPosition(this.$viewport);r="bottom"==r&&d.bottom+c>u.bottom?"top":"top"==r&&d.top-c<u.top?"bottom":"right"==r&&d.right+p>u.width?"left":"left"==r&&d.left-p<u.left?"right":r,s.removeClass(f).addClass(r)}var g=this.getCalculatedOffset(r,d,p,c);this.applyPlacement(g,r);var m=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",m).emulateTransitionEnd(i.TRANSITION_DURATION):m()}},i.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top+=a,e.left+=r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,h=o[0].offsetHeight;"top"==i&&h!=s&&(e.top=e.top+s-h);var d=this.getViewportAdjustedDelta(i,e,l,h);d.left?e.left+=d.left:e.top+=d.top;var p=/top|bottom/.test(i),c=p?2*d.left-n+l:2*d.top-s+h,f=p?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][f],p)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function o(){"in"!=n.hoverState&&s.detach(),n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,s=t(this.$tip),a=t.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),this.hoverState=null,this)},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=o?{top:0,left:0}:e.offset(),a={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},r=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,a,r,s)},i.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.5",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.5",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return i>n?"top":!1;if("bottom"==this.affixed)return null!=i?n+this.unpin<=s.top?!1:"bottom":t-o>=n+a?!1:"bottom";var r=null==this.affixed,l=r?n:s.top,h=r?a:e;return null!=i&&i>=n?"top":null!=o&&l+h>=t-o?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.5",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l]);
12
- }}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":n.data();i.call(s,r)})}(jQuery),+function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.3.5",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(void 0===n[t+1]||e<n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var o=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=o,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
assets/libs/bootstrap/js/index.php DELETED
@@ -1,2 +0,0 @@
1
- <?php
2
- // Silence is golden.
 
 
assets/libs/material-design-icons/fonts/google-material-design-icons.woff2 ADDED
Binary file
assets/libs/material-design-icons/material-design-icons.css ADDED
@@ -0,0 +1,2207 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Font Icons: https://fonts.google.com/icons?selected=Material+Icons */
2
+ /* License: Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt */
3
+ @font-face {
4
+ font-family: 'wpbc-material-icons';
5
+ font-style: normal;
6
+ font-weight: 400;
7
+ src: url("./fonts/google-material-design-icons.woff2") format('woff2');
8
+ }
9
+ .wpbc_icn::before,
10
+ [class^="wpbc_icn_"]::before,
11
+ [class*=" wpbc_icn_"]::before {
12
+ font-family: 'wpbc-material-icons';
13
+ display: inline-block;
14
+ font-variant: normal;
15
+ font-weight: normal;
16
+ font-style: normal;
17
+ font-size: 16px;
18
+ line-height: 1;
19
+ letter-spacing: normal;
20
+ text-transform: none;
21
+ white-space: nowrap;
22
+ word-wrap: normal;
23
+ direction: ltr;
24
+ vertical-align: -.20125em;
25
+ /* Support for IE. */
26
+ font-feature-settings: 'liga';
27
+ -moz-font-feature-settings: 'liga';
28
+ /* Support for all WebKit browsers. */
29
+ -webkit-font-smoothing: antialiased;
30
+ /* Support for Safari and Chrome. */
31
+ text-rendering: optimizeLegibility;
32
+ /* Support for Firefox. */
33
+ -moz-osx-font-smoothing: grayscale;
34
+ }
35
+ .wpbc_icn_10k::before { content: "\e951"; }
36
+ .wpbc_icn_10mp::before { content: "\e952"; }
37
+ .wpbc_icn_11mp::before { content: "\e953"; }
38
+ .wpbc_icn_123::before { content: "\eb8d"; }
39
+ .wpbc_icn_12mp::before { content: "\e954"; }
40
+ .wpbc_icn_13mp::before { content: "\e955"; }
41
+ .wpbc_icn_14mp::before { content: "\e956"; }
42
+ .wpbc_icn_15mp::before { content: "\e957"; }
43
+ .wpbc_icn_16mp::before { content: "\e958"; }
44
+ .wpbc_icn_17mp::before { content: "\e959"; }
45
+ .wpbc_icn_18mp::before { content: "\e95a"; }
46
+ .wpbc_icn_19mp::before { content: "\e95b"; }
47
+ .wpbc_icn_1k::before { content: "\e95c"; }
48
+ .wpbc_icn_1k_plus::before { content: "\e95d"; }
49
+ .wpbc_icn_1x_mobiledata::before { content: "\efcd"; }
50
+ .wpbc_icn_20mp::before { content: "\e95e"; }
51
+ .wpbc_icn_21mp::before { content: "\e95f"; }
52
+ .wpbc_icn_22mp::before { content: "\e960"; }
53
+ .wpbc_icn_23mp::before { content: "\e961"; }
54
+ .wpbc_icn_24mp::before { content: "\e962"; }
55
+ .wpbc_icn_2k::before { content: "\e963"; }
56
+ .wpbc_icn_2k_plus::before { content: "\e964"; }
57
+ .wpbc_icn_2mp::before { content: "\e965"; }
58
+ .wpbc_icn_30fps::before { content: "\efce"; }
59
+ .wpbc_icn_30fps_select::before { content: "\efcf"; }
60
+ .wpbc_icn_360::before { content: "\e577"; }
61
+ .wpbc_icn_3d_rotation::before { content: "\e84d"; }
62
+ .wpbc_icn_3g_mobiledata::before { content: "\efd0"; }
63
+ .wpbc_icn_3k::before { content: "\e966"; }
64
+ .wpbc_icn_3k_plus::before { content: "\e967"; }
65
+ .wpbc_icn_3mp::before { content: "\e968"; }
66
+ .wpbc_icn_3p::before { content: "\efd1"; }
67
+ .wpbc_icn_4g_mobiledata::before { content: "\efd2"; }
68
+ .wpbc_icn_4g_plus_mobiledata::before { content: "\efd3"; }
69
+ .wpbc_icn_4k::before { content: "\e072"; }
70
+ .wpbc_icn_4k_plus::before { content: "\e969"; }
71
+ .wpbc_icn_4mp::before { content: "\e96a"; }
72
+ .wpbc_icn_5g::before { content: "\ef38"; }
73
+ .wpbc_icn_5k::before { content: "\e96b"; }
74
+ .wpbc_icn_5k_plus::before { content: "\e96c"; }
75
+ .wpbc_icn_5mp::before { content: "\e96d"; }
76
+ .wpbc_icn_60fps::before { content: "\efd4"; }
77
+ .wpbc_icn_60fps_select::before { content: "\efd5"; }
78
+ .wpbc_icn_6_ft_apart::before { content: "\f21e"; }
79
+ .wpbc_icn_6k::before { content: "\e96e"; }
80
+ .wpbc_icn_6k_plus::before { content: "\e96f"; }
81
+ .wpbc_icn_6mp::before { content: "\e970"; }
82
+ .wpbc_icn_7k::before { content: "\e971"; }
83
+ .wpbc_icn_7k_plus::before { content: "\e972"; }
84
+ .wpbc_icn_7mp::before { content: "\e973"; }
85
+ .wpbc_icn_8k::before { content: "\e974"; }
86
+ .wpbc_icn_8k_plus::before { content: "\e975"; }
87
+ .wpbc_icn_8mp::before { content: "\e976"; }
88
+ .wpbc_icn_9k::before { content: "\e977"; }
89
+ .wpbc_icn_9k_plus::before { content: "\e978"; }
90
+ .wpbc_icn_9mp::before { content: "\e979"; }
91
+ .wpbc_icn_abc::before { content: "\eb94"; }
92
+ .wpbc_icn_ac_unit::before { content: "\eb3b"; }
93
+ .wpbc_icn_access_alarm::before { content: "\e190"; }
94
+ .wpbc_icn_access_alarms::before { content: "\e191"; }
95
+ .wpbc_icn_access_time::before { content: "\e192"; }
96
+ .wpbc_icn_access_time_filled::before { content: "\efd6"; }
97
+ .wpbc_icn_accessibility::before { content: "\e84e"; }
98
+ .wpbc_icn_accessibility_new::before { content: "\e92c"; }
99
+ .wpbc_icn_accessible::before { content: "\e914"; }
100
+ .wpbc_icn_accessible_forward::before { content: "\e934"; }
101
+ .wpbc_icn_account_balance::before { content: "\e84f"; }
102
+ .wpbc_icn_account_balance_wallet::before { content: "\e850"; }
103
+ .wpbc_icn_account_box::before { content: "\e851"; }
104
+ .wpbc_icn_account_circle::before { content: "\e853"; }
105
+ .wpbc_icn_account_tree::before { content: "\e97a"; }
106
+ .wpbc_icn_ad_units::before { content: "\ef39"; }
107
+ .wpbc_icn_adb::before { content: "\e60e"; }
108
+ .wpbc_icn_add::before { content: "\e145"; }
109
+ .wpbc_icn_add_a_photo::before { content: "\e439"; }
110
+ .wpbc_icn_add_alarm::before { content: "\e193"; }
111
+ .wpbc_icn_add_alert::before { content: "\e003"; }
112
+ .wpbc_icn_add_box::before { content: "\e146"; }
113
+ .wpbc_icn_add_business::before { content: "\e729"; }
114
+ .wpbc_icn_add_call::before { content: "\e0e8"; }
115
+ .wpbc_icn_add_card::before { content: "\eb86"; }
116
+ .wpbc_icn_add_chart::before { content: "\e97b"; }
117
+ .wpbc_icn_add_circle::before { content: "\e147"; }
118
+ .wpbc_icn_add_circle_outline::before { content: "\e148"; }
119
+ .wpbc_icn_add_comment::before { content: "\e266"; }
120
+ .wpbc_icn_add_ic_call::before { content: "\e97c"; }
121
+ .wpbc_icn_add_link::before { content: "\e178"; }
122
+ .wpbc_icn_add_location::before { content: "\e567"; }
123
+ .wpbc_icn_add_location_alt::before { content: "\ef3a"; }
124
+ .wpbc_icn_add_moderator::before { content: "\e97d"; }
125
+ .wpbc_icn_add_photo_alternate::before { content: "\e43e"; }
126
+ .wpbc_icn_add_reaction::before { content: "\e1d3"; }
127
+ .wpbc_icn_add_road::before { content: "\ef3b"; }
128
+ .wpbc_icn_add_shopping_cart::before { content: "\e854"; }
129
+ .wpbc_icn_add_task::before { content: "\f23a"; }
130
+ .wpbc_icn_add_to_drive::before { content: "\e65c"; }
131
+ .wpbc_icn_add_to_home_screen::before { content: "\e1fe"; }
132
+ .wpbc_icn_add_to_photos::before { content: "\e39d"; }
133
+ .wpbc_icn_add_to_queue::before { content: "\e05c"; }
134
+ .wpbc_icn_addchart::before { content: "\ef3c"; }
135
+ .wpbc_icn_adf_scanner::before { content: "\eada"; }
136
+ .wpbc_icn_adjust::before { content: "\e39e"; }
137
+ .wpbc_icn_admin_panel_settings::before { content: "\ef3d"; }
138
+ .wpbc_icn_adobe::before { content: "\ea96"; }
139
+ .wpbc_icn_ads_click::before { content: "\e762"; }
140
+ .wpbc_icn_agriculture::before { content: "\ea79"; }
141
+ .wpbc_icn_air::before { content: "\efd8"; }
142
+ .wpbc_icn_airline_seat_flat::before { content: "\e630"; }
143
+ .wpbc_icn_airline_seat_flat_angled::before { content: "\e631"; }
144
+ .wpbc_icn_airline_seat_individual_suite::before { content: "\e632"; }
145
+ .wpbc_icn_airline_seat_legroom_extra::before { content: "\e633"; }
146
+ .wpbc_icn_airline_seat_legroom_normal::before { content: "\e634"; }
147
+ .wpbc_icn_airline_seat_legroom_reduced::before { content: "\e635"; }
148
+ .wpbc_icn_airline_seat_recline_extra::before { content: "\e636"; }
149
+ .wpbc_icn_airline_seat_recline_normal::before { content: "\e637"; }
150
+ .wpbc_icn_airline_stops::before { content: "\e7d0"; }
151
+ .wpbc_icn_airlines::before { content: "\e7ca"; }
152
+ .wpbc_icn_airplane_ticket::before { content: "\efd9"; }
153
+ .wpbc_icn_airplanemode_active::before { content: "\e195"; }
154
+ .wpbc_icn_airplanemode_inactive::before { content: "\e194"; }
155
+ .wpbc_icn_airplanemode_off::before { content: "\e194"; }
156
+ .wpbc_icn_airplanemode_on::before { content: "\e195"; }
157
+ .wpbc_icn_airplay::before { content: "\e055"; }
158
+ .wpbc_icn_airport_shuttle::before { content: "\eb3c"; }
159
+ .wpbc_icn_alarm::before { content: "\e855"; }
160
+ .wpbc_icn_alarm_add::before { content: "\e856"; }
161
+ .wpbc_icn_alarm_off::before { content: "\e857"; }
162
+ .wpbc_icn_alarm_on::before { content: "\e858"; }
163
+ .wpbc_icn_album::before { content: "\e019"; }
164
+ .wpbc_icn_align_horizontal_center::before { content: "\e00f"; }
165
+ .wpbc_icn_align_horizontal_left::before { content: "\e00d"; }
166
+ .wpbc_icn_align_horizontal_right::before { content: "\e010"; }
167
+ .wpbc_icn_align_vertical_bottom::before { content: "\e015"; }
168
+ .wpbc_icn_align_vertical_center::before { content: "\e011"; }
169
+ .wpbc_icn_align_vertical_top::before { content: "\e00c"; }
170
+ .wpbc_icn_all_inbox::before { content: "\e97f"; }
171
+ .wpbc_icn_all_inclusive::before { content: "\eb3d"; }
172
+ .wpbc_icn_all_out::before { content: "\e90b"; }
173
+ .wpbc_icn_alt_route::before { content: "\f184"; }
174
+ .wpbc_icn_alternate_email::before { content: "\e0e6"; }
175
+ .wpbc_icn_amp_stories::before { content: "\ea13"; }
176
+ .wpbc_icn_analytics::before { content: "\ef3e"; }
177
+ .wpbc_icn_anchor::before { content: "\f1cd"; }
178
+ .wpbc_icn_android::before { content: "\e859"; }
179
+ .wpbc_icn_animation::before { content: "\e71c"; }
180
+ .wpbc_icn_announcement::before { content: "\e85a"; }
181
+ .wpbc_icn_aod::before { content: "\efda"; }
182
+ .wpbc_icn_apartment::before { content: "\ea40"; }
183
+ .wpbc_icn_api::before { content: "\f1b7"; }
184
+ .wpbc_icn_app_blocking::before { content: "\ef3f"; }
185
+ .wpbc_icn_app_registration::before { content: "\ef40"; }
186
+ .wpbc_icn_app_settings_alt::before { content: "\ef41"; }
187
+ .wpbc_icn_app_shortcut::before { content: "\eae4"; }
188
+ .wpbc_icn_apple::before { content: "\ea80"; }
189
+ .wpbc_icn_approval::before { content: "\e982"; }
190
+ .wpbc_icn_apps::before { content: "\e5c3"; }
191
+ .wpbc_icn_apps_outage::before { content: "\e7cc"; }
192
+ .wpbc_icn_architecture::before { content: "\ea3b"; }
193
+ .wpbc_icn_archive::before { content: "\e149"; }
194
+ .wpbc_icn_area_chart::before { content: "\e770"; }
195
+ .wpbc_icn_arrow_back::before { content: "\e5c4"; }
196
+ .wpbc_icn_arrow_back_ios::before { content: "\e5e0"; }
197
+ .wpbc_icn_arrow_back_ios_new::before { content: "\e2ea"; }
198
+ .wpbc_icn_arrow_circle_down::before { content: "\f181"; }
199
+ .wpbc_icn_arrow_circle_left::before { content: "\eaa7"; }
200
+ .wpbc_icn_arrow_circle_right::before { content: "\eaaa"; }
201
+ .wpbc_icn_arrow_circle_up::before { content: "\f182"; }
202
+ .wpbc_icn_arrow_downward::before { content: "\e5db"; }
203
+ .wpbc_icn_arrow_drop_down::before { content: "\e5c5"; }
204
+ .wpbc_icn_arrow_drop_down_circle::before { content: "\e5c6"; }
205
+ .wpbc_icn_arrow_drop_up::before { content: "\e5c7"; }
206
+ .wpbc_icn_arrow_forward::before { content: "\e5c8"; }
207
+ .wpbc_icn_arrow_forward_ios::before { content: "\e5e1"; }
208
+ .wpbc_icn_arrow_left::before { content: "\e5de"; }
209
+ .wpbc_icn_arrow_right::before { content: "\e5df"; }
210
+ .wpbc_icn_arrow_right_alt::before { content: "\e941"; }
211
+ .wpbc_icn_arrow_upward::before { content: "\e5d8"; }
212
+ .wpbc_icn_art_track::before { content: "\e060"; }
213
+ .wpbc_icn_article::before { content: "\ef42"; }
214
+ .wpbc_icn_aspect_ratio::before { content: "\e85b"; }
215
+ .wpbc_icn_assessment::before { content: "\e85c"; }
216
+ .wpbc_icn_assignment::before { content: "\e85d"; }
217
+ .wpbc_icn_assignment_ind::before { content: "\e85e"; }
218
+ .wpbc_icn_assignment_late::before { content: "\e85f"; }
219
+ .wpbc_icn_assignment_return::before { content: "\e860"; }
220
+ .wpbc_icn_assignment_returned::before { content: "\e861"; }
221
+ .wpbc_icn_assignment_turned_in::before { content: "\e862"; }
222
+ .wpbc_icn_assistant::before { content: "\e39f"; }
223
+ .wpbc_icn_assistant_direction::before { content: "\e988"; }
224
+ .wpbc_icn_assistant_navigation::before { content: "\e989"; }
225
+ .wpbc_icn_assistant_photo::before { content: "\e3a0"; }
226
+ .wpbc_icn_assured_workload::before { content: "\eb6f"; }
227
+ .wpbc_icn_atm::before { content: "\e573"; }
228
+ .wpbc_icn_attach_email::before { content: "\ea5e"; }
229
+ .wpbc_icn_attach_file::before { content: "\e226"; }
230
+ .wpbc_icn_attach_money::before { content: "\e227"; }
231
+ .wpbc_icn_attachment::before { content: "\e2bc"; }
232
+ .wpbc_icn_attractions::before { content: "\ea52"; }
233
+ .wpbc_icn_attribution::before { content: "\efdb"; }
234
+ .wpbc_icn_audio_file::before { content: "\eb82"; }
235
+ .wpbc_icn_audiotrack::before { content: "\e3a1"; }
236
+ .wpbc_icn_auto_awesome::before { content: "\e65f"; }
237
+ .wpbc_icn_auto_awesome_mosaic::before { content: "\e660"; }
238
+ .wpbc_icn_auto_awesome_motion::before { content: "\e661"; }
239
+ .wpbc_icn_auto_delete::before { content: "\ea4c"; }
240
+ .wpbc_icn_auto_fix_high::before { content: "\e663"; }
241
+ .wpbc_icn_auto_fix_normal::before { content: "\e664"; }
242
+ .wpbc_icn_auto_fix_off::before { content: "\e665"; }
243
+ .wpbc_icn_auto_graph::before { content: "\e4fb"; }
244
+ .wpbc_icn_auto_mode::before { content: "\ec20"; }
245
+ .wpbc_icn_auto_stories::before { content: "\e666"; }
246
+ .wpbc_icn_autofps_select::before { content: "\efdc"; }
247
+ .wpbc_icn_autorenew::before { content: "\e863"; }
248
+ .wpbc_icn_av_timer::before { content: "\e01b"; }
249
+ .wpbc_icn_baby_changing_station::before { content: "\f19b"; }
250
+ .wpbc_icn_back_hand::before { content: "\e764"; }
251
+ .wpbc_icn_backpack::before { content: "\f19c"; }
252
+ .wpbc_icn_backspace::before { content: "\e14a"; }
253
+ .wpbc_icn_backup::before { content: "\e864"; }
254
+ .wpbc_icn_backup_table::before { content: "\ef43"; }
255
+ .wpbc_icn_badge::before { content: "\ea67"; }
256
+ .wpbc_icn_bakery_dining::before { content: "\ea53"; }
257
+ .wpbc_icn_balance::before { content: "\eaf6"; }
258
+ .wpbc_icn_balcony::before { content: "\e58f"; }
259
+ .wpbc_icn_ballot::before { content: "\e172"; }
260
+ .wpbc_icn_bar_chart::before { content: "\e26b"; }
261
+ .wpbc_icn_batch_prediction::before { content: "\f0f5"; }
262
+ .wpbc_icn_bathroom::before { content: "\efdd"; }
263
+ .wpbc_icn_bathtub::before { content: "\ea41"; }
264
+ .wpbc_icn_battery_0_bar::before { content: "\ebdc"; }
265
+ .wpbc_icn_battery_1_bar::before { content: "\ebd9"; }
266
+ .wpbc_icn_battery_2_bar::before { content: "\ebe0"; }
267
+ .wpbc_icn_battery_3_bar::before { content: "\ebdd"; }
268
+ .wpbc_icn_battery_4_bar::before { content: "\ebe2"; }
269
+ .wpbc_icn_battery_5_bar::before { content: "\ebd4"; }
270
+ .wpbc_icn_battery_6_bar::before { content: "\ebd2"; }
271
+ .wpbc_icn_battery_alert::before { content: "\e19c"; }
272
+ .wpbc_icn_battery_charging_full::before { content: "\e1a3"; }
273
+ .wpbc_icn_battery_full::before { content: "\e1a4"; }
274
+ .wpbc_icn_battery_saver::before { content: "\efde"; }
275
+ .wpbc_icn_battery_std::before { content: "\e1a5"; }
276
+ .wpbc_icn_battery_unknown::before { content: "\e1a6"; }
277
+ .wpbc_icn_beach_access::before { content: "\eb3e"; }
278
+ .wpbc_icn_bed::before { content: "\efdf"; }
279
+ .wpbc_icn_bedroom_baby::before { content: "\efe0"; }
280
+ .wpbc_icn_bedroom_child::before { content: "\efe1"; }
281
+ .wpbc_icn_bedroom_parent::before { content: "\efe2"; }
282
+ .wpbc_icn_bedtime::before { content: "\ef44"; }
283
+ .wpbc_icn_bedtime_off::before { content: "\eb76"; }
284
+ .wpbc_icn_beenhere::before { content: "\e52d"; }
285
+ .wpbc_icn_bento::before { content: "\f1f4"; }
286
+ .wpbc_icn_bike_scooter::before { content: "\ef45"; }
287
+ .wpbc_icn_biotech::before { content: "\ea3a"; }
288
+ .wpbc_icn_blender::before { content: "\efe3"; }
289
+ .wpbc_icn_blinds::before { content: "\e286"; }
290
+ .wpbc_icn_blinds_closed::before { content: "\ec1f"; }
291
+ .wpbc_icn_block::before { content: "\e14b"; }
292
+ .wpbc_icn_block_flipped::before { content: "\ef46"; }
293
+ .wpbc_icn_bloodtype::before { content: "\efe4"; }
294
+ .wpbc_icn_bluetooth::before { content: "\e1a7"; }
295
+ .wpbc_icn_bluetooth_audio::before { content: "\e60f"; }
296
+ .wpbc_icn_bluetooth_connected::before { content: "\e1a8"; }
297
+ .wpbc_icn_bluetooth_disabled::before { content: "\e1a9"; }
298
+ .wpbc_icn_bluetooth_drive::before { content: "\efe5"; }
299
+ .wpbc_icn_bluetooth_searching::before { content: "\e1aa"; }
300
+ .wpbc_icn_blur_circular::before { content: "\e3a2"; }
301
+ .wpbc_icn_blur_linear::before { content: "\e3a3"; }
302
+ .wpbc_icn_blur_off::before { content: "\e3a4"; }
303
+ .wpbc_icn_blur_on::before { content: "\e3a5"; }
304
+ .wpbc_icn_bolt::before { content: "\ea0b"; }
305
+ .wpbc_icn_book::before { content: "\e865"; }
306
+ .wpbc_icn_book_online::before { content: "\f217"; }
307
+ .wpbc_icn_bookmark::before { content: "\e866"; }
308
+ .wpbc_icn_bookmark_add::before { content: "\e598"; }
309
+ .wpbc_icn_bookmark_added::before { content: "\e599"; }
310
+ .wpbc_icn_bookmark_border::before { content: "\e867"; }
311
+ .wpbc_icn_bookmark_outline::before { content: "\e867"; }
312
+ .wpbc_icn_bookmark_remove::before { content: "\e59a"; }
313
+ .wpbc_icn_bookmarks::before { content: "\e98b"; }
314
+ .wpbc_icn_border_all::before { content: "\e228"; }
315
+ .wpbc_icn_border_bottom::before { content: "\e229"; }
316
+ .wpbc_icn_border_clear::before { content: "\e22a"; }
317
+ .wpbc_icn_border_color::before { content: "\e22b"; }
318
+ .wpbc_icn_border_horizontal::before { content: "\e22c"; }
319
+ .wpbc_icn_border_inner::before { content: "\e22d"; }
320
+ .wpbc_icn_border_left::before { content: "\e22e"; }
321
+ .wpbc_icn_border_outer::before { content: "\e22f"; }
322
+ .wpbc_icn_border_right::before { content: "\e230"; }
323
+ .wpbc_icn_border_style::before { content: "\e231"; }
324
+ .wpbc_icn_border_top::before { content: "\e232"; }
325
+ .wpbc_icn_border_vertical::before { content: "\e233"; }
326
+ .wpbc_icn_boy::before { content: "\eb67"; }
327
+ .wpbc_icn_branding_watermark::before { content: "\e06b"; }
328
+ .wpbc_icn_breakfast_dining::before { content: "\ea54"; }
329
+ .wpbc_icn_brightness_1::before { content: "\e3a6"; }
330
+ .wpbc_icn_brightness_2::before { content: "\e3a7"; }
331
+ .wpbc_icn_brightness_3::before { content: "\e3a8"; }
332
+ .wpbc_icn_brightness_4::before { content: "\e3a9"; }
333
+ .wpbc_icn_brightness_5::before { content: "\e3aa"; }
334
+ .wpbc_icn_brightness_6::before { content: "\e3ab"; }
335
+ .wpbc_icn_brightness_7::before { content: "\e3ac"; }
336
+ .wpbc_icn_brightness_auto::before { content: "\e1ab"; }
337
+ .wpbc_icn_brightness_high::before { content: "\e1ac"; }
338
+ .wpbc_icn_brightness_low::before { content: "\e1ad"; }
339
+ .wpbc_icn_brightness_medium::before { content: "\e1ae"; }
340
+ .wpbc_icn_broken_image::before { content: "\e3ad"; }
341
+ .wpbc_icn_browse_gallery::before { content: "\ebd1"; }
342
+ .wpbc_icn_browser_not_supported::before { content: "\ef47"; }
343
+ .wpbc_icn_browser_updated::before { content: "\e7cf"; }
344
+ .wpbc_icn_brunch_dining::before { content: "\ea73"; }
345
+ .wpbc_icn_brush::before { content: "\e3ae"; }
346
+ .wpbc_icn_bubble_chart::before { content: "\e6dd"; }
347
+ .wpbc_icn_bug_report::before { content: "\e868"; }
348
+ .wpbc_icn_build::before { content: "\e869"; }
349
+ .wpbc_icn_build_circle::before { content: "\ef48"; }
350
+ .wpbc_icn_bungalow::before { content: "\e591"; }
351
+ .wpbc_icn_burst_mode::before { content: "\e43c"; }
352
+ .wpbc_icn_bus_alert::before { content: "\e98f"; }
353
+ .wpbc_icn_business::before { content: "\e0af"; }
354
+ .wpbc_icn_business_center::before { content: "\eb3f"; }
355
+ .wpbc_icn_cabin::before { content: "\e589"; }
356
+ .wpbc_icn_cable::before { content: "\efe6"; }
357
+ .wpbc_icn_cached::before { content: "\e86a"; }
358
+ .wpbc_icn_cake::before { content: "\e7e9"; }
359
+ .wpbc_icn_calculate::before { content: "\ea5f"; }
360
+ .wpbc_icn_calendar_month::before { content: "\ebcc"; }
361
+ .wpbc_icn_calendar_today::before { content: "\e935"; }
362
+ .wpbc_icn_calendar_view_day::before { content: "\e936"; }
363
+ .wpbc_icn_calendar_view_month::before { content: "\efe7"; }
364
+ .wpbc_icn_calendar_view_week::before { content: "\efe8"; }
365
+ .wpbc_icn_call::before { content: "\e0b0"; }
366
+ .wpbc_icn_call_end::before { content: "\e0b1"; }
367
+ .wpbc_icn_call_made::before { content: "\e0b2"; }
368
+ .wpbc_icn_call_merge::before { content: "\e0b3"; }
369
+ .wpbc_icn_call_missed::before { content: "\e0b4"; }
370
+ .wpbc_icn_call_missed_outgoing::before { content: "\e0e4"; }
371
+ .wpbc_icn_call_received::before { content: "\e0b5"; }
372
+ .wpbc_icn_call_split::before { content: "\e0b6"; }
373
+ .wpbc_icn_call_to_action::before { content: "\e06c"; }
374
+ .wpbc_icn_camera::before { content: "\e3af"; }
375
+ .wpbc_icn_camera_alt::before { content: "\e3b0"; }
376
+ .wpbc_icn_camera_enhance::before { content: "\e8fc"; }
377
+ .wpbc_icn_camera_front::before { content: "\e3b1"; }
378
+ .wpbc_icn_camera_indoor::before { content: "\efe9"; }
379
+ .wpbc_icn_camera_outdoor::before { content: "\efea"; }
380
+ .wpbc_icn_camera_rear::before { content: "\e3b2"; }
381
+ .wpbc_icn_camera_roll::before { content: "\e3b3"; }
382
+ .wpbc_icn_cameraswitch::before { content: "\efeb"; }
383
+ .wpbc_icn_campaign::before { content: "\ef49"; }
384
+ .wpbc_icn_cancel::before { content: "\e5c9"; }
385
+ .wpbc_icn_cancel_presentation::before { content: "\e0e9"; }
386
+ .wpbc_icn_cancel_schedule_send::before { content: "\ea39"; }
387
+ .wpbc_icn_candlestick_chart::before { content: "\ead4"; }
388
+ .wpbc_icn_car_crash::before { content: "\ebf2"; }
389
+ .wpbc_icn_car_rental::before { content: "\ea55"; }
390
+ .wpbc_icn_car_repair::before { content: "\ea56"; }
391
+ .wpbc_icn_card_giftcard::before { content: "\e8f6"; }
392
+ .wpbc_icn_card_membership::before { content: "\e8f7"; }
393
+ .wpbc_icn_card_travel::before { content: "\e8f8"; }
394
+ .wpbc_icn_carpenter::before { content: "\f1f8"; }
395
+ .wpbc_icn_cases::before { content: "\e992"; }
396
+ .wpbc_icn_casino::before { content: "\eb40"; }
397
+ .wpbc_icn_cast::before { content: "\e307"; }
398
+ .wpbc_icn_cast_connected::before { content: "\e308"; }
399
+ .wpbc_icn_cast_for_education::before { content: "\efec"; }
400
+ .wpbc_icn_castle::before { content: "\eab1"; }
401
+ .wpbc_icn_catching_pokemon::before { content: "\e508"; }
402
+ .wpbc_icn_category::before { content: "\e574"; }
403
+ .wpbc_icn_celebration::before { content: "\ea65"; }
404
+ .wpbc_icn_cell_tower::before { content: "\ebba"; }
405
+ .wpbc_icn_cell_wifi::before { content: "\e0ec"; }
406
+ .wpbc_icn_center_focus_strong::before { content: "\e3b4"; }
407
+ .wpbc_icn_center_focus_weak::before { content: "\e3b5"; }
408
+ .wpbc_icn_chair::before { content: "\efed"; }
409
+ .wpbc_icn_chair_alt::before { content: "\efee"; }
410
+ .wpbc_icn_chalet::before { content: "\e585"; }
411
+ .wpbc_icn_change_circle::before { content: "\e2e7"; }
412
+ .wpbc_icn_change_history::before { content: "\e86b"; }
413
+ .wpbc_icn_charging_station::before { content: "\f19d"; }
414
+ .wpbc_icn_chat::before { content: "\e0b7"; }
415
+ .wpbc_icn_chat_bubble::before { content: "\e0ca"; }
416
+ .wpbc_icn_chat_bubble_outline::before { content: "\e0cb"; }
417
+ .wpbc_icn_check::before { content: "\e5ca"; }
418
+ .wpbc_icn_check_box::before { content: "\e834"; }
419
+ .wpbc_icn_check_box_outline_blank::before { content: "\e835"; }
420
+ .wpbc_icn_check_circle::before { content: "\e86c"; }
421
+ .wpbc_icn_check_circle_outline::before { content: "\e92d"; }
422
+ .wpbc_icn_checklist::before { content: "\e6b1"; }
423
+ .wpbc_icn_checklist_rtl::before { content: "\e6b3"; }
424
+ .wpbc_icn_checkroom::before { content: "\f19e"; }
425
+ .wpbc_icn_chevron_left::before { content: "\e5cb"; }
426
+ .wpbc_icn_chevron_right::before { content: "\e5cc"; }
427
+ .wpbc_icn_child_care::before { content: "\eb41"; }
428
+ .wpbc_icn_child_friendly::before { content: "\eb42"; }
429
+ .wpbc_icn_chrome_reader_mode::before { content: "\e86d"; }
430
+ .wpbc_icn_church::before { content: "\eaae"; }
431
+ .wpbc_icn_circle::before { content: "\ef4a"; }
432
+ .wpbc_icn_circle_notifications::before { content: "\e994"; }
433
+ .wpbc_icn_class::before { content: "\e86e"; }
434
+ .wpbc_icn_clean_hands::before { content: "\f21f"; }
435
+ .wpbc_icn_cleaning_services::before { content: "\f0ff"; }
436
+ .wpbc_icn_clear::before { content: "\e14c"; }
437
+ .wpbc_icn_clear_all::before { content: "\e0b8"; }
438
+ .wpbc_icn_close::before { content: "\e5cd"; }
439
+ .wpbc_icn_close_fullscreen::before { content: "\f1cf"; }
440
+ .wpbc_icn_closed_caption::before { content: "\e01c"; }
441
+ .wpbc_icn_closed_caption_disabled::before { content: "\f1dc"; }
442
+ .wpbc_icn_closed_caption_off::before { content: "\e996"; }
443
+ .wpbc_icn_cloud::before { content: "\e2bd"; }
444
+ .wpbc_icn_cloud_circle::before { content: "\e2be"; }
445
+ .wpbc_icn_cloud_done::before { content: "\e2bf"; }
446
+ .wpbc_icn_cloud_download::before { content: "\e2c0"; }
447
+ .wpbc_icn_cloud_off::before { content: "\e2c1"; }
448
+ .wpbc_icn_cloud_queue::before { content: "\e2c2"; }
449
+ .wpbc_icn_cloud_sync::before { content: "\eb5a"; }
450
+ .wpbc_icn_cloud_upload::before { content: "\e2c3"; }
451
+ .wpbc_icn_cloudy_snowing::before { content: "\e810"; }
452
+ .wpbc_icn_co2::before { content: "\e7b0"; }
453
+ .wpbc_icn_co_present::before { content: "\eaf0"; }
454
+ .wpbc_icn_code::before { content: "\e86f"; }
455
+ .wpbc_icn_code_off::before { content: "\e4f3"; }
456
+ .wpbc_icn_coffee::before { content: "\efef"; }
457
+ .wpbc_icn_coffee_maker::before { content: "\eff0"; }
458
+ .wpbc_icn_collections::before { content: "\e3b6"; }
459
+ .wpbc_icn_collections_bookmark::before { content: "\e431"; }
460
+ .wpbc_icn_color_lens::before { content: "\e3b7"; }
461
+ .wpbc_icn_colorize::before { content: "\e3b8"; }
462
+ .wpbc_icn_comment::before { content: "\e0b9"; }
463
+ .wpbc_icn_comment_bank::before { content: "\ea4e"; }
464
+ .wpbc_icn_comments_disabled::before { content: "\e7a2"; }
465
+ .wpbc_icn_commit::before { content: "\eaf5"; }
466
+ .wpbc_icn_commute::before { content: "\e940"; }
467
+ .wpbc_icn_compare::before { content: "\e3b9"; }
468
+ .wpbc_icn_compare_arrows::before { content: "\e915"; }
469
+ .wpbc_icn_compass_calibration::before { content: "\e57c"; }
470
+ .wpbc_icn_compost::before { content: "\e761"; }
471
+ .wpbc_icn_compress::before { content: "\e94d"; }
472
+ .wpbc_icn_computer::before { content: "\e30a"; }
473
+ .wpbc_icn_confirmation_num::before { content: "\e638"; }
474
+ .wpbc_icn_confirmation_number::before { content: "\e638"; }
475
+ .wpbc_icn_connect_without_contact::before { content: "\f223"; }
476
+ .wpbc_icn_connected_tv::before { content: "\e998"; }
477
+ .wpbc_icn_connecting_airports::before { content: "\e7c9"; }
478
+ .wpbc_icn_construction::before { content: "\ea3c"; }
479
+ .wpbc_icn_contact_mail::before { content: "\e0d0"; }
480
+ .wpbc_icn_contact_page::before { content: "\f22e"; }
481
+ .wpbc_icn_contact_phone::before { content: "\e0cf"; }
482
+ .wpbc_icn_contact_support::before { content: "\e94c"; }
483
+ .wpbc_icn_contactless::before { content: "\ea71"; }
484
+ .wpbc_icn_contacts::before { content: "\e0ba"; }
485
+ .wpbc_icn_content_copy::before { content: "\e14d"; }
486
+ .wpbc_icn_content_cut::before { content: "\e14e"; }
487
+ .wpbc_icn_content_paste::before { content: "\e14f"; }
488
+ .wpbc_icn_content_paste_go::before { content: "\ea8e"; }
489
+ .wpbc_icn_content_paste_off::before { content: "\e4f8"; }
490
+ .wpbc_icn_content_paste_search::before { content: "\ea9b"; }
491
+ .wpbc_icn_contrast::before { content: "\eb37"; }
492
+ .wpbc_icn_control_camera::before { content: "\e074"; }
493
+ .wpbc_icn_control_point::before { content: "\e3ba"; }
494
+ .wpbc_icn_control_point_duplicate::before { content: "\e3bb"; }
495
+ .wpbc_icn_cookie::before { content: "\eaac"; }
496
+ .wpbc_icn_copy_all::before { content: "\e2ec"; }
497
+ .wpbc_icn_copyright::before { content: "\e90c"; }
498
+ .wpbc_icn_coronavirus::before { content: "\f221"; }
499
+ .wpbc_icn_corporate_fare::before { content: "\f1d0"; }
500
+ .wpbc_icn_cottage::before { content: "\e587"; }
501
+ .wpbc_icn_countertops::before { content: "\f1f7"; }
502
+ .wpbc_icn_create::before { content: "\e150"; }
503
+ .wpbc_icn_create_new_folder::before { content: "\e2cc"; }
504
+ .wpbc_icn_credit_card::before { content: "\e870"; }
505
+ .wpbc_icn_credit_card_off::before { content: "\e4f4"; }
506
+ .wpbc_icn_credit_score::before { content: "\eff1"; }
507
+ .wpbc_icn_crib::before { content: "\e588"; }
508
+ .wpbc_icn_crisis_alert::before { content: "\ebe9"; }
509
+ .wpbc_icn_crop::before { content: "\e3be"; }
510
+ .wpbc_icn_crop_16_9::before { content: "\e3bc"; }
511
+ .wpbc_icn_crop_3_2::before { content: "\e3bd"; }
512
+ .wpbc_icn_crop_5_4::before { content: "\e3bf"; }
513
+ .wpbc_icn_crop_7_5::before { content: "\e3c0"; }
514
+ .wpbc_icn_crop_din::before { content: "\e3c1"; }
515
+ .wpbc_icn_crop_free::before { content: "\e3c2"; }
516
+ .wpbc_icn_crop_landscape::before { content: "\e3c3"; }
517
+ .wpbc_icn_crop_original::before { content: "\e3c4"; }
518
+ .wpbc_icn_crop_portrait::before { content: "\e3c5"; }
519
+ .wpbc_icn_crop_rotate::before { content: "\e437"; }
520
+ .wpbc_icn_crop_square::before { content: "\e3c6"; }
521
+ .wpbc_icn_cruelty_free::before { content: "\e799"; }
522
+ .wpbc_icn_css::before { content: "\eb93"; }
523
+ .wpbc_icn_currency_bitcoin::before { content: "\ebc5"; }
524
+ .wpbc_icn_currency_exchange::before { content: "\eb70"; }
525
+ .wpbc_icn_currency_franc::before { content: "\eafa"; }
526
+ .wpbc_icn_currency_lira::before { content: "\eaef"; }
527
+ .wpbc_icn_currency_pound::before { content: "\eaf1"; }
528
+ .wpbc_icn_currency_ruble::before { content: "\eaec"; }
529
+ .wpbc_icn_currency_rupee::before { content: "\eaf7"; }
530
+ .wpbc_icn_currency_yen::before { content: "\eafb"; }
531
+ .wpbc_icn_currency_yuan::before { content: "\eaf9"; }
532
+ .wpbc_icn_curtains::before { content: "\ec1e"; }
533
+ .wpbc_icn_curtains_closed::before { content: "\ec1d"; }
534
+ .wpbc_icn_cyclone::before { content: "\ebd5"; }
535
+ .wpbc_icn_dangerous::before { content: "\e99a"; }
536
+ .wpbc_icn_dark_mode::before { content: "\e51c"; }
537
+ .wpbc_icn_dashboard::before { content: "\e871"; }
538
+ .wpbc_icn_dashboard_customize::before { content: "\e99b"; }
539
+ .wpbc_icn_data_array::before { content: "\ead1"; }
540
+ .wpbc_icn_data_exploration::before { content: "\e76f"; }
541
+ .wpbc_icn_data_object::before { content: "\ead3"; }
542
+ .wpbc_icn_data_saver_off::before { content: "\eff2"; }
543
+ .wpbc_icn_data_saver_on::before { content: "\eff3"; }
544
+ .wpbc_icn_data_thresholding::before { content: "\eb9f"; }
545
+ .wpbc_icn_data_usage::before { content: "\e1af"; }
546
+ .wpbc_icn_date_range::before { content: "\e916"; }
547
+ .wpbc_icn_deblur::before { content: "\eb77"; }
548
+ .wpbc_icn_deck::before { content: "\ea42"; }
549
+ .wpbc_icn_dehaze::before { content: "\e3c7"; }
550
+ .wpbc_icn_delete::before { content: "\e872"; }
551
+ .wpbc_icn_delete_forever::before { content: "\e92b"; }
552
+ .wpbc_icn_delete_outline::before { content: "\e92e"; }
553
+ .wpbc_icn_delete_sweep::before { content: "\e16c"; }
554
+ .wpbc_icn_delivery_dining::before { content: "\ea72"; }
555
+ .wpbc_icn_density_large::before { content: "\eba9"; }
556
+ .wpbc_icn_density_medium::before { content: "\eb9e"; }
557
+ .wpbc_icn_density_small::before { content: "\eba8"; }
558
+ .wpbc_icn_departure_board::before { content: "\e576"; }
559
+ .wpbc_icn_description::before { content: "\e873"; }
560
+ .wpbc_icn_deselect::before { content: "\ebb6"; }
561
+ .wpbc_icn_design_services::before { content: "\f10a"; }
562
+ .wpbc_icn_desktop_access_disabled::before { content: "\e99d"; }
563
+ .wpbc_icn_desktop_mac::before { content: "\e30b"; }
564
+ .wpbc_icn_desktop_windows::before { content: "\e30c"; }
565
+ .wpbc_icn_details::before { content: "\e3c8"; }
566
+ .wpbc_icn_developer_board::before { content: "\e30d"; }
567
+ .wpbc_icn_developer_board_off::before { content: "\e4ff"; }
568
+ .wpbc_icn_developer_mode::before { content: "\e1b0"; }
569
+ .wpbc_icn_device_hub::before { content: "\e335"; }
570
+ .wpbc_icn_device_thermostat::before { content: "\e1ff"; }
571
+ .wpbc_icn_device_unknown::before { content: "\e339"; }
572
+ .wpbc_icn_devices::before { content: "\e1b1"; }
573
+ .wpbc_icn_devices_fold::before { content: "\ebde"; }
574
+ .wpbc_icn_devices_other::before { content: "\e337"; }
575
+ .wpbc_icn_dialer_sip::before { content: "\e0bb"; }
576
+ .wpbc_icn_dialpad::before { content: "\e0bc"; }
577
+ .wpbc_icn_diamond::before { content: "\ead5"; }
578
+ .wpbc_icn_difference::before { content: "\eb7d"; }
579
+ .wpbc_icn_dining::before { content: "\eff4"; }
580
+ .wpbc_icn_dinner_dining::before { content: "\ea57"; }
581
+ .wpbc_icn_directions::before { content: "\e52e"; }
582
+ .wpbc_icn_directions_bike::before { content: "\e52f"; }
583
+ .wpbc_icn_directions_boat::before { content: "\e532"; }
584
+ .wpbc_icn_directions_boat_filled::before { content: "\eff5"; }
585
+ .wpbc_icn_directions_bus::before { content: "\e530"; }
586
+ .wpbc_icn_directions_bus_filled::before { content: "\eff6"; }
587
+ .wpbc_icn_directions_car::before { content: "\e531"; }
588
+ .wpbc_icn_directions_car_filled::before { content: "\eff7"; }
589
+ .wpbc_icn_directions_ferry::before { content: "\e532"; }
590
+ .wpbc_icn_directions_off::before { content: "\f10f"; }
591
+ .wpbc_icn_directions_railway::before { content: "\e534"; }
592
+ .wpbc_icn_directions_railway_filled::before { content: "\eff8"; }
593
+ .wpbc_icn_directions_run::before { content: "\e566"; }
594
+ .wpbc_icn_directions_subway::before { content: "\e533"; }
595
+ .wpbc_icn_directions_subway_filled::before { content: "\eff9"; }
596
+ .wpbc_icn_directions_train::before { content: "\e534"; }
597
+ .wpbc_icn_directions_transit::before { content: "\e535"; }
598
+ .wpbc_icn_directions_transit_filled::before { content: "\effa"; }
599
+ .wpbc_icn_directions_walk::before { content: "\e536"; }
600
+ .wpbc_icn_dirty_lens::before { content: "\ef4b"; }
601
+ .wpbc_icn_disabled_by_default::before { content: "\f230"; }
602
+ .wpbc_icn_disabled_visible::before { content: "\e76e"; }
603
+ .wpbc_icn_disc_full::before { content: "\e610"; }
604
+ .wpbc_icn_discord::before { content: "\ea6c"; }
605
+ .wpbc_icn_discount::before { content: "\ebc9"; }
606
+ .wpbc_icn_display_settings::before { content: "\eb97"; }
607
+ .wpbc_icn_dnd_forwardslash::before { content: "\e611"; }
608
+ .wpbc_icn_dns::before { content: "\e875"; }
609
+ .wpbc_icn_do_disturb::before { content: "\f08c"; }
610
+ .wpbc_icn_do_disturb_alt::before { content: "\f08d"; }
611
+ .wpbc_icn_do_disturb_off::before { content: "\f08e"; }
612
+ .wpbc_icn_do_disturb_on::before { content: "\f08f"; }
613
+ .wpbc_icn_do_not_disturb::before { content: "\e612"; }
614
+ .wpbc_icn_do_not_disturb_alt::before { content: "\e611"; }
615
+ .wpbc_icn_do_not_disturb_off::before { content: "\e643"; }
616
+ .wpbc_icn_do_not_disturb_on::before { content: "\e644"; }
617
+ .wpbc_icn_do_not_disturb_on_total_silence::before { content: "\effb"; }
618
+ .wpbc_icn_do_not_step::before { content: "\f19f"; }
619
+ .wpbc_icn_do_not_touch::before { content: "\f1b0"; }
620
+ .wpbc_icn_dock::before { content: "\e30e"; }
621
+ .wpbc_icn_document_scanner::before { content: "\e5fa"; }
622
+ .wpbc_icn_domain::before { content: "\e7ee"; }
623
+ .wpbc_icn_domain_add::before { content: "\eb62"; }
624
+ .wpbc_icn_domain_disabled::before { content: "\e0ef"; }
625
+ .wpbc_icn_domain_verification::before { content: "\ef4c"; }
626
+ .wpbc_icn_done::before { content: "\e876"; }
627
+ .wpbc_icn_done_all::before { content: "\e877"; }
628
+ .wpbc_icn_done_outline::before { content: "\e92f"; }
629
+ .wpbc_icn_donut_large::before { content: "\e917"; }
630
+ .wpbc_icn_donut_small::before { content: "\e918"; }
631
+ .wpbc_icn_door_back::before { content: "\effc"; }
632
+ .wpbc_icn_door_front::before { content: "\effd"; }
633
+ .wpbc_icn_door_sliding::before { content: "\effe"; }
634
+ .wpbc_icn_doorbell::before { content: "\efff"; }
635
+ .wpbc_icn_double_arrow::before { content: "\ea50"; }
636
+ .wpbc_icn_downhill_skiing::before { content: "\e509"; }
637
+ .wpbc_icn_download::before { content: "\f090"; }
638
+ .wpbc_icn_download_done::before { content: "\f091"; }
639
+ .wpbc_icn_download_for_offline::before { content: "\f000"; }
640
+ .wpbc_icn_downloading::before { content: "\f001"; }
641
+ .wpbc_icn_drafts::before { content: "\e151"; }
642
+ .wpbc_icn_drag_handle::before { content: "\e25d"; }
643
+ .wpbc_icn_drag_indicator::before { content: "\e945"; }
644
+ .wpbc_icn_draw::before { content: "\e746"; }
645
+ .wpbc_icn_drive_eta::before { content: "\e613"; }
646
+ .wpbc_icn_drive_file_move::before { content: "\e675"; }
647
+ .wpbc_icn_drive_file_move_outline::before { content: "\e9a1"; }
648
+ .wpbc_icn_drive_file_move_rtl::before { content: "\e76d"; }
649
+ .wpbc_icn_drive_file_rename_outline::before { content: "\e9a2"; }
650
+ .wpbc_icn_drive_folder_upload::before { content: "\e9a3"; }
651
+ .wpbc_icn_dry::before { content: "\f1b3"; }
652
+ .wpbc_icn_dry_cleaning::before { content: "\ea58"; }
653
+ .wpbc_icn_duo::before { content: "\e9a5"; }
654
+ .wpbc_icn_dvr::before { content: "\e1b2"; }
655
+ .wpbc_icn_dynamic_feed::before { content: "\ea14"; }
656
+ .wpbc_icn_dynamic_form::before { content: "\f1bf"; }
657
+ .wpbc_icn_e_mobiledata::before { content: "\f002"; }
658
+ .wpbc_icn_earbuds::before { content: "\f003"; }
659
+ .wpbc_icn_earbuds_battery::before { content: "\f004"; }
660
+ .wpbc_icn_east::before { content: "\f1df"; }
661
+ .wpbc_icn_eco::before { content: "\ea35"; }
662
+ .wpbc_icn_edgesensor_high::before { content: "\f005"; }
663
+ .wpbc_icn_edgesensor_low::before { content: "\f006"; }
664
+ .wpbc_icn_edit::before { content: "\e3c9"; }
665
+ .wpbc_icn_edit_attributes::before { content: "\e578"; }
666
+ .wpbc_icn_edit_calendar::before { content: "\e742"; }
667
+ .wpbc_icn_edit_location::before { content: "\e568"; }
668
+ .wpbc_icn_edit_location_alt::before { content: "\e1c5"; }
669
+ .wpbc_icn_edit_note::before { content: "\e745"; }
670
+ .wpbc_icn_edit_notifications::before { content: "\e525"; }
671
+ .wpbc_icn_edit_off::before { content: "\e950"; }
672
+ .wpbc_icn_edit_road::before { content: "\ef4d"; }
673
+ .wpbc_icn_egg::before { content: "\eacc"; }
674
+ .wpbc_icn_egg_alt::before { content: "\eac8"; }
675
+ .wpbc_icn_eject::before { content: "\e8fb"; }
676
+ .wpbc_icn_elderly::before { content: "\f21a"; }
677
+ .wpbc_icn_elderly_woman::before { content: "\eb69"; }
678
+ .wpbc_icn_electric_bike::before { content: "\eb1b"; }
679
+ .wpbc_icn_electric_bolt::before { content: "\ec1c"; }
680
+ .wpbc_icn_electric_car::before { content: "\eb1c"; }
681
+ .wpbc_icn_electric_meter::before { content: "\ec1b"; }
682
+ .wpbc_icn_electric_moped::before { content: "\eb1d"; }
683
+ .wpbc_icn_electric_rickshaw::before { content: "\eb1e"; }
684
+ .wpbc_icn_electric_scooter::before { content: "\eb1f"; }
685
+ .wpbc_icn_electrical_services::before { content: "\f102"; }
686
+ .wpbc_icn_elevator::before { content: "\f1a0"; }
687
+ .wpbc_icn_email::before { content: "\e0be"; }
688
+ .wpbc_icn_emergency::before { content: "\e1eb"; }
689
+ .wpbc_icn_emergency_recording::before { content: "\ebf4"; }
690
+ .wpbc_icn_emergency_share::before { content: "\ebf6"; }
691
+ .wpbc_icn_emoji_emotions::before { content: "\ea22"; }
692
+ .wpbc_icn_emoji_events::before { content: "\ea23"; }
693
+ .wpbc_icn_emoji_flags::before { content: "\ea1a"; }
694
+ .wpbc_icn_emoji_food_beverage::before { content: "\ea1b"; }
695
+ .wpbc_icn_emoji_nature::before { content: "\ea1c"; }
696
+ .wpbc_icn_emoji_objects::before { content: "\ea24"; }
697
+ .wpbc_icn_emoji_people::before { content: "\ea1d"; }
698
+ .wpbc_icn_emoji_symbols::before { content: "\ea1e"; }
699
+ .wpbc_icn_emoji_transportation::before { content: "\ea1f"; }
700
+ .wpbc_icn_energy_savings_leaf::before { content: "\ec1a"; }
701
+ .wpbc_icn_engineering::before { content: "\ea3d"; }
702
+ .wpbc_icn_enhance_photo_translate::before { content: "\e8fc"; }
703
+ .wpbc_icn_enhanced_encryption::before { content: "\e63f"; }
704
+ .wpbc_icn_equalizer::before { content: "\e01d"; }
705
+ .wpbc_icn_error::before { content: "\e000"; }
706
+ .wpbc_icn_error_outline::before { content: "\e001"; }
707
+ .wpbc_icn_escalator::before { content: "\f1a1"; }
708
+ .wpbc_icn_escalator_warning::before { content: "\f1ac"; }
709
+ .wpbc_icn_euro::before { content: "\ea15"; }
710
+ .wpbc_icn_euro_symbol::before { content: "\e926"; }
711
+ .wpbc_icn_ev_station::before { content: "\e56d"; }
712
+ .wpbc_icn_event::before { content: "\e878"; }
713
+ .wpbc_icn_event_available::before { content: "\e614"; }
714
+ .wpbc_icn_event_busy::before { content: "\e615"; }
715
+ .wpbc_icn_event_note::before { content: "\e616"; }
716
+ .wpbc_icn_event_repeat::before { content: "\eb7b"; }
717
+ .wpbc_icn_event_seat::before { content: "\e903"; }
718
+ .wpbc_icn_exit_to_app::before { content: "\e879"; }
719
+ .wpbc_icn_expand::before { content: "\e94f"; }
720
+ .wpbc_icn_expand_circle_down::before { content: "\e7cd"; }
721
+ .wpbc_icn_expand_less::before { content: "\e5ce"; }
722
+ .wpbc_icn_expand_more::before { content: "\e5cf"; }
723
+ .wpbc_icn_explicit::before { content: "\e01e"; }
724
+ .wpbc_icn_explore::before { content: "\e87a"; }
725
+ .wpbc_icn_explore_off::before { content: "\e9a8"; }
726
+ .wpbc_icn_exposure::before { content: "\e3ca"; }
727
+ .wpbc_icn_exposure_minus_1::before { content: "\e3cb"; }
728
+ .wpbc_icn_exposure_minus_2::before { content: "\e3cc"; }
729
+ .wpbc_icn_exposure_neg_1::before { content: "\e3cb"; }
730
+ .wpbc_icn_exposure_neg_2::before { content: "\e3cc"; }
731
+ .wpbc_icn_exposure_plus_1::before { content: "\e3cd"; }
732
+ .wpbc_icn_exposure_plus_2::before { content: "\e3ce"; }
733
+ .wpbc_icn_exposure_zero::before { content: "\e3cf"; }
734
+ .wpbc_icn_extension::before { content: "\e87b"; }
735
+ .wpbc_icn_extension_off::before { content: "\e4f5"; }
736
+ .wpbc_icn_face::before { content: "\e87c"; }
737
+ .wpbc_icn_face_retouching_natural::before { content: "\ef4e"; }
738
+ .wpbc_icn_face_retouching_off::before { content: "\f007"; }
739
+ .wpbc_icn_facebook::before { content: "\f234"; }
740
+ .wpbc_icn_fact_check::before { content: "\f0c5"; }
741
+ .wpbc_icn_factory::before { content: "\ebbc"; }
742
+ .wpbc_icn_family_restroom::before { content: "\f1a2"; }
743
+ .wpbc_icn_fast_forward::before { content: "\e01f"; }
744
+ .wpbc_icn_fast_rewind::before { content: "\e020"; }
745
+ .wpbc_icn_fastfood::before { content: "\e57a"; }
746
+ .wpbc_icn_favorite::before { content: "\e87d"; }
747
+ .wpbc_icn_favorite_border::before { content: "\e87e"; }
748
+ .wpbc_icn_favorite_outline::before { content: "\e87e"; }
749
+ .wpbc_icn_fax::before { content: "\ead8"; }
750
+ .wpbc_icn_featured_play_list::before { content: "\e06d"; }
751
+ .wpbc_icn_featured_video::before { content: "\e06e"; }
752
+ .wpbc_icn_feed::before { content: "\f009"; }
753
+ .wpbc_icn_feedback::before { content: "\e87f"; }
754
+ .wpbc_icn_female::before { content: "\e590"; }
755
+ .wpbc_icn_fence::before { content: "\f1f6"; }
756
+ .wpbc_icn_festival::before { content: "\ea68"; }
757
+ .wpbc_icn_fiber_dvr::before { content: "\e05d"; }
758
+ .wpbc_icn_fiber_manual_record::before { content: "\e061"; }
759
+ .wpbc_icn_fiber_new::before { content: "\e05e"; }
760
+ .wpbc_icn_fiber_pin::before { content: "\e06a"; }
761
+ .wpbc_icn_fiber_smart_record::before { content: "\e062"; }
762
+ .wpbc_icn_file_copy::before { content: "\e173"; }
763
+ .wpbc_icn_file_download::before { content: "\e2c4"; }
764
+ .wpbc_icn_file_download_done::before { content: "\e9aa"; }
765
+ .wpbc_icn_file_download_off::before { content: "\e4fe"; }
766
+ .wpbc_icn_file_open::before { content: "\eaf3"; }
767
+ .wpbc_icn_file_present::before { content: "\ea0e"; }
768
+ .wpbc_icn_file_upload::before { content: "\e2c6"; }
769
+ .wpbc_icn_filter::before { content: "\e3d3"; }
770
+ .wpbc_icn_filter_1::before { content: "\e3d0"; }
771
+ .wpbc_icn_filter_2::before { content: "\e3d1"; }
772
+ .wpbc_icn_filter_3::before { content: "\e3d2"; }
773
+ .wpbc_icn_filter_4::before { content: "\e3d4"; }
774
+ .wpbc_icn_filter_5::before { content: "\e3d5"; }
775
+ .wpbc_icn_filter_6::before { content: "\e3d6"; }
776
+ .wpbc_icn_filter_7::before { content: "\e3d7"; }
777
+ .wpbc_icn_filter_8::before { content: "\e3d8"; }
778
+ .wpbc_icn_filter_9::before { content: "\e3d9"; }
779
+ .wpbc_icn_filter_9_plus::before { content: "\e3da"; }
780
+ .wpbc_icn_filter_alt::before { content: "\ef4f"; }
781
+ .wpbc_icn_filter_alt_off::before { content: "\eb32"; }
782
+ .wpbc_icn_filter_b_and_w::before { content: "\e3db"; }
783
+ .wpbc_icn_filter_center_focus::before { content: "\e3dc"; }
784
+ .wpbc_icn_filter_drama::before { content: "\e3dd"; }
785
+ .wpbc_icn_filter_frames::before { content: "\e3de"; }
786
+ .wpbc_icn_filter_hdr::before { content: "\e3df"; }
787
+ .wpbc_icn_filter_list::before { content: "\e152"; }
788
+ .wpbc_icn_filter_list_alt::before { content: "\e94e"; }
789
+ .wpbc_icn_filter_list_off::before { content: "\eb57"; }
790
+ .wpbc_icn_filter_none::before { content: "\e3e0"; }
791
+ .wpbc_icn_filter_tilt_shift::before { content: "\e3e2"; }
792
+ .wpbc_icn_filter_vintage::before { content: "\e3e3"; }
793
+ .wpbc_icn_find_in_page::before { content: "\e880"; }
794
+ .wpbc_icn_find_replace::before { content: "\e881"; }
795
+ .wpbc_icn_fingerprint::before { content: "\e90d"; }
796
+ .wpbc_icn_fire_extinguisher::before { content: "\f1d8"; }
797
+ .wpbc_icn_fire_hydrant::before { content: "\f1a3"; }
798
+ .wpbc_icn_fireplace::before { content: "\ea43"; }
799
+ .wpbc_icn_first_page::before { content: "\e5dc"; }
800
+ .wpbc_icn_fit_screen::before { content: "\ea10"; }
801
+ .wpbc_icn_fitbit::before { content: "\e82b"; }
802
+ .wpbc_icn_fitness_center::before { content: "\eb43"; }
803
+ .wpbc_icn_flag::before { content: "\e153"; }
804
+ .wpbc_icn_flag_circle::before { content: "\eaf8"; }
805
+ .wpbc_icn_flaky::before { content: "\ef50"; }
806
+ .wpbc_icn_flare::before { content: "\e3e4"; }
807
+ .wpbc_icn_flash_auto::before { content: "\e3e5"; }
808
+ .wpbc_icn_flash_off::before { content: "\e3e6"; }
809
+ .wpbc_icn_flash_on::before { content: "\e3e7"; }
810
+ .wpbc_icn_flashlight_off::before { content: "\f00a"; }
811
+ .wpbc_icn_flashlight_on::before { content: "\f00b"; }
812
+ .wpbc_icn_flatware::before { content: "\f00c"; }
813
+ .wpbc_icn_flight::before { content: "\e539"; }
814
+ .wpbc_icn_flight_class::before { content: "\e7cb"; }
815
+ .wpbc_icn_flight_land::before { content: "\e904"; }
816
+ .wpbc_icn_flight_takeoff::before { content: "\e905"; }
817
+ .wpbc_icn_flip::before { content: "\e3e8"; }
818
+ .wpbc_icn_flip_camera_android::before { content: "\ea37"; }
819
+ .wpbc_icn_flip_camera_ios::before { content: "\ea38"; }
820
+ .wpbc_icn_flip_to_back::before { content: "\e882"; }
821
+ .wpbc_icn_flip_to_front::before { content: "\e883"; }
822
+ .wpbc_icn_flood::before { content: "\ebe6"; }
823
+ .wpbc_icn_flourescent::before { content: "\f00d"; }
824
+ .wpbc_icn_flutter_dash::before { content: "\e00b"; }
825
+ .wpbc_icn_fmd_bad::before { content: "\f00e"; }
826
+ .wpbc_icn_fmd_good::before { content: "\f00f"; }
827
+ .wpbc_icn_foggy::before { content: "\e818"; }
828
+ .wpbc_icn_folder::before { content: "\e2c7"; }
829
+ .wpbc_icn_folder_copy::before { content: "\ebbd"; }
830
+ .wpbc_icn_folder_delete::before { content: "\eb34"; }
831
+ .wpbc_icn_folder_off::before { content: "\eb83"; }
832
+ .wpbc_icn_folder_open::before { content: "\e2c8"; }
833
+ .wpbc_icn_folder_shared::before { content: "\e2c9"; }
834
+ .wpbc_icn_folder_special::before { content: "\e617"; }
835
+ .wpbc_icn_folder_zip::before { content: "\eb2c"; }
836
+ .wpbc_icn_follow_the_signs::before { content: "\f222"; }
837
+ .wpbc_icn_font_download::before { content: "\e167"; }
838
+ .wpbc_icn_font_download_off::before { content: "\e4f9"; }
839
+ .wpbc_icn_food_bank::before { content: "\f1f2"; }
840
+ .wpbc_icn_forest::before { content: "\ea99"; }
841
+ .wpbc_icn_fork_left::before { content: "\eba0"; }
842
+ .wpbc_icn_fork_right::before { content: "\ebac"; }
843
+ .wpbc_icn_format_align_center::before { content: "\e234"; }
844
+ .wpbc_icn_format_align_justify::before { content: "\e235"; }
845
+ .wpbc_icn_format_align_left::before { content: "\e236"; }
846
+ .wpbc_icn_format_align_right::before { content: "\e237"; }
847
+ .wpbc_icn_format_bold::before { content: "\e238"; }
848
+ .wpbc_icn_format_clear::before { content: "\e239"; }
849
+ .wpbc_icn_format_color_fill::before { content: "\e23a"; }
850
+ .wpbc_icn_format_color_reset::before { content: "\e23b"; }
851
+ .wpbc_icn_format_color_text::before { content: "\e23c"; }
852
+ .wpbc_icn_format_indent_decrease::before { content: "\e23d"; }
853
+ .wpbc_icn_format_indent_increase::before { content: "\e23e"; }
854
+ .wpbc_icn_format_italic::before { content: "\e23f"; }
855
+ .wpbc_icn_format_line_spacing::before { content: "\e240"; }
856
+ .wpbc_icn_format_list_bulleted::before { content: "\e241"; }
857
+ .wpbc_icn_format_list_numbered::before { content: "\e242"; }
858
+ .wpbc_icn_format_list_numbered_rtl::before { content: "\e267"; }
859
+ .wpbc_icn_format_overline::before { content: "\eb65"; }
860
+ .wpbc_icn_format_paint::before { content: "\e243"; }
861
+ .wpbc_icn_format_quote::before { content: "\e244"; }
862
+ .wpbc_icn_format_shapes::before { content: "\e25e"; }
863
+ .wpbc_icn_format_size::before { content: "\e245"; }
864
+ .wpbc_icn_format_strikethrough::before { content: "\e246"; }
865
+ .wpbc_icn_format_textdirection_l_to_r::before { content: "\e247"; }
866
+ .wpbc_icn_format_textdirection_r_to_l::before { content: "\e248"; }
867
+ .wpbc_icn_format_underline::before { content: "\e249"; }
868
+ .wpbc_icn_format_underlined::before { content: "\e249"; }
869
+ .wpbc_icn_fort::before { content: "\eaad"; }
870
+ .wpbc_icn_forum::before { content: "\e0bf"; }
871
+ .wpbc_icn_forward::before { content: "\e154"; }
872
+ .wpbc_icn_forward_10::before { content: "\e056"; }
873
+ .wpbc_icn_forward_30::before { content: "\e057"; }
874
+ .wpbc_icn_forward_5::before { content: "\e058"; }
875
+ .wpbc_icn_forward_to_inbox::before { content: "\f187"; }
876
+ .wpbc_icn_foundation::before { content: "\f200"; }
877
+ .wpbc_icn_free_breakfast::before { content: "\eb44"; }
878
+ .wpbc_icn_free_cancellation::before { content: "\e748"; }
879
+ .wpbc_icn_front_hand::before { content: "\e769"; }
880
+ .wpbc_icn_fullscreen::before { content: "\e5d0"; }
881
+ .wpbc_icn_fullscreen_exit::before { content: "\e5d1"; }
882
+ .wpbc_icn_functions::before { content: "\e24a"; }
883
+ .wpbc_icn_g_mobiledata::before { content: "\f010"; }
884
+ .wpbc_icn_g_translate::before { content: "\e927"; }
885
+ .wpbc_icn_gamepad::before { content: "\e30f"; }
886
+ .wpbc_icn_games::before { content: "\e021"; }
887
+ .wpbc_icn_garage::before { content: "\f011"; }
888
+ .wpbc_icn_gas_meter::before { content: "\ec19"; }
889
+ .wpbc_icn_gavel::before { content: "\e90e"; }
890
+ .wpbc_icn_generating_tokens::before { content: "\e749"; }
891
+ .wpbc_icn_gesture::before { content: "\e155"; }
892
+ .wpbc_icn_get_app::before { content: "\e884"; }
893
+ .wpbc_icn_gif::before { content: "\e908"; }
894
+ .wpbc_icn_gif_box::before { content: "\e7a3"; }
895
+ .wpbc_icn_girl::before { content: "\eb68"; }
896
+ .wpbc_icn_gite::before { content: "\e58b"; }
897
+ .wpbc_icn_goat::before { content: "\10fffd"; }
898
+ .wpbc_icn_golf_course::before { content: "\eb45"; }
899
+ .wpbc_icn_gpp_bad::before { content: "\f012"; }
900
+ .wpbc_icn_gpp_good::before { content: "\f013"; }
901
+ .wpbc_icn_gpp_maybe::before { content: "\f014"; }
902
+ .wpbc_icn_gps_fixed::before { content: "\e1b3"; }
903
+ .wpbc_icn_gps_not_fixed::before { content: "\e1b4"; }
904
+ .wpbc_icn_gps_off::before { content: "\e1b5"; }
905
+ .wpbc_icn_grade::before { content: "\e885"; }
906
+ .wpbc_icn_gradient::before { content: "\e3e9"; }
907
+ .wpbc_icn_grading::before { content: "\ea4f"; }
908
+ .wpbc_icn_grain::before { content: "\e3ea"; }
909
+ .wpbc_icn_graphic_eq::before { content: "\e1b8"; }
910
+ .wpbc_icn_grass::before { content: "\f205"; }
911
+ .wpbc_icn_grid_3x3::before { content: "\f015"; }
912
+ .wpbc_icn_grid_4x4::before { content: "\f016"; }
913
+ .wpbc_icn_grid_goldenratio::before { content: "\f017"; }
914
+ .wpbc_icn_grid_off::before { content: "\e3eb"; }
915
+ .wpbc_icn_grid_on::before { content: "\e3ec"; }
916
+ .wpbc_icn_grid_view::before { content: "\e9b0"; }
917
+ .wpbc_icn_group::before { content: "\e7ef"; }
918
+ .wpbc_icn_group_add::before { content: "\e7f0"; }
919
+ .wpbc_icn_group_off::before { content: "\e747"; }
920
+ .wpbc_icn_group_remove::before { content: "\e7ad"; }
921
+ .wpbc_icn_group_work::before { content: "\e886"; }
922
+ .wpbc_icn_groups::before { content: "\f233"; }
923
+ .wpbc_icn_h_mobiledata::before { content: "\f018"; }
924
+ .wpbc_icn_h_plus_mobiledata::before { content: "\f019"; }
925
+ .wpbc_icn_hail::before { content: "\e9b1"; }
926
+ .wpbc_icn_handshake::before { content: "\ebcb"; }
927
+ .wpbc_icn_handyman::before { content: "\f10b"; }
928
+ .wpbc_icn_hardware::before { content: "\ea59"; }
929
+ .wpbc_icn_hd::before { content: "\e052"; }
930
+ .wpbc_icn_hdr_auto::before { content: "\f01a"; }
931
+ .wpbc_icn_hdr_auto_select::before { content: "\f01b"; }
932
+ .wpbc_icn_hdr_enhanced_select::before { content: "\ef51"; }
933
+ .wpbc_icn_hdr_off::before { content: "\e3ed"; }
934
+ .wpbc_icn_hdr_off_select::before { content: "\f01c"; }
935
+ .wpbc_icn_hdr_on::before { content: "\e3ee"; }
936
+ .wpbc_icn_hdr_on_select::before { content: "\f01d"; }
937
+ .wpbc_icn_hdr_plus::before { content: "\f01e"; }
938
+ .wpbc_icn_hdr_strong::before { content: "\e3f1"; }
939
+ .wpbc_icn_hdr_weak::before { content: "\e3f2"; }
940
+ .wpbc_icn_headphones::before { content: "\f01f"; }
941
+ .wpbc_icn_headphones_battery::before { content: "\f020"; }
942
+ .wpbc_icn_headset::before { content: "\e310"; }
943
+ .wpbc_icn_headset_mic::before { content: "\e311"; }
944
+ .wpbc_icn_headset_off::before { content: "\e33a"; }
945
+ .wpbc_icn_healing::before { content: "\e3f3"; }
946
+ .wpbc_icn_health_and_safety::before { content: "\e1d5"; }
947
+ .wpbc_icn_hearing::before { content: "\e023"; }
948
+ .wpbc_icn_hearing_disabled::before { content: "\f104"; }
949
+ .wpbc_icn_heart_broken::before { content: "\eac2"; }
950
+ .wpbc_icn_heat_pump::before { content: "\ec18"; }
951
+ .wpbc_icn_height::before { content: "\ea16"; }
952
+ .wpbc_icn_help::before { content: "\e887"; }
953
+ .wpbc_icn_help_center::before { content: "\f1c0"; }
954
+ .wpbc_icn_help_outline::before { content: "\e8fd"; }
955
+ .wpbc_icn_hevc::before { content: "\f021"; }
956
+ .wpbc_icn_hexagon::before { content: "\eb39"; }
957
+ .wpbc_icn_hide_image::before { content: "\f022"; }
958
+ .wpbc_icn_hide_source::before { content: "\f023"; }
959
+ .wpbc_icn_high_quality::before { content: "\e024"; }
960
+ .wpbc_icn_highlight::before { content: "\e25f"; }
961
+ .wpbc_icn_highlight_alt::before { content: "\ef52"; }
962
+ .wpbc_icn_highlight_off::before { content: "\e888"; }
963
+ .wpbc_icn_highlight_remove::before { content: "\e888"; }
964
+ .wpbc_icn_hiking::before { content: "\e50a"; }
965
+ .wpbc_icn_history::before { content: "\e889"; }
966
+ .wpbc_icn_history_edu::before { content: "\ea3e"; }
967
+ .wpbc_icn_history_toggle_off::before { content: "\f17d"; }
968
+ .wpbc_icn_hive::before { content: "\eaa6"; }
969
+ .wpbc_icn_hls::before { content: "\eb8a"; }
970
+ .wpbc_icn_hls_off::before { content: "\eb8c"; }
971
+ .wpbc_icn_holiday_village::before { content: "\e58a"; }
972
+ .wpbc_icn_home::before { content: "\e88a"; }
973
+ .wpbc_icn_home_filled::before { content: "\e9b2"; }
974
+ .wpbc_icn_home_max::before { content: "\f024"; }
975
+ .wpbc_icn_home_mini::before { content: "\f025"; }
976
+ .wpbc_icn_home_repair_service::before { content: "\f100"; }
977
+ .wpbc_icn_home_work::before { content: "\ea09"; }
978
+ .wpbc_icn_horizontal_distribute::before { content: "\e014"; }
979
+ .wpbc_icn_horizontal_rule::before { content: "\f108"; }
980
+ .wpbc_icn_horizontal_split::before { content: "\e947"; }
981
+ .wpbc_icn_hot_tub::before { content: "\eb46"; }
982
+ .wpbc_icn_hotel::before { content: "\e53a"; }
983
+ .wpbc_icn_hotel_class::before { content: "\e743"; }
984
+ .wpbc_icn_hourglass_bottom::before { content: "\ea5c"; }
985
+ .wpbc_icn_hourglass_disabled::before { content: "\ef53"; }
986
+ .wpbc_icn_hourglass_empty::before { content: "\e88b"; }
987
+ .wpbc_icn_hourglass_full::before { content: "\e88c"; }
988
+ .wpbc_icn_hourglass_top::before { content: "\ea5b"; }
989
+ .wpbc_icn_house::before { content: "\ea44"; }
990
+ .wpbc_icn_house_siding::before { content: "\f202"; }
991
+ .wpbc_icn_houseboat::before { content: "\e584"; }
992
+ .wpbc_icn_how_to_reg::before { content: "\e174"; }
993
+ .wpbc_icn_how_to_vote::before { content: "\e175"; }
994
+ .wpbc_icn_html::before { content: "\eb7e"; }
995
+ .wpbc_icn_http::before { content: "\e902"; }
996
+ .wpbc_icn_https::before { content: "\e88d"; }
997
+ .wpbc_icn_hub::before { content: "\e9f4"; }
998
+ .wpbc_icn_hvac::before { content: "\f10e"; }
999
+ .wpbc_icn_ice_skating::before { content: "\e50b"; }
1000
+ .wpbc_icn_icecream::before { content: "\ea69"; }
1001
+ .wpbc_icn_image::before { content: "\e3f4"; }
1002
+ .wpbc_icn_image_aspect_ratio::before { content: "\e3f5"; }
1003
+ .wpbc_icn_image_not_supported::before { content: "\f116"; }
1004
+ .wpbc_icn_image_search::before { content: "\e43f"; }
1005
+ .wpbc_icn_imagesearch_roller::before { content: "\e9b4"; }
1006
+ .wpbc_icn_import_contacts::before { content: "\e0e0"; }
1007
+ .wpbc_icn_import_export::before { content: "\e0c3"; }
1008
+ .wpbc_icn_important_devices::before { content: "\e912"; }
1009
+ .wpbc_icn_inbox::before { content: "\e156"; }
1010
+ .wpbc_icn_incomplete_circle::before { content: "\e79b"; }
1011
+ .wpbc_icn_indeterminate_check_box::before { content: "\e909"; }
1012
+ .wpbc_icn_info::before { content: "\e88e"; }
1013
+ .wpbc_icn_info_outline::before { content: "\e88f"; }
1014
+ .wpbc_icn_input::before { content: "\e890"; }
1015
+ .wpbc_icn_insert_chart::before { content: "\e24b"; }
1016
+ .wpbc_icn_insert_chart_outlined::before { content: "\e26a"; }
1017
+ .wpbc_icn_insert_comment::before { content: "\e24c"; }
1018
+ .wpbc_icn_insert_drive_file::before { content: "\e24d"; }
1019
+ .wpbc_icn_insert_emoticon::before { content: "\e24e"; }
1020
+ .wpbc_icn_insert_invitation::before { content: "\e24f"; }
1021
+ .wpbc_icn_insert_link::before { content: "\e250"; }
1022
+ .wpbc_icn_insert_page_break::before { content: "\eaca"; }
1023
+ .wpbc_icn_insert_photo::before { content: "\e251"; }
1024
+ .wpbc_icn_insights::before { content: "\f092"; }
1025
+ .wpbc_icn_install_desktop::before { content: "\eb71"; }
1026
+ .wpbc_icn_install_mobile::before { content: "\eb72"; }
1027
+ .wpbc_icn_integration_instructions::before { content: "\ef54"; }
1028
+ .wpbc_icn_interests::before { content: "\e7c8"; }
1029
+ .wpbc_icn_interpreter_mode::before { content: "\e83b"; }
1030
+ .wpbc_icn_inventory::before { content: "\e179"; }
1031
+ .wpbc_icn_inventory_2::before { content: "\e1a1"; }
1032
+ .wpbc_icn_invert_colors::before { content: "\e891"; }
1033
+ .wpbc_icn_invert_colors_off::before { content: "\e0c4"; }
1034
+ .wpbc_icn_invert_colors_on::before { content: "\e891"; }
1035
+ .wpbc_icn_ios_share::before { content: "\e6b8"; }
1036
+ .wpbc_icn_iron::before { content: "\e583"; }
1037
+ .wpbc_icn_iso::before { content: "\e3f6"; }
1038
+ .wpbc_icn_javascript::before { content: "\eb7c"; }
1039
+ .wpbc_icn_join_full::before { content: "\eaeb"; }
1040
+ .wpbc_icn_join_inner::before { content: "\eaf4"; }
1041
+ .wpbc_icn_join_left::before { content: "\eaf2"; }
1042
+ .wpbc_icn_join_right::before { content: "\eaea"; }
1043
+ .wpbc_icn_kayaking::before { content: "\e50c"; }
1044
+ .wpbc_icn_kebab_dining::before { content: "\e842"; }
1045
+ .wpbc_icn_key::before { content: "\e73c"; }
1046
+ .wpbc_icn_key_off::before { content: "\eb84"; }
1047
+ .wpbc_icn_keyboard::before { content: "\e312"; }
1048
+ .wpbc_icn_keyboard_alt::before { content: "\f028"; }
1049
+ .wpbc_icn_keyboard_arrow_down::before { content: "\e313"; }
1050
+ .wpbc_icn_keyboard_arrow_left::before { content: "\e314"; }
1051
+ .wpbc_icn_keyboard_arrow_right::before { content: "\e315"; }
1052
+ .wpbc_icn_keyboard_arrow_up::before { content: "\e316"; }
1053
+ .wpbc_icn_keyboard_backspace::before { content: "\e317"; }
1054
+ .wpbc_icn_keyboard_capslock::before { content: "\e318"; }
1055
+ .wpbc_icn_keyboard_command::before { content: "\eae0"; }
1056
+ .wpbc_icn_keyboard_command_key::before { content: "\eae7"; }
1057
+ .wpbc_icn_keyboard_control::before { content: "\e5d3"; }
1058
+ .wpbc_icn_keyboard_control_key::before { content: "\eae6"; }
1059
+ .wpbc_icn_keyboard_double_arrow_down::before { content: "\ead0"; }
1060
+ .wpbc_icn_keyboard_double_arrow_left::before { content: "\eac3"; }
1061
+ .wpbc_icn_keyboard_double_arrow_right::before { content: "\eac9"; }
1062
+ .wpbc_icn_keyboard_double_arrow_up::before { content: "\eacf"; }
1063
+ .wpbc_icn_keyboard_hide::before { content: "\e31a"; }
1064
+ .wpbc_icn_keyboard_option::before { content: "\eadf"; }
1065
+ .wpbc_icn_keyboard_option_key::before { content: "\eae8"; }
1066
+ .wpbc_icn_keyboard_return::before { content: "\e31b"; }
1067
+ .wpbc_icn_keyboard_tab::before { content: "\e31c"; }
1068
+ .wpbc_icn_keyboard_voice::before { content: "\e31d"; }
1069
+ .wpbc_icn_king_bed::before { content: "\ea45"; }
1070
+ .wpbc_icn_kitchen::before { content: "\eb47"; }
1071
+ .wpbc_icn_kitesurfing::before { content: "\e50d"; }
1072
+ .wpbc_icn_label::before { content: "\e892"; }
1073
+ .wpbc_icn_label_important::before { content: "\e937"; }
1074
+ .wpbc_icn_label_important_outline::before { content: "\e948"; }
1075
+ .wpbc_icn_label_off::before { content: "\e9b6"; }
1076
+ .wpbc_icn_label_outline::before { content: "\e893"; }
1077
+ .wpbc_icn_lan::before { content: "\eb2f"; }
1078
+ .wpbc_icn_landscape::before { content: "\e3f7"; }
1079
+ .wpbc_icn_landslide::before { content: "\ebd7"; }
1080
+ .wpbc_icn_language::before { content: "\e894"; }
1081
+ .wpbc_icn_laptop::before { content: "\e31e"; }
1082
+ .wpbc_icn_laptop_chromebook::before { content: "\e31f"; }
1083
+ .wpbc_icn_laptop_mac::before { content: "\e320"; }
1084
+ .wpbc_icn_laptop_windows::before { content: "\e321"; }
1085
+ .wpbc_icn_last_page::before { content: "\e5dd"; }
1086
+ .wpbc_icn_launch::before { content: "\e895"; }
1087
+ .wpbc_icn_layers::before { content: "\e53b"; }
1088
+ .wpbc_icn_layers_clear::before { content: "\e53c"; }
1089
+ .wpbc_icn_leaderboard::before { content: "\f20c"; }
1090
+ .wpbc_icn_leak_add::before { content: "\e3f8"; }
1091
+ .wpbc_icn_leak_remove::before { content: "\e3f9"; }
1092
+ .wpbc_icn_leave_bags_at_home::before { content: "\f21b"; }
1093
+ .wpbc_icn_legend_toggle::before { content: "\f11b"; }
1094
+ .wpbc_icn_lens::before { content: "\e3fa"; }
1095
+ .wpbc_icn_lens_blur::before { content: "\f029"; }
1096
+ .wpbc_icn_library_add::before { content: "\e02e"; }
1097
+ .wpbc_icn_library_add_check::before { content: "\e9b7"; }
1098
+ .wpbc_icn_library_books::before { content: "\e02f"; }
1099
+ .wpbc_icn_library_music::before { content: "\e030"; }
1100
+ .wpbc_icn_light::before { content: "\f02a"; }
1101
+ .wpbc_icn_light_mode::before { content: "\e518"; }
1102
+ .wpbc_icn_lightbulb::before { content: "\e0f0"; }
1103
+ .wpbc_icn_lightbulb_circle::before { content: "\ebfe"; }
1104
+ .wpbc_icn_lightbulb_outline::before { content: "\e90f"; }
1105
+ .wpbc_icn_line_axis::before { content: "\ea9a"; }
1106
+ .wpbc_icn_line_style::before { content: "\e919"; }
1107
+ .wpbc_icn_line_weight::before { content: "\e91a"; }
1108
+ .wpbc_icn_linear_scale::before { content: "\e260"; }
1109
+ .wpbc_icn_link::before { content: "\e157"; }
1110
+ .wpbc_icn_link_off::before { content: "\e16f"; }
1111
+ .wpbc_icn_linked_camera::before { content: "\e438"; }
1112
+ .wpbc_icn_liquor::before { content: "\ea60"; }
1113
+ .wpbc_icn_list::before { content: "\e896"; }
1114
+ .wpbc_icn_list_alt::before { content: "\e0ee"; }
1115
+ .wpbc_icn_live_help::before { content: "\e0c6"; }
1116
+ .wpbc_icn_live_tv::before { content: "\e639"; }
1117
+ .wpbc_icn_living::before { content: "\f02b"; }
1118
+ .wpbc_icn_local_activity::before { content: "\e53f"; }
1119
+ .wpbc_icn_local_airport::before { content: "\e53d"; }
1120
+ .wpbc_icn_local_atm::before { content: "\e53e"; }
1121
+ .wpbc_icn_local_attraction::before { content: "\e53f"; }
1122
+ .wpbc_icn_local_bar::before { content: "\e540"; }
1123
+ .wpbc_icn_local_cafe::before { content: "\e541"; }
1124
+ .wpbc_icn_local_car_wash::before { content: "\e542"; }
1125
+ .wpbc_icn_local_convenience_store::before { content: "\e543"; }
1126
+ .wpbc_icn_local_dining::before { content: "\e556"; }
1127
+ .wpbc_icn_local_drink::before { content: "\e544"; }
1128
+ .wpbc_icn_local_fire_department::before { content: "\ef55"; }
1129
+ .wpbc_icn_local_florist::before { content: "\e545"; }
1130
+ .wpbc_icn_local_gas_station::before { content: "\e546"; }
1131
+ .wpbc_icn_local_grocery_store::before { content: "\e547"; }
1132
+ .wpbc_icn_local_hospital::before { content: "\e548"; }
1133
+ .wpbc_icn_local_hotel::before { content: "\e549"; }
1134
+ .wpbc_icn_local_laundry_service::before { content: "\e54a"; }
1135
+ .wpbc_icn_local_library::before { content: "\e54b"; }
1136
+ .wpbc_icn_local_mall::before { content: "\e54c"; }
1137
+ .wpbc_icn_local_movies::before { content: "\e54d"; }
1138
+ .wpbc_icn_local_offer::before { content: "\e54e"; }
1139
+ .wpbc_icn_local_parking::before { content: "\e54f"; }
1140
+ .wpbc_icn_local_pharmacy::before { content: "\e550"; }
1141
+ .wpbc_icn_local_phone::before { content: "\e551"; }
1142
+ .wpbc_icn_local_pizza::before { content: "\e552"; }
1143
+ .wpbc_icn_local_play::before { content: "\e553"; }
1144
+ .wpbc_icn_local_police::before { content: "\ef56"; }
1145
+ .wpbc_icn_local_post_office::before { content: "\e554"; }
1146
+ .wpbc_icn_local_print_shop::before { content: "\e555"; }
1147
+ .wpbc_icn_local_printshop::before { content: "\e555"; }
1148
+ .wpbc_icn_local_restaurant::before { content: "\e556"; }
1149
+ .wpbc_icn_local_see::before { content: "\e557"; }
1150
+ .wpbc_icn_local_shipping::before { content: "\e558"; }
1151
+ .wpbc_icn_local_taxi::before { content: "\e559"; }
1152
+ .wpbc_icn_location_city::before { content: "\e7f1"; }
1153
+ .wpbc_icn_location_disabled::before { content: "\e1b6"; }
1154
+ .wpbc_icn_location_history::before { content: "\e55a"; }
1155
+ .wpbc_icn_location_off::before { content: "\e0c7"; }
1156
+ .wpbc_icn_location_on::before { content: "\e0c8"; }
1157
+ .wpbc_icn_location_pin::before { content: "\f1db"; }
1158
+ .wpbc_icn_location_searching::before { content: "\e1b7"; }
1159
+ .wpbc_icn_lock::before { content: "\e897"; }
1160
+ .wpbc_icn_lock_clock::before { content: "\ef57"; }
1161
+ .wpbc_icn_lock_open::before { content: "\e898"; }
1162
+ .wpbc_icn_lock_outline::before { content: "\e899"; }
1163
+ .wpbc_icn_lock_reset::before { content: "\eade"; }
1164
+ .wpbc_icn_login::before { content: "\ea77"; }
1165
+ .wpbc_icn_logo_dev::before { content: "\ead6"; }
1166
+ .wpbc_icn_logout::before { content: "\e9ba"; }
1167
+ .wpbc_icn_looks::before { content: "\e3fc"; }
1168
+ .wpbc_icn_looks_3::before { content: "\e3fb"; }
1169
+ .wpbc_icn_looks_4::before { content: "\e3fd"; }
1170
+ .wpbc_icn_looks_5::before { content: "\e3fe"; }
1171
+ .wpbc_icn_looks_6::before { content: "\e3ff"; }
1172
+ .wpbc_icn_looks_one::before { content: "\e400"; }
1173
+ .wpbc_icn_looks_two::before { content: "\e401"; }
1174
+ .wpbc_icn_loop::before { content: "\e028"; }
1175
+ .wpbc_icn_loupe::before { content: "\e402"; }
1176
+ .wpbc_icn_low_priority::before { content: "\e16d"; }
1177
+ .wpbc_icn_loyalty::before { content: "\e89a"; }
1178
+ .wpbc_icn_lte_mobiledata::before { content: "\f02c"; }
1179
+ .wpbc_icn_lte_plus_mobiledata::before { content: "\f02d"; }
1180
+ .wpbc_icn_luggage::before { content: "\f235"; }
1181
+ .wpbc_icn_lunch_dining::before { content: "\ea61"; }
1182
+ .wpbc_icn_lyrics::before { content: "\ec0b"; }
1183
+ .wpbc_icn_mail::before { content: "\e158"; }
1184
+ .wpbc_icn_mail_lock::before { content: "\ec0a"; }
1185
+ .wpbc_icn_mail_outline::before { content: "\e0e1"; }
1186
+ .wpbc_icn_male::before { content: "\e58e"; }
1187
+ .wpbc_icn_man::before { content: "\e4eb"; }
1188
+ .wpbc_icn_manage_accounts::before { content: "\f02e"; }
1189
+ .wpbc_icn_manage_history::before { content: "\ebe7"; }
1190
+ .wpbc_icn_manage_search::before { content: "\f02f"; }
1191
+ .wpbc_icn_map::before { content: "\e55b"; }
1192
+ .wpbc_icn_maps_home_work::before { content: "\f030"; }
1193
+ .wpbc_icn_maps_ugc::before { content: "\ef58"; }
1194
+ .wpbc_icn_margin::before { content: "\e9bb"; }
1195
+ .wpbc_icn_mark_as_unread::before { content: "\e9bc"; }
1196
+ .wpbc_icn_mark_chat_read::before { content: "\f18b"; }
1197
+ .wpbc_icn_mark_chat_unread::before { content: "\f189"; }
1198
+ .wpbc_icn_mark_email_read::before { content: "\f18c"; }
1199
+ .wpbc_icn_mark_email_unread::before { content: "\f18a"; }
1200
+ .wpbc_icn_mark_unread_chat_alt::before { content: "\eb9d"; }
1201
+ .wpbc_icn_markunread::before { content: "\e159"; }
1202
+ .wpbc_icn_markunread_mailbox::before { content: "\e89b"; }
1203
+ .wpbc_icn_masks::before { content: "\f218"; }
1204
+ .wpbc_icn_maximize::before { content: "\e930"; }
1205
+ .wpbc_icn_media_bluetooth_off::before { content: "\f031"; }
1206
+ .wpbc_icn_media_bluetooth_on::before { content: "\f032"; }
1207
+ .wpbc_icn_mediation::before { content: "\efa7"; }
1208
+ .wpbc_icn_medical_information::before { content: "\ebed"; }
1209
+ .wpbc_icn_medical_services::before { content: "\f109"; }
1210
+ .wpbc_icn_medication::before { content: "\f033"; }
1211
+ .wpbc_icn_medication_liquid::before { content: "\ea87"; }
1212
+ .wpbc_icn_meeting_room::before { content: "\eb4f"; }
1213
+ .wpbc_icn_memory::before { content: "\e322"; }
1214
+ .wpbc_icn_menu::before { content: "\e5d2"; }
1215
+ .wpbc_icn_menu_book::before { content: "\ea19"; }
1216
+ .wpbc_icn_menu_open::before { content: "\e9bd"; }
1217
+ .wpbc_icn_merge::before { content: "\eb98"; }
1218
+ .wpbc_icn_merge_type::before { content: "\e252"; }
1219
+ .wpbc_icn_message::before { content: "\e0c9"; }
1220
+ .wpbc_icn_messenger::before { content: "\e0ca"; }
1221
+ .wpbc_icn_messenger_outline::before { content: "\e0cb"; }
1222
+ .wpbc_icn_mic::before { content: "\e029"; }
1223
+ .wpbc_icn_mic_external_off::before { content: "\ef59"; }
1224
+ .wpbc_icn_mic_external_on::before { content: "\ef5a"; }
1225
+ .wpbc_icn_mic_none::before { content: "\e02a"; }
1226
+ .wpbc_icn_mic_off::before { content: "\e02b"; }
1227
+ .wpbc_icn_microwave::before { content: "\f204"; }
1228
+ .wpbc_icn_military_tech::before { content: "\ea3f"; }
1229
+ .wpbc_icn_minimize::before { content: "\e931"; }
1230
+ .wpbc_icn_minor_crash::before { content: "\ebf1"; }
1231
+ .wpbc_icn_miscellaneous_services::before { content: "\f10c"; }
1232
+ .wpbc_icn_missed_video_call::before { content: "\e073"; }
1233
+ .wpbc_icn_mms::before { content: "\e618"; }
1234
+ .wpbc_icn_mobile_friendly::before { content: "\e200"; }
1235
+ .wpbc_icn_mobile_off::before { content: "\e201"; }
1236
+ .wpbc_icn_mobile_screen_share::before { content: "\e0e7"; }
1237
+ .wpbc_icn_mobiledata_off::before { content: "\f034"; }
1238
+ .wpbc_icn_mode::before { content: "\f097"; }
1239
+ .wpbc_icn_mode_comment::before { content: "\e253"; }
1240
+ .wpbc_icn_mode_edit::before { content: "\e254"; }
1241
+ .wpbc_icn_mode_edit_outline::before { content: "\f035"; }
1242
+ .wpbc_icn_mode_fan_off::before { content: "\ec17"; }
1243
+ .wpbc_icn_mode_night::before { content: "\f036"; }
1244
+ .wpbc_icn_mode_of_travel::before { content: "\e7ce"; }
1245
+ .wpbc_icn_mode_standby::before { content: "\f037"; }
1246
+ .wpbc_icn_model_training::before { content: "\f0cf"; }
1247
+ .wpbc_icn_monetization_on::before { content: "\e263"; }
1248
+ .wpbc_icn_money::before { content: "\e57d"; }
1249
+ .wpbc_icn_money_off::before { content: "\e25c"; }
1250
+ .wpbc_icn_money_off_csred::before { content: "\f038"; }
1251
+ .wpbc_icn_monitor::before { content: "\ef5b"; }
1252
+ .wpbc_icn_monitor_heart::before { content: "\eaa2"; }
1253
+ .wpbc_icn_monitor_weight::before { content: "\f039"; }
1254
+ .wpbc_icn_monochrome_photos::before { content: "\e403"; }
1255
+ .wpbc_icn_mood::before { content: "\e7f2"; }
1256
+ .wpbc_icn_mood_bad::before { content: "\e7f3"; }
1257
+ .wpbc_icn_moped::before { content: "\eb28"; }
1258
+ .wpbc_icn_more::before { content: "\e619"; }
1259
+ .wpbc_icn_more_horiz::before { content: "\e5d3"; }
1260
+ .wpbc_icn_more_time::before { content: "\ea5d"; }
1261
+ .wpbc_icn_more_vert::before { content: "\e5d4"; }
1262
+ .wpbc_icn_mosque::before { content: "\eab2"; }
1263
+ .wpbc_icn_motion_photos_auto::before { content: "\f03a"; }
1264
+ .wpbc_icn_motion_photos_off::before { content: "\e9c0"; }
1265
+ .wpbc_icn_motion_photos_on::before { content: "\e9c1"; }
1266
+ .wpbc_icn_motion_photos_pause::before { content: "\f227"; }
1267
+ .wpbc_icn_motion_photos_paused::before { content: "\e9c2"; }
1268
+ .wpbc_icn_motorcycle::before { content: "\e91b"; }
1269
+ .wpbc_icn_mouse::before { content: "\e323"; }
1270
+ .wpbc_icn_move_down::before { content: "\eb61"; }
1271
+ .wpbc_icn_move_to_inbox::before { content: "\e168"; }
1272
+ .wpbc_icn_move_up::before { content: "\eb64"; }
1273
+ .wpbc_icn_movie::before { content: "\e02c"; }
1274
+ .wpbc_icn_movie_creation::before { content: "\e404"; }
1275
+ .wpbc_icn_movie_filter::before { content: "\e43a"; }
1276
+ .wpbc_icn_moving::before { content: "\e501"; }
1277
+ .wpbc_icn_mp::before { content: "\e9c3"; }
1278
+ .wpbc_icn_multiline_chart::before { content: "\e6df"; }
1279
+ .wpbc_icn_multiple_stop::before { content: "\f1b9"; }
1280
+ .wpbc_icn_multitrack_audio::before { content: "\e1b8"; }
1281
+ .wpbc_icn_museum::before { content: "\ea36"; }
1282
+ .wpbc_icn_music_note::before { content: "\e405"; }
1283
+ .wpbc_icn_music_off::before { content: "\e440"; }
1284
+ .wpbc_icn_music_video::before { content: "\e063"; }
1285
+ .wpbc_icn_my_library_add::before { content: "\e02e"; }
1286
+ .wpbc_icn_my_library_books::before { content: "\e02f"; }
1287
+ .wpbc_icn_my_library_music::before { content: "\e030"; }
1288
+ .wpbc_icn_my_location::before { content: "\e55c"; }
1289
+ .wpbc_icn_nat::before { content: "\ef5c"; }
1290
+ .wpbc_icn_nature::before { content: "\e406"; }
1291
+ .wpbc_icn_nature_people::before { content: "\e407"; }
1292
+ .wpbc_icn_navigate_before::before { content: "\e408"; }
1293
+ .wpbc_icn_navigate_next::before { content: "\e409"; }
1294
+ .wpbc_icn_navigation::before { content: "\e55d"; }
1295
+ .wpbc_icn_near_me::before { content: "\e569"; }
1296
+ .wpbc_icn_near_me_disabled::before { content: "\f1ef"; }
1297
+ .wpbc_icn_nearby_error::before { content: "\f03b"; }
1298
+ .wpbc_icn_nearby_off::before { content: "\f03c"; }
1299
+ .wpbc_icn_nest_cam_wired_stand::before { content: "\ec16"; }
1300
+ .wpbc_icn_network_cell::before { content: "\e1b9"; }
1301
+ .wpbc_icn_network_check::before { content: "\e640"; }
1302
+ .wpbc_icn_network_locked::before { content: "\e61a"; }
1303
+ .wpbc_icn_network_ping::before { content: "\ebca"; }
1304
+ .wpbc_icn_network_wifi::before { content: "\e1ba"; }
1305
+ .wpbc_icn_network_wifi_1_bar::before { content: "\ebe4"; }
1306
+ .wpbc_icn_network_wifi_2_bar::before { content: "\ebd6"; }
1307
+ .wpbc_icn_network_wifi_3_bar::before { content: "\ebe1"; }
1308
+ .wpbc_icn_new_label::before { content: "\e609"; }
1309
+ .wpbc_icn_new_releases::before { content: "\e031"; }
1310
+ .wpbc_icn_newspaper::before { content: "\eb81"; }
1311
+ .wpbc_icn_next_plan::before { content: "\ef5d"; }
1312
+ .wpbc_icn_next_week::before { content: "\e16a"; }
1313
+ .wpbc_icn_nfc::before { content: "\e1bb"; }
1314
+ .wpbc_icn_night_shelter::before { content: "\f1f1"; }
1315
+ .wpbc_icn_nightlife::before { content: "\ea62"; }
1316
+ .wpbc_icn_nightlight::before { content: "\f03d"; }
1317
+ .wpbc_icn_nightlight_round::before { content: "\ef5e"; }
1318
+ .wpbc_icn_nights_stay::before { content: "\ea46"; }
1319
+ .wpbc_icn_no_accounts::before { content: "\f03e"; }
1320
+ .wpbc_icn_no_backpack::before { content: "\f237"; }
1321
+ .wpbc_icn_no_cell::before { content: "\f1a4"; }
1322
+ .wpbc_icn_no_crash::before { content: "\ebf0"; }
1323
+ .wpbc_icn_no_drinks::before { content: "\f1a5"; }
1324
+ .wpbc_icn_no_encryption::before { content: "\e641"; }
1325
+ .wpbc_icn_no_encryption_gmailerrorred::before { content: "\f03f"; }
1326
+ .wpbc_icn_no_flash::before { content: "\f1a6"; }
1327
+ .wpbc_icn_no_food::before { content: "\f1a7"; }
1328
+ .wpbc_icn_no_luggage::before { content: "\f23b"; }
1329
+ .wpbc_icn_no_meals::before { content: "\f1d6"; }
1330
+ .wpbc_icn_no_meals_ouline::before { content: "\f229"; }
1331
+ .wpbc_icn_no_meeting_room::before { content: "\eb4e"; }
1332
+ .wpbc_icn_no_photography::before { content: "\f1a8"; }
1333
+ .wpbc_icn_no_sim::before { content: "\e0cc"; }
1334
+ .wpbc_icn_no_stroller::before { content: "\f1af"; }
1335
+ .wpbc_icn_no_transfer::before { content: "\f1d5"; }
1336
+ .wpbc_icn_noise_aware::before { content: "\ebec"; }
1337
+ .wpbc_icn_noise_control_off::before { content: "\ebf3"; }
1338
+ .wpbc_icn_nordic_walking::before { content: "\e50e"; }
1339
+ .wpbc_icn_north::before { content: "\f1e0"; }
1340
+ .wpbc_icn_north_east::before { content: "\f1e1"; }
1341
+ .wpbc_icn_north_west::before { content: "\f1e2"; }
1342
+ .wpbc_icn_not_accessible::before { content: "\f0fe"; }
1343
+ .wpbc_icn_not_interested::before { content: "\e033"; }
1344
+ .wpbc_icn_not_listed_location::before { content: "\e575"; }
1345
+ .wpbc_icn_not_started::before { content: "\f0d1"; }
1346
+ .wpbc_icn_note::before { content: "\e06f"; }
1347
+ .wpbc_icn_note_add::before { content: "\e89c"; }
1348
+ .wpbc_icn_note_alt::before { content: "\f040"; }
1349
+ .wpbc_icn_notes::before { content: "\e26c"; }
1350
+ .wpbc_icn_notification_add::before { content: "\e399"; }
1351
+ .wpbc_icn_notification_important::before { content: "\e004"; }
1352
+ .wpbc_icn_notifications::before { content: "\e7f4"; }
1353
+ .wpbc_icn_notifications_active::before { content: "\e7f7"; }
1354
+ .wpbc_icn_notifications_none::before { content: "\e7f5"; }
1355
+ .wpbc_icn_notifications_off::before { content: "\e7f6"; }
1356
+ .wpbc_icn_notifications_on::before { content: "\e7f7"; }
1357
+ .wpbc_icn_notifications_paused::before { content: "\e7f8"; }
1358
+ .wpbc_icn_now_wallpaper::before { content: "\e1bc"; }
1359
+ .wpbc_icn_now_widgets::before { content: "\e1bd"; }
1360
+ .wpbc_icn_numbers::before { content: "\eac7"; }
1361
+ .wpbc_icn_offline_bolt::before { content: "\e932"; }
1362
+ .wpbc_icn_offline_pin::before { content: "\e90a"; }
1363
+ .wpbc_icn_offline_share::before { content: "\e9c5"; }
1364
+ .wpbc_icn_oil_barrel::before { content: "\ec15"; }
1365
+ .wpbc_icn_on_device_training::before { content: "\ebfd"; }
1366
+ .wpbc_icn_ondemand_video::before { content: "\e63a"; }
1367
+ .wpbc_icn_online_prediction::before { content: "\f0eb"; }
1368
+ .wpbc_icn_opacity::before { content: "\e91c"; }
1369
+ .wpbc_icn_open_in_browser::before { content: "\e89d"; }
1370
+ .wpbc_icn_open_in_full::before { content: "\f1ce"; }
1371
+ .wpbc_icn_open_in_new::before { content: "\e89e"; }
1372
+ .wpbc_icn_open_in_new_off::before { content: "\e4f6"; }
1373
+ .wpbc_icn_open_with::before { content: "\e89f"; }
1374
+ .wpbc_icn_other_houses::before { content: "\e58c"; }
1375
+ .wpbc_icn_outbond::before { content: "\f228"; }
1376
+ .wpbc_icn_outbound::before { content: "\e1ca"; }
1377
+ .wpbc_icn_outbox::before { content: "\ef5f"; }
1378
+ .wpbc_icn_outdoor_grill::before { content: "\ea47"; }
1379
+ .wpbc_icn_outgoing_mail::before { content: "\f0d2"; }
1380
+ .wpbc_icn_outlet::before { content: "\f1d4"; }
1381
+ .wpbc_icn_outlined_flag::before { content: "\e16e"; }
1382
+ .wpbc_icn_output::before { content: "\ebbe"; }
1383
+ .wpbc_icn_padding::before { content: "\e9c8"; }
1384
+ .wpbc_icn_pages::before { content: "\e7f9"; }
1385
+ .wpbc_icn_pageview::before { content: "\e8a0"; }
1386
+ .wpbc_icn_paid::before { content: "\f041"; }
1387
+ .wpbc_icn_palette::before { content: "\e40a"; }
1388
+ .wpbc_icn_pan_tool::before { content: "\e925"; }
1389
+ .wpbc_icn_pan_tool_alt::before { content: "\ebb9"; }
1390
+ .wpbc_icn_panorama::before { content: "\e40b"; }
1391
+ .wpbc_icn_panorama_fish_eye::before { content: "\e40c"; }
1392
+ .wpbc_icn_panorama_fisheye::before { content: "\e40c"; }
1393
+ .wpbc_icn_panorama_horizontal::before { content: "\e40d"; }
1394
+ .wpbc_icn_panorama_horizontal_select::before { content: "\ef60"; }
1395
+ .wpbc_icn_panorama_photosphere::before { content: "\e9c9"; }
1396
+ .wpbc_icn_panorama_photosphere_select::before { content: "\e9ca"; }
1397
+ .wpbc_icn_panorama_vertical::before { content: "\e40e"; }
1398
+ .wpbc_icn_panorama_vertical_select::before { content: "\ef61"; }
1399
+ .wpbc_icn_panorama_wide_angle::before { content: "\e40f"; }
1400
+ .wpbc_icn_panorama_wide_angle_select::before { content: "\ef62"; }
1401
+ .wpbc_icn_paragliding::before { content: "\e50f"; }
1402
+ .wpbc_icn_park::before { content: "\ea63"; }
1403
+ .wpbc_icn_party_mode::before { content: "\e7fa"; }
1404
+ .wpbc_icn_password::before { content: "\f042"; }
1405
+ .wpbc_icn_pattern::before { content: "\f043"; }
1406
+ .wpbc_icn_pause::before { content: "\e034"; }
1407
+ .wpbc_icn_pause_circle::before { content: "\e1a2"; }
1408
+ .wpbc_icn_pause_circle_filled::before { content: "\e035"; }
1409
+ .wpbc_icn_pause_circle_outline::before { content: "\e036"; }
1410
+ .wpbc_icn_pause_presentation::before { content: "\e0ea"; }
1411
+ .wpbc_icn_payment::before { content: "\e8a1"; }
1412
+ .wpbc_icn_payments::before { content: "\ef63"; }
1413
+ .wpbc_icn_paypal::before { content: "\ea8d"; }
1414
+ .wpbc_icn_pedal_bike::before { content: "\eb29"; }
1415
+ .wpbc_icn_pending::before { content: "\ef64"; }
1416
+ .wpbc_icn_pending_actions::before { content: "\f1bb"; }
1417
+ .wpbc_icn_pentagon::before { content: "\eb50"; }
1418
+ .wpbc_icn_people::before { content: "\e7fb"; }
1419
+ .wpbc_icn_people_alt::before { content: "\ea21"; }
1420
+ .wpbc_icn_people_outline::before { content: "\e7fc"; }
1421
+ .wpbc_icn_percent::before { content: "\eb58"; }
1422
+ .wpbc_icn_perm_camera_mic::before { content: "\e8a2"; }
1423
+ .wpbc_icn_perm_contact_cal::before { content: "\e8a3"; }
1424
+ .wpbc_icn_perm_contact_calendar::before { content: "\e8a3"; }
1425
+ .wpbc_icn_perm_data_setting::before { content: "\e8a4"; }
1426
+ .wpbc_icn_perm_device_info::before { content: "\e8a5"; }
1427
+ .wpbc_icn_perm_device_information::before { content: "\e8a5"; }
1428
+ .wpbc_icn_perm_identity::before { content: "\e8a6"; }
1429
+ .wpbc_icn_perm_media::before { content: "\e8a7"; }
1430
+ .wpbc_icn_perm_phone_msg::before { content: "\e8a8"; }
1431
+ .wpbc_icn_perm_scan_wifi::before { content: "\e8a9"; }
1432
+ .wpbc_icn_person::before { content: "\e7fd"; }
1433
+ .wpbc_icn_person_add::before { content: "\e7fe"; }
1434
+ .wpbc_icn_person_add_alt::before { content: "\ea4d"; }
1435
+ .wpbc_icn_person_add_alt_1::before { content: "\ef65"; }
1436
+ .wpbc_icn_person_add_disabled::before { content: "\e9cb"; }
1437
+ .wpbc_icn_person_off::before { content: "\e510"; }
1438
+ .wpbc_icn_person_outline::before { content: "\e7ff"; }
1439
+ .wpbc_icn_person_pin::before { content: "\e55a"; }
1440
+ .wpbc_icn_person_pin_circle::before { content: "\e56a"; }
1441
+ .wpbc_icn_person_remove::before { content: "\ef66"; }
1442
+ .wpbc_icn_person_remove_alt_1::before { content: "\ef67"; }
1443
+ .wpbc_icn_person_search::before { content: "\f106"; }
1444
+ .wpbc_icn_personal_injury::before { content: "\e6da"; }
1445
+ .wpbc_icn_personal_video::before { content: "\e63b"; }
1446
+ .wpbc_icn_pest_control::before { content: "\f0fa"; }
1447
+ .wpbc_icn_pest_control_rodent::before { content: "\f0fd"; }
1448
+ .wpbc_icn_pets::before { content: "\e91d"; }
1449
+ .wpbc_icn_phishing::before { content: "\ead7"; }
1450
+ .wpbc_icn_phone::before { content: "\e0cd"; }
1451
+ .wpbc_icn_phone_android::before { content: "\e324"; }
1452
+ .wpbc_icn_phone_bluetooth_speaker::before { content: "\e61b"; }
1453
+ .wpbc_icn_phone_callback::before { content: "\e649"; }
1454
+ .wpbc_icn_phone_disabled::before { content: "\e9cc"; }
1455
+ .wpbc_icn_phone_enabled::before { content: "\e9cd"; }
1456
+ .wpbc_icn_phone_forwarded::before { content: "\e61c"; }
1457
+ .wpbc_icn_phone_in_talk::before { content: "\e61d"; }
1458
+ .wpbc_icn_phone_iphone::before { content: "\e325"; }
1459
+ .wpbc_icn_phone_locked::before { content: "\e61e"; }
1460
+ .wpbc_icn_phone_missed::before { content: "\e61f"; }
1461
+ .wpbc_icn_phone_paused::before { content: "\e620"; }
1462
+ .wpbc_icn_phonelink::before { content: "\e326"; }
1463
+ .wpbc_icn_phonelink_erase::before { content: "\e0db"; }
1464
+ .wpbc_icn_phonelink_lock::before { content: "\e0dc"; }
1465
+ .wpbc_icn_phonelink_off::before { content: "\e327"; }
1466
+ .wpbc_icn_phonelink_ring::before { content: "\e0dd"; }
1467
+ .wpbc_icn_phonelink_setup::before { content: "\e0de"; }
1468
+ .wpbc_icn_photo::before { content: "\e410"; }
1469
+ .wpbc_icn_photo_album::before { content: "\e411"; }
1470
+ .wpbc_icn_photo_camera::before { content: "\e412"; }
1471
+ .wpbc_icn_photo_camera_back::before { content: "\ef68"; }
1472
+ .wpbc_icn_photo_camera_front::before { content: "\ef69"; }
1473
+ .wpbc_icn_photo_filter::before { content: "\e43b"; }
1474
+ .wpbc_icn_photo_library::before { content: "\e413"; }
1475
+ .wpbc_icn_photo_size_select_actual::before { content: "\e432"; }
1476
+ .wpbc_icn_photo_size_select_large::before { content: "\e433"; }
1477
+ .wpbc_icn_photo_size_select_small::before { content: "\e434"; }
1478
+ .wpbc_icn_php::before { content: "\eb8f"; }
1479
+ .wpbc_icn_piano::before { content: "\e521"; }
1480
+ .wpbc_icn_piano_off::before { content: "\e520"; }
1481
+ .wpbc_icn_picture_as_pdf::before { content: "\e415"; }
1482
+ .wpbc_icn_picture_in_picture::before { content: "\e8aa"; }
1483
+ .wpbc_icn_picture_in_picture_alt::before { content: "\e911"; }
1484
+ .wpbc_icn_pie_chart::before { content: "\e6c4"; }
1485
+ .wpbc_icn_pie_chart_outline::before { content: "\f044"; }
1486
+ .wpbc_icn_pie_chart_outlined::before { content: "\e6c5"; }
1487
+ .wpbc_icn_pin::before { content: "\f045"; }
1488
+ .wpbc_icn_pin_drop::before { content: "\e55e"; }
1489
+ .wpbc_icn_pin_end::before { content: "\e767"; }
1490
+ .wpbc_icn_pin_invoke::before { content: "\e763"; }
1491
+ .wpbc_icn_pinch::before { content: "\eb38"; }
1492
+ .wpbc_icn_pivot_table_chart::before { content: "\e9ce"; }
1493
+ .wpbc_icn_pix::before { content: "\eaa3"; }
1494
+ .wpbc_icn_place::before { content: "\e55f"; }
1495
+ .wpbc_icn_plagiarism::before { content: "\ea5a"; }
1496
+ .wpbc_icn_play_arrow::before { content: "\e037"; }
1497
+ .wpbc_icn_play_circle::before { content: "\e1c4"; }
1498
+ .wpbc_icn_play_circle_fill::before { content: "\e038"; }
1499
+ .wpbc_icn_play_circle_filled::before { content: "\e038"; }
1500
+ .wpbc_icn_play_circle_outline::before { content: "\e039"; }
1501
+ .wpbc_icn_play_disabled::before { content: "\ef6a"; }
1502
+ .wpbc_icn_play_for_work::before { content: "\e906"; }
1503
+ .wpbc_icn_play_lesson::before { content: "\f047"; }
1504
+ .wpbc_icn_playlist_add::before { content: "\e03b"; }
1505
+ .wpbc_icn_playlist_add_check::before { content: "\e065"; }
1506
+ .wpbc_icn_playlist_add_check_circle::before { content: "\e7e6"; }
1507
+ .wpbc_icn_playlist_add_circle::before { content: "\e7e5"; }
1508
+ .wpbc_icn_playlist_play::before { content: "\e05f"; }
1509
+ .wpbc_icn_playlist_remove::before { content: "\eb80"; }
1510
+ .wpbc_icn_plumbing::before { content: "\f107"; }
1511
+ .wpbc_icn_plus_one::before { content: "\e800"; }
1512
+ .wpbc_icn_podcasts::before { content: "\f048"; }
1513
+ .wpbc_icn_point_of_sale::before { content: "\f17e"; }
1514
+ .wpbc_icn_policy::before { content: "\ea17"; }
1515
+ .wpbc_icn_poll::before { content: "\e801"; }
1516
+ .wpbc_icn_polyline::before { content: "\ebbb"; }
1517
+ .wpbc_icn_polymer::before { content: "\e8ab"; }
1518
+ .wpbc_icn_pool::before { content: "\eb48"; }
1519
+ .wpbc_icn_portable_wifi_off::before { content: "\e0ce"; }
1520
+ .wpbc_icn_portrait::before { content: "\e416"; }
1521
+ .wpbc_icn_post_add::before { content: "\ea20"; }
1522
+ .wpbc_icn_power::before { content: "\e63c"; }
1523
+ .wpbc_icn_power_input::before { content: "\e336"; }
1524
+ .wpbc_icn_power_off::before { content: "\e646"; }
1525
+ .wpbc_icn_power_settings_new::before { content: "\e8ac"; }
1526
+ .wpbc_icn_precision_manufacturing::before { content: "\f049"; }
1527
+ .wpbc_icn_pregnant_woman::before { content: "\e91e"; }
1528
+ .wpbc_icn_present_to_all::before { content: "\e0df"; }
1529
+ .wpbc_icn_preview::before { content: "\f1c5"; }
1530
+ .wpbc_icn_price_change::before { content: "\f04a"; }
1531
+ .wpbc_icn_price_check::before { content: "\f04b"; }
1532
+ .wpbc_icn_print::before { content: "\e8ad"; }
1533
+ .wpbc_icn_print_disabled::before { content: "\e9cf"; }
1534
+ .wpbc_icn_priority_high::before { content: "\e645"; }
1535
+ .wpbc_icn_privacy_tip::before { content: "\f0dc"; }
1536
+ .wpbc_icn_private_connectivity::before { content: "\e744"; }
1537
+ .wpbc_icn_production_quantity_limits::before { content: "\e1d1"; }
1538
+ .wpbc_icn_propane::before { content: "\ec14"; }
1539
+ .wpbc_icn_propane_tank::before { content: "\ec13"; }
1540
+ .wpbc_icn_psychology::before { content: "\ea4a"; }
1541
+ .wpbc_icn_public::before { content: "\e80b"; }
1542
+ .wpbc_icn_public_off::before { content: "\f1ca"; }
1543
+ .wpbc_icn_publish::before { content: "\e255"; }
1544
+ .wpbc_icn_published_with_changes::before { content: "\f232"; }
1545
+ .wpbc_icn_punch_clock::before { content: "\eaa8"; }
1546
+ .wpbc_icn_push_pin::before { content: "\f10d"; }
1547
+ .wpbc_icn_qr_code::before { content: "\ef6b"; }
1548
+ .wpbc_icn_qr_code_2::before { content: "\e00a"; }
1549
+ .wpbc_icn_qr_code_scanner::before { content: "\f206"; }
1550
+ .wpbc_icn_query_builder::before { content: "\e8ae"; }
1551
+ .wpbc_icn_query_stats::before { content: "\e4fc"; }
1552
+ .wpbc_icn_question_answer::before { content: "\e8af"; }
1553
+ .wpbc_icn_question_mark::before { content: "\eb8b"; }
1554
+ .wpbc_icn_queue::before { content: "\e03c"; }
1555
+ .wpbc_icn_queue_music::before { content: "\e03d"; }
1556
+ .wpbc_icn_queue_play_next::before { content: "\e066"; }
1557
+ .wpbc_icn_quick_contacts_dialer::before { content: "\e0cf"; }
1558
+ .wpbc_icn_quick_contacts_mail::before { content: "\e0d0"; }
1559
+ .wpbc_icn_quickreply::before { content: "\ef6c"; }
1560
+ .wpbc_icn_quiz::before { content: "\f04c"; }
1561
+ .wpbc_icn_quora::before { content: "\ea98"; }
1562
+ .wpbc_icn_r_mobiledata::before { content: "\f04d"; }
1563
+ .wpbc_icn_radar::before { content: "\f04e"; }
1564
+ .wpbc_icn_radio::before { content: "\e03e"; }
1565
+ .wpbc_icn_radio_button_checked::before { content: "\e837"; }
1566
+ .wpbc_icn_radio_button_off::before { content: "\e836"; }
1567
+ .wpbc_icn_radio_button_on::before { content: "\e837"; }
1568
+ .wpbc_icn_radio_button_unchecked::before { content: "\e836"; }
1569
+ .wpbc_icn_railway_alert::before { content: "\e9d1"; }
1570
+ .wpbc_icn_ramen_dining::before { content: "\ea64"; }
1571
+ .wpbc_icn_ramp_left::before { content: "\eb9c"; }
1572
+ .wpbc_icn_ramp_right::before { content: "\eb96"; }
1573
+ .wpbc_icn_rate_review::before { content: "\e560"; }
1574
+ .wpbc_icn_raw_off::before { content: "\f04f"; }
1575
+ .wpbc_icn_raw_on::before { content: "\f050"; }
1576
+ .wpbc_icn_read_more::before { content: "\ef6d"; }
1577
+ .wpbc_icn_real_estate_agent::before { content: "\e73a"; }
1578
+ .wpbc_icn_receipt::before { content: "\e8b0"; }
1579
+ .wpbc_icn_receipt_long::before { content: "\ef6e"; }
1580
+ .wpbc_icn_recent_actors::before { content: "\e03f"; }
1581
+ .wpbc_icn_recommend::before { content: "\e9d2"; }
1582
+ .wpbc_icn_record_voice_over::before { content: "\e91f"; }
1583
+ .wpbc_icn_rectangle::before { content: "\eb54"; }
1584
+ .wpbc_icn_recycling::before { content: "\e760"; }
1585
+ .wpbc_icn_reddit::before { content: "\eaa0"; }
1586
+ .wpbc_icn_redeem::before { content: "\e8b1"; }
1587
+ .wpbc_icn_redo::before { content: "\e15a"; }
1588
+ .wpbc_icn_reduce_capacity::before { content: "\f21c"; }
1589
+ .wpbc_icn_refresh::before { content: "\e5d5"; }
1590
+ .wpbc_icn_remember_me::before { content: "\f051"; }
1591
+ .wpbc_icn_remove::before { content: "\e15b"; }
1592
+ .wpbc_icn_remove_circle::before { content: "\e15c"; }
1593
+ .wpbc_icn_remove_circle_outline::before { content: "\e15d"; }
1594
+ .wpbc_icn_remove_done::before { content: "\e9d3"; }
1595
+ .wpbc_icn_remove_from_queue::before { content: "\e067"; }
1596
+ .wpbc_icn_remove_moderator::before { content: "\e9d4"; }
1597
+ .wpbc_icn_remove_red_eye::before { content: "\e417"; }
1598
+ .wpbc_icn_remove_road::before { content: "\ebfc"; }
1599
+ .wpbc_icn_remove_shopping_cart::before { content: "\e928"; }
1600
+ .wpbc_icn_reorder::before { content: "\e8fe"; }
1601
+ .wpbc_icn_repeat::before { content: "\e040"; }
1602
+ .wpbc_icn_repeat_on::before { content: "\e9d6"; }
1603
+ .wpbc_icn_repeat_one::before { content: "\e041"; }
1604
+ .wpbc_icn_repeat_one_on::before { content: "\e9d7"; }
1605
+ .wpbc_icn_replay::before { content: "\e042"; }
1606
+ .wpbc_icn_replay_10::before { content: "\e059"; }
1607
+ .wpbc_icn_replay_30::before { content: "\e05a"; }
1608
+ .wpbc_icn_replay_5::before { content: "\e05b"; }
1609
+ .wpbc_icn_replay_circle_filled::before { content: "\e9d8"; }
1610
+ .wpbc_icn_reply::before { content: "\e15e"; }
1611
+ .wpbc_icn_reply_all::before { content: "\e15f"; }
1612
+ .wpbc_icn_report::before { content: "\e160"; }
1613
+ .wpbc_icn_report_gmailerrorred::before { content: "\f052"; }
1614
+ .wpbc_icn_report_off::before { content: "\e170"; }
1615
+ .wpbc_icn_report_problem::before { content: "\e8b2"; }
1616
+ .wpbc_icn_request_page::before { content: "\f22c"; }
1617
+ .wpbc_icn_request_quote::before { content: "\f1b6"; }
1618
+ .wpbc_icn_reset_tv::before { content: "\e9d9"; }
1619
+ .wpbc_icn_restart_alt::before { content: "\f053"; }
1620
+ .wpbc_icn_restaurant::before { content: "\e56c"; }
1621
+ .wpbc_icn_restaurant_menu::before { content: "\e561"; }
1622
+ .wpbc_icn_restore::before { content: "\e8b3"; }
1623
+ .wpbc_icn_restore_from_trash::before { content: "\e938"; }
1624
+ .wpbc_icn_restore_page::before { content: "\e929"; }
1625
+ .wpbc_icn_reviews::before { content: "\f054"; }
1626
+ .wpbc_icn_rice_bowl::before { content: "\f1f5"; }
1627
+ .wpbc_icn_ring_volume::before { content: "\e0d1"; }
1628
+ .wpbc_icn_rocket::before { content: "\eba5"; }
1629
+ .wpbc_icn_rocket_launch::before { content: "\eb9b"; }
1630
+ .wpbc_icn_roller_shades::before { content: "\ec12"; }
1631
+ .wpbc_icn_roller_shades_closed::before { content: "\ec11"; }
1632
+ .wpbc_icn_roller_skating::before { content: "\ebcd"; }
1633
+ .wpbc_icn_roofing::before { content: "\f201"; }
1634
+ .wpbc_icn_room::before { content: "\e8b4"; }
1635
+ .wpbc_icn_room_preferences::before { content: "\f1b8"; }
1636
+ .wpbc_icn_room_service::before { content: "\eb49"; }
1637
+ .wpbc_icn_rotate_90_degrees_ccw::before { content: "\e418"; }
1638
+ .wpbc_icn_rotate_90_degrees_cw::before { content: "\eaab"; }
1639
+ .wpbc_icn_rotate_left::before { content: "\e419"; }
1640
+ .wpbc_icn_rotate_right::before { content: "\e41a"; }
1641
+ .wpbc_icn_roundabout_left::before { content: "\eb99"; }
1642
+ .wpbc_icn_roundabout_right::before { content: "\eba3"; }
1643
+ .wpbc_icn_rounded_corner::before { content: "\e920"; }
1644
+ .wpbc_icn_route::before { content: "\eacd"; }
1645
+ .wpbc_icn_router::before { content: "\e328"; }
1646
+ .wpbc_icn_rowing::before { content: "\e921"; }
1647
+ .wpbc_icn_rss_feed::before { content: "\e0e5"; }
1648
+ .wpbc_icn_rsvp::before { content: "\f055"; }
1649
+ .wpbc_icn_rtt::before { content: "\e9ad"; }
1650
+ .wpbc_icn_rule::before { content: "\f1c2"; }
1651
+ .wpbc_icn_rule_folder::before { content: "\f1c9"; }
1652
+ .wpbc_icn_run_circle::before { content: "\ef6f"; }
1653
+ .wpbc_icn_running_with_errors::before { content: "\e51d"; }
1654
+ .wpbc_icn_rv_hookup::before { content: "\e642"; }
1655
+ .wpbc_icn_safety_check::before { content: "\ebef"; }
1656
+ .wpbc_icn_safety_divider::before { content: "\e1cc"; }
1657
+ .wpbc_icn_sailing::before { content: "\e502"; }
1658
+ .wpbc_icn_sanitizer::before { content: "\f21d"; }
1659
+ .wpbc_icn_satellite::before { content: "\e562"; }
1660
+ .wpbc_icn_satellite_alt::before { content: "\eb3a"; }
1661
+ .wpbc_icn_save::before { content: "\e161"; }
1662
+ .wpbc_icn_save_alt::before { content: "\e171"; }
1663
+ .wpbc_icn_save_as::before { content: "\eb60"; }
1664
+ .wpbc_icn_saved_search::before { content: "\ea11"; }
1665
+ .wpbc_icn_savings::before { content: "\e2eb"; }
1666
+ .wpbc_icn_scale::before { content: "\eb5f"; }
1667
+ .wpbc_icn_scanner::before { content: "\e329"; }
1668
+ .wpbc_icn_scatter_plot::before { content: "\e268"; }
1669
+ .wpbc_icn_schedule::before { content: "\e8b5"; }
1670
+ .wpbc_icn_schedule_send::before { content: "\ea0a"; }
1671
+ .wpbc_icn_schema::before { content: "\e4fd"; }
1672
+ .wpbc_icn_school::before { content: "\e80c"; }
1673
+ .wpbc_icn_science::before { content: "\ea4b"; }
1674
+ .wpbc_icn_score::before { content: "\e269"; }
1675
+ .wpbc_icn_scoreboard::before { content: "\ebd0"; }
1676
+ .wpbc_icn_screen_lock_landscape::before { content: "\e1be"; }
1677
+ .wpbc_icn_screen_lock_portrait::before { content: "\e1bf"; }
1678
+ .wpbc_icn_screen_lock_rotation::before { content: "\e1c0"; }
1679
+ .wpbc_icn_screen_rotation::before { content: "\e1c1"; }
1680
+ .wpbc_icn_screen_rotation_alt::before { content: "\ebee"; }
1681
+ .wpbc_icn_screen_search_desktop::before { content: "\ef70"; }
1682
+ .wpbc_icn_screen_share::before { content: "\e0e2"; }
1683
+ .wpbc_icn_screenshot::before { content: "\f056"; }
1684
+ .wpbc_icn_screenshot_monitor::before { content: "\ec08"; }
1685
+ .wpbc_icn_scuba_diving::before { content: "\ebce"; }
1686
+ .wpbc_icn_sd::before { content: "\e9dd"; }
1687
+ .wpbc_icn_sd_card::before { content: "\e623"; }
1688
+ .wpbc_icn_sd_card_alert::before { content: "\f057"; }
1689
+ .wpbc_icn_sd_storage::before { content: "\e1c2"; }
1690
+ .wpbc_icn_search::before { content: "\e8b6"; }
1691
+ .wpbc_icn_search_off::before { content: "\ea76"; }
1692
+ .wpbc_icn_security::before { content: "\e32a"; }
1693
+ .wpbc_icn_security_update::before { content: "\f058"; }
1694
+ .wpbc_icn_security_update_good::before { content: "\f059"; }
1695
+ .wpbc_icn_security_update_warning::before { content: "\f05a"; }
1696
+ .wpbc_icn_segment::before { content: "\e94b"; }
1697
+ .wpbc_icn_select_all::before { content: "\e162"; }
1698
+ .wpbc_icn_self_improvement::before { content: "\ea78"; }
1699
+ .wpbc_icn_sell::before { content: "\f05b"; }
1700
+ .wpbc_icn_send::before { content: "\e163"; }
1701
+ .wpbc_icn_send_and_archive::before { content: "\ea0c"; }
1702
+ .wpbc_icn_send_time_extension::before { content: "\eadb"; }
1703
+ .wpbc_icn_send_to_mobile::before { content: "\f05c"; }
1704
+ .wpbc_icn_sensor_door::before { content: "\f1b5"; }
1705
+ .wpbc_icn_sensor_occupied::before { content: "\ec10"; }
1706
+ .wpbc_icn_sensor_window::before { content: "\f1b4"; }
1707
+ .wpbc_icn_sensors::before { content: "\e51e"; }
1708
+ .wpbc_icn_sensors_off::before { content: "\e51f"; }
1709
+ .wpbc_icn_sentiment_dissatisfied::before { content: "\e811"; }
1710
+ .wpbc_icn_sentiment_neutral::before { content: "\e812"; }
1711
+ .wpbc_icn_sentiment_satisfied::before { content: "\e813"; }
1712
+ .wpbc_icn_sentiment_satisfied_alt::before { content: "\e0ed"; }
1713
+ .wpbc_icn_sentiment_very_dissatisfied::before { content: "\e814"; }
1714
+ .wpbc_icn_sentiment_very_satisfied::before { content: "\e815"; }
1715
+ .wpbc_icn_set_meal::before { content: "\f1ea"; }
1716
+ .wpbc_icn_settings::before { content: "\e8b8"; }
1717
+ .wpbc_icn_settings_accessibility::before { content: "\f05d"; }
1718
+ .wpbc_icn_settings_applications::before { content: "\e8b9"; }
1719
+ .wpbc_icn_settings_backup_restore::before { content: "\e8ba"; }
1720
+ .wpbc_icn_settings_bluetooth::before { content: "\e8bb"; }
1721
+ .wpbc_icn_settings_brightness::before { content: "\e8bd"; }
1722
+ .wpbc_icn_settings_cell::before { content: "\e8bc"; }
1723
+ .wpbc_icn_settings_display::before { content: "\e8bd"; }
1724
+ .wpbc_icn_settings_ethernet::before { content: "\e8be"; }
1725
+ .wpbc_icn_settings_input_antenna::before { content: "\e8bf"; }
1726
+ .wpbc_icn_settings_input_component::before { content: "\e8c0"; }
1727
+ .wpbc_icn_settings_input_composite::before { content: "\e8c1"; }
1728
+ .wpbc_icn_settings_input_hdmi::before { content: "\e8c2"; }
1729
+ .wpbc_icn_settings_input_svideo::before { content: "\e8c3"; }
1730
+ .wpbc_icn_settings_overscan::before { content: "\e8c4"; }
1731
+ .wpbc_icn_settings_phone::before { content: "\e8c5"; }
1732
+ .wpbc_icn_settings_power::before { content: "\e8c6"; }
1733
+ .wpbc_icn_settings_remote::before { content: "\e8c7"; }
1734
+ .wpbc_icn_settings_suggest::before { content: "\f05e"; }
1735
+ .wpbc_icn_settings_system_daydream::before { content: "\e1c3"; }
1736
+ .wpbc_icn_settings_voice::before { content: "\e8c8"; }
1737
+ .wpbc_icn_severe_cold::before { content: "\ebd3"; }
1738
+ .wpbc_icn_share::before { content: "\e80d"; }
1739
+ .wpbc_icn_share_arrival_time::before { content: "\e524"; }
1740
+ .wpbc_icn_share_location::before { content: "\f05f"; }
1741
+ .wpbc_icn_shield::before { content: "\e9e0"; }
1742
+ .wpbc_icn_shield_moon::before { content: "\eaa9"; }
1743
+ .wpbc_icn_shop::before { content: "\e8c9"; }
1744
+ .wpbc_icn_shop_2::before { content: "\e19e"; }
1745
+ .wpbc_icn_shop_two::before { content: "\e8ca"; }
1746
+ .wpbc_icn_shopify::before { content: "\ea9d"; }
1747
+ .wpbc_icn_shopping_bag::before { content: "\f1cc"; }
1748
+ .wpbc_icn_shopping_basket::before { content: "\e8cb"; }
1749
+ .wpbc_icn_shopping_cart::before { content: "\e8cc"; }
1750
+ .wpbc_icn_shopping_cart_checkout::before { content: "\eb88"; }
1751
+ .wpbc_icn_short_text::before { content: "\e261"; }
1752
+ .wpbc_icn_shortcut::before { content: "\f060"; }
1753
+ .wpbc_icn_show_chart::before { content: "\e6e1"; }
1754
+ .wpbc_icn_shower::before { content: "\f061"; }
1755
+ .wpbc_icn_shuffle::before { content: "\e043"; }
1756
+ .wpbc_icn_shuffle_on::before { content: "\e9e1"; }
1757
+ .wpbc_icn_shutter_speed::before { content: "\e43d"; }
1758
+ .wpbc_icn_sick::before { content: "\f220"; }
1759
+ .wpbc_icn_sign_language::before { content: "\ebe5"; }
1760
+ .wpbc_icn_signal_cellular_0_bar::before { content: "\f0a8"; }
1761
+ .wpbc_icn_signal_cellular_4_bar::before { content: "\e1c8"; }
1762
+ .wpbc_icn_signal_cellular_alt::before { content: "\e202"; }
1763
+ .wpbc_icn_signal_cellular_alt_1_bar::before { content: "\ebdf"; }
1764
+ .wpbc_icn_signal_cellular_alt_2_bar::before { content: "\ebe3"; }
1765
+ .wpbc_icn_signal_cellular_connected_no_internet_0_bar::before { content: "\f0ac"; }
1766
+ .wpbc_icn_signal_cellular_connected_no_internet_4_bar::before { content: "\e1cd"; }
1767
+ .wpbc_icn_signal_cellular_no_sim::before { content: "\e1ce"; }
1768
+ .wpbc_icn_signal_cellular_nodata::before { content: "\f062"; }
1769
+ .wpbc_icn_signal_cellular_null::before { content: "\e1cf"; }
1770
+ .wpbc_icn_signal_cellular_off::before { content: "\e1d0"; }
1771
+ .wpbc_icn_signal_wifi_0_bar::before { content: "\f0b0"; }
1772
+ .wpbc_icn_signal_wifi_4_bar::before { content: "\e1d8"; }
1773
+ .wpbc_icn_signal_wifi_4_bar_lock::before { content: "\e1d9"; }
1774
+ .wpbc_icn_signal_wifi_bad::before { content: "\f063"; }
1775
+ .wpbc_icn_signal_wifi_connected_no_internet_4::before { content: "\f064"; }
1776
+ .wpbc_icn_signal_wifi_off::before { content: "\e1da"; }
1777
+ .wpbc_icn_signal_wifi_statusbar_4_bar::before { content: "\f065"; }
1778
+ .wpbc_icn_signal_wifi_statusbar_connected_no_internet_4::before { content: "\f066"; }
1779
+ .wpbc_icn_signal_wifi_statusbar_null::before { content: "\f067"; }
1780
+ .wpbc_icn_signpost::before { content: "\eb91"; }
1781
+ .wpbc_icn_sim_card::before { content: "\e32b"; }
1782
+ .wpbc_icn_sim_card_alert::before { content: "\e624"; }
1783
+ .wpbc_icn_sim_card_download::before { content: "\f068"; }
1784
+ .wpbc_icn_single_bed::before { content: "\ea48"; }
1785
+ .wpbc_icn_sip::before { content: "\f069"; }
1786
+ .wpbc_icn_skateboarding::before { content: "\e511"; }
1787
+ .wpbc_icn_skip_next::before { content: "\e044"; }
1788
+ .wpbc_icn_skip_previous::before { content: "\e045"; }
1789
+ .wpbc_icn_sledding::before { content: "\e512"; }
1790
+ .wpbc_icn_slideshow::before { content: "\e41b"; }
1791
+ .wpbc_icn_slow_motion_video::before { content: "\e068"; }
1792
+ .wpbc_icn_smart_button::before { content: "\f1c1"; }
1793
+ .wpbc_icn_smart_display::before { content: "\f06a"; }
1794
+ .wpbc_icn_smart_screen::before { content: "\f06b"; }
1795
+ .wpbc_icn_smart_toy::before { content: "\f06c"; }
1796
+ .wpbc_icn_smartphone::before { content: "\e32c"; }
1797
+ .wpbc_icn_smoke_free::before { content: "\eb4a"; }
1798
+ .wpbc_icn_smoking_rooms::before { content: "\eb4b"; }
1799
+ .wpbc_icn_sms::before { content: "\e625"; }
1800
+ .wpbc_icn_sms_failed::before { content: "\e626"; }
1801
+ .wpbc_icn_snapchat::before { content: "\ea6e"; }
1802
+ .wpbc_icn_snippet_folder::before { content: "\f1c7"; }
1803
+ .wpbc_icn_snooze::before { content: "\e046"; }
1804
+ .wpbc_icn_snowboarding::before { content: "\e513"; }
1805
+ .wpbc_icn_snowing::before { content: "\e80f"; }
1806
+ .wpbc_icn_snowmobile::before { content: "\e503"; }
1807
+ .wpbc_icn_snowshoeing::before { content: "\e514"; }
1808
+ .wpbc_icn_soap::before { content: "\f1b2"; }
1809
+ .wpbc_icn_social_distance::before { content: "\e1cb"; }
1810
+ .wpbc_icn_solar_power::before { content: "\ec0f"; }
1811
+ .wpbc_icn_sort::before { content: "\e164"; }
1812
+ .wpbc_icn_sort_by_alpha::before { content: "\e053"; }
1813
+ .wpbc_icn_sos::before { content: "\ebf7"; }
1814
+ .wpbc_icn_soup_kitchen::before { content: "\e7d3"; }
1815
+ .wpbc_icn_source::before { content: "\f1c4"; }
1816
+ .wpbc_icn_south::before { content: "\f1e3"; }
1817
+ .wpbc_icn_south_america::before { content: "\e7e4"; }
1818
+ .wpbc_icn_south_east::before { content: "\f1e4"; }
1819
+ .wpbc_icn_south_west::before { content: "\f1e5"; }
1820
+ .wpbc_icn_spa::before { content: "\eb4c"; }
1821
+ .wpbc_icn_space_bar::before { content: "\e256"; }
1822
+ .wpbc_icn_space_dashboard::before { content: "\e66b"; }
1823
+ .wpbc_icn_spatial_audio::before { content: "\ebeb"; }
1824
+ .wpbc_icn_spatial_audio_off::before { content: "\ebe8"; }
1825
+ .wpbc_icn_spatial_tracking::before { content: "\ebea"; }
1826
+ .wpbc_icn_speaker::before { content: "\e32d"; }
1827
+ .wpbc_icn_speaker_group::before { content: "\e32e"; }
1828
+ .wpbc_icn_speaker_notes::before { content: "\e8cd"; }
1829
+ .wpbc_icn_speaker_notes_off::before { content: "\e92a"; }
1830
+ .wpbc_icn_speaker_phone::before { content: "\e0d2"; }
1831
+ .wpbc_icn_speed::before { content: "\e9e4"; }
1832
+ .wpbc_icn_spellcheck::before { content: "\e8ce"; }
1833
+ .wpbc_icn_splitscreen::before { content: "\f06d"; }
1834
+ .wpbc_icn_spoke::before { content: "\e9a7"; }
1835
+ .wpbc_icn_sports::before { content: "\ea30"; }
1836
+ .wpbc_icn_sports_bar::before { content: "\f1f3"; }
1837
+ .wpbc_icn_sports_baseball::before { content: "\ea51"; }
1838
+ .wpbc_icn_sports_basketball::before { content: "\ea26"; }
1839
+ .wpbc_icn_sports_cricket::before { content: "\ea27"; }
1840
+ .wpbc_icn_sports_esports::before { content: "\ea28"; }
1841
+ .wpbc_icn_sports_football::before { content: "\ea29"; }
1842
+ .wpbc_icn_sports_golf::before { content: "\ea2a"; }
1843
+ .wpbc_icn_sports_gymnastics::before { content: "\ebc4"; }
1844
+ .wpbc_icn_sports_handball::before { content: "\ea33"; }
1845
+ .wpbc_icn_sports_hockey::before { content: "\ea2b"; }
1846
+ .wpbc_icn_sports_kabaddi::before { content: "\ea34"; }
1847
+ .wpbc_icn_sports_martial_arts::before { content: "\eae9"; }
1848
+ .wpbc_icn_sports_mma::before { content: "\ea2c"; }
1849
+ .wpbc_icn_sports_motorsports::before { content: "\ea2d"; }
1850
+ .wpbc_icn_sports_rugby::before { content: "\ea2e"; }
1851
+ .wpbc_icn_sports_score::before { content: "\f06e"; }
1852
+ .wpbc_icn_sports_soccer::before { content: "\ea2f"; }
1853
+ .wpbc_icn_sports_tennis::before { content: "\ea32"; }
1854
+ .wpbc_icn_sports_volleyball::before { content: "\ea31"; }
1855
+ .wpbc_icn_square::before { content: "\eb36"; }
1856
+ .wpbc_icn_square_foot::before { content: "\ea49"; }
1857
+ .wpbc_icn_ssid_chart::before { content: "\eb66"; }
1858
+ .wpbc_icn_stacked_bar_chart::before { content: "\e9e6"; }
1859
+ .wpbc_icn_stacked_line_chart::before { content: "\f22b"; }
1860
+ .wpbc_icn_stadium::before { content: "\eb90"; }
1861
+ .wpbc_icn_stairs::before { content: "\f1a9"; }
1862
+ .wpbc_icn_star::before { content: "\e838"; }
1863
+ .wpbc_icn_star_border::before { content: "\e83a"; }
1864
+ .wpbc_icn_star_border_purple500::before { content: "\f099"; }
1865
+ .wpbc_icn_star_half::before { content: "\e839"; }
1866
+ .wpbc_icn_star_outline::before { content: "\f06f"; }
1867
+ .wpbc_icn_star_purple500::before { content: "\f09a"; }
1868
+ .wpbc_icn_star_rate::before { content: "\f0ec"; }
1869
+ .wpbc_icn_stars::before { content: "\e8d0"; }
1870
+ .wpbc_icn_start::before { content: "\e089"; }
1871
+ .wpbc_icn_stay_current_landscape::before { content: "\e0d3"; }
1872
+ .wpbc_icn_stay_current_portrait::before { content: "\e0d4"; }
1873
+ .wpbc_icn_stay_primary_landscape::before { content: "\e0d5"; }
1874
+ .wpbc_icn_stay_primary_portrait::before { content: "\e0d6"; }
1875
+ .wpbc_icn_sticky_note_2::before { content: "\f1fc"; }
1876
+ .wpbc_icn_stop::before { content: "\e047"; }
1877
+ .wpbc_icn_stop_circle::before { content: "\ef71"; }
1878
+ .wpbc_icn_stop_screen_share::before { content: "\e0e3"; }
1879
+ .wpbc_icn_storage::before { content: "\e1db"; }
1880
+ .wpbc_icn_store::before { content: "\e8d1"; }
1881
+ .wpbc_icn_store_mall_directory::before { content: "\e563"; }
1882
+ .wpbc_icn_storefront::before { content: "\ea12"; }
1883
+ .wpbc_icn_storm::before { content: "\f070"; }
1884
+ .wpbc_icn_straight::before { content: "\eb95"; }
1885
+ .wpbc_icn_straighten::before { content: "\e41c"; }
1886
+ .wpbc_icn_stream::before { content: "\e9e9"; }
1887
+ .wpbc_icn_streetview::before { content: "\e56e"; }
1888
+ .wpbc_icn_strikethrough_s::before { content: "\e257"; }
1889
+ .wpbc_icn_stroller::before { content: "\f1ae"; }
1890
+ .wpbc_icn_style::before { content: "\e41d"; }
1891
+ .wpbc_icn_subdirectory_arrow_left::before { content: "\e5d9"; }
1892
+ .wpbc_icn_subdirectory_arrow_right::before { content: "\e5da"; }
1893
+ .wpbc_icn_subject::before { content: "\e8d2"; }
1894
+ .wpbc_icn_subscript::before { content: "\f111"; }
1895
+ .wpbc_icn_subscriptions::before { content: "\e064"; }
1896
+ .wpbc_icn_subtitles::before { content: "\e048"; }
1897
+ .wpbc_icn_subtitles_off::before { content: "\ef72"; }
1898
+ .wpbc_icn_subway::before { content: "\e56f"; }
1899
+ .wpbc_icn_summarize::before { content: "\f071"; }
1900
+ .wpbc_icn_sunny::before { content: "\e81a"; }
1901
+ .wpbc_icn_sunny_snowing::before { content: "\e819"; }
1902
+ .wpbc_icn_superscript::before { content: "\f112"; }
1903
+ .wpbc_icn_supervised_user_circle::before { content: "\e939"; }
1904
+ .wpbc_icn_supervisor_account::before { content: "\e8d3"; }
1905
+ .wpbc_icn_support::before { content: "\ef73"; }
1906
+ .wpbc_icn_support_agent::before { content: "\f0e2"; }
1907
+ .wpbc_icn_surfing::before { content: "\e515"; }
1908
+ .wpbc_icn_surround_sound::before { content: "\e049"; }
1909
+ .wpbc_icn_swap_calls::before { content: "\e0d7"; }
1910
+ .wpbc_icn_swap_horiz::before { content: "\e8d4"; }
1911
+ .wpbc_icn_swap_horizontal_circle::before { content: "\e933"; }
1912
+ .wpbc_icn_swap_vert::before { content: "\e8d5"; }
1913
+ .wpbc_icn_swap_vert_circle::before { content: "\e8d6"; }
1914
+ .wpbc_icn_swap_vertical_circle::before { content: "\e8d6"; }
1915
+ .wpbc_icn_swipe::before { content: "\e9ec"; }
1916
+ .wpbc_icn_swipe_down::before { content: "\eb53"; }
1917
+ .wpbc_icn_swipe_down_alt::before { content: "\eb30"; }
1918
+ .wpbc_icn_swipe_left::before { content: "\eb59"; }
1919
+ .wpbc_icn_swipe_left_alt::before { content: "\eb33"; }
1920
+ .wpbc_icn_swipe_right::before { content: "\eb52"; }
1921
+ .wpbc_icn_swipe_right_alt::before { content: "\eb56"; }
1922
+ .wpbc_icn_swipe_up::before { content: "\eb2e"; }
1923
+ .wpbc_icn_swipe_up_alt::before { content: "\eb35"; }
1924
+ .wpbc_icn_swipe_vertical::before { content: "\eb51"; }
1925
+ .wpbc_icn_switch_access_shortcut::before { content: "\e7e1"; }
1926
+ .wpbc_icn_switch_access_shortcut_add::before { content: "\e7e2"; }
1927
+ .wpbc_icn_switch_account::before { content: "\e9ed"; }
1928
+ .wpbc_icn_switch_camera::before { content: "\e41e"; }
1929
+ .wpbc_icn_switch_left::before { content: "\f1d1"; }
1930
+ .wpbc_icn_switch_right::before { content: "\f1d2"; }
1931
+ .wpbc_icn_switch_video::before { content: "\e41f"; }
1932
+ .wpbc_icn_synagogue::before { content: "\eab0"; }
1933
+ .wpbc_icn_sync::before { content: "\e627"; }
1934
+ .wpbc_icn_sync_alt::before { content: "\ea18"; }
1935
+ .wpbc_icn_sync_disabled::before { content: "\e628"; }
1936
+ .wpbc_icn_sync_lock::before { content: "\eaee"; }
1937
+ .wpbc_icn_sync_problem::before { content: "\e629"; }
1938
+ .wpbc_icn_system_security_update::before { content: "\f072"; }
1939
+ .wpbc_icn_system_security_update_good::before { content: "\f073"; }
1940
+ .wpbc_icn_system_security_update_warning::before { content: "\f074"; }
1941
+ .wpbc_icn_system_update::before { content: "\e62a"; }
1942
+ .wpbc_icn_system_update_alt::before { content: "\e8d7"; }
1943
+ .wpbc_icn_system_update_tv::before { content: "\e8d7"; }
1944
+ .wpbc_icn_tab::before { content: "\e8d8"; }
1945
+ .wpbc_icn_tab_unselected::before { content: "\e8d9"; }
1946
+ .wpbc_icn_table_bar::before { content: "\ead2"; }
1947
+ .wpbc_icn_table_chart::before { content: "\e265"; }
1948
+ .wpbc_icn_table_restaurant::before { content: "\eac6"; }
1949
+ .wpbc_icn_table_rows::before { content: "\f101"; }
1950
+ .wpbc_icn_table_view::before { content: "\f1be"; }
1951
+ .wpbc_icn_tablet::before { content: "\e32f"; }
1952
+ .wpbc_icn_tablet_android::before { content: "\e330"; }
1953
+ .wpbc_icn_tablet_mac::before { content: "\e331"; }
1954
+ .wpbc_icn_tag::before { content: "\e9ef"; }
1955
+ .wpbc_icn_tag_faces::before { content: "\e420"; }
1956
+ .wpbc_icn_takeout_dining::before { content: "\ea74"; }
1957
+ .wpbc_icn_tap_and_play::before { content: "\e62b"; }
1958
+ .wpbc_icn_tapas::before { content: "\f1e9"; }
1959
+ .wpbc_icn_task::before { content: "\f075"; }
1960
+ .wpbc_icn_task_alt::before { content: "\e2e6"; }
1961
+ .wpbc_icn_taxi_alert::before { content: "\ef74"; }
1962
+ .wpbc_icn_telegram::before { content: "\ea6b"; }
1963
+ .wpbc_icn_temple_buddhist::before { content: "\eab3"; }
1964
+ .wpbc_icn_temple_hindu::before { content: "\eaaf"; }
1965
+ .wpbc_icn_terminal::before { content: "\eb8e"; }
1966
+ .wpbc_icn_terrain::before { content: "\e564"; }
1967
+ .wpbc_icn_text_decrease::before { content: "\eadd"; }
1968
+ .wpbc_icn_text_fields::before { content: "\e262"; }
1969
+ .wpbc_icn_text_format::before { content: "\e165"; }
1970
+ .wpbc_icn_text_increase::before { content: "\eae2"; }
1971
+ .wpbc_icn_text_rotate_up::before { content: "\e93a"; }
1972
+ .wpbc_icn_text_rotate_vertical::before { content: "\e93b"; }
1973
+ .wpbc_icn_text_rotation_angledown::before { content: "\e93c"; }
1974
+ .wpbc_icn_text_rotation_angleup::before { content: "\e93d"; }
1975
+ .wpbc_icn_text_rotation_down::before { content: "\e93e"; }
1976
+ .wpbc_icn_text_rotation_none::before { content: "\e93f"; }
1977
+ .wpbc_icn_text_snippet::before { content: "\f1c6"; }
1978
+ .wpbc_icn_textsms::before { content: "\e0d8"; }
1979
+ .wpbc_icn_texture::before { content: "\e421"; }
1980
+ .wpbc_icn_theater_comedy::before { content: "\ea66"; }
1981
+ .wpbc_icn_theaters::before { content: "\e8da"; }
1982
+ .wpbc_icn_thermostat::before { content: "\f076"; }
1983
+ .wpbc_icn_thermostat_auto::before { content: "\f077"; }
1984
+ .wpbc_icn_thumb_down::before { content: "\e8db"; }
1985
+ .wpbc_icn_thumb_down_alt::before { content: "\e816"; }
1986
+ .wpbc_icn_thumb_down_off_alt::before { content: "\e9f2"; }
1987
+ .wpbc_icn_thumb_up::before { content: "\e8dc"; }
1988
+ .wpbc_icn_thumb_up_alt::before { content: "\e817"; }
1989
+ .wpbc_icn_thumb_up_off_alt::before { content: "\e9f3"; }
1990
+ .wpbc_icn_thumbs_up_down::before { content: "\e8dd"; }
1991
+ .wpbc_icn_thunderstorm::before { content: "\ebdb"; }
1992
+ .wpbc_icn_tiktok::before { content: "\ea7e"; }
1993
+ .wpbc_icn_time_to_leave::before { content: "\e62c"; }
1994
+ .wpbc_icn_timelapse::before { content: "\e422"; }
1995
+ .wpbc_icn_timeline::before { content: "\e922"; }
1996
+ .wpbc_icn_timer::before { content: "\e425"; }
1997
+ .wpbc_icn_timer_10::before { content: "\e423"; }
1998
+ .wpbc_icn_timer_10_select::before { content: "\f07a"; }
1999
+ .wpbc_icn_timer_3::before { content: "\e424"; }
2000
+ .wpbc_icn_timer_3_select::before { content: "\f07b"; }
2001
+ .wpbc_icn_timer_off::before { content: "\e426"; }
2002
+ .wpbc_icn_tips_and_updates::before { content: "\e79a"; }
2003
+ .wpbc_icn_tire_repair::before { content: "\ebc8"; }
2004
+ .wpbc_icn_title::before { content: "\e264"; }
2005
+ .wpbc_icn_toc::before { content: "\e8de"; }
2006
+ .wpbc_icn_today::before { content: "\e8df"; }
2007
+ .wpbc_icn_toggle_off::before { content: "\e9f5"; }
2008
+ .wpbc_icn_toggle_on::before { content: "\e9f6"; }
2009
+ .wpbc_icn_token::before { content: "\ea25"; }
2010
+ .wpbc_icn_toll::before { content: "\e8e0"; }
2011
+ .wpbc_icn_tonality::before { content: "\e427"; }
2012
+ .wpbc_icn_topic::before { content: "\f1c8"; }
2013
+ .wpbc_icn_tornado::before { content: "\e199"; }
2014
+ .wpbc_icn_touch_app::before { content: "\e913"; }
2015
+ .wpbc_icn_tour::before { content: "\ef75"; }
2016
+ .wpbc_icn_toys::before { content: "\e332"; }
2017
+ .wpbc_icn_track_changes::before { content: "\e8e1"; }
2018
+ .wpbc_icn_traffic::before { content: "\e565"; }
2019
+ .wpbc_icn_train::before { content: "\e570"; }
2020
+ .wpbc_icn_tram::before { content: "\e571"; }
2021
+ .wpbc_icn_transfer_within_a_station::before { content: "\e572"; }
2022
+ .wpbc_icn_transform::before { content: "\e428"; }
2023
+ .wpbc_icn_transgender::before { content: "\e58d"; }
2024
+ .wpbc_icn_transit_enterexit::before { content: "\e579"; }
2025
+ .wpbc_icn_translate::before { content: "\e8e2"; }
2026
+ .wpbc_icn_travel_explore::before { content: "\e2db"; }
2027
+ .wpbc_icn_trending_down::before { content: "\e8e3"; }
2028
+ .wpbc_icn_trending_flat::before { content: "\e8e4"; }
2029
+ .wpbc_icn_trending_neutral::before { content: "\e8e4"; }
2030
+ .wpbc_icn_trending_up::before { content: "\e8e5"; }
2031
+ .wpbc_icn_trip_origin::before { content: "\e57b"; }
2032
+ .wpbc_icn_troubleshoot::before { content: "\e1d2"; }
2033
+ .wpbc_icn_try::before { content: "\f07c"; }
2034
+ .wpbc_icn_tsunami::before { content: "\ebd8"; }
2035
+ .wpbc_icn_tty::before { content: "\f1aa"; }
2036
+ .wpbc_icn_tune::before { content: "\e429"; }
2037
+ .wpbc_icn_tungsten::before { content: "\f07d"; }
2038
+ .wpbc_icn_turn_left::before { content: "\eba6"; }
2039
+ .wpbc_icn_turn_right::before { content: "\ebab"; }
2040
+ .wpbc_icn_turn_sharp_left::before { content: "\eba7"; }
2041
+ .wpbc_icn_turn_sharp_right::before { content: "\ebaa"; }
2042
+ .wpbc_icn_turn_slight_left::before { content: "\eba4"; }
2043
+ .wpbc_icn_turn_slight_right::before { content: "\eb9a"; }
2044
+ .wpbc_icn_turned_in::before { content: "\e8e6"; }
2045
+ .wpbc_icn_turned_in_not::before { content: "\e8e7"; }
2046
+ .wpbc_icn_tv::before { content: "\e333"; }
2047
+ .wpbc_icn_tv_off::before { content: "\e647"; }
2048
+ .wpbc_icn_two_wheeler::before { content: "\e9f9"; }
2049
+ .wpbc_icn_u_turn_left::before { content: "\eba1"; }
2050
+ .wpbc_icn_u_turn_right::before { content: "\eba2"; }
2051
+ .wpbc_icn_umbrella::before { content: "\f1ad"; }
2052
+ .wpbc_icn_unarchive::before { content: "\e169"; }
2053
+ .wpbc_icn_undo::before { content: "\e166"; }
2054
+ .wpbc_icn_unfold_less::before { content: "\e5d6"; }
2055
+ .wpbc_icn_unfold_more::before { content: "\e5d7"; }
2056
+ .wpbc_icn_unpublished::before { content: "\f236"; }
2057
+ .wpbc_icn_unsubscribe::before { content: "\e0eb"; }
2058
+ .wpbc_icn_upcoming::before { content: "\f07e"; }
2059
+ .wpbc_icn_update::before { content: "\e923"; }
2060
+ .wpbc_icn_update_disabled::before { content: "\e075"; }
2061
+ .wpbc_icn_upgrade::before { content: "\f0fb"; }
2062
+ .wpbc_icn_upload::before { content: "\f09b"; }
2063
+ .wpbc_icn_upload_file::before { content: "\e9fc"; }
2064
+ .wpbc_icn_usb::before { content: "\e1e0"; }
2065
+ .wpbc_icn_usb_off::before { content: "\e4fa"; }
2066
+ .wpbc_icn_vaccines::before { content: "\e138"; }
2067
+ .wpbc_icn_vape_free::before { content: "\ebc6"; }
2068
+ .wpbc_icn_vaping_rooms::before { content: "\ebcf"; }
2069
+ .wpbc_icn_verified::before { content: "\ef76"; }
2070
+ .wpbc_icn_verified_user::before { content: "\e8e8"; }
2071
+ .wpbc_icn_vertical_align_bottom::before { content: "\e258"; }
2072
+ .wpbc_icn_vertical_align_center::before { content: "\e259"; }
2073
+ .wpbc_icn_vertical_align_top::before { content: "\e25a"; }
2074
+ .wpbc_icn_vertical_distribute::before { content: "\e076"; }
2075
+ .wpbc_icn_vertical_shades::before { content: "\ec0e"; }
2076
+ .wpbc_icn_vertical_shades_closed::before { content: "\ec0d"; }
2077
+ .wpbc_icn_vertical_split::before { content: "\e949"; }
2078
+ .wpbc_icn_vibration::before { content: "\e62d"; }
2079
+ .wpbc_icn_video_call::before { content: "\e070"; }
2080
+ .wpbc_icn_video_camera_back::before { content: "\f07f"; }
2081
+ .wpbc_icn_video_camera_front::before { content: "\f080"; }
2082
+ .wpbc_icn_video_collection::before { content: "\e04a"; }
2083
+ .wpbc_icn_video_file::before { content: "\eb87"; }
2084
+ .wpbc_icn_video_label::before { content: "\e071"; }
2085
+ .wpbc_icn_video_library::before { content: "\e04a"; }
2086
+ .wpbc_icn_video_settings::before { content: "\ea75"; }
2087
+ .wpbc_icn_video_stable::before { content: "\f081"; }
2088
+ .wpbc_icn_videocam::before { content: "\e04b"; }
2089
+ .wpbc_icn_videocam_off::before { content: "\e04c"; }
2090
+ .wpbc_icn_videogame_asset::before { content: "\e338"; }
2091
+ .wpbc_icn_videogame_asset_off::before { content: "\e500"; }
2092
+ .wpbc_icn_view_agenda::before { content: "\e8e9"; }
2093
+ .wpbc_icn_view_array::before { content: "\e8ea"; }
2094
+ .wpbc_icn_view_carousel::before { content: "\e8eb"; }
2095
+ .wpbc_icn_view_column::before { content: "\e8ec"; }
2096
+ .wpbc_icn_view_comfortable::before { content: "\e42a"; }
2097
+ .wpbc_icn_view_comfy::before { content: "\e42a"; }
2098
+ .wpbc_icn_view_comfy_alt::before { content: "\eb73"; }
2099
+ .wpbc_icn_view_compact::before { content: "\e42b"; }
2100
+ .wpbc_icn_view_compact_alt::before { content: "\eb74"; }
2101
+ .wpbc_icn_view_cozy::before { content: "\eb75"; }
2102
+ .wpbc_icn_view_day::before { content: "\e8ed"; }
2103
+ .wpbc_icn_view_headline::before { content: "\e8ee"; }
2104
+ .wpbc_icn_view_in_ar::before { content: "\e9fe"; }
2105
+ .wpbc_icn_view_kanban::before { content: "\eb7f"; }
2106
+ .wpbc_icn_view_list::before { content: "\e8ef"; }
2107
+ .wpbc_icn_view_module::before { content: "\e8f0"; }
2108
+ .wpbc_icn_view_quilt::before { content: "\e8f1"; }
2109
+ .wpbc_icn_view_sidebar::before { content: "\f114"; }
2110
+ .wpbc_icn_view_stream::before { content: "\e8f2"; }
2111
+ .wpbc_icn_view_timeline::before { content: "\eb85"; }
2112
+ .wpbc_icn_view_week::before { content: "\e8f3"; }
2113
+ .wpbc_icn_vignette::before { content: "\e435"; }
2114
+ .wpbc_icn_villa::before { content: "\e586"; }
2115
+ .wpbc_icn_visibility::before { content: "\e8f4"; }
2116
+ .wpbc_icn_visibility_off::before { content: "\e8f5"; }
2117
+ .wpbc_icn_voice_chat::before { content: "\e62e"; }
2118
+ .wpbc_icn_voice_over_off::before { content: "\e94a"; }
2119
+ .wpbc_icn_voicemail::before { content: "\e0d9"; }
2120
+ .wpbc_icn_volcano::before { content: "\ebda"; }
2121
+ .wpbc_icn_volume_down::before { content: "\e04d"; }
2122
+ .wpbc_icn_volume_down_alt::before { content: "\e79c"; }
2123
+ .wpbc_icn_volume_mute::before { content: "\e04e"; }
2124
+ .wpbc_icn_volume_off::before { content: "\e04f"; }
2125
+ .wpbc_icn_volume_up::before { content: "\e050"; }
2126
+ .wpbc_icn_volunteer_activism::before { content: "\ea70"; }
2127
+ .wpbc_icn_vpn_key::before { content: "\e0da"; }
2128
+ .wpbc_icn_vpn_key_off::before { content: "\eb7a"; }
2129
+ .wpbc_icn_vpn_lock::before { content: "\e62f"; }
2130
+ .wpbc_icn_vrpano::before { content: "\f082"; }
2131
+ .wpbc_icn_wallet_giftcard::before { content: "\e8f6"; }
2132
+ .wpbc_icn_wallet_membership::before { content: "\e8f7"; }
2133
+ .wpbc_icn_wallet_travel::before { content: "\e8f8"; }
2134
+ .wpbc_icn_wallpaper::before { content: "\e1bc"; }
2135
+ .wpbc_icn_warehouse::before { content: "\ebb8"; }
2136
+ .wpbc_icn_warning::before { content: "\e002"; }
2137
+ .wpbc_icn_warning_amber::before { content: "\f083"; }
2138
+ .wpbc_icn_wash::before { content: "\f1b1"; }
2139
+ .wpbc_icn_watch::before { content: "\e334"; }
2140
+ .wpbc_icn_watch_later::before { content: "\e924"; }
2141
+ .wpbc_icn_watch_off::before { content: "\eae3"; }
2142
+ .wpbc_icn_water::before { content: "\f084"; }
2143
+ .wpbc_icn_water_damage::before { content: "\f203"; }
2144
+ .wpbc_icn_water_drop::before { content: "\e798"; }
2145
+ .wpbc_icn_waterfall_chart::before { content: "\ea00"; }
2146
+ .wpbc_icn_waves::before { content: "\e176"; }
2147
+ .wpbc_icn_waving_hand::before { content: "\e766"; }
2148
+ .wpbc_icn_wb_auto::before { content: "\e42c"; }
2149
+ .wpbc_icn_wb_cloudy::before { content: "\e42d"; }
2150
+ .wpbc_icn_wb_incandescent::before { content: "\e42e"; }
2151
+ .wpbc_icn_wb_iridescent::before { content: "\e436"; }
2152
+ .wpbc_icn_wb_shade::before { content: "\ea01"; }
2153
+ .wpbc_icn_wb_sunny::before { content: "\e430"; }
2154
+ .wpbc_icn_wb_twighlight::before { content: "\ea02"; }
2155
+ .wpbc_icn_wb_twilight::before { content: "\e1c6"; }
2156
+ .wpbc_icn_wc::before { content: "\e63d"; }
2157
+ .wpbc_icn_web::before { content: "\e051"; }
2158
+ .wpbc_icn_web_asset::before { content: "\e069"; }
2159
+ .wpbc_icn_web_asset_off::before { content: "\e4f7"; }
2160
+ .wpbc_icn_web_stories::before { content: "\e595"; }
2161
+ .wpbc_icn_webhook::before { content: "\eb92"; }
2162
+ .wpbc_icn_wechat::before { content: "\ea81"; }
2163
+ .wpbc_icn_weekend::before { content: "\e16b"; }
2164
+ .wpbc_icn_west::before { content: "\f1e6"; }
2165
+ .wpbc_icn_whatsapp::before { content: "\ea9c"; }
2166
+ .wpbc_icn_whatshot::before { content: "\e80e"; }
2167
+ .wpbc_icn_wheelchair_pickup::before { content: "\f1ab"; }
2168
+ .wpbc_icn_where_to_vote::before { content: "\e177"; }
2169
+ .wpbc_icn_widgets::before { content: "\e1bd"; }
2170
+ .wpbc_icn_wifi::before { content: "\e63e"; }
2171
+ .wpbc_icn_wifi_1_bar::before { content: "\e4ca"; }
2172
+ .wpbc_icn_wifi_2_bar::before { content: "\e4d9"; }
2173
+ .wpbc_icn_wifi_calling::before { content: "\ef77"; }
2174
+ .wpbc_icn_wifi_calling_3::before { content: "\f085"; }
2175
+ .wpbc_icn_wifi_channel::before { content: "\eb6a"; }
2176
+ .wpbc_icn_wifi_find::before { content: "\eb31"; }
2177
+ .wpbc_icn_wifi_lock::before { content: "\e1e1"; }
2178
+ .wpbc_icn_wifi_off::before { content: "\e648"; }
2179
+ .wpbc_icn_wifi_password::before { content: "\eb6b"; }
2180
+ .wpbc_icn_wifi_protected_setup::before { content: "\f0fc"; }
2181
+ .wpbc_icn_wifi_tethering::before { content: "\e1e2"; }
2182
+ .wpbc_icn_wifi_tethering_error::before { content: "\ead9"; }
2183
+ .wpbc_icn_wifi_tethering_error_rounded::before { content: "\f086"; }
2184
+ .wpbc_icn_wifi_tethering_off::before { content: "\f087"; }
2185
+ .wpbc_icn_wind_power::before { content: "\ec0c"; }
2186
+ .wpbc_icn_window::before { content: "\f088"; }
2187
+ .wpbc_icn_wine_bar::before { content: "\f1e8"; }
2188
+ .wpbc_icn_woman::before { content: "\e13e"; }
2189
+ .wpbc_icn_woo_commerce::before { content: "\ea6d"; }
2190
+ .wpbc_icn_wordpress::before { content: "\ea9f"; }
2191
+ .wpbc_icn_work::before { content: "\e8f9"; }
2192
+ .wpbc_icn_work_history::before { content: "\ec09"; }
2193
+ .wpbc_icn_work_off::before { content: "\e942"; }
2194
+ .wpbc_icn_work_outline::before { content: "\e943"; }
2195
+ .wpbc_icn_workspace_premium::before { content: "\e7af"; }
2196
+ .wpbc_icn_workspaces::before { content: "\e1a0"; }
2197
+ .wpbc_icn_workspaces_filled::before { content: "\ea0d"; }
2198
+ .wpbc_icn_workspaces_outline::before { content: "\ea0f"; }
2199
+ .wpbc_icn_wrap_text::before { content: "\e25b"; }
2200
+ .wpbc_icn_wrong_location::before { content: "\ef78"; }
2201
+ .wpbc_icn_wysiwyg::before { content: "\f1c3"; }
2202
+ .wpbc_icn_yard::before { content: "\f089"; }
2203
+ .wpbc_icn_youtube_searched_for::before { content: "\e8fa"; }
2204
+ .wpbc_icn_zoom_in::before { content: "\e8ff"; }
2205
+ .wpbc_icn_zoom_in_map::before { content: "\eb2d"; }
2206
+ .wpbc_icn_zoom_out::before { content: "\e900"; }
2207
+ .wpbc_icn_zoom_out_map::before { content: "\e56b"; }
assets/libs/popper/enums.js ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ (function (global, factory) {
6
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
7
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
8
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {}));
9
+ }(this, (function (exports) { 'use strict';
10
+
11
+ var top = 'top';
12
+ var bottom = 'bottom';
13
+ var right = 'right';
14
+ var left = 'left';
15
+ var auto = 'auto';
16
+ var basePlacements = [top, bottom, right, left];
17
+ var start = 'start';
18
+ var end = 'end';
19
+ var clippingParents = 'clippingParents';
20
+ var viewport = 'viewport';
21
+ var popper = 'popper';
22
+ var reference = 'reference';
23
+ var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
24
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
25
+ }, []);
26
+ var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
27
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
28
+ }, []); // modifiers that need to read the DOM
29
+
30
+ var beforeRead = 'beforeRead';
31
+ var read = 'read';
32
+ var afterRead = 'afterRead'; // pure-logic modifiers
33
+
34
+ var beforeMain = 'beforeMain';
35
+ var main = 'main';
36
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
37
+
38
+ var beforeWrite = 'beforeWrite';
39
+ var write = 'write';
40
+ var afterWrite = 'afterWrite';
41
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
42
+
43
+ exports.afterMain = afterMain;
44
+ exports.afterRead = afterRead;
45
+ exports.afterWrite = afterWrite;
46
+ exports.auto = auto;
47
+ exports.basePlacements = basePlacements;
48
+ exports.beforeMain = beforeMain;
49
+ exports.beforeRead = beforeRead;
50
+ exports.beforeWrite = beforeWrite;
51
+ exports.bottom = bottom;
52
+ exports.clippingParents = clippingParents;
53
+ exports.end = end;
54
+ exports.left = left;
55
+ exports.main = main;
56
+ exports.modifierPhases = modifierPhases;
57
+ exports.placements = placements;
58
+ exports.popper = popper;
59
+ exports.read = read;
60
+ exports.reference = reference;
61
+ exports.right = right;
62
+ exports.start = start;
63
+ exports.top = top;
64
+ exports.variationPlacements = variationPlacements;
65
+ exports.viewport = viewport;
66
+ exports.write = write;
67
+
68
+ Object.defineProperty(exports, '__esModule', { value: true });
69
+
70
+ })));
71
+ //# sourceMappingURL=enums.js.map
assets/libs/popper/enums.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"enums.js","sources":["../../src/enums.js"],"sourcesContent":["// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n"],"names":["top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases"],"mappings":";;;;;;;;;;MACaA,GAAU,GAAG;MACbC,MAAgB,GAAG;MACnBC,KAAc,GAAG;MACjBC,IAAY,GAAG;MACfC,IAAY,GAAG;MAMfC,cAAoC,GAAG,CAACL,GAAD,EAAMC,MAAN,EAAcC,KAAd,EAAqBC,IAArB;MAEvCG,KAAc,GAAG;MACjBC,GAAU,GAAG;MAGbC,eAAkC,GAAG;MACrCC,QAAoB,GAAG;MAIvBC,MAAgB,GAAG;MACnBC,SAAsB,GAAG;MAgBzBC,mBAA8C,gBAAGP,cAAc,CAACQ,MAAf,CAC5D,UAACC,GAAD,EAAiCC,SAAjC;EAAA,SACED,GAAG,CAACE,MAAJ,CAAW,CAAKD,SAAL,SAAkBT,KAAlB,EAAqCS,SAArC,SAAkDR,GAAlD,CAAX,CADF;EAAA,CAD4D,EAG5D,EAH4D;MAKjDU,UAA4B,gBAAG,UAAIZ,cAAJ,GAAoBD,IAApB,GAA0BS,MAA1B,CAC1C,UACEC,GADF,EAEEC,SAFF;EAAA,SAIED,GAAG,CAACE,MAAJ,CAAW,CACTD,SADS,EAELA,SAFK,SAEQT,KAFR,EAGLS,SAHK,SAGQR,GAHR,CAAX,CAJF;EAAA,CAD0C,EAU1C,EAV0C;;MAc/BW,UAAwB,GAAG;MAC3BC,IAAY,GAAG;MACfC,SAAsB,GAAG;;MAEzBC,UAAwB,GAAG;MAC3BC,IAAY,GAAG;MACfC,SAAsB,GAAG;;MAEzBC,WAA0B,GAAG;MAC7BC,KAAc,GAAG;MACjBC,UAAwB,GAAG;MAC3BC,cAAqC,GAAG,CACnDT,UADmD,EAEnDC,IAFmD,EAGnDC,SAHmD,EAInDC,UAJmD,EAKnDC,IALmD,EAMnDC,SANmD,EAOnDC,WAPmD,EAQnDC,KARmD,EASnDC,UATmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
assets/libs/popper/enums.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";var t="bottom",r="right",o="left",n="auto",a=["top",t,r,o],i="start",f="end",p=a.reduce((function(e,t){return e.concat([t+"-"+i,t+"-"+f])}),[]),c=[].concat(a,[n]).reduce((function(e,t){return e.concat([t,t+"-"+i,t+"-"+f])}),[]),d="beforeRead",s="read",u="afterRead",l="beforeMain",b="main",m="afterMain",P="beforeWrite",g="write",h="afterWrite",v=[d,s,u,l,b,m,P,g,h];e.afterMain=m,e.afterRead=u,e.afterWrite=h,e.auto=n,e.basePlacements=a,e.beforeMain=l,e.beforeRead=d,e.beforeWrite=P,e.bottom=t,e.clippingParents="clippingParents",e.end=f,e.left=o,e.main=b,e.modifierPhases=v,e.placements=c,e.popper="popper",e.read=s,e.reference="reference",e.right=r,e.start=i,e.top="top",e.variationPlacements=p,e.viewport="viewport",e.write=g,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ //# sourceMappingURL=enums.min.js.map
assets/libs/popper/enums.min.js.flow ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ // @flow
2
+
3
+ export * from '../../lib/enums.js'
assets/libs/popper/enums.min.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"enums.min.js","sources":["../../src/enums.js"],"sourcesContent":["// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n"],"names":["bottom","right","left","auto","basePlacements","start","end","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases"],"mappings":";;;;kPAEaA,EAAmB,SACnBC,EAAiB,QACjBC,EAAe,OACfC,EAAe,OAMfC,EAAuC,CAV1B,MAUgCJ,EAAQC,EAAOC,GAE5DG,EAAiB,QACjBC,EAAa,MAyBbC,EAAiDH,EAAeI,QAC3E,SAACC,EAAgCC,UAC/BD,EAAIE,OAAO,CAAKD,MAAaL,EAAmBK,MAAaJ,MAC/D,IAEWM,EAA+B,UAAIR,GAAgBD,IAAMK,QACpE,SACEC,EACAC,UAEAD,EAAIE,OAAO,CACTD,EACIA,MAAaL,EACbK,MAAaJ,MAErB,IAIWO,EAA2B,aAC3BC,EAAe,OACfC,EAAyB,YAEzBC,EAA2B,aAC3BC,EAAe,OACfC,EAAyB,YAEzBC,EAA6B,cAC7BC,EAAiB,QACjBC,EAA2B,aAC3BC,EAAwC,CACnDT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,qJA7DgD,uFAKlB,8BACM,sCAtBZ,yCAiBU"}
assets/libs/popper/popper-base.js ADDED
@@ -0,0 +1,1088 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ (function (global, factory) {
6
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
7
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
8
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {}));
9
+ }(this, (function (exports) { 'use strict';
10
+
11
+ function getWindow(node) {
12
+ if (node == null) {
13
+ return window;
14
+ }
15
+
16
+ if (node.toString() !== '[object Window]') {
17
+ var ownerDocument = node.ownerDocument;
18
+ return ownerDocument ? ownerDocument.defaultView || window : window;
19
+ }
20
+
21
+ return node;
22
+ }
23
+
24
+ function isElement(node) {
25
+ var OwnElement = getWindow(node).Element;
26
+ return node instanceof OwnElement || node instanceof Element;
27
+ }
28
+
29
+ function isHTMLElement(node) {
30
+ var OwnElement = getWindow(node).HTMLElement;
31
+ return node instanceof OwnElement || node instanceof HTMLElement;
32
+ }
33
+
34
+ function isShadowRoot(node) {
35
+ // IE 11 has no ShadowRoot
36
+ if (typeof ShadowRoot === 'undefined') {
37
+ return false;
38
+ }
39
+
40
+ var OwnElement = getWindow(node).ShadowRoot;
41
+ return node instanceof OwnElement || node instanceof ShadowRoot;
42
+ }
43
+
44
+ var max = Math.max;
45
+ var min = Math.min;
46
+ var round = Math.round;
47
+
48
+ function getBoundingClientRect(element, includeScale) {
49
+ if (includeScale === void 0) {
50
+ includeScale = false;
51
+ }
52
+
53
+ var rect = element.getBoundingClientRect();
54
+ var scaleX = 1;
55
+ var scaleY = 1;
56
+
57
+ if (isHTMLElement(element) && includeScale) {
58
+ var offsetHeight = element.offsetHeight;
59
+ var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
60
+ // Fallback to 1 in case both values are `0`
61
+
62
+ if (offsetWidth > 0) {
63
+ scaleX = round(rect.width) / offsetWidth || 1;
64
+ }
65
+
66
+ if (offsetHeight > 0) {
67
+ scaleY = round(rect.height) / offsetHeight || 1;
68
+ }
69
+ }
70
+
71
+ return {
72
+ width: rect.width / scaleX,
73
+ height: rect.height / scaleY,
74
+ top: rect.top / scaleY,
75
+ right: rect.right / scaleX,
76
+ bottom: rect.bottom / scaleY,
77
+ left: rect.left / scaleX,
78
+ x: rect.left / scaleX,
79
+ y: rect.top / scaleY
80
+ };
81
+ }
82
+
83
+ function getWindowScroll(node) {
84
+ var win = getWindow(node);
85
+ var scrollLeft = win.pageXOffset;
86
+ var scrollTop = win.pageYOffset;
87
+ return {
88
+ scrollLeft: scrollLeft,
89
+ scrollTop: scrollTop
90
+ };
91
+ }
92
+
93
+ function getHTMLElementScroll(element) {
94
+ return {
95
+ scrollLeft: element.scrollLeft,
96
+ scrollTop: element.scrollTop
97
+ };
98
+ }
99
+
100
+ function getNodeScroll(node) {
101
+ if (node === getWindow(node) || !isHTMLElement(node)) {
102
+ return getWindowScroll(node);
103
+ } else {
104
+ return getHTMLElementScroll(node);
105
+ }
106
+ }
107
+
108
+ function getNodeName(element) {
109
+ return element ? (element.nodeName || '').toLowerCase() : null;
110
+ }
111
+
112
+ function getDocumentElement(element) {
113
+ // $FlowFixMe[incompatible-return]: assume body is always available
114
+ return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
115
+ element.document) || window.document).documentElement;
116
+ }
117
+
118
+ function getWindowScrollBarX(element) {
119
+ // If <html> has a CSS width greater than the viewport, then this will be
120
+ // incorrect for RTL.
121
+ // Popper 1 is broken in this case and never had a bug report so let's assume
122
+ // it's not an issue. I don't think anyone ever specifies width on <html>
123
+ // anyway.
124
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
125
+ // this (e.g. Edge 2019, IE11, Safari)
126
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
127
+ }
128
+
129
+ function getComputedStyle(element) {
130
+ return getWindow(element).getComputedStyle(element);
131
+ }
132
+
133
+ function isScrollParent(element) {
134
+ // Firefox wants us to check `-x` and `-y` variations as well
135
+ var _getComputedStyle = getComputedStyle(element),
136
+ overflow = _getComputedStyle.overflow,
137
+ overflowX = _getComputedStyle.overflowX,
138
+ overflowY = _getComputedStyle.overflowY;
139
+
140
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
141
+ }
142
+
143
+ function isElementScaled(element) {
144
+ var rect = element.getBoundingClientRect();
145
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
146
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
147
+ return scaleX !== 1 || scaleY !== 1;
148
+ } // Returns the composite rect of an element relative to its offsetParent.
149
+ // Composite means it takes into account transforms as well as layout.
150
+
151
+
152
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
153
+ if (isFixed === void 0) {
154
+ isFixed = false;
155
+ }
156
+
157
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
158
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
159
+ var documentElement = getDocumentElement(offsetParent);
160
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
161
+ var scroll = {
162
+ scrollLeft: 0,
163
+ scrollTop: 0
164
+ };
165
+ var offsets = {
166
+ x: 0,
167
+ y: 0
168
+ };
169
+
170
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
171
+ if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
172
+ isScrollParent(documentElement)) {
173
+ scroll = getNodeScroll(offsetParent);
174
+ }
175
+
176
+ if (isHTMLElement(offsetParent)) {
177
+ offsets = getBoundingClientRect(offsetParent, true);
178
+ offsets.x += offsetParent.clientLeft;
179
+ offsets.y += offsetParent.clientTop;
180
+ } else if (documentElement) {
181
+ offsets.x = getWindowScrollBarX(documentElement);
182
+ }
183
+ }
184
+
185
+ return {
186
+ x: rect.left + scroll.scrollLeft - offsets.x,
187
+ y: rect.top + scroll.scrollTop - offsets.y,
188
+ width: rect.width,
189
+ height: rect.height
190
+ };
191
+ }
192
+
193
+ // means it doesn't take into account transforms.
194
+
195
+ function getLayoutRect(element) {
196
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
197
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
198
+
199
+ var width = element.offsetWidth;
200
+ var height = element.offsetHeight;
201
+
202
+ if (Math.abs(clientRect.width - width) <= 1) {
203
+ width = clientRect.width;
204
+ }
205
+
206
+ if (Math.abs(clientRect.height - height) <= 1) {
207
+ height = clientRect.height;
208
+ }
209
+
210
+ return {
211
+ x: element.offsetLeft,
212
+ y: element.offsetTop,
213
+ width: width,
214
+ height: height
215
+ };
216
+ }
217
+
218
+ function getParentNode(element) {
219
+ if (getNodeName(element) === 'html') {
220
+ return element;
221
+ }
222
+
223
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
224
+ // $FlowFixMe[incompatible-return]
225
+ // $FlowFixMe[prop-missing]
226
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
227
+ element.parentNode || ( // DOM Element detected
228
+ isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
229
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
230
+ getDocumentElement(element) // fallback
231
+
232
+ );
233
+ }
234
+
235
+ function getScrollParent(node) {
236
+ if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
237
+ // $FlowFixMe[incompatible-return]: assume body is always available
238
+ return node.ownerDocument.body;
239
+ }
240
+
241
+ if (isHTMLElement(node) && isScrollParent(node)) {
242
+ return node;
243
+ }
244
+
245
+ return getScrollParent(getParentNode(node));
246
+ }
247
+
248
+ /*
249
+ given a DOM element, return the list of all scroll parents, up the list of ancesors
250
+ until we get to the top window object. This list is what we attach scroll listeners
251
+ to, because if any of these parent elements scroll, we'll need to re-calculate the
252
+ reference element's position.
253
+ */
254
+
255
+ function listScrollParents(element, list) {
256
+ var _element$ownerDocumen;
257
+
258
+ if (list === void 0) {
259
+ list = [];
260
+ }
261
+
262
+ var scrollParent = getScrollParent(element);
263
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
264
+ var win = getWindow(scrollParent);
265
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
266
+ var updatedList = list.concat(target);
267
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
268
+ updatedList.concat(listScrollParents(getParentNode(target)));
269
+ }
270
+
271
+ function isTableElement(element) {
272
+ return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
273
+ }
274
+
275
+ function getTrueOffsetParent(element) {
276
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
277
+ getComputedStyle(element).position === 'fixed') {
278
+ return null;
279
+ }
280
+
281
+ return element.offsetParent;
282
+ } // `.offsetParent` reports `null` for fixed elements, while absolute elements
283
+ // return the containing block
284
+
285
+
286
+ function getContainingBlock(element) {
287
+ var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
288
+ var isIE = navigator.userAgent.indexOf('Trident') !== -1;
289
+
290
+ if (isIE && isHTMLElement(element)) {
291
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
292
+ var elementCss = getComputedStyle(element);
293
+
294
+ if (elementCss.position === 'fixed') {
295
+ return null;
296
+ }
297
+ }
298
+
299
+ var currentNode = getParentNode(element);
300
+
301
+ while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
302
+ var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
303
+ // create a containing block.
304
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
305
+
306
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
307
+ return currentNode;
308
+ } else {
309
+ currentNode = currentNode.parentNode;
310
+ }
311
+ }
312
+
313
+ return null;
314
+ } // Gets the closest ancestor positioned element. Handles some edge cases,
315
+ // such as table ancestors and cross browser bugs.
316
+
317
+
318
+ function getOffsetParent(element) {
319
+ var window = getWindow(element);
320
+ var offsetParent = getTrueOffsetParent(element);
321
+
322
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
323
+ offsetParent = getTrueOffsetParent(offsetParent);
324
+ }
325
+
326
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {
327
+ return window;
328
+ }
329
+
330
+ return offsetParent || getContainingBlock(element) || window;
331
+ }
332
+
333
+ var top = 'top';
334
+ var bottom = 'bottom';
335
+ var right = 'right';
336
+ var left = 'left';
337
+ var auto = 'auto';
338
+ var basePlacements = [top, bottom, right, left];
339
+ var start = 'start';
340
+ var end = 'end';
341
+ var clippingParents = 'clippingParents';
342
+ var viewport = 'viewport';
343
+ var popper = 'popper';
344
+ var reference = 'reference';
345
+
346
+ var beforeRead = 'beforeRead';
347
+ var read = 'read';
348
+ var afterRead = 'afterRead'; // pure-logic modifiers
349
+
350
+ var beforeMain = 'beforeMain';
351
+ var main = 'main';
352
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
353
+
354
+ var beforeWrite = 'beforeWrite';
355
+ var write = 'write';
356
+ var afterWrite = 'afterWrite';
357
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
358
+
359
+ function order(modifiers) {
360
+ var map = new Map();
361
+ var visited = new Set();
362
+ var result = [];
363
+ modifiers.forEach(function (modifier) {
364
+ map.set(modifier.name, modifier);
365
+ }); // On visiting object, check for its dependencies and visit them recursively
366
+
367
+ function sort(modifier) {
368
+ visited.add(modifier.name);
369
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
370
+ requires.forEach(function (dep) {
371
+ if (!visited.has(dep)) {
372
+ var depModifier = map.get(dep);
373
+
374
+ if (depModifier) {
375
+ sort(depModifier);
376
+ }
377
+ }
378
+ });
379
+ result.push(modifier);
380
+ }
381
+
382
+ modifiers.forEach(function (modifier) {
383
+ if (!visited.has(modifier.name)) {
384
+ // check for visited object
385
+ sort(modifier);
386
+ }
387
+ });
388
+ return result;
389
+ }
390
+
391
+ function orderModifiers(modifiers) {
392
+ // order based on dependencies
393
+ var orderedModifiers = order(modifiers); // order based on phase
394
+
395
+ return modifierPhases.reduce(function (acc, phase) {
396
+ return acc.concat(orderedModifiers.filter(function (modifier) {
397
+ return modifier.phase === phase;
398
+ }));
399
+ }, []);
400
+ }
401
+
402
+ function debounce(fn) {
403
+ var pending;
404
+ return function () {
405
+ if (!pending) {
406
+ pending = new Promise(function (resolve) {
407
+ Promise.resolve().then(function () {
408
+ pending = undefined;
409
+ resolve(fn());
410
+ });
411
+ });
412
+ }
413
+
414
+ return pending;
415
+ };
416
+ }
417
+
418
+ function format(str) {
419
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
420
+ args[_key - 1] = arguments[_key];
421
+ }
422
+
423
+ return [].concat(args).reduce(function (p, c) {
424
+ return p.replace(/%s/, c);
425
+ }, str);
426
+ }
427
+
428
+ var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
429
+ var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
430
+ var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];
431
+ function validateModifiers(modifiers) {
432
+ modifiers.forEach(function (modifier) {
433
+ [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`
434
+ .filter(function (value, index, self) {
435
+ return self.indexOf(value) === index;
436
+ }).forEach(function (key) {
437
+ switch (key) {
438
+ case 'name':
439
+ if (typeof modifier.name !== 'string') {
440
+ console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', "\"" + String(modifier.name) + "\""));
441
+ }
442
+
443
+ break;
444
+
445
+ case 'enabled':
446
+ if (typeof modifier.enabled !== 'boolean') {
447
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\""));
448
+ }
449
+
450
+ break;
451
+
452
+ case 'phase':
453
+ if (modifierPhases.indexOf(modifier.phase) < 0) {
454
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\""));
455
+ }
456
+
457
+ break;
458
+
459
+ case 'fn':
460
+ if (typeof modifier.fn !== 'function') {
461
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', "\"" + String(modifier.fn) + "\""));
462
+ }
463
+
464
+ break;
465
+
466
+ case 'effect':
467
+ if (modifier.effect != null && typeof modifier.effect !== 'function') {
468
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\""));
469
+ }
470
+
471
+ break;
472
+
473
+ case 'requires':
474
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
475
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\""));
476
+ }
477
+
478
+ break;
479
+
480
+ case 'requiresIfExists':
481
+ if (!Array.isArray(modifier.requiresIfExists)) {
482
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', "\"" + String(modifier.requiresIfExists) + "\""));
483
+ }
484
+
485
+ break;
486
+
487
+ case 'options':
488
+ case 'data':
489
+ break;
490
+
491
+ default:
492
+ console.error("PopperJS: an invalid property has been provided to the \"" + modifier.name + "\" modifier, valid properties are " + VALID_PROPERTIES.map(function (s) {
493
+ return "\"" + s + "\"";
494
+ }).join(', ') + "; but \"" + key + "\" was provided.");
495
+ }
496
+
497
+ modifier.requires && modifier.requires.forEach(function (requirement) {
498
+ if (modifiers.find(function (mod) {
499
+ return mod.name === requirement;
500
+ }) == null) {
501
+ console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
502
+ }
503
+ });
504
+ });
505
+ });
506
+ }
507
+
508
+ function uniqueBy(arr, fn) {
509
+ var identifiers = new Set();
510
+ return arr.filter(function (item) {
511
+ var identifier = fn(item);
512
+
513
+ if (!identifiers.has(identifier)) {
514
+ identifiers.add(identifier);
515
+ return true;
516
+ }
517
+ });
518
+ }
519
+
520
+ function getBasePlacement(placement) {
521
+ return placement.split('-')[0];
522
+ }
523
+
524
+ function mergeByName(modifiers) {
525
+ var merged = modifiers.reduce(function (merged, current) {
526
+ var existing = merged[current.name];
527
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
528
+ options: Object.assign({}, existing.options, current.options),
529
+ data: Object.assign({}, existing.data, current.data)
530
+ }) : current;
531
+ return merged;
532
+ }, {}); // IE11 does not support Object.values
533
+
534
+ return Object.keys(merged).map(function (key) {
535
+ return merged[key];
536
+ });
537
+ }
538
+
539
+ function getViewportRect(element) {
540
+ var win = getWindow(element);
541
+ var html = getDocumentElement(element);
542
+ var visualViewport = win.visualViewport;
543
+ var width = html.clientWidth;
544
+ var height = html.clientHeight;
545
+ var x = 0;
546
+ var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper
547
+ // can be obscured underneath it.
548
+ // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
549
+ // if it isn't open, so if this isn't available, the popper will be detected
550
+ // to overflow the bottom of the screen too early.
551
+
552
+ if (visualViewport) {
553
+ width = visualViewport.width;
554
+ height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)
555
+ // In Chrome, it returns a value very close to 0 (+/-) but contains rounding
556
+ // errors due to floating point numbers, so we need to check precision.
557
+ // Safari returns a number <= 0, usually < -1 when pinch-zoomed
558
+ // Feature detection fails in mobile emulation mode in Chrome.
559
+ // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
560
+ // 0.001
561
+ // Fallback here: "Not Safari" userAgent
562
+
563
+ if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
564
+ x = visualViewport.offsetLeft;
565
+ y = visualViewport.offsetTop;
566
+ }
567
+ }
568
+
569
+ return {
570
+ width: width,
571
+ height: height,
572
+ x: x + getWindowScrollBarX(element),
573
+ y: y
574
+ };
575
+ }
576
+
577
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable
578
+
579
+ function getDocumentRect(element) {
580
+ var _element$ownerDocumen;
581
+
582
+ var html = getDocumentElement(element);
583
+ var winScroll = getWindowScroll(element);
584
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
585
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
586
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
587
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
588
+ var y = -winScroll.scrollTop;
589
+
590
+ if (getComputedStyle(body || html).direction === 'rtl') {
591
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
592
+ }
593
+
594
+ return {
595
+ width: width,
596
+ height: height,
597
+ x: x,
598
+ y: y
599
+ };
600
+ }
601
+
602
+ function contains(parent, child) {
603
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
604
+
605
+ if (parent.contains(child)) {
606
+ return true;
607
+ } // then fallback to custom implementation with Shadow DOM support
608
+ else if (rootNode && isShadowRoot(rootNode)) {
609
+ var next = child;
610
+
611
+ do {
612
+ if (next && parent.isSameNode(next)) {
613
+ return true;
614
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
615
+
616
+
617
+ next = next.parentNode || next.host;
618
+ } while (next);
619
+ } // Give up, the result is false
620
+
621
+
622
+ return false;
623
+ }
624
+
625
+ function rectToClientRect(rect) {
626
+ return Object.assign({}, rect, {
627
+ left: rect.x,
628
+ top: rect.y,
629
+ right: rect.x + rect.width,
630
+ bottom: rect.y + rect.height
631
+ });
632
+ }
633
+
634
+ function getInnerBoundingClientRect(element) {
635
+ var rect = getBoundingClientRect(element);
636
+ rect.top = rect.top + element.clientTop;
637
+ rect.left = rect.left + element.clientLeft;
638
+ rect.bottom = rect.top + element.clientHeight;
639
+ rect.right = rect.left + element.clientWidth;
640
+ rect.width = element.clientWidth;
641
+ rect.height = element.clientHeight;
642
+ rect.x = rect.left;
643
+ rect.y = rect.top;
644
+ return rect;
645
+ }
646
+
647
+ function getClientRectFromMixedType(element, clippingParent) {
648
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
649
+ } // A "clipping parent" is an overflowable container with the characteristic of
650
+ // clipping (or hiding) overflowing elements with a position different from
651
+ // `initial`
652
+
653
+
654
+ function getClippingParents(element) {
655
+ var clippingParents = listScrollParents(getParentNode(element));
656
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;
657
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
658
+
659
+ if (!isElement(clipperElement)) {
660
+ return [];
661
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
662
+
663
+
664
+ return clippingParents.filter(function (clippingParent) {
665
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
666
+ });
667
+ } // Gets the maximum area that the element is visible in due to any number of
668
+ // clipping parents
669
+
670
+
671
+ function getClippingRect(element, boundary, rootBoundary) {
672
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
673
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
674
+ var firstClippingParent = clippingParents[0];
675
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
676
+ var rect = getClientRectFromMixedType(element, clippingParent);
677
+ accRect.top = max(rect.top, accRect.top);
678
+ accRect.right = min(rect.right, accRect.right);
679
+ accRect.bottom = min(rect.bottom, accRect.bottom);
680
+ accRect.left = max(rect.left, accRect.left);
681
+ return accRect;
682
+ }, getClientRectFromMixedType(element, firstClippingParent));
683
+ clippingRect.width = clippingRect.right - clippingRect.left;
684
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
685
+ clippingRect.x = clippingRect.left;
686
+ clippingRect.y = clippingRect.top;
687
+ return clippingRect;
688
+ }
689
+
690
+ function getVariation(placement) {
691
+ return placement.split('-')[1];
692
+ }
693
+
694
+ function getMainAxisFromPlacement(placement) {
695
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
696
+ }
697
+
698
+ function computeOffsets(_ref) {
699
+ var reference = _ref.reference,
700
+ element = _ref.element,
701
+ placement = _ref.placement;
702
+ var basePlacement = placement ? getBasePlacement(placement) : null;
703
+ var variation = placement ? getVariation(placement) : null;
704
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
705
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
706
+ var offsets;
707
+
708
+ switch (basePlacement) {
709
+ case top:
710
+ offsets = {
711
+ x: commonX,
712
+ y: reference.y - element.height
713
+ };
714
+ break;
715
+
716
+ case bottom:
717
+ offsets = {
718
+ x: commonX,
719
+ y: reference.y + reference.height
720
+ };
721
+ break;
722
+
723
+ case right:
724
+ offsets = {
725
+ x: reference.x + reference.width,
726
+ y: commonY
727
+ };
728
+ break;
729
+
730
+ case left:
731
+ offsets = {
732
+ x: reference.x - element.width,
733
+ y: commonY
734
+ };
735
+ break;
736
+
737
+ default:
738
+ offsets = {
739
+ x: reference.x,
740
+ y: reference.y
741
+ };
742
+ }
743
+
744
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
745
+
746
+ if (mainAxis != null) {
747
+ var len = mainAxis === 'y' ? 'height' : 'width';
748
+
749
+ switch (variation) {
750
+ case start:
751
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
752
+ break;
753
+
754
+ case end:
755
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
756
+ break;
757
+ }
758
+ }
759
+
760
+ return offsets;
761
+ }
762
+
763
+ function getFreshSideObject() {
764
+ return {
765
+ top: 0,
766
+ right: 0,
767
+ bottom: 0,
768
+ left: 0
769
+ };
770
+ }
771
+
772
+ function mergePaddingObject(paddingObject) {
773
+ return Object.assign({}, getFreshSideObject(), paddingObject);
774
+ }
775
+
776
+ function expandToHashMap(value, keys) {
777
+ return keys.reduce(function (hashMap, key) {
778
+ hashMap[key] = value;
779
+ return hashMap;
780
+ }, {});
781
+ }
782
+
783
+ function detectOverflow(state, options) {
784
+ if (options === void 0) {
785
+ options = {};
786
+ }
787
+
788
+ var _options = options,
789
+ _options$placement = _options.placement,
790
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
791
+ _options$boundary = _options.boundary,
792
+ boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
793
+ _options$rootBoundary = _options.rootBoundary,
794
+ rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
795
+ _options$elementConte = _options.elementContext,
796
+ elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
797
+ _options$altBoundary = _options.altBoundary,
798
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
799
+ _options$padding = _options.padding,
800
+ padding = _options$padding === void 0 ? 0 : _options$padding;
801
+ var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
802
+ var altContext = elementContext === popper ? reference : popper;
803
+ var popperRect = state.rects.popper;
804
+ var element = state.elements[altBoundary ? altContext : elementContext];
805
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
806
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
807
+ var popperOffsets = computeOffsets({
808
+ reference: referenceClientRect,
809
+ element: popperRect,
810
+ strategy: 'absolute',
811
+ placement: placement
812
+ });
813
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
814
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
815
+ // 0 or negative = within the clipping rect
816
+
817
+ var overflowOffsets = {
818
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
819
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
820
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
821
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
822
+ };
823
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
824
+
825
+ if (elementContext === popper && offsetData) {
826
+ var offset = offsetData[placement];
827
+ Object.keys(overflowOffsets).forEach(function (key) {
828
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
829
+ var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
830
+ overflowOffsets[key] += offset[axis] * multiply;
831
+ });
832
+ }
833
+
834
+ return overflowOffsets;
835
+ }
836
+
837
+ var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
838
+ var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
839
+ var DEFAULT_OPTIONS = {
840
+ placement: 'bottom',
841
+ modifiers: [],
842
+ strategy: 'absolute'
843
+ };
844
+
845
+ function areValidElements() {
846
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
847
+ args[_key] = arguments[_key];
848
+ }
849
+
850
+ return !args.some(function (element) {
851
+ return !(element && typeof element.getBoundingClientRect === 'function');
852
+ });
853
+ }
854
+
855
+ function popperGenerator(generatorOptions) {
856
+ if (generatorOptions === void 0) {
857
+ generatorOptions = {};
858
+ }
859
+
860
+ var _generatorOptions = generatorOptions,
861
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
862
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
863
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
864
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
865
+ return function createPopper(reference, popper, options) {
866
+ if (options === void 0) {
867
+ options = defaultOptions;
868
+ }
869
+
870
+ var state = {
871
+ placement: 'bottom',
872
+ orderedModifiers: [],
873
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
874
+ modifiersData: {},
875
+ elements: {
876
+ reference: reference,
877
+ popper: popper
878
+ },
879
+ attributes: {},
880
+ styles: {}
881
+ };
882
+ var effectCleanupFns = [];
883
+ var isDestroyed = false;
884
+ var instance = {
885
+ state: state,
886
+ setOptions: function setOptions(setOptionsAction) {
887
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
888
+ cleanupModifierEffects();
889
+ state.options = Object.assign({}, defaultOptions, state.options, options);
890
+ state.scrollParents = {
891
+ reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
892
+ popper: listScrollParents(popper)
893
+ }; // Orders the modifiers based on their dependencies and `phase`
894
+ // properties
895
+
896
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
897
+
898
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
899
+ return m.enabled;
900
+ }); // Validate the provided modifiers so that the consumer will get warned
901
+ // if one of the modifiers is invalid for any reason
902
+
903
+ {
904
+ var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {
905
+ var name = _ref.name;
906
+ return name;
907
+ });
908
+ validateModifiers(modifiers);
909
+
910
+ if (getBasePlacement(state.options.placement) === auto) {
911
+ var flipModifier = state.orderedModifiers.find(function (_ref2) {
912
+ var name = _ref2.name;
913
+ return name === 'flip';
914
+ });
915
+
916
+ if (!flipModifier) {
917
+ console.error(['Popper: "auto" placements require the "flip" modifier be', 'present and enabled to work.'].join(' '));
918
+ }
919
+ }
920
+
921
+ var _getComputedStyle = getComputedStyle(popper),
922
+ marginTop = _getComputedStyle.marginTop,
923
+ marginRight = _getComputedStyle.marginRight,
924
+ marginBottom = _getComputedStyle.marginBottom,
925
+ marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can
926
+ // cause bugs with positioning, so we'll warn the consumer
927
+
928
+
929
+ if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {
930
+ return parseFloat(margin);
931
+ })) {
932
+ console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));
933
+ }
934
+ }
935
+
936
+ runModifierEffects();
937
+ return instance.update();
938
+ },
939
+ // Sync update – it will always be executed, even if not necessary. This
940
+ // is useful for low frequency updates where sync behavior simplifies the
941
+ // logic.
942
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
943
+ // prefer the async Popper#update method
944
+ forceUpdate: function forceUpdate() {
945
+ if (isDestroyed) {
946
+ return;
947
+ }
948
+
949
+ var _state$elements = state.elements,
950
+ reference = _state$elements.reference,
951
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
952
+ // anymore
953
+
954
+ if (!areValidElements(reference, popper)) {
955
+ {
956
+ console.error(INVALID_ELEMENT_ERROR);
957
+ }
958
+
959
+ return;
960
+ } // Store the reference and popper rects to be read by modifiers
961
+
962
+
963
+ state.rects = {
964
+ reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
965
+ popper: getLayoutRect(popper)
966
+ }; // Modifiers have the ability to reset the current update cycle. The
967
+ // most common use case for this is the `flip` modifier changing the
968
+ // placement, which then needs to re-run all the modifiers, because the
969
+ // logic was previously ran for the previous placement and is therefore
970
+ // stale/incorrect
971
+
972
+ state.reset = false;
973
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
974
+ // is filled with the initial data specified by the modifier. This means
975
+ // it doesn't persist and is fresh on each update.
976
+ // To ensure persistent data, use `${name}#persistent`
977
+
978
+ state.orderedModifiers.forEach(function (modifier) {
979
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
980
+ });
981
+ var __debug_loops__ = 0;
982
+
983
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
984
+ {
985
+ __debug_loops__ += 1;
986
+
987
+ if (__debug_loops__ > 100) {
988
+ console.error(INFINITE_LOOP_ERROR);
989
+ break;
990
+ }
991
+ }
992
+
993
+ if (state.reset === true) {
994
+ state.reset = false;
995
+ index = -1;
996
+ continue;
997
+ }
998
+
999
+ var _state$orderedModifie = state.orderedModifiers[index],
1000
+ fn = _state$orderedModifie.fn,
1001
+ _state$orderedModifie2 = _state$orderedModifie.options,
1002
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
1003
+ name = _state$orderedModifie.name;
1004
+
1005
+ if (typeof fn === 'function') {
1006
+ state = fn({
1007
+ state: state,
1008
+ options: _options,
1009
+ name: name,
1010
+ instance: instance
1011
+ }) || state;
1012
+ }
1013
+ }
1014
+ },
1015
+ // Async and optimistically optimized update – it will not be executed if
1016
+ // not necessary (debounced to run at most once-per-tick)
1017
+ update: debounce(function () {
1018
+ return new Promise(function (resolve) {
1019
+ instance.forceUpdate();
1020
+ resolve(state);
1021
+ });
1022
+ }),
1023
+ destroy: function destroy() {
1024
+ cleanupModifierEffects();
1025
+ isDestroyed = true;
1026
+ }
1027
+ };
1028
+
1029
+ if (!areValidElements(reference, popper)) {
1030
+ {
1031
+ console.error(INVALID_ELEMENT_ERROR);
1032
+ }
1033
+
1034
+ return instance;
1035
+ }
1036
+
1037
+ instance.setOptions(options).then(function (state) {
1038
+ if (!isDestroyed && options.onFirstUpdate) {
1039
+ options.onFirstUpdate(state);
1040
+ }
1041
+ }); // Modifiers have the ability to execute arbitrary code before the first
1042
+ // update cycle runs. They will be executed in the same order as the update
1043
+ // cycle. This is useful when a modifier adds some persistent data that
1044
+ // other modifiers need to use, but the modifier is run after the dependent
1045
+ // one.
1046
+
1047
+ function runModifierEffects() {
1048
+ state.orderedModifiers.forEach(function (_ref3) {
1049
+ var name = _ref3.name,
1050
+ _ref3$options = _ref3.options,
1051
+ options = _ref3$options === void 0 ? {} : _ref3$options,
1052
+ effect = _ref3.effect;
1053
+
1054
+ if (typeof effect === 'function') {
1055
+ var cleanupFn = effect({
1056
+ state: state,
1057
+ name: name,
1058
+ instance: instance,
1059
+ options: options
1060
+ });
1061
+
1062
+ var noopFn = function noopFn() {};
1063
+
1064
+ effectCleanupFns.push(cleanupFn || noopFn);
1065
+ }
1066
+ });
1067
+ }
1068
+
1069
+ function cleanupModifierEffects() {
1070
+ effectCleanupFns.forEach(function (fn) {
1071
+ return fn();
1072
+ });
1073
+ effectCleanupFns = [];
1074
+ }
1075
+
1076
+ return instance;
1077
+ };
1078
+ }
1079
+ var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules
1080
+
1081
+ exports.createPopper = createPopper;
1082
+ exports.detectOverflow = detectOverflow;
1083
+ exports.popperGenerator = popperGenerator;
1084
+
1085
+ Object.defineProperty(exports, '__esModule', { value: true });
1086
+
1087
+ })));
1088
+ //# sourceMappingURL=popper-base.js.map
assets/libs/popper/popper-base.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"popper-base.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/debounce.js","../../src/utils/format.js","../../src/utils/validateModifiers.js","../../src/utils/uniqueBy.js","../../src/utils/getBasePlacement.js","../../src/utils/mergeByName.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/getFreshSideObject.js","../../src/utils/mergePaddingObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false\n): ClientRectObject {\n const rect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n const offsetHeight = element.offsetHeight;\n const offsetWidth = element.offsetWidth;\n\n // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n const isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\n\nexport default function format(str: string, ...args: Array<string>) {\n return [...args].reduce((p, c) => p.replace(/%s/, c), str);\n}\n","// @flow\nimport format from './format';\nimport { modifierPhases } from '../enums';\n\nconst INVALID_MODIFIER_ERROR =\n 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nconst MISSING_DEPENDENCY_ERROR =\n 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nconst VALID_PROPERTIES = [\n 'name',\n 'enabled',\n 'phase',\n 'fn',\n 'effect',\n 'requires',\n 'options',\n];\n\nexport default function validateModifiers(modifiers: Array<any>): void {\n modifiers.forEach((modifier) => {\n [...Object.keys(modifier), ...VALID_PROPERTIES]\n // IE11-compatible replacement for `new Set(iterable)`\n .filter((value, index, self) => self.indexOf(value) === index)\n .forEach((key) => {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n String(modifier.name),\n '\"name\"',\n '\"string\"',\n `\"${String(modifier.name)}\"`\n )\n );\n }\n break;\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"enabled\"',\n '\"boolean\"',\n `\"${String(modifier.enabled)}\"`\n )\n );\n }\n break;\n case 'phase':\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"phase\"',\n `either ${modifierPhases.join(', ')}`,\n `\"${String(modifier.phase)}\"`\n )\n );\n }\n break;\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"fn\"',\n '\"function\"',\n `\"${String(modifier.fn)}\"`\n )\n );\n }\n break;\n case 'effect':\n if (\n modifier.effect != null &&\n typeof modifier.effect !== 'function'\n ) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"effect\"',\n '\"function\"',\n `\"${String(modifier.fn)}\"`\n )\n );\n }\n break;\n case 'requires':\n if (\n modifier.requires != null &&\n !Array.isArray(modifier.requires)\n ) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"requires\"',\n '\"array\"',\n `\"${String(modifier.requires)}\"`\n )\n );\n }\n break;\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"requiresIfExists\"',\n '\"array\"',\n `\"${String(modifier.requiresIfExists)}\"`\n )\n );\n }\n break;\n case 'options':\n case 'data':\n break;\n default:\n console.error(\n `PopperJS: an invalid property has been provided to the \"${\n modifier.name\n }\" modifier, valid properties are ${VALID_PROPERTIES.map(\n (s) => `\"${s}\"`\n ).join(', ')}; but \"${key}\" was provided.`\n );\n }\n\n modifier.requires &&\n modifier.requires.forEach((requirement) => {\n if (modifiers.find((mod) => mod.name === requirement) == null) {\n console.error(\n format(\n MISSING_DEPENDENCY_ERROR,\n String(modifier.name),\n requirement,\n requirement\n )\n );\n }\n });\n });\n });\n}\n","// @flow\n\nexport default function uniqueBy<T>(arr: Array<T>, fn: T => any): Array<T> {\n const identifiers = new Set();\n\n return arr.filter(item => {\n const identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n\nexport default function getViewportRect(element: Element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(element: Element) {\n const rect = getBoundingClientRect(element);\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\n\nconst INVALID_ELEMENT_ERROR =\n 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR =\n 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const {\n defaultModifiers = [],\n defaultOptions = DEFAULT_OPTIONS,\n } = generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (__DEV__) {\n const modifiers = uniqueBy(\n [...orderedModifiers, ...state.options.modifiers],\n ({ name }) => name\n );\n\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(\n ({ name }) => name === 'flip'\n );\n\n if (!flipModifier) {\n console.error(\n [\n 'Popper: \"auto\" placements require the \"flip\" modifier be',\n 'present and enabled to work.',\n ].join(' ')\n );\n }\n }\n\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = getComputedStyle(popper);\n\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if (\n [marginTop, marginRight, marginBottom, marginLeft].some((margin) =>\n parseFloat(margin)\n )\n ) {\n console.warn(\n [\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.',\n ].join(' ')\n );\n }\n }\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (__DEV__) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getBoundingClientRect","element","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","top","right","bottom","left","x","y","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","test","isElementScaled","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","abs","offsetLeft","offsetTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","target","concat","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","navigator","userAgent","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","map","Map","visited","Set","result","forEach","modifier","set","name","sort","add","requires","requiresIfExists","dep","has","depModifier","get","push","orderModifiers","orderedModifiers","reduce","acc","phase","debounce","fn","pending","Promise","resolve","then","undefined","format","str","args","p","c","replace","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","Object","keys","value","index","self","key","console","error","String","enabled","join","effect","Array","isArray","s","requirement","find","mod","uniqueBy","arr","identifiers","item","identifier","getBasePlacement","placement","split","mergeByName","merged","current","existing","options","data","getViewportRect","html","clientWidth","clientHeight","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","state","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","strategy","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","INVALID_ELEMENT_ERROR","INFINITE_LOOP_ERROR","DEFAULT_OPTIONS","areValidElements","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","createPopper","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","m","flipModifier","marginTop","marginRight","marginBottom","marginLeft","margin","parseFloat","warn","runModifierEffects","update","forceUpdate","reset","__debug_loops__","length","destroy","onFirstUpdate","cleanupFn","noopFn"],"mappings":"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"}
assets/libs/popper/popper-base.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Popper={})}(this,(function(t){"use strict";function e(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function n(t){return t instanceof e(t).Element||t instanceof Element}function o(t){return t instanceof e(t).HTMLElement||t instanceof HTMLElement}function r(t){return"undefined"!=typeof ShadowRoot&&(t instanceof e(t).ShadowRoot||t instanceof ShadowRoot)}var i=Math.max,f=Math.min,a=Math.round;function c(t,e){void 0===e&&(e=!1);var n=t.getBoundingClientRect(),r=1,i=1;if(o(t)&&e){var f=t.offsetHeight,c=t.offsetWidth;c>0&&(r=a(n.width)/c||1),f>0&&(i=a(n.height)/f||1)}return{width:n.width/r,height:n.height/i,top:n.top/i,right:n.right/r,bottom:n.bottom/i,left:n.left/r,x:n.left/r,y:n.top/i}}function u(t){var n=e(t);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function s(t){return t?(t.nodeName||"").toLowerCase():null}function l(t){return((n(t)?t.ownerDocument:t.document)||window.document).documentElement}function d(t){return c(l(t)).left+u(t).scrollLeft}function h(t){return e(t).getComputedStyle(t)}function p(t){var e=h(t),n=e.overflow,o=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function m(t,n,r){void 0===r&&(r=!1);var i,f,h=o(n),m=o(n)&&function(t){var e=t.getBoundingClientRect(),n=a(e.width)/t.offsetWidth||1,o=a(e.height)/t.offsetHeight||1;return 1!==n||1!==o}(n),g=l(n),v=c(t,m),b={scrollLeft:0,scrollTop:0},w={x:0,y:0};return(h||!h&&!r)&&(("body"!==s(n)||p(g))&&(b=(i=n)!==e(i)&&o(i)?{scrollLeft:(f=i).scrollLeft,scrollTop:f.scrollTop}:u(i)),o(n)?((w=c(n,!0)).x+=n.clientLeft,w.y+=n.clientTop):g&&(w.x=d(g))),{x:v.left+b.scrollLeft-w.x,y:v.top+b.scrollTop-w.y,width:v.width,height:v.height}}function g(t){return"html"===s(t)?t:t.assignedSlot||t.parentNode||(r(t)?t.host:null)||l(t)}function v(t){return["html","body","#document"].indexOf(s(t))>=0?t.ownerDocument.body:o(t)&&p(t)?t:v(g(t))}function b(t,n){var o;void 0===n&&(n=[]);var r=v(t),i=r===(null==(o=t.ownerDocument)?void 0:o.body),f=e(r),a=i?[f].concat(f.visualViewport||[],p(r)?r:[]):r,c=n.concat(a);return i?c:c.concat(b(g(a)))}function w(t){return["table","td","th"].indexOf(s(t))>=0}function y(t){return o(t)&&"fixed"!==h(t).position?t.offsetParent:null}function x(t){for(var n=e(t),r=y(t);r&&w(r)&&"static"===h(r).position;)r=y(r);return r&&("html"===s(r)||"body"===s(r)&&"static"===h(r).position)?n:r||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&o(t)&&"fixed"===h(t).position)return null;for(var n=g(t);o(n)&&["html","body"].indexOf(s(n))<0;){var r=h(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||e&&"filter"===r.willChange||e&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(t)||n}var O="top",M="bottom",E="right",L="left",T=[O,M,E,L],W="viewport",j="popper",H=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function P(t){var e=new Map,n=new Set,o=[];function r(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var o=e.get(t);o&&r(o)}})),o.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||r(t)})),o}function R(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function C(t,o){return o===W?R(function(t){var n=e(t),o=l(t),r=n.visualViewport,i=o.clientWidth,f=o.clientHeight,a=0,c=0;return r&&(i=r.width,f=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,c=r.offsetTop)),{width:i,height:f,x:a+d(t),y:c}}(t)):n(o)?function(t){var e=c(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(o):R(function(t){var e,n=l(t),o=u(t),r=null==(e=t.ownerDocument)?void 0:e.body,f=i(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=i(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-o.scrollLeft+d(t),s=-o.scrollTop;return"rtl"===h(r||n).direction&&(c+=i(n.clientWidth,r?r.clientWidth:0)-f),{width:f,height:a,x:c,y:s}}(l(t)))}function D(t){var e=b(g(t)),i=["absolute","fixed"].indexOf(h(t).position)>=0&&o(t)?x(t):t;return n(i)?e.filter((function(t){return n(t)&&function(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&r(n)){var o=e;do{if(o&&t.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}(t,i)&&"body"!==s(t)})):[]}var S={placement:"bottom",modifiers:[],strategy:"absolute"};function k(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function N(t){void 0===t&&(t={});var e=t,o=e.defaultModifiers,r=void 0===o?[]:o,i=e.defaultOptions,f=void 0===i?S:i;return function(t,e,o){void 0===o&&(o=f);var i,a,u={placement:"bottom",orderedModifiers:[],options:Object.assign({},S,f),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},s=[],l=!1,d={state:u,setOptions:function(o){var i="function"==typeof o?o(u.options):o;h(),u.options=Object.assign({},f,u.options,i),u.scrollParents={reference:n(t)?b(t):t.contextElement?b(t.contextElement):[],popper:b(e)};var a,c,l=function(t){var e=P(t);return H.reduce((function(t,n){return t.concat(e.filter((function(t){return t.phase===n})))}),[])}((a=[].concat(r,u.options.modifiers),c=a.reduce((function(t,e){var n=t[e.name];return t[e.name]=n?Object.assign({},n,e,{options:Object.assign({},n.options,e.options),data:Object.assign({},n.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return u.orderedModifiers=l.filter((function(t){return t.enabled})),u.orderedModifiers.forEach((function(t){var e=t.name,n=t.options,o=void 0===n?{}:n,r=t.effect;if("function"==typeof r){var i=r({state:u,name:e,instance:d,options:o}),f=function(){};s.push(i||f)}})),d.update()},forceUpdate:function(){if(!l){var t=u.elements,e=t.reference,n=t.popper;if(k(e,n)){var o,r,i,f;u.rects={reference:m(e,x(n),"fixed"===u.options.strategy),popper:(o=n,r=c(o),i=o.offsetWidth,f=o.offsetHeight,Math.abs(r.width-i)<=1&&(i=r.width),Math.abs(r.height-f)<=1&&(f=r.height),{x:o.offsetLeft,y:o.offsetTop,width:i,height:f})},u.reset=!1,u.placement=u.options.placement,u.orderedModifiers.forEach((function(t){return u.modifiersData[t.name]=Object.assign({},t.data)}));for(var a=0;a<u.orderedModifiers.length;a++)if(!0!==u.reset){var s=u.orderedModifiers[a],h=s.fn,p=s.options,g=void 0===p?{}:p,v=s.name;"function"==typeof h&&(u=h({state:u,options:g,name:v,instance:d})||u)}else u.reset=!1,a=-1}}},update:(i=function(){return new Promise((function(t){d.forceUpdate(),t(u)}))},function(){return a||(a=new Promise((function(t){Promise.resolve().then((function(){a=void 0,t(i())}))}))),a}),destroy:function(){h(),l=!0}};if(!k(t,e))return d;function h(){s.forEach((function(t){return t()})),s=[]}return d.setOptions(o).then((function(t){!l&&o.onFirstUpdate&&o.onFirstUpdate(t)})),d}}var B=N();t.createPopper=B,t.detectOverflow=function(t,e){void 0===e&&(e={});var o,r=e,a=r.placement,u=void 0===a?t.placement:a,s=r.boundary,d=void 0===s?"clippingParents":s,h=r.rootBoundary,p=void 0===h?W:h,m=r.elementContext,g=void 0===m?j:m,v=r.altBoundary,b=void 0!==v&&v,w=r.padding,y=void 0===w?0:w,x=function(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}("number"!=typeof y?y:(o=y,T.reduce((function(t,e){return t[e]=o,t}),{}))),H=g===j?"reference":j,P=t.rects.popper,S=t.elements[b?H:g],k=function(t,e,n){var o="clippingParents"===e?D(t):[].concat(e),r=[].concat(o,[n]),a=r[0],c=r.reduce((function(e,n){var o=C(t,n);return e.top=i(o.top,e.top),e.right=f(o.right,e.right),e.bottom=f(o.bottom,e.bottom),e.left=i(o.left,e.left),e}),C(t,a));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}(n(S)?S:S.contextElement||l(t.elements.popper),d,p),N=c(t.elements.reference),B=function(t){var e,n=t.reference,o=t.element,r=t.placement,i=r?function(t){return t.split("-")[0]}(r):null,f=r?function(t){return t.split("-")[1]}(r):null,a=n.x+n.width/2-o.width/2,c=n.y+n.height/2-o.height/2;switch(i){case O:e={x:a,y:n.y-o.height};break;case M:e={x:a,y:n.y+n.height};break;case E:e={x:n.x+n.width,y:c};break;case L:e={x:n.x-o.width,y:c};break;default:e={x:n.x,y:n.y}}var u=i?function(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}(i):null;if(null!=u){var s="y"===u?"height":"width";switch(f){case"start":e[u]=e[u]-(n[s]/2-o[s]/2);break;case"end":e[u]=e[u]+(n[s]/2-o[s]/2)}}return e}({reference:N,element:P,strategy:"absolute",placement:u}),A=R(Object.assign({},P,B)),U=g===j?A:N,V={top:k.top-U.top+x.top,bottom:U.bottom-k.bottom+x.bottom,left:k.left-U.left+x.left,right:U.right-k.right+x.right},q=t.modifiersData.offset;if(g===j&&q){var F=q[u];Object.keys(V).forEach((function(t){var e=[E,M].indexOf(t)>=0?1:-1,n=[O,M].indexOf(t)>=0?"y":"x";V[t]+=F[n]*e}))}return V},t.popperGenerator=N,Object.defineProperty(t,"__esModule",{value:!0})}));
6
+ //# sourceMappingURL=popper-base.min.js.map
assets/libs/popper/popper-base.min.js.flow ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ // @flow
2
+
3
+ export * from '../../lib/popper-base.js'
assets/libs/popper/popper-base.min.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"popper-base.min.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/createPopper.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getLayoutRect.js","../../src/utils/detectOverflow.js","../../src/utils/expandToHashMap.js","../../src/utils/mergePaddingObject.js","../../src/utils/getFreshSideObject.js","../../src/utils/computeOffsets.js","../../src/utils/getBasePlacement.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false\n): ClientRectObject {\n const rect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n const offsetHeight = element.offsetHeight;\n const offsetWidth = element.offsetWidth;\n\n // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n const isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(element: Element) {\n const rect = getBoundingClientRect(element);\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n\nexport default function getViewportRect(element: Element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\n\nconst INVALID_ELEMENT_ERROR =\n 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR =\n 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const {\n defaultModifiers = [],\n defaultOptions = DEFAULT_OPTIONS,\n } = generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (__DEV__) {\n const modifiers = uniqueBy(\n [...orderedModifiers, ...state.options.modifiers],\n ({ name }) => name\n );\n\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(\n ({ name }) => name === 'flip'\n );\n\n if (!flipModifier) {\n console.error(\n [\n 'Popper: \"auto\" placements require the \"flip\" modifier be',\n 'present and enabled to work.',\n ].join(' ')\n );\n }\n }\n\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = getComputedStyle(popper);\n\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if (\n [marginTop, marginRight, marginBottom, marginLeft].some((margin) =>\n parseFloat(margin)\n )\n ) {\n console.warn(\n [\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.',\n ].join(' ')\n );\n }\n }\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (__DEV__) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport type { State, SideObject, Padding } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getBoundingClientRect","element","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","top","right","bottom","left","x","y","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","test","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","clientLeft","clientTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","_element$ownerDocumen","target","concat","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","navigator","userAgent","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","basePlacements","viewport","popper","modifierPhases","order","modifiers","map","Map","visited","Set","result","sort","modifier","add","name","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","offsetLeft","offsetTop","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingParents","clippingParents","clipperElement","parent","child","rootNode","getRootNode","contains","next","isSameNode","DEFAULT_OPTIONS","placement","strategy","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","reference","options","fn","pending","state","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","reduce","acc","phase","orderModifiers","current","existing","data","Object","keys","key","m","enabled","effect","cleanupFn","noopFn","update","forceUpdate","clientRect","rects","abs","reset","index","length","Promise","resolve","then","undefined","destroy","onFirstUpdate","createPopper","value","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","mergePaddingObject","hashMap","altContext","popperRect","clippingClientRect","mainClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperOffsets","basePlacement","split","getBasePlacement","variation","getVariation","commonX","commonY","mainAxis","getMainAxisFromPlacement","len","computeOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis"],"mappings":"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"}
assets/libs/popper/popper-lite.js ADDED
@@ -0,0 +1,1421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ (function (global, factory) {
6
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
7
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
8
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Popper = {}));
9
+ }(this, (function (exports) { 'use strict';
10
+
11
+ function getWindow(node) {
12
+ if (node == null) {
13
+ return window;
14
+ }
15
+
16
+ if (node.toString() !== '[object Window]') {
17
+ var ownerDocument = node.ownerDocument;
18
+ return ownerDocument ? ownerDocument.defaultView || window : window;
19
+ }
20
+
21
+ return node;
22
+ }
23
+
24
+ function isElement(node) {
25
+ var OwnElement = getWindow(node).Element;
26
+ return node instanceof OwnElement || node instanceof Element;
27
+ }
28
+
29
+ function isHTMLElement(node) {
30
+ var OwnElement = getWindow(node).HTMLElement;
31
+ return node instanceof OwnElement || node instanceof HTMLElement;
32
+ }
33
+
34
+ function isShadowRoot(node) {
35
+ // IE 11 has no ShadowRoot
36
+ if (typeof ShadowRoot === 'undefined') {
37
+ return false;
38
+ }
39
+
40
+ var OwnElement = getWindow(node).ShadowRoot;
41
+ return node instanceof OwnElement || node instanceof ShadowRoot;
42
+ }
43
+
44
+ var max = Math.max;
45
+ var min = Math.min;
46
+ var round = Math.round;
47
+
48
+ function getBoundingClientRect(element, includeScale) {
49
+ if (includeScale === void 0) {
50
+ includeScale = false;
51
+ }
52
+
53
+ var rect = element.getBoundingClientRect();
54
+ var scaleX = 1;
55
+ var scaleY = 1;
56
+
57
+ if (isHTMLElement(element) && includeScale) {
58
+ var offsetHeight = element.offsetHeight;
59
+ var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
60
+ // Fallback to 1 in case both values are `0`
61
+
62
+ if (offsetWidth > 0) {
63
+ scaleX = round(rect.width) / offsetWidth || 1;
64
+ }
65
+
66
+ if (offsetHeight > 0) {
67
+ scaleY = round(rect.height) / offsetHeight || 1;
68
+ }
69
+ }
70
+
71
+ return {
72
+ width: rect.width / scaleX,
73
+ height: rect.height / scaleY,
74
+ top: rect.top / scaleY,
75
+ right: rect.right / scaleX,
76
+ bottom: rect.bottom / scaleY,
77
+ left: rect.left / scaleX,
78
+ x: rect.left / scaleX,
79
+ y: rect.top / scaleY
80
+ };
81
+ }
82
+
83
+ function getWindowScroll(node) {
84
+ var win = getWindow(node);
85
+ var scrollLeft = win.pageXOffset;
86
+ var scrollTop = win.pageYOffset;
87
+ return {
88
+ scrollLeft: scrollLeft,
89
+ scrollTop: scrollTop
90
+ };
91
+ }
92
+
93
+ function getHTMLElementScroll(element) {
94
+ return {
95
+ scrollLeft: element.scrollLeft,
96
+ scrollTop: element.scrollTop
97
+ };
98
+ }
99
+
100
+ function getNodeScroll(node) {
101
+ if (node === getWindow(node) || !isHTMLElement(node)) {
102
+ return getWindowScroll(node);
103
+ } else {
104
+ return getHTMLElementScroll(node);
105
+ }
106
+ }
107
+
108
+ function getNodeName(element) {
109
+ return element ? (element.nodeName || '').toLowerCase() : null;
110
+ }
111
+
112
+ function getDocumentElement(element) {
113
+ // $FlowFixMe[incompatible-return]: assume body is always available
114
+ return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
115
+ element.document) || window.document).documentElement;
116
+ }
117
+
118
+ function getWindowScrollBarX(element) {
119
+ // If <html> has a CSS width greater than the viewport, then this will be
120
+ // incorrect for RTL.
121
+ // Popper 1 is broken in this case and never had a bug report so let's assume
122
+ // it's not an issue. I don't think anyone ever specifies width on <html>
123
+ // anyway.
124
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
125
+ // this (e.g. Edge 2019, IE11, Safari)
126
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
127
+ }
128
+
129
+ function getComputedStyle(element) {
130
+ return getWindow(element).getComputedStyle(element);
131
+ }
132
+
133
+ function isScrollParent(element) {
134
+ // Firefox wants us to check `-x` and `-y` variations as well
135
+ var _getComputedStyle = getComputedStyle(element),
136
+ overflow = _getComputedStyle.overflow,
137
+ overflowX = _getComputedStyle.overflowX,
138
+ overflowY = _getComputedStyle.overflowY;
139
+
140
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
141
+ }
142
+
143
+ function isElementScaled(element) {
144
+ var rect = element.getBoundingClientRect();
145
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
146
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
147
+ return scaleX !== 1 || scaleY !== 1;
148
+ } // Returns the composite rect of an element relative to its offsetParent.
149
+ // Composite means it takes into account transforms as well as layout.
150
+
151
+
152
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
153
+ if (isFixed === void 0) {
154
+ isFixed = false;
155
+ }
156
+
157
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
158
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
159
+ var documentElement = getDocumentElement(offsetParent);
160
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
161
+ var scroll = {
162
+ scrollLeft: 0,
163
+ scrollTop: 0
164
+ };
165
+ var offsets = {
166
+ x: 0,
167
+ y: 0
168
+ };
169
+
170
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
171
+ if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
172
+ isScrollParent(documentElement)) {
173
+ scroll = getNodeScroll(offsetParent);
174
+ }
175
+
176
+ if (isHTMLElement(offsetParent)) {
177
+ offsets = getBoundingClientRect(offsetParent, true);
178
+ offsets.x += offsetParent.clientLeft;
179
+ offsets.y += offsetParent.clientTop;
180
+ } else if (documentElement) {
181
+ offsets.x = getWindowScrollBarX(documentElement);
182
+ }
183
+ }
184
+
185
+ return {
186
+ x: rect.left + scroll.scrollLeft - offsets.x,
187
+ y: rect.top + scroll.scrollTop - offsets.y,
188
+ width: rect.width,
189
+ height: rect.height
190
+ };
191
+ }
192
+
193
+ // means it doesn't take into account transforms.
194
+
195
+ function getLayoutRect(element) {
196
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
197
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
198
+
199
+ var width = element.offsetWidth;
200
+ var height = element.offsetHeight;
201
+
202
+ if (Math.abs(clientRect.width - width) <= 1) {
203
+ width = clientRect.width;
204
+ }
205
+
206
+ if (Math.abs(clientRect.height - height) <= 1) {
207
+ height = clientRect.height;
208
+ }
209
+
210
+ return {
211
+ x: element.offsetLeft,
212
+ y: element.offsetTop,
213
+ width: width,
214
+ height: height
215
+ };
216
+ }
217
+
218
+ function getParentNode(element) {
219
+ if (getNodeName(element) === 'html') {
220
+ return element;
221
+ }
222
+
223
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
224
+ // $FlowFixMe[incompatible-return]
225
+ // $FlowFixMe[prop-missing]
226
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
227
+ element.parentNode || ( // DOM Element detected
228
+ isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
229
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
230
+ getDocumentElement(element) // fallback
231
+
232
+ );
233
+ }
234
+
235
+ function getScrollParent(node) {
236
+ if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
237
+ // $FlowFixMe[incompatible-return]: assume body is always available
238
+ return node.ownerDocument.body;
239
+ }
240
+
241
+ if (isHTMLElement(node) && isScrollParent(node)) {
242
+ return node;
243
+ }
244
+
245
+ return getScrollParent(getParentNode(node));
246
+ }
247
+
248
+ /*
249
+ given a DOM element, return the list of all scroll parents, up the list of ancesors
250
+ until we get to the top window object. This list is what we attach scroll listeners
251
+ to, because if any of these parent elements scroll, we'll need to re-calculate the
252
+ reference element's position.
253
+ */
254
+
255
+ function listScrollParents(element, list) {
256
+ var _element$ownerDocumen;
257
+
258
+ if (list === void 0) {
259
+ list = [];
260
+ }
261
+
262
+ var scrollParent = getScrollParent(element);
263
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
264
+ var win = getWindow(scrollParent);
265
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
266
+ var updatedList = list.concat(target);
267
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
268
+ updatedList.concat(listScrollParents(getParentNode(target)));
269
+ }
270
+
271
+ function isTableElement(element) {
272
+ return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
273
+ }
274
+
275
+ function getTrueOffsetParent(element) {
276
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
277
+ getComputedStyle(element).position === 'fixed') {
278
+ return null;
279
+ }
280
+
281
+ return element.offsetParent;
282
+ } // `.offsetParent` reports `null` for fixed elements, while absolute elements
283
+ // return the containing block
284
+
285
+
286
+ function getContainingBlock(element) {
287
+ var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
288
+ var isIE = navigator.userAgent.indexOf('Trident') !== -1;
289
+
290
+ if (isIE && isHTMLElement(element)) {
291
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
292
+ var elementCss = getComputedStyle(element);
293
+
294
+ if (elementCss.position === 'fixed') {
295
+ return null;
296
+ }
297
+ }
298
+
299
+ var currentNode = getParentNode(element);
300
+
301
+ while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
302
+ var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
303
+ // create a containing block.
304
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
305
+
306
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
307
+ return currentNode;
308
+ } else {
309
+ currentNode = currentNode.parentNode;
310
+ }
311
+ }
312
+
313
+ return null;
314
+ } // Gets the closest ancestor positioned element. Handles some edge cases,
315
+ // such as table ancestors and cross browser bugs.
316
+
317
+
318
+ function getOffsetParent(element) {
319
+ var window = getWindow(element);
320
+ var offsetParent = getTrueOffsetParent(element);
321
+
322
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
323
+ offsetParent = getTrueOffsetParent(offsetParent);
324
+ }
325
+
326
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {
327
+ return window;
328
+ }
329
+
330
+ return offsetParent || getContainingBlock(element) || window;
331
+ }
332
+
333
+ var top = 'top';
334
+ var bottom = 'bottom';
335
+ var right = 'right';
336
+ var left = 'left';
337
+ var auto = 'auto';
338
+ var basePlacements = [top, bottom, right, left];
339
+ var start = 'start';
340
+ var end = 'end';
341
+ var clippingParents = 'clippingParents';
342
+ var viewport = 'viewport';
343
+ var popper = 'popper';
344
+ var reference = 'reference';
345
+
346
+ var beforeRead = 'beforeRead';
347
+ var read = 'read';
348
+ var afterRead = 'afterRead'; // pure-logic modifiers
349
+
350
+ var beforeMain = 'beforeMain';
351
+ var main = 'main';
352
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
353
+
354
+ var beforeWrite = 'beforeWrite';
355
+ var write = 'write';
356
+ var afterWrite = 'afterWrite';
357
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
358
+
359
+ function order(modifiers) {
360
+ var map = new Map();
361
+ var visited = new Set();
362
+ var result = [];
363
+ modifiers.forEach(function (modifier) {
364
+ map.set(modifier.name, modifier);
365
+ }); // On visiting object, check for its dependencies and visit them recursively
366
+
367
+ function sort(modifier) {
368
+ visited.add(modifier.name);
369
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
370
+ requires.forEach(function (dep) {
371
+ if (!visited.has(dep)) {
372
+ var depModifier = map.get(dep);
373
+
374
+ if (depModifier) {
375
+ sort(depModifier);
376
+ }
377
+ }
378
+ });
379
+ result.push(modifier);
380
+ }
381
+
382
+ modifiers.forEach(function (modifier) {
383
+ if (!visited.has(modifier.name)) {
384
+ // check for visited object
385
+ sort(modifier);
386
+ }
387
+ });
388
+ return result;
389
+ }
390
+
391
+ function orderModifiers(modifiers) {
392
+ // order based on dependencies
393
+ var orderedModifiers = order(modifiers); // order based on phase
394
+
395
+ return modifierPhases.reduce(function (acc, phase) {
396
+ return acc.concat(orderedModifiers.filter(function (modifier) {
397
+ return modifier.phase === phase;
398
+ }));
399
+ }, []);
400
+ }
401
+
402
+ function debounce(fn) {
403
+ var pending;
404
+ return function () {
405
+ if (!pending) {
406
+ pending = new Promise(function (resolve) {
407
+ Promise.resolve().then(function () {
408
+ pending = undefined;
409
+ resolve(fn());
410
+ });
411
+ });
412
+ }
413
+
414
+ return pending;
415
+ };
416
+ }
417
+
418
+ function format(str) {
419
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
420
+ args[_key - 1] = arguments[_key];
421
+ }
422
+
423
+ return [].concat(args).reduce(function (p, c) {
424
+ return p.replace(/%s/, c);
425
+ }, str);
426
+ }
427
+
428
+ var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
429
+ var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
430
+ var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];
431
+ function validateModifiers(modifiers) {
432
+ modifiers.forEach(function (modifier) {
433
+ [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`
434
+ .filter(function (value, index, self) {
435
+ return self.indexOf(value) === index;
436
+ }).forEach(function (key) {
437
+ switch (key) {
438
+ case 'name':
439
+ if (typeof modifier.name !== 'string') {
440
+ console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', "\"" + String(modifier.name) + "\""));
441
+ }
442
+
443
+ break;
444
+
445
+ case 'enabled':
446
+ if (typeof modifier.enabled !== 'boolean') {
447
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\""));
448
+ }
449
+
450
+ break;
451
+
452
+ case 'phase':
453
+ if (modifierPhases.indexOf(modifier.phase) < 0) {
454
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\""));
455
+ }
456
+
457
+ break;
458
+
459
+ case 'fn':
460
+ if (typeof modifier.fn !== 'function') {
461
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', "\"" + String(modifier.fn) + "\""));
462
+ }
463
+
464
+ break;
465
+
466
+ case 'effect':
467
+ if (modifier.effect != null && typeof modifier.effect !== 'function') {
468
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\""));
469
+ }
470
+
471
+ break;
472
+
473
+ case 'requires':
474
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
475
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\""));
476
+ }
477
+
478
+ break;
479
+
480
+ case 'requiresIfExists':
481
+ if (!Array.isArray(modifier.requiresIfExists)) {
482
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', "\"" + String(modifier.requiresIfExists) + "\""));
483
+ }
484
+
485
+ break;
486
+
487
+ case 'options':
488
+ case 'data':
489
+ break;
490
+
491
+ default:
492
+ console.error("PopperJS: an invalid property has been provided to the \"" + modifier.name + "\" modifier, valid properties are " + VALID_PROPERTIES.map(function (s) {
493
+ return "\"" + s + "\"";
494
+ }).join(', ') + "; but \"" + key + "\" was provided.");
495
+ }
496
+
497
+ modifier.requires && modifier.requires.forEach(function (requirement) {
498
+ if (modifiers.find(function (mod) {
499
+ return mod.name === requirement;
500
+ }) == null) {
501
+ console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
502
+ }
503
+ });
504
+ });
505
+ });
506
+ }
507
+
508
+ function uniqueBy(arr, fn) {
509
+ var identifiers = new Set();
510
+ return arr.filter(function (item) {
511
+ var identifier = fn(item);
512
+
513
+ if (!identifiers.has(identifier)) {
514
+ identifiers.add(identifier);
515
+ return true;
516
+ }
517
+ });
518
+ }
519
+
520
+ function getBasePlacement(placement) {
521
+ return placement.split('-')[0];
522
+ }
523
+
524
+ function mergeByName(modifiers) {
525
+ var merged = modifiers.reduce(function (merged, current) {
526
+ var existing = merged[current.name];
527
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
528
+ options: Object.assign({}, existing.options, current.options),
529
+ data: Object.assign({}, existing.data, current.data)
530
+ }) : current;
531
+ return merged;
532
+ }, {}); // IE11 does not support Object.values
533
+
534
+ return Object.keys(merged).map(function (key) {
535
+ return merged[key];
536
+ });
537
+ }
538
+
539
+ function getViewportRect(element) {
540
+ var win = getWindow(element);
541
+ var html = getDocumentElement(element);
542
+ var visualViewport = win.visualViewport;
543
+ var width = html.clientWidth;
544
+ var height = html.clientHeight;
545
+ var x = 0;
546
+ var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper
547
+ // can be obscured underneath it.
548
+ // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
549
+ // if it isn't open, so if this isn't available, the popper will be detected
550
+ // to overflow the bottom of the screen too early.
551
+
552
+ if (visualViewport) {
553
+ width = visualViewport.width;
554
+ height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)
555
+ // In Chrome, it returns a value very close to 0 (+/-) but contains rounding
556
+ // errors due to floating point numbers, so we need to check precision.
557
+ // Safari returns a number <= 0, usually < -1 when pinch-zoomed
558
+ // Feature detection fails in mobile emulation mode in Chrome.
559
+ // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
560
+ // 0.001
561
+ // Fallback here: "Not Safari" userAgent
562
+
563
+ if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
564
+ x = visualViewport.offsetLeft;
565
+ y = visualViewport.offsetTop;
566
+ }
567
+ }
568
+
569
+ return {
570
+ width: width,
571
+ height: height,
572
+ x: x + getWindowScrollBarX(element),
573
+ y: y
574
+ };
575
+ }
576
+
577
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable
578
+
579
+ function getDocumentRect(element) {
580
+ var _element$ownerDocumen;
581
+
582
+ var html = getDocumentElement(element);
583
+ var winScroll = getWindowScroll(element);
584
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
585
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
586
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
587
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
588
+ var y = -winScroll.scrollTop;
589
+
590
+ if (getComputedStyle(body || html).direction === 'rtl') {
591
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
592
+ }
593
+
594
+ return {
595
+ width: width,
596
+ height: height,
597
+ x: x,
598
+ y: y
599
+ };
600
+ }
601
+
602
+ function contains(parent, child) {
603
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
604
+
605
+ if (parent.contains(child)) {
606
+ return true;
607
+ } // then fallback to custom implementation with Shadow DOM support
608
+ else if (rootNode && isShadowRoot(rootNode)) {
609
+ var next = child;
610
+
611
+ do {
612
+ if (next && parent.isSameNode(next)) {
613
+ return true;
614
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
615
+
616
+
617
+ next = next.parentNode || next.host;
618
+ } while (next);
619
+ } // Give up, the result is false
620
+
621
+
622
+ return false;
623
+ }
624
+
625
+ function rectToClientRect(rect) {
626
+ return Object.assign({}, rect, {
627
+ left: rect.x,
628
+ top: rect.y,
629
+ right: rect.x + rect.width,
630
+ bottom: rect.y + rect.height
631
+ });
632
+ }
633
+
634
+ function getInnerBoundingClientRect(element) {
635
+ var rect = getBoundingClientRect(element);
636
+ rect.top = rect.top + element.clientTop;
637
+ rect.left = rect.left + element.clientLeft;
638
+ rect.bottom = rect.top + element.clientHeight;
639
+ rect.right = rect.left + element.clientWidth;
640
+ rect.width = element.clientWidth;
641
+ rect.height = element.clientHeight;
642
+ rect.x = rect.left;
643
+ rect.y = rect.top;
644
+ return rect;
645
+ }
646
+
647
+ function getClientRectFromMixedType(element, clippingParent) {
648
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
649
+ } // A "clipping parent" is an overflowable container with the characteristic of
650
+ // clipping (or hiding) overflowing elements with a position different from
651
+ // `initial`
652
+
653
+
654
+ function getClippingParents(element) {
655
+ var clippingParents = listScrollParents(getParentNode(element));
656
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;
657
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
658
+
659
+ if (!isElement(clipperElement)) {
660
+ return [];
661
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
662
+
663
+
664
+ return clippingParents.filter(function (clippingParent) {
665
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
666
+ });
667
+ } // Gets the maximum area that the element is visible in due to any number of
668
+ // clipping parents
669
+
670
+
671
+ function getClippingRect(element, boundary, rootBoundary) {
672
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
673
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
674
+ var firstClippingParent = clippingParents[0];
675
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
676
+ var rect = getClientRectFromMixedType(element, clippingParent);
677
+ accRect.top = max(rect.top, accRect.top);
678
+ accRect.right = min(rect.right, accRect.right);
679
+ accRect.bottom = min(rect.bottom, accRect.bottom);
680
+ accRect.left = max(rect.left, accRect.left);
681
+ return accRect;
682
+ }, getClientRectFromMixedType(element, firstClippingParent));
683
+ clippingRect.width = clippingRect.right - clippingRect.left;
684
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
685
+ clippingRect.x = clippingRect.left;
686
+ clippingRect.y = clippingRect.top;
687
+ return clippingRect;
688
+ }
689
+
690
+ function getVariation(placement) {
691
+ return placement.split('-')[1];
692
+ }
693
+
694
+ function getMainAxisFromPlacement(placement) {
695
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
696
+ }
697
+
698
+ function computeOffsets(_ref) {
699
+ var reference = _ref.reference,
700
+ element = _ref.element,
701
+ placement = _ref.placement;
702
+ var basePlacement = placement ? getBasePlacement(placement) : null;
703
+ var variation = placement ? getVariation(placement) : null;
704
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
705
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
706
+ var offsets;
707
+
708
+ switch (basePlacement) {
709
+ case top:
710
+ offsets = {
711
+ x: commonX,
712
+ y: reference.y - element.height
713
+ };
714
+ break;
715
+
716
+ case bottom:
717
+ offsets = {
718
+ x: commonX,
719
+ y: reference.y + reference.height
720
+ };
721
+ break;
722
+
723
+ case right:
724
+ offsets = {
725
+ x: reference.x + reference.width,
726
+ y: commonY
727
+ };
728
+ break;
729
+
730
+ case left:
731
+ offsets = {
732
+ x: reference.x - element.width,
733
+ y: commonY
734
+ };
735
+ break;
736
+
737
+ default:
738
+ offsets = {
739
+ x: reference.x,
740
+ y: reference.y
741
+ };
742
+ }
743
+
744
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
745
+
746
+ if (mainAxis != null) {
747
+ var len = mainAxis === 'y' ? 'height' : 'width';
748
+
749
+ switch (variation) {
750
+ case start:
751
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
752
+ break;
753
+
754
+ case end:
755
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
756
+ break;
757
+ }
758
+ }
759
+
760
+ return offsets;
761
+ }
762
+
763
+ function getFreshSideObject() {
764
+ return {
765
+ top: 0,
766
+ right: 0,
767
+ bottom: 0,
768
+ left: 0
769
+ };
770
+ }
771
+
772
+ function mergePaddingObject(paddingObject) {
773
+ return Object.assign({}, getFreshSideObject(), paddingObject);
774
+ }
775
+
776
+ function expandToHashMap(value, keys) {
777
+ return keys.reduce(function (hashMap, key) {
778
+ hashMap[key] = value;
779
+ return hashMap;
780
+ }, {});
781
+ }
782
+
783
+ function detectOverflow(state, options) {
784
+ if (options === void 0) {
785
+ options = {};
786
+ }
787
+
788
+ var _options = options,
789
+ _options$placement = _options.placement,
790
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
791
+ _options$boundary = _options.boundary,
792
+ boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
793
+ _options$rootBoundary = _options.rootBoundary,
794
+ rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
795
+ _options$elementConte = _options.elementContext,
796
+ elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
797
+ _options$altBoundary = _options.altBoundary,
798
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
799
+ _options$padding = _options.padding,
800
+ padding = _options$padding === void 0 ? 0 : _options$padding;
801
+ var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
802
+ var altContext = elementContext === popper ? reference : popper;
803
+ var popperRect = state.rects.popper;
804
+ var element = state.elements[altBoundary ? altContext : elementContext];
805
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
806
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
807
+ var popperOffsets = computeOffsets({
808
+ reference: referenceClientRect,
809
+ element: popperRect,
810
+ strategy: 'absolute',
811
+ placement: placement
812
+ });
813
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
814
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
815
+ // 0 or negative = within the clipping rect
816
+
817
+ var overflowOffsets = {
818
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
819
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
820
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
821
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
822
+ };
823
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
824
+
825
+ if (elementContext === popper && offsetData) {
826
+ var offset = offsetData[placement];
827
+ Object.keys(overflowOffsets).forEach(function (key) {
828
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
829
+ var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
830
+ overflowOffsets[key] += offset[axis] * multiply;
831
+ });
832
+ }
833
+
834
+ return overflowOffsets;
835
+ }
836
+
837
+ var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
838
+ var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
839
+ var DEFAULT_OPTIONS = {
840
+ placement: 'bottom',
841
+ modifiers: [],
842
+ strategy: 'absolute'
843
+ };
844
+
845
+ function areValidElements() {
846
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
847
+ args[_key] = arguments[_key];
848
+ }
849
+
850
+ return !args.some(function (element) {
851
+ return !(element && typeof element.getBoundingClientRect === 'function');
852
+ });
853
+ }
854
+
855
+ function popperGenerator(generatorOptions) {
856
+ if (generatorOptions === void 0) {
857
+ generatorOptions = {};
858
+ }
859
+
860
+ var _generatorOptions = generatorOptions,
861
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
862
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
863
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
864
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
865
+ return function createPopper(reference, popper, options) {
866
+ if (options === void 0) {
867
+ options = defaultOptions;
868
+ }
869
+
870
+ var state = {
871
+ placement: 'bottom',
872
+ orderedModifiers: [],
873
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
874
+ modifiersData: {},
875
+ elements: {
876
+ reference: reference,
877
+ popper: popper
878
+ },
879
+ attributes: {},
880
+ styles: {}
881
+ };
882
+ var effectCleanupFns = [];
883
+ var isDestroyed = false;
884
+ var instance = {
885
+ state: state,
886
+ setOptions: function setOptions(setOptionsAction) {
887
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
888
+ cleanupModifierEffects();
889
+ state.options = Object.assign({}, defaultOptions, state.options, options);
890
+ state.scrollParents = {
891
+ reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
892
+ popper: listScrollParents(popper)
893
+ }; // Orders the modifiers based on their dependencies and `phase`
894
+ // properties
895
+
896
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
897
+
898
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
899
+ return m.enabled;
900
+ }); // Validate the provided modifiers so that the consumer will get warned
901
+ // if one of the modifiers is invalid for any reason
902
+
903
+ {
904
+ var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {
905
+ var name = _ref.name;
906
+ return name;
907
+ });
908
+ validateModifiers(modifiers);
909
+
910
+ if (getBasePlacement(state.options.placement) === auto) {
911
+ var flipModifier = state.orderedModifiers.find(function (_ref2) {
912
+ var name = _ref2.name;
913
+ return name === 'flip';
914
+ });
915
+
916
+ if (!flipModifier) {
917
+ console.error(['Popper: "auto" placements require the "flip" modifier be', 'present and enabled to work.'].join(' '));
918
+ }
919
+ }
920
+
921
+ var _getComputedStyle = getComputedStyle(popper),
922
+ marginTop = _getComputedStyle.marginTop,
923
+ marginRight = _getComputedStyle.marginRight,
924
+ marginBottom = _getComputedStyle.marginBottom,
925
+ marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can
926
+ // cause bugs with positioning, so we'll warn the consumer
927
+
928
+
929
+ if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {
930
+ return parseFloat(margin);
931
+ })) {
932
+ console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));
933
+ }
934
+ }
935
+
936
+ runModifierEffects();
937
+ return instance.update();
938
+ },
939
+ // Sync update – it will always be executed, even if not necessary. This
940
+ // is useful for low frequency updates where sync behavior simplifies the
941
+ // logic.
942
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
943
+ // prefer the async Popper#update method
944
+ forceUpdate: function forceUpdate() {
945
+ if (isDestroyed) {
946
+ return;
947
+ }
948
+
949
+ var _state$elements = state.elements,
950
+ reference = _state$elements.reference,
951
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
952
+ // anymore
953
+
954
+ if (!areValidElements(reference, popper)) {
955
+ {
956
+ console.error(INVALID_ELEMENT_ERROR);
957
+ }
958
+
959
+ return;
960
+ } // Store the reference and popper rects to be read by modifiers
961
+
962
+
963
+ state.rects = {
964
+ reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
965
+ popper: getLayoutRect(popper)
966
+ }; // Modifiers have the ability to reset the current update cycle. The
967
+ // most common use case for this is the `flip` modifier changing the
968
+ // placement, which then needs to re-run all the modifiers, because the
969
+ // logic was previously ran for the previous placement and is therefore
970
+ // stale/incorrect
971
+
972
+ state.reset = false;
973
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
974
+ // is filled with the initial data specified by the modifier. This means
975
+ // it doesn't persist and is fresh on each update.
976
+ // To ensure persistent data, use `${name}#persistent`
977
+
978
+ state.orderedModifiers.forEach(function (modifier) {
979
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
980
+ });
981
+ var __debug_loops__ = 0;
982
+
983
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
984
+ {
985
+ __debug_loops__ += 1;
986
+
987
+ if (__debug_loops__ > 100) {
988
+ console.error(INFINITE_LOOP_ERROR);
989
+ break;
990
+ }
991
+ }
992
+
993
+ if (state.reset === true) {
994
+ state.reset = false;
995
+ index = -1;
996
+ continue;
997
+ }
998
+
999
+ var _state$orderedModifie = state.orderedModifiers[index],
1000
+ fn = _state$orderedModifie.fn,
1001
+ _state$orderedModifie2 = _state$orderedModifie.options,
1002
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
1003
+ name = _state$orderedModifie.name;
1004
+
1005
+ if (typeof fn === 'function') {
1006
+ state = fn({
1007
+ state: state,
1008
+ options: _options,
1009
+ name: name,
1010
+ instance: instance
1011
+ }) || state;
1012
+ }
1013
+ }
1014
+ },
1015
+ // Async and optimistically optimized update – it will not be executed if
1016
+ // not necessary (debounced to run at most once-per-tick)
1017
+ update: debounce(function () {
1018
+ return new Promise(function (resolve) {
1019
+ instance.forceUpdate();
1020
+ resolve(state);
1021
+ });
1022
+ }),
1023
+ destroy: function destroy() {
1024
+ cleanupModifierEffects();
1025
+ isDestroyed = true;
1026
+ }
1027
+ };
1028
+
1029
+ if (!areValidElements(reference, popper)) {
1030
+ {
1031
+ console.error(INVALID_ELEMENT_ERROR);
1032
+ }
1033
+
1034
+ return instance;
1035
+ }
1036
+
1037
+ instance.setOptions(options).then(function (state) {
1038
+ if (!isDestroyed && options.onFirstUpdate) {
1039
+ options.onFirstUpdate(state);
1040
+ }
1041
+ }); // Modifiers have the ability to execute arbitrary code before the first
1042
+ // update cycle runs. They will be executed in the same order as the update
1043
+ // cycle. This is useful when a modifier adds some persistent data that
1044
+ // other modifiers need to use, but the modifier is run after the dependent
1045
+ // one.
1046
+
1047
+ function runModifierEffects() {
1048
+ state.orderedModifiers.forEach(function (_ref3) {
1049
+ var name = _ref3.name,
1050
+ _ref3$options = _ref3.options,
1051
+ options = _ref3$options === void 0 ? {} : _ref3$options,
1052
+ effect = _ref3.effect;
1053
+
1054
+ if (typeof effect === 'function') {
1055
+ var cleanupFn = effect({
1056
+ state: state,
1057
+ name: name,
1058
+ instance: instance,
1059
+ options: options
1060
+ });
1061
+
1062
+ var noopFn = function noopFn() {};
1063
+
1064
+ effectCleanupFns.push(cleanupFn || noopFn);
1065
+ }
1066
+ });
1067
+ }
1068
+
1069
+ function cleanupModifierEffects() {
1070
+ effectCleanupFns.forEach(function (fn) {
1071
+ return fn();
1072
+ });
1073
+ effectCleanupFns = [];
1074
+ }
1075
+
1076
+ return instance;
1077
+ };
1078
+ }
1079
+
1080
+ var passive = {
1081
+ passive: true
1082
+ };
1083
+
1084
+ function effect$1(_ref) {
1085
+ var state = _ref.state,
1086
+ instance = _ref.instance,
1087
+ options = _ref.options;
1088
+ var _options$scroll = options.scroll,
1089
+ scroll = _options$scroll === void 0 ? true : _options$scroll,
1090
+ _options$resize = options.resize,
1091
+ resize = _options$resize === void 0 ? true : _options$resize;
1092
+ var window = getWindow(state.elements.popper);
1093
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
1094
+
1095
+ if (scroll) {
1096
+ scrollParents.forEach(function (scrollParent) {
1097
+ scrollParent.addEventListener('scroll', instance.update, passive);
1098
+ });
1099
+ }
1100
+
1101
+ if (resize) {
1102
+ window.addEventListener('resize', instance.update, passive);
1103
+ }
1104
+
1105
+ return function () {
1106
+ if (scroll) {
1107
+ scrollParents.forEach(function (scrollParent) {
1108
+ scrollParent.removeEventListener('scroll', instance.update, passive);
1109
+ });
1110
+ }
1111
+
1112
+ if (resize) {
1113
+ window.removeEventListener('resize', instance.update, passive);
1114
+ }
1115
+ };
1116
+ } // eslint-disable-next-line import/no-unused-modules
1117
+
1118
+
1119
+ var eventListeners = {
1120
+ name: 'eventListeners',
1121
+ enabled: true,
1122
+ phase: 'write',
1123
+ fn: function fn() {},
1124
+ effect: effect$1,
1125
+ data: {}
1126
+ };
1127
+
1128
+ function popperOffsets(_ref) {
1129
+ var state = _ref.state,
1130
+ name = _ref.name;
1131
+ // Offsets are the actual position the popper needs to have to be
1132
+ // properly positioned near its reference element
1133
+ // This is the most basic placement, and will be adjusted by
1134
+ // the modifiers in the next step
1135
+ state.modifiersData[name] = computeOffsets({
1136
+ reference: state.rects.reference,
1137
+ element: state.rects.popper,
1138
+ strategy: 'absolute',
1139
+ placement: state.placement
1140
+ });
1141
+ } // eslint-disable-next-line import/no-unused-modules
1142
+
1143
+
1144
+ var popperOffsets$1 = {
1145
+ name: 'popperOffsets',
1146
+ enabled: true,
1147
+ phase: 'read',
1148
+ fn: popperOffsets,
1149
+ data: {}
1150
+ };
1151
+
1152
+ var unsetSides = {
1153
+ top: 'auto',
1154
+ right: 'auto',
1155
+ bottom: 'auto',
1156
+ left: 'auto'
1157
+ }; // Round the offsets to the nearest suitable subpixel based on the DPR.
1158
+ // Zooming can change the DPR, but it seems to report a value that will
1159
+ // cleanly divide the values into the appropriate subpixels.
1160
+
1161
+ function roundOffsetsByDPR(_ref) {
1162
+ var x = _ref.x,
1163
+ y = _ref.y;
1164
+ var win = window;
1165
+ var dpr = win.devicePixelRatio || 1;
1166
+ return {
1167
+ x: round(x * dpr) / dpr || 0,
1168
+ y: round(y * dpr) / dpr || 0
1169
+ };
1170
+ }
1171
+
1172
+ function mapToStyles(_ref2) {
1173
+ var _Object$assign2;
1174
+
1175
+ var popper = _ref2.popper,
1176
+ popperRect = _ref2.popperRect,
1177
+ placement = _ref2.placement,
1178
+ variation = _ref2.variation,
1179
+ offsets = _ref2.offsets,
1180
+ position = _ref2.position,
1181
+ gpuAcceleration = _ref2.gpuAcceleration,
1182
+ adaptive = _ref2.adaptive,
1183
+ roundOffsets = _ref2.roundOffsets,
1184
+ isFixed = _ref2.isFixed;
1185
+ var _offsets$x = offsets.x,
1186
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
1187
+ _offsets$y = offsets.y,
1188
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
1189
+
1190
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
1191
+ x: x,
1192
+ y: y
1193
+ }) : {
1194
+ x: x,
1195
+ y: y
1196
+ };
1197
+
1198
+ x = _ref3.x;
1199
+ y = _ref3.y;
1200
+ var hasX = offsets.hasOwnProperty('x');
1201
+ var hasY = offsets.hasOwnProperty('y');
1202
+ var sideX = left;
1203
+ var sideY = top;
1204
+ var win = window;
1205
+
1206
+ if (adaptive) {
1207
+ var offsetParent = getOffsetParent(popper);
1208
+ var heightProp = 'clientHeight';
1209
+ var widthProp = 'clientWidth';
1210
+
1211
+ if (offsetParent === getWindow(popper)) {
1212
+ offsetParent = getDocumentElement(popper);
1213
+
1214
+ if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {
1215
+ heightProp = 'scrollHeight';
1216
+ widthProp = 'scrollWidth';
1217
+ }
1218
+ } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
1219
+
1220
+
1221
+ offsetParent = offsetParent;
1222
+
1223
+ if (placement === top || (placement === left || placement === right) && variation === end) {
1224
+ sideY = bottom;
1225
+ var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
1226
+ offsetParent[heightProp];
1227
+ y -= offsetY - popperRect.height;
1228
+ y *= gpuAcceleration ? 1 : -1;
1229
+ }
1230
+
1231
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
1232
+ sideX = right;
1233
+ var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
1234
+ offsetParent[widthProp];
1235
+ x -= offsetX - popperRect.width;
1236
+ x *= gpuAcceleration ? 1 : -1;
1237
+ }
1238
+ }
1239
+
1240
+ var commonStyles = Object.assign({
1241
+ position: position
1242
+ }, adaptive && unsetSides);
1243
+
1244
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
1245
+ x: x,
1246
+ y: y
1247
+ }) : {
1248
+ x: x,
1249
+ y: y
1250
+ };
1251
+
1252
+ x = _ref4.x;
1253
+ y = _ref4.y;
1254
+
1255
+ if (gpuAcceleration) {
1256
+ var _Object$assign;
1257
+
1258
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
1259
+ }
1260
+
1261
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
1262
+ }
1263
+
1264
+ function computeStyles(_ref5) {
1265
+ var state = _ref5.state,
1266
+ options = _ref5.options;
1267
+ var _options$gpuAccelerat = options.gpuAcceleration,
1268
+ gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
1269
+ _options$adaptive = options.adaptive,
1270
+ adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
1271
+ _options$roundOffsets = options.roundOffsets,
1272
+ roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
1273
+
1274
+ {
1275
+ var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
1276
+
1277
+ if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
1278
+ return transitionProperty.indexOf(property) >= 0;
1279
+ })) {
1280
+ console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: "transform", "top", "right", "bottom", "left".', '\n\n', 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\n\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));
1281
+ }
1282
+ }
1283
+
1284
+ var commonStyles = {
1285
+ placement: getBasePlacement(state.placement),
1286
+ variation: getVariation(state.placement),
1287
+ popper: state.elements.popper,
1288
+ popperRect: state.rects.popper,
1289
+ gpuAcceleration: gpuAcceleration,
1290
+ isFixed: state.options.strategy === 'fixed'
1291
+ };
1292
+
1293
+ if (state.modifiersData.popperOffsets != null) {
1294
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
1295
+ offsets: state.modifiersData.popperOffsets,
1296
+ position: state.options.strategy,
1297
+ adaptive: adaptive,
1298
+ roundOffsets: roundOffsets
1299
+ })));
1300
+ }
1301
+
1302
+ if (state.modifiersData.arrow != null) {
1303
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
1304
+ offsets: state.modifiersData.arrow,
1305
+ position: 'absolute',
1306
+ adaptive: false,
1307
+ roundOffsets: roundOffsets
1308
+ })));
1309
+ }
1310
+
1311
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
1312
+ 'data-popper-placement': state.placement
1313
+ });
1314
+ } // eslint-disable-next-line import/no-unused-modules
1315
+
1316
+
1317
+ var computeStyles$1 = {
1318
+ name: 'computeStyles',
1319
+ enabled: true,
1320
+ phase: 'beforeWrite',
1321
+ fn: computeStyles,
1322
+ data: {}
1323
+ };
1324
+
1325
+ // and applies them to the HTMLElements such as popper and arrow
1326
+
1327
+ function applyStyles(_ref) {
1328
+ var state = _ref.state;
1329
+ Object.keys(state.elements).forEach(function (name) {
1330
+ var style = state.styles[name] || {};
1331
+ var attributes = state.attributes[name] || {};
1332
+ var element = state.elements[name]; // arrow is optional + virtual elements
1333
+
1334
+ if (!isHTMLElement(element) || !getNodeName(element)) {
1335
+ return;
1336
+ } // Flow doesn't support to extend this property, but it's the most
1337
+ // effective way to apply styles to an HTMLElement
1338
+ // $FlowFixMe[cannot-write]
1339
+
1340
+
1341
+ Object.assign(element.style, style);
1342
+ Object.keys(attributes).forEach(function (name) {
1343
+ var value = attributes[name];
1344
+
1345
+ if (value === false) {
1346
+ element.removeAttribute(name);
1347
+ } else {
1348
+ element.setAttribute(name, value === true ? '' : value);
1349
+ }
1350
+ });
1351
+ });
1352
+ }
1353
+
1354
+ function effect(_ref2) {
1355
+ var state = _ref2.state;
1356
+ var initialStyles = {
1357
+ popper: {
1358
+ position: state.options.strategy,
1359
+ left: '0',
1360
+ top: '0',
1361
+ margin: '0'
1362
+ },
1363
+ arrow: {
1364
+ position: 'absolute'
1365
+ },
1366
+ reference: {}
1367
+ };
1368
+ Object.assign(state.elements.popper.style, initialStyles.popper);
1369
+ state.styles = initialStyles;
1370
+
1371
+ if (state.elements.arrow) {
1372
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
1373
+ }
1374
+
1375
+ return function () {
1376
+ Object.keys(state.elements).forEach(function (name) {
1377
+ var element = state.elements[name];
1378
+ var attributes = state.attributes[name] || {};
1379
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
1380
+
1381
+ var style = styleProperties.reduce(function (style, property) {
1382
+ style[property] = '';
1383
+ return style;
1384
+ }, {}); // arrow is optional + virtual elements
1385
+
1386
+ if (!isHTMLElement(element) || !getNodeName(element)) {
1387
+ return;
1388
+ }
1389
+
1390
+ Object.assign(element.style, style);
1391
+ Object.keys(attributes).forEach(function (attribute) {
1392
+ element.removeAttribute(attribute);
1393
+ });
1394
+ });
1395
+ };
1396
+ } // eslint-disable-next-line import/no-unused-modules
1397
+
1398
+
1399
+ var applyStyles$1 = {
1400
+ name: 'applyStyles',
1401
+ enabled: true,
1402
+ phase: 'write',
1403
+ fn: applyStyles,
1404
+ effect: effect,
1405
+ requires: ['computeStyles']
1406
+ };
1407
+
1408
+ var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
1409
+ var createPopper = /*#__PURE__*/popperGenerator({
1410
+ defaultModifiers: defaultModifiers
1411
+ }); // eslint-disable-next-line import/no-unused-modules
1412
+
1413
+ exports.createPopper = createPopper;
1414
+ exports.defaultModifiers = defaultModifiers;
1415
+ exports.detectOverflow = detectOverflow;
1416
+ exports.popperGenerator = popperGenerator;
1417
+
1418
+ Object.defineProperty(exports, '__esModule', { value: true });
1419
+
1420
+ })));
1421
+ //# sourceMappingURL=popper-lite.js.map
assets/libs/popper/popper-lite.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"popper-lite.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/debounce.js","../../src/utils/format.js","../../src/utils/validateModifiers.js","../../src/utils/uniqueBy.js","../../src/utils/getBasePlacement.js","../../src/utils/mergeByName.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/getFreshSideObject.js","../../src/utils/mergePaddingObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js","../../src/modifiers/eventListeners.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/computeStyles.js","../../src/modifiers/applyStyles.js","../../src/popper-lite.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false\n): ClientRectObject {\n const rect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n const offsetHeight = element.offsetHeight;\n const offsetWidth = element.offsetWidth;\n\n // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n const isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\n\nexport default function format(str: string, ...args: Array<string>) {\n return [...args].reduce((p, c) => p.replace(/%s/, c), str);\n}\n","// @flow\nimport format from './format';\nimport { modifierPhases } from '../enums';\n\nconst INVALID_MODIFIER_ERROR =\n 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nconst MISSING_DEPENDENCY_ERROR =\n 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nconst VALID_PROPERTIES = [\n 'name',\n 'enabled',\n 'phase',\n 'fn',\n 'effect',\n 'requires',\n 'options',\n];\n\nexport default function validateModifiers(modifiers: Array<any>): void {\n modifiers.forEach((modifier) => {\n [...Object.keys(modifier), ...VALID_PROPERTIES]\n // IE11-compatible replacement for `new Set(iterable)`\n .filter((value, index, self) => self.indexOf(value) === index)\n .forEach((key) => {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n String(modifier.name),\n '\"name\"',\n '\"string\"',\n `\"${String(modifier.name)}\"`\n )\n );\n }\n break;\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"enabled\"',\n '\"boolean\"',\n `\"${String(modifier.enabled)}\"`\n )\n );\n }\n break;\n case 'phase':\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"phase\"',\n `either ${modifierPhases.join(', ')}`,\n `\"${String(modifier.phase)}\"`\n )\n );\n }\n break;\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"fn\"',\n '\"function\"',\n `\"${String(modifier.fn)}\"`\n )\n );\n }\n break;\n case 'effect':\n if (\n modifier.effect != null &&\n typeof modifier.effect !== 'function'\n ) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"effect\"',\n '\"function\"',\n `\"${String(modifier.fn)}\"`\n )\n );\n }\n break;\n case 'requires':\n if (\n modifier.requires != null &&\n !Array.isArray(modifier.requires)\n ) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"requires\"',\n '\"array\"',\n `\"${String(modifier.requires)}\"`\n )\n );\n }\n break;\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"requiresIfExists\"',\n '\"array\"',\n `\"${String(modifier.requiresIfExists)}\"`\n )\n );\n }\n break;\n case 'options':\n case 'data':\n break;\n default:\n console.error(\n `PopperJS: an invalid property has been provided to the \"${\n modifier.name\n }\" modifier, valid properties are ${VALID_PROPERTIES.map(\n (s) => `\"${s}\"`\n ).join(', ')}; but \"${key}\" was provided.`\n );\n }\n\n modifier.requires &&\n modifier.requires.forEach((requirement) => {\n if (modifiers.find((mod) => mod.name === requirement) == null) {\n console.error(\n format(\n MISSING_DEPENDENCY_ERROR,\n String(modifier.name),\n requirement,\n requirement\n )\n );\n }\n });\n });\n });\n}\n","// @flow\n\nexport default function uniqueBy<T>(arr: Array<T>, fn: T => any): Array<T> {\n const identifiers = new Set();\n\n return arr.filter(item => {\n const identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n\nexport default function getViewportRect(element: Element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(element: Element) {\n const rect = getBoundingClientRect(element);\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\n\nconst INVALID_ELEMENT_ERROR =\n 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR =\n 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const {\n defaultModifiers = [],\n defaultOptions = DEFAULT_OPTIONS,\n } = generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (__DEV__) {\n const modifiers = uniqueBy(\n [...orderedModifiers, ...state.options.modifiers],\n ({ name }) => name\n );\n\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(\n ({ name }) => name === 'flip'\n );\n\n if (!flipModifier) {\n console.error(\n [\n 'Popper: \"auto\" placements require the \"flip\" modifier be',\n 'present and enabled to work.',\n ].join(' ')\n );\n }\n }\n\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = getComputedStyle(popper);\n\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if (\n [marginTop, marginRight, marginBottom, marginLeft].some((margin) =>\n parseFloat(margin)\n )\n ) {\n console.warn(\n [\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.',\n ].join(' ')\n );\n }\n }\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (__DEV__) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }): Offsets {\n const win: Window = window;\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function'\n ? roundOffsets({ x, y })\n : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y })\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n if (__DEV__) {\n const transitionProperty =\n getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (\n adaptive &&\n ['transform', 'top', 'right', 'bottom', 'left'].some(\n (property) => transitionProperty.indexOf(property) >= 0\n )\n ) {\n console.warn(\n [\n 'Popper: Detected CSS transitions on at least one of the following',\n 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".',\n '\\n\\n',\n 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow',\n 'for smooth transitions, or remove these properties from the CSS',\n 'transition declaration on the popper element if only transitioning',\n 'opacity or background-color for example.',\n '\\n\\n',\n 'We recommend using the popper element as a wrapper around an inner',\n 'element that can have any CSS property transitioned for animations.',\n ].join(' ')\n );\n }\n }\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getBoundingClientRect","element","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","top","right","bottom","left","x","y","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","test","isElementScaled","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","abs","offsetLeft","offsetTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","target","concat","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","navigator","userAgent","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","map","Map","visited","Set","result","forEach","modifier","set","name","sort","add","requires","requiresIfExists","dep","has","depModifier","get","push","orderModifiers","orderedModifiers","reduce","acc","phase","debounce","fn","pending","Promise","resolve","then","undefined","format","str","args","p","c","replace","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","Object","keys","value","index","self","key","console","error","String","enabled","join","effect","Array","isArray","s","requirement","find","mod","uniqueBy","arr","identifiers","item","identifier","getBasePlacement","placement","split","mergeByName","merged","current","existing","options","data","getViewportRect","html","clientWidth","clientHeight","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","state","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","strategy","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","INVALID_ELEMENT_ERROR","INFINITE_LOOP_ERROR","DEFAULT_OPTIONS","areValidElements","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","createPopper","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","m","flipModifier","marginTop","marginRight","marginBottom","marginLeft","margin","parseFloat","warn","runModifierEffects","update","forceUpdate","reset","__debug_loops__","length","destroy","onFirstUpdate","cleanupFn","noopFn","passive","resize","addEventListener","removeEventListener","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","computeStyles","transitionProperty","property","arrow","applyStyles","style","assign","removeAttribute","setAttribute","initialStyles","styleProperties","attribute","eventListeners"],"mappings":"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"}
assets/libs/popper/popper-lite.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function o(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function r(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),r=1,i=1;if(o(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(r=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/r,height:n.height/i,top:n.top/i,right:n.right/r,bottom:n.bottom/i,left:n.left/r,x:n.left/r,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function u(e){return e?(e.nodeName||"").toLowerCase():null}function l(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function p(e){return f(l(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function m(e,n,r){void 0===r&&(r=!1);var i,a,d=o(n),m=o(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,o=s(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(n),v=l(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!r)&&(("body"!==u(n)||h(v))&&(y=(i=n)!==t(i)&&o(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),o(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=p(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){return"html"===u(e)?e:e.assignedSlot||e.parentNode||(r(e)?e.host:null)||l(e)}function g(e){return["html","body","#document"].indexOf(u(e))>=0?e.ownerDocument.body:o(e)&&h(e)?e:g(v(e))}function y(e,n){var o;void 0===n&&(n=[]);var r=g(e),i=r===(null==(o=e.ownerDocument)?void 0:o.body),a=t(r),s=i?[a].concat(a.visualViewport||[],h(r)?r:[]):r,f=n.concat(s);return i?f:f.concat(y(v(s)))}function b(e){return["table","td","th"].indexOf(u(e))>=0}function w(e){return o(e)&&"fixed"!==d(e).position?e.offsetParent:null}function x(e){for(var n=t(e),r=w(e);r&&b(r)&&"static"===d(r).position;)r=w(r);return r&&("html"===u(r)||"body"===u(r)&&"static"===d(r).position)?n:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&o(e)&&"fixed"===d(e).position)return null;for(var n=v(e);o(n)&&["html","body"].indexOf(u(n))<0;){var r=d(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||n}var O="top",j="bottom",E="right",L="left",M=[O,j,E,L],W="end",P="viewport",T="popper",H=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function R(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}function D(e){return e.split("-")[0]}function k(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function S(e,o){return o===P?k(function(e){var n=t(e),o=l(e),r=n.visualViewport,i=o.clientWidth,a=o.clientHeight,s=0,f=0;return r&&(i=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,f=r.offsetTop)),{width:i,height:a,x:s+p(e),y:f}}(e)):n(o)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(o):k(function(e){var t,n=l(e),o=c(e),r=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),f=-o.scrollLeft+p(e),u=-o.scrollTop;return"rtl"===d(r||n).direction&&(f+=i(n.clientWidth,r?r.clientWidth:0)-a),{width:a,height:s,x:f,y:u}}(l(e)))}function A(e){var t=y(v(e)),i=["absolute","fixed"].indexOf(d(e).position)>=0&&o(e)?x(e):e;return n(i)?t.filter((function(e){return n(e)&&function(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&r(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}(e,i)&&"body"!==u(e)})):[]}function C(e){return e.split("-")[1]}function N(e){var t,n=e.reference,o=e.element,r=e.placement,i=r?D(r):null,a=r?C(r):null,s=n.x+n.width/2-o.width/2,f=n.y+n.height/2-o.height/2;switch(i){case O:t={x:s,y:n.y-o.height};break;case j:t={x:s,y:n.y+n.height};break;case E:t={x:n.x+n.width,y:f};break;case L:t={x:n.x-o.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?function(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}(i):null;if(null!=c){var u="y"===c?"height":"width";switch(a){case"start":t[c]=t[c]-(n[u]/2-o[u]/2);break;case W:t[c]=t[c]+(n[u]/2-o[u]/2)}}return t}var V={placement:"bottom",modifiers:[],strategy:"absolute"};function B(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function F(e){void 0===e&&(e={});var t=e,o=t.defaultModifiers,r=void 0===o?[]:o,i=t.defaultOptions,a=void 0===i?V:i;return function(e,t,o){void 0===o&&(o=a);var i,s,c={placement:"bottom",orderedModifiers:[],options:Object.assign({},V,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},u=[],l=!1,p={state:c,setOptions:function(o){var i="function"==typeof o?o(c.options):o;d(),c.options=Object.assign({},a,c.options,i),c.scrollParents={reference:n(e)?y(e):e.contextElement?y(e.contextElement):[],popper:y(t)};var s,f,l=function(e){var t=R(e);return H.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(r,c.options.modifiers),f=s.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(f).map((function(e){return f[e]}))));return c.orderedModifiers=l.filter((function(e){return e.enabled})),c.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,o=void 0===n?{}:n,r=e.effect;if("function"==typeof r){var i=r({state:c,name:t,instance:p,options:o}),a=function(){};u.push(i||a)}})),p.update()},forceUpdate:function(){if(!l){var e=c.elements,t=e.reference,n=e.popper;if(B(t,n)){var o,r,i,a;c.rects={reference:m(t,x(n),"fixed"===c.options.strategy),popper:(o=n,r=f(o),i=o.offsetWidth,a=o.offsetHeight,Math.abs(r.width-i)<=1&&(i=r.width),Math.abs(r.height-a)<=1&&(a=r.height),{x:o.offsetLeft,y:o.offsetTop,width:i,height:a})},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach((function(e){return c.modifiersData[e.name]=Object.assign({},e.data)}));for(var s=0;s<c.orderedModifiers.length;s++)if(!0!==c.reset){var u=c.orderedModifiers[s],d=u.fn,h=u.options,v=void 0===h?{}:h,g=u.name;"function"==typeof d&&(c=d({state:c,options:v,name:g,instance:p})||c)}else c.reset=!1,s=-1}}},update:(i=function(){return new Promise((function(e){p.forceUpdate(),e(c)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){d(),l=!0}};if(!B(e,t))return p;function d(){u.forEach((function(e){return e()})),u=[]}return p.setOptions(o).then((function(e){!l&&o.onFirstUpdate&&o.onFirstUpdate(e)})),p}}var U={passive:!0};var q={top:"auto",right:"auto",bottom:"auto",left:"auto"};function z(e){var n,o=e.popper,r=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,u=e.gpuAcceleration,p=e.adaptive,h=e.roundOffsets,m=e.isFixed,v=f.x,g=void 0===v?0:v,y=f.y,b=void 0===y?0:y,w="function"==typeof h?h({x:g,y:b}):{x:g,y:b};g=w.x,b=w.y;var M=f.hasOwnProperty("x"),P=f.hasOwnProperty("y"),T=L,H=O,R=window;if(p){var D=x(o),k="clientHeight",S="clientWidth";if(D===t(o)&&"static"!==d(D=l(o)).position&&"absolute"===c&&(k="scrollHeight",S="scrollWidth"),D=D,i===O||(i===L||i===E)&&a===W)H=j,b-=(m&&R.visualViewport?R.visualViewport.height:D[k])-r.height,b*=u?1:-1;if(i===L||(i===O||i===j)&&a===W)T=E,g-=(m&&R.visualViewport?R.visualViewport.width:D[S])-r.width,g*=u?1:-1}var A,C=Object.assign({position:c},p&&q),N=!0===h?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:s(t*o)/o||0,y:s(n*o)/o||0}}({x:g,y:b}):{x:g,y:b};return g=N.x,b=N.y,u?Object.assign({},C,((A={})[H]=P?"0":"",A[T]=M?"0":"",A.transform=(R.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",A)):Object.assign({},C,((n={})[H]=P?b+"px":"",n[T]=M?g+"px":"",n.transform="",n))}var X=[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,o=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,f=void 0===s||s,c=t(n.elements.popper),u=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&u.forEach((function(e){e.addEventListener("scroll",o.update,U)})),f&&c.addEventListener("resize",o.update,U),function(){a&&u.forEach((function(e){e.removeEventListener("scroll",o.update,U)})),f&&c.removeEventListener("resize",o.update,U)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=N({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:D(t.placement),variation:C(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,z(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,z(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];o(i)&&u(i)&&(Object.assign(i.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});o(r)&&u(r)&&(Object.assign(r.style,a),Object.keys(i).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]}],Y=F({defaultModifiers:X});e.createPopper=Y,e.defaultModifiers=X,e.detectOverflow=function(e,t){void 0===t&&(t={});var o,r=t,s=r.placement,c=void 0===s?e.placement:s,u=r.boundary,p=void 0===u?"clippingParents":u,d=r.rootBoundary,h=void 0===d?P:d,m=r.elementContext,v=void 0===m?T:m,g=r.altBoundary,y=void 0!==g&&g,b=r.padding,w=void 0===b?0:b,x=function(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}("number"!=typeof w?w:(o=w,M.reduce((function(e,t){return e[t]=o,e}),{}))),L=v===T?"reference":T,W=e.rects.popper,H=e.elements[y?L:v],R=function(e,t,n){var o="clippingParents"===t?A(e):[].concat(t),r=[].concat(o,[n]),s=r[0],f=r.reduce((function(t,n){var o=S(e,n);return t.top=i(o.top,t.top),t.right=a(o.right,t.right),t.bottom=a(o.bottom,t.bottom),t.left=i(o.left,t.left),t}),S(e,s));return f.width=f.right-f.left,f.height=f.bottom-f.top,f.x=f.left,f.y=f.top,f}(n(H)?H:H.contextElement||l(e.elements.popper),p,h),D=f(e.elements.reference),C=N({reference:D,element:W,strategy:"absolute",placement:c}),V=k(Object.assign({},W,C)),B=v===T?V:D,F={top:R.top-B.top+x.top,bottom:B.bottom-R.bottom+x.bottom,left:R.left-B.left+x.left,right:B.right-R.right+x.right},U=e.modifiersData.offset;if(v===T&&U){var q=U[c];Object.keys(F).forEach((function(e){var t=[E,j].indexOf(e)>=0?1:-1,n=[O,j].indexOf(e)>=0?"y":"x";F[e]+=q[n]*t}))}return F},e.popperGenerator=F,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ //# sourceMappingURL=popper-lite.min.js.map
assets/libs/popper/popper-lite.min.js.flow ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ // @flow
2
+
3
+ export * from '../../lib/popper-lite.js'
assets/libs/popper/popper-lite.min.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"popper-lite.min.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/getBasePlacement.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/getVariation.js","../../src/utils/computeOffsets.js","../../src/utils/getMainAxisFromPlacement.js","../../src/createPopper.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/dom-utils/getLayoutRect.js","../../src/modifiers/eventListeners.js","../../src/modifiers/computeStyles.js","../../src/popper-lite.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/applyStyles.js","../../src/utils/detectOverflow.js","../../src/utils/expandToHashMap.js","../../src/utils/mergePaddingObject.js","../../src/utils/getFreshSideObject.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false\n): ClientRectObject {\n const rect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n const offsetHeight = element.offsetHeight;\n const offsetWidth = element.offsetWidth;\n\n // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n const isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(element: Element) {\n const rect = getBoundingClientRect(element);\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n\nexport default function getViewportRect(element: Element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\n\nconst INVALID_ELEMENT_ERROR =\n 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR =\n 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const {\n defaultModifiers = [],\n defaultOptions = DEFAULT_OPTIONS,\n } = generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (__DEV__) {\n const modifiers = uniqueBy(\n [...orderedModifiers, ...state.options.modifiers],\n ({ name }) => name\n );\n\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(\n ({ name }) => name === 'flip'\n );\n\n if (!flipModifier) {\n console.error(\n [\n 'Popper: \"auto\" placements require the \"flip\" modifier be',\n 'present and enabled to work.',\n ].join(' ')\n );\n }\n }\n\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = getComputedStyle(popper);\n\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if (\n [marginTop, marginRight, marginBottom, marginLeft].some((margin) =>\n parseFloat(margin)\n )\n ) {\n console.warn(\n [\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.',\n ].join(' ')\n );\n }\n }\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (__DEV__) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }): Offsets {\n const win: Window = window;\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function'\n ? roundOffsets({ x, y })\n : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y })\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n if (__DEV__) {\n const transitionProperty =\n getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (\n adaptive &&\n ['transform', 'top', 'right', 'bottom', 'left'].some(\n (property) => transitionProperty.indexOf(property) >= 0\n )\n ) {\n console.warn(\n [\n 'Popper: Detected CSS transitions on at least one of the following',\n 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".',\n '\\n\\n',\n 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow',\n 'for smooth transitions, or remove these properties from the CSS',\n 'transition declaration on the popper element if only transitioning',\n 'opacity or background-color for example.',\n '\\n\\n',\n 'We recommend using the popper element as a wrapper around an inner',\n 'element that can have any CSS property transitioned for animations.',\n ].join(' ')\n );\n }\n }\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport type { State, SideObject, Padding } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getBoundingClientRect","element","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","top","right","bottom","left","x","y","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","test","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","clientLeft","clientTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","_element$ownerDocumen","target","concat","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","navigator","userAgent","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","basePlacements","end","viewport","popper","modifierPhases","order","modifiers","map","Map","visited","Set","result","sort","modifier","add","name","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","getBasePlacement","placement","split","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","offsetLeft","offsetTop","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingParents","clippingParents","clipperElement","parent","child","rootNode","getRootNode","contains","next","isSameNode","getVariation","computeOffsets","reference","basePlacement","variation","commonX","commonY","mainAxis","getMainAxisFromPlacement","len","DEFAULT_OPTIONS","strategy","areValidElements","args","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","options","fn","pending","state","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","reduce","acc","phase","orderModifiers","current","existing","data","Object","keys","key","m","enabled","effect","cleanupFn","noopFn","update","forceUpdate","clientRect","rects","abs","reset","index","length","Promise","resolve","then","undefined","destroy","onFirstUpdate","passive","unsetSides","mapToStyles","popperRect","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","resize","addEventListener","removeEventListener","popperOffsets","arrow","style","assign","value","removeAttribute","setAttribute","initialStyles","margin","property","attribute","createPopper","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","mergePaddingObject","hashMap","altContext","clippingClientRect","mainClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis"],"mappings":"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"}
assets/libs/popper/popper.js ADDED
@@ -0,0 +1,1993 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ (function (global, factory) {
6
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
7
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
8
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.wpbc_Popper = {}));
9
+ }(this, (function (exports) { 'use strict';
10
+
11
+ function getWindow(node) {
12
+ if (node == null) {
13
+ return window;
14
+ }
15
+
16
+ if (node.toString() !== '[object Window]') {
17
+ var ownerDocument = node.ownerDocument;
18
+ return ownerDocument ? ownerDocument.defaultView || window : window;
19
+ }
20
+
21
+ return node;
22
+ }
23
+
24
+ function isElement(node) {
25
+ var OwnElement = getWindow(node).Element;
26
+ return node instanceof OwnElement || node instanceof Element;
27
+ }
28
+
29
+ function isHTMLElement(node) {
30
+ var OwnElement = getWindow(node).HTMLElement;
31
+ return node instanceof OwnElement || node instanceof HTMLElement;
32
+ }
33
+
34
+ function isShadowRoot(node) {
35
+ // IE 11 has no ShadowRoot
36
+ if (typeof ShadowRoot === 'undefined') {
37
+ return false;
38
+ }
39
+
40
+ var OwnElement = getWindow(node).ShadowRoot;
41
+ return node instanceof OwnElement || node instanceof ShadowRoot;
42
+ }
43
+
44
+ var max = Math.max;
45
+ var min = Math.min;
46
+ var round = Math.round;
47
+
48
+ function getBoundingClientRect(element, includeScale) {
49
+ if (includeScale === void 0) {
50
+ includeScale = false;
51
+ }
52
+
53
+ var rect = element.getBoundingClientRect();
54
+ var scaleX = 1;
55
+ var scaleY = 1;
56
+
57
+ if (isHTMLElement(element) && includeScale) {
58
+ var offsetHeight = element.offsetHeight;
59
+ var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
60
+ // Fallback to 1 in case both values are `0`
61
+
62
+ if (offsetWidth > 0) {
63
+ scaleX = round(rect.width) / offsetWidth || 1;
64
+ }
65
+
66
+ if (offsetHeight > 0) {
67
+ scaleY = round(rect.height) / offsetHeight || 1;
68
+ }
69
+ }
70
+
71
+ return {
72
+ width: rect.width / scaleX,
73
+ height: rect.height / scaleY,
74
+ top: rect.top / scaleY,
75
+ right: rect.right / scaleX,
76
+ bottom: rect.bottom / scaleY,
77
+ left: rect.left / scaleX,
78
+ x: rect.left / scaleX,
79
+ y: rect.top / scaleY
80
+ };
81
+ }
82
+
83
+ function getWindowScroll(node) {
84
+ var win = getWindow(node);
85
+ var scrollLeft = win.pageXOffset;
86
+ var scrollTop = win.pageYOffset;
87
+ return {
88
+ scrollLeft: scrollLeft,
89
+ scrollTop: scrollTop
90
+ };
91
+ }
92
+
93
+ function getHTMLElementScroll(element) {
94
+ return {
95
+ scrollLeft: element.scrollLeft,
96
+ scrollTop: element.scrollTop
97
+ };
98
+ }
99
+
100
+ function getNodeScroll(node) {
101
+ if (node === getWindow(node) || !isHTMLElement(node)) {
102
+ return getWindowScroll(node);
103
+ } else {
104
+ return getHTMLElementScroll(node);
105
+ }
106
+ }
107
+
108
+ function getNodeName(element) {
109
+ return element ? (element.nodeName || '').toLowerCase() : null;
110
+ }
111
+
112
+ function getDocumentElement(element) {
113
+ // $FlowFixMe[incompatible-return]: assume body is always available
114
+ return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
115
+ element.document) || window.document).documentElement;
116
+ }
117
+
118
+ function getWindowScrollBarX(element) {
119
+ // If <html> has a CSS width greater than the viewport, then this will be
120
+ // incorrect for RTL.
121
+ // Popper 1 is broken in this case and never had a bug report so let's assume
122
+ // it's not an issue. I don't think anyone ever specifies width on <html>
123
+ // anyway.
124
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
125
+ // this (e.g. Edge 2019, IE11, Safari)
126
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
127
+ }
128
+
129
+ function getComputedStyle(element) {
130
+ return getWindow(element).getComputedStyle(element);
131
+ }
132
+
133
+ function isScrollParent(element) {
134
+ // Firefox wants us to check `-x` and `-y` variations as well
135
+ var _getComputedStyle = getComputedStyle(element),
136
+ overflow = _getComputedStyle.overflow,
137
+ overflowX = _getComputedStyle.overflowX,
138
+ overflowY = _getComputedStyle.overflowY;
139
+
140
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
141
+ }
142
+
143
+ function isElementScaled(element) {
144
+ var rect = element.getBoundingClientRect();
145
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
146
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
147
+ return scaleX !== 1 || scaleY !== 1;
148
+ } // Returns the composite rect of an element relative to its offsetParent.
149
+ // Composite means it takes into account transforms as well as layout.
150
+
151
+
152
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
153
+ if (isFixed === void 0) {
154
+ isFixed = false;
155
+ }
156
+
157
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
158
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
159
+ var documentElement = getDocumentElement(offsetParent);
160
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
161
+ var scroll = {
162
+ scrollLeft: 0,
163
+ scrollTop: 0
164
+ };
165
+ var offsets = {
166
+ x: 0,
167
+ y: 0
168
+ };
169
+
170
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
171
+ if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
172
+ isScrollParent(documentElement)) {
173
+ scroll = getNodeScroll(offsetParent);
174
+ }
175
+
176
+ if (isHTMLElement(offsetParent)) {
177
+ offsets = getBoundingClientRect(offsetParent, true);
178
+ offsets.x += offsetParent.clientLeft;
179
+ offsets.y += offsetParent.clientTop;
180
+ } else if (documentElement) {
181
+ offsets.x = getWindowScrollBarX(documentElement);
182
+ }
183
+ }
184
+
185
+ return {
186
+ x: rect.left + scroll.scrollLeft - offsets.x,
187
+ y: rect.top + scroll.scrollTop - offsets.y,
188
+ width: rect.width,
189
+ height: rect.height
190
+ };
191
+ }
192
+
193
+ // means it doesn't take into account transforms.
194
+
195
+ function getLayoutRect(element) {
196
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
197
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
198
+
199
+ var width = element.offsetWidth;
200
+ var height = element.offsetHeight;
201
+
202
+ if (Math.abs(clientRect.width - width) <= 1) {
203
+ width = clientRect.width;
204
+ }
205
+
206
+ if (Math.abs(clientRect.height - height) <= 1) {
207
+ height = clientRect.height;
208
+ }
209
+
210
+ return {
211
+ x: element.offsetLeft,
212
+ y: element.offsetTop,
213
+ width: width,
214
+ height: height
215
+ };
216
+ }
217
+
218
+ function getParentNode(element) {
219
+ if (getNodeName(element) === 'html') {
220
+ return element;
221
+ }
222
+
223
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
224
+ // $FlowFixMe[incompatible-return]
225
+ // $FlowFixMe[prop-missing]
226
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
227
+ element.parentNode || ( // DOM Element detected
228
+ isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
229
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
230
+ getDocumentElement(element) // fallback
231
+
232
+ );
233
+ }
234
+
235
+ function getScrollParent(node) {
236
+ if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
237
+ // $FlowFixMe[incompatible-return]: assume body is always available
238
+ return node.ownerDocument.body;
239
+ }
240
+
241
+ if (isHTMLElement(node) && isScrollParent(node)) {
242
+ return node;
243
+ }
244
+
245
+ return getScrollParent(getParentNode(node));
246
+ }
247
+
248
+ /*
249
+ given a DOM element, return the list of all scroll parents, up the list of ancesors
250
+ until we get to the top window object. This list is what we attach scroll listeners
251
+ to, because if any of these parent elements scroll, we'll need to re-calculate the
252
+ reference element's position.
253
+ */
254
+
255
+ function listScrollParents(element, list) {
256
+ var _element$ownerDocumen;
257
+
258
+ if (list === void 0) {
259
+ list = [];
260
+ }
261
+
262
+ var scrollParent = getScrollParent(element);
263
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
264
+ var win = getWindow(scrollParent);
265
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
266
+ var updatedList = list.concat(target);
267
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
268
+ updatedList.concat(listScrollParents(getParentNode(target)));
269
+ }
270
+
271
+ function isTableElement(element) {
272
+ return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
273
+ }
274
+
275
+ function getTrueOffsetParent(element) {
276
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
277
+ getComputedStyle(element).position === 'fixed') {
278
+ return null;
279
+ }
280
+
281
+ return element.offsetParent;
282
+ } // `.offsetParent` reports `null` for fixed elements, while absolute elements
283
+ // return the containing block
284
+
285
+
286
+ function getContainingBlock(element) {
287
+ var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
288
+ var isIE = navigator.userAgent.indexOf('Trident') !== -1;
289
+
290
+ if (isIE && isHTMLElement(element)) {
291
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
292
+ var elementCss = getComputedStyle(element);
293
+
294
+ if (elementCss.position === 'fixed') {
295
+ return null;
296
+ }
297
+ }
298
+
299
+ var currentNode = getParentNode(element);
300
+
301
+ while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
302
+ var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
303
+ // create a containing block.
304
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
305
+
306
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
307
+ return currentNode;
308
+ } else {
309
+ currentNode = currentNode.parentNode;
310
+ }
311
+ }
312
+
313
+ return null;
314
+ } // Gets the closest ancestor positioned element. Handles some edge cases,
315
+ // such as table ancestors and cross browser bugs.
316
+
317
+
318
+ function getOffsetParent(element) {
319
+ var window = getWindow(element);
320
+ var offsetParent = getTrueOffsetParent(element);
321
+
322
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
323
+ offsetParent = getTrueOffsetParent(offsetParent);
324
+ }
325
+
326
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {
327
+ return window;
328
+ }
329
+
330
+ return offsetParent || getContainingBlock(element) || window;
331
+ }
332
+
333
+ var top = 'top';
334
+ var bottom = 'bottom';
335
+ var right = 'right';
336
+ var left = 'left';
337
+ var auto = 'auto';
338
+ var basePlacements = [top, bottom, right, left];
339
+ var start = 'start';
340
+ var end = 'end';
341
+ var clippingParents = 'clippingParents';
342
+ var viewport = 'viewport';
343
+ var popper = 'popper';
344
+ var reference = 'reference';
345
+ var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
346
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
347
+ }, []);
348
+ var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
349
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
350
+ }, []); // modifiers that need to read the DOM
351
+
352
+ var beforeRead = 'beforeRead';
353
+ var read = 'read';
354
+ var afterRead = 'afterRead'; // pure-logic modifiers
355
+
356
+ var beforeMain = 'beforeMain';
357
+ var main = 'main';
358
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
359
+
360
+ var beforeWrite = 'beforeWrite';
361
+ var write = 'write';
362
+ var afterWrite = 'afterWrite';
363
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
364
+
365
+ function order(modifiers) {
366
+ var map = new Map();
367
+ var visited = new Set();
368
+ var result = [];
369
+ modifiers.forEach(function (modifier) {
370
+ map.set(modifier.name, modifier);
371
+ }); // On visiting object, check for its dependencies and visit them recursively
372
+
373
+ function sort(modifier) {
374
+ visited.add(modifier.name);
375
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
376
+ requires.forEach(function (dep) {
377
+ if (!visited.has(dep)) {
378
+ var depModifier = map.get(dep);
379
+
380
+ if (depModifier) {
381
+ sort(depModifier);
382
+ }
383
+ }
384
+ });
385
+ result.push(modifier);
386
+ }
387
+
388
+ modifiers.forEach(function (modifier) {
389
+ if (!visited.has(modifier.name)) {
390
+ // check for visited object
391
+ sort(modifier);
392
+ }
393
+ });
394
+ return result;
395
+ }
396
+
397
+ function orderModifiers(modifiers) {
398
+ // order based on dependencies
399
+ var orderedModifiers = order(modifiers); // order based on phase
400
+
401
+ return modifierPhases.reduce(function (acc, phase) {
402
+ return acc.concat(orderedModifiers.filter(function (modifier) {
403
+ return modifier.phase === phase;
404
+ }));
405
+ }, []);
406
+ }
407
+
408
+ function debounce(fn) {
409
+ var pending;
410
+ return function () {
411
+ if (!pending) {
412
+ pending = new Promise(function (resolve) {
413
+ Promise.resolve().then(function () {
414
+ pending = undefined;
415
+ resolve(fn());
416
+ });
417
+ });
418
+ }
419
+
420
+ return pending;
421
+ };
422
+ }
423
+
424
+ function format(str) {
425
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
426
+ args[_key - 1] = arguments[_key];
427
+ }
428
+
429
+ return [].concat(args).reduce(function (p, c) {
430
+ return p.replace(/%s/, c);
431
+ }, str);
432
+ }
433
+
434
+ var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
435
+ var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
436
+ var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];
437
+ function validateModifiers(modifiers) {
438
+ modifiers.forEach(function (modifier) {
439
+ [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`
440
+ .filter(function (value, index, self) {
441
+ return self.indexOf(value) === index;
442
+ }).forEach(function (key) {
443
+ switch (key) {
444
+ case 'name':
445
+ if (typeof modifier.name !== 'string') {
446
+ console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', "\"" + String(modifier.name) + "\""));
447
+ }
448
+
449
+ break;
450
+
451
+ case 'enabled':
452
+ if (typeof modifier.enabled !== 'boolean') {
453
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\""));
454
+ }
455
+
456
+ break;
457
+
458
+ case 'phase':
459
+ if (modifierPhases.indexOf(modifier.phase) < 0) {
460
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\""));
461
+ }
462
+
463
+ break;
464
+
465
+ case 'fn':
466
+ if (typeof modifier.fn !== 'function') {
467
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', "\"" + String(modifier.fn) + "\""));
468
+ }
469
+
470
+ break;
471
+
472
+ case 'effect':
473
+ if (modifier.effect != null && typeof modifier.effect !== 'function') {
474
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\""));
475
+ }
476
+
477
+ break;
478
+
479
+ case 'requires':
480
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
481
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\""));
482
+ }
483
+
484
+ break;
485
+
486
+ case 'requiresIfExists':
487
+ if (!Array.isArray(modifier.requiresIfExists)) {
488
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', "\"" + String(modifier.requiresIfExists) + "\""));
489
+ }
490
+
491
+ break;
492
+
493
+ case 'options':
494
+ case 'data':
495
+ break;
496
+
497
+ default:
498
+ console.error("PopperJS: an invalid property has been provided to the \"" + modifier.name + "\" modifier, valid properties are " + VALID_PROPERTIES.map(function (s) {
499
+ return "\"" + s + "\"";
500
+ }).join(', ') + "; but \"" + key + "\" was provided.");
501
+ }
502
+
503
+ modifier.requires && modifier.requires.forEach(function (requirement) {
504
+ if (modifiers.find(function (mod) {
505
+ return mod.name === requirement;
506
+ }) == null) {
507
+ console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
508
+ }
509
+ });
510
+ });
511
+ });
512
+ }
513
+
514
+ function uniqueBy(arr, fn) {
515
+ var identifiers = new Set();
516
+ return arr.filter(function (item) {
517
+ var identifier = fn(item);
518
+
519
+ if (!identifiers.has(identifier)) {
520
+ identifiers.add(identifier);
521
+ return true;
522
+ }
523
+ });
524
+ }
525
+
526
+ function getBasePlacement(placement) {
527
+ return placement.split('-')[0];
528
+ }
529
+
530
+ function mergeByName(modifiers) {
531
+ var merged = modifiers.reduce(function (merged, current) {
532
+ var existing = merged[current.name];
533
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
534
+ options: Object.assign({}, existing.options, current.options),
535
+ data: Object.assign({}, existing.data, current.data)
536
+ }) : current;
537
+ return merged;
538
+ }, {}); // IE11 does not support Object.values
539
+
540
+ return Object.keys(merged).map(function (key) {
541
+ return merged[key];
542
+ });
543
+ }
544
+
545
+ function getViewportRect(element) {
546
+ var win = getWindow(element);
547
+ var html = getDocumentElement(element);
548
+ var visualViewport = win.visualViewport;
549
+ var width = html.clientWidth;
550
+ var height = html.clientHeight;
551
+ var x = 0;
552
+ var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper
553
+ // can be obscured underneath it.
554
+ // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
555
+ // if it isn't open, so if this isn't available, the popper will be detected
556
+ // to overflow the bottom of the screen too early.
557
+
558
+ if (visualViewport) {
559
+ width = visualViewport.width;
560
+ height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)
561
+ // In Chrome, it returns a value very close to 0 (+/-) but contains rounding
562
+ // errors due to floating point numbers, so we need to check precision.
563
+ // Safari returns a number <= 0, usually < -1 when pinch-zoomed
564
+ // Feature detection fails in mobile emulation mode in Chrome.
565
+ // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
566
+ // 0.001
567
+ // Fallback here: "Not Safari" userAgent
568
+
569
+ if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
570
+ x = visualViewport.offsetLeft;
571
+ y = visualViewport.offsetTop;
572
+ }
573
+ }
574
+
575
+ return {
576
+ width: width,
577
+ height: height,
578
+ x: x + getWindowScrollBarX(element),
579
+ y: y
580
+ };
581
+ }
582
+
583
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable
584
+
585
+ function getDocumentRect(element) {
586
+ var _element$ownerDocumen;
587
+
588
+ var html = getDocumentElement(element);
589
+ var winScroll = getWindowScroll(element);
590
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
591
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
592
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
593
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
594
+ var y = -winScroll.scrollTop;
595
+
596
+ if (getComputedStyle(body || html).direction === 'rtl') {
597
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
598
+ }
599
+
600
+ return {
601
+ width: width,
602
+ height: height,
603
+ x: x,
604
+ y: y
605
+ };
606
+ }
607
+
608
+ function contains(parent, child) {
609
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
610
+
611
+ if (parent.contains(child)) {
612
+ return true;
613
+ } // then fallback to custom implementation with Shadow DOM support
614
+ else if (rootNode && isShadowRoot(rootNode)) {
615
+ var next = child;
616
+
617
+ do {
618
+ if (next && parent.isSameNode(next)) {
619
+ return true;
620
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
621
+
622
+
623
+ next = next.parentNode || next.host;
624
+ } while (next);
625
+ } // Give up, the result is false
626
+
627
+
628
+ return false;
629
+ }
630
+
631
+ function rectToClientRect(rect) {
632
+ return Object.assign({}, rect, {
633
+ left: rect.x,
634
+ top: rect.y,
635
+ right: rect.x + rect.width,
636
+ bottom: rect.y + rect.height
637
+ });
638
+ }
639
+
640
+ function getInnerBoundingClientRect(element) {
641
+ var rect = getBoundingClientRect(element);
642
+ rect.top = rect.top + element.clientTop;
643
+ rect.left = rect.left + element.clientLeft;
644
+ rect.bottom = rect.top + element.clientHeight;
645
+ rect.right = rect.left + element.clientWidth;
646
+ rect.width = element.clientWidth;
647
+ rect.height = element.clientHeight;
648
+ rect.x = rect.left;
649
+ rect.y = rect.top;
650
+ return rect;
651
+ }
652
+
653
+ function getClientRectFromMixedType(element, clippingParent) {
654
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
655
+ } // A "clipping parent" is an overflowable container with the characteristic of
656
+ // clipping (or hiding) overflowing elements with a position different from
657
+ // `initial`
658
+
659
+
660
+ function getClippingParents(element) {
661
+ var clippingParents = listScrollParents(getParentNode(element));
662
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;
663
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
664
+
665
+ if (!isElement(clipperElement)) {
666
+ return [];
667
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
668
+
669
+
670
+ return clippingParents.filter(function (clippingParent) {
671
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
672
+ });
673
+ } // Gets the maximum area that the element is visible in due to any number of
674
+ // clipping parents
675
+
676
+
677
+ function getClippingRect(element, boundary, rootBoundary) {
678
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
679
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
680
+ var firstClippingParent = clippingParents[0];
681
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
682
+ var rect = getClientRectFromMixedType(element, clippingParent);
683
+ accRect.top = max(rect.top, accRect.top);
684
+ accRect.right = min(rect.right, accRect.right);
685
+ accRect.bottom = min(rect.bottom, accRect.bottom);
686
+ accRect.left = max(rect.left, accRect.left);
687
+ return accRect;
688
+ }, getClientRectFromMixedType(element, firstClippingParent));
689
+ clippingRect.width = clippingRect.right - clippingRect.left;
690
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
691
+ clippingRect.x = clippingRect.left;
692
+ clippingRect.y = clippingRect.top;
693
+ return clippingRect;
694
+ }
695
+
696
+ function getVariation(placement) {
697
+ return placement.split('-')[1];
698
+ }
699
+
700
+ function getMainAxisFromPlacement(placement) {
701
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
702
+ }
703
+
704
+ function computeOffsets(_ref) {
705
+ var reference = _ref.reference,
706
+ element = _ref.element,
707
+ placement = _ref.placement;
708
+ var basePlacement = placement ? getBasePlacement(placement) : null;
709
+ var variation = placement ? getVariation(placement) : null;
710
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
711
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
712
+ var offsets;
713
+
714
+ switch (basePlacement) {
715
+ case top:
716
+ offsets = {
717
+ x: commonX,
718
+ y: reference.y - element.height
719
+ };
720
+ break;
721
+
722
+ case bottom:
723
+ offsets = {
724
+ x: commonX,
725
+ y: reference.y + reference.height
726
+ };
727
+ break;
728
+
729
+ case right:
730
+ offsets = {
731
+ x: reference.x + reference.width,
732
+ y: commonY
733
+ };
734
+ break;
735
+
736
+ case left:
737
+ offsets = {
738
+ x: reference.x - element.width,
739
+ y: commonY
740
+ };
741
+ break;
742
+
743
+ default:
744
+ offsets = {
745
+ x: reference.x,
746
+ y: reference.y
747
+ };
748
+ }
749
+
750
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
751
+
752
+ if (mainAxis != null) {
753
+ var len = mainAxis === 'y' ? 'height' : 'width';
754
+
755
+ switch (variation) {
756
+ case start:
757
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
758
+ break;
759
+
760
+ case end:
761
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
762
+ break;
763
+ }
764
+ }
765
+
766
+ return offsets;
767
+ }
768
+
769
+ function getFreshSideObject() {
770
+ return {
771
+ top: 0,
772
+ right: 0,
773
+ bottom: 0,
774
+ left: 0
775
+ };
776
+ }
777
+
778
+ function mergePaddingObject(paddingObject) {
779
+ return Object.assign({}, getFreshSideObject(), paddingObject);
780
+ }
781
+
782
+ function expandToHashMap(value, keys) {
783
+ return keys.reduce(function (hashMap, key) {
784
+ hashMap[key] = value;
785
+ return hashMap;
786
+ }, {});
787
+ }
788
+
789
+ function detectOverflow(state, options) {
790
+ if (options === void 0) {
791
+ options = {};
792
+ }
793
+
794
+ var _options = options,
795
+ _options$placement = _options.placement,
796
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
797
+ _options$boundary = _options.boundary,
798
+ boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
799
+ _options$rootBoundary = _options.rootBoundary,
800
+ rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
801
+ _options$elementConte = _options.elementContext,
802
+ elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
803
+ _options$altBoundary = _options.altBoundary,
804
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
805
+ _options$padding = _options.padding,
806
+ padding = _options$padding === void 0 ? 0 : _options$padding;
807
+ var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
808
+ var altContext = elementContext === popper ? reference : popper;
809
+ var popperRect = state.rects.popper;
810
+ var element = state.elements[altBoundary ? altContext : elementContext];
811
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
812
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
813
+ var popperOffsets = computeOffsets({
814
+ reference: referenceClientRect,
815
+ element: popperRect,
816
+ strategy: 'absolute',
817
+ placement: placement
818
+ });
819
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
820
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
821
+ // 0 or negative = within the clipping rect
822
+
823
+ var overflowOffsets = {
824
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
825
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
826
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
827
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
828
+ };
829
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
830
+
831
+ if (elementContext === popper && offsetData) {
832
+ var offset = offsetData[placement];
833
+ Object.keys(overflowOffsets).forEach(function (key) {
834
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
835
+ var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
836
+ overflowOffsets[key] += offset[axis] * multiply;
837
+ });
838
+ }
839
+
840
+ return overflowOffsets;
841
+ }
842
+
843
+ var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
844
+ var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
845
+ var DEFAULT_OPTIONS = {
846
+ placement: 'bottom',
847
+ modifiers: [],
848
+ strategy: 'absolute'
849
+ };
850
+
851
+ function areValidElements() {
852
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
853
+ args[_key] = arguments[_key];
854
+ }
855
+
856
+ return !args.some(function (element) {
857
+ return !(element && typeof element.getBoundingClientRect === 'function');
858
+ });
859
+ }
860
+
861
+ function popperGenerator(generatorOptions) {
862
+ if (generatorOptions === void 0) {
863
+ generatorOptions = {};
864
+ }
865
+
866
+ var _generatorOptions = generatorOptions,
867
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
868
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
869
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
870
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
871
+ return function createPopper(reference, popper, options) {
872
+ if (options === void 0) {
873
+ options = defaultOptions;
874
+ }
875
+
876
+ var state = {
877
+ placement: 'bottom',
878
+ orderedModifiers: [],
879
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
880
+ modifiersData: {},
881
+ elements: {
882
+ reference: reference,
883
+ popper: popper
884
+ },
885
+ attributes: {},
886
+ styles: {}
887
+ };
888
+ var effectCleanupFns = [];
889
+ var isDestroyed = false;
890
+ var instance = {
891
+ state: state,
892
+ setOptions: function setOptions(setOptionsAction) {
893
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
894
+ cleanupModifierEffects();
895
+ state.options = Object.assign({}, defaultOptions, state.options, options);
896
+ state.scrollParents = {
897
+ reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
898
+ popper: listScrollParents(popper)
899
+ }; // Orders the modifiers based on their dependencies and `phase`
900
+ // properties
901
+
902
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
903
+
904
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
905
+ return m.enabled;
906
+ }); // Validate the provided modifiers so that the consumer will get warned
907
+ // if one of the modifiers is invalid for any reason
908
+
909
+ {
910
+ var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {
911
+ var name = _ref.name;
912
+ return name;
913
+ });
914
+ validateModifiers(modifiers);
915
+
916
+ if (getBasePlacement(state.options.placement) === auto) {
917
+ var flipModifier = state.orderedModifiers.find(function (_ref2) {
918
+ var name = _ref2.name;
919
+ return name === 'flip';
920
+ });
921
+
922
+ if (!flipModifier) {
923
+ console.error(['Popper: "auto" placements require the "flip" modifier be', 'present and enabled to work.'].join(' '));
924
+ }
925
+ }
926
+
927
+ var _getComputedStyle = getComputedStyle(popper),
928
+ marginTop = _getComputedStyle.marginTop,
929
+ marginRight = _getComputedStyle.marginRight,
930
+ marginBottom = _getComputedStyle.marginBottom,
931
+ marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can
932
+ // cause bugs with positioning, so we'll warn the consumer
933
+
934
+
935
+ if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {
936
+ return parseFloat(margin);
937
+ })) {
938
+ console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));
939
+ }
940
+ }
941
+
942
+ runModifierEffects();
943
+ return instance.update();
944
+ },
945
+ // Sync update – it will always be executed, even if not necessary. This
946
+ // is useful for low frequency updates where sync behavior simplifies the
947
+ // logic.
948
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
949
+ // prefer the async Popper#update method
950
+ forceUpdate: function forceUpdate() {
951
+ if (isDestroyed) {
952
+ return;
953
+ }
954
+
955
+ var _state$elements = state.elements,
956
+ reference = _state$elements.reference,
957
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
958
+ // anymore
959
+
960
+ if (!areValidElements(reference, popper)) {
961
+ {
962
+ console.error(INVALID_ELEMENT_ERROR);
963
+ }
964
+
965
+ return;
966
+ } // Store the reference and popper rects to be read by modifiers
967
+
968
+
969
+ state.rects = {
970
+ reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
971
+ popper: getLayoutRect(popper)
972
+ }; // Modifiers have the ability to reset the current update cycle. The
973
+ // most common use case for this is the `flip` modifier changing the
974
+ // placement, which then needs to re-run all the modifiers, because the
975
+ // logic was previously ran for the previous placement and is therefore
976
+ // stale/incorrect
977
+
978
+ state.reset = false;
979
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
980
+ // is filled with the initial data specified by the modifier. This means
981
+ // it doesn't persist and is fresh on each update.
982
+ // To ensure persistent data, use `${name}#persistent`
983
+
984
+ state.orderedModifiers.forEach(function (modifier) {
985
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
986
+ });
987
+ var __debug_loops__ = 0;
988
+
989
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
990
+ {
991
+ __debug_loops__ += 1;
992
+
993
+ if (__debug_loops__ > 100) {
994
+ console.error(INFINITE_LOOP_ERROR);
995
+ break;
996
+ }
997
+ }
998
+
999
+ if (state.reset === true) {
1000
+ state.reset = false;
1001
+ index = -1;
1002
+ continue;
1003
+ }
1004
+
1005
+ var _state$orderedModifie = state.orderedModifiers[index],
1006
+ fn = _state$orderedModifie.fn,
1007
+ _state$orderedModifie2 = _state$orderedModifie.options,
1008
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
1009
+ name = _state$orderedModifie.name;
1010
+
1011
+ if (typeof fn === 'function') {
1012
+ state = fn({
1013
+ state: state,
1014
+ options: _options,
1015
+ name: name,
1016
+ instance: instance
1017
+ }) || state;
1018
+ }
1019
+ }
1020
+ },
1021
+ // Async and optimistically optimized update – it will not be executed if
1022
+ // not necessary (debounced to run at most once-per-tick)
1023
+ update: debounce(function () {
1024
+ return new Promise(function (resolve) {
1025
+ instance.forceUpdate();
1026
+ resolve(state);
1027
+ });
1028
+ }),
1029
+ destroy: function destroy() {
1030
+ cleanupModifierEffects();
1031
+ isDestroyed = true;
1032
+ }
1033
+ };
1034
+
1035
+ if (!areValidElements(reference, popper)) {
1036
+ {
1037
+ console.error(INVALID_ELEMENT_ERROR);
1038
+ }
1039
+
1040
+ return instance;
1041
+ }
1042
+
1043
+ instance.setOptions(options).then(function (state) {
1044
+ if (!isDestroyed && options.onFirstUpdate) {
1045
+ options.onFirstUpdate(state);
1046
+ }
1047
+ }); // Modifiers have the ability to execute arbitrary code before the first
1048
+ // update cycle runs. They will be executed in the same order as the update
1049
+ // cycle. This is useful when a modifier adds some persistent data that
1050
+ // other modifiers need to use, but the modifier is run after the dependent
1051
+ // one.
1052
+
1053
+ function runModifierEffects() {
1054
+ state.orderedModifiers.forEach(function (_ref3) {
1055
+ var name = _ref3.name,
1056
+ _ref3$options = _ref3.options,
1057
+ options = _ref3$options === void 0 ? {} : _ref3$options,
1058
+ effect = _ref3.effect;
1059
+
1060
+ if (typeof effect === 'function') {
1061
+ var cleanupFn = effect({
1062
+ state: state,
1063
+ name: name,
1064
+ instance: instance,
1065
+ options: options
1066
+ });
1067
+
1068
+ var noopFn = function noopFn() {};
1069
+
1070
+ effectCleanupFns.push(cleanupFn || noopFn);
1071
+ }
1072
+ });
1073
+ }
1074
+
1075
+ function cleanupModifierEffects() {
1076
+ effectCleanupFns.forEach(function (fn) {
1077
+ return fn();
1078
+ });
1079
+ effectCleanupFns = [];
1080
+ }
1081
+
1082
+ return instance;
1083
+ };
1084
+ }
1085
+
1086
+ var passive = {
1087
+ passive: true
1088
+ };
1089
+
1090
+ function effect$2(_ref) {
1091
+ var state = _ref.state,
1092
+ instance = _ref.instance,
1093
+ options = _ref.options;
1094
+ var _options$scroll = options.scroll,
1095
+ scroll = _options$scroll === void 0 ? true : _options$scroll,
1096
+ _options$resize = options.resize,
1097
+ resize = _options$resize === void 0 ? true : _options$resize;
1098
+ var window = getWindow(state.elements.popper);
1099
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
1100
+
1101
+ if (scroll) {
1102
+ scrollParents.forEach(function (scrollParent) {
1103
+ scrollParent.addEventListener('scroll', instance.update, passive);
1104
+ });
1105
+ }
1106
+
1107
+ if (resize) {
1108
+ window.addEventListener('resize', instance.update, passive);
1109
+ }
1110
+
1111
+ return function () {
1112
+ if (scroll) {
1113
+ scrollParents.forEach(function (scrollParent) {
1114
+ scrollParent.removeEventListener('scroll', instance.update, passive);
1115
+ });
1116
+ }
1117
+
1118
+ if (resize) {
1119
+ window.removeEventListener('resize', instance.update, passive);
1120
+ }
1121
+ };
1122
+ } // eslint-disable-next-line import/no-unused-modules
1123
+
1124
+
1125
+ var eventListeners = {
1126
+ name: 'eventListeners',
1127
+ enabled: true,
1128
+ phase: 'write',
1129
+ fn: function fn() {},
1130
+ effect: effect$2,
1131
+ data: {}
1132
+ };
1133
+
1134
+ function popperOffsets(_ref) {
1135
+ var state = _ref.state,
1136
+ name = _ref.name;
1137
+ // Offsets are the actual position the popper needs to have to be
1138
+ // properly positioned near its reference element
1139
+ // This is the most basic placement, and will be adjusted by
1140
+ // the modifiers in the next step
1141
+ state.modifiersData[name] = computeOffsets({
1142
+ reference: state.rects.reference,
1143
+ element: state.rects.popper,
1144
+ strategy: 'absolute',
1145
+ placement: state.placement
1146
+ });
1147
+ } // eslint-disable-next-line import/no-unused-modules
1148
+
1149
+
1150
+ var popperOffsets$1 = {
1151
+ name: 'popperOffsets',
1152
+ enabled: true,
1153
+ phase: 'read',
1154
+ fn: popperOffsets,
1155
+ data: {}
1156
+ };
1157
+
1158
+ var unsetSides = {
1159
+ top: 'auto',
1160
+ right: 'auto',
1161
+ bottom: 'auto',
1162
+ left: 'auto'
1163
+ }; // Round the offsets to the nearest suitable subpixel based on the DPR.
1164
+ // Zooming can change the DPR, but it seems to report a value that will
1165
+ // cleanly divide the values into the appropriate subpixels.
1166
+
1167
+ function roundOffsetsByDPR(_ref) {
1168
+ var x = _ref.x,
1169
+ y = _ref.y;
1170
+ var win = window;
1171
+ var dpr = win.devicePixelRatio || 1;
1172
+ return {
1173
+ x: round(x * dpr) / dpr || 0,
1174
+ y: round(y * dpr) / dpr || 0
1175
+ };
1176
+ }
1177
+
1178
+ function mapToStyles(_ref2) {
1179
+ var _Object$assign2;
1180
+
1181
+ var popper = _ref2.popper,
1182
+ popperRect = _ref2.popperRect,
1183
+ placement = _ref2.placement,
1184
+ variation = _ref2.variation,
1185
+ offsets = _ref2.offsets,
1186
+ position = _ref2.position,
1187
+ gpuAcceleration = _ref2.gpuAcceleration,
1188
+ adaptive = _ref2.adaptive,
1189
+ roundOffsets = _ref2.roundOffsets,
1190
+ isFixed = _ref2.isFixed;
1191
+ var _offsets$x = offsets.x,
1192
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
1193
+ _offsets$y = offsets.y,
1194
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
1195
+
1196
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
1197
+ x: x,
1198
+ y: y
1199
+ }) : {
1200
+ x: x,
1201
+ y: y
1202
+ };
1203
+
1204
+ x = _ref3.x;
1205
+ y = _ref3.y;
1206
+ var hasX = offsets.hasOwnProperty('x');
1207
+ var hasY = offsets.hasOwnProperty('y');
1208
+ var sideX = left;
1209
+ var sideY = top;
1210
+ var win = window;
1211
+
1212
+ if (adaptive) {
1213
+ var offsetParent = getOffsetParent(popper);
1214
+ var heightProp = 'clientHeight';
1215
+ var widthProp = 'clientWidth';
1216
+
1217
+ if (offsetParent === getWindow(popper)) {
1218
+ offsetParent = getDocumentElement(popper);
1219
+
1220
+ if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {
1221
+ heightProp = 'scrollHeight';
1222
+ widthProp = 'scrollWidth';
1223
+ }
1224
+ } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
1225
+
1226
+
1227
+ offsetParent = offsetParent;
1228
+
1229
+ if (placement === top || (placement === left || placement === right) && variation === end) {
1230
+ sideY = bottom;
1231
+ var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
1232
+ offsetParent[heightProp];
1233
+ y -= offsetY - popperRect.height;
1234
+ y *= gpuAcceleration ? 1 : -1;
1235
+ }
1236
+
1237
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
1238
+ sideX = right;
1239
+ var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
1240
+ offsetParent[widthProp];
1241
+ x -= offsetX - popperRect.width;
1242
+ x *= gpuAcceleration ? 1 : -1;
1243
+ }
1244
+ }
1245
+
1246
+ var commonStyles = Object.assign({
1247
+ position: position
1248
+ }, adaptive && unsetSides);
1249
+
1250
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
1251
+ x: x,
1252
+ y: y
1253
+ }) : {
1254
+ x: x,
1255
+ y: y
1256
+ };
1257
+
1258
+ x = _ref4.x;
1259
+ y = _ref4.y;
1260
+
1261
+ if (gpuAcceleration) {
1262
+ var _Object$assign;
1263
+
1264
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
1265
+ }
1266
+
1267
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
1268
+ }
1269
+
1270
+ function computeStyles(_ref5) {
1271
+ var state = _ref5.state,
1272
+ options = _ref5.options;
1273
+ var _options$gpuAccelerat = options.gpuAcceleration,
1274
+ gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
1275
+ _options$adaptive = options.adaptive,
1276
+ adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
1277
+ _options$roundOffsets = options.roundOffsets,
1278
+ roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
1279
+
1280
+ {
1281
+ var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';
1282
+
1283
+ if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {
1284
+ return transitionProperty.indexOf(property) >= 0;
1285
+ })) {
1286
+ console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: "transform", "top", "right", "bottom", "left".', '\n\n', 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\n\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));
1287
+ }
1288
+ }
1289
+
1290
+ var commonStyles = {
1291
+ placement: getBasePlacement(state.placement),
1292
+ variation: getVariation(state.placement),
1293
+ popper: state.elements.popper,
1294
+ popperRect: state.rects.popper,
1295
+ gpuAcceleration: gpuAcceleration,
1296
+ isFixed: state.options.strategy === 'fixed'
1297
+ };
1298
+
1299
+ if (state.modifiersData.popperOffsets != null) {
1300
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
1301
+ offsets: state.modifiersData.popperOffsets,
1302
+ position: state.options.strategy,
1303
+ adaptive: adaptive,
1304
+ roundOffsets: roundOffsets
1305
+ })));
1306
+ }
1307
+
1308
+ if (state.modifiersData.arrow != null) {
1309
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
1310
+ offsets: state.modifiersData.arrow,
1311
+ position: 'absolute',
1312
+ adaptive: false,
1313
+ roundOffsets: roundOffsets
1314
+ })));
1315
+ }
1316
+
1317
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
1318
+ 'data-popper-placement': state.placement
1319
+ });
1320
+ } // eslint-disable-next-line import/no-unused-modules
1321
+
1322
+
1323
+ var computeStyles$1 = {
1324
+ name: 'computeStyles',
1325
+ enabled: true,
1326
+ phase: 'beforeWrite',
1327
+ fn: computeStyles,
1328
+ data: {}
1329
+ };
1330
+
1331
+ // and applies them to the HTMLElements such as popper and arrow
1332
+
1333
+ function applyStyles(_ref) {
1334
+ var state = _ref.state;
1335
+ Object.keys(state.elements).forEach(function (name) {
1336
+ var style = state.styles[name] || {};
1337
+ var attributes = state.attributes[name] || {};
1338
+ var element = state.elements[name]; // arrow is optional + virtual elements
1339
+
1340
+ if (!isHTMLElement(element) || !getNodeName(element)) {
1341
+ return;
1342
+ } // Flow doesn't support to extend this property, but it's the most
1343
+ // effective way to apply styles to an HTMLElement
1344
+ // $FlowFixMe[cannot-write]
1345
+
1346
+
1347
+ Object.assign(element.style, style);
1348
+ Object.keys(attributes).forEach(function (name) {
1349
+ var value = attributes[name];
1350
+
1351
+ if (value === false) {
1352
+ element.removeAttribute(name);
1353
+ } else {
1354
+ element.setAttribute(name, value === true ? '' : value);
1355
+ }
1356
+ });
1357
+ });
1358
+ }
1359
+
1360
+ function effect$1(_ref2) {
1361
+ var state = _ref2.state;
1362
+ var initialStyles = {
1363
+ popper: {
1364
+ position: state.options.strategy,
1365
+ left: '0',
1366
+ top: '0',
1367
+ margin: '0'
1368
+ },
1369
+ arrow: {
1370
+ position: 'absolute'
1371
+ },
1372
+ reference: {}
1373
+ };
1374
+ Object.assign(state.elements.popper.style, initialStyles.popper);
1375
+ state.styles = initialStyles;
1376
+
1377
+ if (state.elements.arrow) {
1378
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
1379
+ }
1380
+
1381
+ return function () {
1382
+ Object.keys(state.elements).forEach(function (name) {
1383
+ var element = state.elements[name];
1384
+ var attributes = state.attributes[name] || {};
1385
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
1386
+
1387
+ var style = styleProperties.reduce(function (style, property) {
1388
+ style[property] = '';
1389
+ return style;
1390
+ }, {}); // arrow is optional + virtual elements
1391
+
1392
+ if (!isHTMLElement(element) || !getNodeName(element)) {
1393
+ return;
1394
+ }
1395
+
1396
+ Object.assign(element.style, style);
1397
+ Object.keys(attributes).forEach(function (attribute) {
1398
+ element.removeAttribute(attribute);
1399
+ });
1400
+ });
1401
+ };
1402
+ } // eslint-disable-next-line import/no-unused-modules
1403
+
1404
+
1405
+ var applyStyles$1 = {
1406
+ name: 'applyStyles',
1407
+ enabled: true,
1408
+ phase: 'write',
1409
+ fn: applyStyles,
1410
+ effect: effect$1,
1411
+ requires: ['computeStyles']
1412
+ };
1413
+
1414
+ function distanceAndSkiddingToXY(placement, rects, offset) {
1415
+ var basePlacement = getBasePlacement(placement);
1416
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
1417
+
1418
+ var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
1419
+ placement: placement
1420
+ })) : offset,
1421
+ skidding = _ref[0],
1422
+ distance = _ref[1];
1423
+
1424
+ skidding = skidding || 0;
1425
+ distance = (distance || 0) * invertDistance;
1426
+ return [left, right].indexOf(basePlacement) >= 0 ? {
1427
+ x: distance,
1428
+ y: skidding
1429
+ } : {
1430
+ x: skidding,
1431
+ y: distance
1432
+ };
1433
+ }
1434
+
1435
+ function offset(_ref2) {
1436
+ var state = _ref2.state,
1437
+ options = _ref2.options,
1438
+ name = _ref2.name;
1439
+ var _options$offset = options.offset,
1440
+ offset = _options$offset === void 0 ? [0, 0] : _options$offset;
1441
+ var data = placements.reduce(function (acc, placement) {
1442
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
1443
+ return acc;
1444
+ }, {});
1445
+ var _data$state$placement = data[state.placement],
1446
+ x = _data$state$placement.x,
1447
+ y = _data$state$placement.y;
1448
+
1449
+ if (state.modifiersData.popperOffsets != null) {
1450
+ state.modifiersData.popperOffsets.x += x;
1451
+ state.modifiersData.popperOffsets.y += y;
1452
+ }
1453
+
1454
+ state.modifiersData[name] = data;
1455
+ } // eslint-disable-next-line import/no-unused-modules
1456
+
1457
+
1458
+ var offset$1 = {
1459
+ name: 'offset',
1460
+ enabled: true,
1461
+ phase: 'main',
1462
+ requires: ['popperOffsets'],
1463
+ fn: offset
1464
+ };
1465
+
1466
+ var hash$1 = {
1467
+ left: 'right',
1468
+ right: 'left',
1469
+ bottom: 'top',
1470
+ top: 'bottom'
1471
+ };
1472
+ function getOppositePlacement(placement) {
1473
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
1474
+ return hash$1[matched];
1475
+ });
1476
+ }
1477
+
1478
+ var hash = {
1479
+ start: 'end',
1480
+ end: 'start'
1481
+ };
1482
+ function getOppositeVariationPlacement(placement) {
1483
+ return placement.replace(/start|end/g, function (matched) {
1484
+ return hash[matched];
1485
+ });
1486
+ }
1487
+
1488
+ function computeAutoPlacement(state, options) {
1489
+ if (options === void 0) {
1490
+ options = {};
1491
+ }
1492
+
1493
+ var _options = options,
1494
+ placement = _options.placement,
1495
+ boundary = _options.boundary,
1496
+ rootBoundary = _options.rootBoundary,
1497
+ padding = _options.padding,
1498
+ flipVariations = _options.flipVariations,
1499
+ _options$allowedAutoP = _options.allowedAutoPlacements,
1500
+ allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
1501
+ var variation = getVariation(placement);
1502
+ var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
1503
+ return getVariation(placement) === variation;
1504
+ }) : basePlacements;
1505
+ var allowedPlacements = placements$1.filter(function (placement) {
1506
+ return allowedAutoPlacements.indexOf(placement) >= 0;
1507
+ });
1508
+
1509
+ if (allowedPlacements.length === 0) {
1510
+ allowedPlacements = placements$1;
1511
+
1512
+ {
1513
+ console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(' '));
1514
+ }
1515
+ } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
1516
+
1517
+
1518
+ var overflows = allowedPlacements.reduce(function (acc, placement) {
1519
+ acc[placement] = detectOverflow(state, {
1520
+ placement: placement,
1521
+ boundary: boundary,
1522
+ rootBoundary: rootBoundary,
1523
+ padding: padding
1524
+ })[getBasePlacement(placement)];
1525
+ return acc;
1526
+ }, {});
1527
+ return Object.keys(overflows).sort(function (a, b) {
1528
+ return overflows[a] - overflows[b];
1529
+ });
1530
+ }
1531
+
1532
+ function getExpandedFallbackPlacements(placement) {
1533
+ if (getBasePlacement(placement) === auto) {
1534
+ return [];
1535
+ }
1536
+
1537
+ var oppositePlacement = getOppositePlacement(placement);
1538
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
1539
+ }
1540
+
1541
+ function flip(_ref) {
1542
+ var state = _ref.state,
1543
+ options = _ref.options,
1544
+ name = _ref.name;
1545
+
1546
+ if (state.modifiersData[name]._skip) {
1547
+ return;
1548
+ }
1549
+
1550
+ var _options$mainAxis = options.mainAxis,
1551
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
1552
+ _options$altAxis = options.altAxis,
1553
+ checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
1554
+ specifiedFallbackPlacements = options.fallbackPlacements,
1555
+ padding = options.padding,
1556
+ boundary = options.boundary,
1557
+ rootBoundary = options.rootBoundary,
1558
+ altBoundary = options.altBoundary,
1559
+ _options$flipVariatio = options.flipVariations,
1560
+ flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
1561
+ allowedAutoPlacements = options.allowedAutoPlacements;
1562
+ var preferredPlacement = state.options.placement;
1563
+ var basePlacement = getBasePlacement(preferredPlacement);
1564
+ var isBasePlacement = basePlacement === preferredPlacement;
1565
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
1566
+ var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
1567
+ return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
1568
+ placement: placement,
1569
+ boundary: boundary,
1570
+ rootBoundary: rootBoundary,
1571
+ padding: padding,
1572
+ flipVariations: flipVariations,
1573
+ allowedAutoPlacements: allowedAutoPlacements
1574
+ }) : placement);
1575
+ }, []);
1576
+ var referenceRect = state.rects.reference;
1577
+ var popperRect = state.rects.popper;
1578
+ var checksMap = new Map();
1579
+ var makeFallbackChecks = true;
1580
+ var firstFittingPlacement = placements[0];
1581
+
1582
+ for (var i = 0; i < placements.length; i++) {
1583
+ var placement = placements[i];
1584
+
1585
+ var _basePlacement = getBasePlacement(placement);
1586
+
1587
+ var isStartVariation = getVariation(placement) === start;
1588
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
1589
+ var len = isVertical ? 'width' : 'height';
1590
+ var overflow = detectOverflow(state, {
1591
+ placement: placement,
1592
+ boundary: boundary,
1593
+ rootBoundary: rootBoundary,
1594
+ altBoundary: altBoundary,
1595
+ padding: padding
1596
+ });
1597
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
1598
+
1599
+ if (referenceRect[len] > popperRect[len]) {
1600
+ mainVariationSide = getOppositePlacement(mainVariationSide);
1601
+ }
1602
+
1603
+ var altVariationSide = getOppositePlacement(mainVariationSide);
1604
+ var checks = [];
1605
+
1606
+ if (checkMainAxis) {
1607
+ checks.push(overflow[_basePlacement] <= 0);
1608
+ }
1609
+
1610
+ if (checkAltAxis) {
1611
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
1612
+ }
1613
+
1614
+ if (checks.every(function (check) {
1615
+ return check;
1616
+ })) {
1617
+ firstFittingPlacement = placement;
1618
+ makeFallbackChecks = false;
1619
+ break;
1620
+ }
1621
+
1622
+ checksMap.set(placement, checks);
1623
+ }
1624
+
1625
+ if (makeFallbackChecks) {
1626
+ // `2` may be desired in some cases – research later
1627
+ var numberOfChecks = flipVariations ? 3 : 1;
1628
+
1629
+ var _loop = function _loop(_i) {
1630
+ var fittingPlacement = placements.find(function (placement) {
1631
+ var checks = checksMap.get(placement);
1632
+
1633
+ if (checks) {
1634
+ return checks.slice(0, _i).every(function (check) {
1635
+ return check;
1636
+ });
1637
+ }
1638
+ });
1639
+
1640
+ if (fittingPlacement) {
1641
+ firstFittingPlacement = fittingPlacement;
1642
+ return "break";
1643
+ }
1644
+ };
1645
+
1646
+ for (var _i = numberOfChecks; _i > 0; _i--) {
1647
+ var _ret = _loop(_i);
1648
+
1649
+ if (_ret === "break") break;
1650
+ }
1651
+ }
1652
+
1653
+ if (state.placement !== firstFittingPlacement) {
1654
+ state.modifiersData[name]._skip = true;
1655
+ state.placement = firstFittingPlacement;
1656
+ state.reset = true;
1657
+ }
1658
+ } // eslint-disable-next-line import/no-unused-modules
1659
+
1660
+
1661
+ var flip$1 = {
1662
+ name: 'flip',
1663
+ enabled: true,
1664
+ phase: 'main',
1665
+ fn: flip,
1666
+ requiresIfExists: ['offset'],
1667
+ data: {
1668
+ _skip: false
1669
+ }
1670
+ };
1671
+
1672
+ function getAltAxis(axis) {
1673
+ return axis === 'x' ? 'y' : 'x';
1674
+ }
1675
+
1676
+ function within(min$1, value, max$1) {
1677
+ return max(min$1, min(value, max$1));
1678
+ }
1679
+ function withinMaxClamp(min, value, max) {
1680
+ var v = within(min, value, max);
1681
+ return v > max ? max : v;
1682
+ }
1683
+
1684
+ function preventOverflow(_ref) {
1685
+ var state = _ref.state,
1686
+ options = _ref.options,
1687
+ name = _ref.name;
1688
+ var _options$mainAxis = options.mainAxis,
1689
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
1690
+ _options$altAxis = options.altAxis,
1691
+ checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
1692
+ boundary = options.boundary,
1693
+ rootBoundary = options.rootBoundary,
1694
+ altBoundary = options.altBoundary,
1695
+ padding = options.padding,
1696
+ _options$tether = options.tether,
1697
+ tether = _options$tether === void 0 ? true : _options$tether,
1698
+ _options$tetherOffset = options.tetherOffset,
1699
+ tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
1700
+ var overflow = detectOverflow(state, {
1701
+ boundary: boundary,
1702
+ rootBoundary: rootBoundary,
1703
+ padding: padding,
1704
+ altBoundary: altBoundary
1705
+ });
1706
+ var basePlacement = getBasePlacement(state.placement);
1707
+ var variation = getVariation(state.placement);
1708
+ var isBasePlacement = !variation;
1709
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
1710
+ var altAxis = getAltAxis(mainAxis);
1711
+ var popperOffsets = state.modifiersData.popperOffsets;
1712
+ var referenceRect = state.rects.reference;
1713
+ var popperRect = state.rects.popper;
1714
+ var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
1715
+ placement: state.placement
1716
+ })) : tetherOffset;
1717
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
1718
+ mainAxis: tetherOffsetValue,
1719
+ altAxis: tetherOffsetValue
1720
+ } : Object.assign({
1721
+ mainAxis: 0,
1722
+ altAxis: 0
1723
+ }, tetherOffsetValue);
1724
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
1725
+ var data = {
1726
+ x: 0,
1727
+ y: 0
1728
+ };
1729
+
1730
+ if (!popperOffsets) {
1731
+ return;
1732
+ }
1733
+
1734
+ if (checkMainAxis) {
1735
+ var _offsetModifierState$;
1736
+
1737
+ var mainSide = mainAxis === 'y' ? top : left;
1738
+ var altSide = mainAxis === 'y' ? bottom : right;
1739
+ var len = mainAxis === 'y' ? 'height' : 'width';
1740
+ var offset = popperOffsets[mainAxis];
1741
+ var min$1 = offset + overflow[mainSide];
1742
+ var max$1 = offset - overflow[altSide];
1743
+ var additive = tether ? -popperRect[len] / 2 : 0;
1744
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
1745
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
1746
+ // outside the reference bounds
1747
+
1748
+ var arrowElement = state.elements.arrow;
1749
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
1750
+ width: 0,
1751
+ height: 0
1752
+ };
1753
+ var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
1754
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
1755
+ var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
1756
+ // to include its full size in the calculation. If the reference is small
1757
+ // and near the edge of a boundary, the popper can overflow even if the
1758
+ // reference is not overflowing as well (e.g. virtual elements with no
1759
+ // width or height)
1760
+
1761
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
1762
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
1763
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
1764
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
1765
+ var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
1766
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
1767
+ var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
1768
+ var tetherMax = offset + maxOffset - offsetModifierValue;
1769
+ var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
1770
+ popperOffsets[mainAxis] = preventedOffset;
1771
+ data[mainAxis] = preventedOffset - offset;
1772
+ }
1773
+
1774
+ if (checkAltAxis) {
1775
+ var _offsetModifierState$2;
1776
+
1777
+ var _mainSide = mainAxis === 'x' ? top : left;
1778
+
1779
+ var _altSide = mainAxis === 'x' ? bottom : right;
1780
+
1781
+ var _offset = popperOffsets[altAxis];
1782
+
1783
+ var _len = altAxis === 'y' ? 'height' : 'width';
1784
+
1785
+ var _min = _offset + overflow[_mainSide];
1786
+
1787
+ var _max = _offset - overflow[_altSide];
1788
+
1789
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
1790
+
1791
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
1792
+
1793
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
1794
+
1795
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
1796
+
1797
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
1798
+
1799
+ popperOffsets[altAxis] = _preventedOffset;
1800
+ data[altAxis] = _preventedOffset - _offset;
1801
+ }
1802
+
1803
+ state.modifiersData[name] = data;
1804
+ } // eslint-disable-next-line import/no-unused-modules
1805
+
1806
+
1807
+ var preventOverflow$1 = {
1808
+ name: 'preventOverflow',
1809
+ enabled: true,
1810
+ phase: 'main',
1811
+ fn: preventOverflow,
1812
+ requiresIfExists: ['offset']
1813
+ };
1814
+
1815
+ var toPaddingObject = function toPaddingObject(padding, state) {
1816
+ padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
1817
+ placement: state.placement
1818
+ })) : padding;
1819
+ return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
1820
+ };
1821
+
1822
+ function arrow(_ref) {
1823
+ var _state$modifiersData$;
1824
+
1825
+ var state = _ref.state,
1826
+ name = _ref.name,
1827
+ options = _ref.options;
1828
+ var arrowElement = state.elements.arrow;
1829
+ var popperOffsets = state.modifiersData.popperOffsets;
1830
+ var basePlacement = getBasePlacement(state.placement);
1831
+ var axis = getMainAxisFromPlacement(basePlacement);
1832
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
1833
+ var len = isVertical ? 'height' : 'width';
1834
+
1835
+ if (!arrowElement || !popperOffsets) {
1836
+ return;
1837
+ }
1838
+
1839
+ var paddingObject = toPaddingObject(options.padding, state);
1840
+ var arrowRect = getLayoutRect(arrowElement);
1841
+ var minProp = axis === 'y' ? top : left;
1842
+ var maxProp = axis === 'y' ? bottom : right;
1843
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
1844
+ var startDiff = popperOffsets[axis] - state.rects.reference[axis];
1845
+ var arrowOffsetParent = getOffsetParent(arrowElement);
1846
+ var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
1847
+ var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
1848
+ // outside of the popper bounds
1849
+
1850
+ var min = paddingObject[minProp];
1851
+ var max = clientSize - arrowRect[len] - paddingObject[maxProp];
1852
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
1853
+ var offset = within(min, center, max); // Prevents breaking syntax highlighting...
1854
+
1855
+ var axisProp = axis;
1856
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
1857
+ }
1858
+
1859
+ function effect(_ref2) {
1860
+ var state = _ref2.state,
1861
+ options = _ref2.options;
1862
+ var _options$element = options.element,
1863
+ arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
1864
+
1865
+ if (arrowElement == null) {
1866
+ return;
1867
+ } // CSS selector
1868
+
1869
+
1870
+ if (typeof arrowElement === 'string') {
1871
+ arrowElement = state.elements.popper.querySelector(arrowElement);
1872
+
1873
+ if (!arrowElement) {
1874
+ return;
1875
+ }
1876
+ }
1877
+
1878
+ {
1879
+ if (!isHTMLElement(arrowElement)) {
1880
+ console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));
1881
+ }
1882
+ }
1883
+
1884
+ if (!contains(state.elements.popper, arrowElement)) {
1885
+ {
1886
+ console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', 'element.'].join(' '));
1887
+ }
1888
+
1889
+ return;
1890
+ }
1891
+
1892
+ state.elements.arrow = arrowElement;
1893
+ } // eslint-disable-next-line import/no-unused-modules
1894
+
1895
+
1896
+ var arrow$1 = {
1897
+ name: 'arrow',
1898
+ enabled: true,
1899
+ phase: 'main',
1900
+ fn: arrow,
1901
+ effect: effect,
1902
+ requires: ['popperOffsets'],
1903
+ requiresIfExists: ['preventOverflow']
1904
+ };
1905
+
1906
+ function getSideOffsets(overflow, rect, preventedOffsets) {
1907
+ if (preventedOffsets === void 0) {
1908
+ preventedOffsets = {
1909
+ x: 0,
1910
+ y: 0
1911
+ };
1912
+ }
1913
+
1914
+ return {
1915
+ top: overflow.top - rect.height - preventedOffsets.y,
1916
+ right: overflow.right - rect.width + preventedOffsets.x,
1917
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
1918
+ left: overflow.left - rect.width - preventedOffsets.x
1919
+ };
1920
+ }
1921
+
1922
+ function isAnySideFullyClipped(overflow) {
1923
+ return [top, right, bottom, left].some(function (side) {
1924
+ return overflow[side] >= 0;
1925
+ });
1926
+ }
1927
+
1928
+ function hide(_ref) {
1929
+ var state = _ref.state,
1930
+ name = _ref.name;
1931
+ var referenceRect = state.rects.reference;
1932
+ var popperRect = state.rects.popper;
1933
+ var preventedOffsets = state.modifiersData.preventOverflow;
1934
+ var referenceOverflow = detectOverflow(state, {
1935
+ elementContext: 'reference'
1936
+ });
1937
+ var popperAltOverflow = detectOverflow(state, {
1938
+ altBoundary: true
1939
+ });
1940
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
1941
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
1942
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
1943
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
1944
+ state.modifiersData[name] = {
1945
+ referenceClippingOffsets: referenceClippingOffsets,
1946
+ popperEscapeOffsets: popperEscapeOffsets,
1947
+ isReferenceHidden: isReferenceHidden,
1948
+ hasPopperEscaped: hasPopperEscaped
1949
+ };
1950
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
1951
+ 'data-popper-reference-hidden': isReferenceHidden,
1952
+ 'data-popper-escaped': hasPopperEscaped
1953
+ });
1954
+ } // eslint-disable-next-line import/no-unused-modules
1955
+
1956
+
1957
+ var hide$1 = {
1958
+ name: 'hide',
1959
+ enabled: true,
1960
+ phase: 'main',
1961
+ requiresIfExists: ['preventOverflow'],
1962
+ fn: hide
1963
+ };
1964
+
1965
+ var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
1966
+ var createPopper$1 = /*#__PURE__*/popperGenerator({
1967
+ defaultModifiers: defaultModifiers$1
1968
+ }); // eslint-disable-next-line import/no-unused-modules
1969
+
1970
+ var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
1971
+ var createPopper = /*#__PURE__*/popperGenerator({
1972
+ defaultModifiers: defaultModifiers
1973
+ }); // eslint-disable-next-line import/no-unused-modules
1974
+
1975
+ exports.applyStyles = applyStyles$1;
1976
+ exports.arrow = arrow$1;
1977
+ exports.computeStyles = computeStyles$1;
1978
+ exports.createPopper = createPopper;
1979
+ exports.createPopperLite = createPopper$1;
1980
+ exports.defaultModifiers = defaultModifiers;
1981
+ exports.detectOverflow = detectOverflow;
1982
+ exports.eventListeners = eventListeners;
1983
+ exports.flip = flip$1;
1984
+ exports.hide = hide$1;
1985
+ exports.offset = offset$1;
1986
+ exports.popperGenerator = popperGenerator;
1987
+ exports.popperOffsets = popperOffsets$1;
1988
+ exports.preventOverflow = preventOverflow$1;
1989
+
1990
+ Object.defineProperty(exports, '__esModule', { value: true });
1991
+
1992
+ })));
1993
+ //# sourceMappingURL=popper.js.map
assets/libs/popper/popper.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"popper.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/debounce.js","../../src/utils/format.js","../../src/utils/validateModifiers.js","../../src/utils/uniqueBy.js","../../src/utils/getBasePlacement.js","../../src/utils/mergeByName.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/getFreshSideObject.js","../../src/utils/mergePaddingObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js","../../src/modifiers/eventListeners.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/computeStyles.js","../../src/modifiers/applyStyles.js","../../src/modifiers/offset.js","../../src/utils/getOppositePlacement.js","../../src/utils/getOppositeVariationPlacement.js","../../src/utils/computeAutoPlacement.js","../../src/modifiers/flip.js","../../src/utils/getAltAxis.js","../../src/utils/within.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/arrow.js","../../src/modifiers/hide.js","../../src/popper-lite.js","../../src/popper.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false\n): ClientRectObject {\n const rect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n const offsetHeight = element.offsetHeight;\n const offsetWidth = element.offsetWidth;\n\n // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n const isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\n\nexport default function format(str: string, ...args: Array<string>) {\n return [...args].reduce((p, c) => p.replace(/%s/, c), str);\n}\n","// @flow\nimport format from './format';\nimport { modifierPhases } from '../enums';\n\nconst INVALID_MODIFIER_ERROR =\n 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nconst MISSING_DEPENDENCY_ERROR =\n 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nconst VALID_PROPERTIES = [\n 'name',\n 'enabled',\n 'phase',\n 'fn',\n 'effect',\n 'requires',\n 'options',\n];\n\nexport default function validateModifiers(modifiers: Array<any>): void {\n modifiers.forEach((modifier) => {\n [...Object.keys(modifier), ...VALID_PROPERTIES]\n // IE11-compatible replacement for `new Set(iterable)`\n .filter((value, index, self) => self.indexOf(value) === index)\n .forEach((key) => {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n String(modifier.name),\n '\"name\"',\n '\"string\"',\n `\"${String(modifier.name)}\"`\n )\n );\n }\n break;\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"enabled\"',\n '\"boolean\"',\n `\"${String(modifier.enabled)}\"`\n )\n );\n }\n break;\n case 'phase':\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"phase\"',\n `either ${modifierPhases.join(', ')}`,\n `\"${String(modifier.phase)}\"`\n )\n );\n }\n break;\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"fn\"',\n '\"function\"',\n `\"${String(modifier.fn)}\"`\n )\n );\n }\n break;\n case 'effect':\n if (\n modifier.effect != null &&\n typeof modifier.effect !== 'function'\n ) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"effect\"',\n '\"function\"',\n `\"${String(modifier.fn)}\"`\n )\n );\n }\n break;\n case 'requires':\n if (\n modifier.requires != null &&\n !Array.isArray(modifier.requires)\n ) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"requires\"',\n '\"array\"',\n `\"${String(modifier.requires)}\"`\n )\n );\n }\n break;\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(\n format(\n INVALID_MODIFIER_ERROR,\n modifier.name,\n '\"requiresIfExists\"',\n '\"array\"',\n `\"${String(modifier.requiresIfExists)}\"`\n )\n );\n }\n break;\n case 'options':\n case 'data':\n break;\n default:\n console.error(\n `PopperJS: an invalid property has been provided to the \"${\n modifier.name\n }\" modifier, valid properties are ${VALID_PROPERTIES.map(\n (s) => `\"${s}\"`\n ).join(', ')}; but \"${key}\" was provided.`\n );\n }\n\n modifier.requires &&\n modifier.requires.forEach((requirement) => {\n if (modifiers.find((mod) => mod.name === requirement) == null) {\n console.error(\n format(\n MISSING_DEPENDENCY_ERROR,\n String(modifier.name),\n requirement,\n requirement\n )\n );\n }\n });\n });\n });\n}\n","// @flow\n\nexport default function uniqueBy<T>(arr: Array<T>, fn: T => any): Array<T> {\n const identifiers = new Set();\n\n return arr.filter(item => {\n const identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n\nexport default function getViewportRect(element: Element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(element: Element) {\n const rect = getBoundingClientRect(element);\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\n\nconst INVALID_ELEMENT_ERROR =\n 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR =\n 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const {\n defaultModifiers = [],\n defaultOptions = DEFAULT_OPTIONS,\n } = generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (__DEV__) {\n const modifiers = uniqueBy(\n [...orderedModifiers, ...state.options.modifiers],\n ({ name }) => name\n );\n\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(\n ({ name }) => name === 'flip'\n );\n\n if (!flipModifier) {\n console.error(\n [\n 'Popper: \"auto\" placements require the \"flip\" modifier be',\n 'present and enabled to work.',\n ].join(' ')\n );\n }\n }\n\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = getComputedStyle(popper);\n\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if (\n [marginTop, marginRight, marginBottom, marginLeft].some((margin) =>\n parseFloat(margin)\n )\n ) {\n console.warn(\n [\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.',\n ].join(' ')\n );\n }\n }\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (__DEV__) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }): Offsets {\n const win: Window = window;\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function'\n ? roundOffsets({ x, y })\n : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y })\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n if (__DEV__) {\n const transitionProperty =\n getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (\n adaptive &&\n ['transform', 'top', 'right', 'bottom', 'left'].some(\n (property) => transitionProperty.indexOf(property) >= 0\n )\n ) {\n console.warn(\n [\n 'Popper: Detected CSS transitions on at least one of the following',\n 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".',\n '\\n\\n',\n 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow',\n 'for smooth transitions, or remove these properties from the CSS',\n 'transition declaration on the popper element if only transitioning',\n 'opacity or background-color for example.',\n '\\n\\n',\n 'We recommend using the popper element as a wrapper around an inner',\n 'element that can have any CSS property transitioned for animations.',\n ].join(' ')\n );\n }\n }\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport type { Placement } from '../enums';\nimport type { ModifierArguments, Modifier, Rect, Offsets } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport { top, left, right, placements } from '../enums';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetsFunction = ({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n}) => [?number, ?number];\n\ntype Offset = OffsetsFunction | [?number, ?number];\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n offset: Offset,\n};\n\nexport function distanceAndSkiddingToXY(\n placement: Placement,\n rects: { popper: Rect, reference: Rect },\n offset: Offset\n): Offsets {\n const basePlacement = getBasePlacement(placement);\n const invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n let [skidding, distance] =\n typeof offset === 'function'\n ? offset({\n ...rects,\n placement,\n })\n : offset;\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n\n return [left, right].indexOf(basePlacement) >= 0\n ? { x: distance, y: skidding }\n : { x: skidding, y: distance };\n}\n\nfunction offset({ state, options, name }: ModifierArguments<Options>) {\n const { offset = [0, 0] } = options;\n\n const data = placements.reduce((acc, placement) => {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n\n const { x, y } = data[state.placement];\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetModifier = Modifier<'offset', Options>;\nexport default ({\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset,\n}: OffsetModifier);\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\nexport default function getOppositePlacement(placement: Placement): Placement {\n return (placement.replace(\n /left|right|bottom|top/g,\n matched => hash[matched]\n ): any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { start: 'end', end: 'start' };\n\nexport default function getOppositeVariationPlacement(\n placement: Placement\n): Placement {\n return (placement.replace(/start|end/g, matched => hash[matched]): any);\n}\n","// @flow\nimport type { State, Padding } from '../types';\nimport type {\n Placement,\n ComputedPlacement,\n Boundary,\n RootBoundary,\n} from '../enums';\nimport getVariation from './getVariation';\nimport {\n variationPlacements,\n basePlacements,\n placements as allPlacements,\n} from '../enums';\nimport detectOverflow from './detectOverflow';\nimport getBasePlacement from './getBasePlacement';\n\ntype Options = {\n placement: Placement,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n flipVariations: boolean,\n allowedAutoPlacements?: Array<Placement>,\n};\n\ntype OverflowsMap = { [ComputedPlacement]: number };\n\nexport default function computeAutoPlacement(\n state: $Shape<State>,\n options: Options = {}\n): Array<ComputedPlacement> {\n const {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements = allPlacements,\n } = options;\n\n const variation = getVariation(placement);\n\n const placements = variation\n ? flipVariations\n ? variationPlacements\n : variationPlacements.filter(\n (placement) => getVariation(placement) === variation\n )\n : basePlacements;\n\n let allowedPlacements = placements.filter(\n (placement) => allowedAutoPlacements.indexOf(placement) >= 0\n );\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (__DEV__) {\n console.error(\n [\n 'Popper: The `allowedAutoPlacements` option did not allow any',\n 'placements. Ensure the `placement` option matches the variation',\n 'of the allowed placements.',\n 'For example, \"auto\" cannot be used to allow \"bottom-start\".',\n 'Use \"auto-start\" instead.',\n ].join(' ')\n );\n }\n }\n\n // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n const overflows: OverflowsMap = allowedPlacements.reduce((acc, placement) => {\n acc[placement] = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n })[getBasePlacement(placement)];\n\n return acc;\n }, {});\n\n return Object.keys(overflows).sort((a, b) => overflows[a] - overflows[b]);\n}\n","// @flow\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { ModifierArguments, Modifier, Padding } from '../types';\nimport getOppositePlacement from '../utils/getOppositePlacement';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getOppositeVariationPlacement from '../utils/getOppositeVariationPlacement';\nimport detectOverflow from '../utils/detectOverflow';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\nimport { bottom, top, start, right, left, auto } from '../enums';\nimport getVariation from '../utils/getVariation';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n mainAxis: boolean,\n altAxis: boolean,\n fallbackPlacements: Array<Placement>,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n altBoundary: boolean,\n flipVariations: boolean,\n allowedAutoPlacements: Array<Placement>,\n};\n\nfunction getExpandedFallbackPlacements(placement: Placement): Array<Placement> {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n const oppositePlacement = getOppositePlacement(placement);\n\n return [\n getOppositeVariationPlacement(placement),\n oppositePlacement,\n getOppositeVariationPlacement(oppositePlacement),\n ];\n}\n\nfunction flip({ state, options, name }: ModifierArguments<Options>) {\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n padding,\n boundary,\n rootBoundary,\n altBoundary,\n flipVariations = true,\n allowedAutoPlacements,\n } = options;\n\n const preferredPlacement = state.options.placement;\n const basePlacement = getBasePlacement(preferredPlacement);\n const isBasePlacement = basePlacement === preferredPlacement;\n\n const fallbackPlacements =\n specifiedFallbackPlacements ||\n (isBasePlacement || !flipVariations\n ? [getOppositePlacement(preferredPlacement)]\n : getExpandedFallbackPlacements(preferredPlacement));\n\n const placements = [preferredPlacement, ...fallbackPlacements].reduce(\n (acc, placement) => {\n return acc.concat(\n getBasePlacement(placement) === auto\n ? computeAutoPlacement(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements,\n })\n : placement\n );\n },\n []\n );\n\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n\n const checksMap = new Map();\n let makeFallbackChecks = true;\n let firstFittingPlacement = placements[0];\n\n for (let i = 0; i < placements.length; i++) {\n const placement = placements[i];\n const basePlacement = getBasePlacement(placement);\n const isStartVariation = getVariation(placement) === start;\n const isVertical = [top, bottom].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'width' : 'height';\n\n const overflow = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n });\n\n let mainVariationSide: any = isVertical\n ? isStartVariation\n ? right\n : left\n : isStartVariation\n ? bottom\n : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n const altVariationSide: any = getOppositePlacement(mainVariationSide);\n\n const checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(\n overflow[mainVariationSide] <= 0,\n overflow[altVariationSide] <= 0\n );\n }\n\n if (checks.every((check) => check)) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n const numberOfChecks = flipVariations ? 3 : 1;\n\n for (let i = numberOfChecks; i > 0; i--) {\n const fittingPlacement = placements.find((placement) => {\n const checks = checksMap.get(placement);\n if (checks) {\n return checks.slice(0, i).every((check) => check);\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n break;\n }\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type FlipModifier = Modifier<'flip', Options>;\nexport default ({\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: { _skip: false },\n}: FlipModifier);\n","// @flow\n\nexport default function getAltAxis(axis: 'x' | 'y'): 'x' | 'y' {\n return axis === 'x' ? 'y' : 'x';\n}\n","// @flow\nimport { max as mathMax, min as mathMin } from './math';\n\nexport function within(min: number, value: number, max: number): number {\n return mathMax(min, mathMin(value, max));\n}\n\nexport function withinMaxClamp(min: number, value: number, max: number) {\n const v = within(min, value, max);\n return v > max ? max : v;\n}\n","// @flow\nimport { top, left, right, bottom, start } from '../enums';\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { Rect, ModifierArguments, Modifier, Padding } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport getAltAxis from '../utils/getAltAxis';\nimport { within, withinMaxClamp } from '../utils/within';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport detectOverflow from '../utils/detectOverflow';\nimport getVariation from '../utils/getVariation';\nimport getFreshSideObject from '../utils/getFreshSideObject';\nimport { min as mathMin, max as mathMax } from '../utils/math';\n\ntype TetherOffset =\n | (({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n }) => number | { mainAxis: number, altAxis: number })\n | number\n | { mainAxis: number, altAxis: number };\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n /* Prevents boundaries overflow on the main axis */\n mainAxis: boolean,\n /* Prevents boundaries overflow on the alternate axis */\n altAxis: boolean,\n /* The area to check the popper is overflowing in */\n boundary: Boundary,\n /* If the popper is not overflowing the main area, fallback to this one */\n rootBoundary: RootBoundary,\n /* Use the reference's \"clippingParents\" boundary context */\n altBoundary: boolean,\n /**\n * Allows the popper to overflow from its boundaries to keep it near its\n * reference element\n */\n tether: boolean,\n /* Offsets when the `tether` option should activate */\n tetherOffset: TetherOffset,\n /* Sets a padding to the provided boundary */\n padding: Padding,\n};\n\nfunction preventOverflow({ state, options, name }: ModifierArguments<Options>) {\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = false,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n tether = true,\n tetherOffset = 0,\n } = options;\n\n const overflow = detectOverflow(state, {\n boundary,\n rootBoundary,\n padding,\n altBoundary,\n });\n const basePlacement = getBasePlacement(state.placement);\n const variation = getVariation(state.placement);\n const isBasePlacement = !variation;\n const mainAxis = getMainAxisFromPlacement(basePlacement);\n const altAxis = getAltAxis(mainAxis);\n const popperOffsets = state.modifiersData.popperOffsets;\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const tetherOffsetValue =\n typeof tetherOffset === 'function'\n ? tetherOffset({\n ...state.rects,\n placement: state.placement,\n })\n : tetherOffset;\n const normalizedTetherOffsetValue =\n typeof tetherOffsetValue === 'number'\n ? { mainAxis: tetherOffsetValue, altAxis: tetherOffsetValue }\n : { mainAxis: 0, altAxis: 0, ...tetherOffsetValue };\n const offsetModifierState = state.modifiersData.offset\n ? state.modifiersData.offset[state.placement]\n : null;\n\n const data = { x: 0, y: 0 };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n const mainSide = mainAxis === 'y' ? top : left;\n const altSide = mainAxis === 'y' ? bottom : right;\n const len = mainAxis === 'y' ? 'height' : 'width';\n const offset = popperOffsets[mainAxis];\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const additive = tether ? -popperRect[len] / 2 : 0;\n\n const minLen = variation === start ? referenceRect[len] : popperRect[len];\n const maxLen = variation === start ? -popperRect[len] : -referenceRect[len];\n\n // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n const arrowElement = state.elements.arrow;\n const arrowRect =\n tether && arrowElement\n ? getLayoutRect(arrowElement)\n : { width: 0, height: 0 };\n const arrowPaddingObject = state.modifiersData['arrow#persistent']\n ? state.modifiersData['arrow#persistent'].padding\n : getFreshSideObject();\n const arrowPaddingMin = arrowPaddingObject[mainSide];\n const arrowPaddingMax = arrowPaddingObject[altSide];\n\n // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n const arrowLen = within(0, referenceRect[len], arrowRect[len]);\n\n const minOffset = isBasePlacement\n ? referenceRect[len] / 2 -\n additive -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis\n : minLen -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis;\n const maxOffset = isBasePlacement\n ? -referenceRect[len] / 2 +\n additive +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis\n : maxLen +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis;\n\n const arrowOffsetParent =\n state.elements.arrow && getOffsetParent(state.elements.arrow);\n const clientOffset = arrowOffsetParent\n ? mainAxis === 'y'\n ? arrowOffsetParent.clientTop || 0\n : arrowOffsetParent.clientLeft || 0\n : 0;\n\n const offsetModifierValue = offsetModifierState?.[mainAxis] ?? 0;\n const tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n const tetherMax = offset + maxOffset - offsetModifierValue;\n\n const preventedOffset = within(\n tether ? mathMin(min, tetherMin) : min,\n offset,\n tether ? mathMax(max, tetherMax) : max\n );\n\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n const mainSide = mainAxis === 'x' ? top : left;\n const altSide = mainAxis === 'x' ? bottom : right;\n const offset = popperOffsets[altAxis];\n\n const len = altAxis === 'y' ? 'height' : 'width';\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n const offsetModifierValue = offsetModifierState?.[altAxis] ?? 0;\n const tetherMin = isOriginSide\n ? min\n : offset -\n referenceRect[len] -\n popperRect[len] -\n offsetModifierValue +\n normalizedTetherOffsetValue.altAxis;\n const tetherMax = isOriginSide\n ? offset +\n referenceRect[len] +\n popperRect[len] -\n offsetModifierValue -\n normalizedTetherOffsetValue.altAxis\n : max;\n\n const preventedOffset =\n tether && isOriginSide\n ? withinMaxClamp(tetherMin, offset, tetherMax)\n : within(tether ? tetherMin : min, offset, tether ? tetherMax : max);\n\n popperOffsets[altAxis] = preventedOffset;\n data[altAxis] = preventedOffset - offset;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PreventOverflowModifier = Modifier<'preventOverflow', Options>;\nexport default ({\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset'],\n}: PreventOverflowModifier);\n","// @flow\nimport type { Modifier, ModifierArguments, Padding, Rect } from '../types';\nimport type { Placement } from '../enums';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport contains from '../dom-utils/contains';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport { within } from '../utils/within';\nimport mergePaddingObject from '../utils/mergePaddingObject';\nimport expandToHashMap from '../utils/expandToHashMap';\nimport { left, right, basePlacements, top, bottom } from '../enums';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n element: HTMLElement | string | null,\n padding:\n | Padding\n | (({|\n popper: Rect,\n reference: Rect,\n placement: Placement,\n |}) => Padding),\n};\n\nconst toPaddingObject = (padding, state) => {\n padding =\n typeof padding === 'function'\n ? padding({ ...state.rects, placement: state.placement })\n : padding;\n\n return mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n};\n\nfunction arrow({ state, name, options }: ModifierArguments<Options>) {\n const arrowElement = state.elements.arrow;\n const popperOffsets = state.modifiersData.popperOffsets;\n const basePlacement = getBasePlacement(state.placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const isVertical = [left, right].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n const paddingObject = toPaddingObject(options.padding, state);\n const arrowRect = getLayoutRect(arrowElement);\n const minProp = axis === 'y' ? top : left;\n const maxProp = axis === 'y' ? bottom : right;\n\n const endDiff =\n state.rects.reference[len] +\n state.rects.reference[axis] -\n popperOffsets[axis] -\n state.rects.popper[len];\n const startDiff = popperOffsets[axis] - state.rects.reference[axis];\n\n const arrowOffsetParent = getOffsetParent(arrowElement);\n const clientSize = arrowOffsetParent\n ? axis === 'y'\n ? arrowOffsetParent.clientHeight || 0\n : arrowOffsetParent.clientWidth || 0\n : 0;\n\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n const min = paddingObject[minProp];\n const max = clientSize - arrowRect[len] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n const offset = within(min, center, max);\n\n // Prevents breaking syntax highlighting...\n const axisProp: string = axis;\n state.modifiersData[name] = {\n [axisProp]: offset,\n centerOffset: offset - center,\n };\n}\n\nfunction effect({ state, options }: ModifierArguments<Options>) {\n let { element: arrowElement = '[data-popper-arrow]' } = options;\n\n if (arrowElement == null) {\n return;\n }\n\n // CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (__DEV__) {\n if (!isHTMLElement(arrowElement)) {\n console.error(\n [\n 'Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).',\n 'To use an SVG arrow, wrap it in an HTMLElement that will be used as',\n 'the arrow.',\n ].join(' ')\n );\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (__DEV__) {\n console.error(\n [\n 'Popper: \"arrow\" modifier\\'s `element` must be a child of the popper',\n 'element.',\n ].join(' ')\n );\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ArrowModifier = Modifier<'arrow', Options>;\nexport default ({\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow'],\n}: ArrowModifier);\n","// @flow\nimport type {\n ModifierArguments,\n Modifier,\n Rect,\n SideObject,\n Offsets,\n} from '../types';\nimport { top, bottom, left, right } from '../enums';\nimport detectOverflow from '../utils/detectOverflow';\n\nfunction getSideOffsets(\n overflow: SideObject,\n rect: Rect,\n preventedOffsets: Offsets = { x: 0, y: 0 }\n): SideObject {\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x,\n };\n}\n\nfunction isAnySideFullyClipped(overflow: SideObject): boolean {\n return [top, right, bottom, left].some((side) => overflow[side] >= 0);\n}\n\nfunction hide({ state, name }: ModifierArguments<{||}>) {\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const preventedOffsets = state.modifiersData.preventOverflow;\n\n const referenceOverflow = detectOverflow(state, {\n elementContext: 'reference',\n });\n const popperAltOverflow = detectOverflow(state, {\n altBoundary: true,\n });\n\n const referenceClippingOffsets = getSideOffsets(\n referenceOverflow,\n referenceRect\n );\n const popperEscapeOffsets = getSideOffsets(\n popperAltOverflow,\n popperRect,\n preventedOffsets\n );\n\n const isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n const hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n\n state.modifiersData[name] = {\n referenceClippingOffsets,\n popperEscapeOffsets,\n isReferenceHidden,\n hasPopperEscaped,\n };\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type HideModifier = Modifier<'hide', {||}>;\nexport default ({\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide,\n}: HideModifier);\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n","// @flow\nimport { popperGenerator, detectOverflow } from './createPopper';\n\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\nimport offset from './modifiers/offset';\nimport flip from './modifiers/flip';\nimport preventOverflow from './modifiers/preventOverflow';\nimport arrow from './modifiers/arrow';\nimport hide from './modifiers/hide';\n\nexport type * from './types';\n\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n offset,\n flip,\n preventOverflow,\n arrow,\n hide,\n];\n\nconst createPopper = popperGenerator({ defaultModifiers });\n\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper as createPopperLite } from './popper-lite';\n// eslint-disable-next-line import/no-unused-modules\nexport * from './modifiers';\n"],"names":["getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getBoundingClientRect","element","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","top","right","bottom","left","x","y","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","test","isElementScaled","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","abs","offsetLeft","offsetTop","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","scrollParent","isBody","target","concat","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","navigator","userAgent","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","map","Map","visited","Set","result","forEach","modifier","set","name","sort","add","requires","requiresIfExists","dep","has","depModifier","get","push","orderModifiers","orderedModifiers","phase","debounce","fn","pending","Promise","resolve","then","undefined","format","str","args","p","c","replace","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","Object","keys","value","index","self","key","console","error","String","enabled","join","effect","Array","isArray","s","requirement","find","mod","uniqueBy","arr","identifiers","item","identifier","getBasePlacement","split","mergeByName","merged","current","existing","options","data","getViewportRect","html","clientWidth","clientHeight","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","state","elementContext","altBoundary","padding","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","strategy","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","offset","multiply","axis","INVALID_ELEMENT_ERROR","INFINITE_LOOP_ERROR","DEFAULT_OPTIONS","areValidElements","some","popperGenerator","generatorOptions","defaultModifiers","defaultOptions","createPopper","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","m","flipModifier","marginTop","marginRight","marginBottom","marginLeft","margin","parseFloat","warn","runModifierEffects","update","forceUpdate","reset","__debug_loops__","length","destroy","onFirstUpdate","cleanupFn","noopFn","passive","resize","addEventListener","removeEventListener","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","gpuAcceleration","adaptive","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","computeStyles","transitionProperty","property","arrow","applyStyles","style","assign","removeAttribute","setAttribute","initialStyles","styleProperties","attribute","distanceAndSkiddingToXY","invertDistance","skidding","distance","hash","getOppositePlacement","matched","getOppositeVariationPlacement","computeAutoPlacement","flipVariations","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","checkMainAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","numberOfChecks","fittingPlacement","slice","getAltAxis","within","mathMax","mathMin","withinMaxClamp","v","preventOverflow","tether","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","isOriginSide","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","eventListeners"],"mappings":"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"}
assets/libs/popper/popper.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.2 - MIT License
3
+ */
4
+
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),o=w(e);o&&x(o)&&"static"===d(o).position;)o=w(o);return o&&("html"===p(o)||"body"===p(o)&&"static"===d(o).position)?n:o||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;for(var n=g(e);r(n)&&["html","body"].indexOf(p(n))<0;){var o=d(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function K(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,o=void 0===r?[]:r,i=t.defaultOptions,a=void 0===i?G:i;return function(e,t,r){void 0===r&&(r=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},G,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],p=!1,u={state:f,setOptions:function(r){var i="function"==typeof r?r(f.options):r;l(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?b(e):e.contextElement?b(e.contextElement):[],popper:b(t)};var s,p,d=function(e){var t=S(e);return R.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(o,f.options.modifiers),p=s.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(p).map((function(e){return p[e]}))));return f.orderedModifiers=d.filter((function(e){return e.enabled})),f.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:f,name:t,instance:u,options:r}),a=function(){};c.push(i||a)}})),u.update()},forceUpdate:function(){if(!p){var e=f.elements,t=e.reference,n=e.popper;if(J(t,n)){f.rects={reference:m(t,O(n),"fixed"===f.options.strategy),popper:v(n)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<f.orderedModifiers.length;r++)if(!0!==f.reset){var o=f.orderedModifiers[r],i=o.fn,a=o.options,s=void 0===a?{}:a,c=o.name;"function"==typeof i&&(f=i({state:f,options:s,name:c,instance:u})||f)}else f.reset=!1,r=-1}}},update:(i=function(){return new Promise((function(e){u.forceUpdate(),e(f)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){l(),p=!0}};if(!J(e,t))return u;function l(){c.forEach((function(e){return e()})),c=[]}return u.setOptions(r).then((function(e){!p&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var Q={passive:!0};var Z={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,o=e.options,i=o.scroll,a=void 0===i||i,s=o.resize,f=void 0===s||s,c=t(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&p.forEach((function(e){e.addEventListener("scroll",r.update,Q)})),f&&c.addEventListener("resize",r.update,Q),function(){a&&p.forEach((function(e){e.removeEventListener("scroll",r.update,Q)})),f&&c.removeEventListener("resize",r.update,Q)}},data:{}};var $={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=U({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function te(e){var n,r=e.popper,o=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,p=e.gpuAcceleration,l=e.adaptive,h=e.roundOffsets,m=e.isFixed,v=f.x,g=void 0===v?0:v,y=f.y,b=void 0===y?0:y,x="function"==typeof h?h({x:g,y:b}):{x:g,y:b};g=x.x,b=x.y;var w=f.hasOwnProperty("x"),L=f.hasOwnProperty("y"),P=A,M=j,W=window;if(l){var B=O(r),H="clientHeight",T="clientWidth";if(B===t(r)&&"static"!==d(B=u(r)).position&&"absolute"===c&&(H="scrollHeight",T="scrollWidth"),B=B,i===j||(i===A||i===D)&&a===k)M=E,b-=(m&&W.visualViewport?W.visualViewport.height:B[H])-o.height,b*=p?1:-1;if(i===A||(i===j||i===E)&&a===k)P=D,g-=(m&&W.visualViewport?W.visualViewport.width:B[T])-o.width,g*=p?1:-1}var R,S=Object.assign({position:c},l&&ee),C=!0===h?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:s(t*r)/r||0,y:s(n*r)/r||0}}({x:g,y:b}):{x:g,y:b};return g=C.x,b=C.y,p?Object.assign({},S,((R={})[M]=L?"0":"",R[P]=w?"0":"",R.transform=(W.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",R)):Object.assign({},S,((n={})[M]=L?b+"px":"",n[P]=w?g+"px":"",n.transform="",n))}var ne={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:C(t.placement),variation:_(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,te(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,te(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var re={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];r(i)&&p(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});r(o)&&p(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};var oe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=T.reduce((function(e,n){return e[n]=function(e,t,n){var r=C(e),o=[A,j].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W<b.length;W++){var B=b[W],H=C(B),T=_(B)===M,R=[j,E].indexOf(H)>=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ //# sourceMappingURL=popper.min.js.map
assets/libs/popper/popper.min.js.flow ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ // @flow
2
+
3
+ export * from '../../lib/popper.js'
assets/libs/popper/popper.min.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"popper.min.js","sources":["../../src/dom-utils/getWindow.js","../../src/dom-utils/instanceOf.js","../../src/utils/math.js","../../src/dom-utils/getBoundingClientRect.js","../../src/dom-utils/getWindowScroll.js","../../src/dom-utils/getNodeName.js","../../src/dom-utils/getDocumentElement.js","../../src/dom-utils/getWindowScrollBarX.js","../../src/dom-utils/getComputedStyle.js","../../src/dom-utils/isScrollParent.js","../../src/dom-utils/getCompositeRect.js","../../src/dom-utils/getNodeScroll.js","../../src/dom-utils/getHTMLElementScroll.js","../../src/dom-utils/getLayoutRect.js","../../src/dom-utils/getParentNode.js","../../src/dom-utils/getScrollParent.js","../../src/dom-utils/listScrollParents.js","../../src/dom-utils/isTableElement.js","../../src/dom-utils/getOffsetParent.js","../../src/enums.js","../../src/utils/orderModifiers.js","../../src/utils/getBasePlacement.js","../../src/dom-utils/contains.js","../../src/utils/rectToClientRect.js","../../src/dom-utils/getClippingRect.js","../../src/dom-utils/getViewportRect.js","../../src/dom-utils/getDocumentRect.js","../../src/utils/getVariation.js","../../src/utils/getMainAxisFromPlacement.js","../../src/utils/computeOffsets.js","../../src/utils/mergePaddingObject.js","../../src/utils/getFreshSideObject.js","../../src/utils/expandToHashMap.js","../../src/utils/detectOverflow.js","../../src/createPopper.js","../../src/utils/debounce.js","../../src/utils/mergeByName.js","../../src/modifiers/eventListeners.js","../../src/modifiers/popperOffsets.js","../../src/modifiers/computeStyles.js","../../src/modifiers/applyStyles.js","../../src/modifiers/offset.js","../../src/utils/getOppositePlacement.js","../../src/utils/getOppositeVariationPlacement.js","../../src/utils/computeAutoPlacement.js","../../src/modifiers/flip.js","../../src/utils/within.js","../../src/modifiers/preventOverflow.js","../../src/utils/getAltAxis.js","../../src/modifiers/arrow.js","../../src/modifiers/hide.js","../../src/popper-lite.js","../../src/popper.js"],"sourcesContent":["// @flow\nimport type { Window } from '../types';\ndeclare function getWindow(node: Node | Window): Window;\n\nexport default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n","// @flow\nimport getWindow from './getWindow';\n\ndeclare function isElement(node: mixed): boolean %checks(node instanceof\n Element);\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\ndeclare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement);\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\ndeclare function isShadowRoot(node: mixed): boolean %checks(node instanceof\n ShadowRoot);\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };\n","// @flow\nexport const max = Math.max;\nexport const min = Math.min;\nexport const round = Math.round;\n","// @flow\nimport type { ClientRectObject, VirtualElement } from '../types';\nimport { isHTMLElement } from './instanceOf';\nimport { round } from '../utils/math';\n\nexport default function getBoundingClientRect(\n element: Element | VirtualElement,\n includeScale: boolean = false\n): ClientRectObject {\n const rect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n const offsetHeight = element.offsetHeight;\n const offsetWidth = element.offsetWidth;\n\n // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY,\n };\n}\n","// @flow\nimport getWindow from './getWindow';\nimport type { Window } from '../types';\n\nexport default function getWindowScroll(node: Node | Window) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n\n return {\n scrollLeft,\n scrollTop,\n };\n}\n","// @flow\nimport type { Window } from '../types';\n\nexport default function getNodeName(element: ?Node | Window): ?string {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n","// @flow\nimport { isElement } from './instanceOf';\nimport type { Window } from '../types';\n\nexport default function getDocumentElement(\n element: Element | Window\n): HTMLElement {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return (\n (isElement(element)\n ? element.ownerDocument\n : // $FlowFixMe[prop-missing]\n element.document) || window.document\n ).documentElement;\n}\n","// @flow\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n\nexport default function getWindowScrollBarX(element: Element): number {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return (\n getBoundingClientRect(getDocumentElement(element)).left +\n getWindowScroll(element).scrollLeft\n );\n}\n","// @flow\nimport getWindow from './getWindow';\n\nexport default function getComputedStyle(\n element: Element\n): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","// @flow\nimport getComputedStyle from './getComputedStyle';\n\nexport default function isScrollParent(element: HTMLElement): boolean {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n","// @flow\nimport type { Rect, VirtualElement, Window } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\nimport { round } from '../utils/math';\n\nfunction isElementScaled(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const scaleX = round(rect.width) / element.offsetWidth || 1;\n const scaleY = round(rect.height) / element.offsetHeight || 1;\n\n return scaleX !== 1 || scaleY !== 1;\n}\n\n// Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\nexport default function getCompositeRect(\n elementOrVirtualElement: Element | VirtualElement,\n offsetParent: Element | Window,\n isFixed: boolean = false\n): Rect {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const offsetParentIsScaled =\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(\n elementOrVirtualElement,\n offsetParentIsScaled\n );\n\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\n\n if (isOffsetParentAnElement || (!isOffsetParentAnElement && !isFixed)) {\n if (\n getNodeName(offsetParent) !== 'body' ||\n // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)\n ) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height,\n };\n}\n","// @flow\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\nimport type { Window } from '../types';\n\nexport default function getNodeScroll(node: Node | Window) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n","// @flow\n\nexport default function getHTMLElementScroll(element: HTMLElement) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getBoundingClientRect from './getBoundingClientRect';\n\n// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element: HTMLElement): Rect {\n const clientRect = getBoundingClientRect(element);\n\n // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height,\n };\n}\n","// @flow\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\nimport { isShadowRoot } from './instanceOf';\n\nexport default function getParentNode(element: Node | ShadowRoot): Node {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (\n // this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n","// @flow\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n\nexport default function getScrollParent(node: Node): HTMLElement {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n","// @flow\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getWindow from './getWindow';\nimport type { Window, VisualViewport } from '../types';\nimport isScrollParent from './isScrollParent';\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\nexport default function listScrollParents(\n element: Node,\n list: Array<Element | Window> = []\n): Array<Element | Window | VisualViewport> {\n const scrollParent = getScrollParent(element);\n const isBody = scrollParent === element.ownerDocument?.body;\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(\n win.visualViewport || [],\n isScrollParent(scrollParent) ? scrollParent : []\n )\n : scrollParent;\n const updatedList = list.concat(target);\n\n return isBody\n ? updatedList\n : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n","// @flow\nimport getNodeName from './getNodeName';\n\nexport default function isTableElement(element: Element): boolean {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\n\nfunction getTrueOffsetParent(element: Element): ?Element {\n if (\n !isHTMLElement(element) ||\n // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed'\n ) {\n return null;\n }\n\n return element.offsetParent;\n}\n\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\nfunction getContainingBlock(element: Element) {\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n const isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n const elementCss = getComputedStyle(element);\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n let currentNode = getParentNode(element);\n\n while (\n isHTMLElement(currentNode) &&\n ['html', 'body'].indexOf(getNodeName(currentNode)) < 0\n ) {\n const css = getComputedStyle(currentNode);\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n if (\n css.transform !== 'none' ||\n css.perspective !== 'none' ||\n css.contain === 'paint' ||\n ['transform', 'perspective'].indexOf(css.willChange) !== -1 ||\n (isFirefox && css.willChange === 'filter') ||\n (isFirefox && css.filter && css.filter !== 'none')\n ) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nexport default function getOffsetParent(element: Element) {\n const window = getWindow(element);\n\n let offsetParent = getTrueOffsetParent(element);\n\n while (\n offsetParent &&\n isTableElement(offsetParent) &&\n getComputedStyle(offsetParent).position === 'static'\n ) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (\n offsetParent &&\n (getNodeName(offsetParent) === 'html' ||\n (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static'))\n ) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n","// @flow\nexport const top: 'top' = 'top';\nexport const bottom: 'bottom' = 'bottom';\nexport const right: 'right' = 'right';\nexport const left: 'left' = 'left';\nexport const auto: 'auto' = 'auto';\nexport type BasePlacement =\n | typeof top\n | typeof bottom\n | typeof right\n | typeof left;\nexport const basePlacements: Array<BasePlacement> = [top, bottom, right, left];\n\nexport const start: 'start' = 'start';\nexport const end: 'end' = 'end';\nexport type Variation = typeof start | typeof end;\n\nexport const clippingParents: 'clippingParents' = 'clippingParents';\nexport const viewport: 'viewport' = 'viewport';\nexport type Boundary = Element | Array<Element> | typeof clippingParents;\nexport type RootBoundary = typeof viewport | 'document';\n\nexport const popper: 'popper' = 'popper';\nexport const reference: 'reference' = 'reference';\nexport type Context = typeof popper | typeof reference;\n\nexport type VariationPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end';\nexport type AutoPlacement = 'auto' | 'auto-start' | 'auto-end';\nexport type ComputedPlacement = VariationPlacement | BasePlacement;\nexport type Placement = AutoPlacement | BasePlacement | VariationPlacement;\n\nexport const variationPlacements: Array<VariationPlacement> = basePlacements.reduce(\n (acc: Array<VariationPlacement>, placement: BasePlacement) =>\n acc.concat([(`${placement}-${start}`: any), (`${placement}-${end}`: any)]),\n []\n);\nexport const placements: Array<Placement> = [...basePlacements, auto].reduce(\n (\n acc: Array<Placement>,\n placement: BasePlacement | typeof auto\n ): Array<Placement> =>\n acc.concat([\n placement,\n (`${placement}-${start}`: any),\n (`${placement}-${end}`: any),\n ]),\n []\n);\n\n// modifiers that need to read the DOM\nexport const beforeRead: 'beforeRead' = 'beforeRead';\nexport const read: 'read' = 'read';\nexport const afterRead: 'afterRead' = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain: 'beforeMain' = 'beforeMain';\nexport const main: 'main' = 'main';\nexport const afterMain: 'afterMain' = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite: 'beforeWrite' = 'beforeWrite';\nexport const write: 'write' = 'write';\nexport const afterWrite: 'afterWrite' = 'afterWrite';\nexport const modifierPhases: Array<ModifierPhases> = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite,\n];\n\nexport type ModifierPhases =\n | typeof beforeRead\n | typeof read\n | typeof afterRead\n | typeof beforeMain\n | typeof main\n | typeof afterMain\n | typeof beforeWrite\n | typeof write\n | typeof afterWrite;\n","// @flow\nimport type { Modifier } from '../types';\nimport { modifierPhases } from '../enums';\n\n// source: https://stackoverflow.com/questions/49875255\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n\n // On visiting object, check for its dependencies and visit them recursively\n function sort(modifier: Modifier<any, any>) {\n visited.add(modifier.name);\n\n const requires = [\n ...(modifier.requires || []),\n ...(modifier.requiresIfExists || []),\n ];\n\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n\n result.push(modifier);\n }\n\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n\n return result;\n}\n\nexport default function orderModifiers(\n modifiers: Array<Modifier<any, any>>\n): Array<Modifier<any, any>> {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n\n // order based on phase\n return modifierPhases.reduce((acc, phase) => {\n return acc.concat(\n orderedModifiers.filter(modifier => modifier.phase === phase)\n );\n }, []);\n}\n","// @flow\nimport { type BasePlacement, type Placement, auto } from '../enums';\n\nexport default function getBasePlacement(\n placement: Placement | typeof auto\n): BasePlacement {\n return (placement.split('-')[0]: any);\n}\n","// @flow\nimport { isShadowRoot } from './instanceOf';\n\nexport default function contains(parent: Element, child: Element) {\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe[prop-missing]: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n","// @flow\nimport type { Rect, ClientRectObject } from '../types';\n\nexport default function rectToClientRect(rect: Rect): ClientRectObject {\n return {\n ...rect,\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height,\n };\n}\n","// @flow\nimport type { ClientRectObject } from '../types';\nimport type { Boundary, RootBoundary } from '../enums';\nimport { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\nimport { max, min } from '../utils/math';\n\nfunction getInnerBoundingClientRect(element: Element) {\n const rect = getBoundingClientRect(element);\n\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n\n return rect;\n}\n\nfunction getClientRectFromMixedType(\n element: Element,\n clippingParent: Element | RootBoundary\n): ClientRectObject {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\n\n// A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\nfunction getClippingParents(element: Element): Array<Element> {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping =\n ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement =\n canEscapeClipping && isHTMLElement(element)\n ? getOffsetParent(element)\n : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(\n (clippingParent) =>\n isElement(clippingParent) &&\n contains(clippingParent, clipperElement) &&\n getNodeName(clippingParent) !== 'body'\n );\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping parents\nexport default function getClippingRect(\n element: Element,\n boundary: Boundary,\n rootBoundary: RootBoundary\n): ClientRectObject {\n const mainClippingParents =\n boundary === 'clippingParents'\n ? getClippingParents(element)\n : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n\n return clippingRect;\n}\n","// @flow\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n\nexport default function getViewportRect(element: Element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y,\n };\n}\n","// @flow\nimport type { Rect } from '../types';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\nimport { max } from '../utils/math';\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\nexport default function getDocumentRect(element: HTMLElement): Rect {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument?.body;\n\n const width = max(\n html.scrollWidth,\n html.clientWidth,\n body ? body.scrollWidth : 0,\n body ? body.clientWidth : 0\n );\n const height = max(\n html.scrollHeight,\n html.clientHeight,\n body ? body.scrollHeight : 0,\n body ? body.clientHeight : 0\n );\n\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return { width, height, x, y };\n}\n","// @flow\nimport { type Variation, type Placement } from '../enums';\n\nexport default function getVariation(placement: Placement): ?Variation {\n return (placement.split('-')[1]: any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nexport default function getMainAxisFromPlacement(\n placement: Placement\n): 'x' | 'y' {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n","// @flow\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport type {\n Rect,\n PositioningStrategy,\n Offsets,\n ClientRectObject,\n} from '../types';\nimport { top, right, bottom, left, start, end, type Placement } from '../enums';\n\nexport default function computeOffsets({\n reference,\n element,\n placement,\n}: {\n reference: Rect | ClientRectObject,\n element: Rect | ClientRectObject,\n strategy: PositioningStrategy,\n placement?: Placement,\n}): Offsets {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height,\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height,\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY,\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY,\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y,\n };\n }\n\n const mainAxis = basePlacement\n ? getMainAxisFromPlacement(basePlacement)\n : null;\n\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] =\n offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] =\n offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n\n return offsets;\n}\n","// @flow\nimport type { SideObject } from '../types';\nimport getFreshSideObject from './getFreshSideObject';\n\nexport default function mergePaddingObject(\n paddingObject: $Shape<SideObject>\n): SideObject {\n return {\n ...getFreshSideObject(),\n ...paddingObject,\n };\n}\n","// @flow\nimport type { SideObject } from '../types';\n\nexport default function getFreshSideObject(): SideObject {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n}\n","// @flow\n\nexport default function expandToHashMap<\n T: number | string | boolean,\n K: string\n>(value: T, keys: Array<K>): { [key: string]: T } {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n","// @flow\nimport type { State, SideObject, Padding } from '../types';\nimport type { Placement, Boundary, RootBoundary, Context } from '../enums';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport {\n clippingParents,\n reference,\n popper,\n bottom,\n top,\n right,\n basePlacements,\n viewport,\n} from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n placement: Placement,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n elementContext: Context,\n altBoundary: boolean,\n padding: Padding,\n};\n\nexport default function detectOverflow(\n state: State,\n options: $Shape<Options> = {}\n): SideObject {\n const {\n placement = state.placement,\n boundary = clippingParents,\n rootBoundary = viewport,\n elementContext = popper,\n altBoundary = false,\n padding = 0,\n } = options;\n\n const paddingObject = mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n\n const altContext = elementContext === popper ? reference : popper;\n\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n\n const clippingClientRect = getClippingRect(\n isElement(element)\n ? element\n : element.contextElement || getDocumentElement(state.elements.popper),\n boundary,\n rootBoundary\n );\n\n const referenceClientRect = getBoundingClientRect(state.elements.reference);\n\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement,\n });\n\n const popperClientRect = rectToClientRect({\n ...popperRect,\n ...popperOffsets,\n });\n\n const elementClientRect =\n elementContext === popper ? popperClientRect : referenceClientRect;\n\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom:\n elementClientRect.bottom -\n clippingClientRect.bottom +\n paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right:\n elementClientRect.right - clippingClientRect.right + paddingObject.right,\n };\n\n const offsetData = state.modifiersData.offset;\n\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n\n Object.keys(overflowOffsets).forEach((key) => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n","// @flow\nimport type {\n State,\n OptionsGeneric,\n Modifier,\n Instance,\n VirtualElement,\n} from './types';\nimport getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\n\nconst INVALID_ELEMENT_ERROR =\n 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR =\n 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\n\nconst DEFAULT_OPTIONS: OptionsGeneric<any> = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute',\n};\n\ntype PopperGeneratorArgs = {\n defaultModifiers?: Array<Modifier<any, any>>,\n defaultOptions?: $Shape<OptionsGeneric<any>>,\n};\n\nfunction areValidElements(...args: Array<any>): boolean {\n return !args.some(\n (element) =>\n !(element && typeof element.getBoundingClientRect === 'function')\n );\n}\n\nexport function popperGenerator(generatorOptions: PopperGeneratorArgs = {}) {\n const {\n defaultModifiers = [],\n defaultOptions = DEFAULT_OPTIONS,\n } = generatorOptions;\n\n return function createPopper<TModifier: $Shape<Modifier<any, any>>>(\n reference: Element | VirtualElement,\n popper: HTMLElement,\n options: $Shape<OptionsGeneric<TModifier>> = defaultOptions\n ): Instance {\n let state: $Shape<State> = {\n placement: 'bottom',\n orderedModifiers: [],\n options: { ...DEFAULT_OPTIONS, ...defaultOptions },\n modifiersData: {},\n elements: {\n reference,\n popper,\n },\n attributes: {},\n styles: {},\n };\n\n let effectCleanupFns: Array<() => void> = [];\n let isDestroyed = false;\n\n const instance = {\n state,\n setOptions(setOptionsAction) {\n const options =\n typeof setOptionsAction === 'function'\n ? setOptionsAction(state.options)\n : setOptionsAction;\n\n cleanupModifierEffects();\n\n state.options = {\n // $FlowFixMe[exponential-spread]\n ...defaultOptions,\n ...state.options,\n ...options,\n };\n\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper),\n };\n\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(\n mergeByName([...defaultModifiers, ...state.options.modifiers])\n );\n\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter((m) => m.enabled);\n\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (__DEV__) {\n const modifiers = uniqueBy(\n [...orderedModifiers, ...state.options.modifiers],\n ({ name }) => name\n );\n\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(\n ({ name }) => name === 'flip'\n );\n\n if (!flipModifier) {\n console.error(\n [\n 'Popper: \"auto\" placements require the \"flip\" modifier be',\n 'present and enabled to work.',\n ].join(' ')\n );\n }\n }\n\n const {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = getComputedStyle(popper);\n\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if (\n [marginTop, marginRight, marginBottom, marginLeft].some((margin) =>\n parseFloat(margin)\n )\n ) {\n console.warn(\n [\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.',\n ].join(' ')\n );\n }\n }\n\n runModifierEffects();\n\n return instance.update();\n },\n\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n const { reference, popper } = state.elements;\n\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(\n reference,\n getOffsetParent(popper),\n state.options.strategy === 'fixed'\n ),\n popper: getLayoutRect(popper),\n };\n\n // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n state.reset = false;\n\n state.placement = state.options.placement;\n\n // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n state.orderedModifiers.forEach(\n (modifier) =>\n (state.modifiersData[modifier.name] = {\n ...modifier.data,\n })\n );\n\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (__DEV__) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n const { fn, options = {}, name } = state.orderedModifiers[index];\n\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || state;\n }\n }\n },\n\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce<$Shape<State>>(\n () =>\n new Promise<$Shape<State>>((resolve) => {\n instance.forceUpdate();\n resolve(state);\n })\n ),\n\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n },\n };\n\n if (!areValidElements(reference, popper)) {\n if (__DEV__) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n\n instance.setOptions(options).then((state) => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n });\n\n // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => {};\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach((fn) => fn());\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nexport const createPopper = popperGenerator();\n\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n","// @flow\n\nexport default function debounce<T>(fn: Function): () => Promise<T> {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise<T>(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n","// @flow\nimport type { Modifier } from '../types';\n\nexport default function mergeByName(\n modifiers: Array<$Shape<Modifier<any, any>>>\n): Array<$Shape<Modifier<any, any>>> {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? {\n ...existing,\n ...current,\n options: { ...existing.options, ...current.options },\n data: { ...existing.data, ...current.data },\n }\n : current;\n return merged;\n }, {});\n\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport getWindow from '../dom-utils/getWindow';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n scroll: boolean,\n resize: boolean,\n};\n\nconst passive = { passive: true };\n\nfunction effect({ state, instance, options }: ModifierArguments<Options>) {\n const { scroll = true, resize = true } = options;\n\n const window = getWindow(state.elements.popper);\n const scrollParents = [\n ...state.scrollParents.reference,\n ...state.scrollParents.popper,\n ];\n\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type EventListenersModifier = Modifier<'eventListeners', Options>;\nexport default ({\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => {},\n effect,\n data: {},\n}: EventListenersModifier);\n","// @flow\nimport type { ModifierArguments, Modifier } from '../types';\nimport computeOffsets from '../utils/computeOffsets';\n\nfunction popperOffsets({ state, name }: ModifierArguments<{||}>) {\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement,\n });\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PopperOffsetsModifier = Modifier<'popperOffsets', {||}>;\nexport default ({\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {},\n}: PopperOffsetsModifier);\n","// @flow\nimport type {\n PositioningStrategy,\n Offsets,\n Modifier,\n ModifierArguments,\n Rect,\n Window,\n} from '../types';\nimport {\n type BasePlacement,\n type Variation,\n top,\n left,\n right,\n bottom,\n end,\n} from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getVariation from '../utils/getVariation';\nimport { round } from '../utils/math';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type RoundOffsets = (\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>\n) => Offsets;\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets?: boolean | RoundOffsets,\n};\n\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n};\n\n// Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\nfunction roundOffsetsByDPR({ x, y }): Offsets {\n const win: Window = window;\n const dpr = win.devicePixelRatio || 1;\n\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0,\n };\n}\n\nexport function mapToStyles({\n popper,\n popperRect,\n placement,\n variation,\n offsets,\n position,\n gpuAcceleration,\n adaptive,\n roundOffsets,\n isFixed,\n}: {\n popper: HTMLElement,\n popperRect: Rect,\n placement: BasePlacement,\n variation: ?Variation,\n offsets: $Shape<{ x: number, y: number, centerOffset: number }>,\n position: PositioningStrategy,\n gpuAcceleration: boolean,\n adaptive: boolean,\n roundOffsets: boolean | RoundOffsets,\n isFixed: boolean,\n}) {\n let { x = 0, y = 0 } = offsets;\n\n ({ x, y } =\n typeof roundOffsets === 'function'\n ? roundOffsets({ x, y })\n : { x, y });\n\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n\n let sideX: string = left;\n let sideY: string = top;\n\n const win: Window = window;\n\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n let heightProp = 'clientHeight';\n let widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (\n getComputedStyle(offsetParent).position !== 'static' &&\n position === 'absolute'\n ) {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n }\n\n // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n offsetParent = (offsetParent: Element);\n\n if (\n placement === top ||\n ((placement === left || placement === right) && variation === end)\n ) {\n sideY = bottom;\n const offsetY =\n isFixed && win.visualViewport\n ? win.visualViewport.height\n : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (\n placement === left ||\n ((placement === top || placement === bottom) && variation === end)\n ) {\n sideX = right;\n const offsetX =\n isFixed && win.visualViewport\n ? win.visualViewport.width\n : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n const commonStyles = {\n position,\n ...(adaptive && unsetSides),\n };\n\n ({ x, y } =\n roundOffsets === true\n ? roundOffsetsByDPR({ x, y })\n : { x, y });\n\n if (gpuAcceleration) {\n return {\n ...commonStyles,\n [sideY]: hasY ? '0' : '',\n [sideX]: hasX ? '0' : '',\n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform:\n (win.devicePixelRatio || 1) <= 1\n ? `translate(${x}px, ${y}px)`\n : `translate3d(${x}px, ${y}px, 0)`,\n };\n }\n\n return {\n ...commonStyles,\n [sideY]: hasY ? `${y}px` : '',\n [sideX]: hasX ? `${x}px` : '',\n transform: '',\n };\n}\n\nfunction computeStyles({ state, options }: ModifierArguments<Options>) {\n const {\n gpuAcceleration = true,\n adaptive = true,\n // defaults to use builtin `roundOffsetsByDPR`\n roundOffsets = true,\n } = options;\n\n if (__DEV__) {\n const transitionProperty =\n getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (\n adaptive &&\n ['transform', 'top', 'right', 'bottom', 'left'].some(\n (property) => transitionProperty.indexOf(property) >= 0\n )\n ) {\n console.warn(\n [\n 'Popper: Detected CSS transitions on at least one of the following',\n 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".',\n '\\n\\n',\n 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow',\n 'for smooth transitions, or remove these properties from the CSS',\n 'transition declaration on the popper element if only transitioning',\n 'opacity or background-color for example.',\n '\\n\\n',\n 'We recommend using the popper element as a wrapper around an inner',\n 'element that can have any CSS property transitioned for animations.',\n ].join(' ')\n );\n }\n }\n\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === 'fixed',\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = {\n ...state.styles.popper,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets,\n }),\n };\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = {\n ...state.styles.arrow,\n ...mapToStyles({\n ...commonStyles,\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets,\n }),\n };\n }\n\n state.attributes.popper = {\n ...state.attributes.popper,\n 'data-popper-placement': state.placement,\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ComputeStylesModifier = Modifier<'computeStyles', Options>;\nexport default ({\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {},\n}: ComputeStylesModifier);\n","// @flow\nimport type { Modifier, ModifierArguments } from '../types';\nimport getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles({ state }: ModifierArguments<{||}>) {\n Object.keys(state.elements).forEach((name) => {\n const style = state.styles[name] || {};\n\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((name) => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect({ state }: ModifierArguments<{||}>) {\n const initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0',\n },\n arrow: {\n position: 'absolute',\n },\n reference: {},\n };\n\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return () => {\n Object.keys(state.elements).forEach((name) => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n\n const styleProperties = Object.keys(\n state.styles.hasOwnProperty(name)\n ? state.styles[name]\n : initialStyles[name]\n );\n\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n\n Object.keys(attributes).forEach((attribute) => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type ApplyStylesModifier = Modifier<'applyStyles', {||}>;\nexport default ({\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles'],\n}: ApplyStylesModifier);\n","// @flow\nimport type { Placement } from '../enums';\nimport type { ModifierArguments, Modifier, Rect, Offsets } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport { top, left, right, placements } from '../enums';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetsFunction = ({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n}) => [?number, ?number];\n\ntype Offset = OffsetsFunction | [?number, ?number];\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n offset: Offset,\n};\n\nexport function distanceAndSkiddingToXY(\n placement: Placement,\n rects: { popper: Rect, reference: Rect },\n offset: Offset\n): Offsets {\n const basePlacement = getBasePlacement(placement);\n const invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n let [skidding, distance] =\n typeof offset === 'function'\n ? offset({\n ...rects,\n placement,\n })\n : offset;\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n\n return [left, right].indexOf(basePlacement) >= 0\n ? { x: distance, y: skidding }\n : { x: skidding, y: distance };\n}\n\nfunction offset({ state, options, name }: ModifierArguments<Options>) {\n const { offset = [0, 0] } = options;\n\n const data = placements.reduce((acc, placement) => {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n\n const { x, y } = data[state.placement];\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type OffsetModifier = Modifier<'offset', Options>;\nexport default ({\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset,\n}: OffsetModifier);\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\nexport default function getOppositePlacement(placement: Placement): Placement {\n return (placement.replace(\n /left|right|bottom|top/g,\n matched => hash[matched]\n ): any);\n}\n","// @flow\nimport type { Placement } from '../enums';\n\nconst hash = { start: 'end', end: 'start' };\n\nexport default function getOppositeVariationPlacement(\n placement: Placement\n): Placement {\n return (placement.replace(/start|end/g, matched => hash[matched]): any);\n}\n","// @flow\nimport type { State, Padding } from '../types';\nimport type {\n Placement,\n ComputedPlacement,\n Boundary,\n RootBoundary,\n} from '../enums';\nimport getVariation from './getVariation';\nimport {\n variationPlacements,\n basePlacements,\n placements as allPlacements,\n} from '../enums';\nimport detectOverflow from './detectOverflow';\nimport getBasePlacement from './getBasePlacement';\n\ntype Options = {\n placement: Placement,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n flipVariations: boolean,\n allowedAutoPlacements?: Array<Placement>,\n};\n\ntype OverflowsMap = { [ComputedPlacement]: number };\n\nexport default function computeAutoPlacement(\n state: $Shape<State>,\n options: Options = {}\n): Array<ComputedPlacement> {\n const {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements = allPlacements,\n } = options;\n\n const variation = getVariation(placement);\n\n const placements = variation\n ? flipVariations\n ? variationPlacements\n : variationPlacements.filter(\n (placement) => getVariation(placement) === variation\n )\n : basePlacements;\n\n let allowedPlacements = placements.filter(\n (placement) => allowedAutoPlacements.indexOf(placement) >= 0\n );\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (__DEV__) {\n console.error(\n [\n 'Popper: The `allowedAutoPlacements` option did not allow any',\n 'placements. Ensure the `placement` option matches the variation',\n 'of the allowed placements.',\n 'For example, \"auto\" cannot be used to allow \"bottom-start\".',\n 'Use \"auto-start\" instead.',\n ].join(' ')\n );\n }\n }\n\n // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n const overflows: OverflowsMap = allowedPlacements.reduce((acc, placement) => {\n acc[placement] = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n })[getBasePlacement(placement)];\n\n return acc;\n }, {});\n\n return Object.keys(overflows).sort((a, b) => overflows[a] - overflows[b]);\n}\n","// @flow\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { ModifierArguments, Modifier, Padding } from '../types';\nimport getOppositePlacement from '../utils/getOppositePlacement';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getOppositeVariationPlacement from '../utils/getOppositeVariationPlacement';\nimport detectOverflow from '../utils/detectOverflow';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\nimport { bottom, top, start, right, left, auto } from '../enums';\nimport getVariation from '../utils/getVariation';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n mainAxis: boolean,\n altAxis: boolean,\n fallbackPlacements: Array<Placement>,\n padding: Padding,\n boundary: Boundary,\n rootBoundary: RootBoundary,\n altBoundary: boolean,\n flipVariations: boolean,\n allowedAutoPlacements: Array<Placement>,\n};\n\nfunction getExpandedFallbackPlacements(placement: Placement): Array<Placement> {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n const oppositePlacement = getOppositePlacement(placement);\n\n return [\n getOppositeVariationPlacement(placement),\n oppositePlacement,\n getOppositeVariationPlacement(oppositePlacement),\n ];\n}\n\nfunction flip({ state, options, name }: ModifierArguments<Options>) {\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n padding,\n boundary,\n rootBoundary,\n altBoundary,\n flipVariations = true,\n allowedAutoPlacements,\n } = options;\n\n const preferredPlacement = state.options.placement;\n const basePlacement = getBasePlacement(preferredPlacement);\n const isBasePlacement = basePlacement === preferredPlacement;\n\n const fallbackPlacements =\n specifiedFallbackPlacements ||\n (isBasePlacement || !flipVariations\n ? [getOppositePlacement(preferredPlacement)]\n : getExpandedFallbackPlacements(preferredPlacement));\n\n const placements = [preferredPlacement, ...fallbackPlacements].reduce(\n (acc, placement) => {\n return acc.concat(\n getBasePlacement(placement) === auto\n ? computeAutoPlacement(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements,\n })\n : placement\n );\n },\n []\n );\n\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n\n const checksMap = new Map();\n let makeFallbackChecks = true;\n let firstFittingPlacement = placements[0];\n\n for (let i = 0; i < placements.length; i++) {\n const placement = placements[i];\n const basePlacement = getBasePlacement(placement);\n const isStartVariation = getVariation(placement) === start;\n const isVertical = [top, bottom].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'width' : 'height';\n\n const overflow = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n });\n\n let mainVariationSide: any = isVertical\n ? isStartVariation\n ? right\n : left\n : isStartVariation\n ? bottom\n : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n const altVariationSide: any = getOppositePlacement(mainVariationSide);\n\n const checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(\n overflow[mainVariationSide] <= 0,\n overflow[altVariationSide] <= 0\n );\n }\n\n if (checks.every((check) => check)) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n const numberOfChecks = flipVariations ? 3 : 1;\n\n for (let i = numberOfChecks; i > 0; i--) {\n const fittingPlacement = placements.find((placement) => {\n const checks = checksMap.get(placement);\n if (checks) {\n return checks.slice(0, i).every((check) => check);\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n break;\n }\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type FlipModifier = Modifier<'flip', Options>;\nexport default ({\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: { _skip: false },\n}: FlipModifier);\n","// @flow\nimport { max as mathMax, min as mathMin } from './math';\n\nexport function within(min: number, value: number, max: number): number {\n return mathMax(min, mathMin(value, max));\n}\n\nexport function withinMaxClamp(min: number, value: number, max: number) {\n const v = within(min, value, max);\n return v > max ? max : v;\n}\n","// @flow\nimport { top, left, right, bottom, start } from '../enums';\nimport type { Placement, Boundary, RootBoundary } from '../enums';\nimport type { Rect, ModifierArguments, Modifier, Padding } from '../types';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport getAltAxis from '../utils/getAltAxis';\nimport { within, withinMaxClamp } from '../utils/within';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport detectOverflow from '../utils/detectOverflow';\nimport getVariation from '../utils/getVariation';\nimport getFreshSideObject from '../utils/getFreshSideObject';\nimport { min as mathMin, max as mathMax } from '../utils/math';\n\ntype TetherOffset =\n | (({\n popper: Rect,\n reference: Rect,\n placement: Placement,\n }) => number | { mainAxis: number, altAxis: number })\n | number\n | { mainAxis: number, altAxis: number };\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n /* Prevents boundaries overflow on the main axis */\n mainAxis: boolean,\n /* Prevents boundaries overflow on the alternate axis */\n altAxis: boolean,\n /* The area to check the popper is overflowing in */\n boundary: Boundary,\n /* If the popper is not overflowing the main area, fallback to this one */\n rootBoundary: RootBoundary,\n /* Use the reference's \"clippingParents\" boundary context */\n altBoundary: boolean,\n /**\n * Allows the popper to overflow from its boundaries to keep it near its\n * reference element\n */\n tether: boolean,\n /* Offsets when the `tether` option should activate */\n tetherOffset: TetherOffset,\n /* Sets a padding to the provided boundary */\n padding: Padding,\n};\n\nfunction preventOverflow({ state, options, name }: ModifierArguments<Options>) {\n const {\n mainAxis: checkMainAxis = true,\n altAxis: checkAltAxis = false,\n boundary,\n rootBoundary,\n altBoundary,\n padding,\n tether = true,\n tetherOffset = 0,\n } = options;\n\n const overflow = detectOverflow(state, {\n boundary,\n rootBoundary,\n padding,\n altBoundary,\n });\n const basePlacement = getBasePlacement(state.placement);\n const variation = getVariation(state.placement);\n const isBasePlacement = !variation;\n const mainAxis = getMainAxisFromPlacement(basePlacement);\n const altAxis = getAltAxis(mainAxis);\n const popperOffsets = state.modifiersData.popperOffsets;\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const tetherOffsetValue =\n typeof tetherOffset === 'function'\n ? tetherOffset({\n ...state.rects,\n placement: state.placement,\n })\n : tetherOffset;\n const normalizedTetherOffsetValue =\n typeof tetherOffsetValue === 'number'\n ? { mainAxis: tetherOffsetValue, altAxis: tetherOffsetValue }\n : { mainAxis: 0, altAxis: 0, ...tetherOffsetValue };\n const offsetModifierState = state.modifiersData.offset\n ? state.modifiersData.offset[state.placement]\n : null;\n\n const data = { x: 0, y: 0 };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n const mainSide = mainAxis === 'y' ? top : left;\n const altSide = mainAxis === 'y' ? bottom : right;\n const len = mainAxis === 'y' ? 'height' : 'width';\n const offset = popperOffsets[mainAxis];\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const additive = tether ? -popperRect[len] / 2 : 0;\n\n const minLen = variation === start ? referenceRect[len] : popperRect[len];\n const maxLen = variation === start ? -popperRect[len] : -referenceRect[len];\n\n // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n const arrowElement = state.elements.arrow;\n const arrowRect =\n tether && arrowElement\n ? getLayoutRect(arrowElement)\n : { width: 0, height: 0 };\n const arrowPaddingObject = state.modifiersData['arrow#persistent']\n ? state.modifiersData['arrow#persistent'].padding\n : getFreshSideObject();\n const arrowPaddingMin = arrowPaddingObject[mainSide];\n const arrowPaddingMax = arrowPaddingObject[altSide];\n\n // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n const arrowLen = within(0, referenceRect[len], arrowRect[len]);\n\n const minOffset = isBasePlacement\n ? referenceRect[len] / 2 -\n additive -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis\n : minLen -\n arrowLen -\n arrowPaddingMin -\n normalizedTetherOffsetValue.mainAxis;\n const maxOffset = isBasePlacement\n ? -referenceRect[len] / 2 +\n additive +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis\n : maxLen +\n arrowLen +\n arrowPaddingMax +\n normalizedTetherOffsetValue.mainAxis;\n\n const arrowOffsetParent =\n state.elements.arrow && getOffsetParent(state.elements.arrow);\n const clientOffset = arrowOffsetParent\n ? mainAxis === 'y'\n ? arrowOffsetParent.clientTop || 0\n : arrowOffsetParent.clientLeft || 0\n : 0;\n\n const offsetModifierValue = offsetModifierState?.[mainAxis] ?? 0;\n const tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n const tetherMax = offset + maxOffset - offsetModifierValue;\n\n const preventedOffset = within(\n tether ? mathMin(min, tetherMin) : min,\n offset,\n tether ? mathMax(max, tetherMax) : max\n );\n\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n const mainSide = mainAxis === 'x' ? top : left;\n const altSide = mainAxis === 'x' ? bottom : right;\n const offset = popperOffsets[altAxis];\n\n const len = altAxis === 'y' ? 'height' : 'width';\n\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n\n const isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n const offsetModifierValue = offsetModifierState?.[altAxis] ?? 0;\n const tetherMin = isOriginSide\n ? min\n : offset -\n referenceRect[len] -\n popperRect[len] -\n offsetModifierValue +\n normalizedTetherOffsetValue.altAxis;\n const tetherMax = isOriginSide\n ? offset +\n referenceRect[len] +\n popperRect[len] -\n offsetModifierValue -\n normalizedTetherOffsetValue.altAxis\n : max;\n\n const preventedOffset =\n tether && isOriginSide\n ? withinMaxClamp(tetherMin, offset, tetherMax)\n : within(tether ? tetherMin : min, offset, tether ? tetherMax : max);\n\n popperOffsets[altAxis] = preventedOffset;\n data[altAxis] = preventedOffset - offset;\n }\n\n state.modifiersData[name] = data;\n}\n\n// eslint-disable-next-line import/no-unused-modules\nexport type PreventOverflowModifier = Modifier<'preventOverflow', Options>;\nexport default ({\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset'],\n}: PreventOverflowModifier);\n","// @flow\n\nexport default function getAltAxis(axis: 'x' | 'y'): 'x' | 'y' {\n return axis === 'x' ? 'y' : 'x';\n}\n","// @flow\nimport type { Modifier, ModifierArguments, Padding, Rect } from '../types';\nimport type { Placement } from '../enums';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport contains from '../dom-utils/contains';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport { within } from '../utils/within';\nimport mergePaddingObject from '../utils/mergePaddingObject';\nimport expandToHashMap from '../utils/expandToHashMap';\nimport { left, right, basePlacements, top, bottom } from '../enums';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n\n// eslint-disable-next-line import/no-unused-modules\nexport type Options = {\n element: HTMLElement | string | null,\n padding:\n | Padding\n | (({|\n popper: Rect,\n reference: Rect,\n placement: Placement,\n |}) => Padding),\n};\n\nconst toPaddingObject = (padding, state) => {\n padding =\n typeof padding === 'function'\n ? padding({ ...state.rects, placement: state.placement })\n : padding;\n\n return mergePaddingObject(\n typeof padding !== 'number'\n ? padding\n : expandToHashMap(padding, basePlacements)\n );\n};\n\nfunction arrow({ state, name, options }: ModifierArguments<Options>) {\n const arrowElement = state.elements.arrow;\n const popperOffsets = state.modifiersData.popperOffsets;\n const basePlacement = getBasePlacement(state.placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const isVertical = [left, right].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n const paddingObject = toPaddingObject(options.padding, state);\n const arrowRect = getLayoutRect(arrowElement);\n const minProp = axis === 'y' ? top : left;\n const maxProp = axis === 'y' ? bottom : right;\n\n const endDiff =\n state.rects.reference[len] +\n state.rects.reference[axis] -\n popperOffsets[axis] -\n state.rects.popper[len];\n const startDiff = popperOffsets[axis] - state.rects.reference[axis];\n\n const arrowOffsetParent = getOffsetParent(arrowElement);\n const clientSize = arrowOffsetParent\n ? axis === 'y'\n ? arrowOffsetParent.clientHeight || 0\n : arrowOffsetParent.clientWidth || 0\n : 0;\n\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n const min = paddingObject[minProp];\n const max = clientSize - arrowRect[len] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n const offset = within(min, center, max);\n\n // Prevents breaking syntax highlighting...\n const axisProp: string = axis;\n state.modifiersData[name] = {\n [axisProp]: offset,\n centerOffset: offset - center,\n };\n}\n\nfunction effect({ state, options }: ModifierArguments<Options>) {\n let { element: arrowElement = '[data-popper-arrow]' } = options;\n\n if (arrowElement == null) {\n return;\n }\n\n // CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (__DEV__) {\n if (!isHTMLElement(arrowElement)) {\n console.error(\n [\n 'Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).',\n 'To use an SVG arrow, wrap it in an HTMLElement that will be used as',\n 'the arrow.',\n ].join(' ')\n );\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (__DEV__) {\n console.error(\n [\n 'Popper: \"arrow\" modifier\\'s `element` must be a child of the popper',\n 'element.',\n ].join(' ')\n );\n }\n\n retu